/ Hex Artifact Content
Login

Artifact f3266a359d7b11792d5702fe93d6098a4790aff0:


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 36 20 4a 61  }..chng {2006 Ja
0250: 6e 75 61 72 79 20 33 30 20 28 33 2e 33 2e 33 20  nuary 30 (3.3.3 
0260: 73 74 61 62 6c 65 29 7d 20 7b 0a 3c 6c 69 3e 4d  stable)} {.<li>M
0270: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 6f  inor bug fixes o
0280: 6e 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nly.</li>.}..chn
0290: 67 20 7b 32 30 30 36 20 4a 61 6e 75 61 72 79 20  g {2006 January 
02a0: 32 34 20 28 33 2e 33 2e 32 20 62 65 74 61 29 7d  24 (3.3.2 beta)}
02b0: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73   {.<li>Bug fixes
02c0: 20 61 6e 64 20 73 70 65 65 64 20 69 6d 70 72 6f   and speed impro
02d0: 76 65 6d 65 6e 74 73 2e 20 20 49 6d 70 72 6f 76  vements.  Improv
02e0: 65 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65  ed test coverage
02f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
0300: 65 73 20 74 6f 20 74 68 65 20 4f 53 2d 6c 61 79  es to the OS-lay
0310: 65 72 20 69 6e 74 65 72 66 61 63 65 3a 20 6d 75  er interface: mu
0320: 74 65 78 65 73 20 6d 75 73 74 20 6e 6f 77 20 62  texes must now b
0330: 65 20 72 65 63 75 72 73 69 76 65 2e 3c 2f 6c 69  e recursive.</li
0340: 3e 0a 3c 6c 69 3e 44 69 73 63 6f 6e 74 69 6e 75  >.<li>Discontinu
0350: 65 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 72  e the use of thr
0360: 65 61 64 2d 73 70 65 63 69 66 69 63 20 64 61 74  ead-specific dat
0370: 61 20 66 6f 72 20 6f 75 74 2d 6f 66 2d 6d 65 6d  a for out-of-mem
0380: 6f 72 79 0a 65 78 63 65 70 74 69 6f 6e 20 68 61  ory.exception ha
0390: 6e 64 6c 69 6e 67 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ndling</li>.}..c
03a0: 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75 61 72  hng {2006 Januar
03b0: 79 20 31 36 20 28 33 2e 33 2e 31 20 61 6c 70 68  y 16 (3.3.1 alph
03c0: 61 29 7d 20 7b 0a 3c 6c 69 3e 43 6f 75 6e 74 6c  a)} {.<li>Countl
03d0: 65 73 73 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  ess bug fixes</l
03e0: 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70  i>.<li>Speed imp
03f0: 72 6f 76 65 6d 65 6e 74 73 3c 2f 6c 69 3e 0a 3c  rovements</li>.<
0400: 6c 69 3e 44 61 74 61 62 61 73 65 20 63 6f 6e 6e  li>Database conn
0410: 65 63 74 69 6f 6e 73 20 63 61 6e 20 6e 6f 77 20  ections can now 
0420: 62 65 20 75 73 65 64 20 62 79 20 6d 75 6c 74 69  be used by multi
0430: 70 6c 65 20 74 68 72 65 61 64 73 2c 20 6e 6f 74  ple threads, not
0440: 20 6a 75 73 74 0a 74 68 65 20 74 68 72 65 61 64   just.the thread
0450: 20 69 6e 20 77 68 69 63 68 20 74 68 65 79 20 77   in which they w
0460: 65 72 65 20 63 72 65 61 74 65 64 2e 3c 2f 6c 69  ere created.</li
0470: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20  >.}..chng {2006 
0480: 4a 61 6e 75 61 72 79 20 31 30 20 28 33 2e 33 2e  January 10 (3.3.
0490: 30 20 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e  0 alpha)} {.<li>
04a0: 43 48 45 43 4b 20 63 6f 6e 73 74 72 61 69 6e 74  CHECK constraint
04b0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 46 20 45 58  s</li>.<li>IF EX
04c0: 49 53 54 53 20 61 6e 64 20 49 46 20 4e 4f 54 20  ISTS and IF NOT 
04d0: 45 58 49 53 54 53 20 63 6c 61 75 73 65 73 20 6f  EXISTS clauses o
04e0: 6e 20 43 52 45 41 54 45 2f 44 52 4f 50 20 54 41  n CREATE/DROP TA
04f0: 42 4c 45 2f 49 4e 44 45 58 2e 3c 2f 6c 69 3e 0a  BLE/INDEX.</li>.
0500: 3c 6c 69 3e 44 45 53 43 20 69 6e 64 69 63 65 73  <li>DESC indices
0510: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65  </li>.<li>More e
0520: 66 66 69 63 69 65 6e 74 20 65 6e 63 6f 64 69 6e  fficient encodin
0530: 67 20 6f 66 20 62 6f 6f 6c 65 61 6e 20 76 61 6c  g of boolean val
0540: 75 65 73 20 72 65 73 75 6c 74 69 6e 67 20 69 6e  ues resulting in
0550: 20 73 6d 61 6c 6c 65 72 20 64 61 74 61 62 61 73   smaller databas
0560: 65 0a 66 69 6c 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  e.files</li>.<li
0570: 3e 4d 6f 72 65 20 61 67 67 72 65 73 73 69 76 65  >More aggressive
0580: 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 46 4c 4f   SQLITE_OMIT_FLO
0590: 41 54 49 4e 47 5f 50 4f 49 4e 54 3c 2f 6c 69 3e  ATING_POINT</li>
05a0: 0a 3c 6c 69 3e 53 65 70 61 72 61 74 65 20 49 4e  .<li>Separate IN
05b0: 54 45 47 45 52 20 61 6e 64 20 52 45 41 4c 20 61  TEGER and REAL a
05c0: 66 66 69 6e 69 74 79 3c 2f 6c 69 3e 0a 3c 6c 69  ffinity</li>.<li
05d0: 3e 41 64 64 65 64 20 61 20 76 69 72 74 75 61 6c  >Added a virtual
05e0: 20 66 75 6e 63 74 69 6f 6e 20 6c 61 79 65 72 20   function layer 
05f0: 66 6f 72 20 74 68 65 20 4f 53 20 69 6e 74 65 72  for the OS inter
0600: 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 22 65  face</li>.<li>"e
0610: 78 69 73 74 73 22 20 6d 65 74 68 6f 64 20 61 64  xists" method ad
0620: 64 65 64 20 74 6f 20 74 68 65 20 54 43 4c 20 69  ded to the TCL i
0630: 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c  nterface</li>.<l
0640: 69 3e 49 6d 70 72 6f 76 65 64 20 72 65 73 70 6f  i>Improved respo
0650: 6e 73 65 20 74 6f 20 6f 75 74 2d 6f 66 2d 6d 65  nse to out-of-me
0660: 6d 6f 72 79 20 65 72 72 6f 72 73 3c 2f 6c 69 3e  mory errors</li>
0670: 0a 3c 6c 69 3e 44 61 74 61 62 61 73 65 20 63 61  .<li>Database ca
0680: 63 68 65 20 63 61 6e 20 62 65 20 6f 70 74 69 6f  che can be optio
0690: 6e 61 6c 6c 79 20 73 68 61 72 65 64 20 62 65 74  nally shared bet
06a0: 77 65 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 73  ween connections
06b0: 0a 69 6e 20 74 68 65 20 73 61 6d 65 20 74 68 72  .in the same thr
06c0: 65 61 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 70 74  ead</li>.<li>Opt
06d0: 69 6f 6e 61 6c 20 52 45 41 44 20 55 4e 43 4f 4d  ional READ UNCOM
06e0: 4d 49 54 54 45 44 20 69 73 6f 6c 61 74 69 6f 6e  MITTED isolation
06f0: 20 28 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65   (instead of the
0700: 20 64 65 66 61 75 6c 74 0a 69 73 6f 6c 61 74 69   default.isolati
0710: 6f 6e 20 6c 65 76 65 6c 20 6f 66 20 53 45 52 49  on level of SERI
0720: 41 4c 49 5a 41 42 4c 45 29 20 61 6e 64 20 74 61  ALIZABLE) and ta
0730: 62 6c 65 20 6c 65 76 65 6c 20 6c 6f 63 6b 69 6e  ble level lockin
0740: 67 20 77 68 65 6e 0a 64 61 74 61 62 61 73 65 20  g when.database 
0750: 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 73 68 61 72  connections shar
0760: 65 20 61 20 63 6f 6d 6d 6f 6e 20 63 61 63 68 65  e a common cache
0770: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
0780: 32 30 30 35 20 44 65 63 65 6d 62 65 72 20 31 39  2005 December 19
0790: 20 28 33 2e 32 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.8)} {.<li>
07a0: 46 69 78 20 61 6e 20 6f 62 73 63 75 72 65 20 62  Fix an obscure b
07b0: 75 67 20 74 68 61 74 20 63 61 6e 20 63 61 75 73  ug that can caus
07c0: 65 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  e database corru
07d0: 70 74 69 6f 6e 20 75 6e 64 65 72 20 74 68 65 0a  ption under the.
07e0: 66 6f 6c 6c 6f 77 69 6e 67 20 75 6e 75 73 75 61  following unusua
07f0: 6c 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 3a  l circumstances:
0800: 20 41 20 6c 61 72 67 65 20 49 4e 53 45 52 54 20   A large INSERT 
0810: 6f 72 20 55 50 44 41 54 45 20 73 74 61 74 65 6d  or UPDATE statem
0820: 65 6e 74 20 77 68 69 63 68 20 0a 69 73 20 70 61  ent which .is pa
0830: 72 74 20 6f 66 20 61 6e 20 65 76 65 6e 20 6c 61  rt of an even la
0840: 72 67 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e  rger transaction
0850: 20 66 61 69 6c 73 20 64 75 65 20 74 6f 20 61 20   fails due to a 
0860: 75 6e 69 71 75 65 6e 65 73 73 20 63 6f 6e 74 72  uniqueness contr
0870: 61 69 6e 74 0a 62 75 74 20 74 68 65 20 63 6f 6e  aint.but the con
0880: 74 61 69 6e 69 6e 67 20 74 72 61 6e 73 61 63 74  taining transact
0890: 69 6f 6e 20 63 6f 6d 6d 69 74 73 2e 3c 2f 6c 69  ion commits.</li
08a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
08b0: 44 65 63 65 6d 62 65 72 20 31 39 20 28 32 2e 38  December 19 (2.8
08c0: 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .17)} {.<li>Fix 
08d0: 61 6e 20 6f 62 73 63 75 72 65 20 62 75 67 20 74  an obscure bug t
08e0: 68 61 74 20 63 61 6e 20 63 61 75 73 65 20 64 61  hat can cause da
08f0: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
0900: 6e 20 75 6e 64 65 72 20 74 68 65 0a 66 6f 6c 6c  n under the.foll
0910: 6f 77 69 6e 67 20 75 6e 75 73 75 61 6c 20 63 69  owing unusual ci
0920: 72 63 75 6d 73 74 61 6e 63 65 73 3a 20 41 20 6c  rcumstances: A l
0930: 61 72 67 65 20 49 4e 53 45 52 54 20 6f 72 20 55  arge INSERT or U
0940: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20  PDATE statement 
0950: 77 68 69 63 68 20 0a 69 73 20 70 61 72 74 20 6f  which .is part o
0960: 66 20 61 6e 20 65 76 65 6e 20 6c 61 72 67 65 72  f an even larger
0970: 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 66 61 69   transaction fai
0980: 6c 73 20 64 75 65 20 74 6f 20 61 20 75 6e 69 71  ls due to a uniq
0990: 75 65 6e 65 73 73 20 63 6f 6e 74 72 61 69 6e 74  ueness contraint
09a0: 0a 62 75 74 20 74 68 65 20 63 6f 6e 74 61 69 6e  .but the contain
09b0: 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 20  ing transaction 
09c0: 63 6f 6d 6d 69 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a  commits.</li>.}.
09d0: 0a 63 68 6e 67 20 7b 32 30 30 35 20 53 65 70 74  .chng {2005 Sept
09e0: 65 6d 62 65 72 20 32 34 20 28 33 2e 32 2e 37 29  ember 24 (3.2.7)
09f0: 7d 20 7b 0a 3c 6c 69 3e 47 52 4f 55 50 20 42 59  } {.<li>GROUP BY
0a00: 20 6e 6f 77 20 63 6f 6e 73 69 64 65 72 73 20 4e   now considers N
0a10: 55 4c 4c 73 20 74 6f 20 62 65 20 65 71 75 61 6c  ULLs to be equal
0a20: 20 61 67 61 69 6e 2c 20 61 73 20 69 74 20 73 68   again, as it sh
0a30: 6f 75 6c 64 0a 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  ould.</li>.<li>N
0a40: 6f 77 20 63 6f 6d 70 69 6c 65 73 20 6f 6e 20 53  ow compiles on S
0a50: 6f 6c 61 72 69 73 20 61 6e 64 20 4f 70 65 6e 42  olaris and OpenB
0a60: 53 44 20 61 6e 64 20 6f 74 68 65 72 20 55 6e 69  SD and other Uni
0a70: 78 20 76 61 72 69 61 6e 74 73 0a 74 68 61 74 20  x variants.that 
0a80: 6c 61 63 6b 20 74 68 65 20 66 64 61 74 61 73 79  lack the fdatasy
0a90: 6e 63 28 29 20 66 75 6e 63 74 69 6f 6e 3c 2f 6c  nc() function</l
0aa0: 69 3e 0a 3c 6c 69 3e 4e 6f 77 20 63 6f 6d 70 69  i>.<li>Now compi
0ab0: 6c 65 73 20 6f 6e 20 4d 53 56 43 2b 2b 36 20 61  les on MSVC++6 a
0ac0: 67 61 69 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  gain</li>.<li>Fi
0ad0: 78 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20  x uninitialized 
0ae0: 76 61 72 69 61 62 6c 65 73 20 63 61 75 73 69 6e  variables causin
0af0: 67 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 73 20 66  g malfunctions f
0b00: 6f 72 20 76 61 72 69 6f 75 73 20 6f 62 73 63 75  or various obscu
0b10: 72 65 0a 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a  re.queries</li>.
0b20: 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 63 6f  <li>Correctly co
0b30: 6d 70 75 74 65 20 61 20 4c 45 46 54 20 4f 55 54  mpute a LEFT OUT
0b40: 45 52 20 4a 4f 49 4e 73 20 74 68 61 74 20 69 73  ER JOINs that is
0b50: 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 6f 6e 20   constrained on 
0b60: 74 68 65 0a 6c 65 66 74 20 74 61 62 6c 65 20 6f  the.left table o
0b70: 6e 6c 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nly</li>.}..chng
0b80: 20 7b 32 30 30 35 20 53 65 70 74 65 6d 62 65 72   {2005 September
0b90: 20 31 37 20 28 33 2e 32 2e 36 29 7d 20 7b 0a 3c   17 (3.2.6)} {.<
0ba0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
0bb0: 74 20 63 61 6e 20 63 61 75 73 65 20 64 61 74 61  t can cause data
0bc0: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
0bd0: 69 66 20 61 20 56 41 43 55 55 4d 20 28 6f 72 0a  if a VACUUM (or.
0be0: 20 20 20 20 61 75 74 6f 76 61 63 75 75 6d 29 20      autovacuum) 
0bf0: 66 61 69 6c 73 20 61 6e 64 20 69 73 20 72 6f 6c  fails and is rol
0c00: 6c 65 64 20 62 61 63 6b 20 6f 6e 20 61 20 64 61  led back on a da
0c10: 74 61 62 61 73 65 20 74 68 61 74 20 69 73 0a 20  tabase that is. 
0c20: 20 20 20 6c 61 72 67 65 72 20 74 68 61 6e 20 31     larger than 1
0c30: 47 69 42 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4b  GiB</li>.<li>LIK
0c40: 45 20 6f 70 74 69 69 7a 61 74 69 6f 6e 20 6e 6f  E optiization no
0c50: 77 20 77 6f 72 6b 73 20 66 6f 72 20 63 6f 6c 75  w works for colu
0c60: 6d 6e 73 20 77 69 74 68 20 43 4f 4c 4c 41 54 45  mns with COLLATE
0c70: 20 4e 4f 43 41 53 45 3c 2f 6c 69 3e 0a 3c 6c 69   NOCASE</li>.<li
0c80: 3e 4f 52 44 45 52 20 42 59 20 61 6e 64 20 47 52  >ORDER BY and GR
0c90: 4f 55 50 20 42 59 20 6e 6f 77 20 75 73 65 20 62  OUP BY now use b
0ca0: 6f 75 6e 64 65 64 20 6d 65 6d 6f 72 79 3c 2f 6c  ounded memory</l
0cb0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
0cc0: 70 6f 72 74 20 66 6f 72 20 43 4f 55 4e 54 28 44  port for COUNT(D
0cd0: 49 53 54 49 4e 43 54 20 65 78 70 72 29 3c 2f 6c  ISTINCT expr)</l
0ce0: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68  i>.<li>Change th
0cf0: 65 20 77 61 79 20 53 55 4d 28 29 20 68 61 6e 64  e way SUM() hand
0d00: 6c 65 73 20 4e 55 4c 4c 20 76 61 6c 75 65 73 20  les NULL values 
0d10: 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 6f 6d 70  in order to comp
0d20: 6c 79 20 77 69 74 68 0a 20 20 20 20 74 68 65 20  ly with.    the 
0d30: 53 51 4c 20 73 74 61 6e 64 61 72 64 3c 2f 6c 69  SQL standard</li
0d40: 3e 0a 3c 6c 69 3e 55 73 65 20 66 64 61 74 61 73  >.<li>Use fdatas
0d50: 79 6e 63 28 29 20 69 6e 73 74 65 61 64 20 6f 66  ync() instead of
0d60: 20 66 73 79 6e 63 28 29 20 77 68 65 72 65 20 70   fsync() where p
0d70: 6f 73 73 69 62 6c 65 20 69 6e 20 6f 72 64 65 72  ossible in order
0d80: 20 74 6f 20 73 70 65 65 64 0a 20 20 20 20 75 70   to speed.    up
0d90: 20 63 6f 6d 6d 69 74 73 20 73 6c 69 67 68 74 6c   commits slightl
0da0: 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 6f  y</li>.<li>Use o
0db0: 66 20 74 68 65 20 43 52 4f 53 53 20 6b 65 79 77  f the CROSS keyw
0dc0: 6f 72 64 20 69 6e 20 61 20 6a 6f 69 6e 20 74 75  ord in a join tu
0dd0: 72 6e 73 20 6f 66 66 20 74 68 65 20 74 61 62 6c  rns off the tabl
0de0: 65 20 72 65 6f 72 64 65 72 69 6e 67 0a 20 20 20  e reordering.   
0df0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f 6c   optimization</l
0e00: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
0e10: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 61 6e   experimental an
0e20: 64 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20 45  d undocumented E
0e30: 58 50 4c 41 49 4e 20 51 55 45 52 59 20 50 4c 41  XPLAIN QUERY PLA
0e40: 4e 20 63 61 70 61 62 69 6c 69 74 79 3c 2f 6c 69  N capability</li
0e50: 3e 0a 3c 6c 69 3e 55 73 65 20 74 68 65 20 75 6e  >.<li>Use the un
0e60: 69 63 6f 64 65 20 41 50 49 20 69 6e 20 77 69 6e  icode API in win
0e70: 64 6f 77 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  dows</li>.}..chn
0e80: 67 20 7b 32 30 30 35 20 41 75 67 75 73 74 20 32  g {2005 August 2
0e90: 37 20 28 33 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69  7 (3.2.5)} {.<li
0ea0: 3e 46 69 78 20 61 20 62 75 67 20 65 66 66 65 63  >Fix a bug effec
0eb0: 74 69 6e 67 20 44 45 4c 45 54 45 20 61 6e 64 20  ting DELETE and 
0ec0: 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74  UPDATE statement
0ed0: 73 20 74 68 61 74 20 63 68 61 6e 67 65 64 0a 6d  s that changed.m
0ee0: 6f 72 65 20 74 68 61 6e 20 34 30 39 36 30 20 72  ore than 40960 r
0ef0: 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68  ows.</li>.<li>Ch
0f00: 61 6e 67 65 20 74 68 65 20 6d 61 6b 65 66 69 6c  ange the makefil
0f10: 65 20 73 6f 20 74 68 61 74 20 69 74 20 6e 6f 20  e so that it no 
0f20: 6c 6f 6e 67 65 72 20 72 65 71 75 69 72 65 73 20  longer requires 
0f30: 47 4e 55 6d 61 6b 65 20 65 78 74 65 6e 73 69 6f  GNUmake extensio
0f40: 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  ns</li>.<li>Fix 
0f50: 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 74 68 72  the --enable-thr
0f60: 65 61 64 73 61 66 65 20 6f 70 74 69 6f 6e 20 6f  eadsafe option o
0f70: 6e 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65 20  n the configure 
0f80: 73 63 72 69 70 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e  script</li>.<li>
0f90: 46 69 78 20 61 20 63 6f 64 65 20 67 65 6e 65 72  Fix a code gener
0fa0: 61 74 6f 72 20 62 75 67 20 74 68 61 74 20 6f 63  ator bug that oc
0fb0: 63 75 72 73 20 77 68 65 6e 20 74 68 65 20 6c 65  curs when the le
0fc0: 66 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66 20  ft-hand side of 
0fd0: 61 6e 20 49 4e 0a 6f 70 65 72 61 74 6f 72 20 69  an IN.operator i
0fe0: 73 20 63 6f 6e 73 74 61 6e 74 20 61 6e 64 20 74  s constant and t
0ff0: 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69  he right-hand si
1000: 64 65 20 69 73 20 61 20 53 45 4c 45 43 54 20 73  de is a SELECT s
1010: 74 61 74 65 6d 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c  tatement</li>.<l
1020: 69 3e 54 68 65 20 50 52 41 47 4d 41 20 73 79 6e  i>The PRAGMA syn
1030: 63 68 72 6f 6e 6f 75 73 3d 6f 66 66 20 73 74 61  chronous=off sta
1040: 74 65 6d 65 6e 74 20 6e 6f 77 20 64 69 73 61 62  tement now disab
1050: 6c 65 73 20 73 79 6e 63 69 6e 67 20 6f 66 20 74  les syncing of t
1060: 68 65 0a 6d 61 73 74 65 72 20 6a 6f 75 72 6e 61  he.master journa
1070: 6c 20 66 69 6c 65 20 69 6e 20 61 64 64 69 74 69  l file in additi
1080: 6f 6e 20 74 6f 20 74 68 65 20 6e 6f 72 6d 61 6c  on to the normal
1090: 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61   rollback journa
10a0: 6c 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ls</li>.}..chng 
10b0: 7b 32 30 30 35 20 41 75 67 75 73 74 20 32 34 20  {2005 August 24 
10c0: 28 33 2e 32 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46  (3.2.4)} {.<li>F
10d0: 69 78 20 61 20 62 75 67 20 69 6e 74 72 6f 64 75  ix a bug introdu
10e0: 63 65 64 20 69 6e 20 74 68 65 20 70 72 65 76 69  ced in the previ
10f0: 6f 75 73 20 72 65 6c 65 61 73 65 0a 74 68 61 74  ous release.that
1100: 20 63 61 6e 20 63 61 75 73 65 20 61 20 73 65 67   can cause a seg
1110: 66 61 75 6c 74 20 77 68 69 6c 65 20 67 65 6e 65  fault while gene
1120: 72 61 74 69 6e 67 20 63 6f 64 65 0a 66 6f 72 20  rating code.for 
1130: 63 6f 6d 70 6c 65 78 20 57 48 45 52 45 20 63 6c  complex WHERE cl
1140: 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  auses.</li>.<li>
1150: 41 6c 6c 6f 77 20 66 6c 6f 61 74 69 6e 67 20 70  Allow floating p
1160: 6f 69 6e 74 20 6c 69 74 65 72 61 6c 73 20 74 6f  oint literals to
1170: 20 62 65 67 69 6e 20 6f 72 20 65 6e 64 20 77 69   begin or end wi
1180: 74 68 20 61 20 64 65 63 69 6d 61 6c 20 70 6f 69  th a decimal poi
1190: 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nt.</li>.}..chng
11a0: 20 7b 32 30 30 35 20 41 75 67 75 73 74 20 32 31   {2005 August 21
11b0: 20 28 33 2e 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.3)} {.<li>
11c0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
11d0: 72 20 74 68 65 20 43 41 53 54 20 6f 70 65 72 61  r the CAST opera
11e0: 74 6f 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 63 6c  tor</li>.<li>Tcl
11f0: 20 69 6e 74 65 72 66 61 63 65 20 61 6c 6c 6f 77   interface allow
1200: 73 20 42 4c 4f 42 20 76 61 6c 75 65 73 20 74 6f  s BLOB values to
1210: 20 62 65 20 74 72 61 6e 73 66 65 72 72 65 64 20   be transferred 
1220: 74 6f 20 75 73 65 72 2d 64 65 66 69 6e 65 64 0a  to user-defined.
1230: 66 75 6e 63 74 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c  functions</li>.<
1240: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22 74 72  li>Added the "tr
1250: 61 6e 73 61 63 74 69 6f 6e 22 20 6d 65 74 68 6f  ansaction" metho
1260: 64 20 74 6f 20 74 68 65 20 54 63 6c 20 69 6e 74  d to the Tcl int
1270: 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  erface</li>.<li>
1280: 41 6c 6c 6f 77 20 74 68 65 20 44 45 46 41 55 4c  Allow the DEFAUL
1290: 54 20 76 61 6c 75 65 20 6f 66 20 61 20 63 6f 6c  T value of a col
12a0: 75 6d 6e 20 74 6f 20 63 61 6c 6c 20 66 75 6e 63  umn to call func
12b0: 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65 20  tions that have 
12c0: 63 6f 6e 73 74 61 6e 74 0a 6f 70 65 72 61 6e 64  constant.operand
12d0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
12e0: 20 74 68 65 20 41 4e 41 4c 59 5a 45 20 63 6f 6d   the ANALYZE com
12f0: 6d 61 6e 64 20 66 6f 72 20 67 61 74 68 65 72 69  mand for gatheri
1300: 6e 67 20 73 74 61 74 69 73 74 69 63 73 20 6f 6e  ng statistics on
1310: 20 69 6e 64 69 63 65 73 20 61 6e 64 0a 75 73 69   indices and.usi
1320: 6e 67 20 74 68 6f 73 65 20 73 74 61 74 69 73 74  ng those statist
1330: 69 63 73 20 77 68 65 6e 20 70 69 63 6b 69 6e 67  ics when picking
1340: 20 61 6e 20 69 6e 64 65 78 20 69 6e 20 74 68 65   an index in the
1350: 20 6f 70 74 69 6d 69 7a 65 72 3c 2f 6c 69 3e 0a   optimizer</li>.
1360: 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65 20 6c  <li>Remove the l
1370: 69 6d 69 74 20 28 66 6f 72 6d 65 72 6c 79 20 31  imit (formerly 1
1380: 30 30 29 20 6f 6e 20 74 68 65 20 6e 75 6d 62 65  00) on the numbe
1390: 72 20 6f 66 20 74 65 72 6d 73 20 69 6e 20 74 68  r of terms in th
13a0: 65 0a 57 48 45 52 45 20 63 6c 61 75 73 65 3c 2f  e.WHERE clause</
13b0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 72 69 67 68  li>.<li>The righ
13c0: 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66 20 74  t-hand side of t
13d0: 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 63  he IN operator c
13e0: 61 6e 20 6e 6f 77 20 62 65 20 61 20 6c 69 73 74  an now be a list
13f0: 20 6f 66 20 65 78 70 72 65 73 73 69 6f 6e 73 0a   of expressions.
1400: 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20  instead of just 
1410: 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73 74 61  a list of consta
1420: 6e 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 77  nts</li>.<li>Rew
1430: 6f 72 6b 20 74 68 65 20 6f 70 74 69 6d 69 7a 65  ork the optimize
1440: 72 20 73 6f 20 74 68 61 74 20 69 74 20 69 73 20  r so that it is 
1450: 61 62 6c 65 20 74 6f 20 6d 61 6b 65 20 62 65 74  able to make bet
1460: 74 65 72 20 75 73 65 20 6f 66 20 69 6e 64 69 63  ter use of indic
1470: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  es</li>.<li>The 
1480: 6f 72 64 65 72 20 6f 66 20 74 61 62 6c 65 73 20  order of tables 
1490: 69 6e 20 61 20 6a 6f 69 6e 20 69 73 20 61 64 6a  in a join is adj
14a0: 75 73 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61  usted automatica
14b0: 6c 6c 79 20 74 6f 20 6d 61 6b 65 0a 62 65 74 74  lly to make.bett
14c0: 65 72 20 75 73 65 20 6f 66 20 69 6e 64 69 63 65  er use of indice
14d0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 49  s</li>.<li>The I
14e0: 4e 20 6f 70 65 72 61 74 6f 72 20 69 73 20 6e 6f  N operator is no
14f0: 77 20 61 20 63 61 6e 64 69 64 61 74 65 20 66 6f  w a candidate fo
1500: 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 65  r optimization e
1510: 76 65 6e 20 69 66 20 74 68 65 20 6c 65 66 74 2d  ven if the left-
1520: 68 61 6e 64 0a 73 69 64 65 20 69 73 20 6e 6f 74  hand.side is not
1530: 20 74 68 65 20 6c 65 66 74 2d 6d 6f 73 74 20 74   the left-most t
1540: 65 72 6d 20 6f 66 20 74 68 65 20 69 6e 64 65 78  erm of the index
1550: 2e 20 20 4d 75 6c 74 69 70 6c 65 20 49 4e 20 6f  .  Multiple IN o
1560: 70 65 72 61 74 6f 72 73 20 63 61 6e 20 62 65 0a  perators can be.
1570: 75 73 65 64 20 77 69 74 68 20 74 68 65 20 73 61  used with the sa
1580: 6d 65 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c  me index.</li>.<
1590: 6c 69 3e 57 48 45 52 45 20 63 6c 61 75 73 65 20  li>WHERE clause 
15a0: 65 78 70 72 65 73 73 69 6f 6e 73 20 75 73 69 6e  expressions usin
15b0: 67 20 42 45 54 57 45 45 4e 20 61 6e 64 20 4f 52  g BETWEEN and OR
15c0: 20 61 72 65 20 6e 6f 77 20 63 61 6e 64 69 64 61   are now candida
15d0: 74 65 73 0a 66 6f 72 20 6f 70 74 69 6d 69 7a 61  tes.for optimiza
15e0: 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  tion</li>.<li>Ad
15f0: 64 65 64 20 74 68 65 20 22 63 61 73 65 5f 73 65  ded the "case_se
1600: 6e 73 69 74 69 76 65 5f 6c 69 6b 65 22 20 70 72  nsitive_like" pr
1610: 61 67 6d 61 20 61 6e 64 20 74 68 65 20 53 51 4c  agma and the SQL
1620: 49 54 45 5f 43 41 53 45 5f 53 45 4e 53 49 54 49  ITE_CASE_SENSITI
1630: 56 45 5f 4c 49 4b 45 0a 63 6f 6d 70 69 6c 65 2d  VE_LIKE.compile-
1640: 74 69 6d 65 20 6f 70 74 69 6f 6e 20 74 6f 20 73  time option to s
1650: 65 74 20 69 74 73 20 64 65 66 61 75 6c 74 20 76  et its default v
1660: 61 6c 75 65 20 74 6f 20 22 6f 6e 22 2e 3c 2f 6c  alue to "on".</l
1670: 69 3e 0a 3c 6c 69 3e 55 73 65 20 69 6e 64 69 63  i>.<li>Use indic
1680: 65 73 20 74 6f 20 68 65 6c 70 20 77 69 74 68 20  es to help with 
1690: 47 4c 4f 42 20 65 78 70 72 65 73 73 69 6f 6e 73  GLOB expressions
16a0: 20 61 6e 64 20 4c 49 4b 45 20 65 78 70 72 65 73   and LIKE expres
16b0: 73 69 6f 6e 73 20 74 6f 6f 0a 77 68 65 6e 20 74  sions too.when t
16c0: 68 65 20 63 61 73 65 5f 73 65 6e 73 69 74 69 76  he case_sensitiv
16d0: 65 5f 6c 69 6b 65 20 70 72 61 67 6d 61 20 69 73  e_like pragma is
16e0: 20 65 6e 61 62 6c 65 64 3c 2f 6c 69 3e 0a 3c 6c   enabled</li>.<l
16f0: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
1700: 66 6f 72 20 67 72 61 76 65 2d 61 63 63 65 6e 74  for grave-accent
1710: 20 71 75 6f 74 69 6e 67 20 66 6f 72 20 63 6f 6d   quoting for com
1720: 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20  patibility with 
1730: 4d 79 53 51 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  MySQL</li>.<li>I
1740: 6d 70 72 6f 76 65 64 20 74 65 73 74 20 63 6f 76  mproved test cov
1750: 65 72 61 67 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  erage</li>.<li>D
1760: 6f 7a 65 6e 73 20 6f 66 20 6d 69 6e 6f 72 20 62  ozens of minor b
1770: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
1780: 0a 63 68 6e 67 20 7b 32 30 30 35 20 4a 75 6e 65  .chng {2005 June
1790: 20 31 33 20 28 33 2e 32 2e 32 29 7d 20 7b 0a 3c   13 (3.2.2)} {.<
17a0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73 71 6c  li>Added the sql
17b0: 69 74 65 33 5f 64 62 5f 68 61 6e 64 6c 65 28 29  ite3_db_handle()
17c0: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64   API</li>.<li>Ad
17d0: 64 65 64 20 74 68 65 20 73 71 6c 69 74 65 33 5f  ded the sqlite3_
17e0: 67 65 74 5f 61 75 74 6f 63 6f 6d 6d 69 74 28 29  get_autocommit()
17f0: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64   API</li>.<li>Ad
1800: 64 65 64 20 61 20 52 45 47 45 58 50 20 6f 70 65  ded a REGEXP ope
1810: 72 61 74 6f 72 20 74 6f 20 74 68 65 20 70 61 72  rator to the par
1820: 73 65 72 2e 20 20 54 68 65 72 65 20 69 73 20 6e  ser.  There is n
1830: 6f 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 61  o function to ba
1840: 63 6b 0a 75 70 20 74 68 69 73 20 6f 70 65 72 61  ck.up this opera
1850: 74 6f 72 20 69 6e 20 74 68 65 20 73 74 61 6e 64  tor in the stand
1860: 61 72 64 20 62 75 69 6c 64 20 62 75 74 20 75 73  ard build but us
1870: 65 72 73 20 63 61 6e 20 61 64 64 20 74 68 65 69  ers can add thei
1880: 72 20 6f 77 6e 20 75 73 69 6e 67 0a 73 71 6c 69  r own using.sqli
1890: 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e 63 74  te3_create_funct
18a0: 69 6f 6e 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  ion()</li>.<li>S
18b0: 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74  peed improvement
18c0: 73 20 61 6e 64 20 6c 69 62 72 61 72 79 20 66 6f  s and library fo
18d0: 6f 74 70 72 69 6e 74 20 72 65 64 75 63 74 69 6f  otprint reductio
18e0: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ns.</li>.<li>Fix
18f0: 20 62 79 74 65 20 61 6c 69 67 6e 6d 65 6e 74 20   byte alignment 
1900: 70 72 6f 62 6c 65 6d 73 20 6f 6e 20 36 34 2d 62  problems on 64-b
1910: 69 74 20 61 72 63 68 69 74 65 63 74 75 72 65 73  it architectures
1920: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 2c  .</li>.<li>Many,
1930: 20 6d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20   many minor bug 
1940: 66 69 78 65 73 20 61 6e 64 20 64 6f 63 75 6d 65  fixes and docume
1950: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e  ntation updates.
1960: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1970: 30 30 35 20 4d 61 72 63 68 20 32 39 20 28 33 2e  005 March 29 (3.
1980: 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  2.1)} {.<li>Fix 
1990: 61 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74  a memory allocat
19a0: 69 6f 6e 20 65 72 72 6f 72 20 69 6e 20 74 68 65  ion error in the
19b0: 20 6e 65 77 20 41 44 44 20 43 4f 4c 55 4d 4e 20   new ADD COLUMN 
19c0: 63 6f 6d 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c  comment.</li>.<l
19d0: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
19e0: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a  updates</li>.}..
19f0: 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68  chng {2005 March
1a00: 20 32 31 20 28 33 2e 32 2e 30 29 7d 20 7b 0a 3c   21 (3.2.0)} {.<
1a10: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
1a20: 20 66 6f 72 20 41 4c 54 45 52 20 54 41 42 4c 45   for ALTER TABLE
1a30: 20 41 44 44 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69   ADD COLUMN.</li
1a40: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
1a50: 6f 72 74 20 66 6f 72 20 74 68 65 20 22 54 22 20  ort for the "T" 
1a60: 73 65 70 61 72 61 74 6f 72 20 69 6e 20 49 53 4f  separator in ISO
1a70: 2d 38 36 30 31 20 64 61 74 65 2f 74 69 6d 65 20  -8601 date/time 
1a80: 73 74 72 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 3c 6c  strings.</li>.<l
1a90: 69 3e 49 6d 70 72 6f 76 65 64 20 73 75 70 70 6f  i>Improved suppo
1aa0: 72 74 20 66 6f 72 20 43 79 67 77 69 6e 2e 3c 2f  rt for Cygwin.</
1ab0: 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73  li>.<li>Numerous
1ac0: 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 64   bug fixes and d
1ad0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
1ae0: 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ates.</li>.}..ch
1af0: 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31  ng {2005 March 1
1b00: 36 20 28 33 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69  6 (3.1.6)} {.<li
1b10: 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20  >Fix a bug that 
1b20: 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61 74 61  could cause data
1b30: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
1b40: 77 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 0a 20  when inserting. 
1b50: 20 20 20 72 65 63 6f 72 64 20 69 6e 74 6f 20 74     record into t
1b60: 61 62 6c 65 73 20 77 69 74 68 20 61 72 6f 75 6e  ables with aroun
1b70: 64 20 31 32 35 20 63 6f 6c 75 6d 6e 73 2e 3c 2f  d 125 columns.</
1b80: 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 33 5f  li>.<li>sqlite3_
1b90: 73 74 65 70 28 29 20 69 73 20 6e 6f 77 20 6d 75  step() is now mu
1ba0: 63 68 20 6d 6f 72 65 20 6c 69 6b 65 6c 79 20 74  ch more likely t
1bb0: 6f 20 69 6e 76 6f 6b 65 20 74 68 65 20 62 75 73  o invoke the bus
1bc0: 79 20 68 61 6e 64 6c 65 72 0a 20 20 20 20 61 6e  y handler.    an
1bd0: 64 20 6c 65 73 73 20 6c 69 6b 65 6c 79 20 74 6f  d less likely to
1be0: 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 42   return SQLITE_B
1bf0: 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  USY.</li>.<li>Fi
1c00: 78 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74  x memory leaks t
1c10: 68 61 74 20 75 73 65 64 20 74 6f 20 6f 63 63 75  hat used to occu
1c20: 72 20 61 66 74 65 72 20 61 20 6d 61 6c 6c 6f 63  r after a malloc
1c30: 28 29 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e  () failure.</li>
1c40: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d  .}..chng {2005 M
1c50: 61 72 63 68 20 31 31 20 28 33 2e 31 2e 35 29 7d  arch 11 (3.1.5)}
1c60: 20 7b 0a 3c 6c 69 3e 54 68 65 20 69 6f 63 74 6c   {.<li>The ioctl
1c70: 20 6f 6e 20 4f 53 2d 58 20 74 6f 20 63 6f 6e 74   on OS-X to cont
1c80: 72 6f 6c 20 73 79 6e 63 69 6e 67 20 74 6f 20 64  rol syncing to d
1c90: 69 73 6b 20 69 73 20 46 5f 46 55 4c 4c 46 53 59  isk is F_FULLFSY
1ca0: 4e 43 2c 0a 20 20 20 20 6e 6f 74 20 46 5f 46 55  NC,.    not F_FU
1cb0: 4c 4c 53 59 4e 43 2e 20 20 54 68 65 20 70 72 65  LLSYNC.  The pre
1cc0: 76 69 6f 75 73 20 72 65 6c 65 61 73 65 20 68 61  vious release ha
1cd0: 64 20 69 74 20 77 72 6f 6e 67 2e 3c 2f 6c 69 3e  d it wrong.</li>
1ce0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d  .}..chng {2005 M
1cf0: 61 72 63 68 20 31 30 20 28 33 2e 31 2e 34 29 7d  arch 10 (3.1.4)}
1d00: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
1d10: 20 69 6e 20 61 75 74 6f 76 61 63 75 75 6d 20 74   in autovacuum t
1d20: 68 61 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20  hat could cause 
1d30: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
1d40: 69 6f 6e 20 69 66 0a 61 20 43 52 45 41 54 45 20  ion if.a CREATE 
1d50: 55 4e 49 51 55 45 20 49 4e 44 45 58 20 66 61 69  UNIQUE INDEX fai
1d60: 6c 73 20 62 65 63 61 75 73 65 20 6f 66 20 61 20  ls because of a 
1d70: 63 6f 6e 73 74 72 61 69 6e 74 20 76 69 6f 6c 61  constraint viola
1d80: 74 69 6f 6e 2e 0a 54 68 69 73 20 70 72 6f 62 6c  tion..This probl
1d90: 65 6d 20 6f 6e 6c 79 20 6f 63 63 75 72 73 20 69  em only occurs i
1da0: 66 20 74 68 65 20 6e 65 77 20 61 75 74 6f 76 61  f the new autova
1db0: 63 75 75 6d 20 66 65 61 74 75 72 65 20 69 6e 74  cuum feature int
1dc0: 72 6f 64 75 63 65 64 20 69 6e 0a 76 65 72 73 69  roduced in.versi
1dd0: 6f 6e 20 33 2e 31 20 69 73 20 74 75 72 6e 65 64  on 3.1 is turned
1de0: 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68   on.</li>.<li>Th
1df0: 65 20 46 5f 46 55 4c 4c 53 59 4e 43 20 69 6f 63  e F_FULLSYNC ioc
1e00: 74 6c 20 28 63 75 72 72 65 6e 74 6c 79 20 6f 6e  tl (currently on
1e10: 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f 6e 20  ly supported on 
1e20: 4f 53 2d 58 29 20 69 73 20 64 69 73 61 62 6c 65  OS-X) is disable
1e30: 64 0a 69 66 20 74 68 65 20 73 79 6e 63 68 72 6f  d.if the synchro
1e40: 6e 6f 75 73 20 70 72 61 67 6d 61 20 69 73 20 73  nous pragma is s
1e50: 65 74 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20  et to something 
1e60: 6f 74 68 65 72 20 74 68 61 6e 20 22 66 75 6c 6c  other than "full
1e70: 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  ".</li>.<li>Add 
1e80: 61 64 64 69 74 69 6f 6e 61 6c 20 66 6f 72 77 61  additional forwa
1e90: 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  rd compatibility
1ea0: 20 74 6f 20 74 68 65 20 66 75 74 75 72 65 20 76   to the future v
1eb0: 65 72 73 69 6f 6e 20 33 2e 32 20 64 61 74 61 62  ersion 3.2 datab
1ec0: 61 73 65 20 0a 66 69 6c 65 20 66 6f 72 6d 61 74  ase .file format
1ed0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
1ee0: 20 62 75 67 20 69 6e 20 57 48 45 52 45 20 63 6c   bug in WHERE cl
1ef0: 61 75 73 65 73 20 6f 66 20 74 68 65 20 66 6f 72  auses of the for
1f00: 6d 20 28 72 6f 77 69 64 3c 27 32 27 29 3c 2f 6c  m (rowid<'2')</l
1f10: 69 3e 0a 3c 6c 69 3e 4e 65 77 20 53 51 4c 49 54  i>.<li>New SQLIT
1f20: 45 5f 4f 4d 49 54 5f 2e 2e 2e 20 63 6f 6d 70 69  E_OMIT_... compi
1f30: 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 73 20  le-time options 
1f40: 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  added</li>.<li>U
1f50: 70 64 61 74 65 73 20 74 6f 20 74 68 65 20 6d 61  pdates to the ma
1f60: 6e 20 70 61 67 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  n page</li>.<li>
1f70: 52 65 6d 6f 76 65 20 74 68 65 20 75 73 65 20 6f  Remove the use o
1f80: 66 20 73 74 72 63 61 73 65 63 6d 70 28 29 20 66  f strcasecmp() f
1f90: 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c 3c 2f 6c  rom the shell</l
1fa0: 69 3e 0a 3c 6c 69 3e 57 69 6e 64 6f 77 73 20 44  i>.<li>Windows D
1fb0: 4c 4c 20 65 78 70 6f 72 74 73 20 73 79 6d 62 6f  LL exports symbo
1fc0: 6c 73 20 54 63 6c 73 71 6c 69 74 65 5f 49 6e 69  ls Tclsqlite_Ini
1fd0: 74 20 61 6e 64 20 53 71 6c 69 74 65 5f 49 6e 69  t and Sqlite_Ini
1fe0: 74 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  t</li>.}..chng {
1ff0: 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31 39  2005 February 19
2000: 20 28 33 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (3.1.3)} {.<li>
2010: 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69  Fix a problem wi
2020: 74 68 20 56 41 43 55 55 4d 20 6f 6e 20 64 61 74  th VACUUM on dat
2030: 61 62 61 73 65 73 20 66 72 6f 6d 20 77 68 69 63  abases from whic
2040: 68 20 74 61 62 6c 65 73 20 63 6f 6e 74 61 69 6e  h tables contain
2050: 69 6e 67 0a 41 55 54 4f 49 4e 43 52 45 4d 45 4e  ing.AUTOINCREMEN
2060: 54 20 68 61 76 65 20 62 65 65 6e 20 64 72 6f 70  T have been drop
2070: 70 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ped.</li>.<li>Ad
2080: 64 20 66 6f 72 77 61 72 64 20 63 6f 6d 70 61 74  d forward compat
2090: 69 62 69 6c 69 74 79 20 74 6f 20 74 68 65 20 66  ibility to the f
20a0: 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 33 2e  uture version 3.
20b0: 32 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 0a  2 database file.
20c0: 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  format.</li>.<li
20d0: 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75  >Documentation u
20e0: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63  pdates</li>.}..c
20f0: 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75 61  hng {2005 Februa
2100: 72 79 20 31 35 20 28 33 2e 31 2e 32 29 7d 20 7b  ry 15 (3.1.2)} {
2110: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
2120: 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20  hat can lead to 
2130: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
2140: 69 6f 6e 20 69 66 20 74 68 65 72 65 20 61 72 65  ion if there are
2150: 20 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63   two.open connec
2160: 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 61 6d  tions to the sam
2170: 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6f  e database and o
2180: 6e 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f  ne connection do
2190: 65 73 20 61 20 56 41 43 55 55 4d 0a 61 6e 64 20  es a VACUUM.and 
21a0: 74 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b 65 73  the second makes
21b0: 20 73 6f 6d 65 20 63 68 61 6e 67 65 20 74 6f 20   some change to 
21c0: 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c  the database.</l
21d0: 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22 3f 22  i>.<li>Allow "?"
21e0: 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20 74   parameters in t
21f0: 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 2e  he LIMIT clause.
2200: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 56 41  </li>.<li>Fix VA
2210: 43 55 55 4d 20 73 6f 20 74 68 61 74 20 69 74 20  CUUM so that it 
2220: 77 6f 72 6b 73 20 77 69 74 68 20 41 55 54 4f 49  works with AUTOI
2230: 4e 43 52 45 4d 45 4e 54 2e 3c 2f 6c 69 3e 0a 3c  NCREMENT.</li>.<
2240: 6c 69 3e 46 69 78 20 61 20 72 61 63 65 20 63 6f  li>Fix a race co
2250: 6e 64 69 74 69 6f 6e 20 69 6e 20 41 55 54 4f 56  ndition in AUTOV
2260: 41 43 55 55 4d 20 74 68 61 74 20 63 61 6e 20 6c  ACUUM that can l
2270: 65 61 64 20 74 6f 20 63 6f 72 72 75 70 74 20 64  ead to corrupt d
2280: 61 74 61 62 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c  atabases</li>.<l
2290: 69 3e 41 64 64 20 61 20 6e 75 6d 65 72 69 63 20  i>Add a numeric 
22a0: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 74  version number t
22b0: 6f 20 74 68 65 20 73 71 6c 69 74 65 33 2e 68 20  o the sqlite3.h 
22c0: 69 6e 63 6c 75 64 65 20 66 69 6c 65 2e 3c 2f 6c  include file.</l
22d0: 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e  i>.<li>Other min
22e0: 6f 72 20 62 75 67 20 66 69 78 65 73 20 61 6e 64  or bug fixes and
22f0: 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68   performance enh
2300: 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  ancements.</li>.
2310: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65  }..chng {2005 Fe
2320: 62 72 75 61 72 79 20 31 35 20 28 32 2e 38 2e 31  bruary 15 (2.8.1
2330: 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  6)} {.<li>Fix a 
2340: 62 75 67 20 74 68 61 74 20 63 61 6e 20 6c 65 61  bug that can lea
2350: 64 20 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f  d to database co
2360: 72 72 75 70 74 69 6f 6e 20 69 66 20 74 68 65 72  rruption if ther
2370: 65 20 61 72 65 20 74 77 6f 0a 6f 70 65 6e 20 63  e are two.open c
2380: 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f 20 74 68  onnections to th
2390: 65 20 73 61 6d 65 20 64 61 74 61 62 61 73 65 20  e same database 
23a0: 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65 63 74 69  and one connecti
23b0: 6f 6e 20 64 6f 65 73 20 61 20 56 41 43 55 55 4d  on does a VACUUM
23c0: 0a 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20  .and the second 
23d0: 6d 61 6b 65 73 20 73 6f 6d 65 20 63 68 61 6e 67  makes some chang
23e0: 65 20 74 6f 20 74 68 65 20 64 61 74 61 62 61 73  e to the databas
23f0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72  e.</li>.<li>Corr
2400: 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 71 75 6f  ectly handle quo
2410: 74 65 64 20 6e 61 6d 65 73 20 69 6e 20 43 52 45  ted names in CRE
2420: 41 54 45 20 49 4e 44 45 58 20 73 74 61 74 65 6d  ATE INDEX statem
2430: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ents.</li>.<li>F
2440: 69 78 20 61 20 6e 61 6d 69 6e 67 20 63 6f 6e 66  ix a naming conf
2450: 6c 69 63 74 20 62 65 74 77 65 65 6e 20 73 71 6c  lict between sql
2460: 69 74 65 2e 68 20 61 6e 64 20 73 71 6c 69 74 65  ite.h and sqlite
2470: 33 2e 68 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 76  3.h.</li>.<li>Av
2480: 6f 69 64 20 65 78 63 65 73 73 20 68 65 61 70 20  oid excess heap 
2490: 75 73 61 67 65 20 77 68 65 6e 20 63 6f 70 79 69  usage when copyi
24a0: 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 3c  ng expressions.<
24b0: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
24c0: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e 3c  inor bug fixes.<
24d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
24e0: 30 35 20 46 65 62 72 75 61 72 79 20 31 20 28 33  05 February 1 (3
24f0: 2e 31 2e 31 20 42 45 54 41 29 7d 20 7b 0a 3c 6c  .1.1 BETA)} {.<l
2500: 69 3e 41 75 74 6f 6d 61 74 69 63 20 63 61 63 68  i>Automatic cach
2510: 69 6e 67 20 6f 66 20 70 72 65 70 61 72 65 64 20  ing of prepared 
2520: 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 74 68  statements in th
2530: 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 3c  e TCL interface<
2540: 2f 6c 69 3e 0a 3c 6c 69 3e 41 54 54 41 43 48 20  /li>.<li>ATTACH 
2550: 61 6e 64 20 44 45 54 41 43 48 20 61 73 20 77 65  and DETACH as we
2560: 6c 6c 20 61 73 20 73 6f 6d 65 20 6f 74 68 65 72  ll as some other
2570: 20 6f 70 65 72 61 74 69 6f 6e 73 20 63 61 75 73   operations caus
2580: 65 20 65 78 69 73 74 69 6e 67 0a 20 20 20 20 70  e existing.    p
2590: 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e  repared statemen
25a0: 74 73 20 74 6f 20 65 78 70 69 72 65 2e 3c 2f 6c  ts to expire.</l
25b0: 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 69 6f 75 73  i>.<li>Numerious
25c0: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
25d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
25e0: 30 30 35 20 4a 61 6e 75 61 72 79 20 32 31 20 28  005 January 21 (
25f0: 33 2e 31 2e 30 20 41 4c 50 48 41 29 7d 20 7b 0a  3.1.0 ALPHA)} {.
2600: 3c 6c 69 3e 41 75 74 6f 76 61 63 75 75 6d 20 73  <li>Autovacuum s
2610: 75 70 70 6f 72 74 20 61 64 64 65 64 3c 2f 6c 69  upport added</li
2620: 3e 0a 3c 6c 69 3e 43 55 52 52 45 4e 54 5f 54 49  >.<li>CURRENT_TI
2630: 4d 45 2c 20 43 55 52 52 45 4e 54 5f 44 41 54 45  ME, CURRENT_DATE
2640: 2c 20 61 6e 64 20 43 55 52 52 45 4e 54 5f 54 49  , and CURRENT_TI
2650: 4d 45 53 54 41 4d 50 20 61 64 64 65 64 3c 2f 6c  MESTAMP added</l
2660: 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  i>.<li>Support f
2670: 6f 72 20 74 68 65 20 45 58 49 53 54 53 20 63 6c  or the EXISTS cl
2680: 61 75 73 65 20 61 64 64 65 64 2e 3c 2f 6c 69 3e  ause added.</li>
2690: 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72  .<li>Support for
26a0: 20 63 6f 72 72 65 6c 61 74 65 64 20 73 75 62 71   correlated subq
26b0: 75 65 72 69 65 73 20 61 64 64 65 64 2e 3c 2f 6c  ueries added.</l
26c0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
26d0: 20 45 53 43 41 50 45 20 63 6c 61 75 73 65 20 6f   ESCAPE clause o
26e0: 6e 20 74 68 65 20 4c 49 4b 45 20 6f 70 65 72 61  n the LIKE opera
26f0: 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75  tor.</li>.<li>Su
2700: 70 70 6f 72 74 20 66 6f 72 20 41 4c 54 45 52 20  pport for ALTER 
2710: 54 41 42 4c 45 20 2e 2e 2e 20 52 45 4e 41 4d 45  TABLE ... RENAME
2720: 20 54 41 42 4c 45 20 2e 2e 2e 20 61 64 64 65 64   TABLE ... added
2730: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 55 54 4f 49 4e  </li>.<li>AUTOIN
2740: 43 52 45 4d 45 4e 54 20 6b 65 79 77 6f 72 64 20  CREMENT keyword 
2750: 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 49 4e 54  supported on INT
2760: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59  EGER PRIMARY KEY
2770: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 53  </li>.<li>Many S
2780: 51 4c 49 54 45 5f 4f 4d 49 54 5f 20 6d 61 63 72  QLITE_OMIT_ macr
2790: 6f 73 20 69 6e 73 65 72 74 73 20 74 6f 20 6f 6d  os inserts to om
27a0: 69 74 20 66 65 61 74 75 72 65 73 20 61 74 20 63  it features at c
27b0: 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 20 20 20 20  ompile-time.    
27c0: 61 6e 64 20 72 65 64 75 63 65 20 74 68 65 20 6c  and reduce the l
27d0: 69 62 72 61 72 79 20 66 6f 6f 74 70 72 69 6e 74  ibrary footprint
27e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 52  .</li>.<li>The R
27f0: 45 49 4e 44 45 58 20 63 6f 6d 6d 61 6e 64 20 77  EINDEX command w
2800: 61 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c  as added.</li>.<
2810: 6c 69 3e 54 68 65 20 65 6e 67 69 6e 65 20 6e 6f  li>The engine no
2820: 20 6c 6f 6e 67 65 72 20 63 6f 6e 73 75 6c 74 73   longer consults
2830: 20 74 68 65 20 6d 61 69 6e 20 74 61 62 6c 65 20   the main table 
2840: 69 66 20 69 74 20 63 61 6e 20 67 65 74 0a 20 20  if it can get.  
2850: 20 20 61 6c 6c 20 74 68 65 20 69 6e 66 6f 72 6d    all the inform
2860: 61 74 69 6f 6e 20 69 74 20 6e 65 65 64 73 20 66  ation it needs f
2870: 72 6f 6d 20 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c  rom an index.</l
2880: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6e 75 69 73  i>.<li>Many nuis
2890: 61 6e 63 65 20 62 75 67 73 20 66 69 78 65 64 2e  ance bugs fixed.
28a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
28b0: 30 30 34 20 4f 63 74 6f 62 65 72 20 31 31 20 28  004 October 11 (
28c0: 33 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64  3.0.8)} {.<li>Ad
28d0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 44 45  d support for DE
28e0: 46 45 52 52 45 44 2c 20 49 4d 4d 45 44 49 41 54  FERRED, IMMEDIAT
28f0: 45 2c 20 61 6e 64 20 45 58 43 4c 55 53 49 56 45  E, and EXCLUSIVE
2900: 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f   transactions.</
2910: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 6e 65  li>.<li>Allow ne
2920: 77 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 66  w user-defined f
2930: 75 6e 63 74 69 6f 6e 73 20 74 6f 20 62 65 20 63  unctions to be c
2940: 72 65 61 74 65 64 20 77 68 65 6e 20 74 68 65 72  reated when ther
2950: 65 20 61 72 65 0a 61 6c 72 65 61 64 79 20 6f 6e  e are.already on
2960: 65 20 6f 72 20 6d 6f 72 65 20 70 72 65 63 6f 6d  e or more precom
2970: 70 69 6c 65 64 20 53 51 4c 20 73 74 61 74 65 6d  piled SQL statem
2980: 65 6e 74 73 2e 3c 6c 69 3e 0a 3c 6c 69 3e 46 69  ents.<li>.<li>Fi
2990: 78 20 70 6f 72 74 61 62 69 6c 69 74 79 20 70 72  x portability pr
29a0: 6f 62 6c 65 6d 73 20 66 6f 72 20 4d 69 6e 67 77  oblems for Mingw
29b0: 2f 4d 53 59 53 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  /MSYS.</li>.<li>
29c0: 46 69 78 20 61 20 62 79 74 65 20 61 6c 69 67 6e  Fix a byte align
29d0: 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 20 6f 6e 20  ment problem on 
29e0: 36 34 2d 62 69 74 20 53 70 61 72 63 20 6d 61 63  64-bit Sparc mac
29f0: 68 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  hines.</li>.<li>
2a00: 46 69 78 20 74 68 65 20 22 2e 69 6d 70 6f 72 74  Fix the ".import
2a10: 22 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 74 68 65  " command of the
2a20: 20 73 68 65 6c 6c 20 73 6f 20 74 68 61 74 20 69   shell so that i
2a30: 74 20 69 67 6e 6f 72 65 73 20 5c 72 0a 63 68 61  t ignores \r.cha
2a40: 72 61 63 74 65 72 73 20 61 74 20 74 68 65 20 65  racters at the e
2a50: 6e 64 20 6f 66 20 6c 69 6e 65 73 2e 3c 2f 6c 69  nd of lines.</li
2a60: 3e 0a 3c 6c 69 3e 54 68 65 20 22 63 73 76 22 20  >.<li>The "csv" 
2a70: 6d 6f 64 65 20 6f 70 74 69 6f 6e 20 69 6e 20 74  mode option in t
2a80: 68 65 20 73 68 65 6c 6c 20 70 75 74 73 20 73 74  he shell puts st
2a90: 72 69 6e 67 73 20 69 6e 73 69 64 65 20 64 6f 75  rings inside dou
2aa0: 62 6c 65 2d 71 75 6f 74 65 73 2e 3c 2f 6c 69 3e  ble-quotes.</li>
2ab0: 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73 20 69  .<li>Fix typos i
2ac0: 6e 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e  n documentation.
2ad0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72  </li>.<li>Conver
2ae0: 74 20 61 72 72 61 79 20 63 6f 6e 73 74 61 6e 74  t array constant
2af0: 73 20 69 6e 20 74 68 65 20 63 6f 64 65 20 74 6f  s in the code to
2b00: 20 68 61 76 65 20 74 79 70 65 20 22 63 6f 6e 73   have type "cons
2b10: 74 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d  t".</li>.<li>Num
2b20: 65 72 6f 75 73 20 63 6f 64 65 20 6f 70 74 69 6d  erous code optim
2b30: 69 7a 61 74 69 6f 6e 73 2c 20 73 70 65 63 69 61  izations, specia
2b40: 6c 6c 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  lly optimization
2b50: 73 20 64 65 73 69 67 6e 65 64 20 74 6f 0a 6d 61  s designed to.ma
2b60: 6b 65 20 74 68 65 20 63 6f 64 65 20 66 6f 6f 74  ke the code foot
2b70: 70 72 69 6e 74 20 73 6d 61 6c 6c 65 72 2e 3c 2f  print smaller.</
2b80: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
2b90: 34 20 53 65 70 74 65 6d 62 65 72 20 31 38 20 28  4 September 18 (
2ba0: 33 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 54 68  3.0.7)} {.<li>Th
2bb0: 65 20 42 54 72 65 65 20 6d 6f 64 75 6c 65 20 61  e BTree module a
2bc0: 6c 6c 6f 63 61 74 65 73 20 6c 61 72 67 65 20 62  llocates large b
2bd0: 75 66 66 65 72 73 20 75 73 69 6e 67 20 6d 61 6c  uffers using mal
2be0: 6c 6f 63 28 29 20 69 6e 73 74 65 61 64 20 6f 66  loc() instead of
2bf0: 0a 20 20 20 20 6f 66 66 20 6f 66 20 74 68 65 20  .    off of the 
2c00: 73 74 61 63 6b 2c 20 69 6e 20 6f 72 64 65 72 20  stack, in order 
2c10: 74 6f 20 70 6c 61 79 20 62 65 74 74 65 72 20 6f  to play better o
2c20: 6e 20 6d 61 63 68 69 6e 65 73 20 77 69 74 68 20  n machines with 
2c30: 6c 69 6d 69 74 65 64 0a 20 20 20 20 73 74 61 63  limited.    stac
2c40: 6b 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c  k space.</li>.<l
2c50: 69 3e 46 69 78 65 64 20 6e 61 6d 69 6e 67 20 63  i>Fixed naming c
2c60: 6f 6e 66 6c 69 63 74 73 20 73 6f 20 74 68 61 74  onflicts so that
2c70: 20 76 65 72 73 69 6f 6e 73 20 32 2e 38 20 61 6e   versions 2.8 an
2c80: 64 20 33 2e 30 20 63 61 6e 20 62 65 0a 20 20 20  d 3.0 can be.   
2c90: 20 6c 69 6e 6b 65 64 20 61 6e 64 20 75 73 65 64   linked and used
2ca0: 20 74 6f 67 65 74 68 65 72 20 69 6e 20 74 68 65   together in the
2cb0: 20 73 61 6d 65 20 41 4e 53 49 2d 43 20 73 6f 75   same ANSI-C sou
2cc0: 72 63 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c  rce file.</li>.<
2cd0: 6c 69 3e 4e 65 77 20 69 6e 74 65 72 66 61 63 65  li>New interface
2ce0: 3a 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70  : sqlite3_bind_p
2cf0: 61 72 61 6d 65 74 65 72 5f 69 6e 64 65 78 28 29  arameter_index()
2d00: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75  </li>.<li>Add su
2d10: 70 70 6f 72 74 20 66 6f 72 20 77 69 6c 64 63 61  pport for wildca
2d20: 72 64 20 70 61 72 61 6d 65 74 65 72 73 20 6f 66  rd parameters of
2d30: 20 74 68 65 20 66 6f 72 6d 3a 20 22 3f 6e 6e 6e   the form: "?nnn
2d40: 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 70  "</li>.<li>Fix p
2d50: 72 6f 62 6c 65 6d 73 20 66 6f 75 6e 64 20 6f 6e  roblems found on
2d60: 20 36 34 2d 62 69 74 20 73 79 73 74 65 6d 73 2e   64-bit systems.
2d70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65  </li>.<li>Remove
2d80: 64 20 65 6e 63 6f 64 65 2e 63 20 66 69 6c 65 20  d encode.c file 
2d90: 28 63 6f 6e 74 61 69 6e 69 6e 67 20 75 6e 75 73  (containing unus
2da0: 65 64 20 72 6f 75 74 69 6e 65 73 29 20 66 72 6f  ed routines) fro
2db0: 6d 20 74 68 65 20 0a 20 20 20 20 76 65 72 73 69  m the .    versi
2dc0: 6f 6e 20 33 2e 30 20 73 6f 75 72 63 65 20 74 72  on 3.0 source tr
2dd0: 65 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ee.</li>.<li>The
2de0: 20 73 71 6c 69 74 65 33 5f 74 72 61 63 65 28 29   sqlite3_trace()
2df0: 20 63 61 6c 6c 62 61 63 6b 73 20 6f 63 63 75 72   callbacks occur
2e00: 20 62 65 66 6f 72 65 20 65 61 63 68 20 73 74 61   before each sta
2e10: 74 65 6d 65 6e 74 0a 20 20 20 20 69 73 20 65 78  tement.    is ex
2e20: 65 63 75 74 65 64 2c 20 6e 6f 74 20 77 68 65 6e  ecuted, not when
2e30: 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 69   the statement i
2e40: 73 20 63 6f 6d 70 69 6c 65 64 2e 3c 2f 6c 69 3e  s compiled.</li>
2e50: 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70  .<li>Makefile up
2e60: 64 61 74 65 73 20 61 6e 64 20 6d 69 73 63 65 6c  dates and miscel
2e70: 6c 61 6e 65 6f 75 73 20 62 75 67 20 66 69 78 65  laneous bug fixe
2e80: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
2e90: 7b 32 30 30 34 20 53 65 70 74 65 6d 62 65 72 20  {2004 September 
2ea0: 30 32 20 28 33 2e 30 2e 36 20 62 65 74 61 29 7d  02 (3.0.6 beta)}
2eb0: 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 64 65   {.<li>Better de
2ec0: 74 65 63 74 69 6f 6e 20 61 6e 64 20 68 61 6e 64  tection and hand
2ed0: 6c 69 6e 67 20 6f 66 20 63 6f 72 72 75 70 74 20  ling of corrupt 
2ee0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 2e 3c  database files.<
2ef0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73 71 6c  /li>.<li>The sql
2f00: 69 74 65 33 5f 73 74 65 70 28 29 20 69 6e 74 65  ite3_step() inte
2f10: 72 66 61 63 65 20 72 65 74 75 72 6e 73 20 53 51  rface returns SQ
2f20: 4c 49 54 45 5f 42 55 53 59 20 69 66 20 69 74 20  LITE_BUSY if it 
2f30: 69 73 20 75 6e 61 62 6c 65 0a 20 20 20 20 74 6f  is unable.    to
2f40: 20 63 6f 6d 6d 69 74 20 61 20 63 68 61 6e 67 65   commit a change
2f50: 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 6c 6f   because of a lo
2f60: 63 6b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6d 62  ck</li>.<li>Comb
2f70: 69 6e 65 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e  ine the implemen
2f80: 74 61 74 69 6f 6e 73 20 6f 66 20 4c 49 4b 45 20  tations of LIKE 
2f90: 61 6e 64 20 47 4c 4f 42 20 69 6e 74 6f 20 61 20  and GLOB into a 
2fa0: 73 69 6e 67 6c 65 0a 20 20 20 20 70 61 74 74 65  single.    patte
2fb0: 72 6e 2d 6d 61 74 63 68 69 6e 67 20 73 75 62 72  rn-matching subr
2fc0: 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  outine.</li>.<li
2fd0: 3e 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 63  >Miscellaneous c
2fe0: 6f 64 65 20 73 69 7a 65 20 6f 70 74 69 6d 69 7a  ode size optimiz
2ff0: 61 74 69 6f 6e 73 20 61 6e 64 20 62 75 67 20 66  ations and bug f
3000: 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ixes</li>.}..chn
3010: 67 20 7b 32 30 30 34 20 41 75 67 75 73 74 20 32  g {2004 August 2
3020: 39 20 28 33 2e 30 2e 35 20 62 65 74 61 29 7d 20  9 (3.0.5 beta)} 
3030: 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  {.<li>Support fo
3040: 72 20 22 3a 41 41 41 22 20 73 74 79 6c 65 20 62  r ":AAA" style b
3050: 69 6e 64 20 70 61 72 61 6d 65 74 65 72 20 6e 61  ind parameter na
3060: 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  mes.</li>.<li>Ad
3070: 64 65 64 20 74 68 65 20 6e 65 77 20 73 71 6c 69  ded the new sqli
3080: 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74  te3_bind_paramet
3090: 65 72 5f 6e 61 6d 65 28 29 20 69 6e 74 65 72 66  er_name() interf
30a0: 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75  ace.</li>.<li>Su
30b0: 70 70 6f 72 74 20 66 6f 72 20 54 43 4c 20 76 61  pport for TCL va
30c0: 72 69 61 62 6c 65 20 6e 61 6d 65 73 20 65 6d 62  riable names emb
30d0: 65 64 64 65 64 20 69 6e 20 53 51 4c 20 73 74 61  edded in SQL sta
30e0: 74 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 0a 20  tements in the. 
30f0: 20 20 20 54 43 4c 20 62 69 6e 64 69 6e 67 73 2e     TCL bindings.
3100: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 54 43  </li>.<li>The TC
3110: 4c 20 62 69 6e 64 69 6e 67 73 20 74 72 61 6e 73  L bindings trans
3120: 66 65 72 20 64 61 74 61 20 77 69 74 68 6f 75 74  fer data without
3130: 20 6e 65 63 65 73 73 61 72 69 6c 79 20 64 6f 69   necessarily doi
3140: 6e 67 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 0a  ng a conversion.
3150: 20 20 20 20 74 6f 20 61 20 73 74 72 69 6e 67 2e      to a string.
3160: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 61  </li>.<li>The da
3170: 74 61 62 61 73 65 20 66 6f 72 20 54 45 4d 50 20  tabase for TEMP 
3180: 74 61 62 6c 65 73 20 69 73 20 6e 6f 74 20 63 72  tables is not cr
3190: 65 61 74 65 64 20 75 6e 74 69 6c 20 69 74 20 69  eated until it i
31a0: 73 20 6e 65 65 64 65 64 2e 3c 2f 6c 69 3e 0a 3c  s needed.</li>.<
31b0: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
31c0: 74 79 20 74 6f 20 73 70 65 63 69 66 79 20 61 6e  ty to specify an
31d0: 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74 65 6d   alternative tem
31e0: 70 6f 72 61 72 79 20 66 69 6c 65 20 64 69 72 65  porary file dire
31f0: 63 74 6f 72 79 0a 20 20 20 20 75 73 69 6e 67 20  ctory.    using 
3200: 74 68 65 20 22 73 71 6c 69 74 65 5f 74 65 6d 70  the "sqlite_temp
3210: 5f 64 69 72 65 63 74 6f 72 79 22 20 67 6c 6f 62  _directory" glob
3220: 61 6c 20 76 61 72 69 61 62 6c 65 2e 3c 2f 6c 69  al variable.</li
3230: 3e 0a 3c 6c 69 3e 41 20 63 6f 6d 70 69 6c 65 2d  >.<li>A compile-
3240: 74 69 6d 65 20 6f 70 74 69 6f 6e 20 28 53 51 4c  time option (SQL
3250: 49 54 45 5f 42 55 53 59 5f 52 45 53 45 52 56 45  ITE_BUSY_RESERVE
3260: 44 5f 4c 4f 43 4b 29 20 63 61 75 73 65 73 20 74  D_LOCK) causes t
3270: 68 65 20 62 75 73 79 0a 20 20 20 20 68 61 6e 64  he busy.    hand
3280: 6c 65 72 20 74 6f 20 62 65 20 63 61 6c 6c 65 64  ler to be called
3290: 20 77 68 65 6e 20 74 68 65 72 65 20 69 73 20 63   when there is c
32a0: 6f 6e 74 65 6e 74 69 6f 6e 20 66 6f 72 20 61 20  ontention for a 
32b0: 52 45 53 45 52 56 45 44 20 6c 6f 63 6b 2e 3c 2f  RESERVED lock.</
32c0: 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20  li>.<li>Various 
32d0: 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 6f 70  bug fixes and op
32e0: 74 69 6d 69 7a 61 74 69 6f 6e 73 3c 2f 6c 69 3e  timizations</li>
32f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 41  .}..chng {2004 A
3300: 75 67 75 73 74 20 38 20 28 33 2e 30 2e 34 20 62  ugust 8 (3.0.4 b
3310: 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 43 52 45 41  eta)} {.<li>CREA
3320: 54 45 20 54 41 42 4c 45 20 61 6e 64 20 44 52 4f  TE TABLE and DRO
3330: 50 20 54 41 42 4c 45 20 6e 6f 77 20 77 6f 72 6b  P TABLE now work
3340: 20 63 6f 72 72 65 63 74 6c 79 20 61 73 20 70 72   correctly as pr
3350: 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e 74  epared statement
3360: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
3370: 61 20 62 75 67 20 69 6e 20 56 41 43 55 55 4d 20  a bug in VACUUM 
3380: 61 6e 64 20 55 4e 49 51 55 45 20 69 6e 64 69 63  and UNIQUE indic
3390: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
33a0: 20 74 68 65 20 22 2e 69 6d 70 6f 72 74 22 20 63   the ".import" c
33b0: 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20 63 6f  ommand to the co
33c0: 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c  mmand-line shell
33d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
33e0: 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20   bug that could 
33f0: 63 61 75 73 65 20 69 6e 64 65 78 20 63 6f 72 72  cause index corr
3400: 75 70 74 69 6f 6e 20 77 68 65 6e 20 61 6e 20 61  uption when an a
3410: 74 74 65 6d 70 74 20 74 6f 0a 20 20 20 20 64 65  ttempt to.    de
3420: 6c 65 74 65 20 72 6f 77 73 20 6f 66 20 61 20 74  lete rows of a t
3430: 61 62 6c 65 20 69 73 20 62 6c 6f 63 6b 65 64 20  able is blocked 
3440: 62 79 20 61 20 70 65 6e 64 69 6e 67 20 71 75 65  by a pending que
3450: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 69 62  ry.</li>.<li>Lib
3460: 72 61 72 79 20 73 69 7a 65 20 6f 70 74 69 6d 69  rary size optimi
3470: 7a 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  zations.</li>.<l
3480: 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75  i>Other minor bu
3490: 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  g fixes.</li>.}.
34a0: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6c 79  .chng {2004 July
34b0: 20 32 32 20 28 32 2e 38 2e 31 35 29 7d 20 7b 0a   22 (2.8.15)} {.
34c0: 3c 6c 69 3e 54 68 69 73 20 69 73 20 61 20 6d 61  <li>This is a ma
34d0: 69 6e 74 65 6e 61 6e 63 65 20 72 65 6c 65 61 73  intenance releas
34e0: 65 20 6f 6e 6c 79 2e 20 20 56 61 72 69 6f 75 73  e only.  Various
34f0: 20 6d 69 6e 6f 72 20 62 75 67 73 20 68 61 76 65   minor bugs have
3500: 20 62 65 65 6e 0a 66 69 78 65 64 20 61 6e 64 20   been.fixed and 
3510: 73 6f 6d 65 20 70 6f 72 74 61 62 69 6c 69 74 79  some portability
3520: 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 61 72   enhancements ar
3530: 65 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  e added.</li>.}.
3540: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6c 79  .chng {2004 July
3550: 20 32 32 20 28 33 2e 30 2e 33 20 62 65 74 61 29   22 (3.0.3 beta)
3560: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 73 65 63 6f  } {.<li>The seco
3570: 6e 64 20 62 65 74 61 20 72 65 6c 65 61 73 65 20  nd beta release 
3580: 66 6f 72 20 53 51 4c 69 74 65 20 33 2e 30 2e 3c  for SQLite 3.0.<
3590: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70  /li>.<li>Add sup
35a0: 70 6f 72 74 20 66 6f 72 20 22 50 52 41 47 4d 41  port for "PRAGMA
35b0: 20 70 61 67 65 5f 73 69 7a 65 22 20 74 6f 20 61   page_size" to a
35c0: 64 6a 75 73 74 20 74 68 65 20 70 61 67 65 20 73  djust the page s
35d0: 69 7a 65 20 6f 66 0a 74 68 65 20 64 61 74 61 62  ize of.the datab
35e0: 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61  ase.</li>.<li>Va
35f0: 72 69 6f 75 73 20 62 75 67 20 66 69 78 65 73 20  rious bug fixes 
3600: 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  and documentatio
3610: 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a  n updates.</li>.
3620: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
3630: 6e 65 20 33 30 20 28 33 2e 30 2e 32 20 62 65 74  ne 30 (3.0.2 bet
3640: 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 66 69  a)} {.<li>The fi
3650: 72 73 74 20 62 65 74 61 20 72 65 6c 65 61 73 65  rst beta release
3660: 20 66 6f 72 20 53 51 4c 69 74 65 20 33 2e 30 2e   for SQLite 3.0.
3670: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
3680: 30 30 34 20 4a 75 6e 65 20 32 32 20 28 33 2e 30  004 June 22 (3.0
3690: 2e 31 20 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69  .1 alpha)} {.<li
36a0: 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65  ><font color="re
36b0: 64 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a 20 41  d"><b>.    *** A
36c0: 6c 70 68 61 20 52 65 6c 65 61 73 65 20 2d 20 52  lpha Release - R
36d0: 65 73 65 61 72 63 68 20 41 6e 64 20 54 65 73 74  esearch And Test
36e0: 69 6e 67 20 55 73 65 20 4f 6e 6c 79 20 2a 2a 2a  ing Use Only ***
36f0: 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e  </b></font>.<li>
3700: 4c 6f 74 73 20 6f 66 20 62 75 67 20 66 69 78 65  Lots of bug fixe
3710: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
3720: 7b 32 30 30 34 20 4a 75 6e 65 20 31 38 20 28 33  {2004 June 18 (3
3730: 2e 30 2e 30 20 61 6c 70 68 61 29 7d 20 7b 0a 3c  .0.0 alpha)} {.<
3740: 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22  li><font color="
3750: 72 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a  red"><b>.    ***
3760: 20 41 6c 70 68 61 20 52 65 6c 65 61 73 65 20 2d   Alpha Release -
3770: 20 52 65 73 65 61 72 63 68 20 41 6e 64 20 54 65   Research And Te
3780: 73 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79 20 2a  sting Use Only *
3790: 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c  **</b></font>.<l
37a0: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 69 6e  i>Support for in
37b0: 74 65 72 6e 61 74 69 6f 6e 61 6c 69 7a 61 74 69  ternationalizati
37c0: 6f 6e 20 69 6e 63 6c 75 64 69 6e 67 20 55 54 46  on including UTF
37d0: 2d 38 2c 20 55 54 46 2d 31 36 2c 20 61 6e 64 0a  -8, UTF-16, and.
37e0: 20 20 20 20 75 73 65 72 20 64 65 66 69 6e 65 64      user defined
37f0: 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71 75 65   collating seque
3800: 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  nces.</li>.<li>N
3810: 65 77 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 74  ew file format t
3820: 68 61 74 20 69 73 20 32 35 25 20 74 6f 20 33 35  hat is 25% to 35
3830: 25 20 73 6d 61 6c 6c 65 72 20 66 6f 72 20 74 79  % smaller for ty
3840: 70 69 63 61 6c 20 75 73 65 2e 3c 2f 6c 69 3e 0a  pical use.</li>.
3850: 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 63 6f 6e  <li>Improved con
3860: 63 75 72 72 65 6e 63 79 2e 3c 2f 6c 69 3e 0a 3c  currency.</li>.<
3870: 6c 69 3e 41 74 6f 6d 69 63 20 63 6f 6d 6d 69 74  li>Atomic commit
3880: 73 20 66 6f 72 20 41 54 54 41 43 48 65 64 20 64  s for ATTACHed d
3890: 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e 0a 3c  atabases.</li>.<
38a0: 6c 69 3e 52 65 6d 6f 76 65 20 63 72 75 66 74 20  li>Remove cruft 
38b0: 66 72 6f 6d 20 74 68 65 20 41 50 49 73 2e 3c 2f  from the APIs.</
38c0: 6c 69 3e 0a 3c 6c 69 3e 42 4c 4f 42 20 73 75 70  li>.<li>BLOB sup
38d0: 70 6f 72 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 36  port.</li>.<li>6
38e0: 34 2d 62 69 74 20 72 6f 77 69 64 73 2e 3c 2f 6c  4-bit rowids.</l
38f0: 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22  i>.<li><a href="
3900: 76 65 72 73 69 6f 6e 33 2e 68 74 6d 6c 22 3e 4d  version3.html">M
3910: 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c  ore information<
3920: 2f 61 3e 2e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /a>..}..chng {20
3930: 30 34 20 4a 75 6e 65 20 39 20 28 32 2e 38 2e 31  04 June 9 (2.8.1
3940: 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68  4)} {.<li>Fix th
3950: 65 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78 28  e min() and max(
3960: 29 20 6f 70 74 69 6d 69 7a 65 72 20 73 6f 20 74  ) optimizer so t
3970: 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77 68 65  hat it works whe
3980: 6e 20 74 68 65 20 46 52 4f 4d 0a 20 20 20 20 63  n the FROM.    c
3990: 6c 61 75 73 65 20 63 6f 6e 73 69 73 74 73 20 6f  lause consists o
39a0: 66 20 61 20 73 75 62 71 75 65 72 79 2e 3c 2f 6c  f a subquery.</l
39b0: 69 3e 0a 3c 6c 69 3e 49 67 6e 6f 72 65 20 65 78  i>.<li>Ignore ex
39c0: 74 72 61 20 77 68 69 74 65 73 70 61 63 65 20 61  tra whitespace a
39d0: 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6f 66 20  t the end of of 
39e0: 22 2e 22 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20  "." commands in 
39f0: 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a  the shell.</li>.
3a00: 3c 6c 69 3e 42 75 6e 64 6c 65 20 73 71 6c 69 74  <li>Bundle sqlit
3a10: 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72 79 28  e_encode_binary(
3a20: 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 64 65 63  ) and sqlite_dec
3a30: 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 77 69 74  ode_binary() wit
3a40: 68 20 74 68 65 20 0a 20 20 20 20 6c 69 62 72 61  h the .    libra
3a50: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ry.</li>.<li>The
3a60: 20 54 45 4d 50 5f 53 54 4f 52 45 20 61 6e 64 20   TEMP_STORE and 
3a70: 44 45 46 41 55 4c 54 5f 54 45 4d 50 5f 53 54 4f  DEFAULT_TEMP_STO
3a80: 52 45 20 70 72 61 67 6d 61 73 20 6e 6f 77 20 77  RE pragmas now w
3a90: 6f 72 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ork.</li>.<li>Co
3aa0: 64 65 20 63 68 61 6e 67 65 73 20 74 6f 20 63 6f  de changes to co
3ab0: 6d 70 69 6c 65 20 63 6c 65 61 6e 6c 79 20 75 73  mpile cleanly us
3ac0: 69 6e 67 20 4f 70 65 6e 57 61 74 63 6f 6d 2e 3c  ing OpenWatcom.<
3ad0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 56 44 42  /li>.<li>Fix VDB
3ae0: 45 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77  E stack overflow
3af0: 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 49   problems with I
3b00: 4e 53 54 45 41 44 20 4f 46 20 74 72 69 67 67 65  NSTEAD OF trigge
3b10: 72 73 20 61 6e 64 0a 20 20 20 20 4e 55 4c 4c 73  rs and.    NULLs
3b20: 20 69 6e 20 49 4e 20 6f 70 65 72 61 74 6f 72 73   in IN operators
3b30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
3b40: 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62  he global variab
3b50: 6c 65 20 73 71 6c 69 74 65 5f 74 65 6d 70 5f 64  le sqlite_temp_d
3b60: 69 72 65 63 74 6f 72 79 20 77 68 69 63 68 20 69  irectory which i
3b70: 66 20 73 65 74 20 64 65 66 69 6e 65 73 20 74 68  f set defines th
3b80: 65 0a 20 20 20 20 64 69 72 65 63 74 6f 72 79 20  e.    directory 
3b90: 69 6e 20 77 68 69 63 68 20 74 65 6d 70 6f 72 61  in which tempora
3ba0: 72 79 20 66 69 6c 65 73 20 61 72 65 20 73 74 6f  ry files are sto
3bb0: 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71  red.</li>.<li>sq
3bc0: 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29  lite_interrupt()
3bd0: 20 70 6c 61 79 73 20 77 65 6c 6c 20 77 69 74 68   plays well with
3be0: 20 56 41 43 55 55 4d 2e 3c 2f 6c 69 3e 0a 3c 6c   VACUUM.</li>.<l
3bf0: 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75  i>Other minor bu
3c00: 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  g fixes.</li>.}.
3c10: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4d 61 72 63  .chng {2004 Marc
3c20: 68 20 38 20 28 32 2e 38 2e 31 33 29 7d 20 7b 0a  h 8 (2.8.13)} {.
3c30: 3c 6c 69 3e 52 65 66 61 63 74 6f 72 20 70 61 72  <li>Refactor par
3c40: 74 73 20 6f 66 20 74 68 65 20 63 6f 64 65 20 69  ts of the code i
3c50: 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61 6b 65 20  n order to make 
3c60: 74 68 65 20 63 6f 64 65 20 66 6f 6f 74 70 72 69  the code footpri
3c70: 6e 74 0a 20 20 20 20 73 6d 61 6c 6c 65 72 2e 20  nt.    smaller. 
3c80: 20 54 68 65 20 63 6f 64 65 20 69 73 20 6e 6f 77   The code is now
3c90: 20 61 6c 73 6f 20 61 20 6c 69 74 74 6c 65 20 62   also a little b
3ca0: 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a  it faster.</li>.
3cb0: 3c 6c 69 3e 73 71 6c 69 74 65 5f 65 78 65 63 28  <li>sqlite_exec(
3cc0: 29 20 69 73 20 6e 6f 77 20 69 6d 70 6c 65 6d 65  ) is now impleme
3cd0: 6e 74 65 64 20 61 73 20 61 20 77 72 61 70 70 65  nted as a wrappe
3ce0: 72 20 61 72 6f 75 6e 64 20 73 71 6c 69 74 65 5f  r around sqlite_
3cf0: 63 6f 6d 70 69 6c 65 28 29 0a 20 20 20 20 61 6e  compile().    an
3d00: 64 20 73 71 6c 69 74 65 5f 73 74 65 70 28 29 2e  d sqlite_step().
3d10: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 62 75  </li>.<li>The bu
3d20: 69 6c 74 2d 69 6e 20 6d 69 6e 28 29 20 61 6e 64  ilt-in min() and
3d30: 20 6d 61 78 28 29 20 66 75 6e 63 74 69 6f 6e 73   max() functions
3d40: 20 6e 6f 77 20 68 6f 6e 6f 72 20 74 68 65 20 64   now honor the d
3d50: 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65  ifference betwee
3d60: 6e 0a 20 20 20 20 4e 55 4d 45 52 49 43 20 61 6e  n.    NUMERIC an
3d70: 64 20 54 45 58 54 20 64 61 74 61 74 79 70 65 73  d TEXT datatypes
3d80: 2e 20 20 46 6f 72 6d 65 72 6c 79 2c 20 6d 69 6e  .  Formerly, min
3d90: 28 29 20 61 6e 64 20 6d 61 78 28 29 20 61 6c 77  () and max() alw
3da0: 61 79 73 20 61 73 73 75 6d 65 64 0a 20 20 20 20  ays assumed.    
3db0: 74 68 65 69 72 20 61 72 67 75 6d 65 6e 74 73 20  their arguments 
3dc0: 77 65 72 65 20 6f 66 20 74 79 70 65 20 4e 55 4d  were of type NUM
3dd0: 45 52 49 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  ERIC.</li>.<li>N
3de0: 65 77 20 48 48 3a 4d 4d 3a 53 53 20 6d 6f 64 69  ew HH:MM:SS modi
3df0: 66 69 65 72 20 74 6f 20 74 68 65 20 62 75 69 6c  fier to the buil
3e00: 74 2d 69 6e 20 64 61 74 65 2f 74 69 6d 65 20 66  t-in date/time f
3e10: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  unctions.</li>.<
3e20: 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 20  li>Experimental 
3e30: 73 71 6c 69 74 65 5f 6c 61 73 74 5f 73 74 61 74  sqlite_last_stat
3e40: 65 6d 65 6e 74 5f 63 68 61 6e 67 65 73 28 29 20  ement_changes() 
3e50: 41 50 49 20 61 64 64 65 64 2e 20 20 46 69 78 65  API added.  Fixe
3e60: 64 20 74 68 65 0a 20 20 20 20 74 68 65 20 6c 61  d the.    the la
3e70: 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 28  st_insert_rowid(
3e80: 29 20 66 75 6e 63 74 69 6f 6e 20 73 6f 20 74 68  ) function so th
3e90: 61 74 20 69 74 20 77 6f 72 6b 73 20 63 6f 72 72  at it works corr
3ea0: 65 63 74 6c 79 20 77 69 74 68 0a 20 20 20 20 74  ectly with.    t
3eb0: 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  riggers.</li>.<l
3ec0: 69 3e 41 64 64 20 66 75 6e 63 74 69 6f 6e 73 20  i>Add functions 
3ed0: 70 72 6f 74 6f 74 79 70 65 73 20 66 6f 72 20 74  prototypes for t
3ee0: 68 65 20 64 61 74 61 62 61 73 65 20 65 6e 63 72  he database encr
3ef0: 79 70 74 69 6f 6e 20 41 50 49 2e 3c 2f 6c 69 3e  yption API.</li>
3f00: 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65 72 61 6c  .<li>Fix several
3f10: 20 6e 75 69 73 61 6e 63 65 20 62 75 67 73 2e 3c   nuisance bugs.<
3f20: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3f30: 30 34 20 46 65 62 72 75 61 72 79 20 38 20 28 32  04 February 8 (2
3f40: 2e 38 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .8.12)} {.<li>Fi
3f50: 78 20 61 20 62 75 67 20 74 68 61 74 20 77 69 6c  x a bug that wil
3f60: 6c 20 6d 69 67 68 74 20 63 6f 72 72 75 70 74 20  l might corrupt 
3f70: 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75  the rollback jou
3f80: 72 6e 61 6c 20 69 66 20 61 20 70 6f 77 65 72 20  rnal if a power 
3f90: 66 61 69 6c 75 72 65 0a 20 20 20 20 6f 72 20 65  failure.    or e
3fa0: 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d 20  xternal program 
3fb0: 68 61 6c 74 20 6f 63 63 75 72 73 20 69 6e 20 74  halt occurs in t
3fc0: 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 61 20 43  he middle of a C
3fd0: 4f 4d 4d 49 54 2e 20 20 54 68 65 20 63 6f 72 72  OMMIT.  The corr
3fe0: 75 70 74 0a 20 20 20 20 6a 6f 75 72 6e 61 6c 20  upt.    journal 
3ff0: 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74 61  can lead to data
4000: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
4010: 77 68 65 6e 20 69 74 20 69 73 20 72 6f 6c 6c 65  when it is rolle
4020: 64 20 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69  d back.</li>.<li
4030: 3e 52 65 64 75 63 65 20 74 68 65 20 73 69 7a 65  >Reduce the size
4040: 20 61 6e 64 20 69 6e 63 72 65 61 73 65 20 74 68   and increase th
4050: 65 20 73 70 65 65 64 20 6f 66 20 76 61 72 69 6f  e speed of vario
4060: 75 73 20 6d 6f 64 75 6c 65 73 2c 20 65 73 70 65  us modules, espe
4070: 63 69 61 6c 6c 79 0a 20 20 20 20 74 68 65 20 76  cially.    the v
4080: 69 72 74 75 61 6c 20 6d 61 63 68 69 6e 65 2e 3c  irtual machine.<
4090: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22  /li>.<li>Allow "
40a0: 26 6c 74 3b 65 78 70 72 26 67 74 3b 20 49 4e 20  &lt;expr&gt; IN 
40b0: 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22 20 61  &lt;table&gt;" a
40c0: 73 20 61 20 73 68 6f 72 74 68 61 6e 64 20 66 6f  s a shorthand fo
40d0: 72 0a 20 20 20 20 22 26 6c 74 3b 65 78 70 72 26  r.    "&lt;expr&
40e0: 67 74 3b 20 49 4e 20 28 53 45 4c 45 43 54 20 2a  gt; IN (SELECT *
40f0: 20 46 52 4f 4d 20 26 6c 74 3b 74 61 62 6c 65 26   FROM &lt;table&
4100: 67 74 3b 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  gt;".</li>.<li>O
4110: 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20  ptimizations to 
4120: 74 68 65 20 73 71 6c 69 74 65 5f 6d 70 72 69 6e  the sqlite_mprin
4130: 74 66 28 29 20 72 6f 75 74 69 6e 65 2e 3c 2f 6c  tf() routine.</l
4140: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65  i>.<li>Make sure
4150: 20 74 68 65 20 4d 49 4e 28 29 20 61 6e 64 20 4d   the MIN() and M
4160: 41 58 28 29 20 6f 70 74 69 6d 69 7a 61 74 69 6f  AX() optimizatio
4170: 6e 73 20 77 6f 72 6b 20 77 69 74 68 69 6e 20 73  ns work within s
4180: 75 62 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a  ubqueries.</li>.
4190: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 61  }..chng {2004 Ja
41a0: 6e 75 61 72 79 20 31 34 20 28 32 2e 38 2e 31 31  nuary 14 (2.8.11
41b0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
41c0: 75 67 20 69 6e 20 68 6f 77 20 74 68 65 20 49 4e  ug in how the IN
41d0: 20 6f 70 65 72 61 74 6f 72 20 68 61 6e 64 6c 65   operator handle
41e0: 73 20 4e 55 4c 4c 73 20 69 6e 20 73 75 62 71 75  s NULLs in subqu
41f0: 65 72 69 65 73 2e 20 20 54 68 65 20 62 75 67 0a  eries.  The bug.
4200: 20 20 20 20 77 61 73 20 69 6e 74 72 6f 64 75 63      was introduc
4210: 65 64 20 62 79 20 74 68 65 20 70 72 65 76 69 6f  ed by the previo
4220: 75 73 20 72 65 6c 65 61 73 65 2e 3c 2f 6c 69 3e  us release.</li>
4230: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a  .}..chng {2004 J
4240: 61 6e 75 61 72 79 20 31 33 20 28 32 2e 38 2e 31  anuary 13 (2.8.1
4250: 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  0)} {.<li>Fix a 
4260: 70 6f 74 65 6e 74 69 61 6c 20 64 61 74 61 62 61  potential databa
4270: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 70 72  se corruption pr
4280: 6f 62 6c 65 6d 20 6f 6e 20 55 6e 69 78 20 63 61  oblem on Unix ca
4290: 75 73 65 64 20 62 79 20 74 68 65 20 66 61 63 74  used by the fact
42a0: 0a 20 20 20 20 74 68 61 74 20 61 6c 6c 20 70 6f  .    that all po
42b0: 73 69 78 20 61 64 76 69 73 6f 72 79 20 6c 6f 63  six advisory loc
42c0: 6b 73 20 61 72 65 20 63 6c 65 61 72 65 64 20 77  ks are cleared w
42d0: 68 65 6e 65 76 65 72 20 79 6f 75 20 63 6c 6f 73  henever you clos
42e0: 65 28 29 20 61 20 66 69 6c 65 2e 0a 20 20 20 20  e() a file..    
42f0: 54 68 65 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20  The work around 
4300: 69 74 20 74 6f 20 65 6d 62 61 72 67 6f 20 61 6c  it to embargo al
4310: 6c 20 63 6c 6f 73 65 28 29 20 63 61 6c 6c 73 20  l close() calls 
4320: 77 68 69 6c 65 20 6c 6f 63 6b 73 20 61 72 65 20  while locks are 
4330: 0a 20 20 20 20 6f 75 74 73 74 61 6e 64 69 6e 67  .    outstanding
4340: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f  .</li>.<li>Perfo
4350: 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65  rmance enhanceme
4360: 6e 74 73 20 6f 6e 20 73 6f 6d 65 20 63 6f 72 6e  nts on some corn
4370: 65 72 20 63 61 73 65 73 20 6f 66 20 43 4f 55 4e  er cases of COUN
4380: 54 28 2a 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  T(*).</li>.<li>M
4390: 61 6b 65 20 73 75 72 65 20 74 68 65 20 69 6e 2d  ake sure the in-
43a0: 6d 65 6d 6f 72 79 20 62 61 63 6b 65 6e 64 20 72  memory backend r
43b0: 65 73 70 6f 6e 73 65 20 73 61 6e 65 6c 79 20 69  esponse sanely i
43c0: 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 73  f malloc() fails
43d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
43e0: 20 73 71 6c 69 74 65 5f 65 78 65 63 28 29 20 74   sqlite_exec() t
43f0: 6f 20 62 65 20 63 61 6c 6c 65 64 20 66 72 6f 6d  o be called from
4400: 20 77 69 74 68 69 6e 20 75 73 65 72 2d 64 65 66   within user-def
4410: 69 6e 65 64 20 53 51 4c 0a 20 20 20 20 66 75 6e  ined SQL.    fun
4420: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
4430: 3e 49 6d 70 72 6f 76 65 64 20 61 63 63 75 72 61  >Improved accura
4440: 63 79 20 6f 66 20 66 6c 6f 61 74 69 6e 67 2d 70  cy of floating-p
4450: 6f 69 6e 74 20 63 6f 6e 76 65 72 73 69 6f 6e 73  oint conversions
4460: 20 75 73 69 6e 67 20 22 6c 6f 6e 67 20 64 6f 75   using "long dou
4470: 62 6c 65 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ble".</li>.<li>B
4480: 75 67 20 66 69 78 65 73 20 69 6e 20 74 68 65 20  ug fixes in the 
4490: 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74  experimental dat
44a0: 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73  e/time functions
44b0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
44c0: 32 30 30 34 20 4a 61 6e 75 61 72 79 20 35 20 28  2004 January 5 (
44d0: 32 2e 38 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.8.9)} {.<li>Fi
44e0: 78 20 61 20 33 32 2d 62 69 74 20 69 6e 74 65 67  x a 32-bit integ
44f0: 65 72 20 6f 76 65 72 66 6c 6f 77 20 70 72 6f 62  er overflow prob
4500: 6c 65 6d 20 74 68 61 74 20 63 6f 75 6c 64 20 72  lem that could r
4510: 65 73 75 6c 74 20 69 6e 20 63 6f 72 72 75 70 74  esult in corrupt
4520: 0a 20 20 20 20 69 6e 64 69 63 65 73 20 69 6e 20  .    indices in 
4530: 61 20 64 61 74 61 62 61 73 65 20 69 66 20 6c 61  a database if la
4540: 72 67 65 20 6e 65 67 61 74 69 76 65 20 6e 75 6d  rge negative num
4550: 62 65 72 73 20 28 6c 65 73 73 20 74 68 61 6e 20  bers (less than 
4560: 2d 32 31 34 37 34 38 33 36 34 38 29 0a 20 20 20  -2147483648).   
4570: 20 77 65 72 65 20 69 6e 73 65 72 74 65 64 20 69   were inserted i
4580: 6e 74 6f 20 61 20 69 6e 64 65 78 65 64 20 6e 75  nto a indexed nu
4590: 6d 65 72 69 63 20 63 6f 6c 75 6d 6e 2e 3c 2f 6c  meric column.</l
45a0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6c 6f 63  i>.<li>Fix a loc
45b0: 6b 69 6e 67 20 70 72 6f 62 6c 65 6d 20 6f 6e 20  king problem on 
45c0: 6d 75 6c 74 69 2d 74 68 72 65 61 64 65 64 20 4c  multi-threaded L
45d0: 69 6e 75 78 20 69 6d 70 6c 65 6d 65 6e 74 61 74  inux implementat
45e0: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ions.</li>.<li>A
45f0: 6c 77 61 79 73 20 75 73 65 20 22 2e 22 20 69 6e  lways use "." in
4600: 73 74 65 61 64 20 6f 66 20 22 2c 22 20 61 73 20  stead of "," as 
4610: 74 68 65 20 64 65 63 69 6d 61 6c 20 70 6f 69 6e  the decimal poin
4620: 74 20 65 76 65 6e 20 69 66 20 74 68 65 20 6c 6f  t even if the lo
4630: 63 61 6c 65 0a 20 20 20 20 72 65 71 75 65 73 74  cale.    request
4640: 73 20 22 2c 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  s ",".</li>.<li>
4650: 41 64 64 65 64 20 55 54 43 20 74 6f 20 6c 6f 63  Added UTC to loc
4660: 61 6c 74 69 6d 65 20 63 6f 6e 76 65 72 73 69 6f  altime conversio
4670: 6e 73 20 74 6f 20 74 68 65 20 65 78 70 65 72 69  ns to the experi
4680: 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65  mental date/time
4690: 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2e 3c  .    functions.<
46a0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
46b0: 65 73 20 74 6f 20 64 61 74 65 2f 74 69 6d 65 20  es to date/time 
46c0: 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  functions.</li>.
46d0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 44 65  }..chng {2003 De
46e0: 63 65 6d 62 65 72 20 31 37 20 28 32 2e 38 2e 38  cember 17 (2.8.8
46f0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 63  )} {.<li>Fix a c
4700: 72 69 74 69 63 61 6c 20 62 75 67 20 69 6e 74 72  ritical bug intr
4710: 6f 64 75 63 65 64 20 69 6e 74 6f 20 32 2e 38 2e  oduced into 2.8.
4720: 30 20 77 68 69 63 68 20 63 6f 75 6c 64 20 63 61  0 which could ca
4730: 75 73 65 0a 20 20 20 20 64 61 74 61 62 61 73 65  use.    database
4740: 20 63 6f 72 72 75 70 74 69 6f 6e 2e 3c 2f 6c 69   corruption.</li
4750: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62  >.<li>Fix a prob
4760: 6c 65 6d 20 77 69 74 68 20 33 2d 77 61 79 20 6a  lem with 3-way j
4770: 6f 69 6e 73 20 74 68 61 74 20 64 6f 20 6e 6f 74  oins that do not
4780: 20 75 73 65 20 69 6e 64 69 63 65 73 3c 2f 6c 69   use indices</li
4790: 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 43 55 55 4d  >.<li>The VACUUM
47a0: 20 63 6f 6d 6d 61 6e 64 20 6e 6f 77 20 77 6f 72   command now wor
47b0: 6b 73 20 77 69 74 68 20 74 68 65 20 6e 6f 6e 2d  ks with the non-
47c0: 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f 6c 69  callback API</li
47d0: 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 6d 65 6e  >.<li>Improvemen
47e0: 74 73 20 74 6f 20 74 68 65 20 22 50 52 41 47 4d  ts to the "PRAGM
47f0: 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63  A integrity_chec
4800: 6b 22 20 63 6f 6d 6d 61 6e 64 3c 2f 6c 69 3e 0a  k" command</li>.
4810: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 44 65  }..chng {2003 De
4820: 63 65 6d 62 65 72 20 34 20 28 32 2e 38 2e 37 29  cember 4 (2.8.7)
4830: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 65 78  } {.<li>Added ex
4840: 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74  perimental sqlit
4850: 65 5f 62 69 6e 64 28 29 20 61 6e 64 20 73 71 6c  e_bind() and sql
4860: 69 74 65 5f 72 65 73 65 74 28 29 20 41 50 49 73  ite_reset() APIs
4870: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74 68  .</li>.<li>If th
4880: 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 61  e name of the da
4890: 74 61 62 61 73 65 20 69 73 20 61 6e 20 65 6d 70  tabase is an emp
48a0: 74 79 20 73 74 72 69 6e 67 2c 20 6f 70 65 6e 20  ty string, open 
48b0: 61 20 6e 65 77 20 64 61 74 61 62 61 73 65 0a 20  a new database. 
48c0: 20 20 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72     in a temporar
48d0: 79 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 61  y file that is a
48e0: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c  utomatically del
48f0: 65 74 65 64 20 77 68 65 6e 20 74 68 65 20 64 61  eted when the da
4900: 74 61 62 61 73 65 0a 20 20 20 20 69 73 20 63 6c  tabase.    is cl
4910: 6f 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  osed.</li>.<li>P
4920: 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e  erformance enhan
4930: 63 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 6c  cements in the l
4940: 65 6d 6f 6e 2d 67 65 6e 65 72 61 74 65 64 20 70  emon-generated p
4950: 61 72 73 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45  arser</li>.<li>E
4960: 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74 65  xperimental date
4970: 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20  /time functions 
4980: 72 65 76 69 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  revised.</li>.<l
4990: 69 3e 44 69 73 61 6c 6c 6f 77 20 74 65 6d 70 6f  i>Disallow tempo
49a0: 72 61 72 79 20 69 6e 64 69 63 65 73 20 6f 6e 20  rary indices on 
49b0: 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c 65 73  permanent tables
49c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d  .</li>.<li>Docum
49d0: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
49e0: 20 61 6e 64 20 74 79 70 6f 20 66 69 78 65 73 3c   and typo fixes<
49f0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 65  /li>.<li>Added e
4a00: 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69  xperimental sqli
4a10: 74 65 5f 70 72 6f 67 72 65 73 73 5f 68 61 6e 64  te_progress_hand
4a20: 6c 65 72 28 29 20 63 61 6c 6c 62 61 63 6b 20 41  ler() callback A
4a30: 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  PI</li>.<li>Remo
4a40: 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ved support for 
4a50: 74 68 65 20 4f 72 61 63 6c 65 38 20 6f 75 74 65  the Oracle8 oute
4a60: 72 20 6a 6f 69 6e 20 73 79 6e 74 61 78 2e 3c 2f  r join syntax.</
4a70: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 47 4c  li>.<li>Allow GL
4a80: 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70 65 72  OB and LIKE oper
4a90: 61 74 6f 72 73 20 74 6f 20 77 6f 72 6b 20 61 73  ators to work as
4aa0: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
4ab0: 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72  .<li>Other minor
4ac0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61   documentation a
4ad0: 6e 64 20 6d 61 6b 65 66 69 6c 65 20 63 68 61 6e  nd makefile chan
4ae0: 67 65 73 20 61 6e 64 20 62 75 67 20 66 69 78 65  ges and bug fixe
4af0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
4b00: 7b 32 30 30 33 20 41 75 67 75 73 74 20 32 31 20  {2003 August 21 
4b10: 28 32 2e 38 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 4d  (2.8.6)} {.<li>M
4b20: 6f 76 65 64 20 74 68 65 20 43 56 53 20 72 65 70  oved the CVS rep
4b30: 6f 73 69 74 6f 72 79 20 74 6f 20 77 77 77 2e 73  ository to www.s
4b40: 71 6c 69 74 65 2e 6f 72 67 3c 2f 6c 69 3e 0a 3c  qlite.org</li>.<
4b50: 6c 69 3e 55 70 64 61 74 65 20 74 68 65 20 4e 55  li>Update the NU
4b60: 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75  LL-handling docu
4b70: 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a  mentation.</li>.
4b80: 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c  <li>Experimental
4b90: 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74   date/time funct
4ba0: 69 6f 6e 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e  ions added.</li>
4bb0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 63 6f  .<li>Bug fix: co
4bc0: 72 72 65 63 74 6c 79 20 65 76 61 6c 75 61 74 65  rrectly evaluate
4bd0: 20 61 20 76 69 65 77 20 6f 66 20 61 20 76 69 65   a view of a vie
4be0: 77 20 77 69 74 68 6f 75 74 20 73 65 67 66 61 75  w without segfau
4bf0: 6c 74 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lting.</li>.<li>
4c00: 42 75 67 20 66 69 78 3a 20 70 72 65 76 65 6e 74  Bug fix: prevent
4c10: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
4c20: 74 69 6f 6e 20 69 66 20 79 6f 75 20 64 72 6f 70  tion if you drop
4c30: 70 65 64 20 61 0a 20 20 20 20 74 72 69 67 67 65  ped a.    trigge
4c40: 72 20 74 68 61 74 20 68 61 64 20 74 68 65 20 73  r that had the s
4c50: 61 6d 65 20 6e 61 6d 65 20 61 73 20 61 20 74 61  ame name as a ta
4c60: 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ble.</li>.<li>Bu
4c70: 67 20 66 69 78 3a 20 61 6c 6c 6f 77 20 61 20 56  g fix: allow a V
4c80: 41 43 55 55 4d 20 28 77 69 74 68 6f 75 74 20 73  ACUUM (without s
4c90: 65 67 66 61 75 6c 74 69 6e 67 29 20 6f 6e 20 61  egfaulting) on a
4ca0: 6e 20 65 6d 70 74 79 0a 20 20 20 20 64 61 74 61  n empty.    data
4cb0: 62 61 73 65 20 61 66 74 65 72 20 73 65 74 74 69  base after setti
4cc0: 6e 67 20 74 68 65 20 45 4d 50 54 59 5f 52 45 53  ng the EMPTY_RES
4cd0: 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72  ULT_CALLBACKS pr
4ce0: 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  agma.</li>.<li>B
4cf0: 75 67 20 66 69 78 3a 20 69 66 20 61 6e 20 69 6e  ug fix: if an in
4d00: 74 65 67 65 72 20 76 61 6c 75 65 20 77 69 6c 6c  teger value will
4d10: 20 6e 6f 74 20 66 69 74 20 69 6e 20 61 20 33 32   not fit in a 32
4d20: 2d 62 69 74 20 69 6e 74 2c 20 73 74 6f 72 65 20  -bit int, store 
4d30: 69 74 20 69 6e 0a 20 20 20 20 61 20 64 6f 75 62  it in.    a doub
4d40: 6c 65 20 69 6e 73 74 65 61 64 2e 3c 2f 6c 69 3e  le instead.</li>
4d50: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 4d 61  .<li>Bug fix: Ma
4d60: 6b 65 20 73 75 72 65 20 74 68 65 20 6a 6f 75 72  ke sure the jour
4d70: 6e 61 6c 20 66 69 6c 65 20 64 69 72 65 63 74 6f  nal file directo
4d80: 72 79 20 65 6e 74 72 79 20 69 73 20 63 6f 6d 6d  ry entry is comm
4d90: 69 74 74 65 64 20 74 6f 20 64 69 73 6b 0a 20 20  itted to disk.  
4da0: 20 20 62 65 66 6f 72 65 20 77 72 69 74 69 6e 67    before writing
4db0: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69   the database fi
4dc0: 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  le.</li>.}..chng
4dd0: 20 7b 32 30 30 33 20 4a 75 6c 79 20 32 32 20 28   {2003 July 22 (
4de0: 32 2e 38 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 61  2.8.5)} {.<li>Ma
4df0: 6b 65 20 4c 49 4d 49 54 20 77 6f 72 6b 20 6f 6e  ke LIMIT work on
4e00: 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45   a compound SELE
4e10: 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c  CT statement.</l
4e20: 69 3e 0a 3c 6c 69 3e 4c 49 4d 49 54 20 30 20 6e  i>.<li>LIMIT 0 n
4e30: 6f 77 20 73 68 6f 77 73 20 6e 6f 20 72 6f 77 73  ow shows no rows
4e40: 2e 20 20 55 73 65 20 4c 49 4d 49 54 20 2d 31 20  .  Use LIMIT -1 
4e50: 74 6f 20 73 65 65 20 61 6c 6c 20 72 6f 77 73 2e  to see all rows.
4e60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63  </li>.<li>Correc
4e70: 74 6c 79 20 68 61 6e 64 6c 65 20 63 6f 6d 70 61  tly handle compa
4e80: 72 69 73 6f 6e 73 20 62 65 74 77 65 65 6e 20 61  risons between a
4e90: 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  n INTEGER PRIMAR
4ea0: 59 20 4b 45 59 20 61 6e 64 0a 20 20 20 20 61 20  Y KEY and.    a 
4eb0: 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e  floating point n
4ec0: 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  umber.</li>.<li>
4ed0: 46 69 78 20 73 65 76 65 72 61 6c 20 69 6d 70 6f  Fix several impo
4ee0: 72 74 61 6e 74 20 62 75 67 73 20 69 6e 20 74 68  rtant bugs in th
4ef0: 65 20 6e 65 77 20 41 54 54 41 43 48 20 61 6e 64  e new ATTACH and
4f00: 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73   DETACH commands
4f10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74  .</li>.<li>Updat
4f20: 65 64 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22  ed the <a href="
4f30: 6e 75 6c 6c 73 2e 68 74 6d 6c 22 3e 4e 55 4c 4c  nulls.html">NULL
4f40: 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75 6d 65  -handling docume
4f50: 6e 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 20 0a 3c 6c  nt</a>.</li> .<l
4f60: 69 3e 41 6c 6c 6f 77 20 4e 55 4c 4c 20 61 72 67  i>Allow NULL arg
4f70: 75 6d 65 6e 74 73 20 69 6e 20 73 71 6c 69 74 65  uments in sqlite
4f80: 5f 63 6f 6d 70 69 6c 65 28 29 20 61 6e 64 20 73  _compile() and s
4f90: 71 6c 69 74 65 5f 73 74 65 70 28 29 2e 3c 2f 6c  qlite_step().</l
4fa0: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f  i>.<li>Many mino
4fb0: 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e  r bug fixes</li>
4fc0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a  .}..chng {2003 J
4fd0: 75 6e 65 20 32 39 20 28 32 2e 38 2e 34 29 7d 20  une 29 (2.8.4)} 
4fe0: 7b 0a 3c 6c 69 3e 45 6e 68 61 6e 63 65 64 20 74  {.<li>Enhanced t
4ff0: 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74 65 67  he "PRAGMA integ
5000: 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f 6d 6d  rity_check" comm
5010: 61 6e 64 20 74 6f 20 76 65 72 69 66 79 20 69 6e  and to verify in
5020: 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  dices.</li>.<li>
5030: 41 64 64 65 64 20 61 75 74 68 6f 72 69 7a 61 74  Added authorizat
5040: 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f 72 20 74 68  ion hooks for th
5050: 65 20 6e 65 77 20 41 54 54 41 43 48 20 61 6e 64  e new ATTACH and
5060: 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73   DETACH commands
5070: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20  .</li>.<li>Many 
5080: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70  documentation up
5090: 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  dates</li>.<li>M
50a0: 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20 66 69  any minor bug fi
50b0: 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  xes</li>.}..chng
50c0: 20 7b 32 30 30 33 20 4a 75 6e 65 20 34 20 28 32   {2003 June 4 (2
50d0: 2e 38 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .8.3)} {.<li>Fix
50e0: 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20   a problem that 
50f0: 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74 68 65  will corrupt the
5100: 20 69 6e 64 69 63 65 73 20 6f 6e 20 61 20 74 61   indices on a ta
5110: 62 6c 65 20 69 66 20 79 6f 75 0a 20 20 20 20 64  ble if you.    d
5120: 6f 20 61 6e 20 49 4e 53 45 52 54 20 4f 52 20 52  o an INSERT OR R
5130: 45 50 4c 41 43 45 20 6f 72 20 61 6e 20 55 50 44  EPLACE or an UPD
5140: 41 54 45 20 4f 52 20 52 45 50 4c 41 43 45 20 6f  ATE OR REPLACE o
5150: 6e 20 61 20 74 61 62 6c 65 20 74 68 61 74 0a 20  n a table that. 
5160: 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 49     contains an I
5170: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
5180: 45 59 20 70 6c 75 73 20 6f 6e 65 20 6f 72 20 6d  EY plus one or m
5190: 6f 72 65 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69  ore indices.</li
51a0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
51b0: 69 6e 20 77 69 6e 64 6f 77 73 20 6c 6f 63 6b 69  in windows locki
51c0: 6e 67 20 63 6f 64 65 20 73 6f 20 74 68 61 74 20  ng code so that 
51d0: 6c 6f 63 6b 73 20 77 6f 72 6b 20 63 6f 72 72 65  locks work corre
51e0: 63 74 6c 79 0a 20 20 20 20 77 68 65 6e 20 73 69  ctly.    when si
51f0: 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 61 63 63  multaneously acc
5200: 65 73 73 65 64 20 62 79 20 57 69 6e 39 35 20 61  essed by Win95 a
5210: 6e 64 20 57 69 6e 4e 54 20 73 79 73 74 65 6d 73  nd WinNT systems
5220: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
5230: 68 65 20 61 62 69 6c 69 74 79 20 66 6f 72 20 49  he ability for I
5240: 4e 53 45 52 54 20 61 6e 64 20 55 50 44 41 54 45  NSERT and UPDATE
5250: 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 72   statements to r
5260: 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20 20 20  efer to the.    
5270: 22 72 6f 77 69 64 22 20 28 6f 72 20 22 5f 72 6f  "rowid" (or "_ro
5280: 77 69 64 5f 22 20 6f 72 20 22 6f 69 64 22 29 20  wid_" or "oid") 
5290: 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  columns.</li>.<l
52a0: 69 3e 4f 74 68 65 72 20 69 6d 70 6f 72 74 61 6e  i>Other importan
52b0: 74 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e  t bug fixes</li>
52c0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4d  .}..chng {2003 M
52d0: 61 79 20 31 37 20 28 32 2e 38 2e 32 29 7d 20 7b  ay 17 (2.8.2)} {
52e0: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c  .<li>Fix a probl
52f0: 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63 6f 72  em that will cor
5300: 72 75 70 74 20 74 68 65 20 64 61 74 61 62 61 73  rupt the databas
5310: 65 20 66 69 6c 65 20 69 66 20 79 6f 75 20 64 72  e file if you dr
5320: 6f 70 20 61 0a 20 20 20 20 74 61 62 6c 65 20 66  op a.    table f
5330: 72 6f 6d 20 74 68 65 20 6d 61 69 6e 20 64 61 74  rom the main dat
5340: 61 62 61 73 65 20 74 68 61 74 20 68 61 73 20 61  abase that has a
5350: 20 54 45 4d 50 20 69 6e 64 65 78 2e 3c 2f 6c 69   TEMP index.</li
5360: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
5370: 4d 61 79 20 31 36 20 28 32 2e 38 2e 31 29 7d 20  May 16 (2.8.1)} 
5380: 7b 0a 3c 6c 69 3e 52 65 61 63 74 69 76 61 74 65  {.<li>Reactivate
5390: 64 20 74 68 65 20 56 41 43 55 55 4d 20 63 6f 6d  d the VACUUM com
53a0: 6d 61 6e 64 20 74 68 61 74 20 72 65 63 6c 61 69  mand that reclai
53b0: 6d 73 20 75 6e 75 73 65 64 20 64 69 73 6b 20 73  ms unused disk s
53c0: 70 61 63 65 20 69 6e 20 0a 20 20 20 20 61 20 64  pace in .    a d
53d0: 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c 2f 6c  atabase file.</l
53e0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
53f0: 20 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41   ATTACH and DETA
5400: 43 48 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 61  CH commands to a
5410: 6c 6c 6f 77 20 69 6e 74 65 72 61 63 74 69 6e 67  llow interacting
5420: 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65 0a 20   with multiple. 
5430: 20 20 20 64 61 74 61 62 61 73 65 20 66 69 6c 65     database file
5440: 73 20 61 74 20 74 68 65 20 73 61 6d 65 20 74 69  s at the same ti
5450: 6d 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  me.</li>.<li>Add
5460: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 54  ed support for T
5470: 45 4d 50 20 74 72 69 67 67 65 72 73 20 61 6e 64  EMP triggers and
5480: 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c   indices.</li>.<
5490: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
54a0: 20 66 6f 72 20 69 6e 2d 6d 65 6d 6f 72 79 20 64   for in-memory d
54b0: 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e 0a 3c  atabases.</li>.<
54c0: 6c 69 3e 52 65 6d 6f 76 65 64 20 74 68 65 20 65  li>Removed the e
54d0: 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69  xperimental sqli
54e0: 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c 65  te_open_aux_file
54f0: 28 29 2e 20 20 49 74 73 20 66 75 6e 63 74 69 6f  ().  Its functio
5500: 6e 20 69 73 0a 20 20 20 20 73 75 62 73 75 6d 65  n is.    subsume
5510: 64 20 69 6e 20 74 68 65 20 6e 65 77 20 41 54 54  d in the new ATT
5520: 41 43 48 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69  ACH command.</li
5530: 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 63 65 64  >.<li>The preced
5540: 65 6e 63 65 20 6f 72 64 65 72 20 66 6f 72 20 4f  ence order for O
5550: 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73  N CONFLICT claus
5560: 65 73 20 77 61 73 20 63 68 61 6e 67 65 64 20 73  es was changed s
5570: 6f 20 74 68 61 74 0a 20 20 20 20 4f 4e 20 43 4f  o that.    ON CO
5580: 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73 20 6f  NFLICT clauses o
5590: 6e 20 42 45 47 49 4e 20 73 74 61 74 65 6d 65 6e  n BEGIN statemen
55a0: 74 73 20 68 61 76 65 20 61 20 68 69 67 68 65 72  ts have a higher
55b0: 20 70 72 65 63 65 64 65 6e 63 65 20 74 68 61 6e   precedence than
55c0: 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49 43 54  .    ON CONFLICT
55d0: 20 63 6c 61 75 73 65 73 20 6f 6e 20 63 6f 6e 73   clauses on cons
55e0: 74 72 61 69 6e 74 73 2e 0a 3c 6c 69 3e 4d 61 6e  traints..<li>Man
55f0: 79 2c 20 6d 61 6e 79 20 62 75 67 20 66 69 78 65  y, many bug fixe
5600: 73 20 61 6e 64 20 63 6f 6d 70 61 74 69 62 69 6c  s and compatibil
5610: 69 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  ity enhancements
5620: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5630: 32 30 30 33 20 46 65 62 20 31 36 20 28 32 2e 38  2003 Feb 16 (2.8
5640: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66  .0)} {.<li>Modif
5650: 69 65 64 20 74 68 65 20 6a 6f 75 72 6e 61 6c 20  ied the journal 
5660: 66 69 6c 65 20 66 6f 72 6d 61 74 20 74 6f 20 6d  file format to m
5670: 61 6b 65 20 69 74 20 6d 6f 72 65 20 72 65 73 69  ake it more resi
5680: 73 74 61 6e 74 20 74 6f 20 63 6f 72 72 75 70 74  stant to corrupt
5690: 69 6f 6e 0a 20 20 20 20 74 68 61 74 20 63 61 6e  ion.    that can
56a0: 20 6f 63 63 75 72 20 61 66 74 65 72 20 61 6e 20   occur after an 
56b0: 4f 53 20 63 72 61 73 68 20 6f 72 20 70 6f 77 65  OS crash or powe
56c0: 72 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a  r failure.</li>.
56d0: 3c 6c 69 3e 41 64 64 65 64 20 61 20 6e 65 77 20  <li>Added a new 
56e0: 43 2f 43 2b 2b 20 41 50 49 20 74 68 61 74 20 64  C/C++ API that d
56f0: 6f 65 73 20 6e 6f 74 20 75 73 65 20 63 61 6c 6c  oes not use call
5700: 62 61 63 6b 20 66 6f 72 20 72 65 74 75 72 6e 69  back for returni
5710: 6e 67 20 64 61 74 61 2e 3c 2f 6c 69 3e 0a 7d 0a  ng data.</li>.}.
5720: 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 61 6e 20  .chng {2003 Jan 
5730: 32 35 20 28 32 2e 37 2e 36 29 7d 20 7b 0a 3c 6c  25 (2.7.6)} {.<l
5740: 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d  i>Performance im
5750: 70 72 6f 76 65 6d 65 6e 74 73 2e 20 20 54 68 65  provements.  The
5760: 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 77 20   library is now 
5770: 6d 75 63 68 20 66 61 73 74 65 72 2e 3c 2f 6c 69  much faster.</li
5780: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
5790: 3c 62 3e 73 71 6c 69 74 65 5f 73 65 74 5f 61 75  <b>sqlite_set_au
57a0: 74 68 6f 72 69 7a 65 72 28 29 3c 2f 62 3e 20 41  thorizer()</b> A
57b0: 50 49 2e 20 20 46 6f 72 6d 61 6c 20 64 6f 63 75  PI.  Formal docu
57c0: 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73 0a 20 20  mentation has.  
57d0: 20 20 6e 6f 74 20 62 65 65 6e 20 77 72 69 74 74    not been writt
57e0: 65 6e 20 2d 20 73 65 65 20 74 68 65 20 73 6f 75  en - see the sou
57f0: 72 63 65 20 63 6f 64 65 20 63 6f 6d 6d 65 6e 74  rce code comment
5800: 73 20 66 6f 72 20 69 6e 73 74 72 75 63 74 69 6f  s for instructio
5810: 6e 73 20 6f 6e 0a 20 20 20 20 68 6f 77 20 74 6f  ns on.    how to
5820: 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 69   use this functi
5830: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  on.</li>.<li>Fix
5840: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 47 4c   a bug in the GL
5850: 4f 42 20 6f 70 65 72 61 74 6f 72 20 74 68 61 74  OB operator that
5860: 20 77 61 73 20 70 72 65 76 65 6e 74 69 6e 67 20   was preventing 
5870: 69 74 20 66 72 6f 6d 20 77 6f 72 6b 69 6e 67 0a  it from working.
5880: 20 20 20 20 77 69 74 68 20 75 70 70 65 72 2d 63      with upper-c
5890: 61 73 65 20 6c 65 74 74 65 72 73 2e 3c 2f 6c 69  ase letters.</li
58a0: 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 6d 69  >.<li>Various mi
58b0: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e 3c 2f  nor bug fixes.</
58c0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
58d0: 32 20 44 65 63 20 32 37 20 28 32 2e 37 2e 35 29  2 Dec 27 (2.7.5)
58e0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 75  } {.<li>Fix an u
58f0: 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72  ninitialized var
5900: 69 61 62 6c 65 20 69 6e 20 70 61 67 65 72 2e 63  iable in pager.c
5910: 20 77 68 69 63 68 20 63 6f 75 6c 64 20 28 77 69   which could (wi
5920: 74 68 20 61 20 70 72 6f 62 61 62 69 6c 69 74 79  th a probability
5930: 0a 20 20 20 20 6f 66 20 61 62 6f 75 74 20 31 20  .    of about 1 
5940: 69 6e 20 34 20 62 69 6c 6c 69 6f 6e 29 20 72 65  in 4 billion) re
5950: 73 75 6c 74 20 69 6e 20 61 20 63 6f 72 72 75 70  sult in a corrup
5960: 74 65 64 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c  ted database.</l
5970: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
5980: 20 44 65 63 20 31 37 20 28 32 2e 37 2e 34 29 7d   Dec 17 (2.7.4)}
5990: 20 7b 0a 3c 6c 69 3e 44 61 74 61 62 61 73 65 20   {.<li>Database 
59a0: 66 69 6c 65 73 20 63 61 6e 20 6e 6f 77 20 67 72  files can now gr
59b0: 6f 77 20 74 6f 20 62 65 20 75 70 20 74 6f 20 32  ow to be up to 2
59c0: 5e 34 31 20 62 79 74 65 73 2e 20 20 54 68 65 20  ^41 bytes.  The 
59d0: 6f 6c 64 20 6c 69 6d 69 74 0a 20 20 20 20 77 61  old limit.    wa
59e0: 73 20 32 5e 33 31 20 62 79 74 65 73 2e 3c 2f 6c  s 2^31 bytes.</l
59f0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74 69 6d  i>.<li>The optim
5a00: 69 7a 65 72 20 77 69 6c 6c 20 6e 6f 77 20 73 63  izer will now sc
5a10: 61 6e 20 74 61 62 6c 65 73 20 69 6e 20 74 68 65  an tables in the
5a20: 20 72 65 76 65 72 73 65 20 69 66 20 64 6f 69 6e   reverse if doin
5a30: 67 20 73 6f 20 77 69 6c 6c 0a 20 20 20 20 73 61  g so will.    sa
5a40: 74 69 73 66 79 20 61 6e 20 4f 52 44 45 52 20 42  tisfy an ORDER B
5a50: 59 20 2e 2e 2e 20 44 45 53 43 20 63 6c 61 75 73  Y ... DESC claus
5a60: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  e.</li>.<li>The 
5a70: 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65 20 6f 66  full pathname of
5a80: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69   the database fi
5a90: 6c 65 20 69 73 20 6e 6f 77 20 72 65 6d 65 6d 62  le is now rememb
5aa0: 65 72 65 64 20 65 76 65 6e 20 69 66 0a 20 20 20  ered even if.   
5ab0: 20 61 20 72 65 6c 61 74 69 76 65 20 70 61 74 68   a relative path
5ac0: 20 69 73 20 70 61 73 73 65 64 20 69 6e 74 6f 20   is passed into 
5ad0: 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 2e 20 20  sqlite_open().  
5ae0: 54 68 69 73 20 61 6c 6c 6f 77 73 20 0a 20 20 20  This allows .   
5af0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f 20   the library to 
5b00: 63 6f 6e 74 69 6e 75 65 20 6f 70 65 72 61 74 69  continue operati
5b10: 6e 67 20 63 6f 72 72 65 63 74 6c 79 20 61 66 74  ng correctly aft
5b20: 65 72 20 61 20 63 68 64 69 72 28 29 2e 3c 2f 6c  er a chdir().</l
5b30: 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70  i>.<li>Speed imp
5b40: 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74 68 65  rovements in the
5b50: 20 56 44 42 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   VDBE.</li>.<li>
5b60: 4c 6f 74 73 20 6f 66 20 6c 69 74 74 6c 65 20 62  Lots of little b
5b70: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
5b80: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4f 63 74  ..chng {2002 Oct
5b90: 20 33 30 20 28 32 2e 37 2e 33 29 7d 20 7b 0a 3c   30 (2.7.3)} {.<
5ba0: 6c 69 3e 56 61 72 69 6f 75 73 20 63 6f 6d 70 69  li>Various compi
5bb0: 6c 65 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74  ler compatibilit
5bc0: 79 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  y fixes.</li>.<l
5bd0: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
5be0: 68 65 20 22 65 78 70 72 20 49 4e 20 28 29 22 20  he "expr IN ()" 
5bf0: 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c  operator.</li>.<
5c00: 6c 69 3e 41 63 63 65 70 74 20 63 6f 6c 75 6d 6e  li>Accept column
5c10: 20 6e 61 6d 65 73 20 69 6e 20 70 61 72 65 6e 74   names in parent
5c20: 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  heses.</li>.<li>
5c30: 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69  Fix a problem wi
5c40: 74 68 20 73 74 72 69 6e 67 20 6d 65 6d 6f 72 79  th string memory
5c50: 20 6d 61 6e 61 67 65 6d 65 6e 74 20 69 6e 20 74   management in t
5c60: 68 65 20 56 44 42 45 3c 2f 6c 69 3e 0a 3c 6c 69  he VDBE</li>.<li
5c70: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68  >Fix a bug in th
5c80: 65 20 22 74 61 62 6c 65 5f 69 6e 66 6f 22 20 70  e "table_info" p
5c90: 72 61 67 6d 61 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ragma"</li>.<li>
5ca0: 45 78 70 6f 72 74 20 74 68 65 20 73 71 6c 69 74  Export the sqlit
5cb0: 65 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70 65 28  e_function_type(
5cc0: 29 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 20 69  ) API function i
5cd0: 6e 20 74 68 65 20 57 69 6e 64 6f 77 73 20 44 4c  n the Windows DL
5ce0: 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 6c  L</li>.<li>Fix l
5cf0: 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f 72 20  ocking behavior 
5d00: 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 3c 2f 6c  under windows</l
5d10: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
5d20: 20 69 6e 20 4c 45 46 54 20 4f 55 54 45 52 20 4a   in LEFT OUTER J
5d30: 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  OIN</li>.}..chng
5d40: 20 7b 32 30 30 32 20 53 65 70 20 32 35 20 28 32   {2002 Sep 25 (2
5d50: 2e 37 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 50 72 65  .7.2)} {.<li>Pre
5d60: 76 65 6e 74 20 6a 6f 75 72 6e 61 6c 20 66 69 6c  vent journal fil
5d70: 65 20 6f 76 65 72 66 6c 6f 77 73 20 6f 6e 20 68  e overflows on h
5d80: 75 67 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73  uge transactions
5d90: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
5da0: 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 74 68 61   memory leak tha
5db0: 74 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e 20  t occurred when 
5dc0: 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 20 66 61  sqlite_open() fa
5dd0: 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 48  iled.</li>.<li>H
5de0: 6f 6e 6f 72 20 74 68 65 20 4f 52 44 45 52 20 42  onor the ORDER B
5df0: 59 20 61 6e 64 20 4c 49 4d 49 54 20 63 6c 61 75  Y and LIMIT clau
5e00: 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54 20 65  se of a SELECT e
5e10: 76 65 6e 20 69 66 20 74 68 65 0a 20 20 20 20 72  ven if the.    r
5e20: 65 73 75 6c 74 20 73 65 74 20 69 73 20 75 73 65  esult set is use
5e30: 64 20 66 6f 72 20 61 6e 20 49 4e 53 45 52 54 2e  d for an INSERT.
5e40: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
5e50: 20 70 75 74 20 77 72 69 74 65 20 6c 6f 63 6b 73   put write locks
5e60: 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 75 73 65   on the file use
5e70: 64 20 74 6f 20 68 6f 6c 64 20 54 45 4d 50 20 74  d to hold TEMP t
5e80: 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ables.</li>.<li>
5e90: 41 64 64 65 64 20 64 6f 63 75 6d 65 6e 74 61 74  Added documentat
5ea0: 69 6f 6e 20 6f 6e 20 53 45 4c 45 43 54 20 44 49  ion on SELECT DI
5eb0: 53 54 49 4e 43 54 20 61 6e 64 20 6f 6e 20 68 6f  STINCT and on ho
5ec0: 77 20 53 51 4c 69 74 65 20 68 61 6e 64 6c 65 73  w SQLite handles
5ed0: 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   NULLs.</li>.<li
5ee0: 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74  >Fix a problem t
5ef0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
5f00: 70 6f 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63 65  poor performance
5f10: 20 77 68 65 6e 20 6d 61 6e 79 20 74 68 6f 75 73   when many thous
5f20: 61 6e 64 73 0a 20 20 20 20 6f 66 20 53 51 4c 20  ands.    of SQL 
5f30: 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65 20  statements were 
5f40: 65 78 65 63 75 74 65 64 20 62 79 20 61 20 73 69  executed by a si
5f50: 6e 67 6c 65 20 73 71 6c 69 74 65 5f 65 78 65 63  ngle sqlite_exec
5f60: 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a  () call.</li>.}.
5f70: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20  .chng {2002 Aug 
5f80: 33 31 20 28 32 2e 37 2e 31 29 7d 20 7b 0a 3c 6c  31 (2.7.1)} {.<l
5f90: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
5fa0: 68 65 20 4f 52 44 45 52 20 42 59 20 6c 6f 67 69  he ORDER BY logi
5fb0: 63 20 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f  c that was intro
5fc0: 64 75 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e  duced in version
5fd0: 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a 3c 6c 69 3e   2.7.0</li>.<li>
5fe0: 43 2d 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73  C-style comments
5ff0: 20 61 72 65 20 6e 6f 77 20 61 63 63 65 70 74 65   are now accepte
6000: 64 20 62 79 20 74 68 65 20 74 6f 6b 65 6e 69 7a  d by the tokeniz
6010: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 4e 53  er.</li>.<li>INS
6020: 45 52 54 20 72 75 6e 73 20 61 20 6c 69 74 74 6c  ERT runs a littl
6030: 65 20 66 61 73 74 65 72 20 77 68 65 6e 20 74 68  e faster when th
6040: 65 20 73 6f 75 72 63 65 20 69 73 20 61 20 53 45  e source is a SE
6050: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
6060: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6070: 30 32 20 41 75 67 20 32 35 20 28 32 2e 37 2e 30  02 Aug 25 (2.7.0
6080: 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 61 20  )} {.<li>Make a 
6090: 64 69 73 74 69 6e 63 74 69 6f 6e 20 62 65 74 77  distinction betw
60a0: 65 65 6e 20 6e 75 6d 65 72 69 63 20 61 6e 64 20  een numeric and 
60b0: 74 65 78 74 20 76 61 6c 75 65 73 20 77 68 65 6e  text values when
60c0: 20 73 6f 72 74 69 6e 67 2e 0a 20 20 20 20 54 65   sorting..    Te
60d0: 78 74 20 76 61 6c 75 65 73 20 73 6f 72 74 20 61  xt values sort a
60e0: 63 63 6f 72 64 69 6e 67 20 74 6f 20 6d 65 6d 63  ccording to memc
60f0: 6d 70 28 29 2e 20 20 4e 75 6d 65 72 69 63 20 76  mp().  Numeric v
6100: 61 6c 75 65 73 20 73 6f 72 74 20 69 6e 0a 20 20  alues sort in.  
6110: 20 20 6e 75 6d 65 72 69 63 20 6f 72 64 65 72 2e    numeric order.
6120: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
6130: 6d 75 6c 74 69 70 6c 65 20 73 69 6d 75 6c 74 61  multiple simulta
6140: 6e 65 6f 75 73 20 72 65 61 64 65 72 73 20 75 6e  neous readers un
6150: 64 65 72 20 77 69 6e 64 6f 77 73 20 62 79 20 73  der windows by s
6160: 69 6d 75 6c 61 74 69 6e 67 0a 20 20 20 20 74 68  imulating.    th
6170: 65 20 72 65 61 64 65 72 2f 77 72 69 74 65 72 73  e reader/writers
6180: 20 6c 6f 63 6b 73 20 74 68 61 74 20 61 72 65 20   locks that are 
6190: 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 57 69 6e  missing from Win
61a0: 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c 69 3e 0a 3c  95/98/ME.</li>.<
61b0: 6c 69 3e 41 6e 20 65 72 72 6f 72 20 69 73 20 6e  li>An error is n
61c0: 6f 77 20 72 65 74 75 72 6e 65 64 20 77 68 65 6e  ow returned when
61d0: 20 74 72 79 69 6e 67 20 74 6f 20 73 74 61 72 74   trying to start
61e0: 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69   a transaction i
61f0: 66 0a 20 20 20 20 61 6e 6f 74 68 65 72 20 74 72  f.    another tr
6200: 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 61 6c 72  ansaction is alr
6210: 65 61 64 79 20 61 63 74 69 76 65 2e 3c 2f 6c 69  eady active.</li
6220: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
6230: 41 75 67 20 31 32 20 28 32 2e 36 2e 33 29 7d 20  Aug 12 (2.6.3)} 
6240: 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62  {.<li>Add the ab
6250: 69 6c 69 74 79 20 74 6f 20 72 65 61 64 20 62 6f  ility to read bo
6260: 74 68 20 6c 69 74 74 6c 65 2d 65 6e 64 69 61 6e  th little-endian
6270: 20 61 6e 64 20 62 69 67 2d 65 6e 64 69 61 6e 20   and big-endian 
6280: 64 61 74 61 62 61 73 65 73 2e 0a 20 20 20 20 53  databases..    S
6290: 6f 20 64 61 74 61 62 61 73 65 20 63 72 65 61 74  o database creat
62a0: 65 64 20 75 6e 64 65 72 20 53 75 6e 4f 53 20 6f  ed under SunOS o
62b0: 72 20 4d 61 63 4f 53 58 20 63 61 6e 20 62 65 20  r MacOSX can be 
62c0: 72 65 61 64 20 61 6e 64 20 77 72 69 74 74 65 6e  read and written
62d0: 0a 20 20 20 20 75 6e 64 65 72 20 4c 69 6e 75 78  .    under Linux
62e0: 20 6f 72 20 57 69 6e 64 6f 77 73 20 61 6e 64 20   or Windows and 
62f0: 76 69 63 65 20 76 65 72 73 61 2e 3c 2f 6c 69 3e  vice versa.</li>
6300: 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 74 6f 20  .<li>Convert to 
6310: 74 68 65 20 6e 65 77 20 77 65 62 73 69 74 65 3a  the new website:
6320: 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69   http://www.sqli
6330: 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e 0a 3c 6c 69  te.org/</li>.<li
6340: 3e 41 6c 6c 6f 77 20 74 72 61 6e 73 61 63 74 69  >Allow transacti
6350: 6f 6e 73 20 74 6f 20 73 70 61 6e 20 4c 69 6e 75  ons to span Linu
6360: 78 20 54 68 72 65 61 64 73 3c 2f 6c 69 3e 0a 3c  x Threads</li>.<
6370: 6c 69 3e 42 75 67 20 66 69 78 20 69 6e 20 74 68  li>Bug fix in th
6380: 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20  e processing of 
6390: 74 68 65 20 4f 52 44 45 52 20 42 59 20 63 6c 61  the ORDER BY cla
63a0: 75 73 65 20 66 6f 72 20 47 52 4f 55 50 20 42 59  use for GROUP BY
63b0: 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 7d 0a   queries</li>.}.
63c0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20  .chng {2002 Jly 
63d0: 33 30 20 28 32 2e 36 2e 32 29 7d 20 7b 0a 3c 6c  30 (2.6.2)} {.<l
63e0: 69 3e 54 65 78 74 20 66 69 6c 65 73 20 72 65 61  i>Text files rea
63f0: 64 20 62 79 20 74 68 65 20 43 4f 50 59 20 63 6f  d by the COPY co
6400: 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f 77 20 68 61  mmand can now ha
6410: 76 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e 61 74  ve line terminat
6420: 6f 72 73 0a 20 20 20 20 6f 66 20 4c 46 2c 20 20  ors.    of LF,  
6430: 43 52 4c 46 2c 20 6f 72 20 43 52 2e 3c 2f 6c 69  CRLF, or CR.</li
6440: 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45 5f 42 55 53  >.<li>SQLITE_BUS
6450: 59 20 69 73 20 68 61 6e 64 6c 65 64 20 63 6f 72  Y is handled cor
6460: 72 65 63 74 6c 79 20 69 66 20 65 6e 63 6f 75 6e  rectly if encoun
6470: 74 65 72 65 64 20 64 75 72 69 6e 67 20 64 61 74  tered during dat
6480: 61 62 61 73 65 0a 20 20 20 20 69 6e 69 74 69 61  abase.    initia
6490: 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  lization.</li>.<
64a0: 6c 69 3e 46 69 78 20 74 6f 20 55 50 44 41 54 45  li>Fix to UPDATE
64b0: 20 74 72 69 67 67 65 72 73 20 6f 6e 20 54 45 4d   triggers on TEM
64c0: 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c  P tables.</li>.<
64d0: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
64e0: 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d   updates.</li>.}
64f0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79  ..chng {2002 Jly
6500: 20 31 39 20 28 32 2e 36 2e 31 29 7d 20 7b 0a 3c   19 (2.6.1)} {.<
6510: 6c 69 3e 49 6e 63 6c 75 64 65 20 61 20 73 74 61  li>Include a sta
6520: 74 69 63 20 73 74 72 69 6e 67 20 69 6e 20 74 68  tic string in th
6530: 65 20 6c 69 62 72 61 72 79 20 74 68 61 74 20 72  e library that r
6540: 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 52  esponds to the R
6550: 43 53 0a 20 20 20 20 22 69 64 65 6e 74 22 20 63  CS.    "ident" c
6560: 6f 6d 6d 61 6e 64 20 61 6e 64 20 77 68 69 63 68  ommand and which
6570: 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6c 69   contains the li
6580: 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20 6e 75  brary version nu
6590: 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  mber.</li>.<li>F
65a0: 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20  ix an assertion 
65b0: 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f 63 63  failure that occ
65c0: 75 72 72 65 64 20 77 68 65 6e 20 64 65 6c 65 74  urred when delet
65d0: 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 6f 66 0a  ing all rows of.
65e0: 20 20 20 20 61 20 74 61 62 6c 65 20 77 69 74 68      a table with
65f0: 20 74 68 65 20 22 63 6f 75 6e 74 5f 63 68 61 6e   the "count_chan
6600: 67 65 73 22 20 70 72 61 67 6d 61 20 74 75 72 6e  ges" pragma turn
6610: 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ed on.</li>.<li>
6620: 42 65 74 74 65 72 20 65 72 72 6f 72 20 72 65 70  Better error rep
6630: 6f 72 74 69 6e 67 20 77 68 65 6e 20 70 72 6f 62  orting when prob
6640: 6c 65 6d 73 20 6f 63 63 75 72 20 64 75 72 69 6e  lems occur durin
6650: 67 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 0a  g the automatic.
6660: 20 20 20 20 32 2e 35 2e 36 20 74 6f 20 32 2e 36      2.5.6 to 2.6
6670: 2e 30 20 64 61 74 61 62 61 73 65 20 66 6f 72 6d  .0 database form
6680: 61 74 20 75 70 67 72 61 64 65 2e 3c 2f 6c 69 3e  at upgrade.</li>
6690: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
66a0: 6c 79 20 31 37 20 28 32 2e 36 2e 30 29 7d 20 7b  ly 17 (2.6.0)} {
66b0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
66c0: 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69 63 65  format of indice
66d0: 73 20 74 6f 20 63 6f 72 72 65 63 74 20 61 20 64  s to correct a d
66e0: 65 73 69 67 6e 20 66 6c 61 77 20 74 68 65 20 6f  esign flaw the o
66f0: 72 69 67 69 6e 61 74 65 64 0a 20 20 20 20 77 69  riginated.    wi
6700: 74 68 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e 30  th version 2.1.0
6710: 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22  .  <font color="
6720: 72 65 64 22 3e 2a 2a 2a 20 54 68 69 73 20 69 73  red">*** This is
6730: 20 61 6e 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65   an incompatible
6740: 0a 20 20 20 20 66 69 6c 65 20 66 6f 72 6d 61 74  .    file format
6750: 20 63 68 61 6e 67 65 20 2a 2a 2a 3c 2f 66 6f 6e   change ***</fon
6760: 74 3e 20 20 57 68 65 6e 20 76 65 72 73 69 6f 6e  t>  When version
6770: 20 32 2e 36 2e 30 20 6f 72 20 6c 61 74 65 72 20   2.6.0 or later 
6780: 6f 66 20 74 68 65 0a 20 20 20 20 6c 69 62 72 61  of the.    libra
6790: 72 79 20 61 74 74 65 6d 70 74 73 20 74 6f 20 6f  ry attempts to o
67a0: 70 65 6e 20 61 20 64 61 74 61 62 61 73 65 20 66  pen a database f
67b0: 69 6c 65 20 63 72 65 61 74 65 64 20 62 79 20 76  ile created by v
67c0: 65 72 73 69 6f 6e 20 32 2e 35 2e 36 20 6f 72 0a  ersion 2.5.6 or.
67d0: 20 20 20 20 65 61 72 6c 69 65 72 2c 20 69 74 20      earlier, it 
67e0: 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c  will automatical
67f0: 6c 79 20 61 6e 64 20 69 72 72 65 76 65 72 73 69  ly and irreversi
6800: 62 6c 79 20 63 6f 6e 76 65 72 74 20 74 68 65 20  bly convert the 
6810: 66 69 6c 65 20 66 6f 72 6d 61 74 2e 0a 20 20 20  file format..   
6820: 20 3c 62 3e 4d 61 6b 65 20 62 61 63 6b 75 70 20   <b>Make backup 
6830: 63 6f 70 69 65 73 20 6f 66 20 6f 6c 64 65 72 20  copies of older 
6840: 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 62  database files b
6850: 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20 74 68  efore opening th
6860: 65 6d 20 77 69 74 68 0a 20 20 20 20 76 65 72 73  em with.    vers
6870: 69 6f 6e 20 32 2e 36 2e 30 20 6f 66 20 74 68 65  ion 2.6.0 of the
6880: 20 6c 69 62 72 61 72 79 2e 3c 2f 62 3e 0a 20 20   library.</b>.  
6890: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
68a0: 7b 32 30 30 32 20 4a 6c 79 20 37 20 28 32 2e 35  {2002 Jly 7 (2.5
68b0: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 6d  .6)} {.<li>Fix m
68c0: 6f 72 65 20 70 72 6f 62 6c 65 6d 73 20 77 69 74  ore problems wit
68d0: 68 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 45 6e 68  h rollback.  Enh
68e0: 61 6e 63 65 20 74 68 65 20 74 65 73 74 20 73 75  ance the test su
68f0: 69 74 65 20 74 6f 20 65 78 65 72 63 69 73 65 0a  ite to exercise.
6900: 20 20 20 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b      the rollback
6910: 20 6c 6f 67 69 63 20 65 78 74 65 6e 73 69 76 65   logic extensive
6920: 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70  ly in order to p
6930: 72 65 76 65 6e 74 20 61 6e 79 20 66 75 74 75 72  revent any futur
6940: 65 20 70 72 6f 62 6c 65 6d 73 2e 0a 20 20 20 20  e problems..    
6950: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
6960: 30 30 32 20 4a 6c 79 20 36 20 28 32 2e 35 2e 35  002 Jly 6 (2.5.5
6970: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
6980: 75 67 20 77 68 69 63 68 20 63 6f 75 6c 64 20 63  ug which could c
6990: 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63 6f  ause database co
69a0: 72 72 75 70 74 69 6f 6e 20 64 75 72 69 6e 67 20  rruption during 
69b0: 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a 20 20 20 20  a rollback..    
69c0: 54 68 69 73 20 62 75 67 73 20 77 61 73 20 69 6e  This bugs was in
69d0: 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73  troduced in vers
69e0: 69 6f 6e 20 32 2e 34 2e 30 20 62 79 20 74 68 65  ion 2.4.0 by the
69f0: 20 66 72 65 65 6c 69 73 74 0a 20 20 20 20 6f 70   freelist.    op
6a00: 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 66 20 63 68  timization of ch
6a10: 65 63 6b 69 6e 67 20 5b 34 31 30 5d 2e 3c 2f 6c  ecking [410].</l
6a20: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
6a30: 20 69 6e 20 61 67 67 72 65 67 61 74 65 20 66 75   in aggregate fu
6a40: 6e 63 74 69 6f 6e 73 20 66 6f 72 20 56 49 45 57  nctions for VIEW
6a50: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65  s.</li>.<li>Othe
6a60: 72 20 6d 69 6e 6f 72 20 63 68 61 6e 67 65 73 20  r minor changes 
6a70: 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  and enhancements
6a80: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6a90: 32 30 30 32 20 4a 6c 79 20 31 20 28 32 2e 35 2e  2002 Jly 1 (2.5.
6aa0: 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 74  4)} {.<li>Make t
6ab0: 68 65 20 22 41 53 22 20 6b 65 79 77 6f 72 64 20  he "AS" keyword 
6ac0: 6f 70 74 69 6f 6e 61 6c 20 61 67 61 69 6e 2e 3c  optional again.<
6ad0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 61 74  /li>.<li>The dat
6ae0: 61 74 79 70 65 20 6f 66 20 63 6f 6c 75 6d 6e 73  atype of columns
6af0: 20 6e 6f 77 20 61 70 70 65 61 72 20 69 6e 20 74   now appear in t
6b00: 68 65 20 34 74 68 20 61 72 67 75 6d 65 6e 74 20  he 4th argument 
6b10: 74 6f 20 74 68 65 0a 20 20 20 20 63 61 6c 6c 62  to the.    callb
6b20: 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ack.</li>.<li>Ad
6b30: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
6b40: 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c 65 28  e_open_aux_file(
6b50: 29 3c 2f 62 3e 20 41 50 49 2c 20 74 68 6f 75 67  )</b> API, thoug
6b60: 68 20 69 74 20 69 73 20 73 74 69 6c 6c 0a 20 20  h it is still.  
6b70: 20 20 6d 6f 73 74 6c 79 20 75 6e 64 6f 63 75 6d    mostly undocum
6b80: 65 6e 74 65 64 20 61 6e 64 20 75 6e 74 65 73 74  ented and untest
6b90: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ed.</li>.<li>Add
6ba0: 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65  ed additional te
6bb0: 73 74 20 63 61 73 65 73 20 61 6e 64 20 66 69 78  st cases and fix
6bc0: 65 64 20 61 20 66 65 77 20 62 75 67 73 20 74 68  ed a few bugs th
6bd0: 61 74 20 74 68 6f 73 65 0a 20 20 20 20 74 65 73  at those.    tes
6be0: 74 20 63 61 73 65 73 20 66 6f 75 6e 64 2e 3c 2f  t cases found.</
6bf0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6c00: 32 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e 33 29  2 Jun 24 (2.5.3)
6c10: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
6c20: 20 20 44 61 74 61 62 61 73 65 20 63 6f 72 72 75    Database corru
6c30: 70 74 69 6f 6e 20 63 61 6e 20 6f 63 63 75 72 20  ption can occur 
6c40: 64 75 65 20 74 6f 20 74 68 65 20 6f 70 74 69 6d  due to the optim
6c50: 69 7a 61 74 69 6f 6e 0a 20 20 20 20 74 68 61 74  ization.    that
6c60: 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20   was introduced 
6c70: 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 2e 30  in version 2.4.0
6c80: 20 28 63 68 65 63 6b 2d 69 6e 20 5b 34 31 30 5d   (check-in [410]
6c90: 29 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 0a  ).  The problem.
6ca0: 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 77 20 62      should now b
6cb0: 65 20 66 69 78 65 64 2e 20 20 54 68 65 20 75 73  e fixed.  The us
6cc0: 65 20 6f 66 20 76 65 72 73 69 6f 6e 73 20 32 2e  e of versions 2.
6cd0: 34 2e 30 20 74 68 72 6f 75 67 68 20 32 2e 35 2e  4.0 through 2.5.
6ce0: 32 20 69 73 0a 20 20 20 20 6e 6f 74 20 72 65 63  2 is.    not rec
6cf0: 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c 69 3e 0a 7d  ommended.</li>.}
6d00: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e  ..chng {2002 Jun
6d10: 20 32 34 20 28 32 2e 35 2e 32 29 7d 20 7b 0a 3c   24 (2.5.2)} {.<
6d20: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65 77  li>Added the new
6d30: 20 3c 62 3e 53 51 4c 49 54 45 5f 54 45 4d 50 5f   <b>SQLITE_TEMP_
6d40: 4d 41 53 54 45 52 3c 2f 62 3e 20 74 61 62 6c 65  MASTER</b> table
6d50: 20 77 68 69 63 68 20 72 65 63 6f 72 64 73 20 74   which records t
6d60: 68 65 20 73 63 68 65 6d 61 0a 20 20 20 20 66 6f  he schema.    fo
6d70: 72 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c  r temporary tabl
6d80: 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77  es in the same w
6d90: 61 79 20 74 68 61 74 20 3c 62 3e 53 51 4c 49 54  ay that <b>SQLIT
6da0: 45 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 64 6f 65  E_MASTER</b> doe
6db0: 73 20 66 6f 72 0a 20 20 20 20 70 65 72 73 69 73  s for.    persis
6dc0: 74 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f 6c 69  tent tables.</li
6dd0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 6e 20 6f  >.<li>Added an o
6de0: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 74 6f 20 55  ptimization to U
6df0: 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69 3e 0a 3c 6c  NION ALL</li>.<l
6e00: 69 3e 46 69 78 65 64 20 61 20 62 75 67 20 69 6e  i>Fixed a bug in
6e10: 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67 20   the processing 
6e20: 6f 66 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f  of LEFT OUTER JO
6e30: 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  IN</li>.<li>The 
6e40: 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6e 6f 77  LIMIT clause now
6e50: 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c   works on subsel
6e60: 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52  ects</li>.<li>OR
6e70: 44 45 52 20 42 59 20 77 6f 72 6b 73 20 6f 6e 20  DER BY works on 
6e80: 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a  subselects</li>.
6e90: 3c 6c 69 3e 54 68 65 72 65 20 69 73 20 61 20 6e  <li>There is a n
6ea0: 65 77 20 54 79 70 65 4f 66 28 29 20 66 75 6e 63  ew TypeOf() func
6eb0: 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 64 65 74  tion used to det
6ec0: 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 65 78 70  ermine if an exp
6ed0: 72 65 73 73 69 6f 6e 0a 20 20 20 20 69 73 20 6e  ression.    is n
6ee0: 75 6d 65 72 69 63 20 6f 72 20 74 65 78 74 2e 3c  umeric or text.<
6ef0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 69 6e 63  /li>.<li>Autoinc
6f00: 72 65 6d 65 6e 74 20 6e 6f 77 20 77 6f 72 6b 73  rement now works
6f10: 20 66 6f 72 20 49 4e 53 45 52 54 20 66 72 6f 6d   for INSERT from
6f20: 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a   a SELECT.</li>.
6f30: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75  }..chng {2002 Ju
6f40: 6e 20 31 39 20 28 32 2e 35 2e 31 29 7d 20 7b 0a  n 19 (2.5.1)} {.
6f50: 3c 6c 69 3e 54 68 65 20 71 75 65 72 79 20 6f 70  <li>The query op
6f60: 74 69 6d 69 7a 65 72 20 6e 6f 77 20 61 74 74 65  timizer now atte
6f70: 6d 70 74 73 20 74 6f 20 69 6d 70 6c 65 6d 65 6e  mpts to implemen
6f80: 74 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 63  t the ORDER BY c
6f90: 6c 61 75 73 65 0a 20 20 20 20 75 73 69 6e 67 20  lause.    using 
6fa0: 61 6e 20 69 6e 64 65 78 2e 20 20 53 6f 72 74 69  an index.  Sorti
6fb0: 6e 67 20 69 73 20 73 74 69 6c 6c 20 75 73 65 64  ng is still used
6fc0: 20 69 66 20 6e 6f 74 20 73 75 69 74 61 62 6c 65   if not suitable
6fd0: 20 69 6e 64 65 78 20 69 73 0a 20 20 20 20 61 76   index is.    av
6fe0: 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a  ailable.</li>.}.
6ff0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20  .chng {2002 Jun 
7000: 31 37 20 28 32 2e 35 2e 30 29 7d 20 7b 0a 3c 6c  17 (2.5.0)} {.<l
7010: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
7020: 66 6f 72 20 72 6f 77 20 74 72 69 67 67 65 72 73  for row triggers
7030: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
7040: 20 53 51 4c 2d 39 32 20 63 6f 6d 70 6c 69 61 6e   SQL-92 complian
7050: 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 4e 55  t handling of NU
7060: 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  LLs.</li>.<li>Ad
7070: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68  d support for th
7080: 65 20 66 75 6c 6c 20 53 51 4c 2d 39 32 20 6a 6f  e full SQL-92 jo
7090: 69 6e 20 73 79 6e 74 61 78 20 61 6e 64 20 4c 45  in syntax and LE
70a0: 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73 2e 3c  FT OUTER JOINs.<
70b0: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75 62 6c 65 2d  /li>.<li>Double-
70c0: 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73 20 69  quoted strings i
70d0: 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 63 6f  nterpreted as co
70e0: 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e 6f 74 20 74  lumn names not t
70f0: 65 78 74 20 6c 69 74 65 72 61 6c 73 2e 3c 2f 6c  ext literals.</l
7100: 69 3e 0a 3c 6c 69 3e 50 61 72 73 65 20 28 62 75  i>.<li>Parse (bu
7110: 74 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65 6d 65  t do not impleme
7120: 6e 74 29 20 66 6f 72 65 69 67 6e 20 6b 65 79 73  nt) foreign keys
7130: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f  .</li>.<li>Perfo
7140: 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65  rmance improveme
7150: 6e 74 73 20 69 6e 20 74 68 65 20 70 61 72 73 65  nts in the parse
7160: 72 2c 20 70 61 67 65 72 2c 20 61 6e 64 20 57 48  r, pager, and WH
7170: 45 52 45 20 63 6c 61 75 73 65 20 63 6f 64 65 0a  ERE clause code.
7180: 20 20 20 20 67 65 6e 65 72 61 74 6f 72 2e 3c 2f      generator.</
7190: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65  li>.<li>Make the
71a0: 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 77 6f   LIMIT clause wo
71b0: 72 6b 20 6f 6e 20 73 75 62 71 75 65 72 69 65 73  rk on subqueries
71c0: 2e 20 20 28 4f 52 44 45 52 20 42 59 20 73 74 69  .  (ORDER BY sti
71d0: 6c 6c 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20  ll does not.    
71e0: 77 6f 72 6b 2c 20 74 68 6f 75 67 68 2e 29 3c 2f  work, though.)</
71f0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
7200: 65 20 22 25 51 22 20 65 78 70 61 6e 73 69 6f 6e  e "%Q" expansion
7210: 20 74 6f 20 73 71 6c 69 74 65 5f 2a 5f 70 72 69   to sqlite_*_pri
7220: 6e 74 66 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ntf().</li>.<li>
7230: 42 75 67 20 66 69 78 65 73 20 74 6f 6f 20 6e 75  Bug fixes too nu
7240: 6d 65 72 6f 75 73 20 74 6f 20 6d 65 6e 74 69 6f  merous to mentio
7250: 6e 20 28 73 65 65 20 74 68 65 20 63 68 61 6e 67  n (see the chang
7260: 65 20 6c 6f 67 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e log).</li>.}..
7270: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30  chng {2002 May 0
7280: 39 20 28 32 2e 34 2e 31 32 29 7d 20 7b 0a 3c 6c  9 (2.4.12)} {.<l
7290: 69 3e 41 64 64 65 64 20 6c 6f 67 69 63 20 74 6f  i>Added logic to
72a0: 20 64 65 74 65 63 74 20 77 68 65 6e 20 74 68 65   detect when the
72b0: 20 6c 69 62 72 61 72 79 20 41 50 49 20 72 6f 75   library API rou
72c0: 74 69 6e 65 73 20 61 72 65 20 63 61 6c 6c 65 64  tines are called
72d0: 20 6f 75 74 0a 20 20 20 20 6f 66 20 73 65 71 75   out.    of sequ
72e0: 65 6e 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ence.</li>.}..ch
72f0: 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30 38 20  ng {2002 May 08 
7300: 28 32 2e 34 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e  (2.4.11)} {.<li>
7310: 42 75 67 20 66 69 78 3a 20 43 6f 6c 75 6d 6e 20  Bug fix: Column 
7320: 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 72 65 73  names in the res
7330: 75 6c 74 20 73 65 74 20 77 65 72 65 20 6e 6f 74  ult set were not
7340: 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64   being generated
7350: 0a 20 20 20 20 63 6f 72 72 65 63 74 6c 79 20 66  .    correctly f
7360: 6f 72 20 73 6f 6d 65 20 28 72 61 74 68 65 72 20  or some (rather 
7370: 63 6f 6d 70 6c 65 78 29 20 56 49 45 57 73 2e 20  complex) VIEWs. 
7380: 20 54 68 69 73 20 63 6f 75 6c 64 20 63 61 75 73   This could caus
7390: 65 20 61 0a 20 20 20 20 73 65 67 66 61 75 6c 74  e a.    segfault
73a0: 20 75 6e 64 65 72 20 63 65 72 74 61 69 6e 20 63   under certain c
73b0: 69 72 63 75 6d 73 74 61 6e 63 65 73 2e 3c 2f 6c  ircumstances.</l
73c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
73d0: 20 4d 61 79 20 30 32 20 28 32 2e 34 2e 31 30 29   May 02 (2.4.10)
73e0: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
73f0: 20 47 65 6e 65 72 61 74 65 20 63 6f 72 72 65 63   Generate correc
7400: 74 20 63 6f 6c 75 6d 6e 20 68 65 61 64 65 72 73  t column headers
7410: 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64   when a compound
7420: 20 53 45 4c 45 43 54 20 69 73 20 75 73 65 64 0a   SELECT is used.
7430: 20 20 20 20 61 73 20 61 20 73 75 62 71 75 65 72      as a subquer
7440: 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  y.</li>.<li>Adde
7450: 64 20 74 68 65 20 73 71 6c 69 74 65 5f 65 6e 63  d the sqlite_enc
7460: 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 61 6e 64  ode_binary() and
7470: 20 73 71 6c 69 74 65 5f 64 65 63 6f 64 65 5f 62   sqlite_decode_b
7480: 69 6e 61 72 79 28 29 20 66 75 6e 63 74 69 6f 6e  inary() function
7490: 73 20 74 6f 0a 20 20 20 20 74 68 65 20 73 6f 75  s to.    the sou
74a0: 72 63 65 20 74 72 65 65 2e 20 20 42 75 74 20 74  rce tree.  But t
74b0: 68 65 79 20 61 72 65 20 6e 6f 74 20 79 65 74 20  hey are not yet 
74c0: 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 74 68 65 20  linked into the 
74d0: 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c  library.</li>.<l
74e0: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
74f0: 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  updates.</li>.<l
7500: 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73 71 6c  i>Export the sql
7510: 69 74 65 5f 63 68 61 6e 67 65 73 28 29 20 66 75  ite_changes() fu
7520: 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 77 69 6e 64  nction from wind
7530: 6f 77 73 20 44 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c  ows DLLs.</li>.<
7540: 6c 69 3e 42 75 67 20 66 69 78 3a 20 44 6f 20 6e  li>Bug fix: Do n
7550: 6f 74 20 61 74 74 65 6d 70 74 20 74 68 65 20 73  ot attempt the s
7560: 75 62 71 75 65 72 79 20 66 6c 61 74 74 65 6e 69  ubquery flatteni
7570: 6e 67 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20  ng optimization 
7580: 6f 6e 20 71 75 65 72 69 65 73 0a 20 20 20 20 74  on queries.    t
7590: 68 61 74 20 6c 61 63 6b 20 61 20 46 52 4f 4d 20  hat lack a FROM 
75a0: 63 6c 61 75 73 65 2e 20 20 54 6f 20 64 6f 20 73  clause.  To do s
75b0: 6f 20 63 61 75 73 65 73 20 61 20 73 65 67 66 61  o causes a segfa
75c0: 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ult.</li>.}..chn
75d0: 67 20 7b 32 30 30 32 20 41 70 72 20 32 31 20 28  g {2002 Apr 21 (
75e0: 32 2e 34 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.4.9)} {.<li>Fi
75f0: 78 20 61 20 62 75 67 20 74 68 61 74 20 77 61 73  x a bug that was
7600: 20 63 61 75 73 69 6e 67 20 74 68 65 20 70 72 65   causing the pre
7610: 63 6f 6d 70 69 6c 65 64 20 62 69 6e 61 72 79 20  compiled binary 
7620: 6f 66 20 53 51 4c 49 54 45 2e 45 58 45 20 74 6f  of SQLITE.EXE to
7630: 0a 20 20 20 20 72 65 70 6f 72 74 20 22 6f 75 74  .    report "out
7640: 20 6f 66 20 6d 65 6d 6f 72 79 22 20 75 6e 64 65   of memory" unde
7650: 72 20 57 69 6e 64 6f 77 73 20 39 38 2e 3c 2f 6c  r Windows 98.</l
7660: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
7670: 20 41 70 72 20 32 30 20 28 32 2e 34 2e 38 29 7d   Apr 20 (2.4.8)}
7680: 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65   {.<li>Make sure
7690: 20 56 49 45 57 73 20 61 72 65 20 63 72 65 61 74   VIEWs are creat
76a0: 65 64 20 61 66 74 65 72 20 74 68 65 69 72 20 63  ed after their c
76b0: 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 54 41 42  orresponding TAB
76c0: 4c 45 73 20 69 6e 20 74 68 65 0a 20 20 20 20 6f  LEs in the.    o
76d0: 75 74 70 75 74 20 6f 66 20 74 68 65 20 3c 62 3e  utput of the <b>
76e0: 2e 64 75 6d 70 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  .dump</b> comman
76f0: 64 20 69 6e 20 74 68 65 20 73 68 65 6c 6c 2e 3c  d in the shell.<
7700: 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69  /li>.<li>Speed i
7710: 6d 70 72 6f 76 65 6d 65 6e 74 73 3a 20 44 6f 20  mprovements: Do 
7720: 6e 6f 74 20 64 6f 20 73 79 6e 63 68 72 6f 6e 6f  not do synchrono
7730: 75 73 20 75 70 64 61 74 65 73 20 6f 6e 20 54 45  us updates on TE
7740: 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a  MP tables.</li>.
7750: 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70 72 6f 76 65  <li>Many improve
7760: 6d 65 6e 74 73 20 61 6e 64 20 65 6e 68 61 6e 63  ments and enhanc
7770: 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 73 68  ements to the sh
7780: 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  ell.</li>.<li>Ma
7790: 6b 65 20 74 68 65 20 47 4c 4f 42 20 61 6e 64 20  ke the GLOB and 
77a0: 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 73 20 66  LIKE operators f
77b0: 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 63 61  unctions that ca
77c0: 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 0a  n be overridden.
77d0: 20 20 20 20 62 79 20 61 20 70 72 6f 67 72 61 6d      by a program
77e0: 6d 65 72 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77  mer.  This allow
77f0: 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20  s, for example, 
7800: 74 68 65 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f  the LIKE operato
7810: 72 20 74 6f 0a 20 20 20 20 62 65 20 63 68 61 6e  r to.    be chan
7820: 67 65 64 20 74 6f 20 62 65 20 63 61 73 65 20 73  ged to be case s
7830: 65 6e 73 69 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d  ensitive.</li>.}
7840: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72  ..chng {2002 Apr
7850: 20 30 36 20 28 32 2e 34 2e 37 29 7d 20 7b 0a 3c   06 (2.4.7)} {.<
7860: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
7870: 74 79 20 74 6f 20 70 75 74 20 54 41 42 4c 45 2e  ty to put TABLE.
7880: 2a 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20  * in the column 
7890: 6c 69 73 74 20 6f 66 20 61 0a 20 20 20 20 53 45  list of a.    SE
78a0: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
78b0: 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 6d 69 74 20  /li>.<li>Permit 
78c0: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
78d0: 73 20 77 69 74 68 6f 75 74 20 61 20 46 52 4f 4d  s without a FROM
78e0: 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c   clause.</li>.<l
78f0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 6c  i>Added the <b>l
7900: 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64  ast_insert_rowid
7910: 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75 6e 63 74  ()</b> SQL funct
7920: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f  ion.</li>.<li>Do
7930: 20 6e 6f 74 20 63 6f 75 6e 74 20 72 6f 77 73 20   not count rows 
7940: 77 68 65 72 65 20 74 68 65 20 49 47 4e 4f 52 45  where the IGNORE
7950: 20 63 6f 6e 66 6c 69 63 74 20 72 65 73 6f 6c 75   conflict resolu
7960: 74 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e 0a 20  tion occurs in. 
7970: 20 20 20 74 68 65 20 72 6f 77 20 63 6f 75 6e 74     the row count
7980: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20  .</li>.<li>Make 
7990: 73 75 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 65  sure functions e
79a0: 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20 74 68  xpressions in th
79b0: 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73 65 20  e VALUES clause 
79c0: 6f 66 20 61 6e 20 49 4e 53 45 52 54 0a 20 20 20  of an INSERT.   
79d0: 20 61 72 65 20 63 6f 72 72 65 63 74 2e 3c 2f 6c   are correct.</l
79e0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
79f0: 20 3c 62 3e 73 71 6c 69 74 65 5f 63 68 61 6e 67   <b>sqlite_chang
7a00: 65 73 28 29 3c 2f 62 3e 20 41 50 49 20 66 75 6e  es()</b> API fun
7a10: 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20  ction to return 
7a20: 74 68 65 20 6e 75 6d 62 65 72 0a 20 20 20 20 6f  the number.    o
7a30: 66 20 72 6f 77 20 74 68 61 74 20 63 68 61 6e 67  f row that chang
7a40: 65 64 20 69 6e 20 74 68 65 20 6d 6f 73 74 20 72  ed in the most r
7a50: 65 63 65 6e 74 20 6f 70 65 72 61 74 69 6f 6e 2e  ecent operation.
7a60: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
7a70: 30 30 32 20 41 70 72 20 30 32 20 28 32 2e 34 2e  002 Apr 02 (2.4.
7a80: 36 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  6)} {.<li>Bug fi
7a90: 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68 61 6e  x: Correctly han
7aa0: 64 6c 65 20 74 65 72 6d 73 20 69 6e 20 74 68 65  dle terms in the
7ab0: 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 6f 66   WHERE clause of
7ac0: 20 61 20 6a 6f 69 6e 20 74 68 61 74 0a 20 20 20   a join that.   
7ad0: 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20   do not contain 
7ae0: 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65  a comparison ope
7af0: 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rator.</li>.}..c
7b00: 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 30 31  hng {2002 Apr 01
7b10: 20 28 32 2e 34 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.5)} {.<li>
7b20: 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65 63 74  Bug fix: Correct
7b30: 6c 79 20 68 61 6e 64 6c 65 20 66 75 6e 63 74 69  ly handle functi
7b40: 6f 6e 73 20 74 68 61 74 20 61 70 70 65 61 72 20  ons that appear 
7b50: 69 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c 61  in the WHERE cla
7b60: 75 73 65 0a 20 20 20 20 6f 66 20 61 20 6a 6f 69  use.    of a joi
7b70: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e  n.</li>.<li>When
7b80: 20 74 68 65 20 50 52 41 47 4d 41 20 76 64 62 65   the PRAGMA vdbe
7b90: 5f 74 72 61 63 65 3d 4f 4e 20 69 73 20 73 65 74  _trace=ON is set
7ba0: 2c 20 63 6f 72 72 65 63 74 6c 79 20 70 72 69 6e  , correctly prin
7bb0: 74 20 74 68 65 20 50 33 20 6f 70 65 72 61 6e 64  t the P3 operand
7bc0: 0a 20 20 20 20 76 61 6c 75 65 20 77 68 65 6e 20  .    value when 
7bd0: 69 74 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20  it is a pointer 
7be0: 74 6f 20 61 20 73 74 72 75 63 74 75 72 65 20 72  to a structure r
7bf0: 61 74 68 65 72 20 74 68 61 6e 20 61 20 70 6f 69  ather than a poi
7c00: 6e 74 65 72 20 74 6f 0a 20 20 20 20 61 20 73 74  nter to.    a st
7c10: 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57  ring.</li>.<li>W
7c20: 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 20 61 6e  hen inserting an
7c30: 20 65 78 70 6c 69 63 69 74 20 4e 55 4c 4c 20 69   explicit NULL i
7c40: 6e 74 6f 20 61 6e 20 49 4e 54 45 47 45 52 20 50  nto an INTEGER P
7c50: 52 49 4d 41 52 59 20 4b 45 59 2c 20 63 6f 6e 76  RIMARY KEY, conv
7c60: 65 72 74 0a 20 20 20 20 74 68 65 20 4e 55 4c 4c  ert.    the NULL
7c70: 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20 75 6e   value into a un
7c80: 69 71 75 65 20 6b 65 79 20 61 75 74 6f 6d 61 74  ique key automat
7c90: 69 63 61 6c 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ically.</li>.}..
7ca0: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 32  chng {2002 Mar 2
7cb0: 34 20 28 32 2e 34 2e 34 29 7d 20 7b 0a 3c 6c 69  4 (2.4.4)} {.<li
7cc0: 3e 41 6c 6c 6f 77 20 22 56 49 45 57 22 20 74 6f  >Allow "VIEW" to
7cd0: 20 62 65 20 61 20 63 6f 6c 75 6d 6e 20 6e 61 6d   be a column nam
7ce0: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  e</li>.<li>Added
7cf0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 41 53   support for CAS
7d00: 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20 28 70  E expressions (p
7d10: 61 74 63 68 20 66 72 6f 6d 20 44 61 6e 20 4b 65  atch from Dan Ke
7d20: 6e 6e 65 64 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nnedy)</li>.<li>
7d30: 41 64 64 65 64 20 52 50 4d 53 20 74 6f 20 74 68  Added RPMS to th
7d40: 65 20 64 65 6c 69 76 65 72 79 20 28 70 61 74 63  e delivery (patc
7d50: 68 65 73 20 66 72 6f 6d 20 44 6f 75 67 20 48 65  hes from Doug He
7d60: 6e 72 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  nry)</li>.<li>Fi
7d70: 78 20 74 79 70 6f 73 20 69 6e 20 74 68 65 20 64  x typos in the d
7d80: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69  ocumentation</li
7d90: 3e 0a 3c 6c 69 3e 43 75 74 20 6f 76 65 72 20 63  >.<li>Cut over c
7da0: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 61 6e  onfiguration man
7db0: 61 67 65 6d 65 6e 74 20 74 6f 20 61 20 6e 65 77  agement to a new
7dc0: 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72 79 20   CVS repository 
7dd0: 77 69 74 68 0a 20 20 20 20 69 74 73 20 6f 77 6e  with.    its own
7de0: 20 43 56 53 54 72 61 63 20 62 75 67 20 74 72 61   CVSTrac bug tra
7df0: 63 6b 69 6e 67 20 73 79 73 74 65 6d 2e 3c 2f 6c  cking system.</l
7e00: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
7e10: 20 4d 61 72 20 32 32 20 28 32 2e 34 2e 33 29 7d   Mar 22 (2.4.3)}
7e20: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
7e30: 20 69 6e 20 53 45 4c 45 43 54 20 74 68 61 74 20   in SELECT that 
7e40: 6f 63 63 75 72 73 20 77 68 65 6e 20 61 20 63 6f  occurs when a co
7e50: 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 69 73  mpound SELECT is
7e60: 20 75 73 65 64 20 61 73 20 61 0a 20 20 20 20 73   used as a.    s
7e70: 75 62 71 75 65 72 79 20 69 6e 20 74 68 65 20 46  ubquery in the F
7e80: 52 4f 4d 20 6f 66 20 61 20 53 45 4c 45 43 54 2e  ROM of a SELECT.
7e90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c 62  </li>.<li>The <b
7ea0: 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c  >sqlite_get_tabl
7eb0: 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e  e()</b> function
7ec0: 20 6e 6f 77 20 72 65 74 75 72 6e 73 20 61 6e 20   now returns an 
7ed0: 65 72 72 6f 72 20 69 66 20 79 6f 75 0a 20 20 20  error if you.   
7ee0: 20 67 69 76 65 20 69 74 20 74 77 6f 20 6f 72 20   give it two or 
7ef0: 6d 6f 72 65 20 53 45 4c 45 43 54 73 20 74 68 61  more SELECTs tha
7f00: 74 20 72 65 74 75 72 6e 20 64 69 66 66 65 72 65  t return differe
7f10: 6e 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 63 6f  nt numbers of co
7f20: 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  lumns.</li>.}..c
7f30: 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 31 34  hng {2002 Mar 14
7f40: 20 28 32 2e 34 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.2)} {.<li>
7f50: 42 75 67 20 66 69 78 3a 20 46 69 78 20 61 6e 20  Bug fix: Fix an 
7f60: 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72  assertion failur
7f70: 65 20 74 68 61 74 20 6f 63 63 75 72 72 65 64 20  e that occurred 
7f80: 77 68 65 6e 20 52 4f 57 49 44 20 77 61 73 20 61  when ROWID was a
7f90: 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 69 6e 20 61   column.    in a
7fa0: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
7fb0: 74 20 6f 6e 20 61 20 76 69 65 77 2e 3c 2f 6c 69  t on a view.</li
7fc0: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 46  >.<li>Bug fix: F
7fd0: 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61 6c 69  ix an uninitiali
7fe0: 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69 6e 20  zed variable in 
7ff0: 74 68 65 20 56 44 42 45 20 74 68 61 74 20 77 6f  the VDBE that wo
8000: 75 6c 64 20 63 6f 75 6c 64 20 61 6e 0a 20 20 20  uld could an.   
8010: 20 61 73 73 65 72 74 20 66 61 69 6c 75 72 65 2e   assert failure.
8020: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74  </li>.<li>Make t
8030: 68 65 20 6f 73 2e 68 20 68 65 61 64 65 72 20 66  he os.h header f
8040: 69 6c 65 20 6d 6f 72 65 20 72 6f 62 75 73 74 20  ile more robust 
8050: 69 6e 20 64 65 74 65 63 74 69 6e 67 20 77 68 65  in detecting whe
8060: 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 20 69 73  n the compile is
8070: 0a 20 20 20 20 66 6f 72 20 77 69 6e 64 6f 77 73  .    for windows
8080: 20 61 6e 64 20 77 68 65 6e 20 69 74 20 69 73 20   and when it is 
8090: 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d  for unix.</li>.}
80a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72  ..chng {2002 Mar
80b0: 20 31 33 20 28 32 2e 34 2e 31 29 7d 20 7b 0a 3c   13 (2.4.1)} {.<
80c0: 6c 69 3e 55 73 69 6e 67 20 61 6e 20 75 6e 6e 61  li>Using an unna
80d0: 6d 65 64 20 73 75 62 71 75 65 72 79 20 69 6e 20  med subquery in 
80e0: 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 20 77 6f  a FROM clause wo
80f0: 75 6c 64 20 63 61 75 73 65 20 61 20 73 65 67 66  uld cause a segf
8100: 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ault.</li>.<li>T
8110: 68 65 20 70 61 72 73 65 72 20 6e 6f 77 20 69 6e  he parser now in
8120: 73 69 73 74 73 20 6f 6e 20 73 65 65 69 6e 67 20  sists on seeing 
8130: 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 6f 72 20 74  a semicolon or t
8140: 68 65 20 65 6e 64 20 6f 66 20 69 6e 70 75 74 20  he end of input 
8150: 62 65 66 6f 72 65 0a 20 20 20 20 65 78 65 63 75  before.    execu
8160: 74 69 6e 67 20 61 20 73 74 61 74 65 6d 65 6e 74  ting a statement
8170: 2e 20 20 54 68 69 73 20 61 76 6f 69 64 73 20 61  .  This avoids a
8180: 6e 20 61 63 63 69 64 65 6e 74 61 6c 20 64 69 73  n accidental dis
8190: 61 73 74 65 72 20 69 66 20 74 68 65 0a 20 20 20  aster if the.   
81a0: 20 57 48 45 52 45 20 6b 65 79 77 6f 72 64 20 69   WHERE keyword i
81b0: 73 20 6d 69 73 73 70 65 6c 6c 65 64 20 69 6e 20  s misspelled in 
81c0: 61 6e 20 55 50 44 41 54 45 20 6f 72 20 44 45 4c  an UPDATE or DEL
81d0: 45 54 45 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f  ETE statement.</
81e0: 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67 20 7b 32 30  li>.}...chng {20
81f0: 30 32 20 4d 61 72 20 31 30 20 28 32 2e 34 2e 30  02 Mar 10 (2.4.0
8200: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
8210: 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  the name of the 
8220: 73 61 6e 69 74 79 5f 63 68 65 63 6b 20 50 52 41  sanity_check PRA
8230: 47 4d 41 20 74 6f 20 3c 62 3e 69 6e 74 65 67 72  GMA to <b>integr
8240: 69 74 79 5f 63 68 65 63 6b 3c 2f 62 3e 0a 20 20  ity_check</b>.  
8250: 20 20 61 6e 64 20 6d 61 6b 65 20 69 74 20 61 76    and make it av
8260: 61 69 6c 61 62 6c 65 20 69 6e 20 61 6c 6c 20 63  ailable in all c
8270: 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ompiles.</li>.<l
8280: 69 3e 53 45 4c 45 43 54 20 6d 69 6e 28 29 20 6f  i>SELECT min() o
8290: 72 20 6d 61 78 28 29 20 6f 66 20 61 6e 20 69 6e  r max() of an in
82a0: 64 65 78 65 64 20 63 6f 6c 75 6d 6e 20 77 69 74  dexed column wit
82b0: 68 20 6e 6f 20 57 48 45 52 45 20 6f 72 20 47 52  h no WHERE or GR
82c0: 4f 55 50 20 42 59 0a 20 20 20 20 63 6c 61 75 73  OUP BY.    claus
82d0: 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61 73 20  e is handled as 
82e0: 61 20 73 70 65 63 69 61 6c 20 63 61 73 65 20 77  a special case w
82f0: 68 69 63 68 20 61 76 6f 69 64 73 20 61 20 63 6f  hich avoids a co
8300: 6d 70 6c 65 74 65 20 74 61 62 6c 65 20 73 63 61  mplete table sca
8310: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f  n.</li>.<li>Auto
8320: 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61  matically genera
8330: 74 65 64 20 52 4f 57 49 44 73 20 61 72 65 20 6e  ted ROWIDs are n
8340: 6f 77 20 73 65 71 75 65 6e 74 69 61 6c 2e 3c 2f  ow sequential.</
8350: 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 61  li>.<li>Do not a
8360: 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d 6d 61 6e 64  llow dot-command
8370: 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64  s of the command
8380: 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74 6f 20 6f  -line shell to o
8390: 63 63 75 72 20 69 6e 20 74 68 65 0a 20 20 20 20  ccur in the.    
83a0: 6d 69 64 64 6c 65 20 6f 66 20 61 20 72 65 61 6c  middle of a real
83b0: 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c   SQL command.</l
83c0: 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 63 61 74  i>.<li>Modificat
83d0: 69 6f 6e 73 20 74 6f 20 74 68 65 20 22 6c 65 6d  ions to the "lem
83e0: 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e 65 72  on" parser gener
83f0: 61 74 6f 72 20 73 6f 20 74 68 61 74 20 74 68 65  ator so that the
8400: 20 70 61 72 73 65 72 20 74 61 62 6c 65 73 0a 20   parser tables. 
8410: 20 20 20 61 72 65 20 34 20 74 69 6d 65 73 20 73     are 4 times s
8420: 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  maller.</li>.<li
8430: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
8440: 6f 72 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20  or user-defined 
8450: 66 75 6e 63 74 69 6f 6e 73 20 69 6d 70 6c 65 6d  functions implem
8460: 65 6e 74 65 64 20 69 6e 20 43 2e 3c 2f 6c 69 3e  ented in C.</li>
8470: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
8480: 72 74 20 66 6f 72 20 6e 65 77 20 66 75 6e 63 74  rt for new funct
8490: 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61 6c 65 73 63  ions: <b>coalesc
84a0: 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e 6c 6f 77 65  e()</b>, <b>lowe
84b0: 72 28 29 3c 2f 62 3e 2c 0a 20 20 20 20 3c 62 3e  r()</b>,.    <b>
84c0: 75 70 70 65 72 28 29 3c 2f 62 3e 2c 20 61 6e 64  upper()</b>, and
84d0: 20 3c 62 3e 72 61 6e 64 6f 6d 28 29 3c 2f 62 3e   <b>random()</b>
84e0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
84f0: 72 74 20 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c  rt for VIEWs.</l
8500: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
8510: 20 73 75 62 71 75 65 72 79 20 66 6c 61 74 74 65   subquery flatte
8520: 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 65 72 2e 3c  ning optimizer.<
8530: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65  /li>.<li>Modifie
8540: 64 20 74 68 65 20 42 2d 54 72 65 65 20 61 6e 64  d the B-Tree and
8550: 20 50 61 67 65 72 20 6d 6f 64 75 6c 65 73 20 73   Pager modules s
8560: 6f 20 74 68 61 74 20 64 69 73 6b 20 70 61 67 65  o that disk page
8570: 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 0a 20 20  s that do not.  
8580: 20 20 63 6f 6e 74 61 69 6e 20 72 65 61 6c 20 64    contain real d
8590: 61 74 61 20 28 66 72 65 65 20 70 61 67 65 73 29  ata (free pages)
85a0: 20 61 72 65 20 6e 6f 74 20 6a 6f 75 72 6e 61 6c   are not journal
85b0: 65 64 20 61 6e 64 20 61 72 65 20 6e 6f 74 0a 20  ed and are not. 
85c0: 20 20 20 77 72 69 74 74 65 6e 20 66 72 6f 6d 20     written from 
85d0: 6d 65 6d 6f 72 79 20 62 61 63 6b 20 74 6f 20 74  memory back to t
85e0: 68 65 20 64 69 73 6b 20 77 68 65 6e 20 74 68 65  he disk when the
85f0: 79 20 63 68 61 6e 67 65 2e 20 20 54 68 69 73 20  y change.  This 
8600: 64 6f 65 73 20 6e 6f 74 20 0a 20 20 20 20 69 6d  does not .    im
8610: 70 61 63 74 20 64 61 74 61 62 61 73 65 20 69 6e  pact database in
8620: 74 65 67 72 69 74 79 2c 20 73 69 6e 63 65 20 74  tegrity, since t
8630: 68 65 0a 20 20 20 20 70 61 67 65 73 20 63 6f 6e  he.    pages con
8640: 74 61 69 6e 20 6e 6f 20 72 65 61 6c 20 64 61 74  tain no real dat
8650: 61 2c 20 62 75 74 20 69 74 20 64 6f 65 73 20 6d  a, but it does m
8660: 61 6b 65 20 6c 61 72 67 65 20 49 4e 53 45 52 54  ake large INSERT
8670: 20 6f 70 65 72 61 74 69 6f 6e 73 0a 20 20 20 20   operations.    
8680: 61 62 6f 75 74 20 32 2e 35 20 74 69 6d 65 73 20  about 2.5 times 
8690: 66 61 73 74 65 72 20 61 6e 64 20 6c 61 72 67 65  faster and large
86a0: 20 44 45 4c 45 54 45 73 20 61 62 6f 75 74 20 35   DELETEs about 5
86b0: 20 74 69 6d 65 73 20 66 61 73 74 65 72 2e 3c 2f   times faster.</
86c0: 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65 20 74 68 65  li>.<li>Made the
86d0: 20 43 41 43 48 45 5f 53 49 5a 45 20 70 72 61 67   CACHE_SIZE prag
86e0: 6d 61 20 70 65 72 73 69 73 74 65 6e 74 3c 2f 6c  ma persistent</l
86f0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
8700: 20 53 59 4e 43 48 52 4f 4e 4f 55 53 20 70 72 61   SYNCHRONOUS pra
8710: 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  gma</li>.<li>Fix
8720: 65 64 20 61 20 62 75 67 20 74 68 61 74 20 77 61  ed a bug that wa
8730: 73 20 63 61 75 73 69 6e 67 20 75 70 64 61 74 65  s causing update
8740: 73 20 74 6f 20 66 61 69 6c 20 69 6e 73 69 64 65  s to fail inside
8750: 20 6f 66 20 74 72 61 6e 73 61 63 74 69 6f 6e 73   of transactions
8760: 20 77 68 65 6e 0a 20 20 20 20 74 68 65 20 64 61   when.    the da
8770: 74 61 62 61 73 65 20 63 6f 6e 74 61 69 6e 65 64  tabase contained
8780: 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62   a temporary tab
8790: 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  le.</li>.}..chng
87a0: 20 7b 32 30 30 32 20 46 65 62 20 31 38 20 28 32   {2002 Feb 18 (2
87b0: 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c  .3.3)} {.<li>All
87c0: 6f 77 20 69 64 65 6e 74 69 66 69 65 72 73 20 74  ow identifiers t
87d0: 6f 20 62 65 20 71 75 6f 74 65 64 20 69 6e 20 73  o be quoted in s
87e0: 71 75 61 72 65 20 62 72 61 63 6b 65 74 73 2c 20  quare brackets, 
87f0: 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74  for compatibilit
8800: 79 0a 20 20 20 20 77 69 74 68 20 4d 53 2d 41 63  y.    with MS-Ac
8810: 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  cess.</li>.<li>A
8820: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
8830: 20 73 75 62 2d 71 75 65 72 69 65 73 20 69 6e 20   sub-queries in 
8840: 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65 20  the FROM clause 
8850: 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69  of a SELECT.</li
8860: 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65 66 66 69 63  >.<li>More effic
8870: 69 65 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74  ient implementat
8880: 69 6f 6e 20 6f 66 20 73 71 6c 69 74 65 46 69 6c  ion of sqliteFil
8890: 65 45 78 69 73 74 73 28 29 20 75 6e 64 65 72 20  eExists() under 
88a0: 57 69 6e 64 6f 77 73 2e 0a 20 20 20 20 28 62 79  Windows..    (by
88b0: 20 4a 6f 65 6c 20 4c 75 73 63 79 29 3c 2f 6c 69   Joel Luscy)</li
88c0: 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 4c 55 45 53  >.<li>The VALUES
88d0: 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20 49 4e   clause of an IN
88e0: 53 45 52 54 20 63 61 6e 20 6e 6f 77 20 63 6f 6e  SERT can now con
88f0: 74 61 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73  tain expressions
8900: 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 20 20 20 20  , including.    
8910: 73 63 61 6c 61 72 20 53 45 4c 45 43 54 20 63 6c  scalar SELECT cl
8920: 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  auses.</li>.<li>
8930: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
8940: 72 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 41  r CREATE TABLE A
8950: 53 20 53 45 4c 45 43 54 3c 2f 6c 69 3e 0a 3c 6c  S SELECT</li>.<l
8960: 69 3e 42 75 67 20 66 69 78 3a 20 43 72 65 61 74  i>Bug fix: Creat
8970: 69 6e 67 20 61 6e 64 20 64 72 6f 70 70 69 6e 67  ing and dropping
8980: 20 61 20 74 61 62 6c 65 20 61 6c 6c 20 77 69 74   a table all wit
8990: 68 69 6e 20 61 20 73 69 6e 67 6c 65 0a 20 20 20  hin a single.   
89a0: 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61 73   transaction was
89b0: 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 2e 3c 2f 6c   not working.</l
89c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
89d0: 20 46 65 62 20 31 34 20 28 32 2e 33 2e 32 29 7d   Feb 14 (2.3.2)}
89e0: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
89f0: 54 68 65 72 65 20 77 61 73 20 61 6e 20 69 6e 63  There was an inc
8a00: 6f 72 72 65 63 74 20 61 73 73 65 72 74 28 29 20  orrect assert() 
8a10: 69 6e 20 70 61 67 65 72 2e 63 2e 20 20 54 68 65  in pager.c.  The
8a20: 20 72 65 61 6c 20 63 6f 64 65 20 77 61 73 0a 20   real code was. 
8a30: 20 20 20 61 6c 6c 20 63 6f 72 72 65 63 74 20 28     all correct (
8a40: 61 73 20 66 61 72 20 61 73 20 69 73 20 6b 6e 6f  as far as is kno
8a50: 77 6e 29 20 73 6f 20 65 76 65 72 79 74 68 69 6e  wn) so everythin
8a60: 67 20 73 68 6f 75 6c 64 20 77 6f 72 6b 20 4f 4b  g should work OK
8a70: 20 69 66 20 79 6f 75 0a 20 20 20 20 63 6f 6d 70   if you.    comp
8a80: 69 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42 55  ile with -DNDEBU
8a90: 47 3d 31 2e 20 20 57 68 65 6e 20 61 73 73 65 72  G=1.  When asser
8aa0: 74 73 20 61 72 65 20 6e 6f 74 20 64 69 73 61 62  ts are not disab
8ab0: 6c 65 64 2c 20 74 68 65 72 65 0a 20 20 20 20 63  led, there.    c
8ac0: 6f 75 6c 64 20 62 65 20 61 20 66 61 75 6c 74 2e  ould be a fault.
8ad0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8ae0: 30 30 32 20 46 65 62 20 31 33 20 28 32 2e 33 2e  002 Feb 13 (2.3.
8af0: 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  1)} {.<li>Bug fi
8b00: 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e 20  x: An assertion 
8b10: 77 61 73 20 66 61 69 6c 69 6e 67 20 69 66 20 22  was failing if "
8b20: 50 52 41 47 4d 41 20 66 75 6c 6c 5f 63 6f 6c 75  PRAGMA full_colu
8b30: 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b 22 20 77 61  mn_names=ON;" wa
8b40: 73 0a 20 20 20 20 73 65 74 20 61 6e 64 20 79 6f  s.    set and yo
8b50: 75 20 64 69 64 20 61 20 71 75 65 72 79 20 74 68  u did a query th
8b60: 61 74 20 75 73 65 64 20 61 20 72 6f 77 69 64 2c  at used a rowid,
8b70: 20 6c 69 6b 65 20 74 68 69 73 3a 20 20 0a 20 20   like this:  .  
8b80: 20 20 22 53 45 4c 45 43 54 20 72 6f 77 69 64 2c    "SELECT rowid,
8b90: 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22 2e 3c 2f 6c   * FROM ...".</l
8ba0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
8bb0: 20 4a 61 6e 20 33 30 20 28 32 2e 33 2e 30 29 7d   Jan 30 (2.3.0)}
8bc0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 73 65 72   {.<li>Fix a ser
8bd0: 69 6f 75 73 20 62 75 67 20 69 6e 20 74 68 65 20  ious bug in the 
8be0: 49 4e 53 45 52 54 20 63 6f 6d 6d 61 6e 64 20 77  INSERT command w
8bf0: 68 69 63 68 20 77 61 73 20 63 61 75 73 69 6e 67  hich was causing
8c00: 20 64 61 74 61 20 74 6f 20 67 6f 0a 20 20 20 20   data to go.    
8c10: 69 6e 74 6f 20 74 68 65 20 77 72 6f 6e 67 20 63  into the wrong c
8c20: 6f 6c 75 6d 6e 73 20 69 66 20 74 68 65 20 64 61  olumns if the da
8c30: 74 61 20 73 6f 75 72 63 65 20 77 61 73 20 61 20  ta source was a 
8c40: 53 45 4c 45 43 54 20 61 6e 64 20 74 68 65 20 49  SELECT and the I
8c50: 4e 53 45 52 54 0a 20 20 20 20 63 6c 61 75 73 65  NSERT.    clause
8c60: 73 20 73 70 65 63 69 66 69 65 64 20 69 74 73 20  s specified its 
8c70: 63 6f 6c 75 6d 6e 73 20 69 6e 20 73 6f 6d 65 20  columns in some 
8c80: 6f 72 64 65 72 20 6f 74 68 65 72 20 74 68 61 6e  order other than
8c90: 20 74 68 65 20 64 65 66 61 75 6c 74 2e 3c 2f 6c   the default.</l
8ca0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
8cb0: 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65 73 6f   ability to reso
8cc0: 6c 76 65 20 63 6f 6e 73 74 72 61 69 6e 74 20 63  lve constraint c
8cd0: 6f 6e 66 6c 69 63 74 73 20 69 73 20 77 61 79 73  onflicts is ways
8ce0: 20 6f 74 68 65 72 20 74 68 61 6e 0a 20 20 20 20   other than.    
8cf0: 61 6e 20 61 62 6f 72 74 20 61 6e 64 20 72 6f 6c  an abort and rol
8d00: 6c 62 61 63 6b 2e 20 20 53 65 65 20 74 68 65 20  lback.  See the 
8d10: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e  documentation on
8d20: 20 74 68 65 20 22 4f 4e 20 43 4f 4e 46 4c 49 43   the "ON CONFLIC
8d30: 54 22 0a 20 20 20 20 63 6c 61 75 73 65 20 66 6f  T".    clause fo
8d40: 72 20 64 65 74 61 69 6c 73 2e 3c 2f 6c 69 3e 0a  r details.</li>.
8d50: 3c 6c 69 3e 54 65 6d 70 6f 72 61 72 79 20 66 69  <li>Temporary fi
8d60: 6c 65 73 20 61 72 65 20 6e 6f 77 20 61 75 74 6f  les are now auto
8d70: 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c 65 74 65  matically delete
8d80: 64 20 62 79 20 74 68 65 20 6f 70 65 72 61 74 69  d by the operati
8d90: 6e 67 20 73 79 73 74 65 6d 0a 20 20 20 20 77 68  ng system.    wh
8da0: 65 6e 20 63 6c 6f 73 65 64 2e 20 20 54 68 65 72  en closed.  Ther
8db0: 65 20 61 72 65 20 6e 6f 20 6d 6f 72 65 20 64 61  e are no more da
8dc0: 6e 67 6c 69 6e 67 20 74 65 6d 70 6f 72 61 72 79  ngling temporary
8dd0: 20 66 69 6c 65 73 20 6f 6e 20 61 20 70 72 6f 67   files on a prog
8de0: 72 61 6d 0a 20 20 20 20 63 72 61 73 68 2e 20 20  ram.    crash.  
8df0: 28 49 66 20 74 68 65 20 4f 53 20 63 72 61 73 68  (If the OS crash
8e00: 65 73 2c 20 66 73 63 6b 20 77 69 6c 6c 20 64 65  es, fsck will de
8e10: 6c 65 74 65 20 74 68 65 20 66 69 6c 65 20 61 66  lete the file af
8e20: 74 65 72 20 72 65 62 6f 6f 74 20 0a 20 20 20 20  ter reboot .    
8e30: 75 6e 64 65 72 20 55 6e 69 78 2e 20 20 49 20 64  under Unix.  I d
8e40: 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77 68 61 74 20  o not know what 
8e50: 68 61 70 70 65 6e 73 20 75 6e 64 65 72 20 57 69  happens under Wi
8e60: 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69  ndows.)</li>.<li
8e70: 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f 6e 73 74 72  >NOT NULL constr
8e80: 61 69 6e 74 73 20 61 72 65 20 68 6f 6e 6f 72 65  aints are honore
8e90: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  d.</li>.<li>The 
8ea0: 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 70 75 74  COPY command put
8eb0: 73 20 4e 55 4c 4c 73 20 69 6e 20 63 6f 6c 75 6d  s NULLs in colum
8ec0: 6e 73 20 77 68 6f 73 65 20 64 61 74 61 20 69 73  ns whose data is
8ed0: 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   '\N'.</li>.<li>
8ee0: 49 6e 20 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d  In the COPY comm
8ef0: 61 6e 64 2c 20 62 61 63 6b 73 6c 61 73 68 20 63  and, backslash c
8f00: 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64 20 74  an now be used t
8f10: 6f 20 65 73 63 61 70 65 20 61 20 6e 65 77 6c 69  o escape a newli
8f20: 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ne.</li>.<li>Add
8f30: 65 64 20 74 68 65 20 53 41 4e 49 54 59 5f 43 48  ed the SANITY_CH
8f40: 45 43 4b 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e  ECK pragma.</li>
8f50: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
8f60: 61 6e 20 32 38 20 28 32 2e 32 2e 35 29 7d 20 7b  an 28 (2.2.5)} {
8f70: 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61 6e 74 20 62  .<li>Important b
8f80: 75 67 20 66 69 78 3a 20 74 68 65 20 49 4e 20 6f  ug fix: the IN o
8f90: 70 65 72 61 74 6f 72 20 77 61 73 20 6e 6f 74 20  perator was not 
8fa0: 77 6f 72 6b 69 6e 67 20 69 66 20 65 69 74 68 65  working if eithe
8fb0: 72 20 74 68 65 0a 20 20 20 20 6c 65 66 74 2d 68  r the.    left-h
8fc0: 61 6e 64 20 6f 72 20 72 69 67 68 74 2d 68 61 6e  and or right-han
8fd0: 64 20 73 69 64 65 20 77 61 73 20 64 65 72 69 76  d side was deriv
8fe0: 65 64 20 66 72 6f 6d 20 61 6e 20 49 4e 54 45 47  ed from an INTEG
8ff0: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2e 3c  ER PRIMARY KEY.<
9000: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20  /li>.<li>Do not 
9010: 65 73 63 61 70 65 20 74 68 65 20 62 61 63 6b 73  escape the backs
9020: 6c 61 73 68 20 27 5c 27 20 63 68 61 72 61 63 74  lash '\' charact
9030: 65 72 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74  er in the output
9040: 20 6f 66 20 74 68 65 0a 20 20 20 20 3c 62 3e 73   of the.    <b>s
9050: 71 6c 69 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  qlite</b> comman
9060: 64 2d 6c 69 6e 65 20 61 63 63 65 73 73 20 70 72  d-line access pr
9070: 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ogram.</li>.}..c
9080: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 32 32  hng {2002 Jan 22
9090: 20 28 32 2e 32 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.4)} {.<li>
90a0: 54 68 65 20 6c 61 62 65 6c 20 74 6f 20 74 68 65  The label to the
90b0: 20 72 69 67 68 74 20 6f 66 20 61 6e 20 41 53 20   right of an AS 
90c0: 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6c 69  in the column li
90d0: 73 74 20 6f 66 20 61 20 53 45 4c 45 43 54 20 63  st of a SELECT c
90e0: 61 6e 20 6e 6f 77 0a 20 20 20 20 62 65 20 75 73  an now.    be us
90f0: 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 61 6e  ed as part of an
9100: 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 74   expression in t
9110: 68 65 20 57 48 45 52 45 2c 20 4f 52 44 45 52 20  he WHERE, ORDER 
9120: 42 59 2c 20 47 52 4f 55 50 20 42 59 2c 20 61 6e  BY, GROUP BY, an
9130: 64 2f 6f 72 0a 20 20 20 20 48 41 56 49 4e 47 20  d/or.    HAVING 
9140: 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  clauses.</li>.<l
9150: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
9160: 68 65 20 3c 62 3e 2d 73 65 70 61 72 61 74 6f 72  he <b>-separator
9170: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e  </b> command-lin
9180: 65 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65 20  e option to the 
9190: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 0a 20 20  <b>sqlite</b>.  
91a0: 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a    command.</li>.
91b0: 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65  <li>Fix a proble
91c0: 6d 20 77 69 74 68 20 74 68 65 20 73 6f 72 74 20  m with the sort 
91d0: 6f 72 64 65 72 20 77 68 65 6e 20 63 6f 6d 70 61  order when compa
91e0: 72 69 6e 67 20 75 70 70 65 72 2d 63 61 73 65 20  ring upper-case 
91f0: 73 74 72 69 6e 67 73 20 61 67 61 69 6e 73 74 0a  strings against.
9200: 20 20 20 20 63 68 61 72 61 63 74 65 72 73 20 67      characters g
9210: 72 65 61 74 65 72 20 74 68 61 6e 20 27 5a 27 20  reater than 'Z' 
9220: 62 75 74 20 6c 65 73 73 20 74 68 61 6e 20 27 61  but less than 'a
9230: 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 70 6f  '.</li>.<li>Repo
9240: 72 74 20 61 6e 20 65 72 72 6f 72 20 69 66 20 61  rt an error if a
9250: 6e 20 4f 52 44 45 52 20 42 59 20 6f 72 20 47 52  n ORDER BY or GR
9260: 4f 55 50 20 42 59 20 65 78 70 72 65 73 73 69 6f  OUP BY expressio
9270: 6e 20 69 73 20 63 6f 6e 73 74 61 6e 74 2e 3c 2f  n is constant.</
9280: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
9290: 32 20 4a 61 6e 20 31 36 20 28 32 2e 32 2e 33 29  2 Jan 16 (2.2.3)
92a0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 77 61 72 6e  } {.<li>Fix warn
92b0: 69 6e 67 20 6d 65 73 73 61 67 65 73 20 69 6e 20  ing messages in 
92c0: 56 43 2b 2b 20 37 2e 30 2e 20 20 28 50 61 74 63  VC++ 7.0.  (Patc
92d0: 68 65 73 20 66 72 6f 6d 20 6e 69 63 6f 6c 61 73  hes from nicolas
92e0: 33 35 32 30 30 31 29 3c 2f 6c 69 3e 0a 3c 6c 69  352001)</li>.<li
92f0: 3e 4d 61 6b 65 20 74 68 65 20 6c 69 62 72 61 72  >Make the librar
9300: 79 20 74 68 72 65 61 64 2d 73 61 66 65 2e 20 20  y thread-safe.  
9310: 28 54 68 65 20 63 6f 64 65 20 69 73 20 74 68 65  (The code is the
9320: 72 65 20 61 6e 64 20 61 70 70 65 61 72 73 20 74  re and appears t
9330: 6f 20 77 6f 72 6b 0a 20 20 20 20 62 75 74 20 68  o work.    but h
9340: 61 73 20 6e 6f 74 20 62 65 65 6e 20 73 74 72 65  as not been stre
9350: 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ssed.)</li>.<li>
9360: 41 64 64 65 64 20 74 68 65 20 6e 65 77 20 3c 62  Added the new <b
9370: 3e 73 71 6c 69 74 65 5f 6c 61 73 74 5f 69 6e 73  >sqlite_last_ins
9380: 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20  ert_rowid()</b> 
9390: 41 50 49 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c  API function.</l
93a0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
93b0: 20 4a 61 6e 20 31 33 20 28 32 2e 32 2e 32 29 7d   Jan 13 (2.2.2)}
93c0: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
93d0: 41 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73  An assertion was
93e0: 20 66 61 69 6c 69 6e 67 20 77 68 65 6e 20 61 20   failing when a 
93f0: 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 20  temporary table 
9400: 77 69 74 68 20 61 6e 20 69 6e 64 65 78 0a 20 20  with an index.  
9410: 20 20 68 61 64 20 74 68 65 20 73 61 6d 65 20 6e    had the same n
9420: 61 6d 65 20 61 73 20 61 20 70 65 72 6d 61 6e 65  ame as a permane
9430: 6e 74 20 74 61 62 6c 65 20 63 72 65 61 74 65 64  nt table created
9440: 20 62 79 20 61 20 73 65 70 61 72 61 74 65 20 70   by a separate p
9450: 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  rocess.</li>.<li
9460: 3e 42 75 67 20 66 69 78 3a 20 55 70 64 61 74 65  >Bug fix: Update
9470: 73 20 74 6f 20 74 61 62 6c 65 73 20 63 6f 6e 74  s to tables cont
9480: 61 69 6e 69 6e 67 20 61 6e 20 49 4e 54 45 47 45  aining an INTEGE
9490: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61 6e  R PRIMARY KEY an
94a0: 64 20 61 6e 0a 20 20 20 20 69 6e 64 65 78 20 63  d an.    index c
94b0: 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f 6c 69 3e 0a  ould fail.</li>.
94c0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61  }..chng {2002 Ja
94d0: 6e 20 39 20 28 32 2e 32 2e 31 29 7d 20 7b 0a 3c  n 9 (2.2.1)} {.<
94e0: 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61  li>Bug fix: An a
94f0: 74 74 65 6d 70 74 20 74 6f 20 64 65 6c 65 74 65  ttempt to delete
9500: 20 61 20 73 69 6e 67 6c 65 20 72 6f 77 20 6f 66   a single row of
9510: 20 61 20 74 61 62 6c 65 20 77 69 74 68 20 61 20   a table with a 
9520: 57 48 45 52 45 0a 20 20 20 20 63 6c 61 75 73 65  WHERE.    clause
9530: 20 6f 66 20 22 52 4f 57 49 44 3d 78 22 20 77 68   of "ROWID=x" wh
9540: 65 6e 20 6e 6f 20 73 75 63 68 20 72 6f 77 69 64  en no such rowid
9550: 20 65 78 69 73 74 73 20 77 61 73 20 63 61 75 73   exists was caus
9560: 69 6e 67 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c  ing an error.</l
9570: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
9580: 50 61 73 73 69 6e 67 20 69 6e 20 61 20 4e 55 4c  Passing in a NUL
9590: 4c 20 61 73 20 74 68 65 20 33 72 64 20 70 61 72  L as the 3rd par
95a0: 61 6d 65 74 65 72 20 74 6f 20 3c 62 3e 73 71 6c  ameter to <b>sql
95b0: 69 74 65 5f 6f 70 65 6e 28 29 3c 2f 62 3e 0a 20  ite_open()</b>. 
95c0: 20 20 20 77 6f 75 6c 64 20 73 6f 6d 65 74 69 6d     would sometim
95d0: 65 73 20 63 61 75 73 65 20 61 20 63 6f 72 65 64  es cause a cored
95e0: 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ump.</li>.<li>Bu
95f0: 67 20 66 69 78 3a 20 44 52 4f 50 20 54 41 42 4c  g fix: DROP TABL
9600: 45 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20  E followed by a 
9610: 43 52 45 41 54 45 20 54 41 42 4c 45 20 77 69 74  CREATE TABLE wit
9620: 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20  h the same name 
9630: 61 6c 6c 0a 20 20 20 20 77 69 74 68 69 6e 20 61  all.    within a
9640: 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 63 74   single transact
9650: 69 6f 6e 20 77 61 73 20 63 61 75 73 69 6e 67 20  ion was causing 
9660: 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e  a coredump.</li>
9670: 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70  .<li>Makefile up
9680: 64 61 74 65 73 20 66 72 6f 6d 20 41 2e 20 52 6f  dates from A. Ro
9690: 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ttmann</li>.}..c
96a0: 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 32 32  hng {2001 Dec 22
96b0: 20 28 32 2e 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.0)} {.<li>
96c0: 43 6f 6c 75 6d 6e 73 20 6f 66 20 74 79 70 65 20  Columns of type 
96d0: 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20  INTEGER PRIMARY 
96e0: 4b 45 59 20 61 72 65 20 61 63 74 75 61 6c 6c 79  KEY are actually
96f0: 20 75 73 65 64 20 61 73 20 74 68 65 20 70 72 69   used as the pri
9700: 6d 61 72 79 0a 20 20 20 20 6b 65 79 20 69 6e 20  mary.    key in 
9710: 75 6e 64 65 72 6c 79 69 6e 67 20 42 2d 54 72 65  underlying B-Tre
9720: 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e  e representation
9730: 20 6f 66 20 74 68 65 20 74 61 62 6c 65 2e 3c 2f   of the table.</
9740: 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65 72 61 6c 20  li>.<li>Several 
9750: 6f 62 73 63 75 72 65 2c 20 75 6e 72 65 6c 61 74  obscure, unrelat
9760: 65 64 20 62 75 67 73 20 77 65 72 65 20 66 6f 75  ed bugs were fou
9770: 6e 64 20 61 6e 64 20 66 69 78 65 64 20 77 68 69  nd and fixed whi
9780: 6c 65 20 0a 20 20 20 20 69 6d 70 6c 65 6d 65 6e  le .    implemen
9790: 74 65 64 20 74 68 65 20 69 6e 74 65 67 65 72 20  ted the integer 
97a0: 70 72 69 6d 61 72 79 20 6b 65 79 20 63 68 61 6e  primary key chan
97b0: 67 65 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f  ge of the previo
97c0: 75 73 20 62 75 6c 6c 65 74 2e 3c 2f 6c 69 3e 0a  us bullet.</li>.
97d0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 61 62  <li>Added the ab
97e0: 69 6c 69 74 79 20 74 6f 20 73 70 65 63 69 66 79  ility to specify
97f0: 20 22 2a 22 20 61 73 20 70 61 72 74 20 6f 66 20   "*" as part of 
9800: 61 20 6c 61 72 67 65 72 20 63 6f 6c 75 6d 6e 20  a larger column 
9810: 6c 69 73 74 20 69 6e 0a 20 20 20 20 74 68 65 20  list in.    the 
9820: 72 65 73 75 6c 74 20 73 65 63 74 69 6f 6e 20 6f  result section o
9830: 66 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65  f a SELECT state
9840: 6d 65 6e 74 2e 20 20 46 6f 72 20 65 78 61 6d 70  ment.  For examp
9850: 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62 72 3e 22 3c  le:.    <nobr>"<
9860: 62 3e 53 45 4c 45 43 54 20 72 6f 77 69 64 2c 20  b>SELECT rowid, 
9870: 2a 20 46 52 4f 4d 20 74 61 62 6c 65 31 3b 3c 2f  * FROM table1;</
9880: 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c 2f 6c 69 3e  b>"</nobr>.</li>
9890: 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74 6f 20  .<li>Updates to 
98a0: 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 64 6f 63  comments and doc
98b0: 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  umentation.</li>
98c0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44  .}..chng {2001 D
98d0: 65 63 20 31 34 20 28 32 2e 31 2e 37 29 7d 20 7b  ec 14 (2.1.7)} {
98e0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
98f0: 6e 20 3c 62 3e 43 52 45 41 54 45 20 54 45 4d 50  n <b>CREATE TEMP
9900: 4f 52 41 52 59 20 54 41 42 4c 45 3c 2f 62 3e 20  ORARY TABLE</b> 
9910: 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69 6e  which was causin
9920: 67 20 74 68 65 0a 20 20 20 20 74 61 62 6c 65 20  g the.    table 
9930: 74 6f 20 62 65 20 69 6e 69 74 69 61 6c 6c 79 20  to be initially 
9940: 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20 74 68 65  allocated in the
9950: 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20 66   main database f
9960: 69 6c 65 20 69 6e 73 74 65 61 64 0a 20 20 20 20  ile instead.    
9970: 6f 66 20 69 6e 20 74 68 65 20 73 65 70 61 72 61  of in the separa
9980: 74 65 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c  te temporary fil
9990: 65 2e 20 20 54 68 69 73 20 62 75 67 20 63 6f 75  e.  This bug cou
99a0: 6c 64 20 63 61 75 73 65 20 74 68 65 20 6c 69 62  ld cause the lib
99b0: 72 61 72 79 0a 20 20 20 20 74 6f 20 73 75 66 66  rary.    to suff
99c0: 65 72 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20  er an assertion 
99d0: 66 61 69 6c 75 72 65 20 61 6e 64 20 69 74 20 63  failure and it c
99e0: 6f 75 6c 64 20 63 61 75 73 65 20 22 70 61 67 65  ould cause "page
99f0: 20 6c 65 61 6b 73 22 20 69 6e 20 74 68 65 0a 20   leaks" in the. 
9a00: 20 20 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65     main database
9a10: 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46 69 78 20 61   file..<li>Fix a
9a20: 20 62 75 67 20 69 6e 20 74 68 65 20 62 2d 74 72   bug in the b-tr
9a30: 65 65 20 73 75 62 73 79 73 74 65 6d 20 74 68 61  ee subsystem tha
9a40: 74 20 63 6f 75 6c 64 20 73 6f 6d 65 74 69 6d 65  t could sometime
9a50: 73 20 63 61 75 73 65 20 74 68 65 20 66 69 72 73  s cause the firs
9a60: 74 0a 20 20 20 20 72 6f 77 20 6f 66 20 61 20 74  t.    row of a t
9a70: 61 62 6c 65 20 74 6f 20 62 65 20 72 65 70 65 61  able to be repea
9a80: 74 65 64 20 64 75 72 69 6e 67 20 61 20 64 61 74  ted during a dat
9a90: 61 62 61 73 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e  abase scan.</li>
9aa0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44  .}..chng {2001 D
9ab0: 65 63 20 31 34 20 28 32 2e 31 2e 36 29 7d 20 7b  ec 14 (2.1.6)} {
9ac0: 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 6c 6f 63  .<li>Fix the loc
9ad0: 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d 20 79  king mechanism y
9ae0: 65 74 20 61 67 61 69 6e 20 74 6f 20 70 72 65 76  et again to prev
9af0: 65 6e 74 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74  ent.    <b>sqlit
9b00: 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 66 72 6f  e_exec()</b> fro
9b10: 6d 20 72 65 74 75 72 6e 69 6e 67 20 53 51 4c 49  m returning SQLI
9b20: 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20  TE_PROTOCOL.    
9b30: 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e 20 20  unnecessarily.  
9b40: 54 68 69 73 20 74 69 6d 65 20 74 68 65 20 62 75  This time the bu
9b50: 67 20 77 61 73 20 61 20 72 61 63 65 20 63 6f 6e  g was a race con
9b60: 64 69 74 69 6f 6e 20 69 6e 0a 20 20 20 20 74 68  dition in.    th
9b70: 65 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 2e 20  e locking code. 
9b80: 20 54 68 69 73 20 63 68 61 6e 67 65 20 65 66 66   This change eff
9b90: 65 63 74 73 20 62 6f 74 68 20 50 4f 53 49 58 20  ects both POSIX 
9ba0: 61 6e 64 20 57 69 6e 64 6f 77 73 20 75 73 65 72  and Windows user
9bb0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
9bc0: 7b 32 30 30 31 20 44 65 63 20 36 20 28 32 2e 31  {2001 Dec 6 (2.1
9bd0: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 66  .5)} {.<li>Fix f
9be0: 6f 72 20 61 6e 6f 74 68 65 72 20 70 72 6f 62 6c  or another probl
9bf0: 65 6d 20 28 75 6e 72 65 6c 61 74 65 64 20 74 6f  em (unrelated to
9c00: 20 74 68 65 20 6f 6e 65 20 66 69 78 65 64 20 69   the one fixed i
9c10: 6e 20 32 2e 31 2e 34 29 20 0a 20 20 20 20 74 68  n 2.1.4) .    th
9c20: 61 74 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75  at sometimes cau
9c30: 73 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78  ses <b>sqlite_ex
9c40: 65 63 28 29 3c 2f 62 3e 20 74 6f 20 72 65 74 75  ec()</b> to retu
9c50: 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43  rn SQLITE_PROTOC
9c60: 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73 73 61  OL.    unnecessa
9c70: 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69 6d 65  rily.  This time
9c80: 20 74 68 65 20 62 75 67 20 77 61 73 0a 20 20 20   the bug was.   
9c90: 20 69 6e 20 74 68 65 20 50 4f 53 49 58 20 6c 6f   in the POSIX lo
9ca0: 63 6b 69 6e 67 20 63 6f 64 65 20 61 6e 64 20 73  cking code and s
9cb0: 68 6f 75 6c 64 20 6e 6f 74 20 65 66 66 65 63 74  hould not effect
9cc0: 20 77 69 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c   windows users.<
9cd0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9ce0: 30 31 20 44 65 63 20 34 20 28 32 2e 31 2e 34 29  01 Dec 4 (2.1.4)
9cf0: 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65 74 69 6d 65  } {.<li>Sometime
9d00: 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63  s <b>sqlite_exec
9d10: 28 29 3c 2f 62 3e 20 77 6f 75 6c 64 20 72 65 74  ()</b> would ret
9d20: 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f  urn SQLITE_PROTO
9d30: 43 4f 4c 20 77 68 65 6e 20 69 74 0a 20 20 20 20  COL when it.    
9d40: 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 74 75  should have retu
9d50: 72 6e 65 64 20 53 51 4c 49 54 45 5f 42 55 53 59  rned SQLITE_BUSY
9d60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 66  .</li>.<li>The f
9d70: 69 78 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f  ix to the previo
9d80: 75 73 20 62 75 67 20 75 6e 63 6f 76 65 72 65 64  us bug uncovered
9d90: 20 61 20 64 65 61 64 6c 6f 63 6b 20 77 68 69 63   a deadlock whic
9da0: 68 20 77 61 73 20 61 6c 73 6f 0a 20 20 20 20 66  h was also.    f
9db0: 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ixed.</li>.<li>A
9dc0: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  dd the ability t
9dd0: 6f 20 70 75 74 20 61 20 73 69 6e 67 6c 65 20 2e  o put a single .
9de0: 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 73  command in the s
9df0: 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 0a 20  econd argument. 
9e00: 20 20 20 6f 66 20 74 68 65 20 73 71 6c 69 74 65     of the sqlite
9e10: 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e   shell</li>.<li>
9e20: 55 70 64 61 74 65 73 20 74 6f 20 74 68 65 20 46  Updates to the F
9e30: 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  AQ</li>.}..chng 
9e40: 7b 32 30 30 31 20 4e 6f 76 20 32 33 20 28 32 2e  {2001 Nov 23 (2.
9e50: 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  1.3)} {.<li>Fix 
9e60: 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f 66 20  the behavior of 
9e70: 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 61  comparison opera
9e80: 74 6f 72 73 20 0a 20 20 20 20 28 65 78 3a 20 22  tors .    (ex: "
9e90: 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c 20 22 3c 62  <b>&lt</b>", "<b
9ea0: 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74 63 2e 29 0a  >==</b>", etc.).
9eb0: 20 20 20 20 73 6f 20 74 68 61 74 20 74 68 65 79      so that they
9ec0: 20 61 72 65 20 63 6f 6e 73 69 73 74 65 6e 74 20   are consistent 
9ed0: 77 69 74 68 20 74 68 65 20 6f 72 64 65 72 20 6f  with the order o
9ee0: 66 20 65 6e 74 72 69 65 73 20 69 6e 20 61 6e 20  f entries in an 
9ef0: 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  index.</li>.<li>
9f00: 43 6f 72 72 65 63 74 20 68 61 6e 64 6c 69 6e 67  Correct handling
9f10: 20 6f 66 20 69 6e 74 65 67 65 72 73 20 69 6e 20   of integers in 
9f20: 53 51 4c 20 65 78 70 72 65 73 73 69 6f 6e 73 20  SQL expressions 
9f30: 74 68 61 74 20 61 72 65 20 6c 61 72 67 65 72 20  that are larger 
9f40: 74 68 61 6e 0a 20 20 20 20 77 68 61 74 20 63 61  than.    what ca
9f50: 6e 20 62 65 20 72 65 70 72 65 73 65 6e 74 65 64  n be represented
9f60: 20 62 79 20 74 68 65 20 6d 61 63 68 69 6e 65 20   by the machine 
9f70: 69 6e 74 65 67 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a  integer.</li>.}.
9f80: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20  .chng {2001 Nov 
9f90: 32 32 20 28 32 2e 31 2e 32 29 7d 20 7b 0a 3c 6c  22 (2.1.2)} {.<l
9fa0: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 73 75 70  i>Changes to sup
9fb0: 70 6f 72 74 20 36 34 2d 62 69 74 20 61 72 63 68  port 64-bit arch
9fc0: 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a  itectures.</li>.
9fd0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
9fe0: 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f   the locking pro
9ff0: 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tocol.</li>.<li>
a000: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 63  Fix a bug that c
a010: 6f 75 6c 64 20 28 72 61 72 65 6c 79 29 20 63 61  ould (rarely) ca
a020: 75 73 65 20 74 68 65 20 64 61 74 61 62 61 73 65  use the database
a030: 20 74 6f 20 62 65 63 6f 6d 65 20 0a 20 20 20 20   to become .    
a040: 75 6e 72 65 61 64 61 62 6c 65 20 61 66 74 65 72  unreadable after
a050: 20 61 20 44 52 4f 50 20 54 41 42 4c 45 20 64 75   a DROP TABLE du
a060: 65 20 74 6f 20 63 6f 72 72 75 70 74 69 6f 6e 20  e to corruption 
a070: 74 6f 20 74 68 65 20 53 51 4c 49 54 45 5f 4d 41  to the SQLITE_MA
a080: 53 54 45 52 0a 20 20 20 20 74 61 62 6c 65 2e 3c  STER.    table.<
a090: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  /li>.<li>Change 
a0a0: 74 68 65 20 63 6f 64 65 20 73 6f 20 74 68 61 74  the code so that
a0b0: 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e 31 20 64   version 2.1.1 d
a0c0: 61 74 61 62 61 73 65 73 20 74 68 61 74 20 77 65  atabases that we
a0d0: 72 65 20 72 65 6e 64 65 72 65 64 20 0a 20 20 20  re rendered .   
a0e0: 20 75 6e 72 65 61 64 61 62 6c 65 20 62 79 20 74   unreadable by t
a0f0: 68 65 20 61 62 6f 76 65 20 62 75 67 20 63 61 6e  he above bug can
a100: 20 62 65 20 72 65 61 64 20 62 79 20 74 68 69 73   be read by this
a110: 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20 20 20 20   version of.    
a120: 74 68 65 20 6c 69 62 72 61 72 79 20 65 76 65 6e  the library even
a130: 20 74 68 6f 75 67 68 20 74 68 65 20 53 51 4c 49   though the SQLI
a140: 54 45 5f 4d 41 53 54 45 52 20 74 61 62 6c 65 20  TE_MASTER table 
a150: 69 73 20 28 73 6c 69 67 68 74 6c 79 29 0a 20 20  is (slightly).  
a160: 20 20 63 6f 72 72 75 70 74 65 64 2e 3c 2f 6c 69    corrupted.</li
a170: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a180: 4e 6f 76 20 31 33 20 28 32 2e 31 2e 31 29 7d 20  Nov 13 (2.1.1)} 
a190: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 53  {.<li>Bug fix: S
a1a0: 6f 6d 65 74 69 6d 65 73 20 61 72 62 69 74 72 61  ometimes arbitra
a1b0: 72 79 20 73 74 72 69 6e 67 73 20 77 65 72 65 20  ry strings were 
a1c0: 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 63 61  passed to the ca
a1d0: 6c 6c 62 61 63 6b 0a 20 20 20 20 66 75 6e 63 74  llback.    funct
a1e0: 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 61 63 74  ion when the act
a1f0: 75 61 6c 20 76 61 6c 75 65 20 6f 66 20 61 20 63  ual value of a c
a200: 6f 6c 75 6d 6e 20 77 61 73 20 4e 55 4c 4c 2e 3c  olumn was NULL.<
a210: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
a220: 30 31 20 4e 6f 76 20 31 32 20 28 32 2e 31 2e 30  01 Nov 12 (2.1.0
a230: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
a240: 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 64 61  the format of da
a250: 74 61 20 72 65 63 6f 72 64 73 20 73 6f 20 74 68  ta records so th
a260: 61 74 20 72 65 63 6f 72 64 73 20 75 70 20 74 6f  at records up to
a270: 20 31 36 4d 42 20 69 6e 20 73 69 7a 65 0a 20 20   16MB in size.  
a280: 20 20 63 61 6e 20 62 65 20 73 74 6f 72 65 64 2e    can be stored.
a290: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
a2a0: 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 69   the format of i
a2b0: 6e 64 69 63 65 73 20 74 6f 20 61 6c 6c 6f 77 20  ndices to allow 
a2c0: 66 6f 72 20 62 65 74 74 65 72 20 71 75 65 72 79  for better query
a2d0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e 3c 2f   optimization.</
a2e0: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c 65 6d 65 6e  li>.<li>Implemen
a2f0: 74 20 74 68 65 20 22 4c 49 4d 49 54 20 2e 2e 2e  t the "LIMIT ...
a300: 20 4f 46 46 53 45 54 20 2e 2e 2e 22 20 63 6c 61   OFFSET ..." cla
a310: 75 73 65 20 6f 6e 20 53 45 4c 45 43 54 20 73 74  use on SELECT st
a320: 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d  atements.</li>.}
a330: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76  ..chng {2001 Nov
a340: 20 33 20 28 32 2e 30 2e 38 29 7d 20 7b 0a 3c 6c   3 (2.0.8)} {.<l
a350: 69 3e 4d 61 64 65 20 73 65 6c 65 63 74 65 64 20  i>Made selected 
a360: 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20 41 50  parameters in AP
a370: 49 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 63  I functions <b>c
a380: 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68 69 73 20 73  onst</b>. This s
a390: 68 6f 75 6c 64 0a 20 20 20 20 62 65 20 66 75 6c  hould.    be ful
a3a0: 6c 79 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d  ly backwards com
a3b0: 70 61 74 69 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  patible.</li>.<l
a3c0: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
a3d0: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  updates</li>.<li
a3e0: 3e 53 69 6d 70 6c 69 66 79 20 74 68 65 20 64 65  >Simplify the de
a3f0: 73 69 67 6e 20 6f 66 20 74 68 65 20 56 44 42 45  sign of the VDBE
a400: 20 62 79 20 72 65 73 74 72 69 63 74 69 6e 67 20   by restricting 
a410: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 6f  the number of so
a420: 72 74 65 72 73 0a 20 20 20 20 61 6e 64 20 6c 69  rters.    and li
a430: 73 74 73 20 74 6f 20 31 2e 0a 20 20 20 20 49 6e  sts to 1..    In
a440: 20 70 72 61 63 74 69 63 65 2c 20 6e 6f 20 6d 6f   practice, no mo
a450: 72 65 20 74 68 61 6e 20 6f 6e 65 20 73 6f 72 74  re than one sort
a460: 65 72 20 61 6e 64 20 6f 6e 65 20 6c 69 73 74 20  er and one list 
a470: 77 61 73 20 65 76 65 72 20 75 73 65 64 20 61 6e  was ever used an
a480: 79 68 6f 77 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  yhow..    </li>.
a490: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
a4a0: 74 20 32 31 20 28 32 2e 30 2e 37 29 7d 20 7b 0a  t 21 (2.0.7)} {.
a4b0: 3c 6c 69 3e 41 6e 79 20 55 54 46 2d 38 20 63 68  <li>Any UTF-8 ch
a4c0: 61 72 61 63 74 65 72 20 6f 72 20 49 53 4f 38 38  aracter or ISO88
a4d0: 35 39 20 63 68 61 72 61 63 74 65 72 20 63 61 6e  59 character can
a4e0: 20 62 65 20 75 73 65 64 20 61 73 20 70 61 72 74   be used as part
a4f0: 20 6f 66 0a 20 20 20 20 61 6e 20 69 64 65 6e 74   of.    an ident
a500: 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ifier.</li>.<li>
a510: 50 61 74 63 68 65 73 20 66 72 6f 6d 20 43 68 72  Patches from Chr
a520: 69 73 74 69 61 6e 20 57 65 72 6e 65 72 20 74 6f  istian Werner to
a530: 20 69 6d 70 72 6f 76 65 20 4f 44 42 43 20 63 6f   improve ODBC co
a540: 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e 64 20  mpatibility and 
a550: 74 6f 0a 20 20 20 20 66 69 78 20 61 20 62 75 67  to.    fix a bug
a560: 20 69 6e 20 74 68 65 20 72 6f 75 6e 64 28 29 20   in the round() 
a570: 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  function.</li>.<
a580: 6c 69 3e 50 6c 75 67 20 73 6f 6d 65 20 6d 65 6d  li>Plug some mem
a590: 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74 20 75  ory leaks that u
a5a0: 73 65 20 74 6f 20 6f 63 63 75 72 20 69 66 20 6d  se to occur if m
a5b0: 61 6c 6c 6f 63 28 29 20 66 61 69 6c 65 64 2e 0a  alloc() failed..
a5c0: 20 20 20 20 57 65 20 68 61 76 65 20 62 65 65 6e      We have been
a5d0: 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 74 6f   and continue to
a5e0: 20 62 65 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20   be memory leak 
a5f0: 66 72 65 65 20 61 73 20 6c 6f 6e 67 20 61 73 0a  free as long as.
a600: 20 20 20 20 6d 61 6c 6c 6f 63 28 29 20 77 6f 72      malloc() wor
a610: 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  ks.</li>.<li>Cha
a620: 6e 67 65 73 20 74 6f 20 73 6f 6d 65 20 74 65 73  nges to some tes
a630: 74 20 73 63 72 69 70 74 73 20 73 6f 20 74 68 61  t scripts so tha
a640: 74 20 74 68 65 79 20 77 6f 72 6b 20 6f 6e 20 57  t they work on W
a650: 69 6e 64 6f 77 73 20 69 6e 0a 20 20 20 20 61 64  indows in.    ad
a660: 64 69 74 69 6f 6e 20 74 6f 20 55 6e 69 78 2e 3c  dition to Unix.<
a670: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
a680: 30 31 20 4f 63 74 20 31 39 20 28 32 2e 30 2e 36  01 Oct 19 (2.0.6
a690: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
a6a0: 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c 54 5f  he EMPTY_RESULT_
a6b0: 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67 6d 61  CALLBACKS pragma
a6c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72  </li>.<li>Suppor
a6d0: 74 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20  t for UTF-8 and 
a6e0: 49 53 4f 38 38 35 39 20 63 68 61 72 61 63 74 65  ISO8859 characte
a6f0: 72 73 20 69 6e 20 63 6f 6c 75 6d 6e 20 61 6e 64  rs in column and
a700: 20 74 61 62 6c 65 20 6e 61 6d 65 73 2e 3c 2f 6c   table names.</l
a710: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
a720: 43 6f 6d 70 75 74 65 20 63 6f 72 72 65 63 74 20  Compute correct 
a730: 74 61 62 6c 65 20 6e 61 6d 65 73 20 77 69 74 68  table names with
a740: 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e   the FULL_COLUMN
a750: 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 0a 20 20  _NAMES pragma.  
a760: 20 20 69 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c    is turned on.<
a770: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
a780: 30 31 20 4f 63 74 20 31 34 20 28 32 2e 30 2e 35  01 Oct 14 (2.0.5
a790: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
a7a0: 68 65 20 43 4f 55 4e 54 5f 43 48 41 4e 47 45 53  he COUNT_CHANGES
a7b0: 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c   pragma.</li>.<l
a7c0: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74 68 65  i>Changes to the
a7d0: 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d   FULL_COLUMN_NAM
a7e0: 45 53 20 70 72 61 67 6d 61 20 74 6f 20 68 65 6c  ES pragma to hel
a7f0: 70 20 6f 75 74 20 74 68 65 20 4f 44 42 43 20 64  p out the ODBC d
a800: 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  river.</li>.<li>
a810: 42 75 67 20 66 69 78 3a 20 22 53 45 4c 45 43 54  Bug fix: "SELECT
a820: 20 63 6f 75 6e 74 28 2a 29 22 20 77 61 73 20 72   count(*)" was r
a830: 65 74 75 72 6e 69 6e 67 20 4e 55 4c 4c 20 66 6f  eturning NULL fo
a840: 72 20 65 6d 70 74 79 20 74 61 62 6c 65 73 2e 0a  r empty tables..
a850: 20 20 20 20 4e 6f 77 20 69 74 20 72 65 74 75 72      Now it retur
a860: 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ns 0.</li>.}..ch
a870: 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33 20  ng {2001 Oct 13 
a880: 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.0.4)} {.<li>B
a890: 75 67 20 66 69 78 3a 20 61 6e 20 6f 62 73 63 75  ug fix: an obscu
a8a0: 72 65 20 61 6e 64 20 72 65 6c 61 74 69 76 65 6c  re and relativel
a8b0: 79 20 68 61 72 6d 6c 65 73 73 20 62 75 67 20 77  y harmless bug w
a8c0: 61 73 20 63 61 75 73 69 6e 67 20 6f 6e 65 20 6f  as causing one o
a8d0: 66 0a 20 20 20 20 74 68 65 20 74 65 73 74 73 20  f.    the tests 
a8e0: 74 6f 20 66 61 69 6c 20 77 68 65 6e 20 67 63 63  to fail when gcc
a8f0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61   optimizations a
a900: 72 65 20 74 75 72 6e 65 64 20 6f 6e 2e 20 20 54  re turned on.  T
a910: 68 69 73 20 72 65 6c 65 61 73 65 0a 20 20 20 20  his release.    
a920: 66 69 78 65 73 20 74 68 65 20 70 72 6f 62 6c 65  fixes the proble
a930: 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  m.</li>.}..chng 
a940: 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28 32 2e  {2001 Oct 13 (2.
a950: 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  0.3)} {.<li>Bug 
a960: 66 69 78 3a 20 74 68 65 20 3c 62 3e 73 71 6c 69  fix: the <b>sqli
a970: 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 28  te_busy_timeout(
a980: 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 77  )</b> function w
a990: 61 73 20 64 65 6c 61 79 69 6e 67 20 31 30 30 30  as delaying 1000
a9a0: 0a 20 20 20 20 74 69 6d 65 73 20 74 6f 6f 20 6c  .    times too l
a9b0: 6f 6e 67 20 62 65 66 6f 72 65 20 66 61 69 6c 69  ong before faili
a9c0: 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ng.</li>.<li>Bug
a9d0: 20 66 69 78 3a 20 61 6e 20 61 73 73 65 72 74 69   fix: an asserti
a9e0: 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20 69  on was failing i
a9f0: 66 20 74 68 65 20 64 69 73 6b 20 68 6f 6c 64 69  f the disk holdi
aa00: 6e 67 20 74 68 65 20 64 61 74 61 62 61 73 65 0a  ng the database.
aa10: 20 20 20 20 66 69 6c 65 20 62 65 63 61 6d 65 20      file became 
aa20: 66 75 6c 6c 20 6f 72 20 73 74 6f 70 70 65 64 20  full or stopped 
aa30: 61 63 63 65 70 74 69 6e 67 20 77 72 69 74 65 73  accepting writes
aa40: 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68 65 72 20   for some other 
aa50: 72 65 61 73 6f 6e 2e 0a 20 20 20 20 4e 65 77 20  reason..    New 
aa60: 74 65 73 74 73 20 77 65 72 65 20 61 64 64 65 64  tests were added
aa70: 20 74 6f 20 64 65 74 65 63 74 20 73 69 6d 69 6c   to detect simil
aa80: 61 72 20 70 72 6f 62 6c 65 6d 73 20 69 6e 20 74  ar problems in t
aa90: 68 65 20 66 75 74 75 72 65 2e 3c 2f 6c 69 3e 0a  he future.</li>.
aaa0: 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20 6f 70  <li>Added new op
aab0: 65 72 61 74 6f 72 73 3a 20 3c 62 3e 26 61 6d 70  erators: <b>&amp
aac0: 3b 3c 2f 62 3e 20 28 62 69 74 77 69 73 65 2d 61  ;</b> (bitwise-a
aad0: 6e 64 29 0a 20 20 20 20 3c 62 3e 7c 3c 2f 62 3e  nd).    <b>|</b>
aae0: 20 28 62 69 74 77 69 73 65 2d 6f 72 29 2c 20 3c   (bitwise-or), <
aaf0: 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65 73 2d 63 6f  b>~</b> (ones-co
ab00: 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20 20 20 20 3c  mplement),.    <
ab10: 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 62 3e 20 28  b>&lt;&lt;</b> (
ab20: 73 68 69 66 74 20 6c 65 66 74 29 2c 20 3c 62 3e  shift left), <b>
ab30: 26 67 74 3b 26 67 74 3b 3c 2f 62 3e 20 28 73 68  &gt;&gt;</b> (sh
ab40: 69 66 74 20 72 69 67 68 74 29 2e 3c 2f 6c 69 3e  ift right).</li>
ab50: 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20 66  .<li>Added new f
ab60: 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 72 6f 75  unctions: <b>rou
ab70: 6e 64 28 29 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  nd()</b> and <b>
ab80: 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a  abs()</b>.</li>.
ab90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
aba0: 74 20 39 20 28 32 2e 30 2e 32 29 7d 20 7b 0a 3c  t 9 (2.0.2)} {.<
abb0: 6c 69 3e 46 69 78 20 74 77 6f 20 62 75 67 73 20  li>Fix two bugs 
abc0: 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70  in the locking p
abd0: 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f 6e 65 20 77  rotocol.  (One w
abe0: 61 73 20 6d 61 73 6b 69 6e 67 20 74 68 65 20 6f  as masking the o
abf0: 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ther.)</li>.<li>
ac00: 52 65 6d 6f 76 65 64 20 73 6f 6d 65 20 75 6e 75  Removed some unu
ac10: 73 65 64 20 22 23 69 6e 63 6c 75 64 65 20 3c 75  sed "#include <u
ac20: 6e 69 73 74 64 2e 68 3e 22 20 74 68 61 74 20 77  nistd.h>" that w
ac30: 65 72 65 20 63 61 75 73 69 6e 67 20 70 72 6f 62  ere causing prob
ac40: 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 56 43 2b  lems.    for VC+
ac50: 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65  +.</li>.<li>Fixe
ac60: 64 20 3c 62 3e 73 71 6c 69 74 65 2e 68 3c 2f 62  d <b>sqlite.h</b
ac70: 3e 20 73 6f 20 74 68 61 74 20 69 74 20 69 73 20  > so that it is 
ac80: 75 73 61 62 6c 65 20 66 72 6f 6d 20 43 2b 2b 3c  usable from C++<
ac90: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
aca0: 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e  he FULL_COLUMN_N
acb0: 41 4d 45 53 20 70 72 61 67 6d 61 2e 20 20 57 68  AMES pragma.  Wh
acc0: 65 6e 20 73 65 74 20 74 6f 20 22 4f 4e 22 2c 20  en set to "ON", 
acd0: 74 68 65 20 6e 61 6d 65 73 20 6f 66 0a 20 20 20  the names of.   
ace0: 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 72 65 70   columns are rep
acf0: 6f 72 74 65 64 20 62 61 63 6b 20 61 73 20 54 41  orted back as TA
ad00: 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69 6e 73 74 65  BLE.COLUMN inste
ad10: 61 64 20 6f 66 20 6a 75 73 74 20 43 4f 4c 55 4d  ad of just COLUM
ad20: 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  N.</li>.<li>Adde
ad30: 64 20 74 68 65 20 54 41 42 4c 45 5f 49 4e 46 4f  d the TABLE_INFO
ad40: 28 29 20 61 6e 64 20 49 4e 44 45 58 5f 49 4e 46  () and INDEX_INF
ad50: 4f 28 29 20 70 72 61 67 6d 61 73 20 74 6f 20 68  O() pragmas to h
ad60: 65 6c 70 20 73 75 70 70 6f 72 74 20 74 68 65 0a  elp support the.
ad70: 20 20 20 20 4f 44 42 43 20 69 6e 74 65 72 66 61      ODBC interfa
ad80: 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ce.</li>.<li>Add
ad90: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 54  ed support for T
ada0: 45 4d 50 4f 52 41 52 59 20 74 61 62 6c 65 73 20  EMPORARY tables 
adb0: 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69  and indices.</li
adc0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
add0: 4f 63 74 20 32 20 28 32 2e 30 2e 31 29 7d 20 7b  Oct 2 (2.0.1)} {
ade0: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 73 6f 6d 65  .<li>Remove some
adf0: 20 43 2b 2b 20 73 74 79 6c 65 20 63 6f 6d 6d 65   C++ style comme
ae00: 6e 74 73 20 66 72 6f 6d 20 62 74 72 65 65 2e 63  nts from btree.c
ae10: 20 73 6f 20 74 68 61 74 20 69 74 20 77 69 6c 6c   so that it will
ae20: 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 75 73 69   compile.    usi
ae30: 6e 67 20 63 6f 6d 70 69 6c 65 72 73 20 6f 74 68  ng compilers oth
ae40: 65 72 20 74 68 61 6e 20 67 63 63 2e 3c 2f 6c 69  er than gcc.</li
ae50: 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e 64 75 6d 70  >.<li>The ".dump
ae60: 22 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 74 68  " output from th
ae70: 65 20 73 68 65 6c 6c 20 64 6f 65 73 20 6e 6f 74  e shell does not
ae80: 20 77 6f 72 6b 20 69 66 20 74 68 65 72 65 20 61   work if there a
ae90: 72 65 20 65 6d 62 65 64 64 65 64 0a 20 20 20 20  re embedded.    
aea0: 6e 65 77 6c 69 6e 65 73 20 61 6e 79 77 68 65 72  newlines anywher
aeb0: 65 20 69 6e 20 74 68 65 20 64 61 74 61 2e 20 20  e in the data.  
aec0: 54 68 69 73 20 69 73 20 61 6e 20 6f 6c 64 20 62  This is an old b
aed0: 75 67 20 74 68 61 74 20 77 61 73 20 63 61 72 72  ug that was carr
aee0: 69 65 64 0a 20 20 20 20 66 6f 72 77 61 72 64 20  ied.    forward 
aef0: 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20 31 2e 30  from version 1.0
af00: 2e 20 20 54 6f 20 66 69 78 20 69 74 2c 20 74 68  .  To fix it, th
af10: 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70 75 74  e ".dump" output
af20: 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20 20 20 20 75   no longer.    u
af30: 73 65 73 20 74 68 65 20 43 4f 50 59 20 63 6f 6d  ses the COPY com
af40: 6d 61 6e 64 2e 20 20 49 74 20 69 6e 73 74 65 61  mand.  It instea
af50: 64 20 67 65 6e 65 72 61 74 65 73 20 49 4e 53 45  d generates INSE
af60: 52 54 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f  RT statements.</
af70: 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65 6e 64 20 74  li>.<li>Extend t
af80: 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 73 79  he expression sy
af90: 6e 74 61 78 20 74 6f 20 73 75 70 70 6f 72 74 20  ntax to support 
afa0: 22 65 78 70 72 20 4e 4f 54 20 4e 55 4c 4c 22 20  "expr NOT NULL" 
afb0: 28 77 69 74 68 20 61 0a 20 20 20 20 73 70 61 63  (with a.    spac
afc0: 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 22 4e  e between the "N
afd0: 4f 54 22 20 61 6e 64 20 74 68 65 20 22 4e 55 4c  OT" and the "NUL
afe0: 4c 22 29 20 69 6e 20 61 64 64 69 74 69 6f 6e 20  L") in addition 
aff0: 74 6f 20 22 65 78 70 72 20 4e 4f 54 4e 55 4c 4c  to "expr NOTNULL
b000: 22 0a 20 20 20 20 28 77 69 74 68 20 6e 6f 20 73  ".    (with no s
b010: 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  pace).</li>.}..c
b020: 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 38  hng {2001 Sep 28
b030: 20 28 32 2e 30 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.0)} {.<li>
b040: 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 62 75  Automatically bu
b050: 69 6c 64 20 62 69 6e 61 72 69 65 73 20 66 6f 72  ild binaries for
b060: 20 4c 69 6e 75 78 20 61 6e 64 20 57 69 6e 64 6f   Linux and Windo
b070: 77 73 20 61 6e 64 20 70 75 74 20 74 68 65 6d 20  ws and put them 
b080: 6f 6e 0a 20 20 20 20 74 68 65 20 77 65 62 73 69  on.    the websi
b090: 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  te.</li>.}..chng
b0a0: 20 7b 32 30 30 31 20 53 65 70 20 32 38 20 28 32   {2001 Sep 28 (2
b0b0: 2e 30 2d 61 6c 70 68 61 2d 34 29 7d 20 7b 0a 3c  .0-alpha-4)} {.<
b0c0: 6c 69 3e 49 6e 63 6f 72 70 6f 72 61 74 65 20 6d  li>Incorporate m
b0d0: 61 6b 65 66 69 6c 65 20 70 61 74 63 68 65 73 20  akefile patches 
b0e0: 66 6f 72 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e  form A. Rottmann
b0f0: 20 74 6f 20 75 73 65 20 4c 49 42 54 4f 4f 4c 3c   to use LIBTOOL<
b100: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
b110: 30 31 20 53 65 70 20 32 37 20 28 32 2e 30 2d 61  01 Sep 27 (2.0-a
b120: 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c 6c 69 3e 53  lpha-3)} {.<li>S
b130: 51 4c 69 74 65 20 6e 6f 77 20 68 6f 6e 6f 72 73  QLite now honors
b140: 20 74 68 65 20 55 4e 49 51 55 45 20 6b 65 79 77   the UNIQUE keyw
b150: 6f 72 64 20 69 6e 20 43 52 45 41 54 45 20 55 4e  ord in CREATE UN
b160: 49 51 55 45 20 49 4e 44 45 58 2e 20 20 50 72 69  IQUE INDEX.  Pri
b170: 6d 61 72 79 0a 20 20 20 20 6b 65 79 73 20 61 72  mary.    keys ar
b180: 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 62 65  e required to be
b190: 20 75 6e 69 71 75 65 2e 3c 2f 6c 69 3e 0a 3c 6c   unique.</li>.<l
b1a0: 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20 63 68  i>File format ch
b1b0: 61 6e 67 65 64 20 62 61 63 6b 20 74 6f 20 77 68  anged back to wh
b1c0: 61 74 20 69 74 20 77 61 73 20 66 6f 72 20 61 6c  at it was for al
b1d0: 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  pha-1</li>.<li>F
b1e0: 69 78 65 73 20 74 6f 20 74 68 65 20 72 6f 6c 6c  ixes to the roll
b1f0: 62 61 63 6b 20 61 6e 64 20 6c 6f 63 6b 69 6e 67  back and locking
b200: 20 62 65 68 61 76 69 6f 72 3c 2f 6c 69 3e 0a 7d   behavior</li>.}
b210: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70  ..chng {2001 Sep
b220: 20 32 30 20 28 32 2e 30 2d 61 6c 70 68 61 2d 32   20 (2.0-alpha-2
b230: 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c  )} {.<li>Initial
b240: 20 72 65 6c 65 61 73 65 20 6f 66 20 76 65 72 73   release of vers
b250: 69 6f 6e 20 32 2e 30 2e 20 20 54 68 65 20 69 64  ion 2.0.  The id
b260: 65 61 20 6f 66 20 72 65 6e 61 6d 69 6e 67 20 74  ea of renaming t
b270: 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20 20 74  he library.    t
b280: 6f 20 22 53 51 4c 75 73 22 20 77 61 73 20 61 62  o "SQLus" was ab
b290: 61 6e 64 6f 6e 65 64 20 69 6e 20 66 61 76 6f 72  andoned in favor
b2a0: 20 6f 66 20 6b 65 65 70 69 6e 67 20 74 68 65 20   of keeping the 
b2b0: 22 53 51 4c 69 74 65 22 20 6e 61 6d 65 20 61 6e  "SQLite" name an
b2c0: 64 0a 20 20 20 20 62 75 6d 70 69 6e 67 20 74 68  d.    bumping th
b2d0: 65 20 6d 61 6a 6f 72 20 76 65 72 73 69 6f 6e 20  e major version 
b2e0: 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  number.</li>.<li
b2f0: 3e 54 68 65 20 70 61 67 65 72 20 61 6e 64 20 62  >The pager and b
b300: 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 73 20  tree subsystems 
b310: 61 64 64 65 64 20 62 61 63 6b 2e 20 54 68 65 79  added back. They
b320: 20 61 72 65 20 6e 6f 77 20 74 68 65 20 6f 6e 6c   are now the onl
b330: 79 0a 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20  y.    available 
b340: 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c  backend.</li>.<l
b350: 69 3e 54 68 65 20 44 62 62 65 20 61 62 73 74 72  i>The Dbbe abstr
b360: 61 63 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 47  action and the G
b370: 44 42 4d 20 61 6e 64 20 6d 65 6d 6f 72 79 20 64  DBM and memory d
b380: 72 69 76 65 72 73 20 77 65 72 65 20 72 65 6d 6f  rivers were remo
b390: 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ved.</li>.<li>Co
b3a0: 70 79 72 69 67 68 74 20 6f 6e 20 61 6c 6c 20 63  pyright on all c
b3b0: 6f 64 65 20 77 61 73 20 64 69 73 63 6c 61 69 6d  ode was disclaim
b3c0: 65 64 2e 20 20 54 68 65 20 6c 69 62 72 61 72 79  ed.  The library
b3d0: 20 69 73 20 6e 6f 77 20 69 6e 20 74 68 65 0a 20   is now in the. 
b3e0: 20 20 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e     public domain
b3f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
b400: 32 30 30 31 20 4a 75 6c 20 32 33 20 28 31 2e 30  2001 Jul 23 (1.0
b410: 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65  .32)} {.<li>Page
b420: 72 20 61 6e 64 20 62 74 72 65 65 20 73 75 62 73  r and btree subs
b430: 79 73 74 65 6d 73 20 72 65 6d 6f 76 65 64 2e 20  ystems removed. 
b440: 20 54 68 65 73 65 20 77 69 6c 6c 20 62 65 20 75   These will be u
b450: 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c 6f 77 2d  sed in a follow-
b460: 6f 6e 0a 20 20 20 20 53 51 4c 20 73 65 72 76 65  on.    SQL serve
b470: 72 20 6c 69 62 72 61 72 79 20 6e 61 6d 65 64 20  r library named 
b480: 22 53 51 4c 75 73 22 2e 3c 2f 6c 69 3e 0a 3c 6c  "SQLus".</li>.<l
b490: 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74  i>Add the abilit
b4a0: 79 20 74 6f 20 75 73 65 20 71 75 6f 74 65 64 20  y to use quoted 
b4b0: 73 74 72 69 6e 67 73 20 61 73 20 74 61 62 6c 65  strings as table
b4c0: 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65   and column name
b4d0: 73 20 69 6e 0a 20 20 20 20 65 78 70 72 65 73 73  s in.    express
b4e0: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ions.</li>.}..ch
b4f0: 6e 67 20 7b 32 30 30 31 20 41 70 72 20 31 34 20  ng {2001 Apr 14 
b500: 28 31 2e 30 2e 33 31 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.31)} {.<li>
b510: 50 61 67 65 72 20 73 75 62 73 79 73 74 65 6d 20  Pager subsystem 
b520: 61 64 64 65 64 20 62 75 74 20 6e 6f 74 20 79 65  added but not ye
b530: 74 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  t used.</li>.<li
b540: 3e 4d 6f 72 65 20 72 6f 62 75 73 74 20 68 61 6e  >More robust han
b550: 64 6c 69 6e 67 20 6f 66 20 6f 75 74 2d 6f 66 2d  dling of out-of-
b560: 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73 2e 3c 2f  memory errors.</
b570: 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 74 65 73 74  li>.<li>New test
b580: 73 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 74  s added to the t
b590: 65 73 74 20 73 75 69 74 65 2e 3c 2f 6c 69 3e 0a  est suite.</li>.
b5a0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70  }..chng {2001 Ap
b5b0: 72 20 36 20 28 31 2e 30 2e 33 30 29 7d 20 7b 0a  r 6 (1.0.30)} {.
b5c0: 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65 20 3c  <li>Remove the <
b5d0: 62 3e 73 71 6c 69 74 65 5f 65 6e 63 6f 64 69 6e  b>sqlite_encodin
b5e0: 67 3c 2f 62 3e 20 54 43 4c 20 76 61 72 69 61 62  g</b> TCL variab
b5f0: 6c 65 20 74 68 61 74 20 77 61 73 20 69 6e 74 72  le that was intr
b600: 6f 64 75 63 65 64 0a 20 20 20 20 69 6e 20 74 68  oduced.    in th
b610: 65 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69  e previous versi
b620: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  on.</li>.<li>Add
b630: 20 6f 70 74 69 6f 6e 73 20 3c 62 3e 2d 65 6e 63   options <b>-enc
b640: 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e 64 20 3c 62  oding</b> and <b
b650: 3e 2d 74 63 6c 2d 75 73 65 73 2d 75 74 66 3c 2f  >-tcl-uses-utf</
b660: 62 3e 20 74 6f 20 74 68 65 0a 20 20 20 20 3c 62  b> to the.    <b
b670: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 54 43 4c 20  >sqlite</b> TCL 
b680: 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c  command.</li>.<l
b690: 69 3e 41 64 64 20 74 65 73 74 73 20 74 6f 20 6d  i>Add tests to m
b6a0: 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 63  ake sure that tc
b6b0: 6c 73 71 6c 69 74 65 20 77 61 73 20 63 6f 6d 70  lsqlite was comp
b6c0: 69 6c 65 64 20 75 73 69 6e 67 20 54 63 6c 20 68  iled using Tcl h
b6d0: 65 61 64 65 72 0a 20 20 20 20 66 69 6c 65 73 20  eader.    files 
b6e0: 61 6e 64 20 6c 69 62 72 61 72 69 65 73 20 74 68  and libraries th
b6f0: 61 74 20 6d 61 74 63 68 2e 3c 2f 6c 69 3e 0a 7d  at match.</li>.}
b700: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72  ..chng {2001 Apr
b710: 20 35 20 28 31 2e 30 2e 32 39 29 7d 20 7b 0a 3c   5 (1.0.29)} {.<
b720: 6c 69 3e 54 68 65 20 6c 69 62 72 61 72 79 20 6e  li>The library n
b730: 6f 77 20 61 73 73 75 6d 65 73 20 64 61 74 61 20  ow assumes data 
b740: 69 73 20 73 74 6f 72 65 64 20 61 73 20 55 54 46  is stored as UTF
b750: 2d 38 20 69 66 20 74 68 65 20 2d 2d 65 6e 61 62  -8 if the --enab
b760: 6c 65 2d 75 74 66 38 0a 20 20 20 20 6f 70 74 69  le-utf8.    opti
b770: 6f 6e 20 69 73 20 67 69 76 65 6e 20 74 6f 20 63  on is given to c
b780: 6f 6e 66 69 67 75 72 65 2e 20 20 54 68 65 20 64  onfigure.  The d
b790: 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 20  efault behavior 
b7a0: 69 73 20 74 6f 20 61 73 73 75 6d 65 0a 20 20 20  is to assume.   
b7b0: 20 69 73 6f 38 38 35 39 2d 78 2c 20 61 73 20 69   iso8859-x, as i
b7c0: 74 20 68 61 73 20 61 6c 77 61 79 73 20 64 6f 6e  t has always don
b7d0: 65 2e 20 20 54 68 69 73 20 6f 6e 6c 79 20 6d 61  e.  This only ma
b7e0: 6b 65 73 20 61 20 64 69 66 66 65 72 65 6e 63 65  kes a difference
b7f0: 20 66 6f 72 0a 20 20 20 20 4c 49 4b 45 20 61 6e   for.    LIKE an
b800: 64 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72 73  d GLOB operators
b810: 20 61 6e 64 20 74 68 65 20 4c 45 4e 47 54 48 20   and the LENGTH 
b820: 61 6e 64 20 53 55 42 53 54 52 20 66 75 6e 63 74  and SUBSTR funct
b830: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  ions.</li>.<li>I
b840: 66 20 74 68 65 20 6c 69 62 72 61 72 79 20 69 73  f the library is
b850: 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 65 64 20   not configured 
b860: 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20 74 68  for UTF-8 and th
b870: 65 20 54 63 6c 20 6c 69 62 72 61 72 79 0a 20 20  e Tcl library.  
b880: 20 20 69 73 20 6f 6e 65 20 6f 66 20 74 68 65 20    is one of the 
b890: 6e 65 77 65 72 20 6f 6e 65 73 20 74 68 61 74 20  newer ones that 
b8a0: 75 73 65 73 20 55 54 46 2d 38 20 69 6e 74 65 72  uses UTF-8 inter
b8b0: 6e 61 6c 6c 79 2c 0a 20 20 20 20 74 68 65 6e 20  nally,.    then 
b8c0: 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66 72 6f  a conversion fro
b8d0: 6d 20 55 54 46 2d 38 20 74 6f 20 69 73 6f 38 38  m UTF-8 to iso88
b8e0: 35 39 20 61 6e 64 0a 20 20 20 20 62 61 63 6b 20  59 and.    back 
b8f0: 61 67 61 69 6e 20 69 73 20 64 6f 6e 65 20 69 6e  again is done in
b900: 73 69 64 65 20 74 68 65 20 54 43 4c 20 69 6e 74  side the TCL int
b910: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  erface.</li>.}..
b920: 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 34  chng {2001 Apr 4
b930: 20 28 31 2e 30 2e 32 38 29 7d 20 7b 0a 3c 6c 69   (1.0.28)} {.<li
b940: 3e 41 64 64 65 64 20 6c 69 6d 69 74 65 64 20 73  >Added limited s
b950: 75 70 70 6f 72 74 20 66 6f 72 20 74 72 61 6e 73  upport for trans
b960: 61 63 74 69 6f 6e 73 2e 20 20 41 74 20 74 68 69  actions.  At thi
b970: 73 20 70 6f 69 6e 74 2c 20 74 72 61 6e 73 61 63  s point, transac
b980: 74 69 6f 6e 73 0a 20 20 20 20 77 69 6c 6c 20 64  tions.    will d
b990: 6f 20 74 61 62 6c 65 20 6c 6f 63 6b 69 6e 67 20  o table locking 
b9a0: 6f 6e 20 74 68 65 20 47 44 42 4d 20 62 61 63 6b  on the GDBM back
b9b0: 65 6e 64 2e 20 20 54 68 65 72 65 20 69 73 20 6e  end.  There is n
b9c0: 6f 20 73 75 70 70 6f 72 74 20 28 79 65 74 29 0a  o support (yet).
b9d0: 20 20 20 20 66 6f 72 20 72 6f 6c 6c 62 61 63 6b      for rollback
b9e0: 20 6f 72 20 61 74 6f 6d 69 63 20 63 6f 6d 6d 69   or atomic commi
b9f0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  t.</li>.<li>Adde
ba00: 64 20 73 70 65 63 69 61 6c 20 63 6f 6c 75 6d 6e  d special column
ba10: 20 6e 61 6d 65 73 20 52 4f 57 49 44 2c 20 4f 49   names ROWID, OI
ba20: 44 2c 20 61 6e 64 20 5f 52 4f 57 49 44 5f 20 74  D, and _ROWID_ t
ba30: 68 61 74 20 72 65 66 65 72 20 74 6f 20 74 68 65  hat refer to the
ba40: 0a 20 20 20 20 75 6e 69 71 75 65 20 72 61 6e 64  .    unique rand
ba50: 6f 6d 20 69 6e 74 65 67 65 72 20 6b 65 79 20 61  om integer key a
ba60: 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 65  ssociated with e
ba70: 76 65 72 79 20 72 6f 77 20 6f 66 20 65 76 65 72  very row of ever
ba80: 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  y table.</li>.<l
ba90: 69 3e 41 64 64 69 74 69 6f 6e 61 6c 20 74 65 73  i>Additional tes
baa0: 74 73 20 61 64 64 65 64 20 74 6f 20 74 68 65 20  ts added to the 
bab0: 72 65 67 72 65 73 73 69 6f 6e 20 73 75 69 74 65  regression suite
bac0: 20 74 6f 20 63 6f 76 65 72 20 74 68 65 20 6e 65   to cover the ne
bad0: 77 20 52 4f 57 49 44 0a 20 20 20 20 66 65 61 74  w ROWID.    feat
bae0: 75 72 65 20 61 6e 64 20 74 68 65 20 54 43 4c 20  ure and the TCL 
baf0: 69 6e 74 65 72 66 61 63 65 20 62 75 67 73 20 6d  interface bugs m
bb00: 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f 77 2e 3c  entioned below.<
bb10: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  /li>.<li>Changes
bb20: 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20   to the "lemon" 
bb30: 70 61 72 73 65 72 20 67 65 6e 65 72 61 74 6f 72  parser generator
bb40: 20 74 6f 20 68 65 6c 70 20 69 74 20 77 6f 72 6b   to help it work
bb50: 20 62 65 74 74 65 72 20 77 68 65 6e 0a 20 20 20   better when.   
bb60: 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e 67 20   compiled using 
bb70: 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  MSVC.</li>.<li>B
bb80: 75 67 20 66 69 78 65 73 20 69 6e 20 74 68 65 20  ug fixes in the 
bb90: 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20 69 64  TCL interface id
bba0: 65 6e 74 69 66 69 65 64 20 62 79 20 4f 6c 65 67  entified by Oleg
bbb0: 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f 6c 69 3e 0a   Oleinick.</li>.
bbc0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d 61  }..chng {2001 Ma
bbd0: 72 20 32 30 20 28 31 2e 30 2e 32 37 29 7d 20 7b  r 20 (1.0.27)} {
bbe0: 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f 69 6e 67 20  .<li>When doing 
bbf0: 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44 41 54  DELETE and UPDAT
bc00: 45 2c 20 74 68 65 20 6c 69 62 72 61 72 79 20 75  E, the library u
bc10: 73 65 64 20 74 6f 20 77 72 69 74 65 20 74 68 65  sed to write the
bc20: 20 72 65 63 6f 72 64 0a 20 20 20 20 6e 75 6d 62   record.    numb
bc30: 65 72 73 20 6f 66 20 72 65 63 6f 72 64 73 20 74  ers of records t
bc40: 6f 20 62 65 20 64 65 6c 65 74 65 64 20 6f 72 20  o be deleted or 
bc50: 75 70 64 61 74 65 64 20 69 6e 74 6f 20 61 20 74  updated into a t
bc60: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e 0a 20  emporary file.. 
bc70: 20 20 20 54 68 69 73 20 69 73 20 63 68 61 6e 67     This is chang
bc80: 65 64 20 73 6f 20 74 68 61 74 20 74 68 65 20 72  ed so that the r
bc90: 65 63 6f 72 64 20 6e 75 6d 62 65 72 73 20 61 72  ecord numbers ar
bca0: 65 20 68 65 6c 64 20 69 6e 20 6d 65 6d 6f 72 79  e held in memory
bcb0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 44  .</li>.<li>The D
bcc0: 45 4c 45 54 45 20 63 6f 6d 6d 61 6e 64 20 77 69  ELETE command wi
bcd0: 74 68 6f 75 74 20 61 20 57 48 49 4c 45 20 63 6c  thout a WHILE cl
bce0: 61 75 73 65 20 6a 75 73 74 20 72 65 6d 6f 76 65  ause just remove
bcf0: 73 20 74 68 65 20 64 61 74 61 62 61 73 65 0a 20  s the database. 
bd00: 20 20 20 66 69 6c 65 73 20 66 72 6f 6d 20 74 68     files from th
bd10: 65 20 64 69 73 6b 2c 20 72 61 74 68 65 72 20 74  e disk, rather t
bd20: 68 61 6e 20 67 6f 69 6e 67 20 74 68 72 6f 75 67  han going throug
bd30: 68 20 61 6e 64 20 64 65 6c 65 74 69 6e 67 20 72  h and deleting r
bd40: 65 63 6f 72 64 0a 20 20 20 20 62 79 20 72 65 63  ecord.    by rec
bd50: 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ord.</li>.}..chn
bd60: 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30 20 28  g {2001 Mar 20 (
bd70: 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c 6c 69 3e 41  1.0.26)} {.<li>A
bd80: 20 73 65 72 69 6f 75 73 20 62 75 67 20 66 69 78   serious bug fix
bd90: 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 2e 20 20  ed on Windows.  
bda0: 57 69 6e 64 6f 77 73 20 75 73 65 72 73 20 73 68  Windows users sh
bdb0: 6f 75 6c 64 20 75 70 67 72 61 64 65 2e 0a 20 20  ould upgrade..  
bdc0: 20 20 4e 6f 20 69 6d 70 61 63 74 20 74 6f 20 55    No impact to U
bdd0: 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nix.</li>.}..chn
bde0: 67 20 7b 32 30 30 31 20 4d 61 72 20 31 35 20 28  g {2001 Mar 15 (
bdf0: 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c 6c 69 3e 4d  1.0.25)} {.<li>M
be00: 6f 64 69 66 79 20 74 68 65 20 74 65 73 74 20 73  odify the test s
be10: 63 72 69 70 74 73 20 74 6f 20 69 64 65 6e 74 69  cripts to identi
be20: 66 79 20 74 65 73 74 73 20 74 68 61 74 20 64 65  fy tests that de
be30: 70 65 6e 64 20 6f 6e 20 73 79 73 74 65 6d 0a 20  pend on system. 
be40: 20 20 20 6c 6f 61 64 20 61 6e 64 20 70 72 6f 63     load and proc
be50: 65 73 73 6f 72 20 73 70 65 65 64 20 61 6e 64 0a  essor speed and.
be60: 20 20 20 20 74 6f 20 77 61 72 6e 20 74 68 65 20      to warn the 
be70: 75 73 65 72 20 74 68 61 74 20 61 20 66 61 69 6c  user that a fail
be80: 75 72 65 20 6f 66 20 6f 6e 65 20 6f 66 20 74 68  ure of one of th
be90: 6f 73 65 20 28 72 61 72 65 29 20 74 65 73 74 73  ose (rare) tests
bea0: 20 64 6f 65 73 0a 20 20 20 20 6e 6f 74 20 6e 65   does.    not ne
beb0: 63 65 73 73 61 72 69 6c 79 20 6d 65 61 6e 20 74  cessarily mean t
bec0: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6d 61  he library is ma
bed0: 6c 66 75 6e 63 74 69 6f 6e 69 6e 67 2e 20 20 4e  lfunctioning.  N
bee0: 6f 20 63 68 61 6e 67 65 73 20 74 6f 0a 20 20 20  o changes to.   
bef0: 20 63 6f 64 65 2e 0a 20 20 20 20 3c 2f 6c 69 3e   code..    </li>
bf00: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d  .}..chng {2001 M
bf10: 61 72 20 31 34 20 28 31 2e 30 2e 32 34 29 7d 20  ar 14 (1.0.24)} 
bf20: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
bf30: 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69 6e  which was causin
bf40: 67 0a 20 20 20 20 74 68 65 20 55 50 44 41 54 45  g.    the UPDATE
bf50: 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66 61 69 6c   command to fail
bf60: 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68 65 72   on systems wher
bf70: 65 20 22 6d 61 6c 6c 6f 63 28 30 29 22 20 72 65  e "malloc(0)" re
bf80: 74 75 72 6e 73 0a 20 20 20 20 4e 55 4c 4c 2e 20  turns.    NULL. 
bf90: 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 64 6f 65   The problem doe
bfa0: 73 20 6e 6f 74 20 61 70 70 65 61 72 20 57 69 6e  s not appear Win
bfb0: 64 6f 77 73 2c 20 4c 69 6e 75 78 2c 20 6f 72 20  dows, Linux, or 
bfc0: 48 50 55 58 20 62 75 74 20 64 6f 65 73 20 0a 20  HPUX but does . 
bfd0: 20 20 20 63 61 75 73 65 20 74 68 65 20 6c 69 62     cause the lib
bfe0: 72 61 72 79 20 74 6f 20 66 61 69 6c 20 6f 6e 20  rary to fail on 
bff0: 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d  QNX..    </li>.}
c000: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62  ..chng {2001 Feb
c010: 20 31 39 20 28 31 2e 30 2e 32 33 29 7d 20 7b 0a   19 (1.0.23)} {.
c020: 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c 61 74 65 64  <li>An unrelated
c030: 20 28 61 6e 64 20 6d 69 6e 6f 72 29 20 62 75 67   (and minor) bug
c040: 20 66 72 6f 6d 20 4d 61 72 6b 20 4d 75 72 61 6e   from Mark Muran
c050: 77 73 6b 69 20 66 69 78 65 64 2e 20 20 54 68 65  wski fixed.  The
c060: 20 61 6c 67 6f 72 69 74 68 6d 0a 20 20 20 20 66   algorithm.    f
c070: 6f 72 20 66 69 67 75 72 69 6e 67 20 6f 75 74 20  or figuring out 
c080: 77 68 65 72 65 20 74 6f 20 70 75 74 20 74 65 6d  where to put tem
c090: 70 6f 72 61 72 79 20 66 69 6c 65 73 20 66 6f 72  porary files for
c0a0: 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 64 61 74   a "memory:" dat
c0b0: 61 62 61 73 65 0a 20 20 20 20 77 61 73 20 6e 6f  abase.    was no
c0c0: 74 20 77 6f 72 6b 69 6e 67 20 71 75 69 74 65 20  t working quite 
c0d0: 72 69 67 68 74 2e 0a 20 20 20 20 3c 2f 6c 69 3e  right..    </li>
c0e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
c0f0: 65 62 20 31 39 20 28 31 2e 30 2e 32 32 29 7d 20  eb 19 (1.0.22)} 
c100: 7b 0a 3c 6c 69 3e 54 68 65 20 70 72 65 76 69 6f  {.<li>The previo
c110: 75 73 20 66 69 78 20 77 61 73 20 6e 6f 74 20 71  us fix was not q
c120: 75 69 74 65 20 72 69 67 68 74 2e 20 20 54 68 69  uite right.  Thi
c130: 73 20 6f 6e 65 20 73 65 65 6d 73 20 74 6f 20 77  s one seems to w
c140: 6f 72 6b 20 62 65 74 74 65 72 2e 0a 20 20 20 20  ork better..    
c150: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c160: 30 30 31 20 46 65 62 20 31 39 20 28 31 2e 30 2e  001 Feb 19 (1.0.
c170: 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 55  21)} {.<li>The U
c180: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20  PDATE statement 
c190: 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20  was not working 
c1a0: 77 68 65 6e 20 74 68 65 20 57 48 45 52 45 20 63  when the WHERE c
c1b0: 6c 61 75 73 65 20 63 6f 6e 74 61 69 6e 65 64 0a  lause contained.
c1c0: 20 20 20 20 73 6f 6d 65 20 74 65 72 6d 73 20 74      some terms t
c1d0: 68 61 74 20 63 6f 75 6c 64 20 62 65 20 73 61 74  hat could be sat
c1e0: 69 73 66 69 65 64 20 75 73 69 6e 67 20 69 6e 64  isfied using ind
c1f0: 69 63 65 73 20 61 6e 64 20 6f 74 68 65 72 20 74  ices and other t
c200: 65 72 6d 73 20 74 68 61 74 0a 20 20 20 20 63 6f  erms that.    co
c210: 75 6c 64 20 6e 6f 74 2e 20 20 46 69 78 65 64 2e  uld not.  Fixed.
c220: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c230: 30 30 31 20 46 65 62 20 31 31 20 28 31 2e 30 2e  001 Feb 11 (1.0.
c240: 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 65 72 67 65  20)} {.<li>Merge
c250: 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63 68 61   development cha
c260: 6e 67 65 73 20 69 6e 74 6f 20 74 68 65 20 6d 61  nges into the ma
c270: 69 6e 20 74 72 75 6e 6b 2e 20 20 46 75 74 75 72  in trunk.  Futur
c280: 65 20 77 6f 72 6b 20 74 6f 77 61 72 64 0a 20 20  e work toward.  
c290: 20 20 75 73 69 6e 67 20 61 20 42 54 72 65 65 20    using a BTree 
c2a0: 66 69 6c 65 20 73 74 72 75 63 74 75 72 65 20 77  file structure w
c2b0: 69 6c 6c 20 75 73 65 20 61 20 73 65 70 61 72 61  ill use a separa
c2c0: 74 65 20 43 56 53 20 73 6f 75 72 63 65 20 74 72  te CVS source tr
c2d0: 65 65 2e 20 20 54 68 69 73 0a 20 20 20 20 43 56  ee.  This.    CV
c2e0: 53 20 74 72 65 65 20 77 69 6c 6c 20 63 6f 6e 74  S tree will cont
c2f0: 69 6e 75 65 20 74 6f 20 73 75 70 70 6f 72 74 20  inue to support 
c300: 74 68 65 20 47 44 42 4d 20 76 65 72 73 69 6f 6e  the GDBM version
c310: 20 6f 66 20 53 51 4c 69 74 65 20 6f 6e 6c 79 2e   of SQLite only.
c320: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c330: 30 30 31 20 46 65 62 20 36 20 28 31 2e 30 2e 31  001 Feb 6 (1.0.1
c340: 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  9)} {.<li>Fix a 
c350: 73 74 72 61 6e 67 65 20 28 62 75 74 20 76 61 6c  strange (but val
c360: 69 64 29 20 43 20 64 65 63 6c 61 72 61 74 69 6f  id) C declaratio
c370: 6e 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69  n that was causi
c380: 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20 20 20  ng problems.    
c390: 66 6f 72 20 51 4e 58 2e 20 20 4e 6f 20 6c 6f 67  for QNX.  No log
c3a0: 69 63 61 6c 20 63 68 61 6e 67 65 73 2e 3c 2f 6c  ical changes.</l
c3b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
c3c0: 20 4a 61 6e 20 34 20 28 31 2e 30 2e 31 38 29 7d   Jan 4 (1.0.18)}
c3d0: 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74 20 74 68 65   {.<li>Print the
c3e0: 20 6f 66 66 65 6e 64 69 6e 67 20 53 51 4c 20 73   offending SQL s
c3f0: 74 61 74 65 6d 65 6e 74 20 77 68 65 6e 20 61 6e  tatement when an
c400: 20 65 72 72 6f 72 20 6f 63 63 75 72 73 2e 3c 2f   error occurs.</
c410: 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 72  li>.<li>Do not r
c420: 65 71 75 69 72 65 20 63 6f 6d 6d 61 73 20 62 65  equire commas be
c430: 74 77 65 65 6e 20 63 6f 6e 73 74 72 61 69 6e 74  tween constraint
c440: 73 20 69 6e 20 43 52 45 41 54 45 20 54 41 42 4c  s in CREATE TABL
c450: 45 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c  E statements.</l
c460: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
c470: 20 22 2d 65 63 68 6f 22 20 6f 70 74 69 6f 6e 20   "-echo" option 
c480: 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c  to the shell.</l
c490: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74  i>.<li>Changes t
c4a0: 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  o comments.</li>
c4b0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44  .}..chng {2000 D
c4c0: 65 63 20 31 30 20 28 31 2e 30 2e 31 37 29 7d 20  ec 10 (1.0.17)} 
c4d0: 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74 65 20 3c 62  {.<li>Rewrote <b
c4e0: 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65  >sqlite_complete
c4f0: 28 29 3c 2f 62 3e 20 74 6f 20 6d 61 6b 65 20 69  ()</b> to make i
c500: 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c  t faster.</li>.<
c510: 6c 69 3e 4d 69 6e 6f 72 20 74 77 65 61 6b 73 20  li>Minor tweaks 
c520: 74 6f 20 6f 74 68 65 72 20 63 6f 64 65 20 74 6f  to other code to
c530: 20 6d 61 6b 65 20 69 74 20 72 75 6e 20 61 20 6c   make it run a l
c540: 69 74 74 6c 65 20 66 61 73 74 65 72 2e 3c 2f 6c  ittle faster.</l
c550: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77  i>.<li>Added new
c560: 20 74 65 73 74 73 20 66 6f 72 20 3c 62 3e 73 71   tests for <b>sq
c570: 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c  lite_complete()<
c580: 2f 62 3e 20 61 6e 64 20 66 6f 72 20 6d 65 6d 6f  /b> and for memo
c590: 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c 69 3e 0a 7d  ry leaks.</li>.}
c5a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44 65 63  ..chng {2000 Dec
c5b0: 20 34 20 28 31 2e 30 2e 31 36 29 7d 20 7b 0a 3c   4 (1.0.16)} {.<
c5c0: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
c5d0: 20 75 70 64 61 74 65 73 2e 20 20 4d 6f 73 74 6c   updates.  Mostl
c5e0: 79 20 66 69 78 69 6e 67 20 6f 66 20 74 79 70 6f  y fixing of typo
c5f0: 73 20 61 6e 64 20 73 70 65 6c 6c 69 6e 67 20 65  s and spelling e
c600: 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rrors.</li>.}..c
c610: 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 32 33  hng {2000 Oct 23
c620: 20 28 31 2e 30 2e 31 35 29 7d 20 7b 0a 3c 6c 69   (1.0.15)} {.<li
c630: 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75  >Documentation u
c640: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
c650: 53 6f 6d 65 20 73 61 6e 69 74 79 20 63 68 65 63  Some sanity chec
c660: 6b 69 6e 67 20 63 6f 64 65 20 77 61 73 20 72 65  king code was re
c670: 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 69  moved from the i
c680: 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66 20 76 64 62  nner loop of vdb
c690: 65 2e 63 0a 20 20 20 20 74 6f 20 68 65 6c 70 20  e.c.    to help 
c6a0: 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f 20 72  the library to r
c6b0: 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74  un a little fast
c6c0: 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20 69 73  er.  The code is
c6d0: 20 6f 6e 6c 79 0a 20 20 20 20 72 65 6d 6f 76 65   only.    remove
c6e0: 64 20 69 66 20 79 6f 75 20 63 6f 6d 70 69 6c 65  d if you compile
c6f0: 20 77 69 74 68 20 2d 44 4e 44 45 42 55 47 2e 3c   with -DNDEBUG.<
c700: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c710: 30 30 20 4f 63 74 20 31 39 20 28 31 2e 30 2e 31  00 Oct 19 (1.0.1
c720: 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  4)} {.<li>Added 
c730: 61 20 22 6d 65 6d 6f 72 79 3a 22 20 62 61 63 6b  a "memory:" back
c740: 65 6e 64 20 64 72 69 76 65 72 20 74 68 61 74 20  end driver that 
c750: 73 74 6f 72 65 73 20 69 74 73 20 64 61 74 61 62  stores its datab
c760: 61 73 65 20 69 6e 20 61 6e 0a 20 20 20 20 69 6e  ase in an.    in
c770: 2d 6d 65 6d 6f 72 79 20 68 61 73 68 20 74 61 62  -memory hash tab
c780: 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  le.</li>.}..chng
c790: 20 7b 32 30 30 30 20 4f 63 74 20 31 38 20 28 31   {2000 Oct 18 (1
c7a0: 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e 42 72  .0.13)} {.<li>Br
c7b0: 65 61 6b 20 6f 75 74 20 74 68 65 20 47 44 42 4d  eak out the GDBM
c7c0: 20 64 72 69 76 65 72 20 69 6e 74 6f 20 61 20 73   driver into a s
c7d0: 65 70 61 72 61 74 65 20 66 69 6c 65 20 69 6e 20  eparate file in 
c7e0: 61 6e 74 69 63 69 70 61 74 69 6f 6e 0a 20 20 20  anticipation.   
c7f0: 20 74 6f 20 61 64 64 65 64 20 6e 65 77 20 64 72   to added new dr
c800: 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ivers.</li>.<li>
c810: 41 6c 6c 6f 77 20 74 68 65 20 6e 61 6d 65 20 6f  Allow the name o
c820: 66 20 61 20 64 61 74 61 62 61 73 65 20 74 6f 20  f a database to 
c830: 62 65 20 70 72 65 66 69 78 65 64 20 62 79 20 74  be prefixed by t
c840: 68 65 20 64 72 69 76 65 72 20 74 79 70 65 2e 0a  he driver type..
c850: 20 20 20 20 46 6f 72 20 6e 6f 77 2c 20 74 68 65      For now, the
c860: 20 6f 6e 6c 79 20 64 72 69 76 65 72 20 74 79 70   only driver typ
c870: 65 20 69 73 20 22 67 64 62 6d 3a 22 2e 3c 2f 6c  e is "gdbm:".</l
c880: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
c890: 20 4f 63 74 20 31 36 20 28 31 2e 30 2e 31 32 29   Oct 16 (1.0.12)
c8a0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65 64 20 61 6e  } {.<li>Fixed an
c8b0: 20 6f 66 66 2d 62 79 2d 6f 6e 65 20 65 72 72 6f   off-by-one erro
c8c0: 72 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69  r that was causi
c8d0: 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 20 69 6e  ng a coredump in
c8e0: 20 0a 20 20 20 20 74 68 65 20 27 25 71 27 20 66   .    the '%q' f
c8f0: 6f 72 6d 61 74 20 64 69 72 65 63 74 69 76 65 20  ormat directive 
c900: 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20 20 3c  of the new.    <
c910: 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69  b>sqlite_..._pri
c920: 6e 74 66 28 29 3c 2f 62 3e 20 72 6f 75 74 69 6e  ntf()</b> routin
c930: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
c940: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
c950: 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f 62 3e  _interrupt()</b>
c960: 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e   interface.</li>
c970: 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 68 65 6c  .<li>In the shel
c980: 6c 2c 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74  l, <b>sqlite_int
c990: 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 73 20  errupt()</b> is 
c9a0: 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68 65  invoked when the
c9b0: 0a 20 20 20 20 75 73 65 72 20 70 72 65 73 73 65  .    user presse
c9c0: 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c 69 3e  s Control-C</li>
c9d0: 0a 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d 65 20  .<li>Fixed some 
c9e0: 69 6e 73 74 61 6e 63 65 73 20 77 68 65 72 65 20  instances where 
c9f0: 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29  <b>sqlite_exec()
ca00: 3c 2f 62 3e 20 77 61 73 0a 20 20 20 20 72 65 74  </b> was.    ret
ca10: 75 72 6e 69 6e 67 20 74 68 65 20 77 72 6f 6e 67  urning the wrong
ca20: 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c 2f 6c 69   error code.</li
ca30: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
ca40: 4f 63 74 20 31 31 20 28 31 2e 30 2e 31 30 29 7d  Oct 11 (1.0.10)}
ca50: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 6f 74   {.<li>Added not
ca60: 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6d  es on how to com
ca70: 70 69 6c 65 20 66 6f 72 20 57 69 6e 64 6f 77 73  pile for Windows
ca80: 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  95/98.</li>.<li>
ca90: 52 65 6d 6f 76 65 64 20 61 20 66 65 77 20 76 61  Removed a few va
caa0: 72 69 61 62 6c 65 73 20 74 68 61 74 20 77 65 72  riables that wer
cab0: 65 20 6e 6f 74 20 62 65 69 6e 67 20 75 73 65 64  e not being used
cac0: 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  .  Etc.</li>.}..
cad0: 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 38  chng {2000 Oct 8
cae0: 20 28 31 2e 30 2e 39 29 7d 20 7b 0a 3c 6c 69 3e   (1.0.9)} {.<li>
caf0: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
cb00: 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29  ite_..._printf()
cb10: 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 20 72  </b> interface r
cb20: 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  outines.</li>.<l
cb30: 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c  i>Modified the <
cb40: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65  b>sqlite</b> she
cb50: 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20 75 73  ll program to us
cb60: 65 20 74 68 65 20 6e 65 77 20 69 6e 74 65 72 66  e the new interf
cb70: 61 63 65 20 0a 20 20 20 20 72 6f 75 74 69 6e 65  ace .    routine
cb80: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  s.</li>.<li>Modi
cb90: 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  fied the <b>sqli
cba0: 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f  te</b> shell pro
cbb0: 67 72 61 6d 20 74 6f 20 70 72 69 6e 74 20 74 68  gram to print th
cbc0: 65 20 73 63 68 65 6d 61 20 66 6f 72 0a 20 20 20  e schema for.   
cbd0: 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 53 51   the built-in SQ
cbe0: 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61 62 6c  LITE_MASTER tabl
cbf0: 65 2c 20 69 66 20 65 78 70 6c 69 63 69 74 6c 79  e, if explicitly
cc00: 20 72 65 71 75 65 73 74 65 64 2e 3c 2f 6c 69 3e   requested.</li>
cc10: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53  .}..chng {2000 S
cc20: 65 70 20 33 30 20 28 31 2e 30 2e 38 29 7d 20 7b  ep 30 (1.0.8)} {
cc30: 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69 74 69  .<li>Begin writi
cc40: 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ng documentation
cc50: 20 6f 6e 20 74 68 65 20 54 43 4c 20 69 6e 74 65   on the TCL inte
cc60: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rface.</li>.}..c
cc70: 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 32 39  hng {2000 Sep 29
cc80: 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64 29 7d   (Not Released)}
cc90: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
cca0: 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74   <b>sqlite_get_t
ccb0: 61 62 6c 65 28 29 3c 2f 62 3e 20 41 50 49 3c 2f  able()</b> API</
ccc0: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 64 20  li>.<li>Updated 
ccd0: 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  the documentatio
cce0: 6e 20 66 6f 72 20 64 75 65 20 74 6f 20 74 68 65  n for due to the
ccf0: 20 61 62 6f 76 65 20 63 68 61 6e 67 65 2e 3c 2f   above change.</
cd00: 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64  li>.<li>Modified
cd10: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f   the <b>sqlite</
cd20: 62 3e 20 73 68 65 6c 6c 20 74 6f 20 6d 61 6b 65  b> shell to make
cd30: 20 75 73 65 20 6f 66 20 74 68 65 20 6e 65 77 0a   use of the new.
cd40: 20 20 20 20 73 71 6c 69 74 65 5f 67 65 74 5f 74      sqlite_get_t
cd50: 61 62 6c 65 28 29 20 41 50 49 20 69 6e 20 6f 72  able() API in or
cd60: 64 65 72 20 74 6f 20 70 72 69 6e 74 20 61 20 6c  der to print a l
cd70: 69 73 74 20 6f 66 20 74 61 62 6c 65 73 0a 20 20  ist of tables.  
cd80: 20 20 69 6e 20 6d 75 6c 74 69 70 6c 65 20 63 6f    in multiple co
cd90: 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c 61 72 20 74  lumns, similar t
cda0: 6f 20 74 68 65 20 77 61 79 20 22 6c 73 22 20 70  o the way "ls" p
cdb0: 72 69 6e 74 73 20 66 69 6c 65 6e 61 6d 65 73 2e  rints filenames.
cdc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
cdd0: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
cde0: 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 70 72  </b> shell to pr
cdf0: 69 6e 74 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20  int a semicolon 
ce00: 61 74 20 74 68 65 0a 20 20 20 20 65 6e 64 20 6f  at the.    end o
ce10: 66 20 65 61 63 68 20 43 52 45 41 54 45 20 73 74  f each CREATE st
ce20: 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6f  atement in the o
ce30: 75 74 70 75 74 20 6f 66 20 74 68 65 20 22 2e 73  utput of the ".s
ce40: 63 68 65 6d 61 22 20 63 6f 6d 6d 61 6e 64 2e 3c  chema" command.<
ce50: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
ce60: 30 30 20 53 65 70 20 32 31 20 28 4e 6f 74 20 52  00 Sep 21 (Not R
ce70: 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e  eleased)} {.<li>
ce80: 43 68 61 6e 67 65 20 74 68 65 20 74 63 6c 73 71  Change the tclsq
ce90: 6c 69 74 65 20 22 65 76 61 6c 22 20 6d 65 74 68  lite "eval" meth
cea0: 6f 64 20 74 6f 20 72 65 74 75 72 6e 20 61 20 6c  od to return a l
ceb0: 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73 20 69  ist of results i
cec0: 66 0a 20 20 20 20 6e 6f 20 63 61 6c 6c 62 61 63  f.    no callbac
ced0: 6b 20 73 63 72 69 70 74 20 69 73 20 73 70 65 63  k script is spec
cee0: 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ified.</li>.<li>
cef0: 43 68 61 6e 67 65 20 74 63 6c 73 71 6c 69 74 65  Change tclsqlite
cf00: 2e 63 20 74 6f 20 75 73 65 20 74 68 65 20 54 63  .c to use the Tc
cf10: 6c 5f 4f 62 6a 20 69 6e 74 65 72 66 61 63 65 3c  l_Obj interface<
cf20: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 63 6c  /li>.<li>Add tcl
cf30: 73 71 6c 69 74 65 2e 63 20 74 6f 20 74 68 65 20  sqlite.c to the 
cf40: 6c 69 62 73 71 6c 69 74 65 2e 61 20 6c 69 62 72  libsqlite.a libr
cf50: 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ary</li>.}..chng
cf60: 20 7b 32 30 30 30 20 53 65 70 20 31 33 20 28 56   {2000 Sep 13 (V
cf70: 65 72 73 69 6f 6e 20 31 2e 30 2e 35 29 7d 20 7b  ersion 1.0.5)} {
cf80: 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74 68 65  .<li>Changed the
cf90: 20 70 72 69 6e 74 20 66 6f 72 6d 61 74 20 66 6f   print format fo
cfa0: 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  r floating point
cfb0: 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 22 25 67   values from "%g
cfc0: 22 20 74 6f 20 22 25 2e 31 35 67 22 2e 0a 20 20  " to "%.15g"..  
cfd0: 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e    </li>.<li>Chan
cfe0: 67 65 64 20 74 68 65 20 63 6f 6d 70 61 72 69 73  ged the comparis
cff0: 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 73 6f 20 74  on function so t
d000: 68 61 74 20 6e 75 6d 62 65 72 73 20 69 6e 20 65  hat numbers in e
d010: 78 70 6f 6e 65 6e 74 69 61 6c 20 6e 6f 74 61 74  xponential notat
d020: 69 6f 6e 0a 20 20 20 20 28 65 78 3a 20 31 2e 32  ion.    (ex: 1.2
d030: 33 34 65 2b 30 35 29 20 73 6f 72 74 20 69 6e 20  34e+05) sort in 
d040: 6e 75 6d 65 72 69 63 61 6c 20 6f 72 64 65 72 2e  numerical order.
d050: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
d060: 30 30 30 20 41 75 67 20 32 38 20 28 56 65 72 73  000 Aug 28 (Vers
d070: 69 6f 6e 20 31 2e 30 2e 34 29 7d 20 7b 0a 3c 6c  ion 1.0.4)} {.<l
d080: 69 3e 41 64 64 65 64 20 66 75 6e 63 74 69 6f 6e  i>Added function
d090: 73 20 3c 62 3e 6c 65 6e 67 74 68 28 29 3c 2f 62  s <b>length()</b
d0a0: 3e 20 61 6e 64 20 3c 62 3e 73 75 62 73 74 72 28  > and <b>substr(
d0b0: 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  )</b>.</li>.<li>
d0c0: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
d0d0: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
d0e0: 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 68 61  hell program tha
d0f0: 74 20 77 61 73 20 63 61 75 73 69 6e 67 0a 20 20  t was causing.  
d100: 20 20 61 20 63 6f 72 65 64 75 6d 70 20 77 68 65    a coredump whe
d110: 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6d 6f 64  n the output mod
d120: 65 20 77 61 73 20 22 63 6f 6c 75 6d 6e 22 20 61  e was "column" a
d130: 6e 64 20 74 68 65 20 66 69 72 73 74 20 72 6f 77  nd the first row
d140: 0a 20 20 20 20 6f 66 20 64 61 74 61 20 63 6f 6e  .    of data con
d150: 74 61 69 6e 65 64 20 61 20 4e 55 4c 4c 2e 3c 2f  tained a NULL.</
d160: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
d170: 30 20 41 75 67 20 32 32 20 28 56 65 72 73 69 6f  0 Aug 22 (Versio
d180: 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.3)} {.<li>
d190: 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73 68  In the sqlite sh
d1a0: 65 6c 6c 2c 20 70 72 69 6e 74 20 74 68 65 20 22  ell, print the "
d1b0: 44 61 74 61 62 61 73 65 20 6f 70 65 6e 65 64 20  Database opened 
d1c0: 52 45 41 44 20 4f 4e 4c 59 22 20 6d 65 73 73 61  READ ONLY" messa
d1d0: 67 65 0a 20 20 20 20 74 6f 20 73 74 64 65 72 72  ge.    to stderr
d1e0: 20 69 6e 73 74 65 61 64 20 6f 66 20 73 74 64 6f   instead of stdo
d1f0: 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20  ut.</li>.<li>In 
d200: 74 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c  the sqlite shell
d210: 2c 20 6e 6f 77 20 70 72 69 6e 74 20 74 68 65 20  , now print the 
d220: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f  version number o
d230: 6e 20 69 6e 69 74 69 61 6c 20 73 74 61 72 74 75  n initial startu
d240: 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  p.</li>.<li>Add 
d250: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 76 65  the <b>sqlite_ve
d260: 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20 73 74 72 69  rsion[]</b> stri
d270: 6e 67 20 63 6f 6e 73 74 61 6e 74 20 74 6f 20 74  ng constant to t
d280: 68 65 20 6c 69 62 72 61 72 79 3c 2f 6c 69 3e 0a  he library</li>.
d290: 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64  <li>Makefile upd
d2a0: 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ates</li>.<li>Bu
d2b0: 67 20 66 69 78 3a 20 69 6e 63 6f 72 72 65 63 74  g fix: incorrect
d2c0: 20 56 44 42 45 20 63 6f 64 65 20 77 61 73 20 62   VDBE code was b
d2d0: 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64 20 66  eing generated f
d2e0: 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  or the following
d2f0: 0a 20 20 20 20 63 69 72 63 75 6d 73 74 61 6e 63  .    circumstanc
d300: 65 3a 20 61 20 71 75 65 72 79 20 6f 6e 20 61 6e  e: a query on an
d310: 20 69 6e 64 65 78 65 64 20 74 61 62 6c 65 20 63   indexed table c
d320: 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 48 45 52  ontaining a WHER
d330: 45 20 63 6c 61 75 73 65 20 77 69 74 68 0a 20 20  E clause with.  
d340: 20 20 61 6e 20 49 4e 20 6f 70 65 72 61 74 6f 72    an IN operator
d350: 20 74 68 61 74 20 68 61 64 20 61 20 73 75 62 71   that had a subq
d360: 75 65 72 79 20 6f 6e 20 69 74 73 20 72 69 67 68  uery on its righ
d370: 74 2d 68 61 6e 64 20 73 69 64 65 2e 3c 2f 6c 69  t-hand side.</li
d380: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
d390: 41 75 67 20 31 38 20 28 56 65 72 73 69 6f 6e 20  Aug 18 (Version 
d3a0: 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69  1.0.1)} {.<li>Fi
d3b0: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 63  x a bug in the c
d3c0: 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70 74 2e  onfigure script.
d3d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20  </li>.<li>Minor 
d3e0: 72 65 76 69 73 69 6f 6e 73 20 74 6f 20 74 68 65  revisions to the
d3f0: 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d   website.</li>.}
d400: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
d410: 20 31 37 20 28 56 65 72 73 69 6f 6e 20 31 2e 30   17 (Version 1.0
d420: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
d430: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
d440: 3e 20 70 72 6f 67 72 61 6d 20 73 6f 20 74 68 61  > program so tha
d450: 74 20 69 74 20 63 61 6e 20 72 65 61 64 0a 20 20  t it can read.  
d460: 20 20 64 61 74 61 62 61 73 65 73 20 66 6f 72 20    databases for 
d470: 77 68 69 63 68 20 69 74 20 6c 61 63 6b 73 20 77  which it lacks w
d480: 72 69 74 65 20 70 65 72 6d 69 73 73 69 6f 6e 2e  rite permission.
d490: 20 20 28 49 74 20 75 73 65 64 20 74 6f 0a 20 20    (It used to.  
d4a0: 20 20 72 65 66 75 73 65 20 61 6c 6c 20 61 63 63    refuse all acc
d4b0: 65 73 73 20 69 66 20 69 74 20 63 6f 75 6c 64 20  ess if it could 
d4c0: 6e 6f 74 20 77 72 69 74 65 2e 29 3c 2f 6c 69 3e  not write.)</li>
d4d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
d4e0: 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e 54 72 65 61  ug 9} {.<li>Trea
d4f0: 74 20 63 61 72 72 69 61 67 65 20 72 65 74 75 72  t carriage retur
d500: 6e 73 20 61 73 20 77 68 69 74 65 20 73 70 61 63  ns as white spac
d510: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
d520: 7b 32 30 30 30 20 41 75 67 20 38 7d 20 7b 0a 3c  {2000 Aug 8} {.<
d530: 6c 69 3e 41 64 64 65 64 20 70 61 74 74 65 72 6e  li>Added pattern
d540: 20 6d 61 74 63 68 69 6e 67 20 74 6f 20 74 68 65   matching to the
d550: 20 22 2e 74 61 62 6c 65 22 20 63 6f 6d 6d 61 6e   ".table" comman
d560: 64 20 69 6e 20 74 68 65 20 22 73 71 6c 69 74 65  d in the "sqlite
d570: 22 0a 63 6f 6d 6d 61 6e 64 20 73 68 65 6c 6c 2e  ".command shell.
d580: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
d590: 30 30 30 20 41 75 67 20 34 7d 20 7b 0a 3c 6c 69  000 Aug 4} {.<li
d5a0: 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75  >Documentation u
d5b0: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
d5c0: 41 64 64 65 64 20 22 62 75 73 79 22 20 61 6e 64  Added "busy" and
d5d0: 20 22 74 69 6d 65 6f 75 74 22 20 6d 65 74 68 6f   "timeout" metho
d5e0: 64 73 20 74 6f 20 74 68 65 20 54 63 6c 20 69 6e  ds to the Tcl in
d5f0: 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 7d 0a 0a  terface</li>.}..
d600: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 33  chng {2000 Aug 3
d610: 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f 72  } {.<li>File for
d620: 6d 61 74 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62  mat version numb
d630: 65 72 20 77 61 73 20 62 65 69 6e 67 20 73 74 6f  er was being sto
d640: 72 65 64 20 69 6e 20 73 71 6c 69 74 65 5f 6d 61  red in sqlite_ma
d650: 73 74 65 72 2e 74 63 6c 0a 20 20 20 20 6d 75 6c  ster.tcl.    mul
d660: 74 69 70 6c 65 20 74 69 6d 65 73 2e 20 54 68 69  tiple times. Thi
d670: 73 20 77 61 73 20 68 61 72 6d 6c 65 73 73 2c 20  s was harmless, 
d680: 62 75 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e  but unnecessary.
d690: 20 49 74 20 69 73 20 6e 6f 77 20 66 69 78 65 64   It is now fixed
d6a0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
d6b0: 32 30 30 30 20 41 75 67 20 32 7d 20 7b 0a 3c 6c  2000 Aug 2} {.<l
d6c0: 69 3e 54 68 65 20 66 69 6c 65 20 66 6f 72 6d 61  i>The file forma
d6d0: 74 20 66 6f 72 20 69 6e 64 69 63 65 73 20 77 61  t for indices wa
d6e0: 73 20 63 68 61 6e 67 65 64 20 73 6c 69 67 68 74  s changed slight
d6f0: 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 77  ly in order to w
d700: 6f 72 6b 0a 20 20 20 20 61 72 6f 75 6e 64 20 61  ork.    around a
d710: 6e 20 69 6e 65 66 66 69 63 69 65 6e 63 79 20 74  n inefficiency t
d720: 68 61 74 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65  hat can sometime
d730: 73 20 63 6f 6d 65 20 75 70 20 77 69 74 68 20 47  s come up with G
d740: 44 42 4d 20 77 68 65 6e 0a 20 20 20 20 74 68 65  DBM when.    the
d750: 72 65 20 61 72 65 20 6c 61 72 67 65 20 69 6e 64  re are large ind
d760: 69 63 65 73 20 68 61 76 69 6e 67 20 6d 61 6e 79  ices having many
d770: 20 65 6e 74 72 69 65 73 20 77 69 74 68 20 74 68   entries with th
d780: 65 20 73 61 6d 65 20 6b 65 79 2e 0a 20 20 20 20  e same key..    
d790: 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64  <font color="red
d7a0: 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61 74 69 62 6c  ">** Incompatibl
d7b0: 65 20 43 68 61 6e 67 65 20 2a 2a 3c 2f 66 6f 6e  e Change **</fon
d7c0: 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  t></li>.}..chng 
d7d0: 7b 32 30 30 30 20 41 75 67 20 31 7d 20 7b 0a 3c  {2000 Aug 1} {.<
d7e0: 6c 69 3e 54 68 65 20 70 61 72 73 65 72 27 73 20  li>The parser's 
d7f0: 73 74 61 63 6b 20 77 61 73 20 6f 76 65 72 66 6c  stack was overfl
d800: 6f 77 69 6e 67 20 6f 6e 20 61 20 76 65 72 79 20  owing on a very 
d810: 6c 6f 6e 67 20 55 50 44 41 54 45 20 73 74 61 74  long UPDATE stat
d820: 65 6d 65 6e 74 2e 0a 20 20 20 20 54 68 69 73 20  ement..    This 
d830: 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c  is now fixed.</l
d840: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
d850: 20 4a 75 6c 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e   July 31} {.<li>
d860: 46 69 6e 69 73 68 20 74 68 65 20 3c 61 20 68 72  Finish the <a hr
d870: 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e 56  ef="vdbe.html">V
d880: 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61 3e  DBE tutorial</a>
d890: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
d8a0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f   documentation o
d8b0: 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 74 6f 20 57  n compiling to W
d8c0: 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c  indowsNT.</li>.<
d8d0: 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67 75  li>Fix a configu
d8e0: 72 61 74 69 6f 6e 20 70 72 6f 67 72 61 6d 20 66  ration program f
d8f0: 6f 72 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c  or WindowsNT.</l
d900: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e  i>.<li>Fix a con
d910: 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 62 6c  figuration probl
d920: 65 6d 20 66 6f 72 20 48 50 55 58 2e 3c 2f 6c 69  em for HPUX.</li
d930: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
d940: 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 42  July 29} {.<li>B
d950: 65 74 74 65 72 20 6c 61 62 65 6c 73 20 6f 6e 20  etter labels on 
d960: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6f 66 20  column names of 
d970: 74 68 65 20 72 65 73 75 6c 74 2e 3c 2f 6c 69 3e  the result.</li>
d980: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
d990: 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c 69 3e 41 64  uly 28} {.<li>Ad
d9a0: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
d9b0: 65 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72 28 29  e_busy_handler()
d9c0: 3c 2f 62 3e 20 0a 20 20 20 20 61 6e 64 20 3c 62  </b> .    and <b
d9d0: 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d  >sqlite_busy_tim
d9e0: 65 6f 75 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72  eout()</b> inter
d9f0: 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  face.</li>.}..ch
da00: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 32 33  ng {2000 June 23
da10: 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72  } {.<li>Begin wr
da20: 69 74 69 6e 67 20 74 68 65 20 3c 61 20 68 72 65  iting the <a hre
da30: 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e 56 44  f="vdbe.html">VD
da40: 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e  BE tutorial</a>.
da50: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
da60: 30 30 30 20 4a 75 6e 65 20 32 31 7d 20 7b 0a 3c  000 June 21} {.<
da70: 6c 69 3e 43 6c 65 61 6e 20 75 70 20 63 6f 6d 6d  li>Clean up comm
da80: 65 6e 74 73 20 61 6e 64 20 76 61 72 69 61 62 6c  ents and variabl
da90: 65 20 6e 61 6d 65 73 2e 20 20 43 68 61 6e 67 65  e names.  Change
daa0: 73 20 74 6f 20 64 6f 63 75 6d 65 6e 74 61 74 69  s to documentati
dab0: 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66 75 6e 63 74  on..    No funct
dac0: 69 6f 6e 61 6c 20 63 68 61 6e 67 65 73 20 74 6f  ional changes to
dad0: 20 74 68 65 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a   the code.</li>.
dae0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
daf0: 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c  ne 19} {.<li>Col
db00: 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 55 50 44  umn names in UPD
db10: 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73 20 77  ATE statements w
db20: 65 72 65 20 63 61 73 65 20 73 65 6e 73 69 74 69  ere case sensiti
db30: 76 65 2e 0a 20 20 20 20 54 68 69 73 20 6d 69 73  ve..    This mis
db40: 74 61 6b 65 20 68 61 73 20 6e 6f 77 20 62 65 65  take has now bee
db50: 6e 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  n fixed.</li>.}.
db60: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
db70: 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64   16} {.<li>Added
db80: 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61 74 65   the concatenate
db90: 20 73 74 72 69 6e 67 20 6f 70 65 72 61 74 6f 72   string operator
dba0: 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68   (||)</li>.}..ch
dbb0: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 32  ng {2000 June 12
dbc0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
dbd0: 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f  e fcnt() functio
dbe0: 6e 20 74 6f 20 74 68 65 20 53 51 4c 20 69 6e 74  n to the SQL int
dbf0: 65 72 70 72 65 74 65 72 2e 20 20 54 68 65 20 66  erpreter.  The f
dc00: 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e 0a 20  cnt() function. 
dc10: 20 20 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e     returns the n
dc20: 75 6d 62 65 72 20 6f 66 20 64 61 74 61 62 61 73  umber of databas
dc30: 65 20 22 46 65 74 63 68 22 20 6f 70 65 72 61 74  e "Fetch" operat
dc40: 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65 20 6f  ions that have o
dc50: 63 63 75 72 72 65 64 2e 0a 20 20 20 20 54 68 69  ccurred..    Thi
dc60: 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 64 65  s function is de
dc70: 73 69 67 6e 65 64 20 66 6f 72 20 75 73 65 20 69  signed for use i
dc80: 6e 20 74 65 73 74 20 73 63 72 69 70 74 73 20 74  n test scripts t
dc90: 6f 20 76 65 72 69 66 79 20 74 68 61 74 0a 20 20  o verify that.  
dca0: 20 20 71 75 65 72 69 65 73 20 61 72 65 20 65 66    queries are ef
dcb0: 66 69 63 69 65 6e 74 20 61 6e 64 20 61 70 70 72  ficient and appr
dcc0: 6f 70 72 69 61 74 65 6c 79 20 6f 70 74 69 6d 69  opriately optimi
dcd0: 7a 65 64 2e 20 20 46 63 6e 74 28 29 20 68 61 73  zed.  Fcnt() has
dce0: 20 6e 6f 20 6f 74 68 65 72 0a 20 20 20 20 75 73   no other.    us
dcf0: 65 66 75 6c 20 70 75 72 70 6f 73 65 2c 20 61 73  eful purpose, as
dd00: 20 66 61 72 20 61 73 20 49 20 6b 6e 6f 77 2e 3c   far as I know.<
dd10: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
dd20: 20 62 75 6e 63 68 20 6d 6f 72 65 20 74 65 73 74   bunch more test
dd30: 73 20 74 68 61 74 20 74 61 6b 65 20 61 64 76 61  s that take adva
dd40: 6e 74 61 67 65 20 6f 66 20 74 68 65 20 6e 65 77  ntage of the new
dd50: 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e   fcnt() function
dd60: 2e 0a 20 20 20 20 54 68 65 20 6e 65 77 20 74 65  ..    The new te
dd70: 73 74 73 20 64 69 64 20 6e 6f 74 20 75 6e 63 6f  sts did not unco
dd80: 76 65 72 20 61 6e 79 20 6e 65 77 20 70 72 6f 62  ver any new prob
dd90: 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  lems.</li>.}..ch
dda0: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 38 7d  ng {2000 June 8}
ddb0: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 74   {.<li>Added lot
ddc0: 73 20 6f 66 20 6e 65 77 20 74 65 73 74 20 63 61  s of new test ca
ddd0: 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ses</li>.<li>Fix
dde0: 20 61 20 66 65 77 20 62 75 67 73 20 64 69 73 63   a few bugs disc
ddf0: 6f 76 65 72 65 64 20 77 68 69 6c 65 20 61 64 64  overed while add
de00: 69 6e 67 20 74 65 73 74 20 63 61 73 65 73 3c 2f  ing test cases</
de10: 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69 6e 20 61 64  li>.<li>Begin ad
de20: 64 69 6e 67 20 6c 6f 74 73 20 6f 66 20 6e 65 77  ding lots of new
de30: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f   documentation</
de40: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
de50: 30 20 4a 75 6e 65 20 36 7d 20 7b 0a 3c 6c 69 3e  0 June 6} {.<li>
de60: 41 64 64 65 64 20 63 6f 6d 70 6f 75 6e 64 20 73  Added compound s
de70: 65 6c 65 63 74 20 6f 70 65 72 61 74 6f 72 73 3a  elect operators:
de80: 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c 20 3c   <B>UNION</b>, <
de90: 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 42 3e 2c  b>UNION ALL</B>,
dea0: 0a 3c 62 3e 49 4e 54 45 52 53 45 43 54 3c 2f 62  .<b>INTERSECT</b
deb0: 3e 2c 20 61 6e 64 20 3c 62 3e 45 58 43 45 50 54  >, and <b>EXCEPT
dec0: 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  </b></li>.<li>Ad
ded0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
dee0: 75 73 69 6e 67 20 3c 62 3e 28 53 45 4c 45 43 54  using <b>(SELECT
def0: 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69 74 68 69 6e   ...)</b> within
df00: 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f 6c 69   expressions</li
df10: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
df20: 6f 72 74 20 66 6f 72 20 3c 62 3e 49 4e 3c 2f 62  ort for <b>IN</b
df30: 3e 20 61 6e 64 20 3c 62 3e 42 45 54 57 45 45 4e  > and <b>BETWEEN
df40: 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 73 3c 2f  </b> operators</
df50: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
df60: 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 47 52 4f  pport for <b>GRO
df70: 55 50 20 42 59 3c 2f 62 3e 20 61 6e 64 20 3c 62  UP BY</b> and <b
df80: 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c 2f 6c 69 3e  >HAVING</b></li>
df90: 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61 6c 75 65 73  .<li>NULL values
dfa0: 20 61 72 65 20 6e 6f 77 20 72 65 70 6f 72 74 65   are now reporte
dfb0: 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63  d to the callbac
dfc0: 6b 20 61 73 20 61 20 4e 55 4c 4c 20 70 6f 69 6e  k as a NULL poin
dfd0: 74 65 72 0a 20 20 20 20 72 61 74 68 65 72 20 74  ter.    rather t
dfe0: 68 61 6e 20 61 6e 20 65 6d 70 74 79 20 73 74 72  han an empty str
dff0: 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ing.</li>.}..chn
e000: 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 33 7d 20  g {2000 June 3} 
e010: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  {.<li>Added supp
e020: 6f 72 74 20 66 6f 72 20 64 65 66 61 75 6c 74 20  ort for default 
e030: 76 61 6c 75 65 73 20 6f 6e 20 63 6f 6c 75 6d 6e  values on column
e040: 73 20 6f 66 20 61 20 74 61 62 6c 65 2e 3c 2f 6c  s of a table.</l
e050: 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20  i>.<li>Improved 
e060: 74 65 73 74 20 63 6f 76 65 72 61 67 65 2e 20 20  test coverage.  
e070: 46 69 78 65 64 20 61 20 66 65 77 20 6f 62 73 63  Fixed a few obsc
e080: 75 72 65 20 62 75 67 73 20 66 6f 75 6e 64 20 62  ure bugs found b
e090: 79 20 74 68 65 0a 69 6d 70 72 6f 76 65 64 20 74  y the.improved t
e0a0: 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ests.</li>.}..ch
e0b0: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 32 7d  ng {2000 June 2}
e0c0: 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64 61 74 61 62   {.<li>All datab
e0d0: 61 73 65 20 66 69 6c 65 73 20 74 6f 20 62 65 20  ase files to be 
e0e0: 6d 6f 64 69 66 69 65 64 20 62 79 20 61 6e 20 55  modified by an U
e0f0: 50 44 41 54 45 2c 20 49 4e 53 45 52 54 20 6f 72  PDATE, INSERT or
e100: 20 44 45 4c 45 54 45 20 61 72 65 20 0a 6e 6f 77   DELETE are .now
e110: 20 6c 6f 63 6b 65 64 20 62 65 66 6f 72 65 20 61   locked before a
e120: 6e 79 20 63 68 61 6e 67 65 73 20 61 72 65 20 6d  ny changes are m
e130: 61 64 65 20 74 6f 20 61 6e 79 20 66 69 6c 65 73  ade to any files
e140: 2e 20 20 0a 54 68 69 73 20 6d 61 6b 65 73 20 69  .  .This makes i
e150: 74 20 73 61 66 65 20 28 49 20 74 68 69 6e 6b 29  t safe (I think)
e160: 20 74 6f 20 61 63 63 65 73 73 0a 74 68 65 20 73   to access.the s
e170: 61 6d 65 20 64 61 74 61 62 61 73 65 20 73 69 6d  ame database sim
e180: 75 6c 74 61 6e 65 6f 75 73 6c 79 20 66 72 6f 6d  ultaneously from
e190: 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 63 65 73   multiple proces
e1a0: 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ses.</li>.<li>Th
e1b0: 65 20 63 6f 64 65 20 61 70 70 65 61 72 73 20 73  e code appears s
e1c0: 74 61 62 6c 65 20 73 6f 20 77 65 20 61 72 65 20  table so we are 
e1d0: 6e 6f 77 20 63 61 6c 6c 69 6e 67 20 69 74 20 22  now calling it "
e1e0: 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  beta".</li>.}..c
e1f0: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31  hng {2000 June 1
e200: 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 73  } {.<li>Better s
e210: 75 70 70 6f 72 74 20 66 6f 72 20 66 69 6c 65 20  upport for file 
e220: 6c 6f 63 6b 69 6e 67 20 73 6f 20 74 68 61 74 20  locking so that 
e230: 74 77 6f 20 6f 72 20 6d 6f 72 65 20 70 72 6f 63  two or more proc
e240: 65 73 73 65 73 20 0a 28 6f 72 20 74 68 72 65 61  esses .(or threa
e250: 64 73 29 0a 63 61 6e 20 61 63 63 65 73 73 20 74  ds).can access t
e260: 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73 65  he same database
e270: 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 2e   simultaneously.
e280: 20 20 4d 6f 72 65 20 77 6f 72 6b 20 6e 65 65 64    More work need
e290: 65 64 20 69 6e 0a 74 68 69 73 20 61 72 65 61 2c  ed in.this area,
e2a0: 20 74 68 6f 75 67 68 2e 3c 2f 6c 69 3e 0a 7d 0a   though.</li>.}.
e2b0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20  .chng {2000 May 
e2c0: 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  31} {.<li>Added 
e2d0: 73 75 70 70 6f 72 74 20 66 6f 72 20 61 67 67 72  support for aggr
e2e0: 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e 73 20  egate functions 
e2f0: 28 45 78 3a 20 3c 62 3e 43 4f 55 4e 54 28 2a 29  (Ex: <b>COUNT(*)
e300: 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e 28 2e 2e 2e  </b>, <b>MIN(...
e310: 29 3c 2f 62 3e 29 0a 74 6f 20 74 68 65 20 53 45  )</b>).to the SE
e320: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
e330: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
e340: 75 70 70 6f 72 74 20 66 6f 72 20 3c 42 3e 53 45  upport for <B>SE
e350: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2e 2e  LECT DISTINCT ..
e360: 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  .</B></li>.}..ch
e370: 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33 30 7d  ng {2000 May 30}
e380: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
e390: 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e 20 6f 70 65   <b>LIKE</b> ope
e3a0: 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rator.</li>.<li>
e3b0: 41 64 64 65 64 20 61 20 3c 62 3e 47 4c 4f 42 3c  Added a <b>GLOB<
e3c0: 2f 62 3e 20 6f 70 65 72 61 74 6f 72 3a 20 73 69  /b> operator: si
e3d0: 6d 69 6c 61 72 20 74 6f 20 3c 42 3e 4c 49 4b 45  milar to <B>LIKE
e3e0: 3c 2f 42 3e 20 0a 62 75 74 20 69 74 20 75 73 65  </B> .but it use
e3f0: 73 20 55 6e 69 78 20 73 68 65 6c 6c 20 67 6c 6f  s Unix shell glo
e400: 62 62 69 6e 67 20 77 69 6c 64 63 61 72 64 73 20  bbing wildcards 
e410: 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 27  instead of the '
e420: 25 27 20 0a 61 6e 64 20 27 5f 27 20 77 69 6c 64  %' .and '_' wild
e430: 63 61 72 64 73 20 6f 66 20 53 51 4c 2e 3c 2f 6c  cards of SQL.</l
e440: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
e450: 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e 20 63 6f 6d   <B>COPY</b> com
e460: 6d 61 6e 64 20 70 61 74 74 65 72 6e 65 64 20 61  mand patterned a
e470: 66 74 65 72 20 0a 3c 61 20 68 72 65 66 3d 22 68  fter .<a href="h
e480: 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74 67 72  ttp://www.postgr
e490: 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f 73 74 67  esql.org/">Postg
e4a0: 72 65 53 51 4c 3c 2f 61 3e 20 73 6f 20 74 68 61  reSQL</a> so tha
e4b0: 74 20 53 51 4c 69 74 65 0a 63 61 6e 20 6e 6f 77  t SQLite.can now
e4c0: 20 72 65 61 64 20 74 68 65 20 6f 75 74 70 75 74   read the output
e4d0: 20 6f 66 20 74 68 65 20 3c 62 3e 70 67 5f 64 75   of the <b>pg_du
e4e0: 6d 70 3c 2f 62 3e 20 64 61 74 61 62 61 73 65 20  mp</b> database 
e4f0: 64 75 6d 70 20 75 74 69 6c 69 74 79 0a 6f 66 20  dump utility.of 
e500: 50 6f 73 74 67 72 65 53 51 4c 2e 3c 2f 6c 69 3e  PostgreSQL.</li>
e510: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c 42 3e  .<li>Added a <B>
e520: 56 41 43 55 55 4d 3c 2f 42 3e 20 63 6f 6d 6d 61  VACUUM</B> comma
e530: 6e 64 20 74 68 61 74 20 74 68 61 74 20 63 61 6c  nd that that cal
e540: 6c 73 20 74 68 65 20 0a 3c 62 3e 67 64 62 6d 5f  ls the .<b>gdbm_
e550: 72 65 6f 72 67 61 6e 69 7a 65 28 29 3c 2f 62 3e  reorganize()</b>
e560: 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74 68 65   function on the
e570: 20 75 6e 64 65 72 6c 79 69 6e 67 20 64 61 74 61   underlying data
e580: 62 61 73 65 0a 66 69 6c 65 73 2e 3c 2f 6c 69 3e  base.files.</li>
e590: 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e 79 2c 20 6d  .<li>And many, m
e5a0: 61 6e 79 20 62 75 67 20 66 69 78 65 73 2e 2e 2e  any bug fixes...
e5b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
e5c0: 30 30 30 20 4d 61 79 20 32 39 7d 20 7b 0a 3c 6c  000 May 29} {.<l
e5d0: 69 3e 49 6e 69 74 69 61 6c 20 50 75 62 6c 69 63  i>Initial Public
e5e0: 20 52 65 6c 65 61 73 65 20 6f 66 20 41 6c 70 68   Release of Alph
e5f0: 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a 0a 70  a code</li>.}..p
e600: 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a 7d 0a 66 6f  uts {.</DL>.}.fo
e610: 6f 74 65 72 20 7b 24 49 64 3a 7d 0a              oter {$Id:}.