/ Hex Artifact Content
Login
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

Artifact dba0e1f40192f79c7a887fa3efa56e6fdd54f85a:


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 46 65  }..chng {2007 Fe
0250: 62 72 75 61 72 79 20 31 33 20 28 33 2e 33 2e 31  bruary 13 (3.3.1
0260: 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 61 20  3)} {.<li>Add a 
0270: 22 66 72 61 67 6d 65 6e 74 61 74 69 6f 6e 22 20  "fragmentation" 
0280: 6d 65 61 73 75 72 65 6d 65 6e 74 20 69 6e 20 74  measurement in t
0290: 68 65 20 6f 75 74 70 75 74 20 6f 66 20 73 71 6c  he output of sql
02a0: 69 74 65 33 5f 61 6e 61 6c 79 7a 65 72 2e 3c 2f  ite3_analyzer.</
02b0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  li>.<li>Add the 
02c0: 43 4f 4c 4c 41 54 45 20 6f 70 65 72 61 74 6f 72  COLLATE operator
02d0: 20 75 73 65 64 20 74 6f 20 65 78 70 6c 69 63 69   used to explici
02e0: 74 6c 79 20 73 65 74 20 74 68 65 20 63 6f 6c 6c  tly set the coll
02f0: 61 74 69 6e 67 20 73 65 71 75 65 6e 63 65 0a 75  ating sequence.u
0300: 73 65 64 20 62 79 20 61 6e 20 65 78 70 72 65 73  sed by an expres
0310: 73 69 6f 6e 2e 20 20 54 68 69 73 20 66 65 61 74  sion.  This feat
0320: 75 72 65 20 69 73 20 63 6f 6e 73 69 64 65 72 65  ure is considere
0330: 64 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 70  d experimental p
0340: 65 6e 64 69 6e 67 0a 61 64 64 69 74 69 6f 6e 61  ending.additiona
0350: 6c 20 74 65 73 74 69 6e 67 2e 3c 2f 6c 69 3e 0a  l testing.</li>.
0360: 3c 6c 69 3e 41 6c 6c 6f 77 20 75 70 20 74 6f 20  <li>Allow up to 
0370: 36 34 20 74 61 62 6c 65 73 20 69 6e 20 61 20 6a  64 tables in a j
0380: 6f 69 6e 20 2d 20 74 68 65 20 6f 6c 64 20 6c 69  oin - the old li
0390: 6d 69 74 20 77 61 73 20 33 32 2e 3c 2f 6c 69 3e  mit was 32.</li>
03a0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 77 6f 20 6e  .<li>Added two n
03b0: 65 77 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20  ew experimental 
03c0: 66 75 6e 63 74 69 6f 6e 73 3a 0a 3c 61 20 68 72  functions:.<a hr
03d0: 65 66 3d 22 6c 61 6e 67 5f 65 78 70 72 2e 68 74  ef="lang_expr.ht
03e0: 6d 6c 23 72 61 6e 64 6f 6d 62 6c 6f 62 46 75 6e  ml#randomblobFun
03f0: 63 22 3e 72 61 6e 64 6f 6d 42 6c 6f 62 28 29 3c  c">randomBlob()<
0400: 2f 61 3e 20 61 6e 64 0a 3c 61 20 68 72 65 66 3d  /a> and.<a href=
0410: 22 6c 61 6e 67 5f 65 78 70 72 2e 68 74 6d 6c 23  "lang_expr.html#
0420: 68 65 78 46 75 6e 63 22 3e 68 65 78 28 29 3c 2f  hexFunc">hex()</
0430: 61 3e 2e 0a 54 68 65 69 72 20 69 6e 74 65 6e 64  a>..Their intend
0440: 65 64 20 75 73 65 20 69 73 20 74 6f 20 66 61 63  ed use is to fac
0450: 69 6c 69 74 61 74 65 20 67 65 6e 65 72 61 74 69  ilitate generati
0460: 6e 67 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74  ng .<a href="htt
0470: 70 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61  p://en.wikipedia
0480: 2e 6f 72 67 2f 77 69 6b 69 2f 55 55 49 44 22 3e  .org/wiki/UUID">
0490: 55 55 49 44 73 3c 2f 61 3e 2e 0a 3c 2f 6c 69 3e  UUIDs</a>..</li>
04a0: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c  .<li>Fix a probl
04b0: 65 6d 20 77 68 65 72 65 0a 3c 61 20 68 72 65 66  em where.<a href
04c0: 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c 23 70 72  ="pragma.html#pr
04d0: 61 67 6d 61 5f 63 6f 75 6e 74 5f 63 68 61 6e 67  agma_count_chang
04e0: 65 73 22 3e 50 52 41 47 4d 41 20 63 6f 75 6e 74  es">PRAGMA count
04f0: 5f 63 68 61 6e 67 65 73 3c 2f 61 3e 20 77 61 73  _changes</a> was
0500: 0a 63 61 75 73 69 6e 67 20 69 6e 63 6f 72 72 65  .causing incorre
0510: 63 74 20 72 65 73 75 6c 74 73 20 66 6f 72 20 75  ct results for u
0520: 70 64 61 74 65 73 20 6f 6e 20 74 61 62 6c 65 73  pdates on tables
0530: 20 77 69 74 68 20 74 72 69 67 67 65 72 73 3c 2f   with triggers</
0540: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
0550: 67 20 69 6e 20 74 68 65 20 4f 52 44 45 52 20 42  g in the ORDER B
0560: 59 20 63 6c 61 75 73 65 20 6f 70 74 69 6d 69 7a  Y clause optimiz
0570: 65 72 20 66 6f 72 20 6a 6f 69 6e 73 20 77 68 65  er for joins whe
0580: 72 65 20 74 68 65 0a 6c 65 66 74 2d 6d 6f 73 74  re the.left-most
0590: 20 74 61 62 6c 65 20 69 6e 20 74 68 65 20 6a 6f   table in the jo
05a0: 69 6e 20 69 73 20 63 6f 6e 73 74 72 61 69 6e 65  in is constraine
05b0: 64 20 62 79 20 61 20 55 4e 49 51 55 45 20 69 6e  d by a UNIQUE in
05c0: 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  dex.</li>.<li>Fi
05d0: 78 65 64 20 61 20 62 75 67 20 69 6e 20 74 68 65  xed a bug in the
05e0: 20 22 63 6f 70 79 22 20 6d 65 74 68 6f 64 20 6f   "copy" method o
05f0: 66 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66  f the TCL interf
0600: 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ace.</li>.<li>Bu
0610: 67 20 66 69 78 65 73 20 69 6e 20 66 74 73 31 20  g fixes in fts1 
0620: 61 6e 64 20 66 74 73 32 20 6d 6f 64 75 6c 65 73  and fts2 modules
0630: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
0640: 32 30 30 37 20 4a 61 6e 75 61 72 79 20 32 37 20  2007 January 27 
0650: 28 33 2e 33 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e  (3.3.12)} {.<li>
0660: 46 69 78 20 61 6e 6f 74 68 65 72 20 62 75 67 20  Fix another bug 
0670: 69 6e 20 74 68 65 20 49 53 20 4e 55 4c 4c 20 6f  in the IS NULL o
0680: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 74 68 61 74  ptimization that
0690: 20 77 61 73 20 61 64 64 65 64 20 69 6e 0a 76 65   was added in.ve
06a0: 72 73 69 6f 6e 20 33 2e 33 2e 39 2e 3c 2f 6c 69  rsion 3.3.9.</li
06b0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 61 73 73 65  >.<li>Fix a asse
06c0: 72 74 69 6f 6e 20 66 61 75 6c 74 20 74 68 61 74  rtion fault that
06d0: 20 6f 63 63 75 72 72 65 64 20 6f 6e 20 64 65 65   occurred on dee
06e0: 70 6c 79 20 6e 65 73 74 65 64 20 76 69 65 77 73  ply nested views
06f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 69 6d 69 74  .</li>.<li>Limit
0700: 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 66 20 6f   the amount of o
0710: 75 74 70 75 74 20 74 68 61 74 0a 3c 61 20 68 72  utput that.<a hr
0720: 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c 23  ef="pragma.html#
0730: 70 72 61 67 6d 61 5f 69 6e 74 65 67 72 69 74 79  pragma_integrity
0740: 5f 63 68 65 63 6b 22 3e 50 52 41 47 4d 41 20 69  _check">PRAGMA i
0750: 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 3c 2f  ntegrity_check</
0760: 61 3e 0a 67 65 6e 65 72 61 74 65 73 2e 3c 2f 6c  a>.generates.</l
0770: 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 73 79 6e  i>.<li>Minor syn
0780: 74 61 63 74 69 63 20 63 68 61 6e 67 65 73 20 74  tactic changes t
0790: 6f 20 73 75 70 70 6f 72 74 20 61 20 77 69 64 65  o support a wide
07a0: 72 20 76 61 72 69 65 74 79 20 6f 66 20 63 6f 6d  r variety of com
07b0: 70 69 6c 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  pilers.</li>.}..
07c0: 63 68 6e 67 20 7b 32 30 30 37 20 4a 61 6e 75 61  chng {2007 Janua
07d0: 72 79 20 32 32 20 28 33 2e 33 2e 31 31 29 7d 20  ry 22 (3.3.11)} 
07e0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 6f 74 68 65  {.<li>Fix anothe
07f0: 72 20 62 75 67 20 69 6e 20 74 68 65 20 69 6d 70  r bug in the imp
0800: 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74  lementation of t
0810: 68 65 20 6e 65 77 20 0a 3c 61 20 68 72 65 66 3d  he new .<a href=
0820: 22 63 61 70 69 33 72 65 66 2e 68 74 6d 6c 23 73  "capi3ref.html#s
0830: 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65 5f 76  qlite3_prepare_v
0840: 32 22 3e 73 71 6c 69 74 65 33 5f 70 72 65 70 61  2">sqlite3_prepa
0850: 72 65 5f 76 32 28 29 3c 2f 61 3e 20 41 50 49 2e  re_v2()</a> API.
0860: 0a 57 65 27 6c 6c 20 67 65 74 20 69 74 20 72 69  .We'll get it ri
0870: 67 68 74 20 65 76 65 6e 74 75 61 6c 6c 79 2e 2e  ght eventually..
0880: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
0890: 20 62 75 67 20 69 6e 20 74 68 65 20 49 53 20 4e   bug in the IS N
08a0: 55 4c 4c 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  ULL optimization
08b0: 20 74 68 61 74 20 77 61 73 20 61 64 64 65 64 20   that was added 
08c0: 69 6e 20 76 65 72 73 69 6f 6e 20 33 2e 33 2e 39  in version 3.3.9
08d0: 20 2d 0a 74 68 65 20 62 75 67 20 77 61 73 20 63   -.the bug was c
08e0: 61 75 73 69 6e 67 20 69 6e 63 6f 72 72 65 63 74  ausing incorrect
08f0: 20 72 65 73 75 6c 74 73 20 6f 6e 20 63 65 72 74   results on cert
0900: 61 69 6e 20 4c 45 46 54 20 4a 4f 49 4e 73 20 74  ain LEFT JOINs t
0910: 68 61 74 20 69 6e 63 6c 75 64 65 64 0a 69 6e 20  hat included.in 
0920: 74 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65  the WHERE clause
0930: 20 61 6e 20 49 53 20 4e 55 4c 4c 20 63 6f 6e 73   an IS NULL cons
0940: 74 72 61 69 6e 74 20 66 6f 72 20 74 68 65 20 72  traint for the r
0950: 69 67 68 74 20 74 61 62 6c 65 20 6f 66 20 74 68  ight table of th
0960: 65 0a 4c 45 46 54 20 4a 4f 49 4e 2e 3c 2f 6c 69  e.LEFT JOIN.</li
0970: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 41 72 65 46 69  >.<li>Make AreFi
0980: 6c 65 41 70 69 73 41 4e 53 49 28 29 20 61 20 6e  leApisANSI() a n
0990: 6f 2d 6f 70 20 6d 61 63 72 6f 20 69 6e 20 77 69  o-op macro in wi
09a0: 6e 43 45 20 73 69 6e 63 65 20 77 69 6e 43 45 20  nCE since winCE 
09b0: 64 6f 65 73 20 6e 6f 74 0a 73 75 70 70 6f 72 74  does not.support
09c0: 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 3c   this function.<
09d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
09e0: 30 37 20 4a 61 6e 75 61 72 79 20 39 20 28 33 2e  07 January 9 (3.
09f0: 33 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  3.10)} {.<li>Fix
0a00: 20 62 75 67 73 20 69 6e 20 74 68 65 20 69 6d 70   bugs in the imp
0a10: 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74  lementation of t
0a20: 68 65 20 6e 65 77 20 0a 3c 61 20 68 72 65 66 3d  he new .<a href=
0a30: 22 63 61 70 69 33 72 65 66 2e 68 74 6d 6c 23 73  "capi3ref.html#s
0a40: 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65 5f 76  qlite3_prepare_v
0a50: 32 22 3e 73 71 6c 69 74 65 33 5f 70 72 65 70 61  2">sqlite3_prepa
0a60: 72 65 5f 76 32 28 29 3c 2f 61 3e 20 41 50 49 0a  re_v2()</a> API.
0a70: 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f  that can lead to
0a80: 20 73 65 67 66 61 75 6c 74 73 2e 3c 2f 6c 69 3e   segfaults.</li>
0a90: 0a 3c 6c 69 3e 46 69 78 20 31 2d 73 65 63 6f 6e  .<li>Fix 1-secon
0aa0: 64 20 72 6f 75 6e 64 2d 6f 66 66 20 65 72 72 6f  d round-off erro
0ab0: 72 73 20 69 6e 20 74 68 65 20 0a 3c 61 20 68 72  rs in the .<a hr
0ac0: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73  ef="http://www.s
0ad0: 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61  qlite.org/cvstra
0ae0: 63 2f 77 69 6b 69 3f 70 3d 44 61 74 65 41 6e 64  c/wiki?p=DateAnd
0af0: 54 69 6d 65 46 75 6e 63 74 69 6f 6e 73 22 3e 0a  TimeFunctions">.
0b00: 73 74 72 66 74 69 6d 65 28 29 3c 2f 61 3e 20 66  strftime()</a> f
0b10: 75 6e 63 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69  unction</li>.<li
0b20: 3e 45 6e 68 61 6e 63 65 20 74 68 65 20 77 69 6e  >Enhance the win
0b30: 64 6f 77 73 20 4f 53 20 6c 61 79 65 72 20 74 6f  dows OS layer to
0b40: 20 70 72 6f 76 69 64 65 20 64 65 74 61 69 6c 65   provide detaile
0b50: 64 20 65 72 72 6f 72 20 63 6f 64 65 73 3c 2f 6c  d error codes</l
0b60: 69 3e 0a 3c 6c 69 3e 57 6f 72 6b 20 61 72 6f 75  i>.<li>Work arou
0b70: 6e 64 20 61 20 77 69 6e 32 6b 20 70 72 6f 62 6c  nd a win2k probl
0b80: 65 6d 20 73 6f 20 74 68 61 74 20 53 51 4c 69 74  em so that SQLit
0b90: 65 20 63 61 6e 20 75 73 65 20 73 69 6e 67 6c 65  e can use single
0ba0: 2d 63 68 61 72 61 63 74 65 72 0a 64 61 74 61 62  -character.datab
0bb0: 61 73 65 20 66 69 6c 65 20 6e 61 6d 65 73 3c 2f  ase file names</
0bc0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 0a 3c 61 20 68  li>.<li>The.<a h
0bd0: 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c  ref="pragma.html
0be0: 23 70 72 61 67 6d 61 5f 75 73 65 72 5f 76 65 72  #pragma_user_ver
0bf0: 73 69 6f 6e 22 3e 75 73 65 72 5f 76 65 72 73 69  sion">user_versi
0c00: 6f 6e 3c 2f 61 3e 20 61 6e 64 0a 3c 61 20 68 72  on</a> and.<a hr
0c10: 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c 23  ef="pragma.html#
0c20: 70 72 61 67 6d 61 5f 73 63 68 65 6d 61 5f 76 65  pragma_schema_ve
0c30: 72 73 69 6f 6e 22 3e 73 63 68 65 6d 61 5f 76 65  rsion">schema_ve
0c40: 72 73 69 6f 6e 3c 2f 61 3e 20 70 72 61 67 6d 61  rsion</a> pragma
0c50: 73 20 0a 63 6f 72 72 65 63 74 6c 79 20 73 65 74  s .correctly set
0c60: 20 74 68 65 69 72 20 63 6f 6c 75 6d 6e 20 6e 61   their column na
0c70: 6d 65 73 20 69 6e 20 74 68 65 20 72 65 73 75 6c  mes in the resul
0c80: 74 20 73 65 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  t set</li>.<li>D
0c90: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
0ca0: 61 74 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ates</li>.}..chn
0cb0: 67 20 7b 32 30 30 37 20 4a 61 6e 75 61 72 79 20  g {2007 January 
0cc0: 34 20 28 33 2e 33 2e 39 29 7d 20 7b 0a 3c 6c 69  4 (3.3.9)} {.<li
0cd0: 3e 46 69 78 20 62 75 67 73 20 69 6e 20 70 61 67  >Fix bugs in pag
0ce0: 65 72 2e 63 20 74 68 61 74 20 63 6f 75 6c 64 20  er.c that could 
0cf0: 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65  lead to database
0d00: 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 74   corruption if t
0d10: 77 6f 0a 70 72 6f 63 65 73 73 65 73 20 62 6f 74  wo.processes bot
0d20: 68 20 74 72 79 20 74 6f 20 72 65 63 6f 76 65 72  h try to recover
0d30: 20 61 20 68 6f 74 20 6a 6f 75 72 6e 61 6c 20 61   a hot journal a
0d40: 74 20 74 68 65 20 73 61 6d 65 20 69 6e 73 74 61  t the same insta
0d50: 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  nt</li>.<li>Adde
0d60: 64 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 63  d the <a href="c
0d70: 61 70 69 33 72 65 66 2e 68 74 6d 6c 23 73 71 6c  api3ref.html#sql
0d80: 69 74 65 33 5f 70 72 65 70 61 72 65 5f 76 32 22  ite3_prepare_v2"
0d90: 3e 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65  >sqlite3_prepare
0da0: 5f 76 32 28 29 3c 2f 61 3e 0a 41 50 49 2e 3c 2f  _v2()</a>.API.</
0db0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 74 68  li>.<li>Fixed th
0dc0: 65 20 22 2e 64 75 6d 70 22 20 63 6f 6d 6d 61 6e  e ".dump" comman
0dd0: 64 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64  d in the command
0de0: 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74 6f 20 73  -line shell to s
0df0: 68 6f 77 0a 69 6e 64 69 63 65 73 2c 20 74 72 69  how.indices, tri
0e00: 67 67 65 72 73 20 61 6e 64 20 76 69 65 77 73 20  ggers and views 
0e10: 61 67 61 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  again.</li>.<li>
0e20: 43 68 61 6e 67 65 20 74 68 65 20 74 61 62 6c 65  Change the table
0e30: 5f 69 6e 66 6f 20 70 72 61 67 6d 61 20 73 6f 20  _info pragma so 
0e40: 74 68 61 74 20 69 74 20 72 65 74 75 72 6e 73 20  that it returns 
0e50: 4e 55 4c 4c 20 66 6f 72 20 74 68 65 20 64 65 66  NULL for the def
0e60: 61 75 6c 74 0a 76 61 6c 75 65 20 69 66 20 74 68  ault.value if th
0e70: 65 72 65 20 69 73 20 6e 6f 20 64 65 66 61 75 6c  ere is no defaul
0e80: 74 20 76 61 6c 75 65 3c 2f 6c 69 3e 0a 3c 6c 69  t value</li>.<li
0e90: 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 6e 6f 6e  >Support for non
0ea0: 2d 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72  -ASCII character
0eb0: 73 20 69 6e 20 77 69 6e 39 35 20 66 69 6c 65 6e  s in win95 filen
0ec0: 61 6d 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 51 75  ames</li>.<li>Qu
0ed0: 65 72 79 20 6f 70 74 69 6d 69 7a 65 72 20 65 6e  ery optimizer en
0ee0: 68 61 6e 63 65 6d 65 6e 74 73 3a 0a 3c 75 6c 3e  hancements:.<ul>
0ef0: 0a 3c 6c 69 3e 4f 70 74 69 6d 69 7a 65 72 20 64  .<li>Optimizer d
0f00: 6f 65 73 20 61 20 62 65 74 74 65 72 20 6a 6f 62  oes a better job
0f10: 20 6f 66 20 75 73 69 6e 67 20 69 6e 64 69 63 65   of using indice
0f20: 73 20 74 6f 20 73 61 74 69 73 66 79 20 4f 52 44  s to satisfy ORD
0f30: 45 52 20 42 59 0a 63 6c 61 75 73 65 73 20 74 68  ER BY.clauses th
0f40: 61 74 20 73 6f 72 74 20 6f 6e 20 74 68 65 20 69  at sort on the i
0f50: 6e 74 65 67 65 72 20 70 72 69 6d 61 72 79 20 6b  nteger primary k
0f60: 65 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20  ey</li>.<li>Use 
0f70: 61 6e 20 69 6e 64 65 78 20 74 6f 20 73 61 74 69  an index to sati
0f80: 73 66 79 20 61 6e 20 49 53 20 4e 55 4c 4c 20 6f  sfy an IS NULL o
0f90: 70 65 72 61 74 6f 72 20 69 6e 20 74 68 65 20 57  perator in the W
0fa0: 48 45 52 45 20 63 6c 61 75 73 65 3c 2f 6c 69 3e  HERE clause</li>
0fb0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
0fc0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
0fd0: 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 74 6f  the optimizer to
0fe0: 20 6d 69 73 73 20 61 6e 20 4f 52 20 6f 70 74 69   miss an OR opti
0ff0: 6d 69 7a 61 74 69 6f 6e 0a 6f 70 70 6f 72 74 75  mization.opportu
1000: 6e 69 74 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  nity</li>.<li>Th
1010: 65 20 6f 70 74 69 6d 69 7a 65 72 20 68 61 73 20  e optimizer has 
1020: 6d 6f 72 65 20 66 72 65 65 64 6f 6d 20 74 6f 20  more freedom to 
1030: 72 65 6f 72 64 65 72 20 74 61 62 6c 65 73 20 69  reorder tables i
1040: 6e 20 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73  n the FROM claus
1050: 65 0a 65 76 65 6e 20 69 6e 20 74 68 65 72 65 20  e.even in there 
1060: 61 72 65 20 4c 45 46 54 20 6a 6f 69 6e 73 2e 3c  are LEFT joins.<
1070: 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 6c 69 3e 45  /li>.</ul>.<li>E
1080: 78 74 65 6e 73 69 6f 6e 20 6c 6f 61 64 69 6e 67  xtension loading
1090: 20 73 75 70 70 6f 72 74 65 64 20 61 64 64 65 64   supported added
10a0: 20 74 6f 20 77 69 6e 43 45 3c 2f 6c 69 3e 0a 3c   to winCE</li>.<
10b0: 6c 69 3e 41 6c 6c 6f 77 20 63 6f 6e 73 74 72 61  li>Allow constra
10c0: 69 6e 74 20 6e 61 6d 65 73 20 6f 6e 20 74 68 65  int names on the
10d0: 20 44 45 46 41 55 4c 54 20 63 6c 61 75 73 65 20   DEFAULT clause 
10e0: 69 6e 20 61 20 74 61 62 6c 65 20 64 65 66 69 6e  in a table defin
10f0: 69 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ition</li>.<li>A
1100: 64 64 65 64 20 74 68 65 20 22 2e 62 61 69 6c 22  dded the ".bail"
1110: 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20   command to the 
1120: 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65  command-line she
1130: 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  ll</li>.<li>Make
1140: 20 43 53 56 20 28 63 6f 6d 6d 61 20 73 65 70 61   CSV (comma sepa
1150: 72 61 74 65 20 76 61 6c 75 65 29 20 6f 75 74 70  rate value) outp
1160: 75 74 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 6d  ut from the comm
1170: 61 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 0a 6d  and-line shell.m
1180: 6f 72 65 20 63 6c 6f 73 65 6c 79 20 61 6c 69 67  ore closely alig
1190: 6e 65 64 20 74 6f 20 61 63 63 65 70 74 65 64 20  ned to accepted 
11a0: 70 72 61 63 74 69 63 65 3c 2f 6c 69 3e 0a 3c 6c  practice</li>.<l
11b0: 69 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 46  i>Experimental F
11c0: 54 53 32 20 6d 6f 64 75 6c 65 20 61 64 64 65 64  TS2 module added
11d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 73 71  </li>.<li>Use sq
11e0: 6c 69 74 65 33 5f 6d 70 72 69 6e 74 66 28 29 20  lite3_mprintf() 
11f0: 69 6e 73 74 65 61 64 20 6f 66 20 73 74 72 64 75  instead of strdu
1200: 70 28 29 20 74 6f 20 61 76 6f 69 64 20 6c 69 62  p() to avoid lib
1210: 63 20 64 65 70 65 6e 64 65 6e 63 69 65 73 3c 2f  c dependencies</
1220: 6c 69 3e 0a 3c 6c 69 3e 56 41 43 55 55 4d 20 75  li>.<li>VACUUM u
1230: 73 65 73 20 61 20 74 65 6d 70 6f 72 61 72 79 20  ses a temporary 
1240: 66 69 6c 65 20 69 6e 20 74 68 65 20 6f 66 66 69  file in the offi
1250: 63 69 61 6c 20 54 45 4d 50 20 66 6f 6c 64 65 72  cial TEMP folder
1260: 2c 20 6e 6f 74 20 69 6e 20 74 68 65 0a 73 61 6d  , not in the.sam
1270: 65 20 64 69 72 65 63 74 6f 72 79 20 61 73 20 74  e directory as t
1280: 68 65 20 6f 72 69 67 69 6e 61 6c 20 64 61 74 61  he original data
1290: 62 61 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  base</li>.<li>Th
12a0: 65 20 70 72 65 66 69 78 20 6f 6e 20 74 65 6d 70  e prefix on temp
12b0: 6f 72 61 72 79 20 66 69 6c 65 6e 61 6d 65 73 20  orary filenames 
12c0: 6f 6e 20 77 69 6e 64 6f 77 73 20 69 73 20 63 68  on windows is ch
12d0: 61 6e 67 65 64 20 66 72 6f 6d 20 22 73 71 6c 69  anged from "sqli
12e0: 74 65 22 0a 74 6f 20 22 65 74 69 6c 71 73 22 2e  te".to "etilqs".
12f0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1300: 30 30 36 20 4f 63 74 6f 62 65 72 20 39 20 28 33  006 October 9 (3
1310: 2e 33 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 53 75 70  .3.8)} {.<li>Sup
1320: 70 6f 72 74 20 66 6f 72 20 66 75 6c 6c 20 74 65  port for full te
1330: 78 74 20 73 65 61 72 63 68 20 75 73 69 6e 67 20  xt search using 
1340: 74 68 65 0a 3c 61 20 68 72 65 66 3d 22 68 74 74  the.<a href="htt
1350: 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f  p://www.sqlite.o
1360: 72 67 2f 63 76 73 74 72 61 63 2f 77 69 6b 69 3f  rg/cvstrac/wiki?
1370: 70 3d 46 75 6c 6c 54 65 78 74 49 6e 64 65 78 22  p=FullTextIndex"
1380: 3e 46 54 53 31 20 6d 6f 64 75 6c 65 3c 2f 61 3e  >FTS1 module</a>
1390: 0a 28 62 65 74 61 29 3c 2f 6c 69 3e 0a 3c 6c 69  .(beta)</li>.<li
13a0: 3e 41 64 64 65 64 20 4f 53 2d 58 20 6c 6f 63 6b  >Added OS-X lock
13b0: 69 6e 67 20 70 61 74 63 68 65 73 20 28 62 65 74  ing patches (bet
13c0: 61 20 2d 20 64 69 73 61 62 6c 65 64 20 62 79 20  a - disabled by 
13d0: 64 65 66 61 75 6c 74 29 3c 2f 6c 69 3e 0a 3c 6c  default)</li>.<l
13e0: 69 3e 49 6e 74 72 6f 64 75 63 65 20 65 78 74 65  i>Introduce exte
13f0: 6e 64 65 64 20 65 72 72 6f 72 20 63 6f 64 65 73  nded error codes
1400: 20 61 6e 64 20 61 64 64 20 65 72 72 6f 72 20 63   and add error c
1410: 6f 64 65 73 20 66 6f 72 20 76 61 72 69 6f 75 73  odes for various
1420: 0a 6b 69 6e 64 73 20 6f 66 20 49 2f 4f 20 65 72  .kinds of I/O er
1430: 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  rors.</li>.<li>A
1440: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
1450: 20 49 46 20 45 58 49 53 54 53 20 6f 6e 20 43 52   IF EXISTS on CR
1460: 45 41 54 45 2f 44 52 4f 50 20 54 52 49 47 47 45  EATE/DROP TRIGGE
1470: 52 2f 56 49 45 57 3c 2f 6c 69 3e 0a 3c 6c 69 3e  R/VIEW</li>.<li>
1480: 46 69 78 20 74 68 65 20 72 65 67 72 65 73 73 69  Fix the regressi
1490: 6f 6e 20 74 65 73 74 20 73 75 69 74 65 20 73 6f  on test suite so
14a0: 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77   that it works w
14b0: 69 74 68 20 54 63 6c 38 2e 35 3c 2f 6c 69 3e 0a  ith Tcl8.5</li>.
14c0: 3c 6c 69 3e 45 6e 68 61 6e 63 65 20 73 71 6c 69  <li>Enhance sqli
14d0: 74 65 33 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a  te3_set_authoriz
14e0: 65 72 28 29 20 74 6f 20 70 72 6f 76 69 64 65 20  er() to provide 
14f0: 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 20  notification of 
1500: 63 61 6c 6c 73 20 74 6f 0a 20 20 20 20 53 51 4c  calls to.    SQL
1510: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
1520: 0a 3c 6c 69 3e 41 64 64 65 64 20 65 78 70 65 72  .<li>Added exper
1530: 69 6d 65 6e 74 61 6c 20 41 50 49 3a 20 20 73 71  imental API:  sq
1540: 6c 69 74 65 33 5f 61 75 74 6f 5f 65 78 74 65 6e  lite3_auto_exten
1550: 73 69 6f 6e 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  sion()</li>.<li>
1560: 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75  Various minor bu
1570: 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a  g fixes</li>.}..
1580: 63 68 6e 67 20 7b 32 30 30 36 20 41 75 67 75 73  chng {2006 Augus
1590: 74 20 31 32 20 28 33 2e 33 2e 37 29 7d 20 7b 0a  t 12 (3.3.7)} {.
15a0: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
15b0: 74 20 66 6f 72 0a 3c 61 20 68 72 65 66 3d 22 68  t for.<a href="h
15c0: 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65  ttp://www.sqlite
15d0: 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f 77 69 6b  .org/cvstrac/wik
15e0: 69 3f 70 3d 56 69 72 74 75 61 6c 54 61 62 6c 65  i?p=VirtualTable
15f0: 73 22 3e 76 69 72 74 75 61 6c 20 74 61 62 6c 65  s">virtual table
1600: 73 3c 2f 61 3e 0a 28 62 65 74 61 29 3c 2f 6c 69  s</a>.(beta)</li
1610: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
1620: 6f 72 74 20 66 6f 72 20 0a 3c 61 20 68 72 65 66  ort for .<a href
1630: 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c  ="http://www.sql
1640: 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f  ite.org/cvstrac/
1650: 77 69 6b 69 3f 70 3d 4c 6f 61 64 61 62 6c 65 45  wiki?p=LoadableE
1660: 78 74 65 6e 73 69 6f 6e 73 22 3e 0a 64 79 6e 61  xtensions">.dyna
1670: 6d 69 63 61 6c 6c 79 20 6c 6f 61 64 65 64 20 65  mically loaded e
1680: 78 74 65 6e 73 69 6f 6e 73 3c 2f 61 3e 20 28 62  xtensions</a> (b
1690: 65 74 61 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  eta)</li>.<li>Th
16a0: 65 20 0a 3c 61 20 68 72 65 66 3d 22 63 61 70 69  e .<a href="capi
16b0: 33 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65  3ref.html#sqlite
16c0: 33 5f 69 6e 74 65 72 72 75 70 74 22 3e 73 71 6c  3_interrupt">sql
16d0: 69 74 65 33 5f 69 6e 74 65 72 72 75 70 74 28 29  ite3_interrupt()
16e0: 3c 2f 61 3e 0a 72 6f 75 74 69 6e 65 20 63 61 6e  </a>.routine can
16f0: 20 62 65 20 63 61 6c 6c 65 64 20 66 6f 72 20 61   be called for a
1700: 20 64 69 66 66 65 72 65 6e 74 20 74 68 72 65 61   different threa
1710: 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  d</li>.<li>Added
1720: 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 6c 61   the <a href="la
1730: 6e 67 5f 65 78 70 72 2e 68 74 6d 6c 23 6d 61 74  ng_expr.html#mat
1740: 63 68 22 3e 4d 41 54 43 48 3c 2f 61 3e 20 6f 70  ch">MATCH</a> op
1750: 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  erator.</li>.<li
1760: 3e 54 68 65 20 64 65 66 61 75 6c 74 20 66 69 6c  >The default fil
1770: 65 20 66 6f 72 6d 61 74 20 69 73 20 6e 6f 77 20  e format is now 
1780: 31 2e 20 20 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  1.  .}..chng {20
1790: 30 36 20 4a 75 6e 65 20 36 20 28 33 2e 33 2e 36  06 June 6 (3.3.6
17a0: 29 7d 20 7b 0a 3c 6c 69 3e 50 6c 61 79 73 20 62  )} {.<li>Plays b
17b0: 65 74 74 65 72 20 77 69 74 68 20 76 69 72 75 73  etter with virus
17c0: 20 73 63 61 6e 6e 65 72 73 20 6f 6e 20 77 69 6e   scanners on win
17d0: 64 6f 77 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 61  dows</li>.<li>Fa
17e0: 73 74 65 72 20 3a 6d 65 6d 6f 72 79 3a 20 64 61  ster :memory: da
17f0: 74 61 62 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  tabases</li>.<li
1800: 3e 46 69 78 20 61 6e 20 6f 62 73 63 75 72 65 20  >Fix an obscure 
1810: 73 65 67 66 61 75 6c 74 20 69 6e 20 55 54 46 2d  segfault in UTF-
1820: 38 20 74 6f 20 55 54 46 2d 31 36 20 63 6f 6e 76  8 to UTF-16 conv
1830: 65 72 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69  ersions</li>.<li
1840: 3e 41 64 64 65 64 20 64 72 69 76 65 72 20 66 6f  >Added driver fo
1850: 72 20 4f 53 2f 32 3c 2f 6c 69 3e 0a 3c 6c 69 3e  r OS/2</li>.<li>
1860: 43 6f 72 72 65 63 74 20 63 6f 6c 75 6d 6e 20 6d  Correct column m
1870: 65 74 61 2d 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  eta-information 
1880: 72 65 74 75 72 6e 65 64 20 66 6f 72 20 61 67 67  returned for agg
1890: 72 65 67 61 74 65 20 71 75 65 72 69 65 73 3c 2f  regate queries</
18a0: 6c 69 3e 0a 3c 6c 69 3e 45 6e 68 61 6e 63 65 64  li>.<li>Enhanced
18b0: 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 45 58 50   output from EXP
18c0: 4c 41 49 4e 20 51 55 45 52 59 20 50 4c 41 4e 3c  LAIN QUERY PLAN<
18d0: 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4d 49 54 20 30  /li>.<li>LIMIT 0
18e0: 20 6e 6f 77 20 77 6f 72 6b 73 20 6f 6e 20 73 75   now works on su
18f0: 62 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 3c 6c  bqueries</li>.<l
1900: 69 3e 42 75 67 20 66 69 78 65 73 20 61 6e 64 20  i>Bug fixes and 
1910: 70 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61  performance enha
1920: 6e 63 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20  ncements in the 
1930: 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 65 72 3c  query optimizer<
1940: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74  /li>.<li>Correct
1950: 6c 79 20 68 61 6e 64 6c 65 20 4e 55 4c 4c 20 66  ly handle NULL f
1960: 69 6c 65 6e 61 6d 65 73 20 69 6e 20 41 54 54 41  ilenames in ATTA
1970: 43 48 20 61 6e 64 20 44 45 54 41 43 48 3c 2f 6c  CH and DETACH</l
1980: 69 3e 0a 3c 6c 69 3e 49 6e 70 72 6f 76 65 64 20  i>.<li>Inproved 
1990: 73 79 6e 74 61 78 20 65 72 72 6f 72 20 6d 65 73  syntax error mes
19a0: 73 61 67 65 73 20 69 6e 20 74 68 65 20 70 61 72  sages in the par
19b0: 73 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ser</li>.<li>Fix
19c0: 20 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 72   type coercion r
19d0: 75 6c 65 73 20 66 6f 72 20 74 68 65 20 49 4e 20  ules for the IN 
19e0: 6f 70 65 72 61 74 6f 72 3c 2f 6c 69 3e 0a 7d 0a  operator</li>.}.
19f0: 0a 63 68 6e 67 20 7b 32 30 30 36 20 41 70 72 69  .chng {2006 Apri
1a00: 6c 20 35 20 28 33 2e 33 2e 35 29 7d 20 7b 0a 3c  l 5 (3.3.5)} {.<
1a10: 6c 69 3e 43 48 45 43 4b 20 63 6f 6e 73 74 72 61  li>CHECK constra
1a20: 69 6e 74 73 20 75 73 65 20 63 6f 6e 66 6c 69 63  ints use conflic
1a30: 74 20 72 65 73 6f 6c 75 74 69 6f 6e 20 61 6c 67  t resolution alg
1a40: 6f 72 69 74 68 6d 73 20 63 6f 72 72 65 63 74 6c  orithms correctl
1a50: 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  y.</li>.<li>The 
1a60: 53 55 4d 28 29 20 66 75 6e 63 74 69 6f 6e 20 74  SUM() function t
1a70: 68 72 6f 77 73 20 61 6e 20 65 72 72 6f 72 20 6f  hrows an error o
1a80: 6e 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c  n integer overfl
1a90: 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 6f  ow.</li>.<li>Cho
1aa0: 6f 73 65 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6e  ose the column n
1ab0: 61 6d 65 73 20 69 6e 20 61 20 63 6f 6d 70 6f 75  ames in a compou
1ac0: 6e 64 20 71 75 65 72 79 20 66 72 6f 6d 20 74 68  nd query from th
1ad0: 65 20 6c 65 66 74 2d 6d 6f 73 74 20 53 45 4c 45  e left-most SELE
1ae0: 43 54 0a 20 20 20 20 69 6e 73 74 65 61 64 20 6f  CT.    instead o
1af0: 66 20 74 68 65 20 72 69 67 68 74 2d 6d 6f 73 74  f the right-most
1b00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73  .</li>.<li>The s
1b10: 71 6c 69 74 65 33 5f 63 72 65 61 74 65 5f 63 6f  qlite3_create_co
1b20: 6c 6c 61 74 69 6f 6e 28 29 20 66 75 6e 63 74 69  llation() functi
1b30: 6f 6e 0a 20 20 20 20 68 6f 6e 6f 72 73 20 74 68  on.    honors th
1b40: 65 20 53 51 4c 49 54 45 5f 55 54 46 31 36 5f 41  e SQLITE_UTF16_A
1b50: 4c 49 47 4e 45 44 20 66 6c 61 67 2e 3c 2f 6c 69  LIGNED flag.</li
1b60: 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45 5f 53 45 43  >.<li>SQLITE_SEC
1b70: 55 52 45 5f 44 45 4c 45 54 45 20 63 6f 6d 70 69  URE_DELETE compi
1b80: 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20 63  le-time option c
1b90: 61 75 73 65 73 20 64 65 6c 65 74 65 73 20 74 6f  auses deletes to
1ba0: 20 6f 76 65 72 77 72 69 74 65 0a 20 20 20 20 6f   overwrite.    o
1bb0: 6c 64 20 64 61 74 61 20 77 69 74 68 20 7a 65 72  ld data with zer
1bc0: 6f 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 65 74  os.</li>.<li>Det
1bd0: 65 63 74 20 69 6e 74 65 67 65 72 20 6f 76 65 72  ect integer over
1be0: 66 6c 6f 77 20 69 6e 20 61 62 73 28 29 2e 3c 2f  flow in abs().</
1bf0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 72 61 6e 64  li>.<li>The rand
1c00: 6f 6d 28 29 20 66 75 6e 63 74 69 6f 6e 20 70 72  om() function pr
1c10: 6f 76 69 64 65 73 20 36 34 20 62 69 74 73 20 6f  ovides 64 bits o
1c20: 66 20 72 61 6e 64 6f 6d 6e 65 73 73 20 69 6e 73  f randomness ins
1c30: 74 65 61 64 20 6f 66 0a 20 20 20 20 6f 6e 6c 79  tead of.    only
1c40: 20 33 32 20 62 69 74 73 2e 3c 2f 6c 69 3e 0a 3c   32 bits.</li>.<
1c50: 6c 69 3e 50 61 72 73 65 72 20 64 65 74 65 63 74  li>Parser detect
1c60: 73 20 61 6e 64 20 72 65 70 6f 72 74 73 20 61 75  s and reports au
1c70: 74 6f 6d 61 74 6f 6e 20 73 74 61 63 6b 20 6f 76  tomaton stack ov
1c80: 65 72 66 6c 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69  erflow.</li>.<li
1c90: 3e 43 68 61 6e 67 65 20 74 68 65 20 72 6f 75 6e  >Change the roun
1ca0: 64 28 29 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20  d() function to 
1cb0: 72 65 74 75 72 6e 20 52 45 41 4c 20 69 6e 73 74  return REAL inst
1cc0: 65 61 64 20 6f 66 20 54 45 58 54 2e 3c 2f 6c 69  ead of TEXT.</li
1cd0: 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 57 48 45 52  >.<li>Allow WHER
1ce0: 45 20 63 6c 61 75 73 65 20 74 65 72 6d 73 20 6f  E clause terms o
1cf0: 6e 20 74 68 65 20 6c 65 66 74 20 74 61 62 6c 65  n the left table
1d00: 20 6f 66 20 61 20 4c 45 46 54 20 4f 55 54 45 52   of a LEFT OUTER
1d10: 20 4a 4f 49 4e 20 74 6f 0a 20 20 20 20 63 6f 6e   JOIN to.    con
1d20: 74 61 69 6e 20 61 67 67 72 65 67 61 74 65 20 73  tain aggregate s
1d30: 75 62 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a  ubqueries.</li>.
1d40: 3c 6c 69 3e 53 6b 69 70 20 6f 76 65 72 20 6c 65  <li>Skip over le
1d50: 61 64 69 6e 67 20 73 70 61 63 65 73 20 69 6e 20  ading spaces in 
1d60: 74 65 78 74 20 74 6f 20 6e 75 6d 65 72 69 63 20  text to numeric 
1d70: 63 6f 6e 76 65 72 73 69 6f 6e 73 2e 3c 2f 6c 69  conversions.</li
1d80: 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 6d 69  >.<li>Various mi
1d90: 6e 6f 72 20 62 75 67 20 61 6e 64 20 64 6f 63 75  nor bug and docu
1da0: 6d 65 6e 74 61 74 69 6f 6e 20 74 79 70 6f 20 66  mentation typo f
1db0: 69 78 65 73 20 61 6e 64 0a 20 20 20 20 70 65 72  ixes and.    per
1dc0: 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65  formance enhance
1dd0: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ments.</li>.}..c
1de0: 68 6e 67 20 7b 32 30 30 36 20 46 65 62 72 75 61  hng {2006 Februa
1df0: 72 79 20 31 31 20 28 33 2e 33 2e 34 29 7d 20 7b  ry 11 (3.3.4)} {
1e00: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 6c 75 6e 64  .<li>Fix a blund
1e10: 65 72 20 69 6e 20 74 68 65 20 55 6e 69 78 20 6d  er in the Unix m
1e20: 75 74 65 78 20 69 6d 70 6c 65 6d 65 6e 74 61 74  utex implementat
1e30: 69 6f 6e 20 74 68 61 74 20 63 61 6e 20 6c 65 61  ion that can lea
1e40: 64 20 74 6f 0a 64 65 61 64 6c 6f 63 6b 20 6f 6e  d to.deadlock on
1e50: 20 6d 75 6c 74 69 74 68 72 65 61 64 65 64 20 73   multithreaded s
1e60: 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ystems.</li>.<li
1e70: 3e 46 69 78 20 61 6e 20 61 6c 69 67 6e 6d 65 6e  >Fix an alignmen
1e80: 74 20 70 72 6f 62 6c 65 6d 20 6f 6e 20 36 34 2d  t problem on 64-
1e90: 62 69 74 20 6d 61 63 68 69 6e 65 73 3c 2f 6c 69  bit machines</li
1ea0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
1eb0: 66 75 6c 6c 66 73 79 6e 63 20 70 72 61 67 6d 61  fullfsync pragma
1ec0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
1ed0: 6e 20 6f 70 74 69 6d 69 7a 65 72 20 62 75 67 20  n optimizer bug 
1ee0: 74 68 61 74 20 63 6f 75 6c 64 20 68 61 76 65 20  that could have 
1ef0: 63 61 75 73 65 64 20 73 6f 6d 65 20 75 6e 75 73  caused some unus
1f00: 75 61 6c 20 4c 45 46 54 20 4f 55 54 45 52 20 4a  ual LEFT OUTER J
1f10: 4f 49 4e 73 0a 74 6f 20 67 69 76 65 20 69 6e 63  OINs.to give inc
1f20: 6f 72 72 65 63 74 20 72 65 73 75 6c 74 73 2e 3c  orrect results.<
1f30: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 53 55 4d  /li>.<li>The SUM
1f40: 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 63 74   function detect
1f50: 73 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c  s integer overfl
1f60: 6f 77 20 61 6e 64 20 63 6f 6e 76 65 72 74 73 20  ow and converts 
1f70: 74 6f 20 61 63 63 75 6d 75 6c 61 74 69 6e 67 0a  to accumulating.
1f80: 61 6e 20 61 70 70 72 6f 78 69 6d 61 74 65 20 72  an approximate r
1f90: 65 73 75 6c 74 20 75 73 69 6e 67 20 66 6c 6f 61  esult using floa
1fa0: 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65  ting point numbe
1fb0: 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 48 6f 73 74  rs</li>.<li>Host
1fc0: 20 70 61 72 61 6d 65 74 65 72 20 6e 61 6d 65 73   parameter names
1fd0: 20 63 61 6e 20 62 65 67 69 6e 20 77 69 74 68 20   can begin with 
1fe0: 27 40 27 20 66 6f 72 20 63 6f 6d 70 61 74 69 62  '@' for compatib
1ff0: 69 6c 69 74 79 20 77 69 74 68 20 53 51 4c 20 53  ility with SQL S
2000: 65 72 76 65 72 2e 0a 3c 2f 6c 69 3e 0a 3c 6c 69  erver..</li>.<li
2010: 3e 4f 74 68 65 72 20 6d 69 73 63 65 6c 6c 61 6e  >Other miscellan
2020: 65 6f 75 73 20 62 75 67 20 66 69 78 65 73 3c 2f  eous bug fixes</
2030: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
2040: 36 20 4a 61 6e 75 61 72 79 20 33 31 20 28 33 2e  6 January 31 (3.
2050: 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f  3.3)} {.<li>Remo
2060: 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ved support for 
2070: 61 6e 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63  an ON CONFLICT c
2080: 6c 61 75 73 65 20 6f 6e 20 43 52 45 41 54 45 20  lause on CREATE 
2090: 49 4e 44 45 58 20 2d 20 69 74 20 6e 65 76 65 72  INDEX - it never
20a0: 0a 77 6f 72 6b 65 64 20 63 6f 72 72 65 63 74 6c  .worked correctl
20b0: 79 20 73 6f 20 74 68 69 73 20 73 68 6f 75 6c 64  y so this should
20c0: 20 6e 6f 74 20 70 72 65 73 65 6e 74 20 61 6e 79   not present any
20d0: 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74   backward compat
20e0: 69 62 69 6c 69 74 79 0a 70 72 6f 62 6c 65 6d 73  ibility.problems
20f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 68 6f  .</li>.<li>Autho
2100: 72 69 7a 65 72 20 63 61 6c 6c 62 61 63 6b 20 6e  rizer callback n
2110: 6f 77 20 6e 6f 74 69 66 69 65 64 20 6f 66 20 41  ow notified of A
2120: 4c 54 45 52 20 54 41 42 4c 45 20 41 44 44 20 43  LTER TABLE ADD C
2130: 4f 4c 55 4d 4e 20 63 6f 6d 6d 61 6e 64 73 3c 2f  OLUMN commands</
2140: 6c 69 3e 0a 3c 6c 69 3e 41 66 74 65 72 20 61 6e  li>.<li>After an
2150: 79 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65  y changes to the
2160: 20 54 45 4d 50 20 64 61 74 61 62 61 73 65 20 73   TEMP database s
2170: 63 68 65 6d 61 2c 20 61 6c 6c 20 70 72 65 70 61  chema, all prepa
2180: 72 65 64 20 73 74 61 74 65 6d 65 6e 74 73 0a 61  red statements.a
2190: 72 65 20 69 6e 76 61 6c 69 64 61 74 65 64 20 61  re invalidated a
21a0: 6e 64 20 6d 75 73 74 20 62 65 20 72 65 63 72 65  nd must be recre
21b0: 61 74 65 64 20 75 73 69 6e 67 20 61 20 6e 65 77  ated using a new
21c0: 20 63 61 6c 6c 20 74 6f 0a 73 71 6c 69 74 65 33   call to.sqlite3
21d0: 5f 70 72 65 70 61 72 65 28 29 3c 2f 6c 69 3e 0a  _prepare()</li>.
21e0: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
21f0: 62 75 67 20 66 69 78 65 73 20 69 6e 20 70 72 65  bug fixes in pre
2200: 70 61 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65  paration for the
2210: 20 66 69 72 73 74 20 73 74 61 62 6c 65 20 72 65   first stable re
2220: 6c 65 61 73 65 0a 6f 66 20 76 65 72 73 69 6f 6e  lease.of version
2230: 20 33 2e 33 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e   3.3</li>.}..chn
2240: 67 20 7b 32 30 30 36 20 4a 61 6e 75 61 72 79 20  g {2006 January 
2250: 32 34 20 28 33 2e 33 2e 32 20 62 65 74 61 29 7d  24 (3.3.2 beta)}
2260: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73   {.<li>Bug fixes
2270: 20 61 6e 64 20 73 70 65 65 64 20 69 6d 70 72 6f   and speed impro
2280: 76 65 6d 65 6e 74 73 2e 20 20 49 6d 70 72 6f 76  vements.  Improv
2290: 65 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65  ed test coverage
22a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
22b0: 65 73 20 74 6f 20 74 68 65 20 4f 53 2d 6c 61 79  es to the OS-lay
22c0: 65 72 20 69 6e 74 65 72 66 61 63 65 3a 20 6d 75  er interface: mu
22d0: 74 65 78 65 73 20 6d 75 73 74 20 6e 6f 77 20 62  texes must now b
22e0: 65 20 72 65 63 75 72 73 69 76 65 2e 3c 2f 6c 69  e recursive.</li
22f0: 3e 0a 3c 6c 69 3e 44 69 73 63 6f 6e 74 69 6e 75  >.<li>Discontinu
2300: 65 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 72  e the use of thr
2310: 65 61 64 2d 73 70 65 63 69 66 69 63 20 64 61 74  ead-specific dat
2320: 61 20 66 6f 72 20 6f 75 74 2d 6f 66 2d 6d 65 6d  a for out-of-mem
2330: 6f 72 79 0a 65 78 63 65 70 74 69 6f 6e 20 68 61  ory.exception ha
2340: 6e 64 6c 69 6e 67 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ndling</li>.}..c
2350: 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75 61 72  hng {2006 Januar
2360: 79 20 31 36 20 28 33 2e 33 2e 31 20 61 6c 70 68  y 16 (3.3.1 alph
2370: 61 29 7d 20 7b 0a 3c 6c 69 3e 43 6f 75 6e 74 6c  a)} {.<li>Countl
2380: 65 73 73 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  ess bug fixes</l
2390: 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70  i>.<li>Speed imp
23a0: 72 6f 76 65 6d 65 6e 74 73 3c 2f 6c 69 3e 0a 3c  rovements</li>.<
23b0: 6c 69 3e 44 61 74 61 62 61 73 65 20 63 6f 6e 6e  li>Database conn
23c0: 65 63 74 69 6f 6e 73 20 63 61 6e 20 6e 6f 77 20  ections can now 
23d0: 62 65 20 75 73 65 64 20 62 79 20 6d 75 6c 74 69  be used by multi
23e0: 70 6c 65 20 74 68 72 65 61 64 73 2c 20 6e 6f 74  ple threads, not
23f0: 20 6a 75 73 74 0a 74 68 65 20 74 68 72 65 61 64   just.the thread
2400: 20 69 6e 20 77 68 69 63 68 20 74 68 65 79 20 77   in which they w
2410: 65 72 65 20 63 72 65 61 74 65 64 2e 3c 2f 6c 69  ere created.</li
2420: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20  >.}..chng {2006 
2430: 4a 61 6e 75 61 72 79 20 31 30 20 28 33 2e 33 2e  January 10 (3.3.
2440: 30 20 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e  0 alpha)} {.<li>
2450: 43 48 45 43 4b 20 63 6f 6e 73 74 72 61 69 6e 74  CHECK constraint
2460: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 46 20 45 58  s</li>.<li>IF EX
2470: 49 53 54 53 20 61 6e 64 20 49 46 20 4e 4f 54 20  ISTS and IF NOT 
2480: 45 58 49 53 54 53 20 63 6c 61 75 73 65 73 20 6f  EXISTS clauses o
2490: 6e 20 43 52 45 41 54 45 2f 44 52 4f 50 20 54 41  n CREATE/DROP TA
24a0: 42 4c 45 2f 49 4e 44 45 58 2e 3c 2f 6c 69 3e 0a  BLE/INDEX.</li>.
24b0: 3c 6c 69 3e 44 45 53 43 20 69 6e 64 69 63 65 73  <li>DESC indices
24c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65  </li>.<li>More e
24d0: 66 66 69 63 69 65 6e 74 20 65 6e 63 6f 64 69 6e  fficient encodin
24e0: 67 20 6f 66 20 62 6f 6f 6c 65 61 6e 20 76 61 6c  g of boolean val
24f0: 75 65 73 20 72 65 73 75 6c 74 69 6e 67 20 69 6e  ues resulting in
2500: 20 73 6d 61 6c 6c 65 72 20 64 61 74 61 62 61 73   smaller databas
2510: 65 0a 66 69 6c 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  e.files</li>.<li
2520: 3e 4d 6f 72 65 20 61 67 67 72 65 73 73 69 76 65  >More aggressive
2530: 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 46 4c 4f   SQLITE_OMIT_FLO
2540: 41 54 49 4e 47 5f 50 4f 49 4e 54 3c 2f 6c 69 3e  ATING_POINT</li>
2550: 0a 3c 6c 69 3e 53 65 70 61 72 61 74 65 20 49 4e  .<li>Separate IN
2560: 54 45 47 45 52 20 61 6e 64 20 52 45 41 4c 20 61  TEGER and REAL a
2570: 66 66 69 6e 69 74 79 3c 2f 6c 69 3e 0a 3c 6c 69  ffinity</li>.<li
2580: 3e 41 64 64 65 64 20 61 20 76 69 72 74 75 61 6c  >Added a virtual
2590: 20 66 75 6e 63 74 69 6f 6e 20 6c 61 79 65 72 20   function layer 
25a0: 66 6f 72 20 74 68 65 20 4f 53 20 69 6e 74 65 72  for the OS inter
25b0: 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 22 65  face</li>.<li>"e
25c0: 78 69 73 74 73 22 20 6d 65 74 68 6f 64 20 61 64  xists" method ad
25d0: 64 65 64 20 74 6f 20 74 68 65 20 54 43 4c 20 69  ded to the TCL i
25e0: 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c  nterface</li>.<l
25f0: 69 3e 49 6d 70 72 6f 76 65 64 20 72 65 73 70 6f  i>Improved respo
2600: 6e 73 65 20 74 6f 20 6f 75 74 2d 6f 66 2d 6d 65  nse to out-of-me
2610: 6d 6f 72 79 20 65 72 72 6f 72 73 3c 2f 6c 69 3e  mory errors</li>
2620: 0a 3c 6c 69 3e 44 61 74 61 62 61 73 65 20 63 61  .<li>Database ca
2630: 63 68 65 20 63 61 6e 20 62 65 20 6f 70 74 69 6f  che can be optio
2640: 6e 61 6c 6c 79 20 73 68 61 72 65 64 20 62 65 74  nally shared bet
2650: 77 65 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 73  ween connections
2660: 0a 69 6e 20 74 68 65 20 73 61 6d 65 20 74 68 72  .in the same thr
2670: 65 61 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 70 74  ead</li>.<li>Opt
2680: 69 6f 6e 61 6c 20 52 45 41 44 20 55 4e 43 4f 4d  ional READ UNCOM
2690: 4d 49 54 54 45 44 20 69 73 6f 6c 61 74 69 6f 6e  MITTED isolation
26a0: 20 28 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65   (instead of the
26b0: 20 64 65 66 61 75 6c 74 0a 69 73 6f 6c 61 74 69   default.isolati
26c0: 6f 6e 20 6c 65 76 65 6c 20 6f 66 20 53 45 52 49  on level of SERI
26d0: 41 4c 49 5a 41 42 4c 45 29 20 61 6e 64 20 74 61  ALIZABLE) and ta
26e0: 62 6c 65 20 6c 65 76 65 6c 20 6c 6f 63 6b 69 6e  ble level lockin
26f0: 67 20 77 68 65 6e 0a 64 61 74 61 62 61 73 65 20  g when.database 
2700: 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 73 68 61 72  connections shar
2710: 65 20 61 20 63 6f 6d 6d 6f 6e 20 63 61 63 68 65  e a common cache
2720: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2730: 32 30 30 35 20 44 65 63 65 6d 62 65 72 20 31 39  2005 December 19
2740: 20 28 33 2e 32 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.8)} {.<li>
2750: 46 69 78 20 61 6e 20 6f 62 73 63 75 72 65 20 62  Fix an obscure b
2760: 75 67 20 74 68 61 74 20 63 61 6e 20 63 61 75 73  ug that can caus
2770: 65 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  e database corru
2780: 70 74 69 6f 6e 20 75 6e 64 65 72 20 74 68 65 0a  ption under the.
2790: 66 6f 6c 6c 6f 77 69 6e 67 20 75 6e 75 73 75 61  following unusua
27a0: 6c 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 3a  l circumstances:
27b0: 20 41 20 6c 61 72 67 65 20 49 4e 53 45 52 54 20   A large INSERT 
27c0: 6f 72 20 55 50 44 41 54 45 20 73 74 61 74 65 6d  or UPDATE statem
27d0: 65 6e 74 20 77 68 69 63 68 20 0a 69 73 20 70 61  ent which .is pa
27e0: 72 74 20 6f 66 20 61 6e 20 65 76 65 6e 20 6c 61  rt of an even la
27f0: 72 67 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e  rger transaction
2800: 20 66 61 69 6c 73 20 64 75 65 20 74 6f 20 61 20   fails due to a 
2810: 75 6e 69 71 75 65 6e 65 73 73 20 63 6f 6e 74 72  uniqueness contr
2820: 61 69 6e 74 0a 62 75 74 20 74 68 65 20 63 6f 6e  aint.but the con
2830: 74 61 69 6e 69 6e 67 20 74 72 61 6e 73 61 63 74  taining transact
2840: 69 6f 6e 20 63 6f 6d 6d 69 74 73 2e 3c 2f 6c 69  ion commits.</li
2850: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
2860: 44 65 63 65 6d 62 65 72 20 31 39 20 28 32 2e 38  December 19 (2.8
2870: 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .17)} {.<li>Fix 
2880: 61 6e 20 6f 62 73 63 75 72 65 20 62 75 67 20 74  an obscure bug t
2890: 68 61 74 20 63 61 6e 20 63 61 75 73 65 20 64 61  hat can cause da
28a0: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
28b0: 6e 20 75 6e 64 65 72 20 74 68 65 0a 66 6f 6c 6c  n under the.foll
28c0: 6f 77 69 6e 67 20 75 6e 75 73 75 61 6c 20 63 69  owing unusual ci
28d0: 72 63 75 6d 73 74 61 6e 63 65 73 3a 20 41 20 6c  rcumstances: A l
28e0: 61 72 67 65 20 49 4e 53 45 52 54 20 6f 72 20 55  arge INSERT or U
28f0: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20  PDATE statement 
2900: 77 68 69 63 68 20 0a 69 73 20 70 61 72 74 20 6f  which .is part o
2910: 66 20 61 6e 20 65 76 65 6e 20 6c 61 72 67 65 72  f an even larger
2920: 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 66 61 69   transaction fai
2930: 6c 73 20 64 75 65 20 74 6f 20 61 20 75 6e 69 71  ls due to a uniq
2940: 75 65 6e 65 73 73 20 63 6f 6e 74 72 61 69 6e 74  ueness contraint
2950: 0a 62 75 74 20 74 68 65 20 63 6f 6e 74 61 69 6e  .but the contain
2960: 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 20  ing transaction 
2970: 63 6f 6d 6d 69 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a  commits.</li>.}.
2980: 0a 63 68 6e 67 20 7b 32 30 30 35 20 53 65 70 74  .chng {2005 Sept
2990: 65 6d 62 65 72 20 32 34 20 28 33 2e 32 2e 37 29  ember 24 (3.2.7)
29a0: 7d 20 7b 0a 3c 6c 69 3e 47 52 4f 55 50 20 42 59  } {.<li>GROUP BY
29b0: 20 6e 6f 77 20 63 6f 6e 73 69 64 65 72 73 20 4e   now considers N
29c0: 55 4c 4c 73 20 74 6f 20 62 65 20 65 71 75 61 6c  ULLs to be equal
29d0: 20 61 67 61 69 6e 2c 20 61 73 20 69 74 20 73 68   again, as it sh
29e0: 6f 75 6c 64 0a 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  ould.</li>.<li>N
29f0: 6f 77 20 63 6f 6d 70 69 6c 65 73 20 6f 6e 20 53  ow compiles on S
2a00: 6f 6c 61 72 69 73 20 61 6e 64 20 4f 70 65 6e 42  olaris and OpenB
2a10: 53 44 20 61 6e 64 20 6f 74 68 65 72 20 55 6e 69  SD and other Uni
2a20: 78 20 76 61 72 69 61 6e 74 73 0a 74 68 61 74 20  x variants.that 
2a30: 6c 61 63 6b 20 74 68 65 20 66 64 61 74 61 73 79  lack the fdatasy
2a40: 6e 63 28 29 20 66 75 6e 63 74 69 6f 6e 3c 2f 6c  nc() function</l
2a50: 69 3e 0a 3c 6c 69 3e 4e 6f 77 20 63 6f 6d 70 69  i>.<li>Now compi
2a60: 6c 65 73 20 6f 6e 20 4d 53 56 43 2b 2b 36 20 61  les on MSVC++6 a
2a70: 67 61 69 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  gain</li>.<li>Fi
2a80: 78 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20  x uninitialized 
2a90: 76 61 72 69 61 62 6c 65 73 20 63 61 75 73 69 6e  variables causin
2aa0: 67 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 73 20 66  g malfunctions f
2ab0: 6f 72 20 76 61 72 69 6f 75 73 20 6f 62 73 63 75  or various obscu
2ac0: 72 65 0a 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a  re.queries</li>.
2ad0: 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 63 6f  <li>Correctly co
2ae0: 6d 70 75 74 65 20 61 20 4c 45 46 54 20 4f 55 54  mpute a LEFT OUT
2af0: 45 52 20 4a 4f 49 4e 73 20 74 68 61 74 20 69 73  ER JOINs that is
2b00: 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 6f 6e 20   constrained on 
2b10: 74 68 65 0a 6c 65 66 74 20 74 61 62 6c 65 20 6f  the.left table o
2b20: 6e 6c 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nly</li>.}..chng
2b30: 20 7b 32 30 30 35 20 53 65 70 74 65 6d 62 65 72   {2005 September
2b40: 20 31 37 20 28 33 2e 32 2e 36 29 7d 20 7b 0a 3c   17 (3.2.6)} {.<
2b50: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
2b60: 74 20 63 61 6e 20 63 61 75 73 65 20 64 61 74 61  t can cause data
2b70: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
2b80: 69 66 20 61 20 56 41 43 55 55 4d 20 28 6f 72 0a  if a VACUUM (or.
2b90: 20 20 20 20 61 75 74 6f 76 61 63 75 75 6d 29 20      autovacuum) 
2ba0: 66 61 69 6c 73 20 61 6e 64 20 69 73 20 72 6f 6c  fails and is rol
2bb0: 6c 65 64 20 62 61 63 6b 20 6f 6e 20 61 20 64 61  led back on a da
2bc0: 74 61 62 61 73 65 20 74 68 61 74 20 69 73 0a 20  tabase that is. 
2bd0: 20 20 20 6c 61 72 67 65 72 20 74 68 61 6e 20 31     larger than 1
2be0: 47 69 42 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4b  GiB</li>.<li>LIK
2bf0: 45 20 6f 70 74 69 69 7a 61 74 69 6f 6e 20 6e 6f  E optiization no
2c00: 77 20 77 6f 72 6b 73 20 66 6f 72 20 63 6f 6c 75  w works for colu
2c10: 6d 6e 73 20 77 69 74 68 20 43 4f 4c 4c 41 54 45  mns with COLLATE
2c20: 20 4e 4f 43 41 53 45 3c 2f 6c 69 3e 0a 3c 6c 69   NOCASE</li>.<li
2c30: 3e 4f 52 44 45 52 20 42 59 20 61 6e 64 20 47 52  >ORDER BY and GR
2c40: 4f 55 50 20 42 59 20 6e 6f 77 20 75 73 65 20 62  OUP BY now use b
2c50: 6f 75 6e 64 65 64 20 6d 65 6d 6f 72 79 3c 2f 6c  ounded memory</l
2c60: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
2c70: 70 6f 72 74 20 66 6f 72 20 43 4f 55 4e 54 28 44  port for COUNT(D
2c80: 49 53 54 49 4e 43 54 20 65 78 70 72 29 3c 2f 6c  ISTINCT expr)</l
2c90: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68  i>.<li>Change th
2ca0: 65 20 77 61 79 20 53 55 4d 28 29 20 68 61 6e 64  e way SUM() hand
2cb0: 6c 65 73 20 4e 55 4c 4c 20 76 61 6c 75 65 73 20  les NULL values 
2cc0: 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 6f 6d 70  in order to comp
2cd0: 6c 79 20 77 69 74 68 0a 20 20 20 20 74 68 65 20  ly with.    the 
2ce0: 53 51 4c 20 73 74 61 6e 64 61 72 64 3c 2f 6c 69  SQL standard</li
2cf0: 3e 0a 3c 6c 69 3e 55 73 65 20 66 64 61 74 61 73  >.<li>Use fdatas
2d00: 79 6e 63 28 29 20 69 6e 73 74 65 61 64 20 6f 66  ync() instead of
2d10: 20 66 73 79 6e 63 28 29 20 77 68 65 72 65 20 70   fsync() where p
2d20: 6f 73 73 69 62 6c 65 20 69 6e 20 6f 72 64 65 72  ossible in order
2d30: 20 74 6f 20 73 70 65 65 64 0a 20 20 20 20 75 70   to speed.    up
2d40: 20 63 6f 6d 6d 69 74 73 20 73 6c 69 67 68 74 6c   commits slightl
2d50: 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 6f  y</li>.<li>Use o
2d60: 66 20 74 68 65 20 43 52 4f 53 53 20 6b 65 79 77  f the CROSS keyw
2d70: 6f 72 64 20 69 6e 20 61 20 6a 6f 69 6e 20 74 75  ord in a join tu
2d80: 72 6e 73 20 6f 66 66 20 74 68 65 20 74 61 62 6c  rns off the tabl
2d90: 65 20 72 65 6f 72 64 65 72 69 6e 67 0a 20 20 20  e reordering.   
2da0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f 6c   optimization</l
2db0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
2dc0: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 61 6e   experimental an
2dd0: 64 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20 45  d undocumented E
2de0: 58 50 4c 41 49 4e 20 51 55 45 52 59 20 50 4c 41  XPLAIN QUERY PLA
2df0: 4e 20 63 61 70 61 62 69 6c 69 74 79 3c 2f 6c 69  N capability</li
2e00: 3e 0a 3c 6c 69 3e 55 73 65 20 74 68 65 20 75 6e  >.<li>Use the un
2e10: 69 63 6f 64 65 20 41 50 49 20 69 6e 20 77 69 6e  icode API in win
2e20: 64 6f 77 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  dows</li>.}..chn
2e30: 67 20 7b 32 30 30 35 20 41 75 67 75 73 74 20 32  g {2005 August 2
2e40: 37 20 28 33 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69  7 (3.2.5)} {.<li
2e50: 3e 46 69 78 20 61 20 62 75 67 20 65 66 66 65 63  >Fix a bug effec
2e60: 74 69 6e 67 20 44 45 4c 45 54 45 20 61 6e 64 20  ting DELETE and 
2e70: 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74  UPDATE statement
2e80: 73 20 74 68 61 74 20 63 68 61 6e 67 65 64 0a 6d  s that changed.m
2e90: 6f 72 65 20 74 68 61 6e 20 34 30 39 36 30 20 72  ore than 40960 r
2ea0: 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68  ows.</li>.<li>Ch
2eb0: 61 6e 67 65 20 74 68 65 20 6d 61 6b 65 66 69 6c  ange the makefil
2ec0: 65 20 73 6f 20 74 68 61 74 20 69 74 20 6e 6f 20  e so that it no 
2ed0: 6c 6f 6e 67 65 72 20 72 65 71 75 69 72 65 73 20  longer requires 
2ee0: 47 4e 55 6d 61 6b 65 20 65 78 74 65 6e 73 69 6f  GNUmake extensio
2ef0: 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  ns</li>.<li>Fix 
2f00: 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 74 68 72  the --enable-thr
2f10: 65 61 64 73 61 66 65 20 6f 70 74 69 6f 6e 20 6f  eadsafe option o
2f20: 6e 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65 20  n the configure 
2f30: 73 63 72 69 70 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e  script</li>.<li>
2f40: 46 69 78 20 61 20 63 6f 64 65 20 67 65 6e 65 72  Fix a code gener
2f50: 61 74 6f 72 20 62 75 67 20 74 68 61 74 20 6f 63  ator bug that oc
2f60: 63 75 72 73 20 77 68 65 6e 20 74 68 65 20 6c 65  curs when the le
2f70: 66 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66 20  ft-hand side of 
2f80: 61 6e 20 49 4e 0a 6f 70 65 72 61 74 6f 72 20 69  an IN.operator i
2f90: 73 20 63 6f 6e 73 74 61 6e 74 20 61 6e 64 20 74  s constant and t
2fa0: 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69  he right-hand si
2fb0: 64 65 20 69 73 20 61 20 53 45 4c 45 43 54 20 73  de is a SELECT s
2fc0: 74 61 74 65 6d 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c  tatement</li>.<l
2fd0: 69 3e 54 68 65 20 50 52 41 47 4d 41 20 73 79 6e  i>The PRAGMA syn
2fe0: 63 68 72 6f 6e 6f 75 73 3d 6f 66 66 20 73 74 61  chronous=off sta
2ff0: 74 65 6d 65 6e 74 20 6e 6f 77 20 64 69 73 61 62  tement now disab
3000: 6c 65 73 20 73 79 6e 63 69 6e 67 20 6f 66 20 74  les syncing of t
3010: 68 65 0a 6d 61 73 74 65 72 20 6a 6f 75 72 6e 61  he.master journa
3020: 6c 20 66 69 6c 65 20 69 6e 20 61 64 64 69 74 69  l file in additi
3030: 6f 6e 20 74 6f 20 74 68 65 20 6e 6f 72 6d 61 6c  on to the normal
3040: 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61   rollback journa
3050: 6c 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ls</li>.}..chng 
3060: 7b 32 30 30 35 20 41 75 67 75 73 74 20 32 34 20  {2005 August 24 
3070: 28 33 2e 32 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46  (3.2.4)} {.<li>F
3080: 69 78 20 61 20 62 75 67 20 69 6e 74 72 6f 64 75  ix a bug introdu
3090: 63 65 64 20 69 6e 20 74 68 65 20 70 72 65 76 69  ced in the previ
30a0: 6f 75 73 20 72 65 6c 65 61 73 65 0a 74 68 61 74  ous release.that
30b0: 20 63 61 6e 20 63 61 75 73 65 20 61 20 73 65 67   can cause a seg
30c0: 66 61 75 6c 74 20 77 68 69 6c 65 20 67 65 6e 65  fault while gene
30d0: 72 61 74 69 6e 67 20 63 6f 64 65 0a 66 6f 72 20  rating code.for 
30e0: 63 6f 6d 70 6c 65 78 20 57 48 45 52 45 20 63 6c  complex WHERE cl
30f0: 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  auses.</li>.<li>
3100: 41 6c 6c 6f 77 20 66 6c 6f 61 74 69 6e 67 20 70  Allow floating p
3110: 6f 69 6e 74 20 6c 69 74 65 72 61 6c 73 20 74 6f  oint literals to
3120: 20 62 65 67 69 6e 20 6f 72 20 65 6e 64 20 77 69   begin or end wi
3130: 74 68 20 61 20 64 65 63 69 6d 61 6c 20 70 6f 69  th a decimal poi
3140: 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nt.</li>.}..chng
3150: 20 7b 32 30 30 35 20 41 75 67 75 73 74 20 32 31   {2005 August 21
3160: 20 28 33 2e 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.3)} {.<li>
3170: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
3180: 72 20 74 68 65 20 43 41 53 54 20 6f 70 65 72 61  r the CAST opera
3190: 74 6f 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 63 6c  tor</li>.<li>Tcl
31a0: 20 69 6e 74 65 72 66 61 63 65 20 61 6c 6c 6f 77   interface allow
31b0: 73 20 42 4c 4f 42 20 76 61 6c 75 65 73 20 74 6f  s BLOB values to
31c0: 20 62 65 20 74 72 61 6e 73 66 65 72 72 65 64 20   be transferred 
31d0: 74 6f 20 75 73 65 72 2d 64 65 66 69 6e 65 64 0a  to user-defined.
31e0: 66 75 6e 63 74 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c  functions</li>.<
31f0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22 74 72  li>Added the "tr
3200: 61 6e 73 61 63 74 69 6f 6e 22 20 6d 65 74 68 6f  ansaction" metho
3210: 64 20 74 6f 20 74 68 65 20 54 63 6c 20 69 6e 74  d to the Tcl int
3220: 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  erface</li>.<li>
3230: 41 6c 6c 6f 77 20 74 68 65 20 44 45 46 41 55 4c  Allow the DEFAUL
3240: 54 20 76 61 6c 75 65 20 6f 66 20 61 20 63 6f 6c  T value of a col
3250: 75 6d 6e 20 74 6f 20 63 61 6c 6c 20 66 75 6e 63  umn to call func
3260: 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65 20  tions that have 
3270: 63 6f 6e 73 74 61 6e 74 0a 6f 70 65 72 61 6e 64  constant.operand
3280: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
3290: 20 74 68 65 20 41 4e 41 4c 59 5a 45 20 63 6f 6d   the ANALYZE com
32a0: 6d 61 6e 64 20 66 6f 72 20 67 61 74 68 65 72 69  mand for gatheri
32b0: 6e 67 20 73 74 61 74 69 73 74 69 63 73 20 6f 6e  ng statistics on
32c0: 20 69 6e 64 69 63 65 73 20 61 6e 64 0a 75 73 69   indices and.usi
32d0: 6e 67 20 74 68 6f 73 65 20 73 74 61 74 69 73 74  ng those statist
32e0: 69 63 73 20 77 68 65 6e 20 70 69 63 6b 69 6e 67  ics when picking
32f0: 20 61 6e 20 69 6e 64 65 78 20 69 6e 20 74 68 65   an index in the
3300: 20 6f 70 74 69 6d 69 7a 65 72 3c 2f 6c 69 3e 0a   optimizer</li>.
3310: 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65 20 6c  <li>Remove the l
3320: 69 6d 69 74 20 28 66 6f 72 6d 65 72 6c 79 20 31  imit (formerly 1
3330: 30 30 29 20 6f 6e 20 74 68 65 20 6e 75 6d 62 65  00) on the numbe
3340: 72 20 6f 66 20 74 65 72 6d 73 20 69 6e 20 74 68  r of terms in th
3350: 65 0a 57 48 45 52 45 20 63 6c 61 75 73 65 3c 2f  e.WHERE clause</
3360: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 72 69 67 68  li>.<li>The righ
3370: 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66 20 74  t-hand side of t
3380: 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 63  he IN operator c
3390: 61 6e 20 6e 6f 77 20 62 65 20 61 20 6c 69 73 74  an now be a list
33a0: 20 6f 66 20 65 78 70 72 65 73 73 69 6f 6e 73 0a   of expressions.
33b0: 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20  instead of just 
33c0: 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73 74 61  a list of consta
33d0: 6e 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 77  nts</li>.<li>Rew
33e0: 6f 72 6b 20 74 68 65 20 6f 70 74 69 6d 69 7a 65  ork the optimize
33f0: 72 20 73 6f 20 74 68 61 74 20 69 74 20 69 73 20  r so that it is 
3400: 61 62 6c 65 20 74 6f 20 6d 61 6b 65 20 62 65 74  able to make bet
3410: 74 65 72 20 75 73 65 20 6f 66 20 69 6e 64 69 63  ter use of indic
3420: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  es</li>.<li>The 
3430: 6f 72 64 65 72 20 6f 66 20 74 61 62 6c 65 73 20  order of tables 
3440: 69 6e 20 61 20 6a 6f 69 6e 20 69 73 20 61 64 6a  in a join is adj
3450: 75 73 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61  usted automatica
3460: 6c 6c 79 20 74 6f 20 6d 61 6b 65 0a 62 65 74 74  lly to make.bett
3470: 65 72 20 75 73 65 20 6f 66 20 69 6e 64 69 63 65  er use of indice
3480: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 49  s</li>.<li>The I
3490: 4e 20 6f 70 65 72 61 74 6f 72 20 69 73 20 6e 6f  N operator is no
34a0: 77 20 61 20 63 61 6e 64 69 64 61 74 65 20 66 6f  w a candidate fo
34b0: 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 65  r optimization e
34c0: 76 65 6e 20 69 66 20 74 68 65 20 6c 65 66 74 2d  ven if the left-
34d0: 68 61 6e 64 0a 73 69 64 65 20 69 73 20 6e 6f 74  hand.side is not
34e0: 20 74 68 65 20 6c 65 66 74 2d 6d 6f 73 74 20 74   the left-most t
34f0: 65 72 6d 20 6f 66 20 74 68 65 20 69 6e 64 65 78  erm of the index
3500: 2e 20 20 4d 75 6c 74 69 70 6c 65 20 49 4e 20 6f  .  Multiple IN o
3510: 70 65 72 61 74 6f 72 73 20 63 61 6e 20 62 65 0a  perators can be.
3520: 75 73 65 64 20 77 69 74 68 20 74 68 65 20 73 61  used with the sa
3530: 6d 65 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c  me index.</li>.<
3540: 6c 69 3e 57 48 45 52 45 20 63 6c 61 75 73 65 20  li>WHERE clause 
3550: 65 78 70 72 65 73 73 69 6f 6e 73 20 75 73 69 6e  expressions usin
3560: 67 20 42 45 54 57 45 45 4e 20 61 6e 64 20 4f 52  g BETWEEN and OR
3570: 20 61 72 65 20 6e 6f 77 20 63 61 6e 64 69 64 61   are now candida
3580: 74 65 73 0a 66 6f 72 20 6f 70 74 69 6d 69 7a 61  tes.for optimiza
3590: 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  tion</li>.<li>Ad
35a0: 64 65 64 20 74 68 65 20 22 63 61 73 65 5f 73 65  ded the "case_se
35b0: 6e 73 69 74 69 76 65 5f 6c 69 6b 65 22 20 70 72  nsitive_like" pr
35c0: 61 67 6d 61 20 61 6e 64 20 74 68 65 20 53 51 4c  agma and the SQL
35d0: 49 54 45 5f 43 41 53 45 5f 53 45 4e 53 49 54 49  ITE_CASE_SENSITI
35e0: 56 45 5f 4c 49 4b 45 0a 63 6f 6d 70 69 6c 65 2d  VE_LIKE.compile-
35f0: 74 69 6d 65 20 6f 70 74 69 6f 6e 20 74 6f 20 73  time option to s
3600: 65 74 20 69 74 73 20 64 65 66 61 75 6c 74 20 76  et its default v
3610: 61 6c 75 65 20 74 6f 20 22 6f 6e 22 2e 3c 2f 6c  alue to "on".</l
3620: 69 3e 0a 3c 6c 69 3e 55 73 65 20 69 6e 64 69 63  i>.<li>Use indic
3630: 65 73 20 74 6f 20 68 65 6c 70 20 77 69 74 68 20  es to help with 
3640: 47 4c 4f 42 20 65 78 70 72 65 73 73 69 6f 6e 73  GLOB expressions
3650: 20 61 6e 64 20 4c 49 4b 45 20 65 78 70 72 65 73   and LIKE expres
3660: 73 69 6f 6e 73 20 74 6f 6f 0a 77 68 65 6e 20 74  sions too.when t
3670: 68 65 20 63 61 73 65 5f 73 65 6e 73 69 74 69 76  he case_sensitiv
3680: 65 5f 6c 69 6b 65 20 70 72 61 67 6d 61 20 69 73  e_like pragma is
3690: 20 65 6e 61 62 6c 65 64 3c 2f 6c 69 3e 0a 3c 6c   enabled</li>.<l
36a0: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
36b0: 66 6f 72 20 67 72 61 76 65 2d 61 63 63 65 6e 74  for grave-accent
36c0: 20 71 75 6f 74 69 6e 67 20 66 6f 72 20 63 6f 6d   quoting for com
36d0: 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20  patibility with 
36e0: 4d 79 53 51 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  MySQL</li>.<li>I
36f0: 6d 70 72 6f 76 65 64 20 74 65 73 74 20 63 6f 76  mproved test cov
3700: 65 72 61 67 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  erage</li>.<li>D
3710: 6f 7a 65 6e 73 20 6f 66 20 6d 69 6e 6f 72 20 62  ozens of minor b
3720: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
3730: 0a 63 68 6e 67 20 7b 32 30 30 35 20 4a 75 6e 65  .chng {2005 June
3740: 20 31 33 20 28 33 2e 32 2e 32 29 7d 20 7b 0a 3c   13 (3.2.2)} {.<
3750: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73 71 6c  li>Added the sql
3760: 69 74 65 33 5f 64 62 5f 68 61 6e 64 6c 65 28 29  ite3_db_handle()
3770: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64   API</li>.<li>Ad
3780: 64 65 64 20 74 68 65 20 73 71 6c 69 74 65 33 5f  ded the sqlite3_
3790: 67 65 74 5f 61 75 74 6f 63 6f 6d 6d 69 74 28 29  get_autocommit()
37a0: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64   API</li>.<li>Ad
37b0: 64 65 64 20 61 20 52 45 47 45 58 50 20 6f 70 65  ded a REGEXP ope
37c0: 72 61 74 6f 72 20 74 6f 20 74 68 65 20 70 61 72  rator to the par
37d0: 73 65 72 2e 20 20 54 68 65 72 65 20 69 73 20 6e  ser.  There is n
37e0: 6f 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 61  o function to ba
37f0: 63 6b 0a 75 70 20 74 68 69 73 20 6f 70 65 72 61  ck.up this opera
3800: 74 6f 72 20 69 6e 20 74 68 65 20 73 74 61 6e 64  tor in the stand
3810: 61 72 64 20 62 75 69 6c 64 20 62 75 74 20 75 73  ard build but us
3820: 65 72 73 20 63 61 6e 20 61 64 64 20 74 68 65 69  ers can add thei
3830: 72 20 6f 77 6e 20 75 73 69 6e 67 0a 73 71 6c 69  r own using.sqli
3840: 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e 63 74  te3_create_funct
3850: 69 6f 6e 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  ion()</li>.<li>S
3860: 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74  peed improvement
3870: 73 20 61 6e 64 20 6c 69 62 72 61 72 79 20 66 6f  s and library fo
3880: 6f 74 70 72 69 6e 74 20 72 65 64 75 63 74 69 6f  otprint reductio
3890: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ns.</li>.<li>Fix
38a0: 20 62 79 74 65 20 61 6c 69 67 6e 6d 65 6e 74 20   byte alignment 
38b0: 70 72 6f 62 6c 65 6d 73 20 6f 6e 20 36 34 2d 62  problems on 64-b
38c0: 69 74 20 61 72 63 68 69 74 65 63 74 75 72 65 73  it architectures
38d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 2c  .</li>.<li>Many,
38e0: 20 6d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20   many minor bug 
38f0: 66 69 78 65 73 20 61 6e 64 20 64 6f 63 75 6d 65  fixes and docume
3900: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e  ntation updates.
3910: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
3920: 30 30 35 20 4d 61 72 63 68 20 32 39 20 28 33 2e  005 March 29 (3.
3930: 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  2.1)} {.<li>Fix 
3940: 61 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74  a memory allocat
3950: 69 6f 6e 20 65 72 72 6f 72 20 69 6e 20 74 68 65  ion error in the
3960: 20 6e 65 77 20 41 44 44 20 43 4f 4c 55 4d 4e 20   new ADD COLUMN 
3970: 63 6f 6d 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c  comment.</li>.<l
3980: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
3990: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a  updates</li>.}..
39a0: 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68  chng {2005 March
39b0: 20 32 31 20 28 33 2e 32 2e 30 29 7d 20 7b 0a 3c   21 (3.2.0)} {.<
39c0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
39d0: 20 66 6f 72 20 41 4c 54 45 52 20 54 41 42 4c 45   for ALTER TABLE
39e0: 20 41 44 44 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69   ADD COLUMN.</li
39f0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
3a00: 6f 72 74 20 66 6f 72 20 74 68 65 20 22 54 22 20  ort for the "T" 
3a10: 73 65 70 61 72 61 74 6f 72 20 69 6e 20 49 53 4f  separator in ISO
3a20: 2d 38 36 30 31 20 64 61 74 65 2f 74 69 6d 65 20  -8601 date/time 
3a30: 73 74 72 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 3c 6c  strings.</li>.<l
3a40: 69 3e 49 6d 70 72 6f 76 65 64 20 73 75 70 70 6f  i>Improved suppo
3a50: 72 74 20 66 6f 72 20 43 79 67 77 69 6e 2e 3c 2f  rt for Cygwin.</
3a60: 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73  li>.<li>Numerous
3a70: 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 64   bug fixes and d
3a80: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
3a90: 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ates.</li>.}..ch
3aa0: 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31  ng {2005 March 1
3ab0: 36 20 28 33 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69  6 (3.1.6)} {.<li
3ac0: 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20  >Fix a bug that 
3ad0: 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61 74 61  could cause data
3ae0: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
3af0: 77 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 0a 20  when inserting. 
3b00: 20 20 20 72 65 63 6f 72 64 20 69 6e 74 6f 20 74     record into t
3b10: 61 62 6c 65 73 20 77 69 74 68 20 61 72 6f 75 6e  ables with aroun
3b20: 64 20 31 32 35 20 63 6f 6c 75 6d 6e 73 2e 3c 2f  d 125 columns.</
3b30: 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 33 5f  li>.<li>sqlite3_
3b40: 73 74 65 70 28 29 20 69 73 20 6e 6f 77 20 6d 75  step() is now mu
3b50: 63 68 20 6d 6f 72 65 20 6c 69 6b 65 6c 79 20 74  ch more likely t
3b60: 6f 20 69 6e 76 6f 6b 65 20 74 68 65 20 62 75 73  o invoke the bus
3b70: 79 20 68 61 6e 64 6c 65 72 0a 20 20 20 20 61 6e  y handler.    an
3b80: 64 20 6c 65 73 73 20 6c 69 6b 65 6c 79 20 74 6f  d less likely to
3b90: 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 42   return SQLITE_B
3ba0: 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  USY.</li>.<li>Fi
3bb0: 78 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74  x memory leaks t
3bc0: 68 61 74 20 75 73 65 64 20 74 6f 20 6f 63 63 75  hat used to occu
3bd0: 72 20 61 66 74 65 72 20 61 20 6d 61 6c 6c 6f 63  r after a malloc
3be0: 28 29 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e  () failure.</li>
3bf0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d  .}..chng {2005 M
3c00: 61 72 63 68 20 31 31 20 28 33 2e 31 2e 35 29 7d  arch 11 (3.1.5)}
3c10: 20 7b 0a 3c 6c 69 3e 54 68 65 20 69 6f 63 74 6c   {.<li>The ioctl
3c20: 20 6f 6e 20 4f 53 2d 58 20 74 6f 20 63 6f 6e 74   on OS-X to cont
3c30: 72 6f 6c 20 73 79 6e 63 69 6e 67 20 74 6f 20 64  rol syncing to d
3c40: 69 73 6b 20 69 73 20 46 5f 46 55 4c 4c 46 53 59  isk is F_FULLFSY
3c50: 4e 43 2c 0a 20 20 20 20 6e 6f 74 20 46 5f 46 55  NC,.    not F_FU
3c60: 4c 4c 53 59 4e 43 2e 20 20 54 68 65 20 70 72 65  LLSYNC.  The pre
3c70: 76 69 6f 75 73 20 72 65 6c 65 61 73 65 20 68 61  vious release ha
3c80: 64 20 69 74 20 77 72 6f 6e 67 2e 3c 2f 6c 69 3e  d it wrong.</li>
3c90: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d  .}..chng {2005 M
3ca0: 61 72 63 68 20 31 30 20 28 33 2e 31 2e 34 29 7d  arch 10 (3.1.4)}
3cb0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
3cc0: 20 69 6e 20 61 75 74 6f 76 61 63 75 75 6d 20 74   in autovacuum t
3cd0: 68 61 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20  hat could cause 
3ce0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
3cf0: 69 6f 6e 20 69 66 0a 61 20 43 52 45 41 54 45 20  ion if.a CREATE 
3d00: 55 4e 49 51 55 45 20 49 4e 44 45 58 20 66 61 69  UNIQUE INDEX fai
3d10: 6c 73 20 62 65 63 61 75 73 65 20 6f 66 20 61 20  ls because of a 
3d20: 63 6f 6e 73 74 72 61 69 6e 74 20 76 69 6f 6c 61  constraint viola
3d30: 74 69 6f 6e 2e 0a 54 68 69 73 20 70 72 6f 62 6c  tion..This probl
3d40: 65 6d 20 6f 6e 6c 79 20 6f 63 63 75 72 73 20 69  em only occurs i
3d50: 66 20 74 68 65 20 6e 65 77 20 61 75 74 6f 76 61  f the new autova
3d60: 63 75 75 6d 20 66 65 61 74 75 72 65 20 69 6e 74  cuum feature int
3d70: 72 6f 64 75 63 65 64 20 69 6e 0a 76 65 72 73 69  roduced in.versi
3d80: 6f 6e 20 33 2e 31 20 69 73 20 74 75 72 6e 65 64  on 3.1 is turned
3d90: 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68   on.</li>.<li>Th
3da0: 65 20 46 5f 46 55 4c 4c 53 59 4e 43 20 69 6f 63  e F_FULLSYNC ioc
3db0: 74 6c 20 28 63 75 72 72 65 6e 74 6c 79 20 6f 6e  tl (currently on
3dc0: 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f 6e 20  ly supported on 
3dd0: 4f 53 2d 58 29 20 69 73 20 64 69 73 61 62 6c 65  OS-X) is disable
3de0: 64 0a 69 66 20 74 68 65 20 73 79 6e 63 68 72 6f  d.if the synchro
3df0: 6e 6f 75 73 20 70 72 61 67 6d 61 20 69 73 20 73  nous pragma is s
3e00: 65 74 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20  et to something 
3e10: 6f 74 68 65 72 20 74 68 61 6e 20 22 66 75 6c 6c  other than "full
3e20: 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  ".</li>.<li>Add 
3e30: 61 64 64 69 74 69 6f 6e 61 6c 20 66 6f 72 77 61  additional forwa
3e40: 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  rd compatibility
3e50: 20 74 6f 20 74 68 65 20 66 75 74 75 72 65 20 76   to the future v
3e60: 65 72 73 69 6f 6e 20 33 2e 32 20 64 61 74 61 62  ersion 3.2 datab
3e70: 61 73 65 20 0a 66 69 6c 65 20 66 6f 72 6d 61 74  ase .file format
3e80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
3e90: 20 62 75 67 20 69 6e 20 57 48 45 52 45 20 63 6c   bug in WHERE cl
3ea0: 61 75 73 65 73 20 6f 66 20 74 68 65 20 66 6f 72  auses of the for
3eb0: 6d 20 28 72 6f 77 69 64 3c 27 32 27 29 3c 2f 6c  m (rowid<'2')</l
3ec0: 69 3e 0a 3c 6c 69 3e 4e 65 77 20 53 51 4c 49 54  i>.<li>New SQLIT
3ed0: 45 5f 4f 4d 49 54 5f 2e 2e 2e 20 63 6f 6d 70 69  E_OMIT_... compi
3ee0: 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 73 20  le-time options 
3ef0: 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  added</li>.<li>U
3f00: 70 64 61 74 65 73 20 74 6f 20 74 68 65 20 6d 61  pdates to the ma
3f10: 6e 20 70 61 67 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  n page</li>.<li>
3f20: 52 65 6d 6f 76 65 20 74 68 65 20 75 73 65 20 6f  Remove the use o
3f30: 66 20 73 74 72 63 61 73 65 63 6d 70 28 29 20 66  f strcasecmp() f
3f40: 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c 3c 2f 6c  rom the shell</l
3f50: 69 3e 0a 3c 6c 69 3e 57 69 6e 64 6f 77 73 20 44  i>.<li>Windows D
3f60: 4c 4c 20 65 78 70 6f 72 74 73 20 73 79 6d 62 6f  LL exports symbo
3f70: 6c 73 20 54 63 6c 73 71 6c 69 74 65 5f 49 6e 69  ls Tclsqlite_Ini
3f80: 74 20 61 6e 64 20 53 71 6c 69 74 65 5f 49 6e 69  t and Sqlite_Ini
3f90: 74 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  t</li>.}..chng {
3fa0: 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31 39  2005 February 19
3fb0: 20 28 33 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (3.1.3)} {.<li>
3fc0: 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69  Fix a problem wi
3fd0: 74 68 20 56 41 43 55 55 4d 20 6f 6e 20 64 61 74  th VACUUM on dat
3fe0: 61 62 61 73 65 73 20 66 72 6f 6d 20 77 68 69 63  abases from whic
3ff0: 68 20 74 61 62 6c 65 73 20 63 6f 6e 74 61 69 6e  h tables contain
4000: 69 6e 67 0a 41 55 54 4f 49 4e 43 52 45 4d 45 4e  ing.AUTOINCREMEN
4010: 54 20 68 61 76 65 20 62 65 65 6e 20 64 72 6f 70  T have been drop
4020: 70 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ped.</li>.<li>Ad
4030: 64 20 66 6f 72 77 61 72 64 20 63 6f 6d 70 61 74  d forward compat
4040: 69 62 69 6c 69 74 79 20 74 6f 20 74 68 65 20 66  ibility to the f
4050: 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 33 2e  uture version 3.
4060: 32 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 0a  2 database file.
4070: 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  format.</li>.<li
4080: 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75  >Documentation u
4090: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63  pdates</li>.}..c
40a0: 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75 61  hng {2005 Februa
40b0: 72 79 20 31 35 20 28 33 2e 31 2e 32 29 7d 20 7b  ry 15 (3.1.2)} {
40c0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
40d0: 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20  hat can lead to 
40e0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
40f0: 69 6f 6e 20 69 66 20 74 68 65 72 65 20 61 72 65  ion if there are
4100: 20 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63   two.open connec
4110: 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 61 6d  tions to the sam
4120: 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6f  e database and o
4130: 6e 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f  ne connection do
4140: 65 73 20 61 20 56 41 43 55 55 4d 0a 61 6e 64 20  es a VACUUM.and 
4150: 74 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b 65 73  the second makes
4160: 20 73 6f 6d 65 20 63 68 61 6e 67 65 20 74 6f 20   some change to 
4170: 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c  the database.</l
4180: 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22 3f 22  i>.<li>Allow "?"
4190: 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20 74   parameters in t
41a0: 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 2e  he LIMIT clause.
41b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 56 41  </li>.<li>Fix VA
41c0: 43 55 55 4d 20 73 6f 20 74 68 61 74 20 69 74 20  CUUM so that it 
41d0: 77 6f 72 6b 73 20 77 69 74 68 20 41 55 54 4f 49  works with AUTOI
41e0: 4e 43 52 45 4d 45 4e 54 2e 3c 2f 6c 69 3e 0a 3c  NCREMENT.</li>.<
41f0: 6c 69 3e 46 69 78 20 61 20 72 61 63 65 20 63 6f  li>Fix a race co
4200: 6e 64 69 74 69 6f 6e 20 69 6e 20 41 55 54 4f 56  ndition in AUTOV
4210: 41 43 55 55 4d 20 74 68 61 74 20 63 61 6e 20 6c  ACUUM that can l
4220: 65 61 64 20 74 6f 20 63 6f 72 72 75 70 74 20 64  ead to corrupt d
4230: 61 74 61 62 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c  atabases</li>.<l
4240: 69 3e 41 64 64 20 61 20 6e 75 6d 65 72 69 63 20  i>Add a numeric 
4250: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 74  version number t
4260: 6f 20 74 68 65 20 73 71 6c 69 74 65 33 2e 68 20  o the sqlite3.h 
4270: 69 6e 63 6c 75 64 65 20 66 69 6c 65 2e 3c 2f 6c  include file.</l
4280: 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e  i>.<li>Other min
4290: 6f 72 20 62 75 67 20 66 69 78 65 73 20 61 6e 64  or bug fixes and
42a0: 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68   performance enh
42b0: 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  ancements.</li>.
42c0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65  }..chng {2005 Fe
42d0: 62 72 75 61 72 79 20 31 35 20 28 32 2e 38 2e 31  bruary 15 (2.8.1
42e0: 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  6)} {.<li>Fix a 
42f0: 62 75 67 20 74 68 61 74 20 63 61 6e 20 6c 65 61  bug that can lea
4300: 64 20 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f  d to database co
4310: 72 72 75 70 74 69 6f 6e 20 69 66 20 74 68 65 72  rruption if ther
4320: 65 20 61 72 65 20 74 77 6f 0a 6f 70 65 6e 20 63  e are two.open c
4330: 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f 20 74 68  onnections to th
4340: 65 20 73 61 6d 65 20 64 61 74 61 62 61 73 65 20  e same database 
4350: 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65 63 74 69  and one connecti
4360: 6f 6e 20 64 6f 65 73 20 61 20 56 41 43 55 55 4d  on does a VACUUM
4370: 0a 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20  .and the second 
4380: 6d 61 6b 65 73 20 73 6f 6d 65 20 63 68 61 6e 67  makes some chang
4390: 65 20 74 6f 20 74 68 65 20 64 61 74 61 62 61 73  e to the databas
43a0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72  e.</li>.<li>Corr
43b0: 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 71 75 6f  ectly handle quo
43c0: 74 65 64 20 6e 61 6d 65 73 20 69 6e 20 43 52 45  ted names in CRE
43d0: 41 54 45 20 49 4e 44 45 58 20 73 74 61 74 65 6d  ATE INDEX statem
43e0: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ents.</li>.<li>F
43f0: 69 78 20 61 20 6e 61 6d 69 6e 67 20 63 6f 6e 66  ix a naming conf
4400: 6c 69 63 74 20 62 65 74 77 65 65 6e 20 73 71 6c  lict between sql
4410: 69 74 65 2e 68 20 61 6e 64 20 73 71 6c 69 74 65  ite.h and sqlite
4420: 33 2e 68 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 76  3.h.</li>.<li>Av
4430: 6f 69 64 20 65 78 63 65 73 73 20 68 65 61 70 20  oid excess heap 
4440: 75 73 61 67 65 20 77 68 65 6e 20 63 6f 70 79 69  usage when copyi
4450: 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 3c  ng expressions.<
4460: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
4470: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e 3c  inor bug fixes.<
4480: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
4490: 30 35 20 46 65 62 72 75 61 72 79 20 31 20 28 33  05 February 1 (3
44a0: 2e 31 2e 31 20 42 45 54 41 29 7d 20 7b 0a 3c 6c  .1.1 BETA)} {.<l
44b0: 69 3e 41 75 74 6f 6d 61 74 69 63 20 63 61 63 68  i>Automatic cach
44c0: 69 6e 67 20 6f 66 20 70 72 65 70 61 72 65 64 20  ing of prepared 
44d0: 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 74 68  statements in th
44e0: 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 3c  e TCL interface<
44f0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 54 54 41 43 48 20  /li>.<li>ATTACH 
4500: 61 6e 64 20 44 45 54 41 43 48 20 61 73 20 77 65  and DETACH as we
4510: 6c 6c 20 61 73 20 73 6f 6d 65 20 6f 74 68 65 72  ll as some other
4520: 20 6f 70 65 72 61 74 69 6f 6e 73 20 63 61 75 73   operations caus
4530: 65 20 65 78 69 73 74 69 6e 67 0a 20 20 20 20 70  e existing.    p
4540: 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e  repared statemen
4550: 74 73 20 74 6f 20 65 78 70 69 72 65 2e 3c 2f 6c  ts to expire.</l
4560: 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 69 6f 75 73  i>.<li>Numerious
4570: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
4580: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4590: 30 30 35 20 4a 61 6e 75 61 72 79 20 32 31 20 28  005 January 21 (
45a0: 33 2e 31 2e 30 20 41 4c 50 48 41 29 7d 20 7b 0a  3.1.0 ALPHA)} {.
45b0: 3c 6c 69 3e 41 75 74 6f 76 61 63 75 75 6d 20 73  <li>Autovacuum s
45c0: 75 70 70 6f 72 74 20 61 64 64 65 64 3c 2f 6c 69  upport added</li
45d0: 3e 0a 3c 6c 69 3e 43 55 52 52 45 4e 54 5f 54 49  >.<li>CURRENT_TI
45e0: 4d 45 2c 20 43 55 52 52 45 4e 54 5f 44 41 54 45  ME, CURRENT_DATE
45f0: 2c 20 61 6e 64 20 43 55 52 52 45 4e 54 5f 54 49  , and CURRENT_TI
4600: 4d 45 53 54 41 4d 50 20 61 64 64 65 64 3c 2f 6c  MESTAMP added</l
4610: 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  i>.<li>Support f
4620: 6f 72 20 74 68 65 20 45 58 49 53 54 53 20 63 6c  or the EXISTS cl
4630: 61 75 73 65 20 61 64 64 65 64 2e 3c 2f 6c 69 3e  ause added.</li>
4640: 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72  .<li>Support for
4650: 20 63 6f 72 72 65 6c 61 74 65 64 20 73 75 62 71   correlated subq
4660: 75 65 72 69 65 73 20 61 64 64 65 64 2e 3c 2f 6c  ueries added.</l
4670: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
4680: 20 45 53 43 41 50 45 20 63 6c 61 75 73 65 20 6f   ESCAPE clause o
4690: 6e 20 74 68 65 20 4c 49 4b 45 20 6f 70 65 72 61  n the LIKE opera
46a0: 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75  tor.</li>.<li>Su
46b0: 70 70 6f 72 74 20 66 6f 72 20 41 4c 54 45 52 20  pport for ALTER 
46c0: 54 41 42 4c 45 20 2e 2e 2e 20 52 45 4e 41 4d 45  TABLE ... RENAME
46d0: 20 54 41 42 4c 45 20 2e 2e 2e 20 61 64 64 65 64   TABLE ... added
46e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 55 54 4f 49 4e  </li>.<li>AUTOIN
46f0: 43 52 45 4d 45 4e 54 20 6b 65 79 77 6f 72 64 20  CREMENT keyword 
4700: 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 49 4e 54  supported on INT
4710: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59  EGER PRIMARY KEY
4720: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 53  </li>.<li>Many S
4730: 51 4c 49 54 45 5f 4f 4d 49 54 5f 20 6d 61 63 72  QLITE_OMIT_ macr
4740: 6f 73 20 69 6e 73 65 72 74 73 20 74 6f 20 6f 6d  os inserts to om
4750: 69 74 20 66 65 61 74 75 72 65 73 20 61 74 20 63  it features at c
4760: 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 20 20 20 20  ompile-time.    
4770: 61 6e 64 20 72 65 64 75 63 65 20 74 68 65 20 6c  and reduce the l
4780: 69 62 72 61 72 79 20 66 6f 6f 74 70 72 69 6e 74  ibrary footprint
4790: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 52  .</li>.<li>The R
47a0: 45 49 4e 44 45 58 20 63 6f 6d 6d 61 6e 64 20 77  EINDEX command w
47b0: 61 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c  as added.</li>.<
47c0: 6c 69 3e 54 68 65 20 65 6e 67 69 6e 65 20 6e 6f  li>The engine no
47d0: 20 6c 6f 6e 67 65 72 20 63 6f 6e 73 75 6c 74 73   longer consults
47e0: 20 74 68 65 20 6d 61 69 6e 20 74 61 62 6c 65 20   the main table 
47f0: 69 66 20 69 74 20 63 61 6e 20 67 65 74 0a 20 20  if it can get.  
4800: 20 20 61 6c 6c 20 74 68 65 20 69 6e 66 6f 72 6d    all the inform
4810: 61 74 69 6f 6e 20 69 74 20 6e 65 65 64 73 20 66  ation it needs f
4820: 72 6f 6d 20 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c  rom an index.</l
4830: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6e 75 69 73  i>.<li>Many nuis
4840: 61 6e 63 65 20 62 75 67 73 20 66 69 78 65 64 2e  ance bugs fixed.
4850: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4860: 30 30 34 20 4f 63 74 6f 62 65 72 20 31 31 20 28  004 October 11 (
4870: 33 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64  3.0.8)} {.<li>Ad
4880: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 44 45  d support for DE
4890: 46 45 52 52 45 44 2c 20 49 4d 4d 45 44 49 41 54  FERRED, IMMEDIAT
48a0: 45 2c 20 61 6e 64 20 45 58 43 4c 55 53 49 56 45  E, and EXCLUSIVE
48b0: 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f   transactions.</
48c0: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 6e 65  li>.<li>Allow ne
48d0: 77 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 66  w user-defined f
48e0: 75 6e 63 74 69 6f 6e 73 20 74 6f 20 62 65 20 63  unctions to be c
48f0: 72 65 61 74 65 64 20 77 68 65 6e 20 74 68 65 72  reated when ther
4900: 65 20 61 72 65 0a 61 6c 72 65 61 64 79 20 6f 6e  e are.already on
4910: 65 20 6f 72 20 6d 6f 72 65 20 70 72 65 63 6f 6d  e or more precom
4920: 70 69 6c 65 64 20 53 51 4c 20 73 74 61 74 65 6d  piled SQL statem
4930: 65 6e 74 73 2e 3c 6c 69 3e 0a 3c 6c 69 3e 46 69  ents.<li>.<li>Fi
4940: 78 20 70 6f 72 74 61 62 69 6c 69 74 79 20 70 72  x portability pr
4950: 6f 62 6c 65 6d 73 20 66 6f 72 20 4d 69 6e 67 77  oblems for Mingw
4960: 2f 4d 53 59 53 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  /MSYS.</li>.<li>
4970: 46 69 78 20 61 20 62 79 74 65 20 61 6c 69 67 6e  Fix a byte align
4980: 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 20 6f 6e 20  ment problem on 
4990: 36 34 2d 62 69 74 20 53 70 61 72 63 20 6d 61 63  64-bit Sparc mac
49a0: 68 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  hines.</li>.<li>
49b0: 46 69 78 20 74 68 65 20 22 2e 69 6d 70 6f 72 74  Fix the ".import
49c0: 22 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 74 68 65  " command of the
49d0: 20 73 68 65 6c 6c 20 73 6f 20 74 68 61 74 20 69   shell so that i
49e0: 74 20 69 67 6e 6f 72 65 73 20 5c 72 0a 63 68 61  t ignores \r.cha
49f0: 72 61 63 74 65 72 73 20 61 74 20 74 68 65 20 65  racters at the e
4a00: 6e 64 20 6f 66 20 6c 69 6e 65 73 2e 3c 2f 6c 69  nd of lines.</li
4a10: 3e 0a 3c 6c 69 3e 54 68 65 20 22 63 73 76 22 20  >.<li>The "csv" 
4a20: 6d 6f 64 65 20 6f 70 74 69 6f 6e 20 69 6e 20 74  mode option in t
4a30: 68 65 20 73 68 65 6c 6c 20 70 75 74 73 20 73 74  he shell puts st
4a40: 72 69 6e 67 73 20 69 6e 73 69 64 65 20 64 6f 75  rings inside dou
4a50: 62 6c 65 2d 71 75 6f 74 65 73 2e 3c 2f 6c 69 3e  ble-quotes.</li>
4a60: 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73 20 69  .<li>Fix typos i
4a70: 6e 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e  n documentation.
4a80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72  </li>.<li>Conver
4a90: 74 20 61 72 72 61 79 20 63 6f 6e 73 74 61 6e 74  t array constant
4aa0: 73 20 69 6e 20 74 68 65 20 63 6f 64 65 20 74 6f  s in the code to
4ab0: 20 68 61 76 65 20 74 79 70 65 20 22 63 6f 6e 73   have type "cons
4ac0: 74 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d  t".</li>.<li>Num
4ad0: 65 72 6f 75 73 20 63 6f 64 65 20 6f 70 74 69 6d  erous code optim
4ae0: 69 7a 61 74 69 6f 6e 73 2c 20 73 70 65 63 69 61  izations, specia
4af0: 6c 6c 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  lly optimization
4b00: 73 20 64 65 73 69 67 6e 65 64 20 74 6f 0a 6d 61  s designed to.ma
4b10: 6b 65 20 74 68 65 20 63 6f 64 65 20 66 6f 6f 74  ke the code foot
4b20: 70 72 69 6e 74 20 73 6d 61 6c 6c 65 72 2e 3c 2f  print smaller.</
4b30: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4b40: 34 20 53 65 70 74 65 6d 62 65 72 20 31 38 20 28  4 September 18 (
4b50: 33 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 54 68  3.0.7)} {.<li>Th
4b60: 65 20 42 54 72 65 65 20 6d 6f 64 75 6c 65 20 61  e BTree module a
4b70: 6c 6c 6f 63 61 74 65 73 20 6c 61 72 67 65 20 62  llocates large b
4b80: 75 66 66 65 72 73 20 75 73 69 6e 67 20 6d 61 6c  uffers using mal
4b90: 6c 6f 63 28 29 20 69 6e 73 74 65 61 64 20 6f 66  loc() instead of
4ba0: 0a 20 20 20 20 6f 66 66 20 6f 66 20 74 68 65 20  .    off of the 
4bb0: 73 74 61 63 6b 2c 20 69 6e 20 6f 72 64 65 72 20  stack, in order 
4bc0: 74 6f 20 70 6c 61 79 20 62 65 74 74 65 72 20 6f  to play better o
4bd0: 6e 20 6d 61 63 68 69 6e 65 73 20 77 69 74 68 20  n machines with 
4be0: 6c 69 6d 69 74 65 64 0a 20 20 20 20 73 74 61 63  limited.    stac
4bf0: 6b 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c  k space.</li>.<l
4c00: 69 3e 46 69 78 65 64 20 6e 61 6d 69 6e 67 20 63  i>Fixed naming c
4c10: 6f 6e 66 6c 69 63 74 73 20 73 6f 20 74 68 61 74  onflicts so that
4c20: 20 76 65 72 73 69 6f 6e 73 20 32 2e 38 20 61 6e   versions 2.8 an
4c30: 64 20 33 2e 30 20 63 61 6e 20 62 65 0a 20 20 20  d 3.0 can be.   
4c40: 20 6c 69 6e 6b 65 64 20 61 6e 64 20 75 73 65 64   linked and used
4c50: 20 74 6f 67 65 74 68 65 72 20 69 6e 20 74 68 65   together in the
4c60: 20 73 61 6d 65 20 41 4e 53 49 2d 43 20 73 6f 75   same ANSI-C sou
4c70: 72 63 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c  rce file.</li>.<
4c80: 6c 69 3e 4e 65 77 20 69 6e 74 65 72 66 61 63 65  li>New interface
4c90: 3a 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70  : sqlite3_bind_p
4ca0: 61 72 61 6d 65 74 65 72 5f 69 6e 64 65 78 28 29  arameter_index()
4cb0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75  </li>.<li>Add su
4cc0: 70 70 6f 72 74 20 66 6f 72 20 77 69 6c 64 63 61  pport for wildca
4cd0: 72 64 20 70 61 72 61 6d 65 74 65 72 73 20 6f 66  rd parameters of
4ce0: 20 74 68 65 20 66 6f 72 6d 3a 20 22 3f 6e 6e 6e   the form: "?nnn
4cf0: 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 70  "</li>.<li>Fix p
4d00: 72 6f 62 6c 65 6d 73 20 66 6f 75 6e 64 20 6f 6e  roblems found on
4d10: 20 36 34 2d 62 69 74 20 73 79 73 74 65 6d 73 2e   64-bit systems.
4d20: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65  </li>.<li>Remove
4d30: 64 20 65 6e 63 6f 64 65 2e 63 20 66 69 6c 65 20  d encode.c file 
4d40: 28 63 6f 6e 74 61 69 6e 69 6e 67 20 75 6e 75 73  (containing unus
4d50: 65 64 20 72 6f 75 74 69 6e 65 73 29 20 66 72 6f  ed routines) fro
4d60: 6d 20 74 68 65 20 0a 20 20 20 20 76 65 72 73 69  m the .    versi
4d70: 6f 6e 20 33 2e 30 20 73 6f 75 72 63 65 20 74 72  on 3.0 source tr
4d80: 65 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ee.</li>.<li>The
4d90: 20 73 71 6c 69 74 65 33 5f 74 72 61 63 65 28 29   sqlite3_trace()
4da0: 20 63 61 6c 6c 62 61 63 6b 73 20 6f 63 63 75 72   callbacks occur
4db0: 20 62 65 66 6f 72 65 20 65 61 63 68 20 73 74 61   before each sta
4dc0: 74 65 6d 65 6e 74 0a 20 20 20 20 69 73 20 65 78  tement.    is ex
4dd0: 65 63 75 74 65 64 2c 20 6e 6f 74 20 77 68 65 6e  ecuted, not when
4de0: 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 69   the statement i
4df0: 73 20 63 6f 6d 70 69 6c 65 64 2e 3c 2f 6c 69 3e  s compiled.</li>
4e00: 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70  .<li>Makefile up
4e10: 64 61 74 65 73 20 61 6e 64 20 6d 69 73 63 65 6c  dates and miscel
4e20: 6c 61 6e 65 6f 75 73 20 62 75 67 20 66 69 78 65  laneous bug fixe
4e30: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
4e40: 7b 32 30 30 34 20 53 65 70 74 65 6d 62 65 72 20  {2004 September 
4e50: 30 32 20 28 33 2e 30 2e 36 20 62 65 74 61 29 7d  02 (3.0.6 beta)}
4e60: 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 64 65   {.<li>Better de
4e70: 74 65 63 74 69 6f 6e 20 61 6e 64 20 68 61 6e 64  tection and hand
4e80: 6c 69 6e 67 20 6f 66 20 63 6f 72 72 75 70 74 20  ling of corrupt 
4e90: 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 2e 3c  database files.<
4ea0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73 71 6c  /li>.<li>The sql
4eb0: 69 74 65 33 5f 73 74 65 70 28 29 20 69 6e 74 65  ite3_step() inte
4ec0: 72 66 61 63 65 20 72 65 74 75 72 6e 73 20 53 51  rface returns SQ
4ed0: 4c 49 54 45 5f 42 55 53 59 20 69 66 20 69 74 20  LITE_BUSY if it 
4ee0: 69 73 20 75 6e 61 62 6c 65 0a 20 20 20 20 74 6f  is unable.    to
4ef0: 20 63 6f 6d 6d 69 74 20 61 20 63 68 61 6e 67 65   commit a change
4f00: 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 6c 6f   because of a lo
4f10: 63 6b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6d 62  ck</li>.<li>Comb
4f20: 69 6e 65 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e  ine the implemen
4f30: 74 61 74 69 6f 6e 73 20 6f 66 20 4c 49 4b 45 20  tations of LIKE 
4f40: 61 6e 64 20 47 4c 4f 42 20 69 6e 74 6f 20 61 20  and GLOB into a 
4f50: 73 69 6e 67 6c 65 0a 20 20 20 20 70 61 74 74 65  single.    patte
4f60: 72 6e 2d 6d 61 74 63 68 69 6e 67 20 73 75 62 72  rn-matching subr
4f70: 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  outine.</li>.<li
4f80: 3e 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 63  >Miscellaneous c
4f90: 6f 64 65 20 73 69 7a 65 20 6f 70 74 69 6d 69 7a  ode size optimiz
4fa0: 61 74 69 6f 6e 73 20 61 6e 64 20 62 75 67 20 66  ations and bug f
4fb0: 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ixes</li>.}..chn
4fc0: 67 20 7b 32 30 30 34 20 41 75 67 75 73 74 20 32  g {2004 August 2
4fd0: 39 20 28 33 2e 30 2e 35 20 62 65 74 61 29 7d 20  9 (3.0.5 beta)} 
4fe0: 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  {.<li>Support fo
4ff0: 72 20 22 3a 41 41 41 22 20 73 74 79 6c 65 20 62  r ":AAA" style b
5000: 69 6e 64 20 70 61 72 61 6d 65 74 65 72 20 6e 61  ind parameter na
5010: 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  mes.</li>.<li>Ad
5020: 64 65 64 20 74 68 65 20 6e 65 77 20 73 71 6c 69  ded the new sqli
5030: 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74  te3_bind_paramet
5040: 65 72 5f 6e 61 6d 65 28 29 20 69 6e 74 65 72 66  er_name() interf
5050: 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75  ace.</li>.<li>Su
5060: 70 70 6f 72 74 20 66 6f 72 20 54 43 4c 20 76 61  pport for TCL va
5070: 72 69 61 62 6c 65 20 6e 61 6d 65 73 20 65 6d 62  riable names emb
5080: 65 64 64 65 64 20 69 6e 20 53 51 4c 20 73 74 61  edded in SQL sta
5090: 74 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 0a 20  tements in the. 
50a0: 20 20 20 54 43 4c 20 62 69 6e 64 69 6e 67 73 2e     TCL bindings.
50b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 54 43  </li>.<li>The TC
50c0: 4c 20 62 69 6e 64 69 6e 67 73 20 74 72 61 6e 73  L bindings trans
50d0: 66 65 72 20 64 61 74 61 20 77 69 74 68 6f 75 74  fer data without
50e0: 20 6e 65 63 65 73 73 61 72 69 6c 79 20 64 6f 69   necessarily doi
50f0: 6e 67 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 0a  ng a conversion.
5100: 20 20 20 20 74 6f 20 61 20 73 74 72 69 6e 67 2e      to a string.
5110: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 61  </li>.<li>The da
5120: 74 61 62 61 73 65 20 66 6f 72 20 54 45 4d 50 20  tabase for TEMP 
5130: 74 61 62 6c 65 73 20 69 73 20 6e 6f 74 20 63 72  tables is not cr
5140: 65 61 74 65 64 20 75 6e 74 69 6c 20 69 74 20 69  eated until it i
5150: 73 20 6e 65 65 64 65 64 2e 3c 2f 6c 69 3e 0a 3c  s needed.</li>.<
5160: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
5170: 74 79 20 74 6f 20 73 70 65 63 69 66 79 20 61 6e  ty to specify an
5180: 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74 65 6d   alternative tem
5190: 70 6f 72 61 72 79 20 66 69 6c 65 20 64 69 72 65  porary file dire
51a0: 63 74 6f 72 79 0a 20 20 20 20 75 73 69 6e 67 20  ctory.    using 
51b0: 74 68 65 20 22 73 71 6c 69 74 65 5f 74 65 6d 70  the "sqlite_temp
51c0: 5f 64 69 72 65 63 74 6f 72 79 22 20 67 6c 6f 62  _directory" glob
51d0: 61 6c 20 76 61 72 69 61 62 6c 65 2e 3c 2f 6c 69  al variable.</li
51e0: 3e 0a 3c 6c 69 3e 41 20 63 6f 6d 70 69 6c 65 2d  >.<li>A compile-
51f0: 74 69 6d 65 20 6f 70 74 69 6f 6e 20 28 53 51 4c  time option (SQL
5200: 49 54 45 5f 42 55 53 59 5f 52 45 53 45 52 56 45  ITE_BUSY_RESERVE
5210: 44 5f 4c 4f 43 4b 29 20 63 61 75 73 65 73 20 74  D_LOCK) causes t
5220: 68 65 20 62 75 73 79 0a 20 20 20 20 68 61 6e 64  he busy.    hand
5230: 6c 65 72 20 74 6f 20 62 65 20 63 61 6c 6c 65 64  ler to be called
5240: 20 77 68 65 6e 20 74 68 65 72 65 20 69 73 20 63   when there is c
5250: 6f 6e 74 65 6e 74 69 6f 6e 20 66 6f 72 20 61 20  ontention for a 
5260: 52 45 53 45 52 56 45 44 20 6c 6f 63 6b 2e 3c 2f  RESERVED lock.</
5270: 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20  li>.<li>Various 
5280: 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 6f 70  bug fixes and op
5290: 74 69 6d 69 7a 61 74 69 6f 6e 73 3c 2f 6c 69 3e  timizations</li>
52a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 41  .}..chng {2004 A
52b0: 75 67 75 73 74 20 38 20 28 33 2e 30 2e 34 20 62  ugust 8 (3.0.4 b
52c0: 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 43 52 45 41  eta)} {.<li>CREA
52d0: 54 45 20 54 41 42 4c 45 20 61 6e 64 20 44 52 4f  TE TABLE and DRO
52e0: 50 20 54 41 42 4c 45 20 6e 6f 77 20 77 6f 72 6b  P TABLE now work
52f0: 20 63 6f 72 72 65 63 74 6c 79 20 61 73 20 70 72   correctly as pr
5300: 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e 74  epared statement
5310: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
5320: 61 20 62 75 67 20 69 6e 20 56 41 43 55 55 4d 20  a bug in VACUUM 
5330: 61 6e 64 20 55 4e 49 51 55 45 20 69 6e 64 69 63  and UNIQUE indic
5340: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
5350: 20 74 68 65 20 22 2e 69 6d 70 6f 72 74 22 20 63   the ".import" c
5360: 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20 63 6f  ommand to the co
5370: 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c  mmand-line shell
5380: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
5390: 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20   bug that could 
53a0: 63 61 75 73 65 20 69 6e 64 65 78 20 63 6f 72 72  cause index corr
53b0: 75 70 74 69 6f 6e 20 77 68 65 6e 20 61 6e 20 61  uption when an a
53c0: 74 74 65 6d 70 74 20 74 6f 0a 20 20 20 20 64 65  ttempt to.    de
53d0: 6c 65 74 65 20 72 6f 77 73 20 6f 66 20 61 20 74  lete rows of a t
53e0: 61 62 6c 65 20 69 73 20 62 6c 6f 63 6b 65 64 20  able is blocked 
53f0: 62 79 20 61 20 70 65 6e 64 69 6e 67 20 71 75 65  by a pending que
5400: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 69 62  ry.</li>.<li>Lib
5410: 72 61 72 79 20 73 69 7a 65 20 6f 70 74 69 6d 69  rary size optimi
5420: 7a 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  zations.</li>.<l
5430: 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75  i>Other minor bu
5440: 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  g fixes.</li>.}.
5450: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6c 79  .chng {2004 July
5460: 20 32 32 20 28 32 2e 38 2e 31 35 29 7d 20 7b 0a   22 (2.8.15)} {.
5470: 3c 6c 69 3e 54 68 69 73 20 69 73 20 61 20 6d 61  <li>This is a ma
5480: 69 6e 74 65 6e 61 6e 63 65 20 72 65 6c 65 61 73  intenance releas
5490: 65 20 6f 6e 6c 79 2e 20 20 56 61 72 69 6f 75 73  e only.  Various
54a0: 20 6d 69 6e 6f 72 20 62 75 67 73 20 68 61 76 65   minor bugs have
54b0: 20 62 65 65 6e 0a 66 69 78 65 64 20 61 6e 64 20   been.fixed and 
54c0: 73 6f 6d 65 20 70 6f 72 74 61 62 69 6c 69 74 79  some portability
54d0: 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 61 72   enhancements ar
54e0: 65 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  e added.</li>.}.
54f0: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6c 79  .chng {2004 July
5500: 20 32 32 20 28 33 2e 30 2e 33 20 62 65 74 61 29   22 (3.0.3 beta)
5510: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 73 65 63 6f  } {.<li>The seco
5520: 6e 64 20 62 65 74 61 20 72 65 6c 65 61 73 65 20  nd beta release 
5530: 66 6f 72 20 53 51 4c 69 74 65 20 33 2e 30 2e 3c  for SQLite 3.0.<
5540: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70  /li>.<li>Add sup
5550: 70 6f 72 74 20 66 6f 72 20 22 50 52 41 47 4d 41  port for "PRAGMA
5560: 20 70 61 67 65 5f 73 69 7a 65 22 20 74 6f 20 61   page_size" to a
5570: 64 6a 75 73 74 20 74 68 65 20 70 61 67 65 20 73  djust the page s
5580: 69 7a 65 20 6f 66 0a 74 68 65 20 64 61 74 61 62  ize of.the datab
5590: 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61  ase.</li>.<li>Va
55a0: 72 69 6f 75 73 20 62 75 67 20 66 69 78 65 73 20  rious bug fixes 
55b0: 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  and documentatio
55c0: 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a  n updates.</li>.
55d0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
55e0: 6e 65 20 33 30 20 28 33 2e 30 2e 32 20 62 65 74  ne 30 (3.0.2 bet
55f0: 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 66 69  a)} {.<li>The fi
5600: 72 73 74 20 62 65 74 61 20 72 65 6c 65 61 73 65  rst beta release
5610: 20 66 6f 72 20 53 51 4c 69 74 65 20 33 2e 30 2e   for SQLite 3.0.
5620: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5630: 30 30 34 20 4a 75 6e 65 20 32 32 20 28 33 2e 30  004 June 22 (3.0
5640: 2e 31 20 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69  .1 alpha)} {.<li
5650: 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65  ><font color="re
5660: 64 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a 20 41  d"><b>.    *** A
5670: 6c 70 68 61 20 52 65 6c 65 61 73 65 20 2d 20 52  lpha Release - R
5680: 65 73 65 61 72 63 68 20 41 6e 64 20 54 65 73 74  esearch And Test
5690: 69 6e 67 20 55 73 65 20 4f 6e 6c 79 20 2a 2a 2a  ing Use Only ***
56a0: 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e  </b></font>.<li>
56b0: 4c 6f 74 73 20 6f 66 20 62 75 67 20 66 69 78 65  Lots of bug fixe
56c0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
56d0: 7b 32 30 30 34 20 4a 75 6e 65 20 31 38 20 28 33  {2004 June 18 (3
56e0: 2e 30 2e 30 20 61 6c 70 68 61 29 7d 20 7b 0a 3c  .0.0 alpha)} {.<
56f0: 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22  li><font color="
5700: 72 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a  red"><b>.    ***
5710: 20 41 6c 70 68 61 20 52 65 6c 65 61 73 65 20 2d   Alpha Release -
5720: 20 52 65 73 65 61 72 63 68 20 41 6e 64 20 54 65   Research And Te
5730: 73 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79 20 2a  sting Use Only *
5740: 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c  **</b></font>.<l
5750: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 69 6e  i>Support for in
5760: 74 65 72 6e 61 74 69 6f 6e 61 6c 69 7a 61 74 69  ternationalizati
5770: 6f 6e 20 69 6e 63 6c 75 64 69 6e 67 20 55 54 46  on including UTF
5780: 2d 38 2c 20 55 54 46 2d 31 36 2c 20 61 6e 64 0a  -8, UTF-16, and.
5790: 20 20 20 20 75 73 65 72 20 64 65 66 69 6e 65 64      user defined
57a0: 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71 75 65   collating seque
57b0: 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  nces.</li>.<li>N
57c0: 65 77 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 74  ew file format t
57d0: 68 61 74 20 69 73 20 32 35 25 20 74 6f 20 33 35  hat is 25% to 35
57e0: 25 20 73 6d 61 6c 6c 65 72 20 66 6f 72 20 74 79  % smaller for ty
57f0: 70 69 63 61 6c 20 75 73 65 2e 3c 2f 6c 69 3e 0a  pical use.</li>.
5800: 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 63 6f 6e  <li>Improved con
5810: 63 75 72 72 65 6e 63 79 2e 3c 2f 6c 69 3e 0a 3c  currency.</li>.<
5820: 6c 69 3e 41 74 6f 6d 69 63 20 63 6f 6d 6d 69 74  li>Atomic commit
5830: 73 20 66 6f 72 20 41 54 54 41 43 48 65 64 20 64  s for ATTACHed d
5840: 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e 0a 3c  atabases.</li>.<
5850: 6c 69 3e 52 65 6d 6f 76 65 20 63 72 75 66 74 20  li>Remove cruft 
5860: 66 72 6f 6d 20 74 68 65 20 41 50 49 73 2e 3c 2f  from the APIs.</
5870: 6c 69 3e 0a 3c 6c 69 3e 42 4c 4f 42 20 73 75 70  li>.<li>BLOB sup
5880: 70 6f 72 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 36  port.</li>.<li>6
5890: 34 2d 62 69 74 20 72 6f 77 69 64 73 2e 3c 2f 6c  4-bit rowids.</l
58a0: 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22  i>.<li><a href="
58b0: 76 65 72 73 69 6f 6e 33 2e 68 74 6d 6c 22 3e 4d  version3.html">M
58c0: 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c  ore information<
58d0: 2f 61 3e 2e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /a>..}..chng {20
58e0: 30 34 20 4a 75 6e 65 20 39 20 28 32 2e 38 2e 31  04 June 9 (2.8.1
58f0: 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68  4)} {.<li>Fix th
5900: 65 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78 28  e min() and max(
5910: 29 20 6f 70 74 69 6d 69 7a 65 72 20 73 6f 20 74  ) optimizer so t
5920: 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77 68 65  hat it works whe
5930: 6e 20 74 68 65 20 46 52 4f 4d 0a 20 20 20 20 63  n the FROM.    c
5940: 6c 61 75 73 65 20 63 6f 6e 73 69 73 74 73 20 6f  lause consists o
5950: 66 20 61 20 73 75 62 71 75 65 72 79 2e 3c 2f 6c  f a subquery.</l
5960: 69 3e 0a 3c 6c 69 3e 49 67 6e 6f 72 65 20 65 78  i>.<li>Ignore ex
5970: 74 72 61 20 77 68 69 74 65 73 70 61 63 65 20 61  tra whitespace a
5980: 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6f 66 20  t the end of of 
5990: 22 2e 22 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20  "." commands in 
59a0: 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a  the shell.</li>.
59b0: 3c 6c 69 3e 42 75 6e 64 6c 65 20 73 71 6c 69 74  <li>Bundle sqlit
59c0: 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72 79 28  e_encode_binary(
59d0: 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 64 65 63  ) and sqlite_dec
59e0: 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 77 69 74  ode_binary() wit
59f0: 68 20 74 68 65 20 0a 20 20 20 20 6c 69 62 72 61  h the .    libra
5a00: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ry.</li>.<li>The
5a10: 20 54 45 4d 50 5f 53 54 4f 52 45 20 61 6e 64 20   TEMP_STORE and 
5a20: 44 45 46 41 55 4c 54 5f 54 45 4d 50 5f 53 54 4f  DEFAULT_TEMP_STO
5a30: 52 45 20 70 72 61 67 6d 61 73 20 6e 6f 77 20 77  RE pragmas now w
5a40: 6f 72 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ork.</li>.<li>Co
5a50: 64 65 20 63 68 61 6e 67 65 73 20 74 6f 20 63 6f  de changes to co
5a60: 6d 70 69 6c 65 20 63 6c 65 61 6e 6c 79 20 75 73  mpile cleanly us
5a70: 69 6e 67 20 4f 70 65 6e 57 61 74 63 6f 6d 2e 3c  ing OpenWatcom.<
5a80: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 56 44 42  /li>.<li>Fix VDB
5a90: 45 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77  E stack overflow
5aa0: 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 49   problems with I
5ab0: 4e 53 54 45 41 44 20 4f 46 20 74 72 69 67 67 65  NSTEAD OF trigge
5ac0: 72 73 20 61 6e 64 0a 20 20 20 20 4e 55 4c 4c 73  rs and.    NULLs
5ad0: 20 69 6e 20 49 4e 20 6f 70 65 72 61 74 6f 72 73   in IN operators
5ae0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
5af0: 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62  he global variab
5b00: 6c 65 20 73 71 6c 69 74 65 5f 74 65 6d 70 5f 64  le sqlite_temp_d
5b10: 69 72 65 63 74 6f 72 79 20 77 68 69 63 68 20 69  irectory which i
5b20: 66 20 73 65 74 20 64 65 66 69 6e 65 73 20 74 68  f set defines th
5b30: 65 0a 20 20 20 20 64 69 72 65 63 74 6f 72 79 20  e.    directory 
5b40: 69 6e 20 77 68 69 63 68 20 74 65 6d 70 6f 72 61  in which tempora
5b50: 72 79 20 66 69 6c 65 73 20 61 72 65 20 73 74 6f  ry files are sto
5b60: 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71  red.</li>.<li>sq
5b70: 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29  lite_interrupt()
5b80: 20 70 6c 61 79 73 20 77 65 6c 6c 20 77 69 74 68   plays well with
5b90: 20 56 41 43 55 55 4d 2e 3c 2f 6c 69 3e 0a 3c 6c   VACUUM.</li>.<l
5ba0: 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75  i>Other minor bu
5bb0: 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  g fixes.</li>.}.
5bc0: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4d 61 72 63  .chng {2004 Marc
5bd0: 68 20 38 20 28 32 2e 38 2e 31 33 29 7d 20 7b 0a  h 8 (2.8.13)} {.
5be0: 3c 6c 69 3e 52 65 66 61 63 74 6f 72 20 70 61 72  <li>Refactor par
5bf0: 74 73 20 6f 66 20 74 68 65 20 63 6f 64 65 20 69  ts of the code i
5c00: 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61 6b 65 20  n order to make 
5c10: 74 68 65 20 63 6f 64 65 20 66 6f 6f 74 70 72 69  the code footpri
5c20: 6e 74 0a 20 20 20 20 73 6d 61 6c 6c 65 72 2e 20  nt.    smaller. 
5c30: 20 54 68 65 20 63 6f 64 65 20 69 73 20 6e 6f 77   The code is now
5c40: 20 61 6c 73 6f 20 61 20 6c 69 74 74 6c 65 20 62   also a little b
5c50: 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a  it faster.</li>.
5c60: 3c 6c 69 3e 73 71 6c 69 74 65 5f 65 78 65 63 28  <li>sqlite_exec(
5c70: 29 20 69 73 20 6e 6f 77 20 69 6d 70 6c 65 6d 65  ) is now impleme
5c80: 6e 74 65 64 20 61 73 20 61 20 77 72 61 70 70 65  nted as a wrappe
5c90: 72 20 61 72 6f 75 6e 64 20 73 71 6c 69 74 65 5f  r around sqlite_
5ca0: 63 6f 6d 70 69 6c 65 28 29 0a 20 20 20 20 61 6e  compile().    an
5cb0: 64 20 73 71 6c 69 74 65 5f 73 74 65 70 28 29 2e  d sqlite_step().
5cc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 62 75  </li>.<li>The bu
5cd0: 69 6c 74 2d 69 6e 20 6d 69 6e 28 29 20 61 6e 64  ilt-in min() and
5ce0: 20 6d 61 78 28 29 20 66 75 6e 63 74 69 6f 6e 73   max() functions
5cf0: 20 6e 6f 77 20 68 6f 6e 6f 72 20 74 68 65 20 64   now honor the d
5d00: 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65  ifference betwee
5d10: 6e 0a 20 20 20 20 4e 55 4d 45 52 49 43 20 61 6e  n.    NUMERIC an
5d20: 64 20 54 45 58 54 20 64 61 74 61 74 79 70 65 73  d TEXT datatypes
5d30: 2e 20 20 46 6f 72 6d 65 72 6c 79 2c 20 6d 69 6e  .  Formerly, min
5d40: 28 29 20 61 6e 64 20 6d 61 78 28 29 20 61 6c 77  () and max() alw
5d50: 61 79 73 20 61 73 73 75 6d 65 64 0a 20 20 20 20  ays assumed.    
5d60: 74 68 65 69 72 20 61 72 67 75 6d 65 6e 74 73 20  their arguments 
5d70: 77 65 72 65 20 6f 66 20 74 79 70 65 20 4e 55 4d  were of type NUM
5d80: 45 52 49 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  ERIC.</li>.<li>N
5d90: 65 77 20 48 48 3a 4d 4d 3a 53 53 20 6d 6f 64 69  ew HH:MM:SS modi
5da0: 66 69 65 72 20 74 6f 20 74 68 65 20 62 75 69 6c  fier to the buil
5db0: 74 2d 69 6e 20 64 61 74 65 2f 74 69 6d 65 20 66  t-in date/time f
5dc0: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  unctions.</li>.<
5dd0: 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 20  li>Experimental 
5de0: 73 71 6c 69 74 65 5f 6c 61 73 74 5f 73 74 61 74  sqlite_last_stat
5df0: 65 6d 65 6e 74 5f 63 68 61 6e 67 65 73 28 29 20  ement_changes() 
5e00: 41 50 49 20 61 64 64 65 64 2e 20 20 46 69 78 65  API added.  Fixe
5e10: 64 20 74 68 65 0a 20 20 20 20 74 68 65 20 6c 61  d the.    the la
5e20: 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 28  st_insert_rowid(
5e30: 29 20 66 75 6e 63 74 69 6f 6e 20 73 6f 20 74 68  ) function so th
5e40: 61 74 20 69 74 20 77 6f 72 6b 73 20 63 6f 72 72  at it works corr
5e50: 65 63 74 6c 79 20 77 69 74 68 0a 20 20 20 20 74  ectly with.    t
5e60: 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  riggers.</li>.<l
5e70: 69 3e 41 64 64 20 66 75 6e 63 74 69 6f 6e 73 20  i>Add functions 
5e80: 70 72 6f 74 6f 74 79 70 65 73 20 66 6f 72 20 74  prototypes for t
5e90: 68 65 20 64 61 74 61 62 61 73 65 20 65 6e 63 72  he database encr
5ea0: 79 70 74 69 6f 6e 20 41 50 49 2e 3c 2f 6c 69 3e  yption API.</li>
5eb0: 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65 72 61 6c  .<li>Fix several
5ec0: 20 6e 75 69 73 61 6e 63 65 20 62 75 67 73 2e 3c   nuisance bugs.<
5ed0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
5ee0: 30 34 20 46 65 62 72 75 61 72 79 20 38 20 28 32  04 February 8 (2
5ef0: 2e 38 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .8.12)} {.<li>Fi
5f00: 78 20 61 20 62 75 67 20 74 68 61 74 20 77 69 6c  x a bug that wil
5f10: 6c 20 6d 69 67 68 74 20 63 6f 72 72 75 70 74 20  l might corrupt 
5f20: 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75  the rollback jou
5f30: 72 6e 61 6c 20 69 66 20 61 20 70 6f 77 65 72 20  rnal if a power 
5f40: 66 61 69 6c 75 72 65 0a 20 20 20 20 6f 72 20 65  failure.    or e
5f50: 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 20  xternal program 
5f60: 68 61 6c 74 20 6f 63 63 75 72 73 20 69 6e 20 74  halt occurs in t
5f70: 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 61 20 43  he middle of a C
5f80: 4f 4d 4d 49 54 2e 20 20 54 68 65 20 63 6f 72 72  OMMIT.  The corr
5f90: 75 70 74 0a 20 20 20 20 6a 6f 75 72 6e 61 6c 20  upt.    journal 
5fa0: 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74 61  can lead to data
5fb0: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
5fc0: 77 68 65 6e 20 69 74 20 69 73 20 72 6f 6c 6c 65  when it is rolle
5fd0: 64 20 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69  d back.</li>.<li
5fe0: 3e 52 65 64 75 63 65 20 74 68 65 20 73 69 7a 65  >Reduce the size
5ff0: 20 61 6e 64 20 69 6e 63 72 65 61 73 65 20 74 68   and increase th
6000: 65 20 73 70 65 65 64 20 6f 66 20 76 61 72 69 6f  e speed of vario
6010: 75 73 20 6d 6f 64 75 6c 65 73 2c 20 65 73 70 65  us modules, espe
6020: 63 69 61 6c 6c 79 0a 20 20 20 20 74 68 65 20 76  cially.    the v
6030: 69 72 74 75 61 6c 20 6d 61 63 68 69 6e 65 2e 3c  irtual machine.<
6040: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22  /li>.<li>Allow "
6050: 26 6c 74 3b 65 78 70 72 26 67 74 3b 20 49 4e 20  &lt;expr&gt; IN 
6060: 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22 20 61  &lt;table&gt;" a
6070: 73 20 61 20 73 68 6f 72 74 68 61 6e 64 20 66 6f  s a shorthand fo
6080: 72 0a 20 20 20 20 22 26 6c 74 3b 65 78 70 72 26  r.    "&lt;expr&
6090: 67 74 3b 20 49 4e 20 28 53 45 4c 45 43 54 20 2a  gt; IN (SELECT *
60a0: 20 46 52 4f 4d 20 26 6c 74 3b 74 61 62 6c 65 26   FROM &lt;table&
60b0: 67 74 3b 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  gt;".</li>.<li>O
60c0: 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20  ptimizations to 
60d0: 74 68 65 20 73 71 6c 69 74 65 5f 6d 70 72 69 6e  the sqlite_mprin
60e0: 74 66 28 29 20 72 6f 75 74 69 6e 65 2e 3c 2f 6c  tf() routine.</l
60f0: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65  i>.<li>Make sure
6100: 20 74 68 65 20 4d 49 4e 28 29 20 61 6e 64 20 4d   the MIN() and M
6110: 41 58 28 29 20 6f 70 74 69 6d 69 7a 61 74 69 6f  AX() optimizatio
6120: 6e 73 20 77 6f 72 6b 20 77 69 74 68 69 6e 20 73  ns work within s
6130: 75 62 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a  ubqueries.</li>.
6140: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 61  }..chng {2004 Ja
6150: 6e 75 61 72 79 20 31 34 20 28 32 2e 38 2e 31 31  nuary 14 (2.8.11
6160: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
6170: 75 67 20 69 6e 20 68 6f 77 20 74 68 65 20 49 4e  ug in how the IN
6180: 20 6f 70 65 72 61 74 6f 72 20 68 61 6e 64 6c 65   operator handle
6190: 73 20 4e 55 4c 4c 73 20 69 6e 20 73 75 62 71 75  s NULLs in subqu
61a0: 65 72 69 65 73 2e 20 20 54 68 65 20 62 75 67 0a  eries.  The bug.
61b0: 20 20 20 20 77 61 73 20 69 6e 74 72 6f 64 75 63      was introduc
61c0: 65 64 20 62 79 20 74 68 65 20 70 72 65 76 69 6f  ed by the previo
61d0: 75 73 20 72 65 6c 65 61 73 65 2e 3c 2f 6c 69 3e  us release.</li>
61e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a  .}..chng {2004 J
61f0: 61 6e 75 61 72 79 20 31 33 20 28 32 2e 38 2e 31  anuary 13 (2.8.1
6200: 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  0)} {.<li>Fix a 
6210: 70 6f 74 65 6e 74 69 61 6c 20 64 61 74 61 62 61  potential databa
6220: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 70 72  se corruption pr
6230: 6f 62 6c 65 6d 20 6f 6e 20 55 6e 69 78 20 63 61  oblem on Unix ca
6240: 75 73 65 64 20 62 79 20 74 68 65 20 66 61 63 74  used by the fact
6250: 0a 20 20 20 20 74 68 61 74 20 61 6c 6c 20 70 6f  .    that all po
6260: 73 69 78 20 61 64 76 69 73 6f 72 79 20 6c 6f 63  six advisory loc
6270: 6b 73 20 61 72 65 20 63 6c 65 61 72 65 64 20 77  ks are cleared w
6280: 68 65 6e 65 76 65 72 20 79 6f 75 20 63 6c 6f 73  henever you clos
6290: 65 28 29 20 61 20 66 69 6c 65 2e 0a 20 20 20 20  e() a file..    
62a0: 54 68 65 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20  The work around 
62b0: 69 74 20 74 6f 20 65 6d 62 61 72 67 6f 20 61 6c  it to embargo al
62c0: 6c 20 63 6c 6f 73 65 28 29 20 63 61 6c 6c 73 20  l close() calls 
62d0: 77 68 69 6c 65 20 6c 6f 63 6b 73 20 61 72 65 20  while locks are 
62e0: 0a 20 20 20 20 6f 75 74 73 74 61 6e 64 69 6e 67  .    outstanding
62f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f  .</li>.<li>Perfo
6300: 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65  rmance enhanceme
6310: 6e 74 73 20 6f 6e 20 73 6f 6d 65 20 63 6f 72 6e  nts on some corn
6320: 65 72 20 63 61 73 65 73 20 6f 66 20 43 4f 55 4e  er cases of COUN
6330: 54 28 2a 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  T(*).</li>.<li>M
6340: 61 6b 65 20 73 75 72 65 20 74 68 65 20 69 6e 2d  ake sure the in-
6350: 6d 65 6d 6f 72 79 20 62 61 63 6b 65 6e 64 20 72  memory backend r
6360: 65 73 70 6f 6e 73 65 20 73 61 6e 65 6c 79 20 69  esponse sanely i
6370: 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 73  f malloc() fails
6380: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
6390: 20 73 71 6c 69 74 65 5f 65 78 65 63 28 29 20 74   sqlite_exec() t
63a0: 6f 20 62 65 20 63 61 6c 6c 65 64 20 66 72 6f 6d  o be called from
63b0: 20 77 69 74 68 69 6e 20 75 73 65 72 2d 64 65 66   within user-def
63c0: 69 6e 65 64 20 53 51 4c 0a 20 20 20 20 66 75 6e  ined SQL.    fun
63d0: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
63e0: 3e 49 6d 70 72 6f 76 65 64 20 61 63 63 75 72 61  >Improved accura
63f0: 63 79 20 6f 66 20 66 6c 6f 61 74 69 6e 67 2d 70  cy of floating-p
6400: 6f 69 6e 74 20 63 6f 6e 76 65 72 73 69 6f 6e 73  oint conversions
6410: 20 75 73 69 6e 67 20 22 6c 6f 6e 67 20 64 6f 75   using "long dou
6420: 62 6c 65 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ble".</li>.<li>B
6430: 75 67 20 66 69 78 65 73 20 69 6e 20 74 68 65 20  ug fixes in the 
6440: 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74  experimental dat
6450: 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73  e/time functions
6460: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6470: 32 30 30 34 20 4a 61 6e 75 61 72 79 20 35 20 28  2004 January 5 (
6480: 32 2e 38 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.8.9)} {.<li>Fi
6490: 78 20 61 20 33 32 2d 62 69 74 20 69 6e 74 65 67  x a 32-bit integ
64a0: 65 72 20 6f 76 65 72 66 6c 6f 77 20 70 72 6f 62  er overflow prob
64b0: 6c 65 6d 20 74 68 61 74 20 63 6f 75 6c 64 20 72  lem that could r
64c0: 65 73 75 6c 74 20 69 6e 20 63 6f 72 72 75 70 74  esult in corrupt
64d0: 0a 20 20 20 20 69 6e 64 69 63 65 73 20 69 6e 20  .    indices in 
64e0: 61 20 64 61 74 61 62 61 73 65 20 69 66 20 6c 61  a database if la
64f0: 72 67 65 20 6e 65 67 61 74 69 76 65 20 6e 75 6d  rge negative num
6500: 62 65 72 73 20 28 6c 65 73 73 20 74 68 61 6e 20  bers (less than 
6510: 2d 32 31 34 37 34 38 33 36 34 38 29 0a 20 20 20  -2147483648).   
6520: 20 77 65 72 65 20 69 6e 73 65 72 74 65 64 20 69   were inserted i
6530: 6e 74 6f 20 61 20 69 6e 64 65 78 65 64 20 6e 75  nto a indexed nu
6540: 6d 65 72 69 63 20 63 6f 6c 75 6d 6e 2e 3c 2f 6c  meric column.</l
6550: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6c 6f 63  i>.<li>Fix a loc
6560: 6b 69 6e 67 20 70 72 6f 62 6c 65 6d 20 6f 6e 20  king problem on 
6570: 6d 75 6c 74 69 2d 74 68 72 65 61 64 65 64 20 4c  multi-threaded L
6580: 69 6e 75 78 20 69 6d 70 6c 65 6d 65 6e 74 61 74  inux implementat
6590: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ions.</li>.<li>A
65a0: 6c 77 61 79 73 20 75 73 65 20 22 2e 22 20 69 6e  lways use "." in
65b0: 73 74 65 61 64 20 6f 66 20 22 2c 22 20 61 73 20  stead of "," as 
65c0: 74 68 65 20 64 65 63 69 6d 61 6c 20 70 6f 69 6e  the decimal poin
65d0: 74 20 65 76 65 6e 20 69 66 20 74 68 65 20 6c 6f  t even if the lo
65e0: 63 61 6c 65 0a 20 20 20 20 72 65 71 75 65 73 74  cale.    request
65f0: 73 20 22 2c 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  s ",".</li>.<li>
6600: 41 64 64 65 64 20 55 54 43 20 74 6f 20 6c 6f 63  Added UTC to loc
6610: 61 6c 74 69 6d 65 20 63 6f 6e 76 65 72 73 69 6f  altime conversio
6620: 6e 73 20 74 6f 20 74 68 65 20 65 78 70 65 72 69  ns to the experi
6630: 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65  mental date/time
6640: 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2e 3c  .    functions.<
6650: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
6660: 65 73 20 74 6f 20 64 61 74 65 2f 74 69 6d 65 20  es to date/time 
6670: 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  functions.</li>.
6680: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 44 65  }..chng {2003 De
6690: 63 65 6d 62 65 72 20 31 37 20 28 32 2e 38 2e 38  cember 17 (2.8.8
66a0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 63  )} {.<li>Fix a c
66b0: 72 69 74 69 63 61 6c 20 62 75 67 20 69 6e 74 72  ritical bug intr
66c0: 6f 64 75 63 65 64 20 69 6e 74 6f 20 32 2e 38 2e  oduced into 2.8.
66d0: 30 20 77 68 69 63 68 20 63 6f 75 6c 64 20 63 61  0 which could ca
66e0: 75 73 65 0a 20 20 20 20 64 61 74 61 62 61 73 65  use.    database
66f0: 20 63 6f 72 72 75 70 74 69 6f 6e 2e 3c 2f 6c 69   corruption.</li
6700: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62  >.<li>Fix a prob
6710: 6c 65 6d 20 77 69 74 68 20 33 2d 77 61 79 20 6a  lem with 3-way j
6720: 6f 69 6e 73 20 74 68 61 74 20 64 6f 20 6e 6f 74  oins that do not
6730: 20 75 73 65 20 69 6e 64 69 63 65 73 3c 2f 6c 69   use indices</li
6740: 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 43 55 55 4d  >.<li>The VACUUM
6750: 20 63 6f 6d 6d 61 6e 64 20 6e 6f 77 20 77 6f 72   command now wor
6760: 6b 73 20 77 69 74 68 20 74 68 65 20 6e 6f 6e 2d  ks with the non-
6770: 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f 6c 69  callback API</li
6780: 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 6d 65 6e  >.<li>Improvemen
6790: 74 73 20 74 6f 20 74 68 65 20 22 50 52 41 47 4d  ts to the "PRAGM
67a0: 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63  A integrity_chec
67b0: 6b 22 20 63 6f 6d 6d 61 6e 64 3c 2f 6c 69 3e 0a  k" command</li>.
67c0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 44 65  }..chng {2003 De
67d0: 63 65 6d 62 65 72 20 34 20 28 32 2e 38 2e 37 29  cember 4 (2.8.7)
67e0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 65 78  } {.<li>Added ex
67f0: 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74  perimental sqlit
6800: 65 5f 62 69 6e 64 28 29 20 61 6e 64 20 73 71 6c  e_bind() and sql
6810: 69 74 65 5f 72 65 73 65 74 28 29 20 41 50 49 73  ite_reset() APIs
6820: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74 68  .</li>.<li>If th
6830: 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 61  e name of the da
6840: 74 61 62 61 73 65 20 69 73 20 61 6e 20 65 6d 70  tabase is an emp
6850: 74 79 20 73 74 72 69 6e 67 2c 20 6f 70 65 6e 20  ty string, open 
6860: 61 20 6e 65 77 20 64 61 74 61 62 61 73 65 0a 20  a new database. 
6870: 20 20 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72     in a temporar
6880: 79 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 61  y file that is a
6890: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c  utomatically del
68a0: 65 74 65 64 20 77 68 65 6e 20 74 68 65 20 64 61  eted when the da
68b0: 74 61 62 61 73 65 0a 20 20 20 20 69 73 20 63 6c  tabase.    is cl
68c0: 6f 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  osed.</li>.<li>P
68d0: 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e  erformance enhan
68e0: 63 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 6c  cements in the l
68f0: 65 6d 6f 6e 2d 67 65 6e 65 72 61 74 65 64 20 70  emon-generated p
6900: 61 72 73 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45  arser</li>.<li>E
6910: 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74 65  xperimental date
6920: 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20  /time functions 
6930: 72 65 76 69 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  revised.</li>.<l
6940: 69 3e 44 69 73 61 6c 6c 6f 77 20 74 65 6d 70 6f  i>Disallow tempo
6950: 72 61 72 79 20 69 6e 64 69 63 65 73 20 6f 6e 20  rary indices on 
6960: 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c 65 73  permanent tables
6970: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d  .</li>.<li>Docum
6980: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
6990: 20 61 6e 64 20 74 79 70 6f 20 66 69 78 65 73 3c   and typo fixes<
69a0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 65  /li>.<li>Added e
69b0: 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69  xperimental sqli
69c0: 74 65 5f 70 72 6f 67 72 65 73 73 5f 68 61 6e 64  te_progress_hand
69d0: 6c 65 72 28 29 20 63 61 6c 6c 62 61 63 6b 20 41  ler() callback A
69e0: 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  PI</li>.<li>Remo
69f0: 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ved support for 
6a00: 74 68 65 20 4f 72 61 63 6c 65 38 20 6f 75 74 65  the Oracle8 oute
6a10: 72 20 6a 6f 69 6e 20 73 79 6e 74 61 78 2e 3c 2f  r join syntax.</
6a20: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 47 4c  li>.<li>Allow GL
6a30: 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70 65 72  OB and LIKE oper
6a40: 61 74 6f 72 73 20 74 6f 20 77 6f 72 6b 20 61 73  ators to work as
6a50: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
6a60: 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72  .<li>Other minor
6a70: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61   documentation a
6a80: 6e 64 20 6d 61 6b 65 66 69 6c 65 20 63 68 61 6e  nd makefile chan
6a90: 67 65 73 20 61 6e 64 20 62 75 67 20 66 69 78 65  ges and bug fixe
6aa0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
6ab0: 7b 32 30 30 33 20 41 75 67 75 73 74 20 32 31 20  {2003 August 21 
6ac0: 28 32 2e 38 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 4d  (2.8.6)} {.<li>M
6ad0: 6f 76 65 64 20 74 68 65 20 43 56 53 20 72 65 70  oved the CVS rep
6ae0: 6f 73 69 74 6f 72 79 20 74 6f 20 77 77 77 2e 73  ository to www.s
6af0: 71 6c 69 74 65 2e 6f 72 67 3c 2f 6c 69 3e 0a 3c  qlite.org</li>.<
6b00: 6c 69 3e 55 70 64 61 74 65 20 74 68 65 20 4e 55  li>Update the NU
6b10: 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75  LL-handling docu
6b20: 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a  mentation.</li>.
6b30: 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c  <li>Experimental
6b40: 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74   date/time funct
6b50: 69 6f 6e 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e  ions added.</li>
6b60: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 63 6f  .<li>Bug fix: co
6b70: 72 72 65 63 74 6c 79 20 65 76 61 6c 75 61 74 65  rrectly evaluate
6b80: 20 61 20 76 69 65 77 20 6f 66 20 61 20 76 69 65   a view of a vie
6b90: 77 20 77 69 74 68 6f 75 74 20 73 65 67 66 61 75  w without segfau
6ba0: 6c 74 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lting.</li>.<li>
6bb0: 42 75 67 20 66 69 78 3a 20 70 72 65 76 65 6e 74  Bug fix: prevent
6bc0: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
6bd0: 74 69 6f 6e 20 69 66 20 79 6f 75 20 64 72 6f 70  tion if you drop
6be0: 70 65 64 20 61 0a 20 20 20 20 74 72 69 67 67 65  ped a.    trigge
6bf0: 72 20 74 68 61 74 20 68 61 64 20 74 68 65 20 73  r that had the s
6c00: 61 6d 65 20 6e 61 6d 65 20 61 73 20 61 20 74 61  ame name as a ta
6c10: 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ble.</li>.<li>Bu
6c20: 67 20 66 69 78 3a 20 61 6c 6c 6f 77 20 61 20 56  g fix: allow a V
6c30: 41 43 55 55 4d 20 28 77 69 74 68 6f 75 74 20 73  ACUUM (without s
6c40: 65 67 66 61 75 6c 74 69 6e 67 29 20 6f 6e 20 61  egfaulting) on a
6c50: 6e 20 65 6d 70 74 79 0a 20 20 20 20 64 61 74 61  n empty.    data
6c60: 62 61 73 65 20 61 66 74 65 72 20 73 65 74 74 69  base after setti
6c70: 6e 67 20 74 68 65 20 45 4d 50 54 59 5f 52 45 53  ng the EMPTY_RES
6c80: 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72  ULT_CALLBACKS pr
6c90: 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  agma.</li>.<li>B
6ca0: 75 67 20 66 69 78 3a 20 69 66 20 61 6e 20 69 6e  ug fix: if an in
6cb0: 74 65 67 65 72 20 76 61 6c 75 65 20 77 69 6c 6c  teger value will
6cc0: 20 6e 6f 74 20 66 69 74 20 69 6e 20 61 20 33 32   not fit in a 32
6cd0: 2d 62 69 74 20 69 6e 74 2c 20 73 74 6f 72 65 20  -bit int, store 
6ce0: 69 74 20 69 6e 0a 20 20 20 20 61 20 64 6f 75 62  it in.    a doub
6cf0: 6c 65 20 69 6e 73 74 65 61 64 2e 3c 2f 6c 69 3e  le instead.</li>
6d00: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 4d 61  .<li>Bug fix: Ma
6d10: 6b 65 20 73 75 72 65 20 74 68 65 20 6a 6f 75 72  ke sure the jour
6d20: 6e 61 6c 20 66 69 6c 65 20 64 69 72 65 63 74 6f  nal file directo
6d30: 72 79 20 65 6e 74 72 79 20 69 73 20 63 6f 6d 6d  ry entry is comm
6d40: 69 74 74 65 64 20 74 6f 20 64 69 73 6b 0a 20 20  itted to disk.  
6d50: 20 20 62 65 66 6f 72 65 20 77 72 69 74 69 6e 67    before writing
6d60: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69   the database fi
6d70: 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  le.</li>.}..chng
6d80: 20 7b 32 30 30 33 20 4a 75 6c 79 20 32 32 20 28   {2003 July 22 (
6d90: 32 2e 38 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 61  2.8.5)} {.<li>Ma
6da0: 6b 65 20 4c 49 4d 49 54 20 77 6f 72 6b 20 6f 6e  ke LIMIT work on
6db0: 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45   a compound SELE
6dc0: 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c  CT statement.</l
6dd0: 69 3e 0a 3c 6c 69 3e 4c 49 4d 49 54 20 30 20 6e  i>.<li>LIMIT 0 n
6de0: 6f 77 20 73 68 6f 77 73 20 6e 6f 20 72 6f 77 73  ow shows no rows
6df0: 2e 20 20 55 73 65 20 4c 49 4d 49 54 20 2d 31 20  .  Use LIMIT -1 
6e00: 74 6f 20 73 65 65 20 61 6c 6c 20 72 6f 77 73 2e  to see all rows.
6e10: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63  </li>.<li>Correc
6e20: 74 6c 79 20 68 61 6e 64 6c 65 20 63 6f 6d 70 61  tly handle compa
6e30: 72 69 73 6f 6e 73 20 62 65 74 77 65 65 6e 20 61  risons between a
6e40: 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  n INTEGER PRIMAR
6e50: 59 20 4b 45 59 20 61 6e 64 0a 20 20 20 20 61 20  Y KEY and.    a 
6e60: 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e  floating point n
6e70: 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  umber.</li>.<li>
6e80: 46 69 78 20 73 65 76 65 72 61 6c 20 69 6d 70 6f  Fix several impo
6e90: 72 74 61 6e 74 20 62 75 67 73 20 69 6e 20 74 68  rtant bugs in th
6ea0: 65 20 6e 65 77 20 41 54 54 41 43 48 20 61 6e 64  e new ATTACH and
6eb0: 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73   DETACH commands
6ec0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74  .</li>.<li>Updat
6ed0: 65 64 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22  ed the <a href="
6ee0: 6e 75 6c 6c 73 2e 68 74 6d 6c 22 3e 4e 55 4c 4c  nulls.html">NULL
6ef0: 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75 6d 65  -handling docume
6f00: 6e 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 20 0a 3c 6c  nt</a>.</li> .<l
6f10: 69 3e 41 6c 6c 6f 77 20 4e 55 4c 4c 20 61 72 67  i>Allow NULL arg
6f20: 75 6d 65 6e 74 73 20 69 6e 20 73 71 6c 69 74 65  uments in sqlite
6f30: 5f 63 6f 6d 70 69 6c 65 28 29 20 61 6e 64 20 73  _compile() and s
6f40: 71 6c 69 74 65 5f 73 74 65 70 28 29 2e 3c 2f 6c  qlite_step().</l
6f50: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f  i>.<li>Many mino
6f60: 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e  r bug fixes</li>
6f70: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a  .}..chng {2003 J
6f80: 75 6e 65 20 32 39 20 28 32 2e 38 2e 34 29 7d 20  une 29 (2.8.4)} 
6f90: 7b 0a 3c 6c 69 3e 45 6e 68 61 6e 63 65 64 20 74  {.<li>Enhanced t
6fa0: 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74 65 67  he "PRAGMA integ
6fb0: 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f 6d 6d  rity_check" comm
6fc0: 61 6e 64 20 74 6f 20 76 65 72 69 66 79 20 69 6e  and to verify in
6fd0: 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  dices.</li>.<li>
6fe0: 41 64 64 65 64 20 61 75 74 68 6f 72 69 7a 61 74  Added authorizat
6ff0: 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f 72 20 74 68  ion hooks for th
7000: 65 20 6e 65 77 20 41 54 54 41 43 48 20 61 6e 64  e new ATTACH and
7010: 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73   DETACH commands
7020: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20  .</li>.<li>Many 
7030: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70  documentation up
7040: 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  dates</li>.<li>M
7050: 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20 66 69  any minor bug fi
7060: 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  xes</li>.}..chng
7070: 20 7b 32 30 30 33 20 4a 75 6e 65 20 34 20 28 32   {2003 June 4 (2
7080: 2e 38 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .8.3)} {.<li>Fix
7090: 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20   a problem that 
70a0: 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74 68 65  will corrupt the
70b0: 20 69 6e 64 69 63 65 73 20 6f 6e 20 61 20 74 61   indices on a ta
70c0: 62 6c 65 20 69 66 20 79 6f 75 0a 20 20 20 20 64  ble if you.    d
70d0: 6f 20 61 6e 20 49 4e 53 45 52 54 20 4f 52 20 52  o an INSERT OR R
70e0: 45 50 4c 41 43 45 20 6f 72 20 61 6e 20 55 50 44  EPLACE or an UPD
70f0: 41 54 45 20 4f 52 20 52 45 50 4c 41 43 45 20 6f  ATE OR REPLACE o
7100: 6e 20 61 20 74 61 62 6c 65 20 74 68 61 74 0a 20  n a table that. 
7110: 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 49     contains an I
7120: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
7130: 45 59 20 70 6c 75 73 20 6f 6e 65 20 6f 72 20 6d  EY plus one or m
7140: 6f 72 65 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69  ore indices.</li
7150: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
7160: 69 6e 20 77 69 6e 64 6f 77 73 20 6c 6f 63 6b 69  in windows locki
7170: 6e 67 20 63 6f 64 65 20 73 6f 20 74 68 61 74 20  ng code so that 
7180: 6c 6f 63 6b 73 20 77 6f 72 6b 20 63 6f 72 72 65  locks work corre
7190: 63 74 6c 79 0a 20 20 20 20 77 68 65 6e 20 73 69  ctly.    when si
71a0: 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 61 63 63  multaneously acc
71b0: 65 73 73 65 64 20 62 79 20 57 69 6e 39 35 20 61  essed by Win95 a
71c0: 6e 64 20 57 69 6e 4e 54 20 73 79 73 74 65 6d 73  nd WinNT systems
71d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
71e0: 68 65 20 61 62 69 6c 69 74 79 20 66 6f 72 20 49  he ability for I
71f0: 4e 53 45 52 54 20 61 6e 64 20 55 50 44 41 54 45  NSERT and UPDATE
7200: 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 72   statements to r
7210: 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20 20 20  efer to the.    
7220: 22 72 6f 77 69 64 22 20 28 6f 72 20 22 5f 72 6f  "rowid" (or "_ro
7230: 77 69 64 5f 22 20 6f 72 20 22 6f 69 64 22 29 20  wid_" or "oid") 
7240: 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  columns.</li>.<l
7250: 69 3e 4f 74 68 65 72 20 69 6d 70 6f 72 74 61 6e  i>Other importan
7260: 74 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e  t bug fixes</li>
7270: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4d  .}..chng {2003 M
7280: 61 79 20 31 37 20 28 32 2e 38 2e 32 29 7d 20 7b  ay 17 (2.8.2)} {
7290: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c  .<li>Fix a probl
72a0: 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63 6f 72  em that will cor
72b0: 72 75 70 74 20 74 68 65 20 64 61 74 61 62 61 73  rupt the databas
72c0: 65 20 66 69 6c 65 20 69 66 20 79 6f 75 20 64 72  e file if you dr
72d0: 6f 70 20 61 0a 20 20 20 20 74 61 62 6c 65 20 66  op a.    table f
72e0: 72 6f 6d 20 74 68 65 20 6d 61 69 6e 20 64 61 74  rom the main dat
72f0: 61 62 61 73 65 20 74 68 61 74 20 68 61 73 20 61  abase that has a
7300: 20 54 45 4d 50 20 69 6e 64 65 78 2e 3c 2f 6c 69   TEMP index.</li
7310: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
7320: 4d 61 79 20 31 36 20 28 32 2e 38 2e 31 29 7d 20  May 16 (2.8.1)} 
7330: 7b 0a 3c 6c 69 3e 52 65 61 63 74 69 76 61 74 65  {.<li>Reactivate
7340: 64 20 74 68 65 20 56 41 43 55 55 4d 20 63 6f 6d  d the VACUUM com
7350: 6d 61 6e 64 20 74 68 61 74 20 72 65 63 6c 61 69  mand that reclai
7360: 6d 73 20 75 6e 75 73 65 64 20 64 69 73 6b 20 73  ms unused disk s
7370: 70 61 63 65 20 69 6e 20 0a 20 20 20 20 61 20 64  pace in .    a d
7380: 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c 2f 6c  atabase file.</l
7390: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
73a0: 20 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41   ATTACH and DETA
73b0: 43 48 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 61  CH commands to a
73c0: 6c 6c 6f 77 20 69 6e 74 65 72 61 63 74 69 6e 67  llow interacting
73d0: 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65 0a 20   with multiple. 
73e0: 20 20 20 64 61 74 61 62 61 73 65 20 66 69 6c 65     database file
73f0: 73 20 61 74 20 74 68 65 20 73 61 6d 65 20 74 69  s at the same ti
7400: 6d 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  me.</li>.<li>Add
7410: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 54  ed support for T
7420: 45 4d 50 20 74 72 69 67 67 65 72 73 20 61 6e 64  EMP triggers and
7430: 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c   indices.</li>.<
7440: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
7450: 20 66 6f 72 20 69 6e 2d 6d 65 6d 6f 72 79 20 64   for in-memory d
7460: 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e 0a 3c  atabases.</li>.<
7470: 6c 69 3e 52 65 6d 6f 76 65 64 20 74 68 65 20 65  li>Removed the e
7480: 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69  xperimental sqli
7490: 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c 65  te_open_aux_file
74a0: 28 29 2e 20 20 49 74 73 20 66 75 6e 63 74 69 6f  ().  Its functio
74b0: 6e 20 69 73 0a 20 20 20 20 73 75 62 73 75 6d 65  n is.    subsume
74c0: 64 20 69 6e 20 74 68 65 20 6e 65 77 20 41 54 54  d in the new ATT
74d0: 41 43 48 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69  ACH command.</li
74e0: 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 63 65 64  >.<li>The preced
74f0: 65 6e 63 65 20 6f 72 64 65 72 20 66 6f 72 20 4f  ence order for O
7500: 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73  N CONFLICT claus
7510: 65 73 20 77 61 73 20 63 68 61 6e 67 65 64 20 73  es was changed s
7520: 6f 20 74 68 61 74 0a 20 20 20 20 4f 4e 20 43 4f  o that.    ON CO
7530: 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73 20 6f  NFLICT clauses o
7540: 6e 20 42 45 47 49 4e 20 73 74 61 74 65 6d 65 6e  n BEGIN statemen
7550: 74 73 20 68 61 76 65 20 61 20 68 69 67 68 65 72  ts have a higher
7560: 20 70 72 65 63 65 64 65 6e 63 65 20 74 68 61 6e   precedence than
7570: 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49 43 54  .    ON CONFLICT
7580: 20 63 6c 61 75 73 65 73 20 6f 6e 20 63 6f 6e 73   clauses on cons
7590: 74 72 61 69 6e 74 73 2e 0a 3c 6c 69 3e 4d 61 6e  traints..<li>Man
75a0: 79 2c 20 6d 61 6e 79 20 62 75 67 20 66 69 78 65  y, many bug fixe
75b0: 73 20 61 6e 64 20 63 6f 6d 70 61 74 69 62 69 6c  s and compatibil
75c0: 69 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  ity enhancements
75d0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
75e0: 32 30 30 33 20 46 65 62 20 31 36 20 28 32 2e 38  2003 Feb 16 (2.8
75f0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66  .0)} {.<li>Modif
7600: 69 65 64 20 74 68 65 20 6a 6f 75 72 6e 61 6c 20  ied the journal 
7610: 66 69 6c 65 20 66 6f 72 6d 61 74 20 74 6f 20 6d  file format to m
7620: 61 6b 65 20 69 74 20 6d 6f 72 65 20 72 65 73 69  ake it more resi
7630: 73 74 61 6e 74 20 74 6f 20 63 6f 72 72 75 70 74  stant to corrupt
7640: 69 6f 6e 0a 20 20 20 20 74 68 61 74 20 63 61 6e  ion.    that can
7650: 20 6f 63 63 75 72 20 61 66 74 65 72 20 61 6e 20   occur after an 
7660: 4f 53 20 63 72 61 73 68 20 6f 72 20 70 6f 77 65  OS crash or powe
7670: 72 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a  r failure.</li>.
7680: 3c 6c 69 3e 41 64 64 65 64 20 61 20 6e 65 77 20  <li>Added a new 
7690: 43 2f 43 2b 2b 20 41 50 49 20 74 68 61 74 20 64  C/C++ API that d
76a0: 6f 65 73 20 6e 6f 74 20 75 73 65 20 63 61 6c 6c  oes not use call
76b0: 62 61 63 6b 20 66 6f 72 20 72 65 74 75 72 6e 69  back for returni
76c0: 6e 67 20 64 61 74 61 2e 3c 2f 6c 69 3e 0a 7d 0a  ng data.</li>.}.
76d0: 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 61 6e 20  .chng {2003 Jan 
76e0: 32 35 20 28 32 2e 37 2e 36 29 7d 20 7b 0a 3c 6c  25 (2.7.6)} {.<l
76f0: 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d  i>Performance im
7700: 70 72 6f 76 65 6d 65 6e 74 73 2e 20 20 54 68 65  provements.  The
7710: 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 77 20   library is now 
7720: 6d 75 63 68 20 66 61 73 74 65 72 2e 3c 2f 6c 69  much faster.</li
7730: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
7740: 3c 62 3e 73 71 6c 69 74 65 5f 73 65 74 5f 61 75  <b>sqlite_set_au
7750: 74 68 6f 72 69 7a 65 72 28 29 3c 2f 62 3e 20 41  thorizer()</b> A
7760: 50 49 2e 20 20 46 6f 72 6d 61 6c 20 64 6f 63 75  PI.  Formal docu
7770: 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73 0a 20 20  mentation has.  
7780: 20 20 6e 6f 74 20 62 65 65 6e 20 77 72 69 74 74    not been writt
7790: 65 6e 20 2d 20 73 65 65 20 74 68 65 20 73 6f 75  en - see the sou
77a0: 72 63 65 20 63 6f 64 65 20 63 6f 6d 6d 65 6e 74  rce code comment
77b0: 73 20 66 6f 72 20 69 6e 73 74 72 75 63 74 69 6f  s for instructio
77c0: 6e 73 20 6f 6e 0a 20 20 20 20 68 6f 77 20 74 6f  ns on.    how to
77d0: 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 69   use this functi
77e0: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  on.</li>.<li>Fix
77f0: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 47 4c   a bug in the GL
7800: 4f 42 20 6f 70 65 72 61 74 6f 72 20 74 68 61 74  OB operator that
7810: 20 77 61 73 20 70 72 65 76 65 6e 74 69 6e 67 20   was preventing 
7820: 69 74 20 66 72 6f 6d 20 77 6f 72 6b 69 6e 67 0a  it from working.
7830: 20 20 20 20 77 69 74 68 20 75 70 70 65 72 2d 63      with upper-c
7840: 61 73 65 20 6c 65 74 74 65 72 73 2e 3c 2f 6c 69  ase letters.</li
7850: 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 6d 69  >.<li>Various mi
7860: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e 3c 2f  nor bug fixes.</
7870: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
7880: 32 20 44 65 63 20 32 37 20 28 32 2e 37 2e 35 29  2 Dec 27 (2.7.5)
7890: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 75  } {.<li>Fix an u
78a0: 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72  ninitialized var
78b0: 69 61 62 6c 65 20 69 6e 20 70 61 67 65 72 2e 63  iable in pager.c
78c0: 20 77 68 69 63 68 20 63 6f 75 6c 64 20 28 77 69   which could (wi
78d0: 74 68 20 61 20 70 72 6f 62 61 62 69 6c 69 74 79  th a probability
78e0: 0a 20 20 20 20 6f 66 20 61 62 6f 75 74 20 31 20  .    of about 1 
78f0: 69 6e 20 34 20 62 69 6c 6c 69 6f 6e 29 20 72 65  in 4 billion) re
7900: 73 75 6c 74 20 69 6e 20 61 20 63 6f 72 72 75 70  sult in a corrup
7910: 74 65 64 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c  ted database.</l
7920: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
7930: 20 44 65 63 20 31 37 20 28 32 2e 37 2e 34 29 7d   Dec 17 (2.7.4)}
7940: 20 7b 0a 3c 6c 69 3e 44 61 74 61 62 61 73 65 20   {.<li>Database 
7950: 66 69 6c 65 73 20 63 61 6e 20 6e 6f 77 20 67 72  files can now gr
7960: 6f 77 20 74 6f 20 62 65 20 75 70 20 74 6f 20 32  ow to be up to 2
7970: 5e 34 31 20 62 79 74 65 73 2e 20 20 54 68 65 20  ^41 bytes.  The 
7980: 6f 6c 64 20 6c 69 6d 69 74 0a 20 20 20 20 77 61  old limit.    wa
7990: 73 20 32 5e 33 31 20 62 79 74 65 73 2e 3c 2f 6c  s 2^31 bytes.</l
79a0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74 69 6d  i>.<li>The optim
79b0: 69 7a 65 72 20 77 69 6c 6c 20 6e 6f 77 20 73 63  izer will now sc
79c0: 61 6e 20 74 61 62 6c 65 73 20 69 6e 20 74 68 65  an tables in the
79d0: 20 72 65 76 65 72 73 65 20 69 66 20 64 6f 69 6e   reverse if doin
79e0: 67 20 73 6f 20 77 69 6c 6c 0a 20 20 20 20 73 61  g so will.    sa
79f0: 74 69 73 66 79 20 61 6e 20 4f 52 44 45 52 20 42  tisfy an ORDER B
7a00: 59 20 2e 2e 2e 20 44 45 53 43 20 63 6c 61 75 73  Y ... DESC claus
7a10: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  e.</li>.<li>The 
7a20: 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65 20 6f 66  full pathname of
7a30: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69   the database fi
7a40: 6c 65 20 69 73 20 6e 6f 77 20 72 65 6d 65 6d 62  le is now rememb
7a50: 65 72 65 64 20 65 76 65 6e 20 69 66 0a 20 20 20  ered even if.   
7a60: 20 61 20 72 65 6c 61 74 69 76 65 20 70 61 74 68   a relative path
7a70: 20 69 73 20 70 61 73 73 65 64 20 69 6e 74 6f 20   is passed into 
7a80: 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 2e 20 20  sqlite_open().  
7a90: 54 68 69 73 20 61 6c 6c 6f 77 73 20 0a 20 20 20  This allows .   
7aa0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f 20   the library to 
7ab0: 63 6f 6e 74 69 6e 75 65 20 6f 70 65 72 61 74 69  continue operati
7ac0: 6e 67 20 63 6f 72 72 65 63 74 6c 79 20 61 66 74  ng correctly aft
7ad0: 65 72 20 61 20 63 68 64 69 72 28 29 2e 3c 2f 6c  er a chdir().</l
7ae0: 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70  i>.<li>Speed imp
7af0: 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74 68 65  rovements in the
7b00: 20 56 44 42 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   VDBE.</li>.<li>
7b10: 4c 6f 74 73 20 6f 66 20 6c 69 74 74 6c 65 20 62  Lots of little b
7b20: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
7b30: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4f 63 74  ..chng {2002 Oct
7b40: 20 33 30 20 28 32 2e 37 2e 33 29 7d 20 7b 0a 3c   30 (2.7.3)} {.<
7b50: 6c 69 3e 56 61 72 69 6f 75 73 20 63 6f 6d 70 69  li>Various compi
7b60: 6c 65 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74  ler compatibilit
7b70: 79 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  y fixes.</li>.<l
7b80: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
7b90: 68 65 20 22 65 78 70 72 20 49 4e 20 28 29 22 20  he "expr IN ()" 
7ba0: 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c  operator.</li>.<
7bb0: 6c 69 3e 41 63 63 65 70 74 20 63 6f 6c 75 6d 6e  li>Accept column
7bc0: 20 6e 61 6d 65 73 20 69 6e 20 70 61 72 65 6e 74   names in parent
7bd0: 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  heses.</li>.<li>
7be0: 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69  Fix a problem wi
7bf0: 74 68 20 73 74 72 69 6e 67 20 6d 65 6d 6f 72 79  th string memory
7c00: 20 6d 61 6e 61 67 65 6d 65 6e 74 20 69 6e 20 74   management in t
7c10: 68 65 20 56 44 42 45 3c 2f 6c 69 3e 0a 3c 6c 69  he VDBE</li>.<li
7c20: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68  >Fix a bug in th
7c30: 65 20 22 74 61 62 6c 65 5f 69 6e 66 6f 22 20 70  e "table_info" p
7c40: 72 61 67 6d 61 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ragma"</li>.<li>
7c50: 45 78 70 6f 72 74 20 74 68 65 20 73 71 6c 69 74  Export the sqlit
7c60: 65 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70 65 28  e_function_type(
7c70: 29 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 20 69  ) API function i
7c80: 6e 20 74 68 65 20 57 69 6e 64 6f 77 73 20 44 4c  n the Windows DL
7c90: 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 6c  L</li>.<li>Fix l
7ca0: 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f 72 20  ocking behavior 
7cb0: 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 3c 2f 6c  under windows</l
7cc0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
7cd0: 20 69 6e 20 4c 45 46 54 20 4f 55 54 45 52 20 4a   in LEFT OUTER J
7ce0: 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  OIN</li>.}..chng
7cf0: 20 7b 32 30 30 32 20 53 65 70 20 32 35 20 28 32   {2002 Sep 25 (2
7d00: 2e 37 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 50 72 65  .7.2)} {.<li>Pre
7d10: 76 65 6e 74 20 6a 6f 75 72 6e 61 6c 20 66 69 6c  vent journal fil
7d20: 65 20 6f 76 65 72 66 6c 6f 77 73 20 6f 6e 20 68  e overflows on h
7d30: 75 67 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73  uge transactions
7d40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
7d50: 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 74 68 61   memory leak tha
7d60: 74 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e 20  t occurred when 
7d70: 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 20 66 61  sqlite_open() fa
7d80: 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 48  iled.</li>.<li>H
7d90: 6f 6e 6f 72 20 74 68 65 20 4f 52 44 45 52 20 42  onor the ORDER B
7da0: 59 20 61 6e 64 20 4c 49 4d 49 54 20 63 6c 61 75  Y and LIMIT clau
7db0: 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54 20 65  se of a SELECT e
7dc0: 76 65 6e 20 69 66 20 74 68 65 0a 20 20 20 20 72  ven if the.    r
7dd0: 65 73 75 6c 74 20 73 65 74 20 69 73 20 75 73 65  esult set is use
7de0: 64 20 66 6f 72 20 61 6e 20 49 4e 53 45 52 54 2e  d for an INSERT.
7df0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
7e00: 20 70 75 74 20 77 72 69 74 65 20 6c 6f 63 6b 73   put write locks
7e10: 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 75 73 65   on the file use
7e20: 64 20 74 6f 20 68 6f 6c 64 20 54 45 4d 50 20 74  d to hold TEMP t
7e30: 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ables.</li>.<li>
7e40: 41 64 64 65 64 20 64 6f 63 75 6d 65 6e 74 61 74  Added documentat
7e50: 69 6f 6e 20 6f 6e 20 53 45 4c 45 43 54 20 44 49  ion on SELECT DI
7e60: 53 54 49 4e 43 54 20 61 6e 64 20 6f 6e 20 68 6f  STINCT and on ho
7e70: 77 20 53 51 4c 69 74 65 20 68 61 6e 64 6c 65 73  w SQLite handles
7e80: 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   NULLs.</li>.<li
7e90: 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74  >Fix a problem t
7ea0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
7eb0: 70 6f 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63 65  poor performance
7ec0: 20 77 68 65 6e 20 6d 61 6e 79 20 74 68 6f 75 73   when many thous
7ed0: 61 6e 64 73 0a 20 20 20 20 6f 66 20 53 51 4c 20  ands.    of SQL 
7ee0: 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65 20  statements were 
7ef0: 65 78 65 63 75 74 65 64 20 62 79 20 61 20 73 69  executed by a si
7f00: 6e 67 6c 65 20 73 71 6c 69 74 65 5f 65 78 65 63  ngle sqlite_exec
7f10: 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a  () call.</li>.}.
7f20: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20  .chng {2002 Aug 
7f30: 33 31 20 28 32 2e 37 2e 31 29 7d 20 7b 0a 3c 6c  31 (2.7.1)} {.<l
7f40: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
7f50: 68 65 20 4f 52 44 45 52 20 42 59 20 6c 6f 67 69  he ORDER BY logi
7f60: 63 20 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f  c that was intro
7f70: 64 75 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e  duced in version
7f80: 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a 3c 6c 69 3e   2.7.0</li>.<li>
7f90: 43 2d 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73  C-style comments
7fa0: 20 61 72 65 20 6e 6f 77 20 61 63 63 65 70 74 65   are now accepte
7fb0: 64 20 62 79 20 74 68 65 20 74 6f 6b 65 6e 69 7a  d by the tokeniz
7fc0: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 4e 53  er.</li>.<li>INS
7fd0: 45 52 54 20 72 75 6e 73 20 61 20 6c 69 74 74 6c  ERT runs a littl
7fe0: 65 20 66 61 73 74 65 72 20 77 68 65 6e 20 74 68  e faster when th
7ff0: 65 20 73 6f 75 72 63 65 20 69 73 20 61 20 53 45  e source is a SE
8000: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
8010: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8020: 30 32 20 41 75 67 20 32 35 20 28 32 2e 37 2e 30  02 Aug 25 (2.7.0
8030: 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 61 20  )} {.<li>Make a 
8040: 64 69 73 74 69 6e 63 74 69 6f 6e 20 62 65 74 77  distinction betw
8050: 65 65 6e 20 6e 75 6d 65 72 69 63 20 61 6e 64 20  een numeric and 
8060: 74 65 78 74 20 76 61 6c 75 65 73 20 77 68 65 6e  text values when
8070: 20 73 6f 72 74 69 6e 67 2e 0a 20 20 20 20 54 65   sorting..    Te
8080: 78 74 20 76 61 6c 75 65 73 20 73 6f 72 74 20 61  xt values sort a
8090: 63 63 6f 72 64 69 6e 67 20 74 6f 20 6d 65 6d 63  ccording to memc
80a0: 6d 70 28 29 2e 20 20 4e 75 6d 65 72 69 63 20 76  mp().  Numeric v
80b0: 61 6c 75 65 73 20 73 6f 72 74 20 69 6e 0a 20 20  alues sort in.  
80c0: 20 20 6e 75 6d 65 72 69 63 20 6f 72 64 65 72 2e    numeric order.
80d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
80e0: 6d 75 6c 74 69 70 6c 65 20 73 69 6d 75 6c 74 61  multiple simulta
80f0: 6e 65 6f 75 73 20 72 65 61 64 65 72 73 20 75 6e  neous readers un
8100: 64 65 72 20 77 69 6e 64 6f 77 73 20 62 79 20 73  der windows by s
8110: 69 6d 75 6c 61 74 69 6e 67 0a 20 20 20 20 74 68  imulating.    th
8120: 65 20 72 65 61 64 65 72 2f 77 72 69 74 65 72 73  e reader/writers
8130: 20 6c 6f 63 6b 73 20 74 68 61 74 20 61 72 65 20   locks that are 
8140: 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 57 69 6e  missing from Win
8150: 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c 69 3e 0a 3c  95/98/ME.</li>.<
8160: 6c 69 3e 41 6e 20 65 72 72 6f 72 20 69 73 20 6e  li>An error is n
8170: 6f 77 20 72 65 74 75 72 6e 65 64 20 77 68 65 6e  ow returned when
8180: 20 74 72 79 69 6e 67 20 74 6f 20 73 74 61 72 74   trying to start
8190: 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69   a transaction i
81a0: 66 0a 20 20 20 20 61 6e 6f 74 68 65 72 20 74 72  f.    another tr
81b0: 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 61 6c 72  ansaction is alr
81c0: 65 61 64 79 20 61 63 74 69 76 65 2e 3c 2f 6c 69  eady active.</li
81d0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
81e0: 41 75 67 20 31 32 20 28 32 2e 36 2e 33 29 7d 20  Aug 12 (2.6.3)} 
81f0: 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62  {.<li>Add the ab
8200: 69 6c 69 74 79 20 74 6f 20 72 65 61 64 20 62 6f  ility to read bo
8210: 74 68 20 6c 69 74 74 6c 65 2d 65 6e 64 69 61 6e  th little-endian
8220: 20 61 6e 64 20 62 69 67 2d 65 6e 64 69 61 6e 20   and big-endian 
8230: 64 61 74 61 62 61 73 65 73 2e 0a 20 20 20 20 53  databases..    S
8240: 6f 20 64 61 74 61 62 61 73 65 20 63 72 65 61 74  o database creat
8250: 65 64 20 75 6e 64 65 72 20 53 75 6e 4f 53 20 6f  ed under SunOS o
8260: 72 20 4d 61 63 4f 53 58 20 63 61 6e 20 62 65 20  r MacOSX can be 
8270: 72 65 61 64 20 61 6e 64 20 77 72 69 74 74 65 6e  read and written
8280: 0a 20 20 20 20 75 6e 64 65 72 20 4c 69 6e 75 78  .    under Linux
8290: 20 6f 72 20 57 69 6e 64 6f 77 73 20 61 6e 64 20   or Windows and 
82a0: 76 69 63 65 20 76 65 72 73 61 2e 3c 2f 6c 69 3e  vice versa.</li>
82b0: 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 74 6f 20  .<li>Convert to 
82c0: 74 68 65 20 6e 65 77 20 77 65 62 73 69 74 65 3a  the new website:
82d0: 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69   http://www.sqli
82e0: 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e 0a 3c 6c 69  te.org/</li>.<li
82f0: 3e 41 6c 6c 6f 77 20 74 72 61 6e 73 61 63 74 69  >Allow transacti
8300: 6f 6e 73 20 74 6f 20 73 70 61 6e 20 4c 69 6e 75  ons to span Linu
8310: 78 20 54 68 72 65 61 64 73 3c 2f 6c 69 3e 0a 3c  x Threads</li>.<
8320: 6c 69 3e 42 75 67 20 66 69 78 20 69 6e 20 74 68  li>Bug fix in th
8330: 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20  e processing of 
8340: 74 68 65 20 4f 52 44 45 52 20 42 59 20 63 6c 61  the ORDER BY cla
8350: 75 73 65 20 66 6f 72 20 47 52 4f 55 50 20 42 59  use for GROUP BY
8360: 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 7d 0a   queries</li>.}.
8370: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20  .chng {2002 Jly 
8380: 33 30 20 28 32 2e 36 2e 32 29 7d 20 7b 0a 3c 6c  30 (2.6.2)} {.<l
8390: 69 3e 54 65 78 74 20 66 69 6c 65 73 20 72 65 61  i>Text files rea
83a0: 64 20 62 79 20 74 68 65 20 43 4f 50 59 20 63 6f  d by the COPY co
83b0: 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f 77 20 68 61  mmand can now ha
83c0: 76 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e 61 74  ve line terminat
83d0: 6f 72 73 0a 20 20 20 20 6f 66 20 4c 46 2c 20 20  ors.    of LF,  
83e0: 43 52 4c 46 2c 20 6f 72 20 43 52 2e 3c 2f 6c 69  CRLF, or CR.</li
83f0: 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45 5f 42 55 53  >.<li>SQLITE_BUS
8400: 59 20 69 73 20 68 61 6e 64 6c 65 64 20 63 6f 72  Y is handled cor
8410: 72 65 63 74 6c 79 20 69 66 20 65 6e 63 6f 75 6e  rectly if encoun
8420: 74 65 72 65 64 20 64 75 72 69 6e 67 20 64 61 74  tered during dat
8430: 61 62 61 73 65 0a 20 20 20 20 69 6e 69 74 69 61  abase.    initia
8440: 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  lization.</li>.<
8450: 6c 69 3e 46 69 78 20 74 6f 20 55 50 44 41 54 45  li>Fix to UPDATE
8460: 20 74 72 69 67 67 65 72 73 20 6f 6e 20 54 45 4d   triggers on TEM
8470: 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c  P tables.</li>.<
8480: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
8490: 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d   updates.</li>.}
84a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79  ..chng {2002 Jly
84b0: 20 31 39 20 28 32 2e 36 2e 31 29 7d 20 7b 0a 3c   19 (2.6.1)} {.<
84c0: 6c 69 3e 49 6e 63 6c 75 64 65 20 61 20 73 74 61  li>Include a sta
84d0: 74 69 63 20 73 74 72 69 6e 67 20 69 6e 20 74 68  tic string in th
84e0: 65 20 6c 69 62 72 61 72 79 20 74 68 61 74 20 72  e library that r
84f0: 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 52  esponds to the R
8500: 43 53 0a 20 20 20 20 22 69 64 65 6e 74 22 20 63  CS.    "ident" c
8510: 6f 6d 6d 61 6e 64 20 61 6e 64 20 77 68 69 63 68  ommand and which
8520: 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6c 69   contains the li
8530: 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20 6e 75  brary version nu
8540: 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  mber.</li>.<li>F
8550: 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20  ix an assertion 
8560: 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f 63 63  failure that occ
8570: 75 72 72 65 64 20 77 68 65 6e 20 64 65 6c 65 74  urred when delet
8580: 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 6f 66 0a  ing all rows of.
8590: 20 20 20 20 61 20 74 61 62 6c 65 20 77 69 74 68      a table with
85a0: 20 74 68 65 20 22 63 6f 75 6e 74 5f 63 68 61 6e   the "count_chan
85b0: 67 65 73 22 20 70 72 61 67 6d 61 20 74 75 72 6e  ges" pragma turn
85c0: 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ed on.</li>.<li>
85d0: 42 65 74 74 65 72 20 65 72 72 6f 72 20 72 65 70  Better error rep
85e0: 6f 72 74 69 6e 67 20 77 68 65 6e 20 70 72 6f 62  orting when prob
85f0: 6c 65 6d 73 20 6f 63 63 75 72 20 64 75 72 69 6e  lems occur durin
8600: 67 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 0a  g the automatic.
8610: 20 20 20 20 32 2e 35 2e 36 20 74 6f 20 32 2e 36      2.5.6 to 2.6
8620: 2e 30 20 64 61 74 61 62 61 73 65 20 66 6f 72 6d  .0 database form
8630: 61 74 20 75 70 67 72 61 64 65 2e 3c 2f 6c 69 3e  at upgrade.</li>
8640: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
8650: 6c 79 20 31 37 20 28 32 2e 36 2e 30 29 7d 20 7b  ly 17 (2.6.0)} {
8660: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
8670: 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69 63 65  format of indice
8680: 73 20 74 6f 20 63 6f 72 72 65 63 74 20 61 20 64  s to correct a d
8690: 65 73 69 67 6e 20 66 6c 61 77 20 74 68 65 20 6f  esign flaw the o
86a0: 72 69 67 69 6e 61 74 65 64 0a 20 20 20 20 77 69  riginated.    wi
86b0: 74 68 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e 30  th version 2.1.0
86c0: 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22  .  <font color="
86d0: 72 65 64 22 3e 2a 2a 2a 20 54 68 69 73 20 69 73  red">*** This is
86e0: 20 61 6e 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65   an incompatible
86f0: 0a 20 20 20 20 66 69 6c 65 20 66 6f 72 6d 61 74  .    file format
8700: 20 63 68 61 6e 67 65 20 2a 2a 2a 3c 2f 66 6f 6e   change ***</fon
8710: 74 3e 20 20 57 68 65 6e 20 76 65 72 73 69 6f 6e  t>  When version
8720: 20 32 2e 36 2e 30 20 6f 72 20 6c 61 74 65 72 20   2.6.0 or later 
8730: 6f 66 20 74 68 65 0a 20 20 20 20 6c 69 62 72 61  of the.    libra
8740: 72 79 20 61 74 74 65 6d 70 74 73 20 74 6f 20 6f  ry attempts to o
8750: 70 65 6e 20 61 20 64 61 74 61 62 61 73 65 20 66  pen a database f
8760: 69 6c 65 20 63 72 65 61 74 65 64 20 62 79 20 76  ile created by v
8770: 65 72 73 69 6f 6e 20 32 2e 35 2e 36 20 6f 72 0a  ersion 2.5.6 or.
8780: 20 20 20 20 65 61 72 6c 69 65 72 2c 20 69 74 20      earlier, it 
8790: 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c  will automatical
87a0: 6c 79 20 61 6e 64 20 69 72 72 65 76 65 72 73 69  ly and irreversi
87b0: 62 6c 79 20 63 6f 6e 76 65 72 74 20 74 68 65 20  bly convert the 
87c0: 66 69 6c 65 20 66 6f 72 6d 61 74 2e 0a 20 20 20  file format..   
87d0: 20 3c 62 3e 4d 61 6b 65 20 62 61 63 6b 75 70 20   <b>Make backup 
87e0: 63 6f 70 69 65 73 20 6f 66 20 6f 6c 64 65 72 20  copies of older 
87f0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 62  database files b
8800: 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20 74 68  efore opening th
8810: 65 6d 20 77 69 74 68 0a 20 20 20 20 76 65 72 73  em with.    vers
8820: 69 6f 6e 20 32 2e 36 2e 30 20 6f 66 20 74 68 65  ion 2.6.0 of the
8830: 20 6c 69 62 72 61 72 79 2e 3c 2f 62 3e 0a 20 20   library.</b>.  
8840: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
8850: 7b 32 30 30 32 20 4a 6c 79 20 37 20 28 32 2e 35  {2002 Jly 7 (2.5
8860: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 6d  .6)} {.<li>Fix m
8870: 6f 72 65 20 70 72 6f 62 6c 65 6d 73 20 77 69 74  ore problems wit
8880: 68 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 45 6e 68  h rollback.  Enh
8890: 61 6e 63 65 20 74 68 65 20 74 65 73 74 20 73 75  ance the test su
88a0: 69 74 65 20 74 6f 20 65 78 65 72 63 69 73 65 0a  ite to exercise.
88b0: 20 20 20 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b      the rollback
88c0: 20 6c 6f 67 69 63 20 65 78 74 65 6e 73 69 76 65   logic extensive
88d0: 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70  ly in order to p
88e0: 72 65 76 65 6e 74 20 61 6e 79 20 66 75 74 75 72  revent any futur
88f0: 65 20 70 72 6f 62 6c 65 6d 73 2e 0a 20 20 20 20  e problems..    
8900: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8910: 30 30 32 20 4a 6c 79 20 36 20 28 32 2e 35 2e 35  002 Jly 6 (2.5.5
8920: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
8930: 75 67 20 77 68 69 63 68 20 63 6f 75 6c 64 20 63  ug which could c
8940: 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63 6f  ause database co
8950: 72 72 75 70 74 69 6f 6e 20 64 75 72 69 6e 67 20  rruption during 
8960: 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a 20 20 20 20  a rollback..    
8970: 54 68 69 73 20 62 75 67 73 20 77 61 73 20 69 6e  This bugs was in
8980: 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73  troduced in vers
8990: 69 6f 6e 20 32 2e 34 2e 30 20 62 79 20 74 68 65  ion 2.4.0 by the
89a0: 20 66 72 65 65 6c 69 73 74 0a 20 20 20 20 6f 70   freelist.    op
89b0: 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 66 20 63 68  timization of ch
89c0: 65 63 6b 69 6e 67 20 5b 34 31 30 5d 2e 3c 2f 6c  ecking [410].</l
89d0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
89e0: 20 69 6e 20 61 67 67 72 65 67 61 74 65 20 66 75   in aggregate fu
89f0: 6e 63 74 69 6f 6e 73 20 66 6f 72 20 56 49 45 57  nctions for VIEW
8a00: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65  s.</li>.<li>Othe
8a10: 72 20 6d 69 6e 6f 72 20 63 68 61 6e 67 65 73 20  r minor changes 
8a20: 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  and enhancements
8a30: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8a40: 32 30 30 32 20 4a 6c 79 20 31 20 28 32 2e 35 2e  2002 Jly 1 (2.5.
8a50: 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 74  4)} {.<li>Make t
8a60: 68 65 20 22 41 53 22 20 6b 65 79 77 6f 72 64 20  he "AS" keyword 
8a70: 6f 70 74 69 6f 6e 61 6c 20 61 67 61 69 6e 2e 3c  optional again.<
8a80: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 61 74  /li>.<li>The dat
8a90: 61 74 79 70 65 20 6f 66 20 63 6f 6c 75 6d 6e 73  atype of columns
8aa0: 20 6e 6f 77 20 61 70 70 65 61 72 20 69 6e 20 74   now appear in t
8ab0: 68 65 20 34 74 68 20 61 72 67 75 6d 65 6e 74 20  he 4th argument 
8ac0: 74 6f 20 74 68 65 0a 20 20 20 20 63 61 6c 6c 62  to the.    callb
8ad0: 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ack.</li>.<li>Ad
8ae0: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
8af0: 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c 65 28  e_open_aux_file(
8b00: 29 3c 2f 62 3e 20 41 50 49 2c 20 74 68 6f 75 67  )</b> API, thoug
8b10: 68 20 69 74 20 69 73 20 73 74 69 6c 6c 0a 20 20  h it is still.  
8b20: 20 20 6d 6f 73 74 6c 79 20 75 6e 64 6f 63 75 6d    mostly undocum
8b30: 65 6e 74 65 64 20 61 6e 64 20 75 6e 74 65 73 74  ented and untest
8b40: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ed.</li>.<li>Add
8b50: 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65  ed additional te
8b60: 73 74 20 63 61 73 65 73 20 61 6e 64 20 66 69 78  st cases and fix
8b70: 65 64 20 61 20 66 65 77 20 62 75 67 73 20 74 68  ed a few bugs th
8b80: 61 74 20 74 68 6f 73 65 0a 20 20 20 20 74 65 73  at those.    tes
8b90: 74 20 63 61 73 65 73 20 66 6f 75 6e 64 2e 3c 2f  t cases found.</
8ba0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8bb0: 32 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e 33 29  2 Jun 24 (2.5.3)
8bc0: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
8bd0: 20 20 44 61 74 61 62 61 73 65 20 63 6f 72 72 75    Database corru
8be0: 70 74 69 6f 6e 20 63 61 6e 20 6f 63 63 75 72 20  ption can occur 
8bf0: 64 75 65 20 74 6f 20 74 68 65 20 6f 70 74 69 6d  due to the optim
8c00: 69 7a 61 74 69 6f 6e 0a 20 20 20 20 74 68 61 74  ization.    that
8c10: 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20   was introduced 
8c20: 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 2e 30  in version 2.4.0
8c30: 20 28 63 68 65 63 6b 2d 69 6e 20 5b 34 31 30 5d   (check-in [410]
8c40: 29 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 0a  ).  The problem.
8c50: 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 77 20 62      should now b
8c60: 65 20 66 69 78 65 64 2e 20 20 54 68 65 20 75 73  e fixed.  The us
8c70: 65 20 6f 66 20 76 65 72 73 69 6f 6e 73 20 32 2e  e of versions 2.
8c80: 34 2e 30 20 74 68 72 6f 75 67 68 20 32 2e 35 2e  4.0 through 2.5.
8c90: 32 20 69 73 0a 20 20 20 20 6e 6f 74 20 72 65 63  2 is.    not rec
8ca0: 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c 69 3e 0a 7d  ommended.</li>.}
8cb0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e  ..chng {2002 Jun
8cc0: 20 32 34 20 28 32 2e 35 2e 32 29 7d 20 7b 0a 3c   24 (2.5.2)} {.<
8cd0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65 77  li>Added the new
8ce0: 20 3c 62 3e 53 51 4c 49 54 45 5f 54 45 4d 50 5f   <b>SQLITE_TEMP_
8cf0: 4d 41 53 54 45 52 3c 2f 62 3e 20 74 61 62 6c 65  MASTER</b> table
8d00: 20 77 68 69 63 68 20 72 65 63 6f 72 64 73 20 74   which records t
8d10: 68 65 20 73 63 68 65 6d 61 0a 20 20 20 20 66 6f  he schema.    fo
8d20: 72 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c  r temporary tabl
8d30: 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77  es in the same w
8d40: 61 79 20 74 68 61 74 20 3c 62 3e 53 51 4c 49 54  ay that <b>SQLIT
8d50: 45 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 64 6f 65  E_MASTER</b> doe
8d60: 73 20 66 6f 72 0a 20 20 20 20 70 65 72 73 69 73  s for.    persis
8d70: 74 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f 6c 69  tent tables.</li
8d80: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 6e 20 6f  >.<li>Added an o
8d90: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 74 6f 20 55  ptimization to U
8da0: 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69 3e 0a 3c 6c  NION ALL</li>.<l
8db0: 69 3e 46 69 78 65 64 20 61 20 62 75 67 20 69 6e  i>Fixed a bug in
8dc0: 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67 20   the processing 
8dd0: 6f 66 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f  of LEFT OUTER JO
8de0: 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  IN</li>.<li>The 
8df0: 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6e 6f 77  LIMIT clause now
8e00: 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c   works on subsel
8e10: 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52  ects</li>.<li>OR
8e20: 44 45 52 20 42 59 20 77 6f 72 6b 73 20 6f 6e 20  DER BY works on 
8e30: 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a  subselects</li>.
8e40: 3c 6c 69 3e 54 68 65 72 65 20 69 73 20 61 20 6e  <li>There is a n
8e50: 65 77 20 54 79 70 65 4f 66 28 29 20 66 75 6e 63  ew TypeOf() func
8e60: 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 64 65 74  tion used to det
8e70: 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 65 78 70  ermine if an exp
8e80: 72 65 73 73 69 6f 6e 0a 20 20 20 20 69 73 20 6e  ression.    is n
8e90: 75 6d 65 72 69 63 20 6f 72 20 74 65 78 74 2e 3c  umeric or text.<
8ea0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 69 6e 63  /li>.<li>Autoinc
8eb0: 72 65 6d 65 6e 74 20 6e 6f 77 20 77 6f 72 6b 73  rement now works
8ec0: 20 66 6f 72 20 49 4e 53 45 52 54 20 66 72 6f 6d   for INSERT from
8ed0: 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a   a SELECT.</li>.
8ee0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75  }..chng {2002 Ju
8ef0: 6e 20 31 39 20 28 32 2e 35 2e 31 29 7d 20 7b 0a  n 19 (2.5.1)} {.
8f00: 3c 6c 69 3e 54 68 65 20 71 75 65 72 79 20 6f 70  <li>The query op
8f10: 74 69 6d 69 7a 65 72 20 6e 6f 77 20 61 74 74 65  timizer now atte
8f20: 6d 70 74 73 20 74 6f 20 69 6d 70 6c 65 6d 65 6e  mpts to implemen
8f30: 74 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 63  t the ORDER BY c
8f40: 6c 61 75 73 65 0a 20 20 20 20 75 73 69 6e 67 20  lause.    using 
8f50: 61 6e 20 69 6e 64 65 78 2e 20 20 53 6f 72 74 69  an index.  Sorti
8f60: 6e 67 20 69 73 20 73 74 69 6c 6c 20 75 73 65 64  ng is still used
8f70: 20 69 66 20 6e 6f 74 20 73 75 69 74 61 62 6c 65   if not suitable
8f80: 20 69 6e 64 65 78 20 69 73 0a 20 20 20 20 61 76   index is.    av
8f90: 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a  ailable.</li>.}.
8fa0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20  .chng {2002 Jun 
8fb0: 31 37 20 28 32 2e 35 2e 30 29 7d 20 7b 0a 3c 6c  17 (2.5.0)} {.<l
8fc0: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
8fd0: 66 6f 72 20 72 6f 77 20 74 72 69 67 67 65 72 73  for row triggers
8fe0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
8ff0: 20 53 51 4c 2d 39 32 20 63 6f 6d 70 6c 69 61 6e   SQL-92 complian
9000: 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 4e 55  t handling of NU
9010: 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  LLs.</li>.<li>Ad
9020: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68  d support for th
9030: 65 20 66 75 6c 6c 20 53 51 4c 2d 39 32 20 6a 6f  e full SQL-92 jo
9040: 69 6e 20 73 79 6e 74 61 78 20 61 6e 64 20 4c 45  in syntax and LE
9050: 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73 2e 3c  FT OUTER JOINs.<
9060: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75 62 6c 65 2d  /li>.<li>Double-
9070: 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73 20 69  quoted strings i
9080: 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 63 6f  nterpreted as co
9090: 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e 6f 74 20 74  lumn names not t
90a0: 65 78 74 20 6c 69 74 65 72 61 6c 73 2e 3c 2f 6c  ext literals.</l
90b0: 69 3e 0a 3c 6c 69 3e 50 61 72 73 65 20 28 62 75  i>.<li>Parse (bu
90c0: 74 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65 6d 65  t do not impleme
90d0: 6e 74 29 20 66 6f 72 65 69 67 6e 20 6b 65 79 73  nt) foreign keys
90e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f  .</li>.<li>Perfo
90f0: 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65  rmance improveme
9100: 6e 74 73 20 69 6e 20 74 68 65 20 70 61 72 73 65  nts in the parse
9110: 72 2c 20 70 61 67 65 72 2c 20 61 6e 64 20 57 48  r, pager, and WH
9120: 45 52 45 20 63 6c 61 75 73 65 20 63 6f 64 65 0a  ERE clause code.
9130: 20 20 20 20 67 65 6e 65 72 61 74 6f 72 2e 3c 2f      generator.</
9140: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65  li>.<li>Make the
9150: 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 77 6f   LIMIT clause wo
9160: 72 6b 20 6f 6e 20 73 75 62 71 75 65 72 69 65 73  rk on subqueries
9170: 2e 20 20 28 4f 52 44 45 52 20 42 59 20 73 74 69  .  (ORDER BY sti
9180: 6c 6c 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20  ll does not.    
9190: 77 6f 72 6b 2c 20 74 68 6f 75 67 68 2e 29 3c 2f  work, though.)</
91a0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
91b0: 65 20 22 25 51 22 20 65 78 70 61 6e 73 69 6f 6e  e "%Q" expansion
91c0: 20 74 6f 20 73 71 6c 69 74 65 5f 2a 5f 70 72 69   to sqlite_*_pri
91d0: 6e 74 66 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ntf().</li>.<li>
91e0: 42 75 67 20 66 69 78 65 73 20 74 6f 6f 20 6e 75  Bug fixes too nu
91f0: 6d 65 72 6f 75 73 20 74 6f 20 6d 65 6e 74 69 6f  merous to mentio
9200: 6e 20 28 73 65 65 20 74 68 65 20 63 68 61 6e 67  n (see the chang
9210: 65 20 6c 6f 67 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e log).</li>.}..
9220: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30  chng {2002 May 0
9230: 39 20 28 32 2e 34 2e 31 32 29 7d 20 7b 0a 3c 6c  9 (2.4.12)} {.<l
9240: 69 3e 41 64 64 65 64 20 6c 6f 67 69 63 20 74 6f  i>Added logic to
9250: 20 64 65 74 65 63 74 20 77 68 65 6e 20 74 68 65   detect when the
9260: 20 6c 69 62 72 61 72 79 20 41 50 49 20 72 6f 75   library API rou
9270: 74 69 6e 65 73 20 61 72 65 20 63 61 6c 6c 65 64  tines are called
9280: 20 6f 75 74 0a 20 20 20 20 6f 66 20 73 65 71 75   out.    of sequ
9290: 65 6e 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ence.</li>.}..ch
92a0: 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30 38 20  ng {2002 May 08 
92b0: 28 32 2e 34 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e  (2.4.11)} {.<li>
92c0: 42 75 67 20 66 69 78 3a 20 43 6f 6c 75 6d 6e 20  Bug fix: Column 
92d0: 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 72 65 73  names in the res
92e0: 75 6c 74 20 73 65 74 20 77 65 72 65 20 6e 6f 74  ult set were not
92f0: 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64   being generated
9300: 0a 20 20 20 20 63 6f 72 72 65 63 74 6c 79 20 66  .    correctly f
9310: 6f 72 20 73 6f 6d 65 20 28 72 61 74 68 65 72 20  or some (rather 
9320: 63 6f 6d 70 6c 65 78 29 20 56 49 45 57 73 2e 20  complex) VIEWs. 
9330: 20 54 68 69 73 20 63 6f 75 6c 64 20 63 61 75 73   This could caus
9340: 65 20 61 0a 20 20 20 20 73 65 67 66 61 75 6c 74  e a.    segfault
9350: 20 75 6e 64 65 72 20 63 65 72 74 61 69 6e 20 63   under certain c
9360: 69 72 63 75 6d 73 74 61 6e 63 65 73 2e 3c 2f 6c  ircumstances.</l
9370: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
9380: 20 4d 61 79 20 30 32 20 28 32 2e 34 2e 31 30 29   May 02 (2.4.10)
9390: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
93a0: 20 47 65 6e 65 72 61 74 65 20 63 6f 72 72 65 63   Generate correc
93b0: 74 20 63 6f 6c 75 6d 6e 20 68 65 61 64 65 72 73  t column headers
93c0: 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64   when a compound
93d0: 20 53 45 4c 45 43 54 20 69 73 20 75 73 65 64 0a   SELECT is used.
93e0: 20 20 20 20 61 73 20 61 20 73 75 62 71 75 65 72      as a subquer
93f0: 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  y.</li>.<li>Adde
9400: 64 20 74 68 65 20 73 71 6c 69 74 65 5f 65 6e 63  d the sqlite_enc
9410: 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 61 6e 64  ode_binary() and
9420: 20 73 71 6c 69 74 65 5f 64 65 63 6f 64 65 5f 62   sqlite_decode_b
9430: 69 6e 61 72 79 28 29 20 66 75 6e 63 74 69 6f 6e  inary() function
9440: 73 20 74 6f 0a 20 20 20 20 74 68 65 20 73 6f 75  s to.    the sou
9450: 72 63 65 20 74 72 65 65 2e 20 20 42 75 74 20 74  rce tree.  But t
9460: 68 65 79 20 61 72 65 20 6e 6f 74 20 79 65 74 20  hey are not yet 
9470: 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 74 68 65 20  linked into the 
9480: 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c  library.</li>.<l
9490: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
94a0: 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  updates.</li>.<l
94b0: 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73 71 6c  i>Export the sql
94c0: 69 74 65 5f 63 68 61 6e 67 65 73 28 29 20 66 75  ite_changes() fu
94d0: 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 77 69 6e 64  nction from wind
94e0: 6f 77 73 20 44 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c  ows DLLs.</li>.<
94f0: 6c 69 3e 42 75 67 20 66 69 78 3a 20 44 6f 20 6e  li>Bug fix: Do n
9500: 6f 74 20 61 74 74 65 6d 70 74 20 74 68 65 20 73  ot attempt the s
9510: 75 62 71 75 65 72 79 20 66 6c 61 74 74 65 6e 69  ubquery flatteni
9520: 6e 67 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20  ng optimization 
9530: 6f 6e 20 71 75 65 72 69 65 73 0a 20 20 20 20 74  on queries.    t
9540: 68 61 74 20 6c 61 63 6b 20 61 20 46 52 4f 4d 20  hat lack a FROM 
9550: 63 6c 61 75 73 65 2e 20 20 54 6f 20 64 6f 20 73  clause.  To do s
9560: 6f 20 63 61 75 73 65 73 20 61 20 73 65 67 66 61  o causes a segfa
9570: 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ult.</li>.}..chn
9580: 67 20 7b 32 30 30 32 20 41 70 72 20 32 31 20 28  g {2002 Apr 21 (
9590: 32 2e 34 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.4.9)} {.<li>Fi
95a0: 78 20 61 20 62 75 67 20 74 68 61 74 20 77 61 73  x a bug that was
95b0: 20 63 61 75 73 69 6e 67 20 74 68 65 20 70 72 65   causing the pre
95c0: 63 6f 6d 70 69 6c 65 64 20 62 69 6e 61 72 79 20  compiled binary 
95d0: 6f 66 20 53 51 4c 49 54 45 2e 45 58 45 20 74 6f  of SQLITE.EXE to
95e0: 0a 20 20 20 20 72 65 70 6f 72 74 20 22 6f 75 74  .    report "out
95f0: 20 6f 66 20 6d 65 6d 6f 72 79 22 20 75 6e 64 65   of memory" unde
9600: 72 20 57 69 6e 64 6f 77 73 20 39 38 2e 3c 2f 6c  r Windows 98.</l
9610: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
9620: 20 41 70 72 20 32 30 20 28 32 2e 34 2e 38 29 7d   Apr 20 (2.4.8)}
9630: 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65   {.<li>Make sure
9640: 20 56 49 45 57 73 20 61 72 65 20 63 72 65 61 74   VIEWs are creat
9650: 65 64 20 61 66 74 65 72 20 74 68 65 69 72 20 63  ed after their c
9660: 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 54 41 42  orresponding TAB
9670: 4c 45 73 20 69 6e 20 74 68 65 0a 20 20 20 20 6f  LEs in the.    o
9680: 75 74 70 75 74 20 6f 66 20 74 68 65 20 3c 62 3e  utput of the <b>
9690: 2e 64 75 6d 70 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  .dump</b> comman
96a0: 64 20 69 6e 20 74 68 65 20 73 68 65 6c 6c 2e 3c  d in the shell.<
96b0: 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69  /li>.<li>Speed i
96c0: 6d 70 72 6f 76 65 6d 65 6e 74 73 3a 20 44 6f 20  mprovements: Do 
96d0: 6e 6f 74 20 64 6f 20 73 79 6e 63 68 72 6f 6e 6f  not do synchrono
96e0: 75 73 20 75 70 64 61 74 65 73 20 6f 6e 20 54 45  us updates on TE
96f0: 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a  MP tables.</li>.
9700: 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70 72 6f 76 65  <li>Many improve
9710: 6d 65 6e 74 73 20 61 6e 64 20 65 6e 68 61 6e 63  ments and enhanc
9720: 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 73 68  ements to the sh
9730: 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  ell.</li>.<li>Ma
9740: 6b 65 20 74 68 65 20 47 4c 4f 42 20 61 6e 64 20  ke the GLOB and 
9750: 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 73 20 66  LIKE operators f
9760: 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 63 61  unctions that ca
9770: 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 0a  n be overridden.
9780: 20 20 20 20 62 79 20 61 20 70 72 6f 67 72 61 6d      by a program
9790: 6d 65 72 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77  mer.  This allow
97a0: 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20  s, for example, 
97b0: 74 68 65 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f  the LIKE operato
97c0: 72 20 74 6f 0a 20 20 20 20 62 65 20 63 68 61 6e  r to.    be chan
97d0: 67 65 64 20 74 6f 20 62 65 20 63 61 73 65 20 73  ged to be case s
97e0: 65 6e 73 69 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d  ensitive.</li>.}
97f0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72  ..chng {2002 Apr
9800: 20 30 36 20 28 32 2e 34 2e 37 29 7d 20 7b 0a 3c   06 (2.4.7)} {.<
9810: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
9820: 74 79 20 74 6f 20 70 75 74 20 54 41 42 4c 45 2e  ty to put TABLE.
9830: 2a 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20  * in the column 
9840: 6c 69 73 74 20 6f 66 20 61 0a 20 20 20 20 53 45  list of a.    SE
9850: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
9860: 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 6d 69 74 20  /li>.<li>Permit 
9870: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
9880: 73 20 77 69 74 68 6f 75 74 20 61 20 46 52 4f 4d  s without a FROM
9890: 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c   clause.</li>.<l
98a0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 6c  i>Added the <b>l
98b0: 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64  ast_insert_rowid
98c0: 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75 6e 63 74  ()</b> SQL funct
98d0: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f  ion.</li>.<li>Do
98e0: 20 6e 6f 74 20 63 6f 75 6e 74 20 72 6f 77 73 20   not count rows 
98f0: 77 68 65 72 65 20 74 68 65 20 49 47 4e 4f 52 45  where the IGNORE
9900: 20 63 6f 6e 66 6c 69 63 74 20 72 65 73 6f 6c 75   conflict resolu
9910: 74 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e 0a 20  tion occurs in. 
9920: 20 20 20 74 68 65 20 72 6f 77 20 63 6f 75 6e 74     the row count
9930: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20  .</li>.<li>Make 
9940: 73 75 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 65  sure functions e
9950: 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20 74 68  xpressions in th
9960: 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73 65 20  e VALUES clause 
9970: 6f 66 20 61 6e 20 49 4e 53 45 52 54 0a 20 20 20  of an INSERT.   
9980: 20 61 72 65 20 63 6f 72 72 65 63 74 2e 3c 2f 6c   are correct.</l
9990: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
99a0: 20 3c 62 3e 73 71 6c 69 74 65 5f 63 68 61 6e 67   <b>sqlite_chang
99b0: 65 73 28 29 3c 2f 62 3e 20 41 50 49 20 66 75 6e  es()</b> API fun
99c0: 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20  ction to return 
99d0: 74 68 65 20 6e 75 6d 62 65 72 0a 20 20 20 20 6f  the number.    o
99e0: 66 20 72 6f 77 20 74 68 61 74 20 63 68 61 6e 67  f row that chang
99f0: 65 64 20 69 6e 20 74 68 65 20 6d 6f 73 74 20 72  ed in the most r
9a00: 65 63 65 6e 74 20 6f 70 65 72 61 74 69 6f 6e 2e  ecent operation.
9a10: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
9a20: 30 30 32 20 41 70 72 20 30 32 20 28 32 2e 34 2e  002 Apr 02 (2.4.
9a30: 36 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  6)} {.<li>Bug fi
9a40: 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68 61 6e  x: Correctly han
9a50: 64 6c 65 20 74 65 72 6d 73 20 69 6e 20 74 68 65  dle terms in the
9a60: 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 6f 66   WHERE clause of
9a70: 20 61 20 6a 6f 69 6e 20 74 68 61 74 0a 20 20 20   a join that.   
9a80: 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20   do not contain 
9a90: 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65  a comparison ope
9aa0: 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rator.</li>.}..c
9ab0: 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 30 31  hng {2002 Apr 01
9ac0: 20 28 32 2e 34 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.5)} {.<li>
9ad0: 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65 63 74  Bug fix: Correct
9ae0: 6c 79 20 68 61 6e 64 6c 65 20 66 75 6e 63 74 69  ly handle functi
9af0: 6f 6e 73 20 74 68 61 74 20 61 70 70 65 61 72 20  ons that appear 
9b00: 69 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c 61  in the WHERE cla
9b10: 75 73 65 0a 20 20 20 20 6f 66 20 61 20 6a 6f 69  use.    of a joi
9b20: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e  n.</li>.<li>When
9b30: 20 74 68 65 20 50 52 41 47 4d 41 20 76 64 62 65   the PRAGMA vdbe
9b40: 5f 74 72 61 63 65 3d 4f 4e 20 69 73 20 73 65 74  _trace=ON is set
9b50: 2c 20 63 6f 72 72 65 63 74 6c 79 20 70 72 69 6e  , correctly prin
9b60: 74 20 74 68 65 20 50 33 20 6f 70 65 72 61 6e 64  t the P3 operand
9b70: 0a 20 20 20 20 76 61 6c 75 65 20 77 68 65 6e 20  .    value when 
9b80: 69 74 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20  it is a pointer 
9b90: 74 6f 20 61 20 73 74 72 75 63 74 75 72 65 20 72  to a structure r
9ba0: 61 74 68 65 72 20 74 68 61 6e 20 61 20 70 6f 69  ather than a poi
9bb0: 6e 74 65 72 20 74 6f 0a 20 20 20 20 61 20 73 74  nter to.    a st
9bc0: 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57  ring.</li>.<li>W
9bd0: 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 20 61 6e  hen inserting an
9be0: 20 65 78 70 6c 69 63 69 74 20 4e 55 4c 4c 20 69   explicit NULL i
9bf0: 6e 74 6f 20 61 6e 20 49 4e 54 45 47 45 52 20 50  nto an INTEGER P
9c00: 52 49 4d 41 52 59 20 4b 45 59 2c 20 63 6f 6e 76  RIMARY KEY, conv
9c10: 65 72 74 0a 20 20 20 20 74 68 65 20 4e 55 4c 4c  ert.    the NULL
9c20: 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20 75 6e   value into a un
9c30: 69 71 75 65 20 6b 65 79 20 61 75 74 6f 6d 61 74  ique key automat
9c40: 69 63 61 6c 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ically.</li>.}..
9c50: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 32  chng {2002 Mar 2
9c60: 34 20 28 32 2e 34 2e 34 29 7d 20 7b 0a 3c 6c 69  4 (2.4.4)} {.<li
9c70: 3e 41 6c 6c 6f 77 20 22 56 49 45 57 22 20 74 6f  >Allow "VIEW" to
9c80: 20 62 65 20 61 20 63 6f 6c 75 6d 6e 20 6e 61 6d   be a column nam
9c90: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  e</li>.<li>Added
9ca0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 41 53   support for CAS
9cb0: 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20 28 70  E expressions (p
9cc0: 61 74 63 68 20 66 72 6f 6d 20 44 61 6e 20 4b 65  atch from Dan Ke
9cd0: 6e 6e 65 64 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nnedy)</li>.<li>
9ce0: 41 64 64 65 64 20 52 50 4d 53 20 74 6f 20 74 68  Added RPMS to th
9cf0: 65 20 64 65 6c 69 76 65 72 79 20 28 70 61 74 63  e delivery (patc
9d00: 68 65 73 20 66 72 6f 6d 20 44 6f 75 67 20 48 65  hes from Doug He
9d10: 6e 72 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  nry)</li>.<li>Fi
9d20: 78 20 74 79 70 6f 73 20 69 6e 20 74 68 65 20 64  x typos in the d
9d30: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69  ocumentation</li
9d40: 3e 0a 3c 6c 69 3e 43 75 74 20 6f 76 65 72 20 63  >.<li>Cut over c
9d50: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 61 6e  onfiguration man
9d60: 61 67 65 6d 65 6e 74 20 74 6f 20 61 20 6e 65 77  agement to a new
9d70: 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72 79 20   CVS repository 
9d80: 77 69 74 68 0a 20 20 20 20 69 74 73 20 6f 77 6e  with.    its own
9d90: 20 43 56 53 54 72 61 63 20 62 75 67 20 74 72 61   CVSTrac bug tra
9da0: 63 6b 69 6e 67 20 73 79 73 74 65 6d 2e 3c 2f 6c  cking system.</l
9db0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
9dc0: 20 4d 61 72 20 32 32 20 28 32 2e 34 2e 33 29 7d   Mar 22 (2.4.3)}
9dd0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
9de0: 20 69 6e 20 53 45 4c 45 43 54 20 74 68 61 74 20   in SELECT that 
9df0: 6f 63 63 75 72 73 20 77 68 65 6e 20 61 20 63 6f  occurs when a co
9e00: 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 69 73  mpound SELECT is
9e10: 20 75 73 65 64 20 61 73 20 61 0a 20 20 20 20 73   used as a.    s
9e20: 75 62 71 75 65 72 79 20 69 6e 20 74 68 65 20 46  ubquery in the F
9e30: 52 4f 4d 20 6f 66 20 61 20 53 45 4c 45 43 54 2e  ROM of a SELECT.
9e40: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c 62  </li>.<li>The <b
9e50: 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c  >sqlite_get_tabl
9e60: 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e  e()</b> function
9e70: 20 6e 6f 77 20 72 65 74 75 72 6e 73 20 61 6e 20   now returns an 
9e80: 65 72 72 6f 72 20 69 66 20 79 6f 75 0a 20 20 20  error if you.   
9e90: 20 67 69 76 65 20 69 74 20 74 77 6f 20 6f 72 20   give it two or 
9ea0: 6d 6f 72 65 20 53 45 4c 45 43 54 73 20 74 68 61  more SELECTs tha
9eb0: 74 20 72 65 74 75 72 6e 20 64 69 66 66 65 72 65  t return differe
9ec0: 6e 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 63 6f  nt numbers of co
9ed0: 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  lumns.</li>.}..c
9ee0: 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 31 34  hng {2002 Mar 14
9ef0: 20 28 32 2e 34 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.2)} {.<li>
9f00: 42 75 67 20 66 69 78 3a 20 46 69 78 20 61 6e 20  Bug fix: Fix an 
9f10: 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72  assertion failur
9f20: 65 20 74 68 61 74 20 6f 63 63 75 72 72 65 64 20  e that occurred 
9f30: 77 68 65 6e 20 52 4f 57 49 44 20 77 61 73 20 61  when ROWID was a
9f40: 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 69 6e 20 61   column.    in a
9f50: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
9f60: 74 20 6f 6e 20 61 20 76 69 65 77 2e 3c 2f 6c 69  t on a view.</li
9f70: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 46  >.<li>Bug fix: F
9f80: 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61 6c 69  ix an uninitiali
9f90: 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69 6e 20  zed variable in 
9fa0: 74 68 65 20 56 44 42 45 20 74 68 61 74 20 77 6f  the VDBE that wo
9fb0: 75 6c 64 20 63 6f 75 6c 64 20 61 6e 0a 20 20 20  uld could an.   
9fc0: 20 61 73 73 65 72 74 20 66 61 69 6c 75 72 65 2e   assert failure.
9fd0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74  </li>.<li>Make t
9fe0: 68 65 20 6f 73 2e 68 20 68 65 61 64 65 72 20 66  he os.h header f
9ff0: 69 6c 65 20 6d 6f 72 65 20 72 6f 62 75 73 74 20  ile more robust 
a000: 69 6e 20 64 65 74 65 63 74 69 6e 67 20 77 68 65  in detecting whe
a010: 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 20 69 73  n the compile is
a020: 0a 20 20 20 20 66 6f 72 20 77 69 6e 64 6f 77 73  .    for windows
a030: 20 61 6e 64 20 77 68 65 6e 20 69 74 20 69 73 20   and when it is 
a040: 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d  for unix.</li>.}
a050: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72  ..chng {2002 Mar
a060: 20 31 33 20 28 32 2e 34 2e 31 29 7d 20 7b 0a 3c   13 (2.4.1)} {.<
a070: 6c 69 3e 55 73 69 6e 67 20 61 6e 20 75 6e 6e 61  li>Using an unna
a080: 6d 65 64 20 73 75 62 71 75 65 72 79 20 69 6e 20  med subquery in 
a090: 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 20 77 6f  a FROM clause wo
a0a0: 75 6c 64 20 63 61 75 73 65 20 61 20 73 65 67 66  uld cause a segf
a0b0: 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ault.</li>.<li>T
a0c0: 68 65 20 70 61 72 73 65 72 20 6e 6f 77 20 69 6e  he parser now in
a0d0: 73 69 73 74 73 20 6f 6e 20 73 65 65 69 6e 67 20  sists on seeing 
a0e0: 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 6f 72 20 74  a semicolon or t
a0f0: 68 65 20 65 6e 64 20 6f 66 20 69 6e 70 75 74 20  he end of input 
a100: 62 65 66 6f 72 65 0a 20 20 20 20 65 78 65 63 75  before.    execu
a110: 74 69 6e 67 20 61 20 73 74 61 74 65 6d 65 6e 74  ting a statement
a120: 2e 20 20 54 68 69 73 20 61 76 6f 69 64 73 20 61  .  This avoids a
a130: 6e 20 61 63 63 69 64 65 6e 74 61 6c 20 64 69 73  n accidental dis
a140: 61 73 74 65 72 20 69 66 20 74 68 65 0a 20 20 20  aster if the.   
a150: 20 57 48 45 52 45 20 6b 65 79 77 6f 72 64 20 69   WHERE keyword i
a160: 73 20 6d 69 73 73 70 65 6c 6c 65 64 20 69 6e 20  s misspelled in 
a170: 61 6e 20 55 50 44 41 54 45 20 6f 72 20 44 45 4c  an UPDATE or DEL
a180: 45 54 45 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f  ETE statement.</
a190: 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67 20 7b 32 30  li>.}...chng {20
a1a0: 30 32 20 4d 61 72 20 31 30 20 28 32 2e 34 2e 30  02 Mar 10 (2.4.0
a1b0: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
a1c0: 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  the name of the 
a1d0: 73 61 6e 69 74 79 5f 63 68 65 63 6b 20 50 52 41  sanity_check PRA
a1e0: 47 4d 41 20 74 6f 20 3c 62 3e 69 6e 74 65 67 72  GMA to <b>integr
a1f0: 69 74 79 5f 63 68 65 63 6b 3c 2f 62 3e 0a 20 20  ity_check</b>.  
a200: 20 20 61 6e 64 20 6d 61 6b 65 20 69 74 20 61 76    and make it av
a210: 61 69 6c 61 62 6c 65 20 69 6e 20 61 6c 6c 20 63  ailable in all c
a220: 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ompiles.</li>.<l
a230: 69 3e 53 45 4c 45 43 54 20 6d 69 6e 28 29 20 6f  i>SELECT min() o
a240: 72 20 6d 61 78 28 29 20 6f 66 20 61 6e 20 69 6e  r max() of an in
a250: 64 65 78 65 64 20 63 6f 6c 75 6d 6e 20 77 69 74  dexed column wit
a260: 68 20 6e 6f 20 57 48 45 52 45 20 6f 72 20 47 52  h no WHERE or GR
a270: 4f 55 50 20 42 59 0a 20 20 20 20 63 6c 61 75 73  OUP BY.    claus
a280: 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61 73 20  e is handled as 
a290: 61 20 73 70 65 63 69 61 6c 20 63 61 73 65 20 77  a special case w
a2a0: 68 69 63 68 20 61 76 6f 69 64 73 20 61 20 63 6f  hich avoids a co
a2b0: 6d 70 6c 65 74 65 20 74 61 62 6c 65 20 73 63 61  mplete table sca
a2c0: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f  n.</li>.<li>Auto
a2d0: 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61  matically genera
a2e0: 74 65 64 20 52 4f 57 49 44 73 20 61 72 65 20 6e  ted ROWIDs are n
a2f0: 6f 77 20 73 65 71 75 65 6e 74 69 61 6c 2e 3c 2f  ow sequential.</
a300: 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 61  li>.<li>Do not a
a310: 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d 6d 61 6e 64  llow dot-command
a320: 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64  s of the command
a330: 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74 6f 20 6f  -line shell to o
a340: 63 63 75 72 20 69 6e 20 74 68 65 0a 20 20 20 20  ccur in the.    
a350: 6d 69 64 64 6c 65 20 6f 66 20 61 20 72 65 61 6c  middle of a real
a360: 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c   SQL command.</l
a370: 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 63 61 74  i>.<li>Modificat
a380: 69 6f 6e 73 20 74 6f 20 74 68 65 20 22 6c 65 6d  ions to the "lem
a390: 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e 65 72  on" parser gener
a3a0: 61 74 6f 72 20 73 6f 20 74 68 61 74 20 74 68 65  ator so that the
a3b0: 20 70 61 72 73 65 72 20 74 61 62 6c 65 73 0a 20   parser tables. 
a3c0: 20 20 20 61 72 65 20 34 20 74 69 6d 65 73 20 73     are 4 times s
a3d0: 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  maller.</li>.<li
a3e0: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
a3f0: 6f 72 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20  or user-defined 
a400: 66 75 6e 63 74 69 6f 6e 73 20 69 6d 70 6c 65 6d  functions implem
a410: 65 6e 74 65 64 20 69 6e 20 43 2e 3c 2f 6c 69 3e  ented in C.</li>
a420: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
a430: 72 74 20 66 6f 72 20 6e 65 77 20 66 75 6e 63 74  rt for new funct
a440: 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61 6c 65 73 63  ions: <b>coalesc
a450: 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e 6c 6f 77 65  e()</b>, <b>lowe
a460: 72 28 29 3c 2f 62 3e 2c 0a 20 20 20 20 3c 62 3e  r()</b>,.    <b>
a470: 75 70 70 65 72 28 29 3c 2f 62 3e 2c 20 61 6e 64  upper()</b>, and
a480: 20 3c 62 3e 72 61 6e 64 6f 6d 28 29 3c 2f 62 3e   <b>random()</b>
a490: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
a4a0: 72 74 20 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c  rt for VIEWs.</l
a4b0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
a4c0: 20 73 75 62 71 75 65 72 79 20 66 6c 61 74 74 65   subquery flatte
a4d0: 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 65 72 2e 3c  ning optimizer.<
a4e0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65  /li>.<li>Modifie
a4f0: 64 20 74 68 65 20 42 2d 54 72 65 65 20 61 6e 64  d the B-Tree and
a500: 20 50 61 67 65 72 20 6d 6f 64 75 6c 65 73 20 73   Pager modules s
a510: 6f 20 74 68 61 74 20 64 69 73 6b 20 70 61 67 65  o that disk page
a520: 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 0a 20 20  s that do not.  
a530: 20 20 63 6f 6e 74 61 69 6e 20 72 65 61 6c 20 64    contain real d
a540: 61 74 61 20 28 66 72 65 65 20 70 61 67 65 73 29  ata (free pages)
a550: 20 61 72 65 20 6e 6f 74 20 6a 6f 75 72 6e 61 6c   are not journal
a560: 65 64 20 61 6e 64 20 61 72 65 20 6e 6f 74 0a 20  ed and are not. 
a570: 20 20 20 77 72 69 74 74 65 6e 20 66 72 6f 6d 20     written from 
a580: 6d 65 6d 6f 72 79 20 62 61 63 6b 20 74 6f 20 74  memory back to t
a590: 68 65 20 64 69 73 6b 20 77 68 65 6e 20 74 68 65  he disk when the
a5a0: 79 20 63 68 61 6e 67 65 2e 20 20 54 68 69 73 20  y change.  This 
a5b0: 64 6f 65 73 20 6e 6f 74 20 0a 20 20 20 20 69 6d  does not .    im
a5c0: 70 61 63 74 20 64 61 74 61 62 61 73 65 20 69 6e  pact database in
a5d0: 74 65 67 72 69 74 79 2c 20 73 69 6e 63 65 20 74  tegrity, since t
a5e0: 68 65 0a 20 20 20 20 70 61 67 65 73 20 63 6f 6e  he.    pages con
a5f0: 74 61 69 6e 20 6e 6f 20 72 65 61 6c 20 64 61 74  tain no real dat
a600: 61 2c 20 62 75 74 20 69 74 20 64 6f 65 73 20 6d  a, but it does m
a610: 61 6b 65 20 6c 61 72 67 65 20 49 4e 53 45 52 54  ake large INSERT
a620: 20 6f 70 65 72 61 74 69 6f 6e 73 0a 20 20 20 20   operations.    
a630: 61 62 6f 75 74 20 32 2e 35 20 74 69 6d 65 73 20  about 2.5 times 
a640: 66 61 73 74 65 72 20 61 6e 64 20 6c 61 72 67 65  faster and large
a650: 20 44 45 4c 45 54 45 73 20 61 62 6f 75 74 20 35   DELETEs about 5
a660: 20 74 69 6d 65 73 20 66 61 73 74 65 72 2e 3c 2f   times faster.</
a670: 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65 20 74 68 65  li>.<li>Made the
a680: 20 43 41 43 48 45 5f 53 49 5a 45 20 70 72 61 67   CACHE_SIZE prag
a690: 6d 61 20 70 65 72 73 69 73 74 65 6e 74 3c 2f 6c  ma persistent</l
a6a0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
a6b0: 20 53 59 4e 43 48 52 4f 4e 4f 55 53 20 70 72 61   SYNCHRONOUS pra
a6c0: 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  gma</li>.<li>Fix
a6d0: 65 64 20 61 20 62 75 67 20 74 68 61 74 20 77 61  ed a bug that wa
a6e0: 73 20 63 61 75 73 69 6e 67 20 75 70 64 61 74 65  s causing update
a6f0: 73 20 74 6f 20 66 61 69 6c 20 69 6e 73 69 64 65  s to fail inside
a700: 20 6f 66 20 74 72 61 6e 73 61 63 74 69 6f 6e 73   of transactions
a710: 20 77 68 65 6e 0a 20 20 20 20 74 68 65 20 64 61   when.    the da
a720: 74 61 62 61 73 65 20 63 6f 6e 74 61 69 6e 65 64  tabase contained
a730: 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62   a temporary tab
a740: 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  le.</li>.}..chng
a750: 20 7b 32 30 30 32 20 46 65 62 20 31 38 20 28 32   {2002 Feb 18 (2
a760: 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c  .3.3)} {.<li>All
a770: 6f 77 20 69 64 65 6e 74 69 66 69 65 72 73 20 74  ow identifiers t
a780: 6f 20 62 65 20 71 75 6f 74 65 64 20 69 6e 20 73  o be quoted in s
a790: 71 75 61 72 65 20 62 72 61 63 6b 65 74 73 2c 20  quare brackets, 
a7a0: 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74  for compatibilit
a7b0: 79 0a 20 20 20 20 77 69 74 68 20 4d 53 2d 41 63  y.    with MS-Ac
a7c0: 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  cess.</li>.<li>A
a7d0: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
a7e0: 20 73 75 62 2d 71 75 65 72 69 65 73 20 69 6e 20   sub-queries in 
a7f0: 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65 20  the FROM clause 
a800: 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69  of a SELECT.</li
a810: 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65 66 66 69 63  >.<li>More effic
a820: 69 65 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74  ient implementat
a830: 69 6f 6e 20 6f 66 20 73 71 6c 69 74 65 46 69 6c  ion of sqliteFil
a840: 65 45 78 69 73 74 73 28 29 20 75 6e 64 65 72 20  eExists() under 
a850: 57 69 6e 64 6f 77 73 2e 0a 20 20 20 20 28 62 79  Windows..    (by
a860: 20 4a 6f 65 6c 20 4c 75 73 63 79 29 3c 2f 6c 69   Joel Luscy)</li
a870: 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 4c 55 45 53  >.<li>The VALUES
a880: 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20 49 4e   clause of an IN
a890: 53 45 52 54 20 63 61 6e 20 6e 6f 77 20 63 6f 6e  SERT can now con
a8a0: 74 61 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73  tain expressions
a8b0: 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 20 20 20 20  , including.    
a8c0: 73 63 61 6c 61 72 20 53 45 4c 45 43 54 20 63 6c  scalar SELECT cl
a8d0: 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  auses.</li>.<li>
a8e0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
a8f0: 72 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 41  r CREATE TABLE A
a900: 53 20 53 45 4c 45 43 54 3c 2f 6c 69 3e 0a 3c 6c  S SELECT</li>.<l
a910: 69 3e 42 75 67 20 66 69 78 3a 20 43 72 65 61 74  i>Bug fix: Creat
a920: 69 6e 67 20 61 6e 64 20 64 72 6f 70 70 69 6e 67  ing and dropping
a930: 20 61 20 74 61 62 6c 65 20 61 6c 6c 20 77 69 74   a table all wit
a940: 68 69 6e 20 61 20 73 69 6e 67 6c 65 0a 20 20 20  hin a single.   
a950: 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61 73   transaction was
a960: 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 2e 3c 2f 6c   not working.</l
a970: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
a980: 20 46 65 62 20 31 34 20 28 32 2e 33 2e 32 29 7d   Feb 14 (2.3.2)}
a990: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
a9a0: 54 68 65 72 65 20 77 61 73 20 61 6e 20 69 6e 63  There was an inc
a9b0: 6f 72 72 65 63 74 20 61 73 73 65 72 74 28 29 20  orrect assert() 
a9c0: 69 6e 20 70 61 67 65 72 2e 63 2e 20 20 54 68 65  in pager.c.  The
a9d0: 20 72 65 61 6c 20 63 6f 64 65 20 77 61 73 0a 20   real code was. 
a9e0: 20 20 20 61 6c 6c 20 63 6f 72 72 65 63 74 20 28     all correct (
a9f0: 61 73 20 66 61 72 20 61 73 20 69 73 20 6b 6e 6f  as far as is kno
aa00: 77 6e 29 20 73 6f 20 65 76 65 72 79 74 68 69 6e  wn) so everythin
aa10: 67 20 73 68 6f 75 6c 64 20 77 6f 72 6b 20 4f 4b  g should work OK
aa20: 20 69 66 20 79 6f 75 0a 20 20 20 20 63 6f 6d 70   if you.    comp
aa30: 69 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42 55  ile with -DNDEBU
aa40: 47 3d 31 2e 20 20 57 68 65 6e 20 61 73 73 65 72  G=1.  When asser
aa50: 74 73 20 61 72 65 20 6e 6f 74 20 64 69 73 61 62  ts are not disab
aa60: 6c 65 64 2c 20 74 68 65 72 65 0a 20 20 20 20 63  led, there.    c
aa70: 6f 75 6c 64 20 62 65 20 61 20 66 61 75 6c 74 2e  ould be a fault.
aa80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
aa90: 30 30 32 20 46 65 62 20 31 33 20 28 32 2e 33 2e  002 Feb 13 (2.3.
aaa0: 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  1)} {.<li>Bug fi
aab0: 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e 20  x: An assertion 
aac0: 77 61 73 20 66 61 69 6c 69 6e 67 20 69 66 20 22  was failing if "
aad0: 50 52 41 47 4d 41 20 66 75 6c 6c 5f 63 6f 6c 75  PRAGMA full_colu
aae0: 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b 22 20 77 61  mn_names=ON;" wa
aaf0: 73 0a 20 20 20 20 73 65 74 20 61 6e 64 20 79 6f  s.    set and yo
ab00: 75 20 64 69 64 20 61 20 71 75 65 72 79 20 74 68  u did a query th
ab10: 61 74 20 75 73 65 64 20 61 20 72 6f 77 69 64 2c  at used a rowid,
ab20: 20 6c 69 6b 65 20 74 68 69 73 3a 20 20 0a 20 20   like this:  .  
ab30: 20 20 22 53 45 4c 45 43 54 20 72 6f 77 69 64 2c    "SELECT rowid,
ab40: 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22 2e 3c 2f 6c   * FROM ...".</l
ab50: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
ab60: 20 4a 61 6e 20 33 30 20 28 32 2e 33 2e 30 29 7d   Jan 30 (2.3.0)}
ab70: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 73 65 72   {.<li>Fix a ser
ab80: 69 6f 75 73 20 62 75 67 20 69 6e 20 74 68 65 20  ious bug in the 
ab90: 49 4e 53 45 52 54 20 63 6f 6d 6d 61 6e 64 20 77  INSERT command w
aba0: 68 69 63 68 20 77 61 73 20 63 61 75 73 69 6e 67  hich was causing
abb0: 20 64 61 74 61 20 74 6f 20 67 6f 0a 20 20 20 20   data to go.    
abc0: 69 6e 74 6f 20 74 68 65 20 77 72 6f 6e 67 20 63  into the wrong c
abd0: 6f 6c 75 6d 6e 73 20 69 66 20 74 68 65 20 64 61  olumns if the da
abe0: 74 61 20 73 6f 75 72 63 65 20 77 61 73 20 61 20  ta source was a 
abf0: 53 45 4c 45 43 54 20 61 6e 64 20 74 68 65 20 49  SELECT and the I
ac00: 4e 53 45 52 54 0a 20 20 20 20 63 6c 61 75 73 65  NSERT.    clause
ac10: 73 20 73 70 65 63 69 66 69 65 64 20 69 74 73 20  s specified its 
ac20: 63 6f 6c 75 6d 6e 73 20 69 6e 20 73 6f 6d 65 20  columns in some 
ac30: 6f 72 64 65 72 20 6f 74 68 65 72 20 74 68 61 6e  order other than
ac40: 20 74 68 65 20 64 65 66 61 75 6c 74 2e 3c 2f 6c   the default.</l
ac50: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
ac60: 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65 73 6f   ability to reso
ac70: 6c 76 65 20 63 6f 6e 73 74 72 61 69 6e 74 20 63  lve constraint c
ac80: 6f 6e 66 6c 69 63 74 73 20 69 73 20 77 61 79 73  onflicts is ways
ac90: 20 6f 74 68 65 72 20 74 68 61 6e 0a 20 20 20 20   other than.    
aca0: 61 6e 20 61 62 6f 72 74 20 61 6e 64 20 72 6f 6c  an abort and rol
acb0: 6c 62 61 63 6b 2e 20 20 53 65 65 20 74 68 65 20  lback.  See the 
acc0: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e  documentation on
acd0: 20 74 68 65 20 22 4f 4e 20 43 4f 4e 46 4c 49 43   the "ON CONFLIC
ace0: 54 22 0a 20 20 20 20 63 6c 61 75 73 65 20 66 6f  T".    clause fo
acf0: 72 20 64 65 74 61 69 6c 73 2e 3c 2f 6c 69 3e 0a  r details.</li>.
ad00: 3c 6c 69 3e 54 65 6d 70 6f 72 61 72 79 20 66 69  <li>Temporary fi
ad10: 6c 65 73 20 61 72 65 20 6e 6f 77 20 61 75 74 6f  les are now auto
ad20: 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c 65 74 65  matically delete
ad30: 64 20 62 79 20 74 68 65 20 6f 70 65 72 61 74 69  d by the operati
ad40: 6e 67 20 73 79 73 74 65 6d 0a 20 20 20 20 77 68  ng system.    wh
ad50: 65 6e 20 63 6c 6f 73 65 64 2e 20 20 54 68 65 72  en closed.  Ther
ad60: 65 20 61 72 65 20 6e 6f 20 6d 6f 72 65 20 64 61  e are no more da
ad70: 6e 67 6c 69 6e 67 20 74 65 6d 70 6f 72 61 72 79  ngling temporary
ad80: 20 66 69 6c 65 73 20 6f 6e 20 61 20 70 72 6f 67   files on a prog
ad90: 72 61 6d 0a 20 20 20 20 63 72 61 73 68 2e 20 20  ram.    crash.  
ada0: 28 49 66 20 74 68 65 20 4f 53 20 63 72 61 73 68  (If the OS crash
adb0: 65 73 2c 20 66 73 63 6b 20 77 69 6c 6c 20 64 65  es, fsck will de
adc0: 6c 65 74 65 20 74 68 65 20 66 69 6c 65 20 61 66  lete the file af
add0: 74 65 72 20 72 65 62 6f 6f 74 20 0a 20 20 20 20  ter reboot .    
ade0: 75 6e 64 65 72 20 55 6e 69 78 2e 20 20 49 20 64  under Unix.  I d
adf0: 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77 68 61 74 20  o not know what 
ae00: 68 61 70 70 65 6e 73 20 75 6e 64 65 72 20 57 69  happens under Wi
ae10: 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69  ndows.)</li>.<li
ae20: 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f 6e 73 74 72  >NOT NULL constr
ae30: 61 69 6e 74 73 20 61 72 65 20 68 6f 6e 6f 72 65  aints are honore
ae40: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  d.</li>.<li>The 
ae50: 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 70 75 74  COPY command put
ae60: 73 20 4e 55 4c 4c 73 20 69 6e 20 63 6f 6c 75 6d  s NULLs in colum
ae70: 6e 73 20 77 68 6f 73 65 20 64 61 74 61 20 69 73  ns whose data is
ae80: 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   '\N'.</li>.<li>
ae90: 49 6e 20 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d  In the COPY comm
aea0: 61 6e 64 2c 20 62 61 63 6b 73 6c 61 73 68 20 63  and, backslash c
aeb0: 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64 20 74  an now be used t
aec0: 6f 20 65 73 63 61 70 65 20 61 20 6e 65 77 6c 69  o escape a newli
aed0: 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ne.</li>.<li>Add
aee0: 65 64 20 74 68 65 20 53 41 4e 49 54 59 5f 43 48  ed the SANITY_CH
aef0: 45 43 4b 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e  ECK pragma.</li>
af00: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
af10: 61 6e 20 32 38 20 28 32 2e 32 2e 35 29 7d 20 7b  an 28 (2.2.5)} {
af20: 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61 6e 74 20 62  .<li>Important b
af30: 75 67 20 66 69 78 3a 20 74 68 65 20 49 4e 20 6f  ug fix: the IN o
af40: 70 65 72 61 74 6f 72 20 77 61 73 20 6e 6f 74 20  perator was not 
af50: 77 6f 72 6b 69 6e 67 20 69 66 20 65 69 74 68 65  working if eithe
af60: 72 20 74 68 65 0a 20 20 20 20 6c 65 66 74 2d 68  r the.    left-h
af70: 61 6e 64 20 6f 72 20 72 69 67 68 74 2d 68 61 6e  and or right-han
af80: 64 20 73 69 64 65 20 77 61 73 20 64 65 72 69 76  d side was deriv
af90: 65 64 20 66 72 6f 6d 20 61 6e 20 49 4e 54 45 47  ed from an INTEG
afa0: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2e 3c  ER PRIMARY KEY.<
afb0: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20  /li>.<li>Do not 
afc0: 65 73 63 61 70 65 20 74 68 65 20 62 61 63 6b 73  escape the backs
afd0: 6c 61 73 68 20 27 5c 27 20 63 68 61 72 61 63 74  lash '\' charact
afe0: 65 72 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74  er in the output
aff0: 20 6f 66 20 74 68 65 0a 20 20 20 20 3c 62 3e 73   of the.    <b>s
b000: 71 6c 69 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  qlite</b> comman
b010: 64 2d 6c 69 6e 65 20 61 63 63 65 73 73 20 70 72  d-line access pr
b020: 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ogram.</li>.}..c
b030: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 32 32  hng {2002 Jan 22
b040: 20 28 32 2e 32 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.4)} {.<li>
b050: 54 68 65 20 6c 61 62 65 6c 20 74 6f 20 74 68 65  The label to the
b060: 20 72 69 67 68 74 20 6f 66 20 61 6e 20 41 53 20   right of an AS 
b070: 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6c 69  in the column li
b080: 73 74 20 6f 66 20 61 20 53 45 4c 45 43 54 20 63  st of a SELECT c
b090: 61 6e 20 6e 6f 77 0a 20 20 20 20 62 65 20 75 73  an now.    be us
b0a0: 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 61 6e  ed as part of an
b0b0: 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 74   expression in t
b0c0: 68 65 20 57 48 45 52 45 2c 20 4f 52 44 45 52 20  he WHERE, ORDER 
b0d0: 42 59 2c 20 47 52 4f 55 50 20 42 59 2c 20 61 6e  BY, GROUP BY, an
b0e0: 64 2f 6f 72 0a 20 20 20 20 48 41 56 49 4e 47 20  d/or.    HAVING 
b0f0: 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  clauses.</li>.<l
b100: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
b110: 68 65 20 3c 62 3e 2d 73 65 70 61 72 61 74 6f 72  he <b>-separator
b120: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e  </b> command-lin
b130: 65 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65 20  e option to the 
b140: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 0a 20 20  <b>sqlite</b>.  
b150: 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a    command.</li>.
b160: 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65  <li>Fix a proble
b170: 6d 20 77 69 74 68 20 74 68 65 20 73 6f 72 74 20  m with the sort 
b180: 6f 72 64 65 72 20 77 68 65 6e 20 63 6f 6d 70 61  order when compa
b190: 72 69 6e 67 20 75 70 70 65 72 2d 63 61 73 65 20  ring upper-case 
b1a0: 73 74 72 69 6e 67 73 20 61 67 61 69 6e 73 74 0a  strings against.
b1b0: 20 20 20 20 63 68 61 72 61 63 74 65 72 73 20 67      characters g
b1c0: 72 65 61 74 65 72 20 74 68 61 6e 20 27 5a 27 20  reater than 'Z' 
b1d0: 62 75 74 20 6c 65 73 73 20 74 68 61 6e 20 27 61  but less than 'a
b1e0: 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 70 6f  '.</li>.<li>Repo
b1f0: 72 74 20 61 6e 20 65 72 72 6f 72 20 69 66 20 61  rt an error if a
b200: 6e 20 4f 52 44 45 52 20 42 59 20 6f 72 20 47 52  n ORDER BY or GR
b210: 4f 55 50 20 42 59 20 65 78 70 72 65 73 73 69 6f  OUP BY expressio
b220: 6e 20 69 73 20 63 6f 6e 73 74 61 6e 74 2e 3c 2f  n is constant.</
b230: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
b240: 32 20 4a 61 6e 20 31 36 20 28 32 2e 32 2e 33 29  2 Jan 16 (2.2.3)
b250: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 77 61 72 6e  } {.<li>Fix warn
b260: 69 6e 67 20 6d 65 73 73 61 67 65 73 20 69 6e 20  ing messages in 
b270: 56 43 2b 2b 20 37 2e 30 2e 20 20 28 50 61 74 63  VC++ 7.0.  (Patc
b280: 68 65 73 20 66 72 6f 6d 20 6e 69 63 6f 6c 61 73  hes from nicolas
b290: 33 35 32 30 30 31 29 3c 2f 6c 69 3e 0a 3c 6c 69  352001)</li>.<li
b2a0: 3e 4d 61 6b 65 20 74 68 65 20 6c 69 62 72 61 72  >Make the librar
b2b0: 79 20 74 68 72 65 61 64 2d 73 61 66 65 2e 20 20  y thread-safe.  
b2c0: 28 54 68 65 20 63 6f 64 65 20 69 73 20 74 68 65  (The code is the
b2d0: 72 65 20 61 6e 64 20 61 70 70 65 61 72 73 20 74  re and appears t
b2e0: 6f 20 77 6f 72 6b 0a 20 20 20 20 62 75 74 20 68  o work.    but h
b2f0: 61 73 20 6e 6f 74 20 62 65 65 6e 20 73 74 72 65  as not been stre
b300: 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ssed.)</li>.<li>
b310: 41 64 64 65 64 20 74 68 65 20 6e 65 77 20 3c 62  Added the new <b
b320: 3e 73 71 6c 69 74 65 5f 6c 61 73 74 5f 69 6e 73  >sqlite_last_ins
b330: 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20  ert_rowid()</b> 
b340: 41 50 49 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c  API function.</l
b350: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
b360: 20 4a 61 6e 20 31 33 20 28 32 2e 32 2e 32 29 7d   Jan 13 (2.2.2)}
b370: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
b380: 41 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73  An assertion was
b390: 20 66 61 69 6c 69 6e 67 20 77 68 65 6e 20 61 20   failing when a 
b3a0: 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 20  temporary table 
b3b0: 77 69 74 68 20 61 6e 20 69 6e 64 65 78 0a 20 20  with an index.  
b3c0: 20 20 68 61 64 20 74 68 65 20 73 61 6d 65 20 6e    had the same n
b3d0: 61 6d 65 20 61 73 20 61 20 70 65 72 6d 61 6e 65  ame as a permane
b3e0: 6e 74 20 74 61 62 6c 65 20 63 72 65 61 74 65 64  nt table created
b3f0: 20 62 79 20 61 20 73 65 70 61 72 61 74 65 20 70   by a separate p
b400: 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  rocess.</li>.<li
b410: 3e 42 75 67 20 66 69 78 3a 20 55 70 64 61 74 65  >Bug fix: Update
b420: 73 20 74 6f 20 74 61 62 6c 65 73 20 63 6f 6e 74  s to tables cont
b430: 61 69 6e 69 6e 67 20 61 6e 20 49 4e 54 45 47 45  aining an INTEGE
b440: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61 6e  R PRIMARY KEY an
b450: 64 20 61 6e 0a 20 20 20 20 69 6e 64 65 78 20 63  d an.    index c
b460: 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f 6c 69 3e 0a  ould fail.</li>.
b470: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61  }..chng {2002 Ja
b480: 6e 20 39 20 28 32 2e 32 2e 31 29 7d 20 7b 0a 3c  n 9 (2.2.1)} {.<
b490: 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61  li>Bug fix: An a
b4a0: 74 74 65 6d 70 74 20 74 6f 20 64 65 6c 65 74 65  ttempt to delete
b4b0: 20 61 20 73 69 6e 67 6c 65 20 72 6f 77 20 6f 66   a single row of
b4c0: 20 61 20 74 61 62 6c 65 20 77 69 74 68 20 61 20   a table with a 
b4d0: 57 48 45 52 45 0a 20 20 20 20 63 6c 61 75 73 65  WHERE.    clause
b4e0: 20 6f 66 20 22 52 4f 57 49 44 3d 78 22 20 77 68   of "ROWID=x" wh
b4f0: 65 6e 20 6e 6f 20 73 75 63 68 20 72 6f 77 69 64  en no such rowid
b500: 20 65 78 69 73 74 73 20 77 61 73 20 63 61 75 73   exists was caus
b510: 69 6e 67 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c  ing an error.</l
b520: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
b530: 50 61 73 73 69 6e 67 20 69 6e 20 61 20 4e 55 4c  Passing in a NUL
b540: 4c 20 61 73 20 74 68 65 20 33 72 64 20 70 61 72  L as the 3rd par
b550: 61 6d 65 74 65 72 20 74 6f 20 3c 62 3e 73 71 6c  ameter to <b>sql
b560: 69 74 65 5f 6f 70 65 6e 28 29 3c 2f 62 3e 0a 20  ite_open()</b>. 
b570: 20 20 20 77 6f 75 6c 64 20 73 6f 6d 65 74 69 6d     would sometim
b580: 65 73 20 63 61 75 73 65 20 61 20 63 6f 72 65 64  es cause a cored
b590: 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ump.</li>.<li>Bu
b5a0: 67 20 66 69 78 3a 20 44 52 4f 50 20 54 41 42 4c  g fix: DROP TABL
b5b0: 45 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20  E followed by a 
b5c0: 43 52 45 41 54 45 20 54 41 42 4c 45 20 77 69 74  CREATE TABLE wit
b5d0: 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20  h the same name 
b5e0: 61 6c 6c 0a 20 20 20 20 77 69 74 68 69 6e 20 61  all.    within a
b5f0: 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 63 74   single transact
b600: 69 6f 6e 20 77 61 73 20 63 61 75 73 69 6e 67 20  ion was causing 
b610: 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e  a coredump.</li>
b620: 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70  .<li>Makefile up
b630: 64 61 74 65 73 20 66 72 6f 6d 20 41 2e 20 52 6f  dates from A. Ro
b640: 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ttmann</li>.}..c
b650: 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 32 32  hng {2001 Dec 22
b660: 20 28 32 2e 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.0)} {.<li>
b670: 43 6f 6c 75 6d 6e 73 20 6f 66 20 74 79 70 65 20  Columns of type 
b680: 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20  INTEGER PRIMARY 
b690: 4b 45 59 20 61 72 65 20 61 63 74 75 61 6c 6c 79  KEY are actually
b6a0: 20 75 73 65 64 20 61 73 20 74 68 65 20 70 72 69   used as the pri
b6b0: 6d 61 72 79 0a 20 20 20 20 6b 65 79 20 69 6e 20  mary.    key in 
b6c0: 75 6e 64 65 72 6c 79 69 6e 67 20 42 2d 54 72 65  underlying B-Tre
b6d0: 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e  e representation
b6e0: 20 6f 66 20 74 68 65 20 74 61 62 6c 65 2e 3c 2f   of the table.</
b6f0: 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65 72 61 6c 20  li>.<li>Several 
b700: 6f 62 73 63 75 72 65 2c 20 75 6e 72 65 6c 61 74  obscure, unrelat
b710: 65 64 20 62 75 67 73 20 77 65 72 65 20 66 6f 75  ed bugs were fou
b720: 6e 64 20 61 6e 64 20 66 69 78 65 64 20 77 68 69  nd and fixed whi
b730: 6c 65 20 0a 20 20 20 20 69 6d 70 6c 65 6d 65 6e  le .    implemen
b740: 74 65 64 20 74 68 65 20 69 6e 74 65 67 65 72 20  ted the integer 
b750: 70 72 69 6d 61 72 79 20 6b 65 79 20 63 68 61 6e  primary key chan
b760: 67 65 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f  ge of the previo
b770: 75 73 20 62 75 6c 6c 65 74 2e 3c 2f 6c 69 3e 0a  us bullet.</li>.
b780: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 61 62  <li>Added the ab
b790: 69 6c 69 74 79 20 74 6f 20 73 70 65 63 69 66 79  ility to specify
b7a0: 20 22 2a 22 20 61 73 20 70 61 72 74 20 6f 66 20   "*" as part of 
b7b0: 61 20 6c 61 72 67 65 72 20 63 6f 6c 75 6d 6e 20  a larger column 
b7c0: 6c 69 73 74 20 69 6e 0a 20 20 20 20 74 68 65 20  list in.    the 
b7d0: 72 65 73 75 6c 74 20 73 65 63 74 69 6f 6e 20 6f  result section o
b7e0: 66 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65  f a SELECT state
b7f0: 6d 65 6e 74 2e 20 20 46 6f 72 20 65 78 61 6d 70  ment.  For examp
b800: 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62 72 3e 22 3c  le:.    <nobr>"<
b810: 62 3e 53 45 4c 45 43 54 20 72 6f 77 69 64 2c 20  b>SELECT rowid, 
b820: 2a 20 46 52 4f 4d 20 74 61 62 6c 65 31 3b 3c 2f  * FROM table1;</
b830: 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c 2f 6c 69 3e  b>"</nobr>.</li>
b840: 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74 6f 20  .<li>Updates to 
b850: 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 64 6f 63  comments and doc
b860: 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  umentation.</li>
b870: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44  .}..chng {2001 D
b880: 65 63 20 31 34 20 28 32 2e 31 2e 37 29 7d 20 7b  ec 14 (2.1.7)} {
b890: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
b8a0: 6e 20 3c 62 3e 43 52 45 41 54 45 20 54 45 4d 50  n <b>CREATE TEMP
b8b0: 4f 52 41 52 59 20 54 41 42 4c 45 3c 2f 62 3e 20  ORARY TABLE</b> 
b8c0: 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69 6e  which was causin
b8d0: 67 20 74 68 65 0a 20 20 20 20 74 61 62 6c 65 20  g the.    table 
b8e0: 74 6f 20 62 65 20 69 6e 69 74 69 61 6c 6c 79 20  to be initially 
b8f0: 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20 74 68 65  allocated in the
b900: 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20 66   main database f
b910: 69 6c 65 20 69 6e 73 74 65 61 64 0a 20 20 20 20  ile instead.    
b920: 6f 66 20 69 6e 20 74 68 65 20 73 65 70 61 72 61  of in the separa
b930: 74 65 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c  te temporary fil
b940: 65 2e 20 20 54 68 69 73 20 62 75 67 20 63 6f 75  e.  This bug cou
b950: 6c 64 20 63 61 75 73 65 20 74 68 65 20 6c 69 62  ld cause the lib
b960: 72 61 72 79 0a 20 20 20 20 74 6f 20 73 75 66 66  rary.    to suff
b970: 65 72 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20  er an assertion 
b980: 66 61 69 6c 75 72 65 20 61 6e 64 20 69 74 20 63  failure and it c
b990: 6f 75 6c 64 20 63 61 75 73 65 20 22 70 61 67 65  ould cause "page
b9a0: 20 6c 65 61 6b 73 22 20 69 6e 20 74 68 65 0a 20   leaks" in the. 
b9b0: 20 20 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65     main database
b9c0: 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46 69 78 20 61   file..<li>Fix a
b9d0: 20 62 75 67 20 69 6e 20 74 68 65 20 62 2d 74 72   bug in the b-tr
b9e0: 65 65 20 73 75 62 73 79 73 74 65 6d 20 74 68 61  ee subsystem tha
b9f0: 74 20 63 6f 75 6c 64 20 73 6f 6d 65 74 69 6d 65  t could sometime
ba00: 73 20 63 61 75 73 65 20 74 68 65 20 66 69 72 73  s cause the firs
ba10: 74 0a 20 20 20 20 72 6f 77 20 6f 66 20 61 20 74  t.    row of a t
ba20: 61 62 6c 65 20 74 6f 20 62 65 20 72 65 70 65 61  able to be repea
ba30: 74 65 64 20 64 75 72 69 6e 67 20 61 20 64 61 74  ted during a dat
ba40: 61 62 61 73 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e  abase scan.</li>
ba50: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44  .}..chng {2001 D
ba60: 65 63 20 31 34 20 28 32 2e 31 2e 36 29 7d 20 7b  ec 14 (2.1.6)} {
ba70: 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 6c 6f 63  .<li>Fix the loc
ba80: 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d 20 79  king mechanism y
ba90: 65 74 20 61 67 61 69 6e 20 74 6f 20 70 72 65 76  et again to prev
baa0: 65 6e 74 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74  ent.    <b>sqlit
bab0: 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 66 72 6f  e_exec()</b> fro
bac0: 6d 20 72 65 74 75 72 6e 69 6e 67 20 53 51 4c 49  m returning SQLI
bad0: 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20  TE_PROTOCOL.    
bae0: 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e 20 20  unnecessarily.  
baf0: 54 68 69 73 20 74 69 6d 65 20 74 68 65 20 62 75  This time the bu
bb00: 67 20 77 61 73 20 61 20 72 61 63 65 20 63 6f 6e  g was a race con
bb10: 64 69 74 69 6f 6e 20 69 6e 0a 20 20 20 20 74 68  dition in.    th
bb20: 65 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 2e 20  e locking code. 
bb30: 20 54 68 69 73 20 63 68 61 6e 67 65 20 65 66 66   This change eff
bb40: 65 63 74 73 20 62 6f 74 68 20 50 4f 53 49 58 20  ects both POSIX 
bb50: 61 6e 64 20 57 69 6e 64 6f 77 73 20 75 73 65 72  and Windows user
bb60: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
bb70: 7b 32 30 30 31 20 44 65 63 20 36 20 28 32 2e 31  {2001 Dec 6 (2.1
bb80: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 66  .5)} {.<li>Fix f
bb90: 6f 72 20 61 6e 6f 74 68 65 72 20 70 72 6f 62 6c  or another probl
bba0: 65 6d 20 28 75 6e 72 65 6c 61 74 65 64 20 74 6f  em (unrelated to
bbb0: 20 74 68 65 20 6f 6e 65 20 66 69 78 65 64 20 69   the one fixed i
bbc0: 6e 20 32 2e 31 2e 34 29 20 0a 20 20 20 20 74 68  n 2.1.4) .    th
bbd0: 61 74 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75  at sometimes cau
bbe0: 73 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78  ses <b>sqlite_ex
bbf0: 65 63 28 29 3c 2f 62 3e 20 74 6f 20 72 65 74 75  ec()</b> to retu
bc00: 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43  rn SQLITE_PROTOC
bc10: 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73 73 61  OL.    unnecessa
bc20: 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69 6d 65  rily.  This time
bc30: 20 74 68 65 20 62 75 67 20 77 61 73 0a 20 20 20   the bug was.   
bc40: 20 69 6e 20 74 68 65 20 50 4f 53 49 58 20 6c 6f   in the POSIX lo
bc50: 63 6b 69 6e 67 20 63 6f 64 65 20 61 6e 64 20 73  cking code and s
bc60: 68 6f 75 6c 64 20 6e 6f 74 20 65 66 66 65 63 74  hould not effect
bc70: 20 77 69 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c   windows users.<
bc80: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
bc90: 30 31 20 44 65 63 20 34 20 28 32 2e 31 2e 34 29  01 Dec 4 (2.1.4)
bca0: 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65 74 69 6d 65  } {.<li>Sometime
bcb0: 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63  s <b>sqlite_exec
bcc0: 28 29 3c 2f 62 3e 20 77 6f 75 6c 64 20 72 65 74  ()</b> would ret
bcd0: 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f  urn SQLITE_PROTO
bce0: 43 4f 4c 20 77 68 65 6e 20 69 74 0a 20 20 20 20  COL when it.    
bcf0: 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 74 75  should have retu
bd00: 72 6e 65 64 20 53 51 4c 49 54 45 5f 42 55 53 59  rned SQLITE_BUSY
bd10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 66  .</li>.<li>The f
bd20: 69 78 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f  ix to the previo
bd30: 75 73 20 62 75 67 20 75 6e 63 6f 76 65 72 65 64  us bug uncovered
bd40: 20 61 20 64 65 61 64 6c 6f 63 6b 20 77 68 69 63   a deadlock whic
bd50: 68 20 77 61 73 20 61 6c 73 6f 0a 20 20 20 20 66  h was also.    f
bd60: 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ixed.</li>.<li>A
bd70: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  dd the ability t
bd80: 6f 20 70 75 74 20 61 20 73 69 6e 67 6c 65 20 2e  o put a single .
bd90: 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 73  command in the s
bda0: 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 0a 20  econd argument. 
bdb0: 20 20 20 6f 66 20 74 68 65 20 73 71 6c 69 74 65     of the sqlite
bdc0: 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e   shell</li>.<li>
bdd0: 55 70 64 61 74 65 73 20 74 6f 20 74 68 65 20 46  Updates to the F
bde0: 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  AQ</li>.}..chng 
bdf0: 7b 32 30 30 31 20 4e 6f 76 20 32 33 20 28 32 2e  {2001 Nov 23 (2.
be00: 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  1.3)} {.<li>Fix 
be10: 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f 66 20  the behavior of 
be20: 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 61  comparison opera
be30: 74 6f 72 73 20 0a 20 20 20 20 28 65 78 3a 20 22  tors .    (ex: "
be40: 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c 20 22 3c 62  <b>&lt</b>", "<b
be50: 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74 63 2e 29 0a  >==</b>", etc.).
be60: 20 20 20 20 73 6f 20 74 68 61 74 20 74 68 65 79      so that they
be70: 20 61 72 65 20 63 6f 6e 73 69 73 74 65 6e 74 20   are consistent 
be80: 77 69 74 68 20 74 68 65 20 6f 72 64 65 72 20 6f  with the order o
be90: 66 20 65 6e 74 72 69 65 73 20 69 6e 20 61 6e 20  f entries in an 
bea0: 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  index.</li>.<li>
beb0: 43 6f 72 72 65 63 74 20 68 61 6e 64 6c 69 6e 67  Correct handling
bec0: 20 6f 66 20 69 6e 74 65 67 65 72 73 20 69 6e 20   of integers in 
bed0: 53 51 4c 20 65 78 70 72 65 73 73 69 6f 6e 73 20  SQL expressions 
bee0: 74 68 61 74 20 61 72 65 20 6c 61 72 67 65 72 20  that are larger 
bef0: 74 68 61 6e 0a 20 20 20 20 77 68 61 74 20 63 61  than.    what ca
bf00: 6e 20 62 65 20 72 65 70 72 65 73 65 6e 74 65 64  n be represented
bf10: 20 62 79 20 74 68 65 20 6d 61 63 68 69 6e 65 20   by the machine 
bf20: 69 6e 74 65 67 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a  integer.</li>.}.
bf30: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20  .chng {2001 Nov 
bf40: 32 32 20 28 32 2e 31 2e 32 29 7d 20 7b 0a 3c 6c  22 (2.1.2)} {.<l
bf50: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 73 75 70  i>Changes to sup
bf60: 70 6f 72 74 20 36 34 2d 62 69 74 20 61 72 63 68  port 64-bit arch
bf70: 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a  itectures.</li>.
bf80: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
bf90: 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f   the locking pro
bfa0: 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tocol.</li>.<li>
bfb0: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 63  Fix a bug that c
bfc0: 6f 75 6c 64 20 28 72 61 72 65 6c 79 29 20 63 61  ould (rarely) ca
bfd0: 75 73 65 20 74 68 65 20 64 61 74 61 62 61 73 65  use the database
bfe0: 20 74 6f 20 62 65 63 6f 6d 65 20 0a 20 20 20 20   to become .    
bff0: 75 6e 72 65 61 64 61 62 6c 65 20 61 66 74 65 72  unreadable after
c000: 20 61 20 44 52 4f 50 20 54 41 42 4c 45 20 64 75   a DROP TABLE du
c010: 65 20 74 6f 20 63 6f 72 72 75 70 74 69 6f 6e 20  e to corruption 
c020: 74 6f 20 74 68 65 20 53 51 4c 49 54 45 5f 4d 41  to the SQLITE_MA
c030: 53 54 45 52 0a 20 20 20 20 74 61 62 6c 65 2e 3c  STER.    table.<
c040: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  /li>.<li>Change 
c050: 74 68 65 20 63 6f 64 65 20 73 6f 20 74 68 61 74  the code so that
c060: 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e 31 20 64   version 2.1.1 d
c070: 61 74 61 62 61 73 65 73 20 74 68 61 74 20 77 65  atabases that we
c080: 72 65 20 72 65 6e 64 65 72 65 64 20 0a 20 20 20  re rendered .   
c090: 20 75 6e 72 65 61 64 61 62 6c 65 20 62 79 20 74   unreadable by t
c0a0: 68 65 20 61 62 6f 76 65 20 62 75 67 20 63 61 6e  he above bug can
c0b0: 20 62 65 20 72 65 61 64 20 62 79 20 74 68 69 73   be read by this
c0c0: 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20 20 20 20   version of.    
c0d0: 74 68 65 20 6c 69 62 72 61 72 79 20 65 76 65 6e  the library even
c0e0: 20 74 68 6f 75 67 68 20 74 68 65 20 53 51 4c 49   though the SQLI
c0f0: 54 45 5f 4d 41 53 54 45 52 20 74 61 62 6c 65 20  TE_MASTER table 
c100: 69 73 20 28 73 6c 69 67 68 74 6c 79 29 0a 20 20  is (slightly).  
c110: 20 20 63 6f 72 72 75 70 74 65 64 2e 3c 2f 6c 69    corrupted.</li
c120: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
c130: 4e 6f 76 20 31 33 20 28 32 2e 31 2e 31 29 7d 20  Nov 13 (2.1.1)} 
c140: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 53  {.<li>Bug fix: S
c150: 6f 6d 65 74 69 6d 65 73 20 61 72 62 69 74 72 61  ometimes arbitra
c160: 72 79 20 73 74 72 69 6e 67 73 20 77 65 72 65 20  ry strings were 
c170: 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 63 61  passed to the ca
c180: 6c 6c 62 61 63 6b 0a 20 20 20 20 66 75 6e 63 74  llback.    funct
c190: 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 61 63 74  ion when the act
c1a0: 75 61 6c 20 76 61 6c 75 65 20 6f 66 20 61 20 63  ual value of a c
c1b0: 6f 6c 75 6d 6e 20 77 61 73 20 4e 55 4c 4c 2e 3c  olumn was NULL.<
c1c0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c1d0: 30 31 20 4e 6f 76 20 31 32 20 28 32 2e 31 2e 30  01 Nov 12 (2.1.0
c1e0: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
c1f0: 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 64 61  the format of da
c200: 74 61 20 72 65 63 6f 72 64 73 20 73 6f 20 74 68  ta records so th
c210: 61 74 20 72 65 63 6f 72 64 73 20 75 70 20 74 6f  at records up to
c220: 20 31 36 4d 42 20 69 6e 20 73 69 7a 65 0a 20 20   16MB in size.  
c230: 20 20 63 61 6e 20 62 65 20 73 74 6f 72 65 64 2e    can be stored.
c240: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
c250: 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 69   the format of i
c260: 6e 64 69 63 65 73 20 74 6f 20 61 6c 6c 6f 77 20  ndices to allow 
c270: 66 6f 72 20 62 65 74 74 65 72 20 71 75 65 72 79  for better query
c280: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e 3c 2f   optimization.</
c290: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c 65 6d 65 6e  li>.<li>Implemen
c2a0: 74 20 74 68 65 20 22 4c 49 4d 49 54 20 2e 2e 2e  t the "LIMIT ...
c2b0: 20 4f 46 46 53 45 54 20 2e 2e 2e 22 20 63 6c 61   OFFSET ..." cla
c2c0: 75 73 65 20 6f 6e 20 53 45 4c 45 43 54 20 73 74  use on SELECT st
c2d0: 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d  atements.</li>.}
c2e0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76  ..chng {2001 Nov
c2f0: 20 33 20 28 32 2e 30 2e 38 29 7d 20 7b 0a 3c 6c   3 (2.0.8)} {.<l
c300: 69 3e 4d 61 64 65 20 73 65 6c 65 63 74 65 64 20  i>Made selected 
c310: 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20 41 50  parameters in AP
c320: 49 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 63  I functions <b>c
c330: 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68 69 73 20 73  onst</b>. This s
c340: 68 6f 75 6c 64 0a 20 20 20 20 62 65 20 66 75 6c  hould.    be ful
c350: 6c 79 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d  ly backwards com
c360: 70 61 74 69 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  patible.</li>.<l
c370: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
c380: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  updates</li>.<li
c390: 3e 53 69 6d 70 6c 69 66 79 20 74 68 65 20 64 65  >Simplify the de
c3a0: 73 69 67 6e 20 6f 66 20 74 68 65 20 56 44 42 45  sign of the VDBE
c3b0: 20 62 79 20 72 65 73 74 72 69 63 74 69 6e 67 20   by restricting 
c3c0: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 6f  the number of so
c3d0: 72 74 65 72 73 0a 20 20 20 20 61 6e 64 20 6c 69  rters.    and li
c3e0: 73 74 73 20 74 6f 20 31 2e 0a 20 20 20 20 49 6e  sts to 1..    In
c3f0: 20 70 72 61 63 74 69 63 65 2c 20 6e 6f 20 6d 6f   practice, no mo
c400: 72 65 20 74 68 61 6e 20 6f 6e 65 20 73 6f 72 74  re than one sort
c410: 65 72 20 61 6e 64 20 6f 6e 65 20 6c 69 73 74 20  er and one list 
c420: 77 61 73 20 65 76 65 72 20 75 73 65 64 20 61 6e  was ever used an
c430: 79 68 6f 77 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  yhow..    </li>.
c440: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
c450: 74 20 32 31 20 28 32 2e 30 2e 37 29 7d 20 7b 0a  t 21 (2.0.7)} {.
c460: 3c 6c 69 3e 41 6e 79 20 55 54 46 2d 38 20 63 68  <li>Any UTF-8 ch
c470: 61 72 61 63 74 65 72 20 6f 72 20 49 53 4f 38 38  aracter or ISO88
c480: 35 39 20 63 68 61 72 61 63 74 65 72 20 63 61 6e  59 character can
c490: 20 62 65 20 75 73 65 64 20 61 73 20 70 61 72 74   be used as part
c4a0: 20 6f 66 0a 20 20 20 20 61 6e 20 69 64 65 6e 74   of.    an ident
c4b0: 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ifier.</li>.<li>
c4c0: 50 61 74 63 68 65 73 20 66 72 6f 6d 20 43 68 72  Patches from Chr
c4d0: 69 73 74 69 61 6e 20 57 65 72 6e 65 72 20 74 6f  istian Werner to
c4e0: 20 69 6d 70 72 6f 76 65 20 4f 44 42 43 20 63 6f   improve ODBC co
c4f0: 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e 64 20  mpatibility and 
c500: 74 6f 0a 20 20 20 20 66 69 78 20 61 20 62 75 67  to.    fix a bug
c510: 20 69 6e 20 74 68 65 20 72 6f 75 6e 64 28 29 20   in the round() 
c520: 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  function.</li>.<
c530: 6c 69 3e 50 6c 75 67 20 73 6f 6d 65 20 6d 65 6d  li>Plug some mem
c540: 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74 20 75  ory leaks that u
c550: 73 65 20 74 6f 20 6f 63 63 75 72 20 69 66 20 6d  se to occur if m
c560: 61 6c 6c 6f 63 28 29 20 66 61 69 6c 65 64 2e 0a  alloc() failed..
c570: 20 20 20 20 57 65 20 68 61 76 65 20 62 65 65 6e      We have been
c580: 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 74 6f   and continue to
c590: 20 62 65 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20   be memory leak 
c5a0: 66 72 65 65 20 61 73 20 6c 6f 6e 67 20 61 73 0a  free as long as.
c5b0: 20 20 20 20 6d 61 6c 6c 6f 63 28 29 20 77 6f 72      malloc() wor
c5c0: 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  ks.</li>.<li>Cha
c5d0: 6e 67 65 73 20 74 6f 20 73 6f 6d 65 20 74 65 73  nges to some tes
c5e0: 74 20 73 63 72 69 70 74 73 20 73 6f 20 74 68 61  t scripts so tha
c5f0: 74 20 74 68 65 79 20 77 6f 72 6b 20 6f 6e 20 57  t they work on W
c600: 69 6e 64 6f 77 73 20 69 6e 0a 20 20 20 20 61 64  indows in.    ad
c610: 64 69 74 69 6f 6e 20 74 6f 20 55 6e 69 78 2e 3c  dition to Unix.<
c620: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c630: 30 31 20 4f 63 74 20 31 39 20 28 32 2e 30 2e 36  01 Oct 19 (2.0.6
c640: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
c650: 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c 54 5f  he EMPTY_RESULT_
c660: 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67 6d 61  CALLBACKS pragma
c670: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72  </li>.<li>Suppor
c680: 74 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20  t for UTF-8 and 
c690: 49 53 4f 38 38 35 39 20 63 68 61 72 61 63 74 65  ISO8859 characte
c6a0: 72 73 20 69 6e 20 63 6f 6c 75 6d 6e 20 61 6e 64  rs in column and
c6b0: 20 74 61 62 6c 65 20 6e 61 6d 65 73 2e 3c 2f 6c   table names.</l
c6c0: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
c6d0: 43 6f 6d 70 75 74 65 20 63 6f 72 72 65 63 74 20  Compute correct 
c6e0: 74 61 62 6c 65 20 6e 61 6d 65 73 20 77 69 74 68  table names with
c6f0: 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e   the FULL_COLUMN
c700: 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 0a 20 20  _NAMES pragma.  
c710: 20 20 69 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c    is turned on.<
c720: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c730: 30 31 20 4f 63 74 20 31 34 20 28 32 2e 30 2e 35  01 Oct 14 (2.0.5
c740: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
c750: 68 65 20 43 4f 55 4e 54 5f 43 48 41 4e 47 45 53  he COUNT_CHANGES
c760: 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c   pragma.</li>.<l
c770: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74 68 65  i>Changes to the
c780: 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d   FULL_COLUMN_NAM
c790: 45 53 20 70 72 61 67 6d 61 20 74 6f 20 68 65 6c  ES pragma to hel
c7a0: 70 20 6f 75 74 20 74 68 65 20 4f 44 42 43 20 64  p out the ODBC d
c7b0: 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  river.</li>.<li>
c7c0: 42 75 67 20 66 69 78 3a 20 22 53 45 4c 45 43 54  Bug fix: "SELECT
c7d0: 20 63 6f 75 6e 74 28 2a 29 22 20 77 61 73 20 72   count(*)" was r
c7e0: 65 74 75 72 6e 69 6e 67 20 4e 55 4c 4c 20 66 6f  eturning NULL fo
c7f0: 72 20 65 6d 70 74 79 20 74 61 62 6c 65 73 2e 0a  r empty tables..
c800: 20 20 20 20 4e 6f 77 20 69 74 20 72 65 74 75 72      Now it retur
c810: 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ns 0.</li>.}..ch
c820: 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33 20  ng {2001 Oct 13 
c830: 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.0.4)} {.<li>B
c840: 75 67 20 66 69 78 3a 20 61 6e 20 6f 62 73 63 75  ug fix: an obscu
c850: 72 65 20 61 6e 64 20 72 65 6c 61 74 69 76 65 6c  re and relativel
c860: 79 20 68 61 72 6d 6c 65 73 73 20 62 75 67 20 77  y harmless bug w
c870: 61 73 20 63 61 75 73 69 6e 67 20 6f 6e 65 20 6f  as causing one o
c880: 66 0a 20 20 20 20 74 68 65 20 74 65 73 74 73 20  f.    the tests 
c890: 74 6f 20 66 61 69 6c 20 77 68 65 6e 20 67 63 63  to fail when gcc
c8a0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61   optimizations a
c8b0: 72 65 20 74 75 72 6e 65 64 20 6f 6e 2e 20 20 54  re turned on.  T
c8c0: 68 69 73 20 72 65 6c 65 61 73 65 0a 20 20 20 20  his release.    
c8d0: 66 69 78 65 73 20 74 68 65 20 70 72 6f 62 6c 65  fixes the proble
c8e0: 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  m.</li>.}..chng 
c8f0: 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28 32 2e  {2001 Oct 13 (2.
c900: 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  0.3)} {.<li>Bug 
c910: 66 69 78 3a 20 74 68 65 20 3c 62 3e 73 71 6c 69  fix: the <b>sqli
c920: 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 28  te_busy_timeout(
c930: 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 77  )</b> function w
c940: 61 73 20 64 65 6c 61 79 69 6e 67 20 31 30 30 30  as delaying 1000
c950: 0a 20 20 20 20 74 69 6d 65 73 20 74 6f 6f 20 6c  .    times too l
c960: 6f 6e 67 20 62 65 66 6f 72 65 20 66 61 69 6c 69  ong before faili
c970: 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ng.</li>.<li>Bug
c980: 20 66 69 78 3a 20 61 6e 20 61 73 73 65 72 74 69   fix: an asserti
c990: 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20 69  on was failing i
c9a0: 66 20 74 68 65 20 64 69 73 6b 20 68 6f 6c 64 69  f the disk holdi
c9b0: 6e 67 20 74 68 65 20 64 61 74 61 62 61 73 65 0a  ng the database.
c9c0: 20 20 20 20 66 69 6c 65 20 62 65 63 61 6d 65 20      file became 
c9d0: 66 75 6c 6c 20 6f 72 20 73 74 6f 70 70 65 64 20  full or stopped 
c9e0: 61 63 63 65 70 74 69 6e 67 20 77 72 69 74 65 73  accepting writes
c9f0: 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68 65 72 20   for some other 
ca00: 72 65 61 73 6f 6e 2e 0a 20 20 20 20 4e 65 77 20  reason..    New 
ca10: 74 65 73 74 73 20 77 65 72 65 20 61 64 64 65 64  tests were added
ca20: 20 74 6f 20 64 65 74 65 63 74 20 73 69 6d 69 6c   to detect simil
ca30: 61 72 20 70 72 6f 62 6c 65 6d 73 20 69 6e 20 74  ar problems in t
ca40: 68 65 20 66 75 74 75 72 65 2e 3c 2f 6c 69 3e 0a  he future.</li>.
ca50: 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20 6f 70  <li>Added new op
ca60: 65 72 61 74 6f 72 73 3a 20 3c 62 3e 26 61 6d 70  erators: <b>&amp
ca70: 3b 3c 2f 62 3e 20 28 62 69 74 77 69 73 65 2d 61  ;</b> (bitwise-a
ca80: 6e 64 29 0a 20 20 20 20 3c 62 3e 7c 3c 2f 62 3e  nd).    <b>|</b>
ca90: 20 28 62 69 74 77 69 73 65 2d 6f 72 29 2c 20 3c   (bitwise-or), <
caa0: 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65 73 2d 63 6f  b>~</b> (ones-co
cab0: 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20 20 20 20 3c  mplement),.    <
cac0: 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 62 3e 20 28  b>&lt;&lt;</b> (
cad0: 73 68 69 66 74 20 6c 65 66 74 29 2c 20 3c 62 3e  shift left), <b>
cae0: 26 67 74 3b 26 67 74 3b 3c 2f 62 3e 20 28 73 68  &gt;&gt;</b> (sh
caf0: 69 66 74 20 72 69 67 68 74 29 2e 3c 2f 6c 69 3e  ift right).</li>
cb00: 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20 66  .<li>Added new f
cb10: 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 72 6f 75  unctions: <b>rou
cb20: 6e 64 28 29 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  nd()</b> and <b>
cb30: 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a  abs()</b>.</li>.
cb40: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
cb50: 74 20 39 20 28 32 2e 30 2e 32 29 7d 20 7b 0a 3c  t 9 (2.0.2)} {.<
cb60: 6c 69 3e 46 69 78 20 74 77 6f 20 62 75 67 73 20  li>Fix two bugs 
cb70: 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70  in the locking p
cb80: 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f 6e 65 20 77  rotocol.  (One w
cb90: 61 73 20 6d 61 73 6b 69 6e 67 20 74 68 65 20 6f  as masking the o
cba0: 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ther.)</li>.<li>
cbb0: 52 65 6d 6f 76 65 64 20 73 6f 6d 65 20 75 6e 75  Removed some unu
cbc0: 73 65 64 20 22 23 69 6e 63 6c 75 64 65 20 3c 75  sed "#include <u
cbd0: 6e 69 73 74 64 2e 68 3e 22 20 74 68 61 74 20 77  nistd.h>" that w
cbe0: 65 72 65 20 63 61 75 73 69 6e 67 20 70 72 6f 62  ere causing prob
cbf0: 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 56 43 2b  lems.    for VC+
cc00: 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65  +.</li>.<li>Fixe
cc10: 64 20 3c 62 3e 73 71 6c 69 74 65 2e 68 3c 2f 62  d <b>sqlite.h</b
cc20: 3e 20 73 6f 20 74 68 61 74 20 69 74 20 69 73 20  > so that it is 
cc30: 75 73 61 62 6c 65 20 66 72 6f 6d 20 43 2b 2b 3c  usable from C++<
cc40: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
cc50: 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e  he FULL_COLUMN_N
cc60: 41 4d 45 53 20 70 72 61 67 6d 61 2e 20 20 57 68  AMES pragma.  Wh
cc70: 65 6e 20 73 65 74 20 74 6f 20 22 4f 4e 22 2c 20  en set to "ON", 
cc80: 74 68 65 20 6e 61 6d 65 73 20 6f 66 0a 20 20 20  the names of.   
cc90: 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 72 65 70   columns are rep
cca0: 6f 72 74 65 64 20 62 61 63 6b 20 61 73 20 54 41  orted back as TA
ccb0: 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69 6e 73 74 65  BLE.COLUMN inste
ccc0: 61 64 20 6f 66 20 6a 75 73 74 20 43 4f 4c 55 4d  ad of just COLUM
ccd0: 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  N.</li>.<li>Adde
cce0: 64 20 74 68 65 20 54 41 42 4c 45 5f 49 4e 46 4f  d the TABLE_INFO
ccf0: 28 29 20 61 6e 64 20 49 4e 44 45 58 5f 49 4e 46  () and INDEX_INF
cd00: 4f 28 29 20 70 72 61 67 6d 61 73 20 74 6f 20 68  O() pragmas to h
cd10: 65 6c 70 20 73 75 70 70 6f 72 74 20 74 68 65 0a  elp support the.
cd20: 20 20 20 20 4f 44 42 43 20 69 6e 74 65 72 66 61      ODBC interfa
cd30: 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ce.</li>.<li>Add
cd40: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 54  ed support for T
cd50: 45 4d 50 4f 52 41 52 59 20 74 61 62 6c 65 73 20  EMPORARY tables 
cd60: 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69  and indices.</li
cd70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
cd80: 4f 63 74 20 32 20 28 32 2e 30 2e 31 29 7d 20 7b  Oct 2 (2.0.1)} {
cd90: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 73 6f 6d 65  .<li>Remove some
cda0: 20 43 2b 2b 20 73 74 79 6c 65 20 63 6f 6d 6d 65   C++ style comme
cdb0: 6e 74 73 20 66 72 6f 6d 20 62 74 72 65 65 2e 63  nts from btree.c
cdc0: 20 73 6f 20 74 68 61 74 20 69 74 20 77 69 6c 6c   so that it will
cdd0: 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 75 73 69   compile.    usi
cde0: 6e 67 20 63 6f 6d 70 69 6c 65 72 73 20 6f 74 68  ng compilers oth
cdf0: 65 72 20 74 68 61 6e 20 67 63 63 2e 3c 2f 6c 69  er than gcc.</li
ce00: 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e 64 75 6d 70  >.<li>The ".dump
ce10: 22 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 74 68  " output from th
ce20: 65 20 73 68 65 6c 6c 20 64 6f 65 73 20 6e 6f 74  e shell does not
ce30: 20 77 6f 72 6b 20 69 66 20 74 68 65 72 65 20 61   work if there a
ce40: 72 65 20 65 6d 62 65 64 64 65 64 0a 20 20 20 20  re embedded.    
ce50: 6e 65 77 6c 69 6e 65 73 20 61 6e 79 77 68 65 72  newlines anywher
ce60: 65 20 69 6e 20 74 68 65 20 64 61 74 61 2e 20 20  e in the data.  
ce70: 54 68 69 73 20 69 73 20 61 6e 20 6f 6c 64 20 62  This is an old b
ce80: 75 67 20 74 68 61 74 20 77 61 73 20 63 61 72 72  ug that was carr
ce90: 69 65 64 0a 20 20 20 20 66 6f 72 77 61 72 64 20  ied.    forward 
cea0: 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20 31 2e 30  from version 1.0
ceb0: 2e 20 20 54 6f 20 66 69 78 20 69 74 2c 20 74 68  .  To fix it, th
cec0: 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70 75 74  e ".dump" output
ced0: 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20 20 20 20 75   no longer.    u
cee0: 73 65 73 20 74 68 65 20 43 4f 50 59 20 63 6f 6d  ses the COPY com
cef0: 6d 61 6e 64 2e 20 20 49 74 20 69 6e 73 74 65 61  mand.  It instea
cf00: 64 20 67 65 6e 65 72 61 74 65 73 20 49 4e 53 45  d generates INSE
cf10: 52 54 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f  RT statements.</
cf20: 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65 6e 64 20 74  li>.<li>Extend t
cf30: 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 73 79  he expression sy
cf40: 6e 74 61 78 20 74 6f 20 73 75 70 70 6f 72 74 20  ntax to support 
cf50: 22 65 78 70 72 20 4e 4f 54 20 4e 55 4c 4c 22 20  "expr NOT NULL" 
cf60: 28 77 69 74 68 20 61 0a 20 20 20 20 73 70 61 63  (with a.    spac
cf70: 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 22 4e  e between the "N
cf80: 4f 54 22 20 61 6e 64 20 74 68 65 20 22 4e 55 4c  OT" and the "NUL
cf90: 4c 22 29 20 69 6e 20 61 64 64 69 74 69 6f 6e 20  L") in addition 
cfa0: 74 6f 20 22 65 78 70 72 20 4e 4f 54 4e 55 4c 4c  to "expr NOTNULL
cfb0: 22 0a 20 20 20 20 28 77 69 74 68 20 6e 6f 20 73  ".    (with no s
cfc0: 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  pace).</li>.}..c
cfd0: 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 38  hng {2001 Sep 28
cfe0: 20 28 32 2e 30 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.0)} {.<li>
cff0: 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 62 75  Automatically bu
d000: 69 6c 64 20 62 69 6e 61 72 69 65 73 20 66 6f 72  ild binaries for
d010: 20 4c 69 6e 75 78 20 61 6e 64 20 57 69 6e 64 6f   Linux and Windo
d020: 77 73 20 61 6e 64 20 70 75 74 20 74 68 65 6d 20  ws and put them 
d030: 6f 6e 0a 20 20 20 20 74 68 65 20 77 65 62 73 69  on.    the websi
d040: 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  te.</li>.}..chng
d050: 20 7b 32 30 30 31 20 53 65 70 20 32 38 20 28 32   {2001 Sep 28 (2
d060: 2e 30 2d 61 6c 70 68 61 2d 34 29 7d 20 7b 0a 3c  .0-alpha-4)} {.<
d070: 6c 69 3e 49 6e 63 6f 72 70 6f 72 61 74 65 20 6d  li>Incorporate m
d080: 61 6b 65 66 69 6c 65 20 70 61 74 63 68 65 73 20  akefile patches 
d090: 66 6f 72 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e  form A. Rottmann
d0a0: 20 74 6f 20 75 73 65 20 4c 49 42 54 4f 4f 4c 3c   to use LIBTOOL<
d0b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
d0c0: 30 31 20 53 65 70 20 32 37 20 28 32 2e 30 2d 61  01 Sep 27 (2.0-a
d0d0: 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c 6c 69 3e 53  lpha-3)} {.<li>S
d0e0: 51 4c 69 74 65 20 6e 6f 77 20 68 6f 6e 6f 72 73  QLite now honors
d0f0: 20 74 68 65 20 55 4e 49 51 55 45 20 6b 65 79 77   the UNIQUE keyw
d100: 6f 72 64 20 69 6e 20 43 52 45 41 54 45 20 55 4e  ord in CREATE UN
d110: 49 51 55 45 20 49 4e 44 45 58 2e 20 20 50 72 69  IQUE INDEX.  Pri
d120: 6d 61 72 79 0a 20 20 20 20 6b 65 79 73 20 61 72  mary.    keys ar
d130: 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 62 65  e required to be
d140: 20 75 6e 69 71 75 65 2e 3c 2f 6c 69 3e 0a 3c 6c   unique.</li>.<l
d150: 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20 63 68  i>File format ch
d160: 61 6e 67 65 64 20 62 61 63 6b 20 74 6f 20 77 68  anged back to wh
d170: 61 74 20 69 74 20 77 61 73 20 66 6f 72 20 61 6c  at it was for al
d180: 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  pha-1</li>.<li>F
d190: 69 78 65 73 20 74 6f 20 74 68 65 20 72 6f 6c 6c  ixes to the roll
d1a0: 62 61 63 6b 20 61 6e 64 20 6c 6f 63 6b 69 6e 67  back and locking
d1b0: 20 62 65 68 61 76 69 6f 72 3c 2f 6c 69 3e 0a 7d   behavior</li>.}
d1c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70  ..chng {2001 Sep
d1d0: 20 32 30 20 28 32 2e 30 2d 61 6c 70 68 61 2d 32   20 (2.0-alpha-2
d1e0: 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c  )} {.<li>Initial
d1f0: 20 72 65 6c 65 61 73 65 20 6f 66 20 76 65 72 73   release of vers
d200: 69 6f 6e 20 32 2e 30 2e 20 20 54 68 65 20 69 64  ion 2.0.  The id
d210: 65 61 20 6f 66 20 72 65 6e 61 6d 69 6e 67 20 74  ea of renaming t
d220: 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20 20 74  he library.    t
d230: 6f 20 22 53 51 4c 75 73 22 20 77 61 73 20 61 62  o "SQLus" was ab
d240: 61 6e 64 6f 6e 65 64 20 69 6e 20 66 61 76 6f 72  andoned in favor
d250: 20 6f 66 20 6b 65 65 70 69 6e 67 20 74 68 65 20   of keeping the 
d260: 22 53 51 4c 69 74 65 22 20 6e 61 6d 65 20 61 6e  "SQLite" name an
d270: 64 0a 20 20 20 20 62 75 6d 70 69 6e 67 20 74 68  d.    bumping th
d280: 65 20 6d 61 6a 6f 72 20 76 65 72 73 69 6f 6e 20  e major version 
d290: 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  number.</li>.<li
d2a0: 3e 54 68 65 20 70 61 67 65 72 20 61 6e 64 20 62  >The pager and b
d2b0: 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 73 20  tree subsystems 
d2c0: 61 64 64 65 64 20 62 61 63 6b 2e 20 54 68 65 79  added back. They
d2d0: 20 61 72 65 20 6e 6f 77 20 74 68 65 20 6f 6e 6c   are now the onl
d2e0: 79 0a 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20  y.    available 
d2f0: 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c  backend.</li>.<l
d300: 69 3e 54 68 65 20 44 62 62 65 20 61 62 73 74 72  i>The Dbbe abstr
d310: 61 63 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 47  action and the G
d320: 44 42 4d 20 61 6e 64 20 6d 65 6d 6f 72 79 20 64  DBM and memory d
d330: 72 69 76 65 72 73 20 77 65 72 65 20 72 65 6d 6f  rivers were remo
d340: 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ved.</li>.<li>Co
d350: 70 79 72 69 67 68 74 20 6f 6e 20 61 6c 6c 20 63  pyright on all c
d360: 6f 64 65 20 77 61 73 20 64 69 73 63 6c 61 69 6d  ode was disclaim
d370: 65 64 2e 20 20 54 68 65 20 6c 69 62 72 61 72 79  ed.  The library
d380: 20 69 73 20 6e 6f 77 20 69 6e 20 74 68 65 0a 20   is now in the. 
d390: 20 20 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e     public domain
d3a0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
d3b0: 32 30 30 31 20 4a 75 6c 20 32 33 20 28 31 2e 30  2001 Jul 23 (1.0
d3c0: 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65  .32)} {.<li>Page
d3d0: 72 20 61 6e 64 20 62 74 72 65 65 20 73 75 62 73  r and btree subs
d3e0: 79 73 74 65 6d 73 20 72 65 6d 6f 76 65 64 2e 20  ystems removed. 
d3f0: 20 54 68 65 73 65 20 77 69 6c 6c 20 62 65 20 75   These will be u
d400: 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c 6f 77 2d  sed in a follow-
d410: 6f 6e 0a 20 20 20 20 53 51 4c 20 73 65 72 76 65  on.    SQL serve
d420: 72 20 6c 69 62 72 61 72 79 20 6e 61 6d 65 64 20  r library named 
d430: 22 53 51 4c 75 73 22 2e 3c 2f 6c 69 3e 0a 3c 6c  "SQLus".</li>.<l
d440: 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74  i>Add the abilit
d450: 79 20 74 6f 20 75 73 65 20 71 75 6f 74 65 64 20  y to use quoted 
d460: 73 74 72 69 6e 67 73 20 61 73 20 74 61 62 6c 65  strings as table
d470: 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65   and column name
d480: 73 20 69 6e 0a 20 20 20 20 65 78 70 72 65 73 73  s in.    express
d490: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ions.</li>.}..ch
d4a0: 6e 67 20 7b 32 30 30 31 20 41 70 72 20 31 34 20  ng {2001 Apr 14 
d4b0: 28 31 2e 30 2e 33 31 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.31)} {.<li>
d4c0: 50 61 67 65 72 20 73 75 62 73 79 73 74 65 6d 20  Pager subsystem 
d4d0: 61 64 64 65 64 20 62 75 74 20 6e 6f 74 20 79 65  added but not ye
d4e0: 74 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  t used.</li>.<li
d4f0: 3e 4d 6f 72 65 20 72 6f 62 75 73 74 20 68 61 6e  >More robust han
d500: 64 6c 69 6e 67 20 6f 66 20 6f 75 74 2d 6f 66 2d  dling of out-of-
d510: 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73 2e 3c 2f  memory errors.</
d520: 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 74 65 73 74  li>.<li>New test
d530: 73 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 74  s added to the t
d540: 65 73 74 20 73 75 69 74 65 2e 3c 2f 6c 69 3e 0a  est suite.</li>.
d550: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70  }..chng {2001 Ap
d560: 72 20 36 20 28 31 2e 30 2e 33 30 29 7d 20 7b 0a  r 6 (1.0.30)} {.
d570: 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65 20 3c  <li>Remove the <
d580: 62 3e 73 71 6c 69 74 65 5f 65 6e 63 6f 64 69 6e  b>sqlite_encodin
d590: 67 3c 2f 62 3e 20 54 43 4c 20 76 61 72 69 61 62  g</b> TCL variab
d5a0: 6c 65 20 74 68 61 74 20 77 61 73 20 69 6e 74 72  le that was intr
d5b0: 6f 64 75 63 65 64 0a 20 20 20 20 69 6e 20 74 68  oduced.    in th
d5c0: 65 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69  e previous versi
d5d0: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  on.</li>.<li>Add
d5e0: 20 6f 70 74 69 6f 6e 73 20 3c 62 3e 2d 65 6e 63   options <b>-enc
d5f0: 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e 64 20 3c 62  oding</b> and <b
d600: 3e 2d 74 63 6c 2d 75 73 65 73 2d 75 74 66 3c 2f  >-tcl-uses-utf</
d610: 62 3e 20 74 6f 20 74 68 65 0a 20 20 20 20 3c 62  b> to the.    <b
d620: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 54 43 4c 20  >sqlite</b> TCL 
d630: 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c  command.</li>.<l
d640: 69 3e 41 64 64 20 74 65 73 74 73 20 74 6f 20 6d  i>Add tests to m
d650: 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 63  ake sure that tc
d660: 6c 73 71 6c 69 74 65 20 77 61 73 20 63 6f 6d 70  lsqlite was comp
d670: 69 6c 65 64 20 75 73 69 6e 67 20 54 63 6c 20 68  iled using Tcl h
d680: 65 61 64 65 72 0a 20 20 20 20 66 69 6c 65 73 20  eader.    files 
d690: 61 6e 64 20 6c 69 62 72 61 72 69 65 73 20 74 68  and libraries th
d6a0: 61 74 20 6d 61 74 63 68 2e 3c 2f 6c 69 3e 0a 7d  at match.</li>.}
d6b0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72  ..chng {2001 Apr
d6c0: 20 35 20 28 31 2e 30 2e 32 39 29 7d 20 7b 0a 3c   5 (1.0.29)} {.<
d6d0: 6c 69 3e 54 68 65 20 6c 69 62 72 61 72 79 20 6e  li>The library n
d6e0: 6f 77 20 61 73 73 75 6d 65 73 20 64 61 74 61 20  ow assumes data 
d6f0: 69 73 20 73 74 6f 72 65 64 20 61 73 20 55 54 46  is stored as UTF
d700: 2d 38 20 69 66 20 74 68 65 20 2d 2d 65 6e 61 62  -8 if the --enab
d710: 6c 65 2d 75 74 66 38 0a 20 20 20 20 6f 70 74 69  le-utf8.    opti
d720: 6f 6e 20 69 73 20 67 69 76 65 6e 20 74 6f 20 63  on is given to c
d730: 6f 6e 66 69 67 75 72 65 2e 20 20 54 68 65 20 64  onfigure.  The d
d740: 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 20  efault behavior 
d750: 69 73 20 74 6f 20 61 73 73 75 6d 65 0a 20 20 20  is to assume.   
d760: 20 69 73 6f 38 38 35 39 2d 78 2c 20 61 73 20 69   iso8859-x, as i
d770: 74 20 68 61 73 20 61 6c 77 61 79 73 20 64 6f 6e  t has always don
d780: 65 2e 20 20 54 68 69 73 20 6f 6e 6c 79 20 6d 61  e.  This only ma
d790: 6b 65 73 20 61 20 64 69 66 66 65 72 65 6e 63 65  kes a difference
d7a0: 20 66 6f 72 0a 20 20 20 20 4c 49 4b 45 20 61 6e   for.    LIKE an
d7b0: 64 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72 73  d GLOB operators
d7c0: 20 61 6e 64 20 74 68 65 20 4c 45 4e 47 54 48 20   and the LENGTH 
d7d0: 61 6e 64 20 53 55 42 53 54 52 20 66 75 6e 63 74  and SUBSTR funct
d7e0: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  ions.</li>.<li>I
d7f0: 66 20 74 68 65 20 6c 69 62 72 61 72 79 20 69 73  f the library is
d800: 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 65 64 20   not configured 
d810: 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20 74 68  for UTF-8 and th
d820: 65 20 54 63 6c 20 6c 69 62 72 61 72 79 0a 20 20  e Tcl library.  
d830: 20 20 69 73 20 6f 6e 65 20 6f 66 20 74 68 65 20    is one of the 
d840: 6e 65 77 65 72 20 6f 6e 65 73 20 74 68 61 74 20  newer ones that 
d850: 75 73 65 73 20 55 54 46 2d 38 20 69 6e 74 65 72  uses UTF-8 inter
d860: 6e 61 6c 6c 79 2c 0a 20 20 20 20 74 68 65 6e 20  nally,.    then 
d870: 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66 72 6f  a conversion fro
d880: 6d 20 55 54 46 2d 38 20 74 6f 20 69 73 6f 38 38  m UTF-8 to iso88
d890: 35 39 20 61 6e 64 0a 20 20 20 20 62 61 63 6b 20  59 and.    back 
d8a0: 61 67 61 69 6e 20 69 73 20 64 6f 6e 65 20 69 6e  again is done in
d8b0: 73 69 64 65 20 74 68 65 20 54 43 4c 20 69 6e 74  side the TCL int
d8c0: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  erface.</li>.}..
d8d0: 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 34  chng {2001 Apr 4
d8e0: 20 28 31 2e 30 2e 32 38 29 7d 20 7b 0a 3c 6c 69   (1.0.28)} {.<li
d8f0: 3e 41 64 64 65 64 20 6c 69 6d 69 74 65 64 20 73  >Added limited s
d900: 75 70 70 6f 72 74 20 66 6f 72 20 74 72 61 6e 73  upport for trans
d910: 61 63 74 69 6f 6e 73 2e 20 20 41 74 20 74 68 69  actions.  At thi
d920: 73 20 70 6f 69 6e 74 2c 20 74 72 61 6e 73 61 63  s point, transac
d930: 74 69 6f 6e 73 0a 20 20 20 20 77 69 6c 6c 20 64  tions.    will d
d940: 6f 20 74 61 62 6c 65 20 6c 6f 63 6b 69 6e 67 20  o table locking 
d950: 6f 6e 20 74 68 65 20 47 44 42 4d 20 62 61 63 6b  on the GDBM back
d960: 65 6e 64 2e 20 20 54 68 65 72 65 20 69 73 20 6e  end.  There is n
d970: 6f 20 73 75 70 70 6f 72 74 20 28 79 65 74 29 0a  o support (yet).
d980: 20 20 20 20 66 6f 72 20 72 6f 6c 6c 62 61 63 6b      for rollback
d990: 20 6f 72 20 61 74 6f 6d 69 63 20 63 6f 6d 6d 69   or atomic commi
d9a0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  t.</li>.<li>Adde
d9b0: 64 20 73 70 65 63 69 61 6c 20 63 6f 6c 75 6d 6e  d special column
d9c0: 20 6e 61 6d 65 73 20 52 4f 57 49 44 2c 20 4f 49   names ROWID, OI
d9d0: 44 2c 20 61 6e 64 20 5f 52 4f 57 49 44 5f 20 74  D, and _ROWID_ t
d9e0: 68 61 74 20 72 65 66 65 72 20 74 6f 20 74 68 65  hat refer to the
d9f0: 0a 20 20 20 20 75 6e 69 71 75 65 20 72 61 6e 64  .    unique rand
da00: 6f 6d 20 69 6e 74 65 67 65 72 20 6b 65 79 20 61  om integer key a
da10: 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 65  ssociated with e
da20: 76 65 72 79 20 72 6f 77 20 6f 66 20 65 76 65 72  very row of ever
da30: 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  y table.</li>.<l
da40: 69 3e 41 64 64 69 74 69 6f 6e 61 6c 20 74 65 73  i>Additional tes
da50: 74 73 20 61 64 64 65 64 20 74 6f 20 74 68 65 20  ts added to the 
da60: 72 65 67 72 65 73 73 69 6f 6e 20 73 75 69 74 65  regression suite
da70: 20 74 6f 20 63 6f 76 65 72 20 74 68 65 20 6e 65   to cover the ne
da80: 77 20 52 4f 57 49 44 0a 20 20 20 20 66 65 61 74  w ROWID.    feat
da90: 75 72 65 20 61 6e 64 20 74 68 65 20 54 43 4c 20  ure and the TCL 
daa0: 69 6e 74 65 72 66 61 63 65 20 62 75 67 73 20 6d  interface bugs m
dab0: 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f 77 2e 3c  entioned below.<
dac0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  /li>.<li>Changes
dad0: 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20   to the "lemon" 
dae0: 70 61 72 73 65 72 20 67 65 6e 65 72 61 74 6f 72  parser generator
daf0: 20 74 6f 20 68 65 6c 70 20 69 74 20 77 6f 72 6b   to help it work
db00: 20 62 65 74 74 65 72 20 77 68 65 6e 0a 20 20 20   better when.   
db10: 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e 67 20   compiled using 
db20: 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  MSVC.</li>.<li>B
db30: 75 67 20 66 69 78 65 73 20 69 6e 20 74 68 65 20  ug fixes in the 
db40: 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20 69 64  TCL interface id
db50: 65 6e 74 69 66 69 65 64 20 62 79 20 4f 6c 65 67  entified by Oleg
db60: 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f 6c 69 3e 0a   Oleinick.</li>.
db70: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d 61  }..chng {2001 Ma
db80: 72 20 32 30 20 28 31 2e 30 2e 32 37 29 7d 20 7b  r 20 (1.0.27)} {
db90: 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f 69 6e 67 20  .<li>When doing 
dba0: 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44 41 54  DELETE and UPDAT
dbb0: 45 2c 20 74 68 65 20 6c 69 62 72 61 72 79 20 75  E, the library u
dbc0: 73 65 64 20 74 6f 20 77 72 69 74 65 20 74 68 65  sed to write the
dbd0: 20 72 65 63 6f 72 64 0a 20 20 20 20 6e 75 6d 62   record.    numb
dbe0: 65 72 73 20 6f 66 20 72 65 63 6f 72 64 73 20 74  ers of records t
dbf0: 6f 20 62 65 20 64 65 6c 65 74 65 64 20 6f 72 20  o be deleted or 
dc00: 75 70 64 61 74 65 64 20 69 6e 74 6f 20 61 20 74  updated into a t
dc10: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e 0a 20  emporary file.. 
dc20: 20 20 20 54 68 69 73 20 69 73 20 63 68 61 6e 67     This is chang
dc30: 65 64 20 73 6f 20 74 68 61 74 20 74 68 65 20 72  ed so that the r
dc40: 65 63 6f 72 64 20 6e 75 6d 62 65 72 73 20 61 72  ecord numbers ar
dc50: 65 20 68 65 6c 64 20 69 6e 20 6d 65 6d 6f 72 79  e held in memory
dc60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 44  .</li>.<li>The D
dc70: 45 4c 45 54 45 20 63 6f 6d 6d 61 6e 64 20 77 69  ELETE command wi
dc80: 74 68 6f 75 74 20 61 20 57 48 49 4c 45 20 63 6c  thout a WHILE cl
dc90: 61 75 73 65 20 6a 75 73 74 20 72 65 6d 6f 76 65  ause just remove
dca0: 73 20 74 68 65 20 64 61 74 61 62 61 73 65 0a 20  s the database. 
dcb0: 20 20 20 66 69 6c 65 73 20 66 72 6f 6d 20 74 68     files from th
dcc0: 65 20 64 69 73 6b 2c 20 72 61 74 68 65 72 20 74  e disk, rather t
dcd0: 68 61 6e 20 67 6f 69 6e 67 20 74 68 72 6f 75 67  han going throug
dce0: 68 20 61 6e 64 20 64 65 6c 65 74 69 6e 67 20 72  h and deleting r
dcf0: 65 63 6f 72 64 0a 20 20 20 20 62 79 20 72 65 63  ecord.    by rec
dd00: 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ord.</li>.}..chn
dd10: 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30 20 28  g {2001 Mar 20 (
dd20: 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c 6c 69 3e 41  1.0.26)} {.<li>A
dd30: 20 73 65 72 69 6f 75 73 20 62 75 67 20 66 69 78   serious bug fix
dd40: 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 2e 20 20  ed on Windows.  
dd50: 57 69 6e 64 6f 77 73 20 75 73 65 72 73 20 73 68  Windows users sh
dd60: 6f 75 6c 64 20 75 70 67 72 61 64 65 2e 0a 20 20  ould upgrade..  
dd70: 20 20 4e 6f 20 69 6d 70 61 63 74 20 74 6f 20 55    No impact to U
dd80: 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nix.</li>.}..chn
dd90: 67 20 7b 32 30 30 31 20 4d 61 72 20 31 35 20 28  g {2001 Mar 15 (
dda0: 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c 6c 69 3e 4d  1.0.25)} {.<li>M
ddb0: 6f 64 69 66 79 20 74 68 65 20 74 65 73 74 20 73  odify the test s
ddc0: 63 72 69 70 74 73 20 74 6f 20 69 64 65 6e 74 69  cripts to identi
ddd0: 66 79 20 74 65 73 74 73 20 74 68 61 74 20 64 65  fy tests that de
dde0: 70 65 6e 64 20 6f 6e 20 73 79 73 74 65 6d 0a 20  pend on system. 
ddf0: 20 20 20 6c 6f 61 64 20 61 6e 64 20 70 72 6f 63     load and proc
de00: 65 73 73 6f 72 20 73 70 65 65 64 20 61 6e 64 0a  essor speed and.
de10: 20 20 20 20 74 6f 20 77 61 72 6e 20 74 68 65 20      to warn the 
de20: 75 73 65 72 20 74 68 61 74 20 61 20 66 61 69 6c  user that a fail
de30: 75 72 65 20 6f 66 20 6f 6e 65 20 6f 66 20 74 68  ure of one of th
de40: 6f 73 65 20 28 72 61 72 65 29 20 74 65 73 74 73  ose (rare) tests
de50: 20 64 6f 65 73 0a 20 20 20 20 6e 6f 74 20 6e 65   does.    not ne
de60: 63 65 73 73 61 72 69 6c 79 20 6d 65 61 6e 20 74  cessarily mean t
de70: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6d 61  he library is ma
de80: 6c 66 75 6e 63 74 69 6f 6e 69 6e 67 2e 20 20 4e  lfunctioning.  N
de90: 6f 20 63 68 61 6e 67 65 73 20 74 6f 0a 20 20 20  o changes to.   
dea0: 20 63 6f 64 65 2e 0a 20 20 20 20 3c 2f 6c 69 3e   code..    </li>
deb0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d  .}..chng {2001 M
dec0: 61 72 20 31 34 20 28 31 2e 30 2e 32 34 29 7d 20  ar 14 (1.0.24)} 
ded0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
dee0: 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69 6e  which was causin
def0: 67 0a 20 20 20 20 74 68 65 20 55 50 44 41 54 45  g.    the UPDATE
df00: 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66 61 69 6c   command to fail
df10: 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68 65 72   on systems wher
df20: 65 20 22 6d 61 6c 6c 6f 63 28 30 29 22 20 72 65  e "malloc(0)" re
df30: 74 75 72 6e 73 0a 20 20 20 20 4e 55 4c 4c 2e 20  turns.    NULL. 
df40: 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 64 6f 65   The problem doe
df50: 73 20 6e 6f 74 20 61 70 70 65 61 72 20 57 69 6e  s not appear Win
df60: 64 6f 77 73 2c 20 4c 69 6e 75 78 2c 20 6f 72 20  dows, Linux, or 
df70: 48 50 55 58 20 62 75 74 20 64 6f 65 73 20 0a 20  HPUX but does . 
df80: 20 20 20 63 61 75 73 65 20 74 68 65 20 6c 69 62     cause the lib
df90: 72 61 72 79 20 74 6f 20 66 61 69 6c 20 6f 6e 20  rary to fail on 
dfa0: 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d  QNX..    </li>.}
dfb0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62  ..chng {2001 Feb
dfc0: 20 31 39 20 28 31 2e 30 2e 32 33 29 7d 20 7b 0a   19 (1.0.23)} {.
dfd0: 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c 61 74 65 64  <li>An unrelated
dfe0: 20 28 61 6e 64 20 6d 69 6e 6f 72 29 20 62 75 67   (and minor) bug
dff0: 20 66 72 6f 6d 20 4d 61 72 6b 20 4d 75 72 61 6e   from Mark Muran
e000: 77 73 6b 69 20 66 69 78 65 64 2e 20 20 54 68 65  wski fixed.  The
e010: 20 61 6c 67 6f 72 69 74 68 6d 0a 20 20 20 20 66   algorithm.    f
e020: 6f 72 20 66 69 67 75 72 69 6e 67 20 6f 75 74 20  or figuring out 
e030: 77 68 65 72 65 20 74 6f 20 70 75 74 20 74 65 6d  where to put tem
e040: 70 6f 72 61 72 79 20 66 69 6c 65 73 20 66 6f 72  porary files for
e050: 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 64 61 74   a "memory:" dat
e060: 61 62 61 73 65 0a 20 20 20 20 77 61 73 20 6e 6f  abase.    was no
e070: 74 20 77 6f 72 6b 69 6e 67 20 71 75 69 74 65 20  t working quite 
e080: 72 69 67 68 74 2e 0a 20 20 20 20 3c 2f 6c 69 3e  right..    </li>
e090: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
e0a0: 65 62 20 31 39 20 28 31 2e 30 2e 32 32 29 7d 20  eb 19 (1.0.22)} 
e0b0: 7b 0a 3c 6c 69 3e 54 68 65 20 70 72 65 76 69 6f  {.<li>The previo
e0c0: 75 73 20 66 69 78 20 77 61 73 20 6e 6f 74 20 71  us fix was not q
e0d0: 75 69 74 65 20 72 69 67 68 74 2e 20 20 54 68 69  uite right.  Thi
e0e0: 73 20 6f 6e 65 20 73 65 65 6d 73 20 74 6f 20 77  s one seems to w
e0f0: 6f 72 6b 20 62 65 74 74 65 72 2e 0a 20 20 20 20  ork better..    
e100: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
e110: 30 30 31 20 46 65 62 20 31 39 20 28 31 2e 30 2e  001 Feb 19 (1.0.
e120: 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 55  21)} {.<li>The U
e130: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20  PDATE statement 
e140: 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20  was not working 
e150: 77 68 65 6e 20 74 68 65 20 57 48 45 52 45 20 63  when the WHERE c
e160: 6c 61 75 73 65 20 63 6f 6e 74 61 69 6e 65 64 0a  lause contained.
e170: 20 20 20 20 73 6f 6d 65 20 74 65 72 6d 73 20 74      some terms t
e180: 68 61 74 20 63 6f 75 6c 64 20 62 65 20 73 61 74  hat could be sat
e190: 69 73 66 69 65 64 20 75 73 69 6e 67 20 69 6e 64  isfied using ind
e1a0: 69 63 65 73 20 61 6e 64 20 6f 74 68 65 72 20 74  ices and other t
e1b0: 65 72 6d 73 20 74 68 61 74 0a 20 20 20 20 63 6f  erms that.    co
e1c0: 75 6c 64 20 6e 6f 74 2e 20 20 46 69 78 65 64 2e  uld not.  Fixed.
e1d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
e1e0: 30 30 31 20 46 65 62 20 31 31 20 28 31 2e 30 2e  001 Feb 11 (1.0.
e1f0: 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 65 72 67 65  20)} {.<li>Merge
e200: 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63 68 61   development cha
e210: 6e 67 65 73 20 69 6e 74 6f 20 74 68 65 20 6d 61  nges into the ma
e220: 69 6e 20 74 72 75 6e 6b 2e 20 20 46 75 74 75 72  in trunk.  Futur
e230: 65 20 77 6f 72 6b 20 74 6f 77 61 72 64 0a 20 20  e work toward.  
e240: 20 20 75 73 69 6e 67 20 61 20 42 54 72 65 65 20    using a BTree 
e250: 66 69 6c 65 20 73 74 72 75 63 74 75 72 65 20 77  file structure w
e260: 69 6c 6c 20 75 73 65 20 61 20 73 65 70 61 72 61  ill use a separa
e270: 74 65 20 43 56 53 20 73 6f 75 72 63 65 20 74 72  te CVS source tr
e280: 65 65 2e 20 20 54 68 69 73 0a 20 20 20 20 43 56  ee.  This.    CV
e290: 53 20 74 72 65 65 20 77 69 6c 6c 20 63 6f 6e 74  S tree will cont
e2a0: 69 6e 75 65 20 74 6f 20 73 75 70 70 6f 72 74 20  inue to support 
e2b0: 74 68 65 20 47 44 42 4d 20 76 65 72 73 69 6f 6e  the GDBM version
e2c0: 20 6f 66 20 53 51 4c 69 74 65 20 6f 6e 6c 79 2e   of SQLite only.
e2d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
e2e0: 30 30 31 20 46 65 62 20 36 20 28 31 2e 30 2e 31  001 Feb 6 (1.0.1
e2f0: 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  9)} {.<li>Fix a 
e300: 73 74 72 61 6e 67 65 20 28 62 75 74 20 76 61 6c  strange (but val
e310: 69 64 29 20 43 20 64 65 63 6c 61 72 61 74 69 6f  id) C declaratio
e320: 6e 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69  n that was causi
e330: 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20 20 20  ng problems.    
e340: 66 6f 72 20 51 4e 58 2e 20 20 4e 6f 20 6c 6f 67  for QNX.  No log
e350: 69 63 61 6c 20 63 68 61 6e 67 65 73 2e 3c 2f 6c  ical changes.</l
e360: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
e370: 20 4a 61 6e 20 34 20 28 31 2e 30 2e 31 38 29 7d   Jan 4 (1.0.18)}
e380: 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74 20 74 68 65   {.<li>Print the
e390: 20 6f 66 66 65 6e 64 69 6e 67 20 53 51 4c 20 73   offending SQL s
e3a0: 74 61 74 65 6d 65 6e 74 20 77 68 65 6e 20 61 6e  tatement when an
e3b0: 20 65 72 72 6f 72 20 6f 63 63 75 72 73 2e 3c 2f   error occurs.</
e3c0: 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 72  li>.<li>Do not r
e3d0: 65 71 75 69 72 65 20 63 6f 6d 6d 61 73 20 62 65  equire commas be
e3e0: 74 77 65 65 6e 20 63 6f 6e 73 74 72 61 69 6e 74  tween constraint
e3f0: 73 20 69 6e 20 43 52 45 41 54 45 20 54 41 42 4c  s in CREATE TABL
e400: 45 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c  E statements.</l
e410: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
e420: 20 22 2d 65 63 68 6f 22 20 6f 70 74 69 6f 6e 20   "-echo" option 
e430: 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c  to the shell.</l
e440: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74  i>.<li>Changes t
e450: 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  o comments.</li>
e460: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44  .}..chng {2000 D
e470: 65 63 20 31 30 20 28 31 2e 30 2e 31 37 29 7d 20  ec 10 (1.0.17)} 
e480: 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74 65 20 3c 62  {.<li>Rewrote <b
e490: 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65  >sqlite_complete
e4a0: 28 29 3c 2f 62 3e 20 74 6f 20 6d 61 6b 65 20 69  ()</b> to make i
e4b0: 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c  t faster.</li>.<
e4c0: 6c 69 3e 4d 69 6e 6f 72 20 74 77 65 61 6b 73 20  li>Minor tweaks 
e4d0: 74 6f 20 6f 74 68 65 72 20 63 6f 64 65 20 74 6f  to other code to
e4e0: 20 6d 61 6b 65 20 69 74 20 72 75 6e 20 61 20 6c   make it run a l
e4f0: 69 74 74 6c 65 20 66 61 73 74 65 72 2e 3c 2f 6c  ittle faster.</l
e500: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77  i>.<li>Added new
e510: 20 74 65 73 74 73 20 66 6f 72 20 3c 62 3e 73 71   tests for <b>sq
e520: 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c  lite_complete()<
e530: 2f 62 3e 20 61 6e 64 20 66 6f 72 20 6d 65 6d 6f  /b> and for memo
e540: 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c 69 3e 0a 7d  ry leaks.</li>.}
e550: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44 65 63  ..chng {2000 Dec
e560: 20 34 20 28 31 2e 30 2e 31 36 29 7d 20 7b 0a 3c   4 (1.0.16)} {.<
e570: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
e580: 20 75 70 64 61 74 65 73 2e 20 20 4d 6f 73 74 6c   updates.  Mostl
e590: 79 20 66 69 78 69 6e 67 20 6f 66 20 74 79 70 6f  y fixing of typo
e5a0: 73 20 61 6e 64 20 73 70 65 6c 6c 69 6e 67 20 65  s and spelling e
e5b0: 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rrors.</li>.}..c
e5c0: 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 32 33  hng {2000 Oct 23
e5d0: 20 28 31 2e 30 2e 31 35 29 7d 20 7b 0a 3c 6c 69   (1.0.15)} {.<li
e5e0: 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75  >Documentation u
e5f0: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
e600: 53 6f 6d 65 20 73 61 6e 69 74 79 20 63 68 65 63  Some sanity chec
e610: 6b 69 6e 67 20 63 6f 64 65 20 77 61 73 20 72 65  king code was re
e620: 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 69  moved from the i
e630: 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66 20 76 64 62  nner loop of vdb
e640: 65 2e 63 0a 20 20 20 20 74 6f 20 68 65 6c 70 20  e.c.    to help 
e650: 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f 20 72  the library to r
e660: 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74  un a little fast
e670: 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20 69 73  er.  The code is
e680: 20 6f 6e 6c 79 0a 20 20 20 20 72 65 6d 6f 76 65   only.    remove
e690: 64 20 69 66 20 79 6f 75 20 63 6f 6d 70 69 6c 65  d if you compile
e6a0: 20 77 69 74 68 20 2d 44 4e 44 45 42 55 47 2e 3c   with -DNDEBUG.<
e6b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
e6c0: 30 30 20 4f 63 74 20 31 39 20 28 31 2e 30 2e 31  00 Oct 19 (1.0.1
e6d0: 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  4)} {.<li>Added 
e6e0: 61 20 22 6d 65 6d 6f 72 79 3a 22 20 62 61 63 6b  a "memory:" back
e6f0: 65 6e 64 20 64 72 69 76 65 72 20 74 68 61 74 20  end driver that 
e700: 73 74 6f 72 65 73 20 69 74 73 20 64 61 74 61 62  stores its datab
e710: 61 73 65 20 69 6e 20 61 6e 0a 20 20 20 20 69 6e  ase in an.    in
e720: 2d 6d 65 6d 6f 72 79 20 68 61 73 68 20 74 61 62  -memory hash tab
e730: 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  le.</li>.}..chng
e740: 20 7b 32 30 30 30 20 4f 63 74 20 31 38 20 28 31   {2000 Oct 18 (1
e750: 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e 42 72  .0.13)} {.<li>Br
e760: 65 61 6b 20 6f 75 74 20 74 68 65 20 47 44 42 4d  eak out the GDBM
e770: 20 64 72 69 76 65 72 20 69 6e 74 6f 20 61 20 73   driver into a s
e780: 65 70 61 72 61 74 65 20 66 69 6c 65 20 69 6e 20  eparate file in 
e790: 61 6e 74 69 63 69 70 61 74 69 6f 6e 0a 20 20 20  anticipation.   
e7a0: 20 74 6f 20 61 64 64 65 64 20 6e 65 77 20 64 72   to added new dr
e7b0: 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ivers.</li>.<li>
e7c0: 41 6c 6c 6f 77 20 74 68 65 20 6e 61 6d 65 20 6f  Allow the name o
e7d0: 66 20 61 20 64 61 74 61 62 61 73 65 20 74 6f 20  f a database to 
e7e0: 62 65 20 70 72 65 66 69 78 65 64 20 62 79 20 74  be prefixed by t
e7f0: 68 65 20 64 72 69 76 65 72 20 74 79 70 65 2e 0a  he driver type..
e800: 20 20 20 20 46 6f 72 20 6e 6f 77 2c 20 74 68 65      For now, the
e810: 20 6f 6e 6c 79 20 64 72 69 76 65 72 20 74 79 70   only driver typ
e820: 65 20 69 73 20 22 67 64 62 6d 3a 22 2e 3c 2f 6c  e is "gdbm:".</l
e830: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
e840: 20 4f 63 74 20 31 36 20 28 31 2e 30 2e 31 32 29   Oct 16 (1.0.12)
e850: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65 64 20 61 6e  } {.<li>Fixed an
e860: 20 6f 66 66 2d 62 79 2d 6f 6e 65 20 65 72 72 6f   off-by-one erro
e870: 72 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69  r that was causi
e880: 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 20 69 6e  ng a coredump in
e890: 20 0a 20 20 20 20 74 68 65 20 27 25 71 27 20 66   .    the '%q' f
e8a0: 6f 72 6d 61 74 20 64 69 72 65 63 74 69 76 65 20  ormat directive 
e8b0: 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20 20 3c  of the new.    <
e8c0: 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69  b>sqlite_..._pri
e8d0: 6e 74 66 28 29 3c 2f 62 3e 20 72 6f 75 74 69 6e  ntf()</b> routin
e8e0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
e8f0: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
e900: 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f 62 3e  _interrupt()</b>
e910: 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e   interface.</li>
e920: 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 68 65 6c  .<li>In the shel
e930: 6c 2c 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74  l, <b>sqlite_int
e940: 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 73 20  errupt()</b> is 
e950: 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65  invoked when the
e960: 0a 20 20 20 20 75 73 65 72 20 70 72 65 73 73 65  .    user presse
e970: 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c 69 3e  s Control-C</li>
e980: 0a 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d 65 20  .<li>Fixed some 
e990: 69 6e 73 74 61 6e 63 65 73 20 77 68 65 72 65 20  instances where 
e9a0: 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29  <b>sqlite_exec()
e9b0: 3c 2f 62 3e 20 77 61 73 0a 20 20 20 20 72 65 74  </b> was.    ret
e9c0: 75 72 6e 69 6e 67 20 74 68 65 20 77 72 6f 6e 67  urning the wrong
e9d0: 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c 2f 6c 69   error code.</li
e9e0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
e9f0: 4f 63 74 20 31 31 20 28 31 2e 30 2e 31 30 29 7d  Oct 11 (1.0.10)}
ea00: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 6f 74   {.<li>Added not
ea10: 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6d  es on how to com
ea20: 70 69 6c 65 20 66 6f 72 20 57 69 6e 64 6f 77 73  pile for Windows
ea30: 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  95/98.</li>.<li>
ea40: 52 65 6d 6f 76 65 64 20 61 20 66 65 77 20 76 61  Removed a few va
ea50: 72 69 61 62 6c 65 73 20 74 68 61 74 20 77 65 72  riables that wer
ea60: 65 20 6e 6f 74 20 62 65 69 6e 67 20 75 73 65 64  e not being used
ea70: 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  .  Etc.</li>.}..
ea80: 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 38  chng {2000 Oct 8
ea90: 20 28 31 2e 30 2e 39 29 7d 20 7b 0a 3c 6c 69 3e   (1.0.9)} {.<li>
eaa0: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
eab0: 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29  ite_..._printf()
eac0: 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 20 72  </b> interface r
ead0: 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  outines.</li>.<l
eae0: 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c  i>Modified the <
eaf0: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65  b>sqlite</b> she
eb00: 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20 75 73  ll program to us
eb10: 65 20 74 68 65 20 6e 65 77 20 69 6e 74 65 72 66  e the new interf
eb20: 61 63 65 20 0a 20 20 20 20 72 6f 75 74 69 6e 65  ace .    routine
eb30: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  s.</li>.<li>Modi
eb40: 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  fied the <b>sqli
eb50: 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f  te</b> shell pro
eb60: 67 72 61 6d 20 74 6f 20 70 72 69 6e 74 20 74 68  gram to print th
eb70: 65 20 73 63 68 65 6d 61 20 66 6f 72 0a 20 20 20  e schema for.   
eb80: 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 53 51   the built-in SQ
eb90: 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61 62 6c  LITE_MASTER tabl
eba0: 65 2c 20 69 66 20 65 78 70 6c 69 63 69 74 6c 79  e, if explicitly
ebb0: 20 72 65 71 75 65 73 74 65 64 2e 3c 2f 6c 69 3e   requested.</li>
ebc0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53  .}..chng {2000 S
ebd0: 65 70 20 33 30 20 28 31 2e 30 2e 38 29 7d 20 7b  ep 30 (1.0.8)} {
ebe0: 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69 74 69  .<li>Begin writi
ebf0: 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ng documentation
ec00: 20 6f 6e 20 74 68 65 20 54 43 4c 20 69 6e 74 65   on the TCL inte
ec10: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rface.</li>.}..c
ec20: 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 32 39  hng {2000 Sep 29
ec30: 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64 29 7d   (Not Released)}
ec40: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
ec50: 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74   <b>sqlite_get_t
ec60: 61 62 6c 65 28 29 3c 2f 62 3e 20 41 50 49 3c 2f  able()</b> API</
ec70: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 64 20  li>.<li>Updated 
ec80: 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  the documentatio
ec90: 6e 20 66 6f 72 20 64 75 65 20 74 6f 20 74 68 65  n for due to the
eca0: 20 61 62 6f 76 65 20 63 68 61 6e 67 65 2e 3c 2f   above change.</
ecb0: 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64  li>.<li>Modified
ecc0: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f   the <b>sqlite</
ecd0: 62 3e 20 73 68 65 6c 6c 20 74 6f 20 6d 61 6b 65  b> shell to make
ece0: 20 75 73 65 20 6f 66 20 74 68 65 20 6e 65 77 0a   use of the new.
ecf0: 20 20 20 20 73 71 6c 69 74 65 5f 67 65 74 5f 74      sqlite_get_t
ed00: 61 62 6c 65 28 29 20 41 50 49 20 69 6e 20 6f 72  able() API in or
ed10: 64 65 72 20 74 6f 20 70 72 69 6e 74 20 61 20 6c  der to print a l
ed20: 69 73 74 20 6f 66 20 74 61 62 6c 65 73 0a 20 20  ist of tables.  
ed30: 20 20 69 6e 20 6d 75 6c 74 69 70 6c 65 20 63 6f    in multiple co
ed40: 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c 61 72 20 74  lumns, similar t
ed50: 6f 20 74 68 65 20 77 61 79 20 22 6c 73 22 20 70  o the way "ls" p
ed60: 72 69 6e 74 73 20 66 69 6c 65 6e 61 6d 65 73 2e  rints filenames.
ed70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
ed80: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
ed90: 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 70 72  </b> shell to pr
eda0: 69 6e 74 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20  int a semicolon 
edb0: 61 74 20 74 68 65 0a 20 20 20 20 65 6e 64 20 6f  at the.    end o
edc0: 66 20 65 61 63 68 20 43 52 45 41 54 45 20 73 74  f each CREATE st
edd0: 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6f  atement in the o
ede0: 75 74 70 75 74 20 6f 66 20 74 68 65 20 22 2e 73  utput of the ".s
edf0: 63 68 65 6d 61 22 20 63 6f 6d 6d 61 6e 64 2e 3c  chema" command.<
ee00: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
ee10: 30 30 20 53 65 70 20 32 31 20 28 4e 6f 74 20 52  00 Sep 21 (Not R
ee20: 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e  eleased)} {.<li>
ee30: 43 68 61 6e 67 65 20 74 68 65 20 74 63 6c 73 71  Change the tclsq
ee40: 6c 69 74 65 20 22 65 76 61 6c 22 20 6d 65 74 68  lite "eval" meth
ee50: 6f 64 20 74 6f 20 72 65 74 75 72 6e 20 61 20 6c  od to return a l
ee60: 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73 20 69  ist of results i
ee70: 66 0a 20 20 20 20 6e 6f 20 63 61 6c 6c 62 61 63  f.    no callbac
ee80: 6b 20 73 63 72 69 70 74 20 69 73 20 73 70 65 63  k script is spec
ee90: 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ified.</li>.<li>
eea0: 43 68 61 6e 67 65 20 74 63 6c 73 71 6c 69 74 65  Change tclsqlite
eeb0: 2e 63 20 74 6f 20 75 73 65 20 74 68 65 20 54 63  .c to use the Tc
eec0: 6c 5f 4f 62 6a 20 69 6e 74 65 72 66 61 63 65 3c  l_Obj interface<
eed0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 63 6c  /li>.<li>Add tcl
eee0: 73 71 6c 69 74 65 2e 63 20 74 6f 20 74 68 65 20  sqlite.c to the 
eef0: 6c 69 62 73 71 6c 69 74 65 2e 61 20 6c 69 62 72  libsqlite.a libr
ef00: 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ary</li>.}..chng
ef10: 20 7b 32 30 30 30 20 53 65 70 20 31 33 20 28 56   {2000 Sep 13 (V
ef20: 65 72 73 69 6f 6e 20 31 2e 30 2e 35 29 7d 20 7b  ersion 1.0.5)} {
ef30: 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74 68 65  .<li>Changed the
ef40: 20 70 72 69 6e 74 20 66 6f 72 6d 61 74 20 66 6f   print format fo
ef50: 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  r floating point
ef60: 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 22 25 67   values from "%g
ef70: 22 20 74 6f 20 22 25 2e 31 35 67 22 2e 0a 20 20  " to "%.15g"..  
ef80: 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e    </li>.<li>Chan
ef90: 67 65 64 20 74 68 65 20 63 6f 6d 70 61 72 69 73  ged the comparis
efa0: 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 73 6f 20 74  on function so t
efb0: 68 61 74 20 6e 75 6d 62 65 72 73 20 69 6e 20 65  hat numbers in e
efc0: 78 70 6f 6e 65 6e 74 69 61 6c 20 6e 6f 74 61 74  xponential notat
efd0: 69 6f 6e 0a 20 20 20 20 28 65 78 3a 20 31 2e 32  ion.    (ex: 1.2
efe0: 33 34 65 2b 30 35 29 20 73 6f 72 74 20 69 6e 20  34e+05) sort in 
eff0: 6e 75 6d 65 72 69 63 61 6c 20 6f 72 64 65 72 2e  numerical order.
f000: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
f010: 30 30 30 20 41 75 67 20 32 38 20 28 56 65 72 73  000 Aug 28 (Vers
f020: 69 6f 6e 20 31 2e 30 2e 34 29 7d 20 7b 0a 3c 6c  ion 1.0.4)} {.<l
f030: 69 3e 41 64 64 65 64 20 66 75 6e 63 74 69 6f 6e  i>Added function
f040: 73 20 3c 62 3e 6c 65 6e 67 74 68 28 29 3c 2f 62  s <b>length()</b
f050: 3e 20 61 6e 64 20 3c 62 3e 73 75 62 73 74 72 28  > and <b>substr(
f060: 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  )</b>.</li>.<li>
f070: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
f080: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
f090: 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 68 61  hell program tha
f0a0: 74 20 77 61 73 20 63 61 75 73 69 6e 67 0a 20 20  t was causing.  
f0b0: 20 20 61 20 63 6f 72 65 64 75 6d 70 20 77 68 65    a coredump whe
f0c0: 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6d 6f 64  n the output mod
f0d0: 65 20 77 61 73 20 22 63 6f 6c 75 6d 6e 22 20 61  e was "column" a
f0e0: 6e 64 20 74 68 65 20 66 69 72 73 74 20 72 6f 77  nd the first row
f0f0: 0a 20 20 20 20 6f 66 20 64 61 74 61 20 63 6f 6e  .    of data con
f100: 74 61 69 6e 65 64 20 61 20 4e 55 4c 4c 2e 3c 2f  tained a NULL.</
f110: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
f120: 30 20 41 75 67 20 32 32 20 28 56 65 72 73 69 6f  0 Aug 22 (Versio
f130: 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.3)} {.<li>
f140: 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73 68  In the sqlite sh
f150: 65 6c 6c 2c 20 70 72 69 6e 74 20 74 68 65 20 22  ell, print the "
f160: 44 61 74 61 62 61 73 65 20 6f 70 65 6e 65 64 20  Database opened 
f170: 52 45 41 44 20 4f 4e 4c 59 22 20 6d 65 73 73 61  READ ONLY" messa
f180: 67 65 0a 20 20 20 20 74 6f 20 73 74 64 65 72 72  ge.    to stderr
f190: 20 69 6e 73 74 65 61 64 20 6f 66 20 73 74 64 6f   instead of stdo
f1a0: 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20  ut.</li>.<li>In 
f1b0: 74 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c  the sqlite shell
f1c0: 2c 20 6e 6f 77 20 70 72 69 6e 74 20 74 68 65 20  , now print the 
f1d0: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f  version number o
f1e0: 6e 20 69 6e 69 74 69 61 6c 20 73 74 61 72 74 75  n initial startu
f1f0: 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  p.</li>.<li>Add 
f200: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 76 65  the <b>sqlite_ve
f210: 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20 73 74 72 69  rsion[]</b> stri
f220: 6e 67 20 63 6f 6e 73 74 61 6e 74 20 74 6f 20 74  ng constant to t
f230: 68 65 20 6c 69 62 72 61 72 79 3c 2f 6c 69 3e 0a  he library</li>.
f240: 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64  <li>Makefile upd
f250: 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ates</li>.<li>Bu
f260: 67 20 66 69 78 3a 20 69 6e 63 6f 72 72 65 63 74  g fix: incorrect
f270: 20 56 44 42 45 20 63 6f 64 65 20 77 61 73 20 62   VDBE code was b
f280: 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64 20 66  eing generated f
f290: 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  or the following
f2a0: 0a 20 20 20 20 63 69 72 63 75 6d 73 74 61 6e 63  .    circumstanc
f2b0: 65 3a 20 61 20 71 75 65 72 79 20 6f 6e 20 61 6e  e: a query on an
f2c0: 20 69 6e 64 65 78 65 64 20 74 61 62 6c 65 20 63   indexed table c
f2d0: 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 48 45 52  ontaining a WHER
f2e0: 45 20 63 6c 61 75 73 65 20 77 69 74 68 0a 20 20  E clause with.  
f2f0: 20 20 61 6e 20 49 4e 20 6f 70 65 72 61 74 6f 72    an IN operator
f300: 20 74 68 61 74 20 68 61 64 20 61 20 73 75 62 71   that had a subq
f310: 75 65 72 79 20 6f 6e 20 69 74 73 20 72 69 67 68  uery on its righ
f320: 74 2d 68 61 6e 64 20 73 69 64 65 2e 3c 2f 6c 69  t-hand side.</li
f330: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
f340: 41 75 67 20 31 38 20 28 56 65 72 73 69 6f 6e 20  Aug 18 (Version 
f350: 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69  1.0.1)} {.<li>Fi
f360: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 63  x a bug in the c
f370: 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70 74 2e  onfigure script.
f380: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20  </li>.<li>Minor 
f390: 72 65 76 69 73 69 6f 6e 73 20 74 6f 20 74 68 65  revisions to the
f3a0: 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d   website.</li>.}
f3b0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
f3c0: 20 31 37 20 28 56 65 72 73 69 6f 6e 20 31 2e 30   17 (Version 1.0
f3d0: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
f3e0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
f3f0: 3e 20 70 72 6f 67 72 61 6d 20 73 6f 20 74 68 61  > program so tha
f400: 74 20 69 74 20 63 61 6e 20 72 65 61 64 0a 20 20  t it can read.  
f410: 20 20 64 61 74 61 62 61 73 65 73 20 66 6f 72 20    databases for 
f420: 77 68 69 63 68 20 69 74 20 6c 61 63 6b 73 20 77  which it lacks w
f430: 72 69 74 65 20 70 65 72 6d 69 73 73 69 6f 6e 2e  rite permission.
f440: 20 20 28 49 74 20 75 73 65 64 20 74 6f 0a 20 20    (It used to.  
f450: 20 20 72 65 66 75 73 65 20 61 6c 6c 20 61 63 63    refuse all acc
f460: 65 73 73 20 69 66 20 69 74 20 63 6f 75 6c 64 20  ess if it could 
f470: 6e 6f 74 20 77 72 69 74 65 2e 29 3c 2f 6c 69 3e  not write.)</li>
f480: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
f490: 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e 54 72 65 61  ug 9} {.<li>Trea
f4a0: 74 20 63 61 72 72 69 61 67 65 20 72 65 74 75 72  t carriage retur
f4b0: 6e 73 20 61 73 20 77 68 69 74 65 20 73 70 61 63  ns as white spac
f4c0: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
f4d0: 7b 32 30 30 30 20 41 75 67 20 38 7d 20 7b 0a 3c  {2000 Aug 8} {.<
f4e0: 6c 69 3e 41 64 64 65 64 20 70 61 74 74 65 72 6e  li>Added pattern
f4f0: 20 6d 61 74 63 68 69 6e 67 20 74 6f 20 74 68 65   matching to the
f500: 20 22 2e 74 61 62 6c 65 22 20 63 6f 6d 6d 61 6e   ".table" comman
f510: 64 20 69 6e 20 74 68 65 20 22 73 71 6c 69 74 65  d in the "sqlite
f520: 22 0a 63 6f 6d 6d 61 6e 64 20 73 68 65 6c 6c 2e  ".command shell.
f530: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
f540: 30 30 30 20 41 75 67 20 34 7d 20 7b 0a 3c 6c 69  000 Aug 4} {.<li
f550: 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75  >Documentation u
f560: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
f570: 41 64 64 65 64 20 22 62 75 73 79 22 20 61 6e 64  Added "busy" and
f580: 20 22 74 69 6d 65 6f 75 74 22 20 6d 65 74 68 6f   "timeout" metho
f590: 64 73 20 74 6f 20 74 68 65 20 54 63 6c 20 69 6e  ds to the Tcl in
f5a0: 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 7d 0a 0a  terface</li>.}..
f5b0: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 33  chng {2000 Aug 3
f5c0: 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f 72  } {.<li>File for
f5d0: 6d 61 74 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62  mat version numb
f5e0: 65 72 20 77 61 73 20 62 65 69 6e 67 20 73 74 6f  er was being sto
f5f0: 72 65 64 20 69 6e 20 73 71 6c 69 74 65 5f 6d 61  red in sqlite_ma
f600: 73 74 65 72 2e 74 63 6c 0a 20 20 20 20 6d 75 6c  ster.tcl.    mul
f610: 74 69 70 6c 65 20 74 69 6d 65 73 2e 20 54 68 69  tiple times. Thi
f620: 73 20 77 61 73 20 68 61 72 6d 6c 65 73 73 2c 20  s was harmless, 
f630: 62 75 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e  but unnecessary.
f640: 20 49 74 20 69 73 20 6e 6f 77 20 66 69 78 65 64   It is now fixed
f650: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
f660: 32 30 30 30 20 41 75 67 20 32 7d 20 7b 0a 3c 6c  2000 Aug 2} {.<l
f670: 69 3e 54 68 65 20 66 69 6c 65 20 66 6f 72 6d 61  i>The file forma
f680: 74 20 66 6f 72 20 69 6e 64 69 63 65 73 20 77 61  t for indices wa
f690: 73 20 63 68 61 6e 67 65 64 20 73 6c 69 67 68 74  s changed slight
f6a0: 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 77  ly in order to w
f6b0: 6f 72 6b 0a 20 20 20 20 61 72 6f 75 6e 64 20 61  ork.    around a
f6c0: 6e 20 69 6e 65 66 66 69 63 69 65 6e 63 79 20 74  n inefficiency t
f6d0: 68 61 74 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65  hat can sometime
f6e0: 73 20 63 6f 6d 65 20 75 70 20 77 69 74 68 20 47  s come up with G
f6f0: 44 42 4d 20 77 68 65 6e 0a 20 20 20 20 74 68 65  DBM when.    the
f700: 72 65 20 61 72 65 20 6c 61 72 67 65 20 69 6e 64  re are large ind
f710: 69 63 65 73 20 68 61 76 69 6e 67 20 6d 61 6e 79  ices having many
f720: 20 65 6e 74 72 69 65 73 20 77 69 74 68 20 74 68   entries with th
f730: 65 20 73 61 6d 65 20 6b 65 79 2e 0a 20 20 20 20  e same key..    
f740: 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64  <font color="red
f750: 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61 74 69 62 6c  ">** Incompatibl
f760: 65 20 43 68 61 6e 67 65 20 2a 2a 3c 2f 66 6f 6e  e Change **</fon
f770: 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  t></li>.}..chng 
f780: 7b 32 30 30 30 20 41 75 67 20 31 7d 20 7b 0a 3c  {2000 Aug 1} {.<
f790: 6c 69 3e 54 68 65 20 70 61 72 73 65 72 27 73 20  li>The parser's 
f7a0: 73 74 61 63 6b 20 77 61 73 20 6f 76 65 72 66 6c  stack was overfl
f7b0: 6f 77 69 6e 67 20 6f 6e 20 61 20 76 65 72 79 20  owing on a very 
f7c0: 6c 6f 6e 67 20 55 50 44 41 54 45 20 73 74 61 74  long UPDATE stat
f7d0: 65 6d 65 6e 74 2e 0a 20 20 20 20 54 68 69 73 20  ement..    This 
f7e0: 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c  is now fixed.</l
f7f0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
f800: 20 4a 75 6c 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e   July 31} {.<li>
f810: 46 69 6e 69 73 68 20 74 68 65 20 3c 61 20 68 72  Finish the <a hr
f820: 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e 56  ef="vdbe.html">V
f830: 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61 3e  DBE tutorial</a>
f840: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
f850: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f   documentation o
f860: 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 74 6f 20 57  n compiling to W
f870: 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c  indowsNT.</li>.<
f880: 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67 75  li>Fix a configu
f890: 72 61 74 69 6f 6e 20 70 72 6f 67 72 61 6d 20 66  ration program f
f8a0: 6f 72 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c  or WindowsNT.</l
f8b0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e  i>.<li>Fix a con
f8c0: 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 62 6c  figuration probl
f8d0: 65 6d 20 66 6f 72 20 48 50 55 58 2e 3c 2f 6c 69  em for HPUX.</li
f8e0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
f8f0: 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 42  July 29} {.<li>B
f900: 65 74 74 65 72 20 6c 61 62 65 6c 73 20 6f 6e 20  etter labels on 
f910: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6f 66 20  column names of 
f920: 74 68 65 20 72 65 73 75 6c 74 2e 3c 2f 6c 69 3e  the result.</li>
f930: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
f940: 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c 69 3e 41 64  uly 28} {.<li>Ad
f950: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
f960: 65 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72 28 29  e_busy_handler()
f970: 3c 2f 62 3e 20 0a 20 20 20 20 61 6e 64 20 3c 62  </b> .    and <b
f980: 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d  >sqlite_busy_tim
f990: 65 6f 75 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72  eout()</b> inter
f9a0: 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  face.</li>.}..ch
f9b0: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 32 33  ng {2000 June 23
f9c0: 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72  } {.<li>Begin wr
f9d0: 69 74 69 6e 67 20 74 68 65 20 3c 61 20 68 72 65  iting the <a hre
f9e0: 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e 56 44  f="vdbe.html">VD
f9f0: 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e  BE tutorial</a>.
fa00: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
fa10: 30 30 30 20 4a 75 6e 65 20 32 31 7d 20 7b 0a 3c  000 June 21} {.<
fa20: 6c 69 3e 43 6c 65 61 6e 20 75 70 20 63 6f 6d 6d  li>Clean up comm
fa30: 65 6e 74 73 20 61 6e 64 20 76 61 72 69 61 62 6c  ents and variabl
fa40: 65 20 6e 61 6d 65 73 2e 20 20 43 68 61 6e 67 65  e names.  Change
fa50: 73 20 74 6f 20 64 6f 63 75 6d 65 6e 74 61 74 69  s to documentati
fa60: 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66 75 6e 63 74  on..    No funct
fa70: 69 6f 6e 61 6c 20 63 68 61 6e 67 65 73 20 74 6f  ional changes to
fa80: 20 74 68 65 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a   the code.</li>.
fa90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
faa0: 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c  ne 19} {.<li>Col
fab0: 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 55 50 44  umn names in UPD
fac0: 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73 20 77  ATE statements w
fad0: 65 72 65 20 63 61 73 65 20 73 65 6e 73 69 74 69  ere case sensiti
fae0: 76 65 2e 0a 20 20 20 20 54 68 69 73 20 6d 69 73  ve..    This mis
faf0: 74 61 6b 65 20 68 61 73 20 6e 6f 77 20 62 65 65  take has now bee
fb00: 6e 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  n fixed.</li>.}.
fb10: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
fb20: 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64   16} {.<li>Added
fb30: 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61 74 65   the concatenate
fb40: 20 73 74 72 69 6e 67 20 6f 70 65 72 61 74 6f 72   string operator
fb50: 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68   (||)</li>.}..ch
fb60: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 32  ng {2000 June 12
fb70: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
fb80: 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f  e fcnt() functio
fb90: 6e 20 74 6f 20 74 68 65 20 53 51 4c 20 69 6e 74  n to the SQL int
fba0: 65 72 70 72 65 74 65 72 2e 20 20 54 68 65 20 66  erpreter.  The f
fbb0: 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e 0a 20  cnt() function. 
fbc0: 20 20 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e     returns the n
fbd0: 75 6d 62 65 72 20 6f 66 20 64 61 74 61 62 61 73  umber of databas
fbe0: 65 20 22 46 65 74 63 68 22 20 6f 70 65 72 61 74  e "Fetch" operat
fbf0: 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65 20 6f  ions that have o
fc00: 63 63 75 72 72 65 64 2e 0a 20 20 20 20 54 68 69  ccurred..    Thi
fc10: 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 64 65  s function is de
fc20: 73 69 67 6e 65 64 20 66 6f 72 20 75 73 65 20 69  signed for use i
fc30: 6e 20 74 65 73 74 20 73 63 72 69 70 74 73 20 74  n test scripts t
fc40: 6f 20 76 65 72 69 66 79 20 74 68 61 74 0a 20 20  o verify that.  
fc50: 20 20 71 75 65 72 69 65 73 20 61 72 65 20 65 66    queries are ef
fc60: 66 69 63 69 65 6e 74 20 61 6e 64 20 61 70 70 72  ficient and appr
fc70: 6f 70 72 69 61 74 65 6c 79 20 6f 70 74 69 6d 69  opriately optimi
fc80: 7a 65 64 2e 20 20 46 63 6e 74 28 29 20 68 61 73  zed.  Fcnt() has
fc90: 20 6e 6f 20 6f 74 68 65 72 0a 20 20 20 20 75 73   no other.    us
fca0: 65 66 75 6c 20 70 75 72 70 6f 73 65 2c 20 61 73  eful purpose, as
fcb0: 20 66 61 72 20 61 73 20 49 20 6b 6e 6f 77 2e 3c   far as I know.<
fcc0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
fcd0: 20 62 75 6e 63 68 20 6d 6f 72 65 20 74 65 73 74   bunch more test
fce0: 73 20 74 68 61 74 20 74 61 6b 65 20 61 64 76 61  s that take adva
fcf0: 6e 74 61 67 65 20 6f 66 20 74 68 65 20 6e 65 77  ntage of the new
fd00: 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e   fcnt() function
fd10: 2e 0a 20 20 20 20 54 68 65 20 6e 65 77 20 74 65  ..    The new te
fd20: 73 74 73 20 64 69 64 20 6e 6f 74 20 75 6e 63 6f  sts did not unco
fd30: 76 65 72 20 61 6e 79 20 6e 65 77 20 70 72 6f 62  ver any new prob
fd40: 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  lems.</li>.}..ch
fd50: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 38 7d  ng {2000 June 8}
fd60: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 74   {.<li>Added lot
fd70: 73 20 6f 66 20 6e 65 77 20 74 65 73 74 20 63 61  s of new test ca
fd80: 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ses</li>.<li>Fix
fd90: 20 61 20 66 65 77 20 62 75 67 73 20 64 69 73 63   a few bugs disc
fda0: 6f 76 65 72 65 64 20 77 68 69 6c 65 20 61 64 64  overed while add
fdb0: 69 6e 67 20 74 65 73 74 20 63 61 73 65 73 3c 2f  ing test cases</
fdc0: 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69 6e 20 61 64  li>.<li>Begin ad
fdd0: 64 69 6e 67 20 6c 6f 74 73 20 6f 66 20 6e 65 77  ding lots of new
fde0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f   documentation</
fdf0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
fe00: 30 20 4a 75 6e 65 20 36 7d 20 7b 0a 3c 6c 69 3e  0 June 6} {.<li>
fe10: 41 64 64 65 64 20 63 6f 6d 70 6f 75 6e 64 20 73  Added compound s
fe20: 65 6c 65 63 74 20 6f 70 65 72 61 74 6f 72 73 3a  elect operators:
fe30: 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c 20 3c   <B>UNION</b>, <
fe40: 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 42 3e 2c  b>UNION ALL</B>,
fe50: 0a 3c 62 3e 49 4e 54 45 52 53 45 43 54 3c 2f 62  .<b>INTERSECT</b
fe60: 3e 2c 20 61 6e 64 20 3c 62 3e 45 58 43 45 50 54  >, and <b>EXCEPT
fe70: 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  </b></li>.<li>Ad
fe80: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
fe90: 75 73 69 6e 67 20 3c 62 3e 28 53 45 4c 45 43 54  using <b>(SELECT
fea0: 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69 74 68 69 6e   ...)</b> within
feb0: 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f 6c 69   expressions</li
fec0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
fed0: 6f 72 74 20 66 6f 72 20 3c 62 3e 49 4e 3c 2f 62  ort for <b>IN</b
fee0: 3e 20 61 6e 64 20 3c 62 3e 42 45 54 57 45 45 4e  > and <b>BETWEEN
fef0: 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 73 3c 2f  </b> operators</
ff00: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
ff10: 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 47 52 4f  pport for <b>GRO
ff20: 55 50 20 42 59 3c 2f 62 3e 20 61 6e 64 20 3c 62  UP BY</b> and <b
ff30: 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c 2f 6c 69 3e  >HAVING</b></li>
ff40: 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61 6c 75 65 73  .<li>NULL values
ff50: 20 61 72 65 20 6e 6f 77 20 72 65 70 6f 72 74 65   are now reporte
ff60: 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63  d to the callbac
ff70: 6b 20 61 73 20 61 20 4e 55 4c 4c 20 70 6f 69 6e  k as a NULL poin
ff80: 74 65 72 0a 20 20 20 20 72 61 74 68 65 72 20 74  ter.    rather t
ff90: 68 61 6e 20 61 6e 20 65 6d 70 74 79 20 73 74 72  han an empty str
ffa0: 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ing.</li>.}..chn
ffb0: 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 33 7d 20  g {2000 June 3} 
ffc0: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  {.<li>Added supp
ffd0: 6f 72 74 20 66 6f 72 20 64 65 66 61 75 6c 74 20  ort for default 
ffe0: 76 61 6c 75 65 73 20 6f 6e 20 63 6f 6c 75 6d 6e  values on column
fff0: 73 20 6f 66 20 61 20 74 61 62 6c 65 2e 3c 2f 6c  s of a table.</l
10000 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20  i>.<li>Improved 
10010 74 65 73 74 20 63 6f 76 65 72 61 67 65 2e 20 20  test coverage.  
10020 46 69 78 65 64 20 61 20 66 65 77 20 6f 62 73 63  Fixed a few obsc
10030 75 72 65 20 62 75 67 73 20 66 6f 75 6e 64 20 62  ure bugs found b
10040 79 20 74 68 65 0a 69 6d 70 72 6f 76 65 64 20 74  y the.improved t
10050 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ests.</li>.}..ch
10060 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 32 7d  ng {2000 June 2}
10070 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64 61 74 61 62   {.<li>All datab
10080 61 73 65 20 66 69 6c 65 73 20 74 6f 20 62 65 20  ase files to be 
10090 6d 6f 64 69 66 69 65 64 20 62 79 20 61 6e 20 55  modified by an U
100a0 50 44 41 54 45 2c 20 49 4e 53 45 52 54 20 6f 72  PDATE, INSERT or
100b0 20 44 45 4c 45 54 45 20 61 72 65 20 0a 6e 6f 77   DELETE are .now
100c0 20 6c 6f 63 6b 65 64 20 62 65 66 6f 72 65 20 61   locked before a
100d0 6e 79 20 63 68 61 6e 67 65 73 20 61 72 65 20 6d  ny changes are m
100e0 61 64 65 20 74 6f 20 61 6e 79 20 66 69 6c 65 73  ade to any files
100f0 2e 20 20 0a 54 68 69 73 20 6d 61 6b 65 73 20 69  .  .This makes i
10100 74 20 73 61 66 65 20 28 49 20 74 68 69 6e 6b 29  t safe (I think)
10110 20 74 6f 20 61 63 63 65 73 73 0a 74 68 65 20 73   to access.the s
10120 61 6d 65 20 64 61 74 61 62 61 73 65 20 73 69 6d  ame database sim
10130 75 6c 74 61 6e 65 6f 75 73 6c 79 20 66 72 6f 6d  ultaneously from
10140 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 63 65 73   multiple proces
10150 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ses.</li>.<li>Th
10160 65 20 63 6f 64 65 20 61 70 70 65 61 72 73 20 73  e code appears s
10170 74 61 62 6c 65 20 73 6f 20 77 65 20 61 72 65 20  table so we are 
10180 6e 6f 77 20 63 61 6c 6c 69 6e 67 20 69 74 20 22  now calling it "
10190 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  beta".</li>.}..c
101a0 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31  hng {2000 June 1
101b0 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 73  } {.<li>Better s
101c0 75 70 70 6f 72 74 20 66 6f 72 20 66 69 6c 65 20  upport for file 
101d0 6c 6f 63 6b 69 6e 67 20 73 6f 20 74 68 61 74 20  locking so that 
101e0 74 77 6f 20 6f 72 20 6d 6f 72 65 20 70 72 6f 63  two or more proc
101f0 65 73 73 65 73 20 0a 28 6f 72 20 74 68 72 65 61  esses .(or threa
10200 64 73 29 0a 63 61 6e 20 61 63 63 65 73 73 20 74  ds).can access t
10210 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73 65  he same database
10220 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 2e   simultaneously.
10230 20 20 4d 6f 72 65 20 77 6f 72 6b 20 6e 65 65 64    More work need
10240 65 64 20 69 6e 0a 74 68 69 73 20 61 72 65 61 2c  ed in.this area,
10250 20 74 68 6f 75 67 68 2e 3c 2f 6c 69 3e 0a 7d 0a   though.</li>.}.
10260 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20  .chng {2000 May 
10270 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  31} {.<li>Added 
10280 73 75 70 70 6f 72 74 20 66 6f 72 20 61 67 67 72  support for aggr
10290 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e 73 20  egate functions 
102a0 28 45 78 3a 20 3c 62 3e 43 4f 55 4e 54 28 2a 29  (Ex: <b>COUNT(*)
102b0 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e 28 2e 2e 2e  </b>, <b>MIN(...
102c0 29 3c 2f 62 3e 29 0a 74 6f 20 74 68 65 20 53 45  )</b>).to the SE
102d0 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
102e0 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
102f0 75 70 70 6f 72 74 20 66 6f 72 20 3c 42 3e 53 45  upport for <B>SE
10300 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2e 2e  LECT DISTINCT ..
10310 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  .</B></li>.}..ch
10320 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33 30 7d  ng {2000 May 30}
10330 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
10340 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e 20 6f 70 65   <b>LIKE</b> ope
10350 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rator.</li>.<li>
10360 41 64 64 65 64 20 61 20 3c 62 3e 47 4c 4f 42 3c  Added a <b>GLOB<
10370 2f 62 3e 20 6f 70 65 72 61 74 6f 72 3a 20 73 69  /b> operator: si
10380 6d 69 6c 61 72 20 74 6f 20 3c 42 3e 4c 49 4b 45  milar to <B>LIKE
10390 3c 2f 42 3e 20 0a 62 75 74 20 69 74 20 75 73 65  </B> .but it use
103a0 73 20 55 6e 69 78 20 73 68 65 6c 6c 20 67 6c 6f  s Unix shell glo
103b0 62 62 69 6e 67 20 77 69 6c 64 63 61 72 64 73 20  bbing wildcards 
103c0 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 27  instead of the '
103d0 25 27 20 0a 61 6e 64 20 27 5f 27 20 77 69 6c 64  %' .and '_' wild
103e0 63 61 72 64 73 20 6f 66 20 53 51 4c 2e 3c 2f 6c  cards of SQL.</l
103f0 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
10400 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e 20 63 6f 6d   <B>COPY</b> com
10410 6d 61 6e 64 20 70 61 74 74 65 72 6e 65 64 20 61  mand patterned a
10420 66 74 65 72 20 0a 3c 61 20 68 72 65 66 3d 22 68  fter .<a href="h
10430 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74 67 72  ttp://www.postgr
10440 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f 73 74 67  esql.org/">Postg
10450 72 65 53 51 4c 3c 2f 61 3e 20 73 6f 20 74 68 61  reSQL</a> so tha
10460 74 20 53 51 4c 69 74 65 0a 63 61 6e 20 6e 6f 77  t SQLite.can now
10470 20 72 65 61 64 20 74 68 65 20 6f 75 74 70 75 74   read the output
10480 20 6f 66 20 74 68 65 20 3c 62 3e 70 67 5f 64 75   of the <b>pg_du
10490 6d 70 3c 2f 62 3e 20 64 61 74 61 62 61 73 65 20  mp</b> database 
104a0 64 75 6d 70 20 75 74 69 6c 69 74 79 0a 6f 66 20  dump utility.of 
104b0 50 6f 73 74 67 72 65 53 51 4c 2e 3c 2f 6c 69 3e  PostgreSQL.</li>
104c0 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c 42 3e  .<li>Added a <B>
104d0 56 41 43 55 55 4d 3c 2f 42 3e 20 63 6f 6d 6d 61  VACUUM</B> comma
104e0 6e 64 20 74 68 61 74 20 74 68 61 74 20 63 61 6c  nd that that cal
104f0 6c 73 20 74 68 65 20 0a 3c 62 3e 67 64 62 6d 5f  ls the .<b>gdbm_
10500 72 65 6f 72 67 61 6e 69 7a 65 28 29 3c 2f 62 3e  reorganize()</b>
10510 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74 68 65   function on the
10520 20 75 6e 64 65 72 6c 79 69 6e 67 20 64 61 74 61   underlying data
10530 62 61 73 65 0a 66 69 6c 65 73 2e 3c 2f 6c 69 3e  base.files.</li>
10540 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e 79 2c 20 6d  .<li>And many, m
10550 61 6e 79 20 62 75 67 20 66 69 78 65 73 2e 2e 2e  any bug fixes...
10560 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
10570 30 30 30 20 4d 61 79 20 32 39 7d 20 7b 0a 3c 6c  000 May 29} {.<l
10580 69 3e 49 6e 69 74 69 61 6c 20 50 75 62 6c 69 63  i>Initial Public
10590 20 52 65 6c 65 61 73 65 20 6f 66 20 41 6c 70 68   Release of Alph
105a0 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a 0a 70  a code</li>.}..p
105b0 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a 7d 0a 66 6f  uts {.</DL>.}.fo
105c0 6f 74 65 72 20 7b 24 49 64 3a 7d 0a              oter {$Id:}.