/ Hex Artifact Content
Login

Artifact 679465d9e1d2f371bb93d99c3da76ac33751ba1e:


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 72 65 67 73 75 62  ></DT>".  regsub
0220: 20 2d 61 6c 6c 20 7b 5b 54 74 5d 69 63 6b 65 74   -all {[Tt]icket
0230: 20 23 28 5c 64 2b 29 7d 20 24 64 65 73 63 20 5c   #(\d+)} $desc \
0240: 0a 20 20 20 20 20 20 7b 3c 61 20 68 72 65 66 3d  .      {<a href=
0250: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69  "http://www.sqli
0260: 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f 74  te.org/cvstrac/t
0270: 6b 74 76 69 65 77 3f 74 6e 3d 5c 31 22 3e 5c 30  ktview?tn=\1">\0
0280: 3c 2f 61 3e 7d 20 64 65 73 63 0a 20 20 70 75 74  </a>} desc.  put
0290: 73 20 22 3c 44 44 3e 3c 50 3e 3c 55 4c 3e 24 64  s "<DD><P><UL>$d
02a0: 65 73 63 3c 2f 55 4c 3e 3c 2f 50 3e 22 0a 20 20  esc</UL></P>".  
02b0: 70 75 74 73 20 22 3c 2f 44 44 3e 22 0a 7d 0a 0a  puts "</DD>".}..
02c0: 0a 63 68 6e 67 20 7b 32 30 30 37 20 53 65 70 20  .chng {2007 Sep 
02d0: 30 34 20 28 33 2e 35 2e 30 29 20 61 6c 70 68 61  04 (3.5.0) alpha
02e0: 7d 20 7b 0a 3c 6c 69 3e 52 65 64 65 73 69 67 6e  } {.<li>Redesign
02f0: 20 74 68 65 20 4f 53 20 69 6e 74 65 72 66 61 63   the OS interfac
0300: 65 20 6c 61 79 65 72 2e 20 20 53 65 65 0a 20 20  e layer.  See.  
0310: 20 20 3c 61 20 68 72 65 66 3d 22 33 34 74 6f 33    <a href="34to3
0320: 35 2e 68 74 6d 6c 22 3e 33 34 74 6f 33 35 2e 68  5.html">34to35.h
0330: 74 6d 6c 3c 2f 61 3e 20 66 6f 72 20 64 65 74 61  tml</a> for deta
0340: 69 6c 73 2e 0a 20 20 20 20 3c 66 6f 6e 74 20 63  ils..    <font c
0350: 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 2a 20 50  olor="red">*** P
0360: 6f 74 65 6e 74 69 61 6c 6c 79 20 69 6e 63 6f 6d  otentially incom
0370: 70 61 74 69 62 6c 65 20 63 68 61 6e 67 65 20 2a  patible change *
0380: 2a 2a 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 54 68  **</font>.<li>Th
0390: 65 20 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33  e <a href="capi3
03a0: 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33  ref.html#sqlite3
03b0: 5f 72 65 6c 65 61 73 65 5f 6d 65 6d 6f 72 79 22  _release_memory"
03c0: 3e 0a 20 20 20 20 73 71 6c 69 74 65 33 5f 72 65  >.    sqlite3_re
03d0: 6c 65 61 73 65 5f 6d 65 6d 6f 72 79 28 29 3c 2f  lease_memory()</
03e0: 61 3e 2c 0a 20 20 20 20 3c 61 20 68 72 65 66 3d  a>,.    <a href=
03f0: 22 63 61 70 69 33 72 65 66 2e 68 74 6d 6c 23 73  "capi3ref.html#s
0400: 71 6c 69 74 65 33 5f 73 6f 66 74 5f 68 65 61 70  qlite3_soft_heap
0410: 5f 6c 69 6d 69 74 22 3e 0a 20 20 20 20 73 71 6c  _limit">.    sql
0420: 69 74 65 33 5f 73 6f 66 74 5f 68 65 61 70 5f 6c  ite3_soft_heap_l
0430: 69 6d 69 74 28 29 3c 2f 61 3e 2c 0a 20 20 20 20  imit()</a>,.    
0440: 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 63 61 70  and <a href="cap
0450: 69 33 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74  i3ref.html#sqlit
0460: 65 33 5f 65 6e 61 62 6c 65 5f 73 68 61 72 65 64  e3_enable_shared
0470: 5f 63 61 63 68 65 22 3e 0a 20 20 20 20 73 71 6c  _cache">.    sql
0480: 69 74 65 33 5f 65 6e 61 62 6c 65 5f 73 68 61 72  ite3_enable_shar
0490: 65 64 5f 63 61 63 68 65 28 29 3c 2f 61 3e 20 69  ed_cache()</a> i
04a0: 6e 74 65 72 66 61 63 65 73 20 6e 6f 77 20 77 6f  nterfaces now wo
04b0: 72 6b 20 63 72 6f 73 73 20 61 6c 6c 0a 20 20 20  rk cross all.   
04c0: 20 74 68 72 65 61 64 73 20 69 6e 20 74 68 65 20   threads in the 
04d0: 70 72 6f 63 65 73 73 2c 20 6e 6f 74 20 6a 75 73  process, not jus
04e0: 74 20 74 68 65 20 73 69 6e 67 6c 65 20 74 68 72  t the single thr
04f0: 65 61 64 20 69 6e 20 77 68 69 63 68 20 74 68 65  ead in which the
0500: 79 0a 20 20 20 20 61 72 65 20 69 6e 76 6f 6b 65  y.    are invoke
0510: 64 2e 0a 20 20 20 20 3c 66 6f 6e 74 20 63 6f 6c  d..    <font col
0520: 6f 72 3d 22 72 65 64 22 3e 2a 2a 2a 20 50 6f 74  or="red">*** Pot
0530: 65 6e 74 69 61 6c 6c 79 20 69 6e 63 6f 6d 70 61  entially incompa
0540: 74 69 62 6c 65 20 63 68 61 6e 67 65 20 2a 2a 2a  tible change ***
0550: 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 41 64 64 65  </font>.<li>Adde
0560: 64 20 74 68 65 20 0a 20 20 20 20 3c 61 20 68 72  d the .    <a hr
0570: 65 66 3d 22 63 61 70 69 33 72 65 66 2e 68 74 6d  ef="capi3ref.htm
0580: 6c 23 73 71 6c 69 74 65 33 5f 6f 70 65 6e 5f 76  l#sqlite3_open_v
0590: 32 22 3e 73 71 6c 69 74 65 33 5f 6f 70 65 6e 5f  2">sqlite3_open_
05a0: 76 32 28 29 3c 2f 61 3e 0a 20 20 20 20 69 6e 74  v2()</a>.    int
05b0: 65 72 66 61 63 65 2e 20 20 0a 3c 6c 69 3e 52 65  erface.  .<li>Re
05c0: 69 6d 70 6c 65 6d 65 6e 74 65 64 20 74 68 65 20  implemented the 
05d0: 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f  memory allocatio
05e0: 6e 20 73 75 62 73 79 73 74 65 6d 20 61 6e 64 20  n subsystem and 
05f0: 6d 61 64 65 20 69 74 20 0a 20 20 20 20 72 65 70  made it .    rep
0600: 6c 61 63 61 62 6c 65 20 61 74 20 63 6f 6d 70 69  lacable at compi
0610: 6c 65 2d 74 69 6d 65 2e 0a 3c 6c 69 3e 43 72 65  le-time..<li>Cre
0620: 61 74 65 64 20 61 20 6e 65 77 20 6d 75 74 65 78  ated a new mutex
0630: 20 73 75 62 73 79 73 74 65 6d 20 61 6e 64 20 6d   subsystem and m
0640: 61 64 65 20 69 74 20 72 65 70 6c 61 63 61 62 6c  ade it replacabl
0650: 65 20 61 74 0a 20 20 20 20 63 6f 6d 70 69 6c 65  e at.    compile
0660: 2d 74 69 6d 65 2e 0a 3c 6c 69 3e 54 68 65 20 73  -time..<li>The s
0670: 61 6d 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e  ame database con
0680: 6e 65 63 74 69 6f 6e 20 6d 61 79 20 6e 6f 77 20  nection may now 
0690: 62 65 20 75 73 65 64 20 73 69 6d 75 6c 74 61 6e  be used simultan
06a0: 65 6f 75 73 6c 79 20 62 79 0a 20 20 20 20 73 65  eously by.    se
06b0: 70 61 72 61 74 65 20 74 68 72 65 61 64 73 2e 0a  parate threads..
06c0: 7d 0a 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20 41  }...chng {2007 A
06d0: 75 67 75 73 74 20 31 33 20 28 33 2e 34 2e 32 29  ugust 13 (3.4.2)
06e0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 64 61  } {.<li>Fix a da
06f0: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
0700: 6e 20 62 75 67 20 74 68 61 74 20 6d 69 67 68 74  n bug that might
0710: 20 6f 63 63 75 72 20 69 66 20 61 20 52 4f 4c 4c   occur if a ROLL
0720: 42 41 43 4b 20 63 6f 6d 6d 61 6e 64 0a 69 73 20  BACK command.is 
0730: 65 78 65 63 75 74 65 64 20 69 6e 20 3c 61 20 68  executed in <a h
0740: 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c  ref="pragma.html
0750: 23 70 72 61 67 6d 61 5f 61 75 74 6f 5f 76 61 63  #pragma_auto_vac
0760: 75 75 6d 22 3e 61 75 74 6f 2d 76 61 63 75 75 6d  uum">auto-vacuum
0770: 20 6d 6f 64 65 3c 2f 61 3e 0a 61 6e 64 20 61 20   mode</a>.and a 
0780: 76 65 72 79 20 73 6d 61 6c 6c 20 3c 61 20 68 72  very small <a hr
0790: 65 66 3d 22 63 61 70 69 33 72 65 66 2e 68 74 6d  ef="capi3ref.htm
07a0: 6c 23 73 71 6c 69 74 65 33 5f 73 6f 66 74 5f 68  l#sqlite3_soft_h
07b0: 65 61 70 5f 6c 69 6d 69 74 22 3e 0a 73 6f 66 74  eap_limit">.soft
07c0: 5f 68 65 61 70 5f 6c 69 6d 69 74 3c 2f 61 3e 20  _heap_limit</a> 
07d0: 69 73 20 73 65 74 2e 20 0a 3c 61 20 68 72 65 66  is set. .<a href
07e0: 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c  ="http://www.sql
07f0: 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f  ite.org/cvstrac/
0800: 74 6b 74 76 69 65 77 3f 74 6e 3d 32 35 36 35 22  tktview?tn=2565"
0810: 3e 54 69 63 6b 65 74 20 23 32 35 36 35 3c 2f 61  >Ticket #2565</a
0820: 3e 2e 0a 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  >...<li>Add the 
0830: 61 62 69 6c 69 74 79 20 74 6f 20 72 75 6e 20 61  ability to run a
0840: 20 66 75 6c 6c 20 72 65 67 72 65 73 73 69 6f 6e   full regression
0850: 20 74 65 73 74 20 77 69 74 68 20 61 20 73 6d 61   test with a sma
0860: 6c 6c 0a 3c 61 20 68 72 65 66 3d 22 63 61 70 69  ll.<a href="capi
0870: 33 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65  3ref.html#sqlite
0880: 33 5f 73 6f 66 74 5f 68 65 61 70 5f 6c 69 6d 69  3_soft_heap_limi
0890: 74 22 3e 73 6f 66 74 5f 68 65 61 70 5f 6c 69 6d  t">soft_heap_lim
08a0: 69 74 3c 2f 61 3e 2e 0a 0a 3c 6c 69 3e 46 69 78  it</a>...<li>Fix
08b0: 20 6f 74 68 65 72 20 6d 69 6e 6f 72 20 70 72 6f   other minor pro
08c0: 62 6c 65 6d 73 20 77 69 74 68 20 75 73 69 6e 67  blems with using
08d0: 20 73 6d 61 6c 6c 20 73 6f 66 74 20 68 65 61 70   small soft heap
08e0: 20 6c 69 6d 69 74 73 2e 0a 0a 3c 6c 69 3e 57 6f   limits...<li>Wo
08f0: 72 6b 2d 61 72 6f 75 6e 64 20 66 6f 72 20 0a 3c  rk-around for .<
0900: 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 67  a href="http://g
0910: 63 63 2e 67 6e 75 2e 6f 72 67 2f 62 75 67 7a 69  cc.gnu.org/bugzi
0920: 6c 6c 61 2f 73 68 6f 77 5f 62 75 67 2e 63 67 69  lla/show_bug.cgi
0930: 3f 69 64 3d 33 32 35 37 35 22 3e 47 43 43 20 62  ?id=32575">GCC b
0940: 75 67 20 33 32 35 37 35 3c 2f 61 3e 2e 0a 0a 3c  ug 32575</a>...<
0950: 6c 69 3e 49 6d 70 72 6f 76 65 64 20 65 72 72 6f  li>Improved erro
0960: 72 20 64 65 74 65 63 74 69 6f 6e 20 6f 66 20 6d  r detection of m
0970: 69 73 75 73 65 64 20 61 67 67 72 65 67 61 74 65  isused aggregate
0980: 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 3c 6c 69   functions...<li
0990: 3e 49 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f  >Improvements to
09a0: 20 74 68 65 20 61 6d 61 6c 67 61 6d 61 74 69 6f   the amalgamatio
09b0: 6e 20 67 65 6e 65 72 61 74 6f 72 20 73 63 72 69  n generator scri
09c0: 70 74 20 73 6f 20 74 68 61 74 20 61 6c 6c 20 73  pt so that all s
09d0: 79 6d 62 6f 6c 73 0a 61 72 65 20 70 72 65 66 69  ymbols.are prefi
09e0: 78 65 64 20 77 69 74 68 20 65 69 74 68 65 72 20  xed with either 
09f0: 53 51 4c 49 54 45 5f 50 52 49 56 41 54 45 20 6f  SQLITE_PRIVATE o
0a00: 72 20 53 51 4c 49 54 45 5f 41 50 49 2e 0a 7d 0a  r SQLITE_API..}.
0a10: 0a 63 68 6e 67 20 7b 32 30 30 37 20 4a 75 6c 79  .chng {2007 July
0a20: 20 32 30 20 28 33 2e 34 2e 31 29 7d 20 7b 0a 3c   20 (3.4.1)} {.<
0a30: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
0a40: 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 76 61  <a href="lang_va
0a50: 63 75 75 6d 2e 68 74 6d 6c 22 3e 56 41 43 55 55  cuum.html">VACUU
0a60: 4d 3c 2f 61 3e 20 74 68 61 74 20 63 61 6e 20 6c  M</a> that can l
0a70: 65 61 64 20 74 6f 0a 20 20 20 20 3c 61 20 68 72  ead to.    <a hr
0a80: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73  ef="http://www.s
0a90: 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61  qlite.org/cvstra
0aa0: 63 2f 77 69 6b 69 3f 70 3d 44 61 74 61 62 61 73  c/wiki?p=Databas
0ab0: 65 43 6f 72 72 75 70 74 69 6f 6e 22 3e 0a 20 20  eCorruption">.  
0ac0: 20 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75    database corru
0ad0: 70 74 69 6f 6e 3c 2f 61 3e 20 69 66 20 74 77 6f  ption</a> if two
0ae0: 0a 20 20 20 20 70 72 6f 63 65 73 73 65 73 20 61  .    processes a
0af0: 72 65 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20  re connected to 
0b00: 74 68 65 20 64 61 74 61 62 61 73 65 20 61 74 20  the database at 
0b10: 74 68 65 20 73 61 6d 65 20 74 69 6d 65 20 61 6e  the same time an
0b20: 64 20 6f 6e 65 0a 20 20 20 20 56 41 43 55 55 4d  d one.    VACUUM
0b30: 73 20 74 68 65 6e 20 74 68 65 20 6f 74 68 65 72  s then the other
0b40: 20 74 68 65 6e 20 6d 6f 64 69 66 69 65 73 20 74   then modifies t
0b50: 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69  he database.</li
0b60: 3e 0a 3c 6c 69 3e 54 68 65 20 65 78 70 72 65 73  >.<li>The expres
0b70: 73 69 6f 6e 20 22 2b 63 6f 6c 75 6d 6e 22 20 69  sion "+column" i
0b80: 73 20 6e 6f 77 20 63 6f 6e 73 69 64 65 72 65 64  s now considered
0b90: 20 74 68 65 20 73 61 6d 65 20 61 73 20 22 63 6f   the same as "co
0ba0: 6c 75 6d 6e 22 0a 20 20 20 20 77 68 65 6e 20 63  lumn".    when c
0bb0: 6f 6d 70 75 74 69 6e 67 20 74 68 65 20 63 6f 6c  omputing the col
0bc0: 6c 61 74 69 6e 67 20 73 65 71 75 65 6e 63 65 20  lating sequence 
0bd0: 74 6f 20 75 73 65 20 6f 6e 20 74 68 65 20 65 78  to use on the ex
0be0: 70 72 65 73 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  pression.</li>.<
0bf0: 6c 69 3e 49 6e 20 74 68 65 20 3c 61 20 68 72 65  li>In the <a hre
0c00: 66 3d 22 74 63 6c 73 71 6c 69 74 65 2e 68 74 6d  f="tclsqlite.htm
0c10: 6c 22 3e 54 43 4c 20 6c 61 6e 67 75 61 67 65 20  l">TCL language 
0c20: 69 6e 74 65 72 66 61 63 65 3c 2f 61 3e 2c 0a 20  interface</a>,. 
0c30: 20 20 22 40 76 61 72 69 61 62 6c 65 22 20 69 6e    "@variable" in
0c40: 73 74 65 61 64 20 6f 66 20 22 24 76 61 72 69 61  stead of "$varia
0c50: 62 6c 65 22 20 61 6c 77 61 79 73 20 62 69 6e 64  ble" always bind
0c60: 73 20 61 73 20 61 20 62 6c 6f 62 2e 3c 2f 6c 69  s as a blob.</li
0c70: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 3c 61 20 68  >.<li>Added <a h
0c80: 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c  ref="pragma.html
0c90: 23 70 72 61 67 6d 61 5f 66 72 65 65 6c 69 73 74  #pragma_freelist
0ca0: 5f 63 6f 75 6e 74 22 3e 50 52 41 47 4d 41 20 66  _count">PRAGMA f
0cb0: 72 65 65 6c 69 73 74 5f 63 6f 75 6e 74 3c 2f 61  reelist_count</a
0cc0: 3e 0a 20 20 20 20 66 6f 72 20 64 65 74 65 72 6d  >.    for determ
0cd0: 69 6e 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e  ining the curren
0ce0: 74 20 73 69 7a 65 20 6f 66 20 74 68 65 20 66 72  t size of the fr
0cf0: 65 65 6c 69 73 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  eelist.</li>.<li
0d00: 3e 54 68 65 20 3c 61 20 68 72 65 66 3d 22 70 72  >The <a href="pr
0d10: 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61  agma.html#pragma
0d20: 5f 61 75 74 6f 5f 76 61 63 75 75 6d 22 3e 0a 20  _auto_vacuum">. 
0d30: 20 20 20 50 52 41 47 4d 41 20 61 75 74 6f 5f 76     PRAGMA auto_v
0d40: 61 63 75 75 6d 3d 69 6e 63 72 65 6d 65 6e 74 61  acuum=incrementa
0d50: 6c 3c 2f 61 3e 20 73 65 74 74 69 6e 67 20 69 73  l</a> setting is
0d60: 20 6e 6f 77 20 70 65 72 73 69 73 74 65 6e 74 2e   now persistent.
0d70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 46 44  </li>.<li>Add FD
0d80: 5f 43 4c 4f 45 58 45 43 20 74 6f 20 61 6c 6c 20  _CLOEXEC to all 
0d90: 6f 70 65 6e 20 66 69 6c 65 73 20 75 6e 64 65 72  open files under
0da0: 20 75 6e 69 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   unix.</li>.<li>
0db0: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
0dc0: 20 3c 61 20 68 72 65 66 3d 22 6f 70 74 6f 76 65   <a href="optove
0dd0: 72 76 69 65 77 2e 68 74 6d 6c 23 6d 69 6e 6d 61  rview.html#minma
0de0: 78 22 3e 0a 20 20 20 20 6d 69 6e 28 29 2f 6d 61  x">.    min()/ma
0df0: 78 28 29 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  x() optimization
0e00: 3c 2f 61 3e 20 77 68 65 6e 20 61 70 70 6c 69 65  </a> when applie
0e10: 64 20 74 6f 0a 20 20 20 20 64 65 73 63 65 6e 64  d to.    descend
0e20: 69 6e 67 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69  ing indices.</li
0e30: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20  >.<li>Make sure 
0e40: 74 68 65 20 54 43 4c 20 6c 61 6e 67 75 61 67 65  the TCL language
0e50: 20 69 6e 74 65 72 66 61 63 65 20 77 6f 72 6b 73   interface works
0e60: 20 63 6f 72 72 65 63 74 6c 79 20 77 69 74 68 20   correctly with 
0e70: 36 34 2d 62 69 74 0a 20 20 20 20 69 6e 74 65 67  64-bit.    integ
0e80: 65 72 73 20 6f 6e 20 36 34 2d 62 69 74 20 6d 61  ers on 64-bit ma
0e90: 63 68 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  chines.</li>.<li
0ea0: 3e 41 6c 6c 6f 77 20 74 68 65 20 76 61 6c 75 65  >Allow the value
0eb0: 20 2d 39 32 32 33 33 37 32 30 33 36 38 35 34 37   -92233720368547
0ec0: 37 35 38 30 38 20 61 73 20 61 6e 20 69 6e 74 65  75808 as an inte
0ed0: 67 65 72 20 6c 69 74 65 72 61 6c 20 69 6e 20 53  ger literal in S
0ee0: 51 4c 0a 20 20 20 20 73 74 61 74 65 6d 65 6e 74  QL.    statement
0ef0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  s.</li>.<li>Add 
0f00: 74 68 65 20 63 61 70 61 62 69 6c 69 74 79 20 6f  the capability o
0f10: 66 20 22 68 69 64 64 65 6e 22 20 63 6f 6c 75 6d  f "hidden" colum
0f20: 6e 73 20 69 6e 20 76 69 72 74 75 61 6c 20 74 61  ns in virtual ta
0f30: 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  bles.</li>.<li>U
0f40: 73 65 20 74 68 65 20 6d 61 63 72 6f 20 53 51 4c  se the macro SQL
0f50: 49 54 45 5f 50 52 49 56 41 54 45 20 28 64 65 66  ITE_PRIVATE (def
0f60: 61 75 6c 74 69 6e 67 20 74 6f 20 22 73 74 61 74  aulting to "stat
0f70: 69 63 22 29 20 6f 6e 20 61 6c 6c 0a 20 20 20 20  ic") on all.    
0f80: 69 6e 74 65 72 6e 61 6c 20 66 75 6e 63 74 69 6f  internal functio
0f90: 6e 73 20 69 6e 20 74 68 65 20 61 6d 61 6c 67 61  ns in the amalga
0fa0: 6d 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  mation.</li>.<li
0fb0: 3e 41 64 64 20 70 6c 75 67 67 61 62 6c 65 20 74  >Add pluggable t
0fc0: 6f 6b 65 6e 69 7a 65 72 73 20 61 6e 64 20 3c 61  okenizers and <a
0fd0: 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77   href="http://ww
0fe0: 77 2e 69 63 75 2d 70 72 6f 6a 65 63 74 2e 6f 72  w.icu-project.or
0ff0: 67 2f 22 3e 49 43 55 3c 2f 61 3e 0a 20 20 20 20  g/">ICU</a>.    
1000: 74 6f 6b 65 6e 69 7a 61 74 69 6f 6e 20 73 75 70  tokenization sup
1010: 70 6f 72 74 20 74 6f 20 46 54 53 32 3c 2f 6c 69  port to FTS2</li
1020: 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f  >.<li>Other mino
1030: 72 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20  r bug fixes and 
1040: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 65 6e  documentation en
1050: 68 61 6e 63 65 6d 65 6e 74 73 3c 2f 6c 69 3e 0a  hancements</li>.
1060: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20 4a 75  }..chng {2007 Ju
1070: 6e 65 20 31 38 20 28 33 2e 34 2e 30 29 7d 20 7b  ne 18 (3.4.0)} {
1080: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
1090: 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20  hat can lead to 
10a0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
10b0: 69 6f 6e 20 69 66 20 61 6e 20 53 51 4c 49 54 45  ion if an SQLITE
10c0: 5f 42 55 53 59 20 65 72 72 6f 72 0a 20 20 20 20  _BUSY error.    
10d0: 6f 63 63 75 72 73 20 69 6e 20 74 68 65 20 6d 69  occurs in the mi
10e0: 64 64 6c 65 20 6f 66 20 61 6e 20 65 78 70 6c 69  ddle of an expli
10f0: 63 69 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20  cit transaction 
1100: 61 6e 64 20 74 68 61 74 20 74 72 61 6e 73 61 63  and that transac
1110: 74 69 6f 6e 0a 20 20 20 20 69 73 20 6c 61 74 65  tion.    is late
1120: 72 20 63 6f 6d 6d 69 74 74 65 64 2e 20 20 0a 20  r committed.  . 
1130: 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70     <a href="http
1140: 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72  ://www.sqlite.or
1150: 67 2f 63 76 73 74 72 61 63 2f 74 6b 74 76 69 65  g/cvstrac/tktvie
1160: 77 3f 74 6e 3d 32 34 30 39 22 3e 54 69 63 6b 65  w?tn=2409">Ticke
1170: 74 20 23 32 34 30 39 2e 3c 2f 61 3e 0a 20 20 20  t #2409.</a>.   
1180: 20 53 65 65 20 74 68 65 0a 20 20 20 20 3c 61 20   See the.    <a 
1190: 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77  href="http://www
11a0: 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74  .sqlite.org/cvst
11b0: 72 61 63 2f 77 69 6b 69 3f 70 3d 43 6f 72 72 75  rac/wiki?p=Corru
11c0: 70 74 69 6f 6e 46 6f 6c 6c 6f 77 69 6e 67 42 75  ptionFollowingBu
11d0: 73 79 45 72 72 6f 72 22 3e 0a 20 20 20 20 43 6f  syError">.    Co
11e0: 72 72 75 70 74 69 6f 6e 46 6f 6c 6c 6f 77 69 6e  rruptionFollowin
11f0: 67 42 75 73 79 45 72 72 6f 72 3c 2f 61 3e 20 77  gBusyError</a> w
1200: 69 6b 69 20 70 61 67 65 20 66 6f 72 20 64 65 74  iki page for det
1210: 61 69 6c 73 2e 3c 2f 69 3e 0a 3c 6c 69 3e 46 69  ails.</i>.<li>Fi
1220: 78 20 61 20 62 75 67 20 74 68 61 74 20 63 61 6e  x a bug that can
1230: 20 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61 73   lead to databas
1240: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20  e corruption if 
1250: 61 75 74 6f 76 61 63 75 75 6d 20 6d 6f 64 65 20  autovacuum mode 
1260: 69 73 0a 20 20 20 20 6f 6e 20 61 6e 64 20 61 20  is.    on and a 
1270: 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 75 72 65  malloc() failure
1280: 20 66 6f 6c 6c 6f 77 73 20 61 20 43 52 45 41 54   follows a CREAT
1290: 45 20 54 41 42 4c 45 20 6f 72 20 43 52 45 41 54  E TABLE or CREAT
12a0: 45 20 49 4e 44 45 58 20 73 74 61 74 65 6d 65 6e  E INDEX statemen
12b0: 74 0a 20 20 20 20 77 68 69 63 68 20 69 74 73 65  t.    which itse
12c0: 6c 66 20 66 6f 6c 6c 6f 77 73 20 61 20 63 61 63  lf follows a cac
12d0: 68 65 20 6f 76 65 72 66 6c 6f 77 20 69 6e 73 69  he overflow insi
12e0: 64 65 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e  de a transaction
12f0: 2e 20 20 53 65 65 0a 20 20 20 20 3c 61 20 68 72  .  See.    <a hr
1300: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73  ef="http://www.s
1310: 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61  qlite.org/cvstra
1320: 63 2f 74 6b 74 76 69 65 77 3f 74 6e 3d 32 34 31  c/tktview?tn=241
1330: 38 22 3e 74 69 63 6b 65 74 20 23 32 34 31 38 3c  8">ticket #2418<
1340: 2f 61 3e 2e 20 0a 20 20 20 20 3c 2f 6c 69 3e 0a  /a>. .    </li>.
1350: 3c 6c 69 3e 41 64 64 65 64 20 65 78 70 6c 69 63  <li>Added explic
1360: 69 74 20 3c 61 20 68 72 65 66 3d 22 6c 69 6d 69  it <a href="limi
1370: 74 73 2e 68 74 6d 6c 22 3e 75 70 70 65 72 20 62  ts.html">upper b
1380: 6f 75 6e 64 73 3c 2f 61 3e 20 6f 6e 20 74 68 65  ounds</a> on the
1390: 20 73 69 7a 65 73 20 61 6e 64 0a 20 20 20 20 71   sizes and.    q
13a0: 75 61 6e 74 69 74 69 65 73 20 6f 66 20 74 68 69  uantities of thi
13b0: 6e 67 73 20 53 51 4c 69 74 65 20 63 61 6e 20 70  ngs SQLite can p
13c0: 72 6f 63 65 73 73 2e 20 20 54 68 69 73 20 63 68  rocess.  This ch
13d0: 61 6e 67 65 20 6d 69 67 68 74 20 63 61 75 73 65  ange might cause
13e0: 0a 20 20 20 20 63 6f 6d 70 61 74 69 62 69 6c 69  .    compatibili
13f0: 74 79 20 70 72 6f 62 6c 65 6d 73 20 66 6f 72 0a  ty problems for.
1400: 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 73      applications
1410: 20 74 68 61 74 20 75 73 65 20 53 51 4c 69 74 65   that use SQLite
1420: 20 69 6e 20 74 68 65 20 65 78 74 72 65 6d 65 2c   in the extreme,
1430: 20 77 68 69 63 68 20 69 73 20 77 68 79 20 74 68   which is why th
1440: 65 20 63 75 72 72 65 6e 74 0a 20 20 20 20 72 65  e current.    re
1450: 6c 65 61 73 65 20 69 73 20 33 2e 34 2e 30 20 69  lease is 3.4.0 i
1460: 6e 73 74 65 61 64 20 6f 66 20 33 2e 33 2e 31 38  nstead of 3.3.18
1470: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
1480: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 61 20   support for <a 
1490: 68 72 65 66 3d 22 63 61 70 69 33 72 65 66 2e 68  href="capi3ref.h
14a0: 74 6d 6c 23 73 71 6c 69 74 65 33 5f 62 6c 6f 62  tml#sqlite3_blob
14b0: 5f 6f 70 65 6e 22 3e 0a 20 20 20 20 49 6e 63 72  _open">.    Incr
14c0: 65 6d 65 6e 74 61 6c 20 42 4c 4f 42 20 49 2f 4f  emental BLOB I/O
14d0: 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  </a>.</li>.<li>A
14e0: 64 64 65 64 20 74 68 65 20 3c 61 20 68 72 65 66  dded the <a href
14f0: 3d 22 63 61 70 69 33 72 65 66 2e 68 74 6d 6c 23  ="capi3ref.html#
1500: 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 7a 65 72  sqlite3_bind_zer
1510: 6f 62 6c 6f 62 22 3e 7a 65 72 6f 62 6c 6f 62 20  oblob">zeroblob 
1520: 41 50 49 3c 2f 61 3e 0a 20 20 20 20 61 6e 64 20  API</a>.    and 
1530: 74 68 65 20 3c 61 20 68 72 65 66 3d 22 6c 61 6e  the <a href="lan
1540: 67 5f 65 78 70 72 2e 68 74 6d 6c 23 7a 65 72 6f  g_expr.html#zero
1550: 62 6c 6f 62 22 3e 7a 65 72 6f 62 6c 6f 62 28 29  blob">zeroblob()
1560: 3c 2f 61 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f  </a> SQL functio
1570: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  n.</li>.<li>Adde
1580: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 61  d support for <a
1590: 20 68 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74   href="pragma.ht
15a0: 6d 6c 23 70 72 61 67 6d 61 5f 69 6e 63 72 65 6d  ml#pragma_increm
15b0: 65 6e 74 61 6c 5f 76 61 63 75 75 6d 22 3e 0a 20  ental_vacuum">. 
15c0: 20 20 20 49 6e 63 72 65 6d 65 6e 74 61 6c 20 56     Incremental V
15d0: 61 63 75 75 6d 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a  acuum</a>.</li>.
15e0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 53 51  <li>Added the SQ
15f0: 4c 49 54 45 5f 4d 49 58 45 44 5f 45 4e 44 49 41  LITE_MIXED_ENDIA
1600: 4e 5f 36 34 42 49 54 5f 46 4c 4f 41 54 20 63 6f  N_64BIT_FLOAT co
1610: 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f  mpile-time optio
1620: 6e 20 74 6f 20 73 75 70 70 70 6f 72 74 0a 20 20  n to suppport.  
1630: 20 20 41 52 4d 37 20 70 72 6f 63 65 73 73 6f 72    ARM7 processor
1640: 73 20 77 69 74 68 20 67 6f 6f 66 79 20 65 6e 64  s with goofy end
1650: 69 61 6e 6e 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ianness.</li>.<l
1660: 69 3e 52 65 6d 6f 76 65 64 20 61 6c 6c 20 69 6e  i>Removed all in
1670: 73 74 61 6e 63 65 73 20 6f 66 20 73 70 72 69 6e  stances of sprin
1680: 74 66 28 29 20 61 6e 64 20 73 74 72 63 70 79 28  tf() and strcpy(
1690: 29 20 66 72 6f 6d 20 74 68 65 20 63 6f 72 65 20  ) from the core 
16a0: 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c  library.</li>.<l
16b0: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
16c0: 66 6f 72 20 3c 61 20 68 72 65 66 3d 22 68 74 74  for <a href="htt
16d0: 70 3a 2f 2f 77 77 77 2e 69 63 75 2d 70 72 6f 6a  p://www.icu-proj
16e0: 65 63 74 2e 6f 72 67 2f 22 3e 0a 20 20 20 20 49  ect.org/">.    I
16f0: 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 43 6f 6d  nternational Com
1700: 70 6f 6e 65 6e 74 73 20 66 6f 72 20 55 6e 69 63  ponents for Unic
1710: 6f 64 65 20 28 49 43 55 29 3c 2f 61 3e 20 74 6f  ode (ICU)</a> to
1720: 20 74 68 65 20 66 75 6c 6c 2d 74 65 78 74 20 73   the full-text s
1730: 65 61 72 63 68 0a 20 20 20 20 65 78 74 65 6e 73  earch.    extens
1740: 69 6f 6e 73 2e 0a 3c 2f 75 6c 3e 3c 70 3e 0a 3c  ions..</ul><p>.<
1750: 75 6c 20 74 79 70 65 3d 22 63 69 72 63 6c 65 22  ul type="circle"
1760: 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 77 69 6e  >.<li>In the win
1770: 64 6f 77 73 20 4f 53 20 64 72 69 76 65 72 2c 20  dows OS driver, 
1780: 72 65 61 63 71 75 69 72 65 20 61 20 53 48 41 52  reacquire a SHAR
1790: 45 44 20 6c 6f 63 6b 20 69 66 20 61 6e 20 61 74  ED lock if an at
17a0: 74 65 6d 70 74 20 74 6f 0a 20 20 20 20 61 63 71  tempt to.    acq
17b0: 75 69 72 65 20 61 6e 20 45 58 43 4c 55 53 49 56  uire an EXCLUSIV
17c0: 45 20 6c 6f 63 6b 20 66 61 69 6c 73 2e 20 20 54  E lock fails.  T
17d0: 69 63 6b 65 74 20 23 32 33 35 34 3c 2f 6c 69 3e  icket #2354</li>
17e0: 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 52 45 50  .<li>Fix the REP
17f0: 4c 41 43 45 28 29 20 66 75 6e 63 74 69 6f 6e 20  LACE() function 
1800: 73 6f 20 74 68 61 74 20 69 74 20 72 65 74 75 72  so that it retur
1810: 6e 73 20 4e 55 4c 4c 20 69 66 20 74 68 65 20 73  ns NULL if the s
1820: 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 0a 20  econd argument. 
1830: 20 20 20 69 73 20 61 6e 20 65 6d 70 74 79 20 73     is an empty s
1840: 74 72 69 6e 67 2e 20 20 54 69 63 6b 65 74 20 23  tring.  Ticket #
1850: 32 33 32 34 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  2324.</li>.<li>D
1860: 6f 63 75 6d 65 6e 74 20 74 68 65 20 68 61 7a 61  ocument the haza
1870: 72 64 73 20 6f 66 20 74 79 70 65 20 63 6f 76 65  rds of type cove
1880: 72 73 69 6f 6e 73 20 69 6e 0a 20 20 20 20 3c 61  rsions in.    <a
1890: 20 68 72 65 66 3d 22 63 61 70 69 33 72 65 66 2e   href="capi3ref.
18a0: 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f 63 6f 6c  html#sqlite3_col
18b0: 75 6d 6e 5f 62 6c 6f 62 22 3e 73 71 6c 69 74 65  umn_blob">sqlite
18c0: 33 5f 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 28 29 3c  3_column_blob()<
18d0: 2f 61 3e 0a 20 20 20 20 61 6e 64 20 72 65 6c 61  /a>.    and rela
18e0: 74 65 64 20 41 50 49 73 2e 20 20 46 69 78 20 75  ted APIs.  Fix u
18f0: 6e 6e 65 63 65 73 73 61 72 79 20 74 79 70 65 20  nnecessary type 
1900: 63 6f 6e 76 65 72 73 69 6f 6e 73 2e 20 20 54 69  conversions.  Ti
1910: 63 6b 65 74 20 23 32 33 32 31 2e 3c 2f 6c 69 3e  cket #2321.</li>
1920: 0a 3c 6c 69 3e 49 6e 74 65 72 6e 61 74 69 6f 6e  .<li>Internation
1930: 61 6c 69 7a 61 74 69 6f 6e 20 6f 66 20 74 68 65  alization of the
1940: 20 54 52 49 4d 28 29 20 66 75 6e 63 74 69 6f 6e   TRIM() function
1950: 2e 20 20 54 69 63 6b 65 74 20 23 32 33 32 33 3c  .  Ticket #2323<
1960: 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 6d 65 6d  /li>.<li>Use mem
1970: 6d 6f 76 65 28 29 20 69 6e 73 74 65 61 64 20 6f  move() instead o
1980: 66 20 6d 65 6d 63 70 79 28 29 20 77 68 65 6e 20  f memcpy() when 
1990: 6d 6f 76 69 6e 67 20 62 65 74 77 65 65 6e 20 6d  moving between m
19a0: 65 6d 6f 72 79 20 72 65 67 69 6f 6e 73 0a 20 20  emory regions.  
19b0: 20 20 74 68 61 74 20 6d 69 67 68 74 20 6f 76 65    that might ove
19c0: 72 6c 61 70 2e 20 20 54 69 63 6b 65 74 20 23 32  rlap.  Ticket #2
19d0: 33 33 34 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  334</li>.<li>Fix
19e0: 20 61 6e 20 6f 70 74 69 6d 69 7a 65 72 20 62 75   an optimizer bu
19f0: 67 20 69 6e 76 6f 6c 76 69 6e 67 20 73 75 62 71  g involving subq
1a00: 75 65 72 69 65 73 20 69 6e 20 61 20 63 6f 6d 70  ueries in a comp
1a10: 6f 75 6e 64 20 53 45 4c 45 43 54 20 74 68 61 74  ound SELECT that
1a20: 20 68 61 73 0a 20 20 20 20 62 6f 74 68 20 61 6e   has.    both an
1a30: 20 4f 52 44 45 52 20 42 59 20 61 6e 64 20 61 20   ORDER BY and a 
1a40: 4c 49 4d 49 54 20 63 6c 61 75 73 65 2e 20 20 54  LIMIT clause.  T
1a50: 69 63 6b 65 74 20 23 32 33 33 39 2e 3c 2f 6c 69  icket #2339.</li
1a60: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20  >.<li>Make sure 
1a70: 74 68 65 20 3c 61 20 68 72 65 66 3d 22 63 61 70  the <a href="cap
1a80: 69 33 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74  i3ref.html#sqlit
1a90: 65 33 5f 73 6e 70 72 69 6e 74 66 22 3e 73 71 6c  e3_snprintf">sql
1aa0: 69 74 65 33 5f 73 6e 70 72 69 6e 74 66 28 29 0a  ite3_snprintf().
1ab0: 20 20 20 20 3c 2f 61 3e 20 69 6e 74 65 72 66 61      </a> interfa
1ac0: 63 65 20 64 6f 65 73 20 6e 6f 74 20 7a 65 72 6f  ce does not zero
1ad0: 2d 74 65 72 6d 69 6e 61 74 65 20 74 68 65 20 62  -terminate the b
1ae0: 75 66 66 65 72 20 69 66 20 74 68 65 20 62 75 66  uffer if the buf
1af0: 66 65 72 20 73 69 7a 65 20 69 73 0a 20 20 20 20  fer size is.    
1b00: 6c 65 73 73 20 74 68 61 6e 20 31 2e 20 20 54 69  less than 1.  Ti
1b10: 63 6b 65 74 20 23 32 33 34 31 3c 2f 6c 69 3e 0a  cket #2341</li>.
1b20: 3c 6c 69 3e 46 69 78 20 74 68 65 20 62 75 69 6c  <li>Fix the buil
1b30: 74 2d 69 6e 20 70 72 69 6e 74 66 20 6c 6f 67 69  t-in printf logi
1b40: 63 20 73 6f 20 74 68 61 74 20 69 74 20 70 72 69  c so that it pri
1b50: 6e 74 73 20 22 4e 61 4e 22 20 6e 6f 74 20 22 49  nts "NaN" not "I
1b60: 6e 66 22 20 66 6f 72 0a 20 20 20 20 66 6c 6f 61  nf" for.    floa
1b70: 74 69 6e 67 2d 70 6f 69 6e 74 20 4e 61 4e 73 2e  ting-point NaNs.
1b80: 20 20 54 69 63 6b 65 74 20 23 32 33 34 35 3c 2f    Ticket #2345</
1b90: 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 63 6f 6e  li>.<li>When con
1ba0: 76 65 72 74 69 6e 67 20 42 4c 4f 42 20 74 6f 20  verting BLOB to 
1bb0: 54 45 58 54 2c 20 75 73 65 20 74 68 65 20 74 65  TEXT, use the te
1bc0: 78 74 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20 74  xt encoding of t
1bd0: 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65  he main database
1be0: 2e 0a 20 20 20 20 54 69 63 6b 65 74 20 23 32 33  ..    Ticket #23
1bf0: 34 39 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4b 65 65 70  49</li>.<li>Keep
1c00: 20 74 68 65 20 66 75 6c 6c 20 70 72 65 63 69 73   the full precis
1c10: 69 6f 6e 20 6f 66 20 69 6e 74 65 67 65 72 73 20  ion of integers 
1c20: 28 69 66 20 70 6f 73 73 69 62 6c 65 29 20 77 68  (if possible) wh
1c30: 65 6e 20 63 61 73 74 69 6e 67 20 74 6f 0a 20 20  en casting to.  
1c40: 20 20 4e 55 4d 45 52 49 43 2e 20 20 54 69 63 6b    NUMERIC.  Tick
1c50: 65 74 20 23 32 33 36 34 3c 2f 6c 69 3e 0a 3c 6c  et #2364</li>.<l
1c60: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
1c70: 68 65 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 55  he handling of U
1c80: 54 46 31 36 20 63 6f 64 65 70 6f 69 6e 74 20 30  TF16 codepoint 0
1c90: 78 45 30 30 30 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  xE000</li>.<li>C
1ca0: 6f 6e 73 69 64 65 72 20 65 78 70 6c 69 63 69 74  onsider explicit
1cb0: 20 63 6f 6c 6c 61 74 65 20 63 6c 61 75 73 65 73   collate clauses
1cc0: 20 77 68 65 6e 20 6d 61 74 63 68 69 6e 67 20 57   when matching W
1cd0: 48 45 52 45 20 63 6f 6e 73 74 72 61 69 6e 74 73  HERE constraints
1ce0: 0a 20 20 20 20 74 6f 20 69 6e 64 69 63 65 73 20  .    to indices 
1cf0: 69 6e 20 74 68 65 20 71 75 65 72 79 20 6f 70 74  in the query opt
1d00: 69 6d 69 7a 65 72 2e 20 20 54 69 63 6b 65 74 20  imizer.  Ticket 
1d10: 23 32 33 39 31 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  #2391</li>.<li>F
1d20: 69 78 20 74 68 65 20 71 75 65 72 79 20 6f 70 74  ix the query opt
1d30: 69 6d 69 7a 65 72 20 74 6f 20 63 6f 72 72 65 63  imizer to correc
1d40: 74 6c 79 20 68 61 6e 64 6c 65 20 63 6f 6e 73 74  tly handle const
1d50: 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 73 20  ant expressions 
1d60: 69 6e 20 0a 20 20 20 20 74 68 65 20 4f 4e 20 63  in .    the ON c
1d70: 6c 61 75 73 65 20 6f 66 20 61 20 4c 45 46 54 20  lause of a LEFT 
1d80: 4a 4f 49 4e 2e 20 20 54 69 63 6b 65 74 20 23 32  JOIN.  Ticket #2
1d90: 34 30 33 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  403</li>.<li>Fix
1da0: 20 74 68 65 20 71 75 65 72 79 20 6f 70 74 69 6d   the query optim
1db0: 69 7a 65 72 20 74 6f 20 68 61 6e 64 6c 65 20 72  izer to handle r
1dc0: 6f 77 69 64 20 63 6f 6d 70 61 72 69 73 69 6f 6e  owid comparision
1dd0: 73 20 74 6f 20 4e 55 4c 4c 0a 20 20 20 20 63 6f  s to NULL.    co
1de0: 72 72 65 63 74 6c 79 2e 20 20 54 69 63 6b 65 74  rrectly.  Ticket
1df0: 20 23 32 34 30 34 3c 2f 6c 69 3e 0a 3c 6c 69 3e   #2404</li>.<li>
1e00: 46 69 78 20 6d 61 6e 79 20 70 6f 74 65 6e 74 61  Fix many potenta
1e10: 6c 20 73 65 67 66 61 75 6c 74 73 20 74 68 61 74  l segfaults that
1e20: 20 63 6f 75 6c 64 20 62 65 20 63 61 75 73 65 64   could be caused
1e30: 20 62 79 20 6d 61 6c 69 63 69 6f 75 73 20 53 51   by malicious SQ
1e40: 4c 0a 20 20 20 20 73 74 61 74 65 6d 65 6e 74 73  L.    statements
1e50: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1e60: 32 30 30 37 20 41 70 72 69 6c 20 32 35 20 28 33  2007 April 25 (3
1e70: 2e 33 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e 57 68  .3.17)} {.<li>Wh
1e80: 65 6e 20 74 68 65 20 22 77 72 69 74 65 5f 76 65  en the "write_ve
1e90: 72 73 69 6f 6e 22 20 76 61 6c 75 65 20 6f 66 20  rsion" value of 
1ea0: 74 68 65 20 64 61 74 61 62 61 73 65 20 68 65 61  the database hea
1eb0: 64 65 72 20 69 73 20 6c 61 72 67 65 72 20 74 68  der is larger th
1ec0: 61 6e 0a 20 20 20 20 77 68 61 74 20 74 68 65 20  an.    what the 
1ed0: 6c 69 62 72 61 72 79 20 75 6e 64 65 72 73 74 61  library understa
1ee0: 6e 64 73 2c 20 6d 61 6b 65 20 74 68 65 20 64 61  nds, make the da
1ef0: 74 61 62 61 73 65 20 72 65 61 64 2d 6f 6e 6c 79  tabase read-only
1f00: 20 69 6e 73 74 65 61 64 20 6f 66 0a 20 20 20 20   instead of.    
1f10: 75 6e 72 65 61 64 61 62 6c 65 2e 3c 2f 6c 69 3e  unreadable.</li>
1f20: 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72  .<li>Other minor
1f30: 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a   bug fixes</li>.
1f40: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20 41 70  }..chng {2007 Ap
1f50: 72 69 6c 20 31 38 20 28 33 2e 33 2e 31 36 29 7d  ril 18 (3.3.16)}
1f60: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
1f70: 20 74 68 61 74 20 63 61 75 73 65 64 20 56 41 43   that caused VAC
1f80: 55 55 4d 20 74 6f 20 66 61 69 6c 20 69 66 20 4e  UUM to fail if N
1f90: 55 4c 4c 73 20 61 70 70 65 61 72 65 64 20 69 6e  ULLs appeared in
1fa0: 20 61 0a 20 20 20 20 55 4e 49 51 55 45 20 63 6f   a.    UNIQUE co
1fb0: 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52  lumn.</li>.<li>R
1fc0: 65 69 6e 73 74 61 74 65 20 70 65 72 66 6f 72 6d  einstate perform
1fd0: 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74  ance improvement
1fe0: 73 20 74 68 61 74 20 77 65 72 65 20 61 64 64 65  s that were adde
1ff0: 64 20 69 6e 20 33 2e 33 2e 31 34 0a 20 20 20 20  d in 3.3.14.    
2000: 62 75 74 20 72 65 67 72 65 73 73 65 64 20 69 6e  but regressed in
2010: 20 33 2e 33 2e 31 35 2e 3c 2f 6c 69 3e 0a 3c 6c   3.3.15.</li>.<l
2020: 69 3e 46 69 78 20 70 72 6f 62 6c 65 6d 73 20 77  i>Fix problems w
2030: 69 74 68 20 74 68 65 20 68 61 6e 64 6c 69 6e 67  ith the handling
2040: 20 6f 66 20 4f 52 44 45 52 20 42 59 20 65 78 70   of ORDER BY exp
2050: 72 65 73 73 69 6f 6e 73 20 6f 6e 0a 20 20 20 20  ressions on.    
2060: 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20  compound SELECT 
2070: 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 73 75  statements in su
2080: 62 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a 3c  bqueries.</li>.<
2090: 6c 69 3e 46 69 78 20 61 20 70 6f 74 65 6e 74 69  li>Fix a potenti
20a0: 61 6c 20 73 65 67 66 61 75 6c 74 20 77 68 65 6e  al segfault when
20b0: 20 64 65 73 74 72 6f 79 69 6e 67 20 6c 6f 63 6b   destroying lock
20c0: 73 20 6f 6e 20 57 69 6e 43 45 20 69 6e 0a 20 20  s on WinCE in.  
20d0: 20 20 61 20 6d 75 6c 74 69 2d 74 68 72 65 61 64    a multi-thread
20e0: 65 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 3c  ed environment.<
20f0: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  /li>.<li>Documen
2100: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c  tation updates.<
2110: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2120: 30 37 20 41 70 72 69 6c 20 39 20 28 33 2e 33 2e  07 April 9 (3.3.
2130: 31 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  15)} {.<li>Fix a
2140: 20 62 75 67 20 69 6e 74 72 6f 64 75 63 65 64 20   bug introduced 
2150: 69 6e 20 33 2e 33 2e 31 34 20 74 68 61 74 20 63  in 3.3.14 that c
2160: 61 75 73 65 64 20 61 20 72 6f 6c 6c 62 61 63 6b  aused a rollback
2170: 20 6f 66 0a 20 20 20 20 43 52 45 41 54 45 20 54   of.    CREATE T
2180: 45 4d 50 20 54 41 42 4c 45 20 74 6f 20 6c 65 61  EMP TABLE to lea
2190: 76 65 20 74 68 65 20 64 61 74 61 62 61 73 65 20  ve the database 
21a0: 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 65 64 67 65  connection wedge
21b0: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  d.</li>.<li>Fix 
21c0: 61 20 62 75 67 20 74 68 61 74 20 63 61 75 73 65  a bug that cause
21d0: 64 20 61 6e 20 65 78 74 72 61 20 4e 55 4c 4c 20  d an extra NULL 
21e0: 72 6f 77 20 74 6f 20 62 65 20 72 65 74 75 72 6e  row to be return
21f0: 65 64 20 77 68 65 6e 0a 20 20 20 20 61 20 64 65  ed when.    a de
2200: 73 63 65 6e 64 69 6e 67 20 71 75 65 72 79 20 77  scending query w
2210: 61 73 20 69 6e 74 65 72 72 75 70 74 65 64 20 62  as interrupted b
2220: 79 20 61 20 63 68 61 6e 67 65 20 74 6f 20 74 68  y a change to th
2230: 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e  e database.</li>
2240: 0a 3c 6c 69 3e 54 68 65 20 46 4f 52 20 45 41 43  .<li>The FOR EAC
2250: 48 20 53 54 41 54 45 4d 45 4e 54 20 63 6c 61 75  H STATEMENT clau
2260: 73 65 20 6f 6e 20 61 20 74 72 69 67 67 65 72 20  se on a trigger 
2270: 6e 6f 77 20 63 61 75 73 65 73 20 61 20 73 79 6e  now causes a syn
2280: 74 61 78 0a 20 20 20 20 65 72 72 6f 72 2e 20 20  tax.    error.  
2290: 49 74 20 75 73 65 64 20 74 6f 20 62 65 20 73 69  It used to be si
22a0: 6c 65 6e 74 6c 79 20 69 67 6e 6f 72 65 64 2e 3c  lently ignored.<
22b0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20  /li>.<li>Fix an 
22c0: 6f 62 73 63 75 72 65 20 61 6e 64 20 72 65 6c 61  obscure and rela
22d0: 74 69 76 65 6c 79 20 68 61 72 6d 6c 65 73 73 20  tively harmless 
22e0: 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 6d 69 67  problem that mig
22f0: 68 74 20 68 61 76 65 20 63 61 75 73 65 64 0a 20  ht have caused. 
2300: 20 20 20 61 20 72 65 73 6f 75 72 63 65 20 6c 65     a resource le
2310: 61 6b 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 6e 20  ak following an 
2320: 49 2f 4f 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a  I/O error.</li>.
2330: 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70 72 6f 76 65  <li>Many improve
2340: 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 74 65 73  ments to the tes
2350: 74 20 73 75 69 74 65 2e 20 20 54 65 73 74 20 63  t suite.  Test c
2360: 6f 76 65 72 61 67 65 20 6e 6f 77 20 65 78 63 65  overage now exce
2370: 65 64 65 64 20 39 38 25 3c 2f 6c 69 3e 0a 7d 0a  eded 98%</li>.}.
2380: 0a 63 68 6e 67 20 7b 32 30 30 37 20 41 70 72 69  .chng {2007 Apri
2390: 6c 20 32 20 28 33 2e 33 2e 31 34 29 7d 20 7b 0a  l 2 (3.3.14)} {.
23a0: 3c 6c 69 3e 46 69 78 20 61 20 3c 61 20 68 72 65  <li>Fix a <a hre
23b0: 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  f="http://www.sq
23c0: 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63  lite.org/cvstrac
23d0: 2f 74 6b 74 76 69 65 77 3f 74 6e 3d 32 32 37 33  /tktview?tn=2273
23e0: 22 3e 62 75 67 3c 2f 61 3e 0a 20 20 20 20 69 6e  ">bug</a>.    in
23f0: 20 33 2e 33 2e 31 33 20 74 68 61 74 20 63 6f 75   3.3.13 that cou
2400: 6c 64 20 63 61 75 73 65 20 61 20 73 65 67 66 61  ld cause a segfa
2410: 75 6c 74 20 77 68 65 6e 20 74 68 65 20 49 4e 20  ult when the IN 
2420: 6f 70 65 72 61 74 6f 72 0a 20 20 20 20 69 73 20  operator.    is 
2430: 75 73 65 64 20 6f 6e 65 20 6f 6e 65 20 74 65 72  used one one ter
2440: 6d 20 6f 66 20 61 20 74 77 6f 2d 63 6f 6c 75 6d  m of a two-colum
2450: 6e 20 69 6e 64 65 78 20 61 6e 64 20 74 68 65 20  n index and the 
2460: 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20  right-hand side 
2470: 6f 66 0a 20 20 20 20 74 68 65 20 49 4e 20 6f 70  of.    the IN op
2480: 65 72 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20  erator contains 
2490: 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69  a NULL.</li>.<li
24a0: 3e 41 64 64 65 64 20 61 20 6e 65 77 20 4f 53 20  >Added a new OS 
24b0: 69 6e 74 65 72 66 61 63 65 20 6d 65 74 68 6f 64  interface method
24c0: 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67   for determining
24d0: 20 74 68 65 20 73 65 63 74 6f 72 20 73 69 7a 65   the sector size
24e0: 0a 20 20 20 20 6f 66 20 75 6e 64 65 72 6c 79 69  .    of underlyi
24f0: 6e 67 20 6d 65 64 69 61 3a 20 20 73 71 6c 69 74  ng media:  sqlit
2500: 65 33 4f 73 53 65 63 74 6f 72 53 69 7a 65 28 29  e3OsSectorSize()
2510: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20 6e 65 77  .</li>.<li>A new
2520: 20 61 6c 67 6f 72 69 74 68 6d 20 66 6f 72 20 73   algorithm for s
2530: 74 61 74 65 6d 65 6e 74 73 20 6f 66 20 74 68 65  tatements of the
2540: 20 66 6f 72 6d 0a 20 20 20 20 49 4e 53 45 52 54   form.    INSERT
2550: 20 49 4e 54 4f 20 3c 69 3e 74 61 62 6c 65 31 3c   INTO <i>table1<
2560: 2f 69 3e 20 53 45 4c 45 43 54 20 2a 20 46 52 4f  /i> SELECT * FRO
2570: 4d 20 3c 69 3e 74 61 62 6c 65 32 3c 2f 69 3e 0a  M <i>table2</i>.
2580: 20 20 20 20 69 73 20 66 61 73 74 65 72 20 61 6e      is faster an
2590: 64 20 72 65 64 75 63 65 73 20 66 72 61 67 6d 65  d reduces fragme
25a0: 6e 74 61 74 69 6f 6e 2e 20 20 56 41 43 55 55 4d  ntation.  VACUUM
25b0: 20 75 73 65 73 20 73 74 61 74 65 6d 65 6e 74 73   uses statements
25c0: 20 6f 66 0a 20 20 20 20 74 68 69 73 20 66 6f 72   of.    this for
25d0: 6d 20 61 6e 64 20 74 68 75 73 20 72 75 6e 73 20  m and thus runs 
25e0: 66 61 73 74 65 72 20 61 6e 64 20 64 65 66 72 61  faster and defra
25f0: 67 6d 65 6e 74 73 20 62 65 74 74 65 72 2e 3c 2f  gments better.</
2600: 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61  li>.<li>Performa
2610: 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  nce enhancements
2620: 20 74 68 72 6f 75 67 68 20 72 65 64 75 63 74 69   through reducti
2630: 6f 6e 73 20 69 6e 20 64 69 73 6b 20 49 2f 4f 3a  ons in disk I/O:
2640: 0a 3c 75 6c 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  .<ul>.<li>Do not
2650: 20 72 65 61 64 20 74 68 65 20 6c 61 73 74 20 70   read the last p
2660: 61 67 65 20 6f 66 20 61 6e 20 6f 76 65 72 66 6c  age of an overfl
2670: 6f 77 20 63 68 61 69 6e 20 77 68 65 6e 0a 20 20  ow chain when.  
2680: 20 20 64 65 6c 65 74 69 6e 67 20 74 68 65 20 72    deleting the r
2690: 6f 77 20 2d 20 6a 75 73 74 20 61 64 64 20 74 68  ow - just add th
26a0: 61 74 20 70 61 67 65 20 74 6f 20 74 68 65 20 66  at page to the f
26b0: 72 65 65 6c 69 73 74 2e 3c 2f 6c 69 3e 0a 3c 6c  reelist.</li>.<l
26c0: 69 3e 44 6f 20 6e 6f 74 20 73 74 6f 72 65 20 70  i>Do not store p
26d0: 61 67 65 73 20 62 65 69 6e 67 20 64 65 6c 65 74  ages being delet
26e0: 65 64 20 69 6e 20 74 68 65 20 0a 20 20 20 20 72  ed in the .    r
26f0: 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 2e  ollback journal.
2700: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
2710: 20 72 65 61 64 20 69 6e 20 74 68 65 20 28 6d 65   read in the (me
2720: 61 6e 69 6e 67 6c 65 73 73 29 20 63 6f 6e 74 65  aningless) conte
2730: 6e 74 20 6f 66 0a 20 20 20 20 70 61 67 65 73 20  nt of.    pages 
2740: 65 78 74 72 61 63 74 65 64 20 66 72 6f 6d 20 74  extracted from t
2750: 68 65 20 66 72 65 65 6c 69 73 74 2e 3c 2f 6c 69  he freelist.</li
2760: 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 66 6c 75  >.<li>Do not flu
2770: 73 68 20 74 68 65 20 70 61 67 65 20 63 61 63 68  sh the page cach
2780: 65 20 28 61 6e 64 20 74 68 75 73 20 61 76 6f 69  e (and thus avoi
2790: 64 69 6e 67 0a 20 20 20 20 61 20 63 61 63 68 65  ding.    a cache
27a0: 20 72 65 66 69 6c 6c 29 20 75 6e 6c 65 73 73 20   refill) unless 
27b0: 61 6e 6f 74 68 65 72 20 70 72 6f 63 65 73 73 20  another process 
27c0: 63 68 61 6e 67 65 73 20 74 68 65 20 75 6e 64 65  changes the unde
27d0: 72 6c 79 69 6e 67 0a 20 20 20 20 64 61 74 61 62  rlying.    datab
27e0: 61 73 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c  ase file.</li>.<
27f0: 6c 69 3e 54 72 75 6e 63 61 74 65 20 72 61 74 68  li>Truncate rath
2800: 65 72 20 74 68 61 6e 20 64 65 6c 65 74 65 20 74  er than delete t
2810: 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72  he rollback jour
2820: 6e 61 6c 20 77 68 65 6e 20 63 6f 6d 6d 69 74 74  nal when committ
2830: 69 6e 67 0a 20 20 20 20 61 20 74 72 61 6e 73 61  ing.    a transa
2840: 63 74 69 6f 6e 20 69 6e 20 65 78 63 6c 75 73 69  ction in exclusi
2850: 76 65 20 61 63 63 65 73 73 20 6d 6f 64 65 2c 20  ve access mode, 
2860: 6f 72 20 77 68 65 6e 20 63 6f 6d 6d 69 74 74 69  or when committi
2870: 6e 67 20 74 68 65 20 54 45 4d 50 0a 20 20 20 20  ng the TEMP.    
2880: 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c  database.</li>.<
2890: 2f 75 6c 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  /ul></li>.<li>Ad
28a0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
28b0: 65 78 63 6c 75 73 69 76 65 20 61 63 63 65 73 73  exclusive access
28c0: 20 6d 6f 64 65 20 75 73 69 6e 67 0a 20 20 20 20   mode using.    
28d0: 3c 61 20 68 72 65 66 3d 22 70 72 61 67 6d 61 2e  <a href="pragma.
28e0: 68 74 6d 6c 23 70 72 61 67 6d 61 5f 6c 6f 63 6b  html#pragma_lock
28f0: 69 6e 67 5f 6d 6f 64 65 22 3e 0a 20 20 20 20 22  ing_mode">.    "
2900: 50 52 41 47 4d 41 20 6c 6f 63 6b 69 6e 67 5f 6d  PRAGMA locking_m
2910: 6f 64 65 3d 45 58 43 4c 55 53 49 56 45 22 3c 2f  ode=EXCLUSIVE"</
2920: 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20  a></li>.<li>Use 
2930: 68 65 61 70 20 73 70 61 63 65 20 69 6e 73 74 65  heap space inste
2940: 61 64 20 6f 66 20 73 74 61 63 6b 20 73 70 61 63  ad of stack spac
2950: 65 20 66 6f 72 20 6c 61 72 67 65 20 62 75 66 66  e for large buff
2960: 65 72 73 20 69 6e 20 74 68 65 0a 20 20 20 20 70  ers in the.    p
2970: 61 67 65 72 20 2d 20 75 73 65 66 75 6c 20 6f 6e  ager - useful on
2980: 20 65 6d 62 65 64 64 65 64 20 70 6c 61 74 66 6f   embedded platfo
2990: 72 6d 73 20 77 69 74 68 20 20 73 74 61 63 6b 2d  rms with  stack-
29a0: 73 70 61 63 65 0a 20 20 20 20 6c 69 6d 69 74 61  space.    limita
29b0: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
29c0: 41 64 64 20 61 20 6d 61 6b 65 66 69 6c 65 20 74  Add a makefile t
29d0: 61 72 67 65 74 20 22 73 71 6c 69 74 65 33 2e 63  arget "sqlite3.c
29e0: 22 20 74 68 61 74 20 62 75 69 6c 64 73 20 61 6e  " that builds an
29f0: 20 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 20 63 6f   amalgamation co
2a00: 6e 74 61 69 6e 69 6e 67 0a 20 20 20 20 74 68 65  ntaining.    the
2a10: 20 63 6f 72 65 20 53 51 4c 69 74 65 20 6c 69 62   core SQLite lib
2a20: 72 61 72 79 20 43 20 63 6f 64 65 20 69 6e 20 61  rary C code in a
2a30: 20 73 69 6e 67 6c 65 20 66 69 6c 65 2e 3c 2f 6c   single file.</l
2a40: 69 3e 0a 3c 6c 69 3e 47 65 74 20 74 68 65 20 6c  i>.<li>Get the l
2a50: 69 62 72 61 72 79 20 77 6f 72 6b 69 6e 67 20 63  ibrary working c
2a60: 6f 72 72 65 63 74 6c 79 20 77 68 65 6e 20 63 6f  orrectly when co
2a70: 6d 70 69 6c 65 64 20 0a 20 20 20 20 77 69 74 68  mpiled .    with
2a80: 20 47 43 43 20 6f 70 74 69 6f 6e 20 22 2d 66 73   GCC option "-fs
2a90: 74 72 69 63 74 2d 61 6c 69 61 73 69 6e 67 22 2e  trict-aliasing".
2aa0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65  </li>.<li>Remove
2ab0: 64 20 74 68 65 20 76 65 73 74 69 67 61 6c 20 53  d the vestigal S
2ac0: 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 20 65  QLITE_PROTOCOL e
2ad0: 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  rror.</li>.<li>I
2ae0: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74  mprovements to t
2af0: 65 73 74 20 63 6f 76 65 72 61 67 65 2c 20 6f 74  est coverage, ot
2b00: 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 73 20 66  her minor bugs f
2b10: 69 78 65 64 2c 0a 20 20 20 20 6d 65 6d 6f 72 79  ixed,.    memory
2b20: 20 6c 65 61 6b 73 20 70 6c 75 67 67 65 64 2c 0a   leaks plugged,.
2b30: 20 20 20 20 63 6f 64 65 20 72 65 66 61 63 74 6f      code refacto
2b40: 72 65 64 20 61 6e 64 2f 6f 72 20 72 65 63 6f 6d  red and/or recom
2b50: 6d 65 6e 74 65 64 20 69 6e 20 70 6c 61 63 65 73  mented in places
2b60: 20 66 6f 72 20 65 61 73 69 65 72 20 72 65 61 64   for easier read
2b70: 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ing.</li>.}..chn
2b80: 67 20 7b 32 30 30 37 20 46 65 62 72 75 61 72 79  g {2007 February
2b90: 20 31 33 20 28 33 2e 33 2e 31 33 29 7d 20 7b 0a   13 (3.3.13)} {.
2ba0: 3c 6c 69 3e 41 64 64 20 61 20 22 66 72 61 67 6d  <li>Add a "fragm
2bb0: 65 6e 74 61 74 69 6f 6e 22 20 6d 65 61 73 75 72  entation" measur
2bc0: 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6f 75 74  ement in the out
2bd0: 70 75 74 20 6f 66 20 73 71 6c 69 74 65 33 5f 61  put of sqlite3_a
2be0: 6e 61 6c 79 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  nalyzer.</li>.<l
2bf0: 69 3e 41 64 64 20 74 68 65 20 43 4f 4c 4c 41 54  i>Add the COLLAT
2c00: 45 20 6f 70 65 72 61 74 6f 72 20 75 73 65 64 20  E operator used 
2c10: 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 73 65  to explicitly se
2c20: 74 20 74 68 65 20 63 6f 6c 6c 61 74 69 6e 67 20  t the collating 
2c30: 73 65 71 75 65 6e 63 65 0a 75 73 65 64 20 62 79  sequence.used by
2c40: 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 20   an expression. 
2c50: 20 54 68 69 73 20 66 65 61 74 75 72 65 20 69 73   This feature is
2c60: 20 63 6f 6e 73 69 64 65 72 65 64 20 65 78 70 65   considered expe
2c70: 72 69 6d 65 6e 74 61 6c 20 70 65 6e 64 69 6e 67  rimental pending
2c80: 0a 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 73 74  .additional test
2c90: 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c  ing.</li>.<li>Al
2ca0: 6c 6f 77 20 75 70 20 74 6f 20 36 34 20 74 61 62  low up to 64 tab
2cb0: 6c 65 73 20 69 6e 20 61 20 6a 6f 69 6e 20 2d 20  les in a join - 
2cc0: 74 68 65 20 6f 6c 64 20 6c 69 6d 69 74 20 77 61  the old limit wa
2cd0: 73 20 33 32 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  s 32.</li>.<li>A
2ce0: 64 64 65 64 20 74 77 6f 20 6e 65 77 20 65 78 70  dded two new exp
2cf0: 65 72 69 6d 65 6e 74 61 6c 20 66 75 6e 63 74 69  erimental functi
2d00: 6f 6e 73 3a 0a 3c 61 20 68 72 65 66 3d 22 6c 61  ons:.<a href="la
2d10: 6e 67 5f 65 78 70 72 2e 68 74 6d 6c 23 72 61 6e  ng_expr.html#ran
2d20: 64 6f 6d 62 6c 6f 62 46 75 6e 63 22 3e 72 61 6e  domblobFunc">ran
2d30: 64 6f 6d 42 6c 6f 62 28 29 3c 2f 61 3e 20 61 6e  domBlob()</a> an
2d40: 64 0a 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f  d.<a href="lang_
2d50: 65 78 70 72 2e 68 74 6d 6c 23 68 65 78 46 75 6e  expr.html#hexFun
2d60: 63 22 3e 68 65 78 28 29 3c 2f 61 3e 2e 0a 54 68  c">hex()</a>..Th
2d70: 65 69 72 20 69 6e 74 65 6e 64 65 64 20 75 73 65  eir intended use
2d80: 20 69 73 20 74 6f 20 66 61 63 69 6c 69 74 61 74   is to facilitat
2d90: 65 20 67 65 6e 65 72 61 74 69 6e 67 20 0a 3c 61  e generating .<a
2da0: 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 65 6e   href="http://en
2db0: 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77  .wikipedia.org/w
2dc0: 69 6b 69 2f 55 55 49 44 22 3e 55 55 49 44 73 3c  iki/UUID">UUIDs<
2dd0: 2f 61 3e 2e 0a 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  /a>..</li>.<li>F
2de0: 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 68 65  ix a problem whe
2df0: 72 65 0a 3c 61 20 68 72 65 66 3d 22 70 72 61 67  re.<a href="prag
2e00: 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f 63  ma.html#pragma_c
2e10: 6f 75 6e 74 5f 63 68 61 6e 67 65 73 22 3e 50 52  ount_changes">PR
2e20: 41 47 4d 41 20 63 6f 75 6e 74 5f 63 68 61 6e 67  AGMA count_chang
2e30: 65 73 3c 2f 61 3e 20 77 61 73 0a 63 61 75 73 69  es</a> was.causi
2e40: 6e 67 20 69 6e 63 6f 72 72 65 63 74 20 72 65 73  ng incorrect res
2e50: 75 6c 74 73 20 66 6f 72 20 75 70 64 61 74 65 73  ults for updates
2e60: 20 6f 6e 20 74 61 62 6c 65 73 20 77 69 74 68 20   on tables with 
2e70: 74 72 69 67 67 65 72 73 3c 2f 6c 69 3e 0a 3c 6c  triggers</li>.<l
2e80: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
2e90: 68 65 20 4f 52 44 45 52 20 42 59 20 63 6c 61 75  he ORDER BY clau
2ea0: 73 65 20 6f 70 74 69 6d 69 7a 65 72 20 66 6f 72  se optimizer for
2eb0: 20 6a 6f 69 6e 73 20 77 68 65 72 65 20 74 68 65   joins where the
2ec0: 0a 6c 65 66 74 2d 6d 6f 73 74 20 74 61 62 6c 65  .left-most table
2ed0: 20 69 6e 20 74 68 65 20 6a 6f 69 6e 20 69 73 20   in the join is 
2ee0: 63 6f 6e 73 74 72 61 69 6e 65 64 20 62 79 20 61  constrained by a
2ef0: 20 55 4e 49 51 55 45 20 69 6e 64 65 78 2e 3c 2f   UNIQUE index.</
2f00: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20  li>.<li>Fixed a 
2f10: 62 75 67 20 69 6e 20 74 68 65 20 22 63 6f 70 79  bug in the "copy
2f20: 22 20 6d 65 74 68 6f 64 20 6f 66 20 74 68 65 20  " method of the 
2f30: 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  TCL interface.</
2f40: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65  li>.<li>Bug fixe
2f50: 73 20 69 6e 20 66 74 73 31 20 61 6e 64 20 66 74  s in fts1 and ft
2f60: 73 32 20 6d 6f 64 75 6c 65 73 2e 3c 2f 6c 69 3e  s2 modules.</li>
2f70: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20 4a  .}..chng {2007 J
2f80: 61 6e 75 61 72 79 20 32 37 20 28 33 2e 33 2e 31  anuary 27 (3.3.1
2f90: 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e  2)} {.<li>Fix an
2fa0: 6f 74 68 65 72 20 62 75 67 20 69 6e 20 74 68 65  other bug in the
2fb0: 20 49 53 20 4e 55 4c 4c 20 6f 70 74 69 6d 69 7a   IS NULL optimiz
2fc0: 61 74 69 6f 6e 20 74 68 61 74 20 77 61 73 20 61  ation that was a
2fd0: 64 64 65 64 20 69 6e 0a 76 65 72 73 69 6f 6e 20  dded in.version 
2fe0: 33 2e 33 2e 39 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  3.3.9.</li>.<li>
2ff0: 46 69 78 20 61 20 61 73 73 65 72 74 69 6f 6e 20  Fix a assertion 
3000: 66 61 75 6c 74 20 74 68 61 74 20 6f 63 63 75 72  fault that occur
3010: 72 65 64 20 6f 6e 20 64 65 65 70 6c 79 20 6e 65  red on deeply ne
3020: 73 74 65 64 20 76 69 65 77 73 2e 3c 2f 6c 69 3e  sted views.</li>
3030: 0a 3c 6c 69 3e 4c 69 6d 69 74 20 74 68 65 20 61  .<li>Limit the a
3040: 6d 6f 75 6e 74 20 6f 66 20 6f 75 74 70 75 74 20  mount of output 
3050: 74 68 61 74 0a 3c 61 20 68 72 65 66 3d 22 70 72  that.<a href="pr
3060: 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61  agma.html#pragma
3070: 5f 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b  _integrity_check
3080: 22 3e 50 52 41 47 4d 41 20 69 6e 74 65 67 72 69  ">PRAGMA integri
3090: 74 79 5f 63 68 65 63 6b 3c 2f 61 3e 0a 67 65 6e  ty_check</a>.gen
30a0: 65 72 61 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  erates.</li>.<li
30b0: 3e 4d 69 6e 6f 72 20 73 79 6e 74 61 63 74 69 63  >Minor syntactic
30c0: 20 63 68 61 6e 67 65 73 20 74 6f 20 73 75 70 70   changes to supp
30d0: 6f 72 74 20 61 20 77 69 64 65 72 20 76 61 72 69  ort a wider vari
30e0: 65 74 79 20 6f 66 20 63 6f 6d 70 69 6c 65 72 73  ety of compilers
30f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
3100: 32 30 30 37 20 4a 61 6e 75 61 72 79 20 32 32 20  2007 January 22 
3110: 28 33 2e 33 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e  (3.3.11)} {.<li>
3120: 46 69 78 20 61 6e 6f 74 68 65 72 20 62 75 67 20  Fix another bug 
3130: 69 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74  in the implement
3140: 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 77  ation of the new
3150: 20 0a 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33   .<a href="capi3
3160: 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33  ref.html#sqlite3
3170: 5f 70 72 65 70 61 72 65 5f 76 32 22 3e 73 71 6c  _prepare_v2">sql
3180: 69 74 65 33 5f 70 72 65 70 61 72 65 5f 76 32 28  ite3_prepare_v2(
3190: 29 3c 2f 61 3e 20 41 50 49 2e 0a 57 65 27 6c 6c  )</a> API..We'll
31a0: 20 67 65 74 20 69 74 20 72 69 67 68 74 20 65 76   get it right ev
31b0: 65 6e 74 75 61 6c 6c 79 2e 2e 2e 3c 2f 6c 69 3e  entually...</li>
31c0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
31d0: 6e 20 74 68 65 20 49 53 20 4e 55 4c 4c 20 6f 70  n the IS NULL op
31e0: 74 69 6d 69 7a 61 74 69 6f 6e 20 74 68 61 74 20  timization that 
31f0: 77 61 73 20 61 64 64 65 64 20 69 6e 20 76 65 72  was added in ver
3200: 73 69 6f 6e 20 33 2e 33 2e 39 20 2d 0a 74 68 65  sion 3.3.9 -.the
3210: 20 62 75 67 20 77 61 73 20 63 61 75 73 69 6e 67   bug was causing
3220: 20 69 6e 63 6f 72 72 65 63 74 20 72 65 73 75 6c   incorrect resul
3230: 74 73 20 6f 6e 20 63 65 72 74 61 69 6e 20 4c 45  ts on certain LE
3240: 46 54 20 4a 4f 49 4e 73 20 74 68 61 74 20 69 6e  FT JOINs that in
3250: 63 6c 75 64 65 64 0a 69 6e 20 74 68 65 20 57 48  cluded.in the WH
3260: 45 52 45 20 63 6c 61 75 73 65 20 61 6e 20 49 53  ERE clause an IS
3270: 20 4e 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e 74   NULL constraint
3280: 20 66 6f 72 20 74 68 65 20 72 69 67 68 74 20 74   for the right t
3290: 61 62 6c 65 20 6f 66 20 74 68 65 0a 4c 45 46 54  able of the.LEFT
32a0: 20 4a 4f 49 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   JOIN.</li>.<li>
32b0: 4d 61 6b 65 20 41 72 65 46 69 6c 65 41 70 69 73  Make AreFileApis
32c0: 41 4e 53 49 28 29 20 61 20 6e 6f 2d 6f 70 20 6d  ANSI() a no-op m
32d0: 61 63 72 6f 20 69 6e 20 77 69 6e 43 45 20 73 69  acro in winCE si
32e0: 6e 63 65 20 77 69 6e 43 45 20 64 6f 65 73 20 6e  nce winCE does n
32f0: 6f 74 0a 73 75 70 70 6f 72 74 20 74 68 69 73 20  ot.support this 
3300: 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d  function.</li>.}
3310: 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20 4a 61 6e  ..chng {2007 Jan
3320: 75 61 72 79 20 39 20 28 33 2e 33 2e 31 30 29 7d  uary 9 (3.3.10)}
3330: 20 7b 0a 3c 6c 69 3e 46 69 78 20 62 75 67 73 20   {.<li>Fix bugs 
3340: 69 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74  in the implement
3350: 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 77  ation of the new
3360: 20 0a 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33   .<a href="capi3
3370: 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33  ref.html#sqlite3
3380: 5f 70 72 65 70 61 72 65 5f 76 32 22 3e 73 71 6c  _prepare_v2">sql
3390: 69 74 65 33 5f 70 72 65 70 61 72 65 5f 76 32 28  ite3_prepare_v2(
33a0: 29 3c 2f 61 3e 20 41 50 49 0a 74 68 61 74 20 63  )</a> API.that c
33b0: 61 6e 20 6c 65 61 64 20 74 6f 20 73 65 67 66 61  an lead to segfa
33c0: 75 6c 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ults.</li>.<li>F
33d0: 69 78 20 31 2d 73 65 63 6f 6e 64 20 72 6f 75 6e  ix 1-second roun
33e0: 64 2d 6f 66 66 20 65 72 72 6f 72 73 20 69 6e 20  d-off errors in 
33f0: 74 68 65 20 0a 3c 61 20 68 72 65 66 3d 22 68 74  the .<a href="ht
3400: 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e  tp://www.sqlite.
3410: 6f 72 67 2f 63 76 73 74 72 61 63 2f 77 69 6b 69  org/cvstrac/wiki
3420: 3f 70 3d 44 61 74 65 41 6e 64 54 69 6d 65 46 75  ?p=DateAndTimeFu
3430: 6e 63 74 69 6f 6e 73 22 3e 0a 73 74 72 66 74 69  nctions">.strfti
3440: 6d 65 28 29 3c 2f 61 3e 20 66 75 6e 63 74 69 6f  me()</a> functio
3450: 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 6e 68 61 6e  n</li>.<li>Enhan
3460: 63 65 20 74 68 65 20 77 69 6e 64 6f 77 73 20 4f  ce the windows O
3470: 53 20 6c 61 79 65 72 20 74 6f 20 70 72 6f 76 69  S layer to provi
3480: 64 65 20 64 65 74 61 69 6c 65 64 20 65 72 72 6f  de detailed erro
3490: 72 20 63 6f 64 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  r codes</li>.<li
34a0: 3e 57 6f 72 6b 20 61 72 6f 75 6e 64 20 61 20 77  >Work around a w
34b0: 69 6e 32 6b 20 70 72 6f 62 6c 65 6d 20 73 6f 20  in2k problem so 
34c0: 74 68 61 74 20 53 51 4c 69 74 65 20 63 61 6e 20  that SQLite can 
34d0: 75 73 65 20 73 69 6e 67 6c 65 2d 63 68 61 72 61  use single-chara
34e0: 63 74 65 72 0a 64 61 74 61 62 61 73 65 20 66 69  cter.database fi
34f0: 6c 65 20 6e 61 6d 65 73 3c 2f 6c 69 3e 0a 3c 6c  le names</li>.<l
3500: 69 3e 54 68 65 0a 3c 61 20 68 72 65 66 3d 22 70  i>The.<a href="p
3510: 72 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d  ragma.html#pragm
3520: 61 5f 75 73 65 72 5f 76 65 72 73 69 6f 6e 22 3e  a_user_version">
3530: 75 73 65 72 5f 76 65 72 73 69 6f 6e 3c 2f 61 3e  user_version</a>
3540: 20 61 6e 64 0a 3c 61 20 68 72 65 66 3d 22 70 72   and.<a href="pr
3550: 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61  agma.html#pragma
3560: 5f 73 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 22  _schema_version"
3570: 3e 73 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 3c  >schema_version<
3580: 2f 61 3e 20 70 72 61 67 6d 61 73 20 0a 63 6f 72  /a> pragmas .cor
3590: 72 65 63 74 6c 79 20 73 65 74 20 74 68 65 69 72  rectly set their
35a0: 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e   column names in
35b0: 20 74 68 65 20 72 65 73 75 6c 74 20 73 65 74 3c   the result set<
35c0: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  /li>.<li>Documen
35d0: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
35e0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
35f0: 37 20 4a 61 6e 75 61 72 79 20 34 20 28 33 2e 33  7 January 4 (3.3
3600: 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 62  .9)} {.<li>Fix b
3610: 75 67 73 20 69 6e 20 70 61 67 65 72 2e 63 20 74  ugs in pager.c t
3620: 68 61 74 20 63 6f 75 6c 64 20 6c 65 61 64 20 74  hat could lead t
3630: 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  o database corru
3640: 70 74 69 6f 6e 20 69 66 20 74 77 6f 0a 70 72 6f  ption if two.pro
3650: 63 65 73 73 65 73 20 62 6f 74 68 20 74 72 79 20  cesses both try 
3660: 74 6f 20 72 65 63 6f 76 65 72 20 61 20 68 6f 74  to recover a hot
3670: 20 6a 6f 75 72 6e 61 6c 20 61 74 20 74 68 65 20   journal at the 
3680: 73 61 6d 65 20 69 6e 73 74 61 6e 74 3c 2f 6c 69  same instant</li
3690: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
36a0: 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33 72 65  <a href="capi3re
36b0: 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f 70  f.html#sqlite3_p
36c0: 72 65 70 61 72 65 5f 76 32 22 3e 73 71 6c 69 74  repare_v2">sqlit
36d0: 65 33 5f 70 72 65 70 61 72 65 5f 76 32 28 29 3c  e3_prepare_v2()<
36e0: 2f 61 3e 0a 41 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c  /a>.API.</li>.<l
36f0: 69 3e 46 69 78 65 64 20 74 68 65 20 22 2e 64 75  i>Fixed the ".du
3700: 6d 70 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74  mp" command in t
3710: 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20  he command-line 
3720: 73 68 65 6c 6c 20 74 6f 20 73 68 6f 77 0a 69 6e  shell to show.in
3730: 64 69 63 65 73 2c 20 74 72 69 67 67 65 72 73 20  dices, triggers 
3740: 61 6e 64 20 76 69 65 77 73 20 61 67 61 69 6e 2e  and views again.
3750: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
3760: 20 74 68 65 20 74 61 62 6c 65 5f 69 6e 66 6f 20   the table_info 
3770: 70 72 61 67 6d 61 20 73 6f 20 74 68 61 74 20 69  pragma so that i
3780: 74 20 72 65 74 75 72 6e 73 20 4e 55 4c 4c 20 66  t returns NULL f
3790: 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 0a 76  or the default.v
37a0: 61 6c 75 65 20 69 66 20 74 68 65 72 65 20 69 73  alue if there is
37b0: 20 6e 6f 20 64 65 66 61 75 6c 74 20 76 61 6c 75   no default valu
37c0: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f  e</li>.<li>Suppo
37d0: 72 74 20 66 6f 72 20 6e 6f 6e 2d 41 53 43 49 49  rt for non-ASCII
37e0: 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 77   characters in w
37f0: 69 6e 39 35 20 66 69 6c 65 6e 61 6d 65 73 3c 2f  in95 filenames</
3800: 6c 69 3e 0a 3c 6c 69 3e 51 75 65 72 79 20 6f 70  li>.<li>Query op
3810: 74 69 6d 69 7a 65 72 20 65 6e 68 61 6e 63 65 6d  timizer enhancem
3820: 65 6e 74 73 3a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 4f  ents:.<ul>.<li>O
3830: 70 74 69 6d 69 7a 65 72 20 64 6f 65 73 20 61 20  ptimizer does a 
3840: 62 65 74 74 65 72 20 6a 6f 62 20 6f 66 20 75 73  better job of us
3850: 69 6e 67 20 69 6e 64 69 63 65 73 20 74 6f 20 73  ing indices to s
3860: 61 74 69 73 66 79 20 4f 52 44 45 52 20 42 59 0a  atisfy ORDER BY.
3870: 63 6c 61 75 73 65 73 20 74 68 61 74 20 73 6f 72  clauses that sor
3880: 74 20 6f 6e 20 74 68 65 20 69 6e 74 65 67 65 72  t on the integer
3890: 20 70 72 69 6d 61 72 79 20 6b 65 79 3c 2f 6c 69   primary key</li
38a0: 3e 0a 3c 6c 69 3e 55 73 65 20 61 6e 20 69 6e 64  >.<li>Use an ind
38b0: 65 78 20 74 6f 20 73 61 74 69 73 66 79 20 61 6e  ex to satisfy an
38c0: 20 49 53 20 4e 55 4c 4c 20 6f 70 65 72 61 74 6f   IS NULL operato
38d0: 72 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63  r in the WHERE c
38e0: 6c 61 75 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  lause</li>.<li>F
38f0: 69 78 20 61 20 62 75 67 20 74 68 61 74 20 77 61  ix a bug that wa
3900: 73 20 63 61 75 73 69 6e 67 20 74 68 65 20 6f 70  s causing the op
3910: 74 69 6d 69 7a 65 72 20 74 6f 20 6d 69 73 73 20  timizer to miss 
3920: 61 6e 20 4f 52 20 6f 70 74 69 6d 69 7a 61 74 69  an OR optimizati
3930: 6f 6e 0a 6f 70 70 6f 72 74 75 6e 69 74 79 3c 2f  on.opportunity</
3940: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74 69  li>.<li>The opti
3950: 6d 69 7a 65 72 20 68 61 73 20 6d 6f 72 65 20 66  mizer has more f
3960: 72 65 65 64 6f 6d 20 74 6f 20 72 65 6f 72 64 65  reedom to reorde
3970: 72 20 74 61 62 6c 65 73 20 69 6e 20 74 68 65 20  r tables in the 
3980: 46 52 4f 4d 20 63 6c 61 75 73 65 0a 65 76 65 6e  FROM clause.even
3990: 20 69 6e 20 74 68 65 72 65 20 61 72 65 20 4c 45   in there are LE
39a0: 46 54 20 6a 6f 69 6e 73 2e 3c 2f 6c 69 3e 0a 3c  FT joins.</li>.<
39b0: 2f 75 6c 3e 0a 3c 6c 69 3e 45 78 74 65 6e 73 69  /ul>.<li>Extensi
39c0: 6f 6e 20 6c 6f 61 64 69 6e 67 20 73 75 70 70 6f  on loading suppo
39d0: 72 74 65 64 20 61 64 64 65 64 20 74 6f 20 77 69  rted added to wi
39e0: 6e 43 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  nCE</li>.<li>All
39f0: 6f 77 20 63 6f 6e 73 74 72 61 69 6e 74 20 6e 61  ow constraint na
3a00: 6d 65 73 20 6f 6e 20 74 68 65 20 44 45 46 41 55  mes on the DEFAU
3a10: 4c 54 20 63 6c 61 75 73 65 20 69 6e 20 61 20 74  LT clause in a t
3a20: 61 62 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 3c  able definition<
3a30: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
3a40: 68 65 20 22 2e 62 61 69 6c 22 20 63 6f 6d 6d 61  he ".bail" comma
3a50: 6e 64 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e  nd to the comman
3a60: 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 3c 2f 6c 69  d-line shell</li
3a70: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 43 53 56 20 28  >.<li>Make CSV (
3a80: 63 6f 6d 6d 61 20 73 65 70 61 72 61 74 65 20 76  comma separate v
3a90: 61 6c 75 65 29 20 6f 75 74 70 75 74 20 66 72 6f  alue) output fro
3aa0: 6d 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69  m the command-li
3ab0: 6e 65 20 73 68 65 6c 6c 0a 6d 6f 72 65 20 63 6c  ne shell.more cl
3ac0: 6f 73 65 6c 79 20 61 6c 69 67 6e 65 64 20 74 6f  osely aligned to
3ad0: 20 61 63 63 65 70 74 65 64 20 70 72 61 63 74 69   accepted practi
3ae0: 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65  ce</li>.<li>Expe
3af0: 72 69 6d 65 6e 74 61 6c 20 46 54 53 32 20 6d 6f  rimental FTS2 mo
3b00: 64 75 6c 65 20 61 64 64 65 64 3c 2f 6c 69 3e 0a  dule added</li>.
3b10: 3c 6c 69 3e 55 73 65 20 73 71 6c 69 74 65 33 5f  <li>Use sqlite3_
3b20: 6d 70 72 69 6e 74 66 28 29 20 69 6e 73 74 65 61  mprintf() instea
3b30: 64 20 6f 66 20 73 74 72 64 75 70 28 29 20 74 6f  d of strdup() to
3b40: 20 61 76 6f 69 64 20 6c 69 62 63 20 64 65 70 65   avoid libc depe
3b50: 6e 64 65 6e 63 69 65 73 3c 2f 6c 69 3e 0a 3c 6c  ndencies</li>.<l
3b60: 69 3e 56 41 43 55 55 4d 20 75 73 65 73 20 61 20  i>VACUUM uses a 
3b70: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 69  temporary file i
3b80: 6e 20 74 68 65 20 6f 66 66 69 63 69 61 6c 20 54  n the official T
3b90: 45 4d 50 20 66 6f 6c 64 65 72 2c 20 6e 6f 74 20  EMP folder, not 
3ba0: 69 6e 20 74 68 65 0a 73 61 6d 65 20 64 69 72 65  in the.same dire
3bb0: 63 74 6f 72 79 20 61 73 20 74 68 65 20 6f 72 69  ctory as the ori
3bc0: 67 69 6e 61 6c 20 64 61 74 61 62 61 73 65 3c 2f  ginal database</
3bd0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 66  li>.<li>The pref
3be0: 69 78 20 6f 6e 20 74 65 6d 70 6f 72 61 72 79 20  ix on temporary 
3bf0: 66 69 6c 65 6e 61 6d 65 73 20 6f 6e 20 77 69 6e  filenames on win
3c00: 64 6f 77 73 20 69 73 20 63 68 61 6e 67 65 64 20  dows is changed 
3c10: 66 72 6f 6d 20 22 73 71 6c 69 74 65 22 0a 74 6f  from "sqlite".to
3c20: 20 22 65 74 69 6c 71 73 22 2e 3c 2f 6c 69 3e 0a   "etilqs".</li>.
3c30: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20 4f 63  }..chng {2006 Oc
3c40: 74 6f 62 65 72 20 39 20 28 33 2e 33 2e 38 29 7d  tober 9 (3.3.8)}
3c50: 20 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66   {.<li>Support f
3c60: 6f 72 20 66 75 6c 6c 20 74 65 78 74 20 73 65 61  or full text sea
3c70: 72 63 68 20 75 73 69 6e 67 20 74 68 65 0a 3c 61  rch using the.<a
3c80: 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77   href="http://ww
3c90: 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73  w.sqlite.org/cvs
3ca0: 74 72 61 63 2f 77 69 6b 69 3f 70 3d 46 75 6c 6c  trac/wiki?p=Full
3cb0: 54 65 78 74 49 6e 64 65 78 22 3e 46 54 53 31 20  TextIndex">FTS1 
3cc0: 6d 6f 64 75 6c 65 3c 2f 61 3e 0a 28 62 65 74 61  module</a>.(beta
3cd0: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  )</li>.<li>Added
3ce0: 20 4f 53 2d 58 20 6c 6f 63 6b 69 6e 67 20 70 61   OS-X locking pa
3cf0: 74 63 68 65 73 20 28 62 65 74 61 20 2d 20 64 69  tches (beta - di
3d00: 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c  sabled by defaul
3d10: 74 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 74 72  t)</li>.<li>Intr
3d20: 6f 64 75 63 65 20 65 78 74 65 6e 64 65 64 20 65  oduce extended e
3d30: 72 72 6f 72 20 63 6f 64 65 73 20 61 6e 64 20 61  rror codes and a
3d40: 64 64 20 65 72 72 6f 72 20 63 6f 64 65 73 20 66  dd error codes f
3d50: 6f 72 20 76 61 72 69 6f 75 73 0a 6b 69 6e 64 73  or various.kinds
3d60: 20 6f 66 20 49 2f 4f 20 65 72 72 6f 72 73 2e 3c   of I/O errors.<
3d70: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
3d80: 75 70 70 6f 72 74 20 66 6f 72 20 49 46 20 45 58  upport for IF EX
3d90: 49 53 54 53 20 6f 6e 20 43 52 45 41 54 45 2f 44  ISTS on CREATE/D
3da0: 52 4f 50 20 54 52 49 47 47 45 52 2f 56 49 45 57  ROP TRIGGER/VIEW
3db0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68  </li>.<li>Fix th
3dc0: 65 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73  e regression tes
3dd0: 74 20 73 75 69 74 65 20 73 6f 20 74 68 61 74 20  t suite so that 
3de0: 69 74 20 77 6f 72 6b 73 20 77 69 74 68 20 54 63  it works with Tc
3df0: 6c 38 2e 35 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 6e  l8.5</li>.<li>En
3e00: 68 61 6e 63 65 20 73 71 6c 69 74 65 33 5f 73 65  hance sqlite3_se
3e10: 74 5f 61 75 74 68 6f 72 69 7a 65 72 28 29 20 74  t_authorizer() t
3e20: 6f 20 70 72 6f 76 69 64 65 20 6e 6f 74 69 66 69  o provide notifi
3e30: 63 61 74 69 6f 6e 20 6f 66 20 63 61 6c 6c 73 20  cation of calls 
3e40: 74 6f 0a 20 20 20 20 53 51 4c 20 66 75 6e 63 74  to.    SQL funct
3e50: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ions.</li>.<li>A
3e60: 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e 74 61  dded experimenta
3e70: 6c 20 41 50 49 3a 20 20 73 71 6c 69 74 65 33 5f  l API:  sqlite3_
3e80: 61 75 74 6f 5f 65 78 74 65 6e 73 69 6f 6e 28 29  auto_extension()
3e90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75  </li>.<li>Variou
3ea0: 73 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65  s minor bug fixe
3eb0: 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  s</li>.}..chng {
3ec0: 32 30 30 36 20 41 75 67 75 73 74 20 31 32 20 28  2006 August 12 (
3ed0: 33 2e 33 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64  3.3.7)} {.<li>Ad
3ee0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 0a  ded support for.
3ef0: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
3f00: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63  www.sqlite.org/c
3f10: 76 73 74 72 61 63 2f 77 69 6b 69 3f 70 3d 56 69  vstrac/wiki?p=Vi
3f20: 72 74 75 61 6c 54 61 62 6c 65 73 22 3e 76 69 72  rtualTables">vir
3f30: 74 75 61 6c 20 74 61 62 6c 65 73 3c 2f 61 3e 0a  tual tables</a>.
3f40: 28 62 65 74 61 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  (beta)</li>.<li>
3f50: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
3f60: 72 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70  r .<a href="http
3f70: 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72  ://www.sqlite.or
3f80: 67 2f 63 76 73 74 72 61 63 2f 77 69 6b 69 3f 70  g/cvstrac/wiki?p
3f90: 3d 4c 6f 61 64 61 62 6c 65 45 78 74 65 6e 73 69  =LoadableExtensi
3fa0: 6f 6e 73 22 3e 0a 64 79 6e 61 6d 69 63 61 6c 6c  ons">.dynamicall
3fb0: 79 20 6c 6f 61 64 65 64 20 65 78 74 65 6e 73 69  y loaded extensi
3fc0: 6f 6e 73 3c 2f 61 3e 20 28 62 65 74 61 29 3c 2f  ons</a> (beta)</
3fd0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 0a 3c 61 20  li>.<li>The .<a 
3fe0: 68 72 65 66 3d 22 63 61 70 69 33 72 65 66 2e 68  href="capi3ref.h
3ff0: 74 6d 6c 23 73 71 6c 69 74 65 33 5f 69 6e 74 65  tml#sqlite3_inte
4000: 72 72 75 70 74 22 3e 73 71 6c 69 74 65 33 5f 69  rrupt">sqlite3_i
4010: 6e 74 65 72 72 75 70 74 28 29 3c 2f 61 3e 0a 72  nterrupt()</a>.r
4020: 6f 75 74 69 6e 65 20 63 61 6e 20 62 65 20 63 61  outine can be ca
4030: 6c 6c 65 64 20 66 6f 72 20 61 20 64 69 66 66 65  lled for a diffe
4040: 72 65 6e 74 20 74 68 72 65 61 64 3c 2f 6c 69 3e  rent thread</li>
4050: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c  .<li>Added the <
4060: 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 65 78 70  a href="lang_exp
4070: 72 2e 68 74 6d 6c 23 6d 61 74 63 68 22 3e 4d 41  r.html#match">MA
4080: 54 43 48 3c 2f 61 3e 20 6f 70 65 72 61 74 6f 72  TCH</a> operator
4090: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64  .</li>.<li>The d
40a0: 65 66 61 75 6c 74 20 66 69 6c 65 20 66 6f 72 6d  efault file form
40b0: 61 74 20 69 73 20 6e 6f 77 20 31 2e 20 20 0a 7d  at is now 1.  .}
40c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20 4a 75 6e  ..chng {2006 Jun
40d0: 65 20 36 20 28 33 2e 33 2e 36 29 7d 20 7b 0a 3c  e 6 (3.3.6)} {.<
40e0: 6c 69 3e 50 6c 61 79 73 20 62 65 74 74 65 72 20  li>Plays better 
40f0: 77 69 74 68 20 76 69 72 75 73 20 73 63 61 6e 6e  with virus scann
4100: 65 72 73 20 6f 6e 20 77 69 6e 64 6f 77 73 3c 2f  ers on windows</
4110: 6c 69 3e 0a 3c 6c 69 3e 46 61 73 74 65 72 20 3a  li>.<li>Faster :
4120: 6d 65 6d 6f 72 79 3a 20 64 61 74 61 62 61 73 65  memory: database
4130: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  s</li>.<li>Fix a
4140: 6e 20 6f 62 73 63 75 72 65 20 73 65 67 66 61 75  n obscure segfau
4150: 6c 74 20 69 6e 20 55 54 46 2d 38 20 74 6f 20 55  lt in UTF-8 to U
4160: 54 46 2d 31 36 20 63 6f 6e 76 65 72 73 69 6f 6e  TF-16 conversion
4170: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
4180: 20 64 72 69 76 65 72 20 66 6f 72 20 4f 53 2f 32   driver for OS/2
4190: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63  </li>.<li>Correc
41a0: 74 20 63 6f 6c 75 6d 6e 20 6d 65 74 61 2d 69 6e  t column meta-in
41b0: 66 6f 72 6d 61 74 69 6f 6e 20 72 65 74 75 72 6e  formation return
41c0: 65 64 20 66 6f 72 20 61 67 67 72 65 67 61 74 65  ed for aggregate
41d0: 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 3c 6c   queries</li>.<l
41e0: 69 3e 45 6e 68 61 6e 63 65 64 20 6f 75 74 70 75  i>Enhanced outpu
41f0: 74 20 66 72 6f 6d 20 45 58 50 4c 41 49 4e 20 51  t from EXPLAIN Q
4200: 55 45 52 59 20 50 4c 41 4e 3c 2f 6c 69 3e 0a 3c  UERY PLAN</li>.<
4210: 6c 69 3e 4c 49 4d 49 54 20 30 20 6e 6f 77 20 77  li>LIMIT 0 now w
4220: 6f 72 6b 73 20 6f 6e 20 73 75 62 71 75 65 72 69  orks on subqueri
4230: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  es</li>.<li>Bug 
4240: 66 69 78 65 73 20 61 6e 64 20 70 65 72 66 6f 72  fixes and perfor
4250: 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e  mance enhancemen
4260: 74 73 20 69 6e 20 74 68 65 20 71 75 65 72 79 20  ts in the query 
4270: 6f 70 74 69 6d 69 7a 65 72 3c 2f 6c 69 3e 0a 3c  optimizer</li>.<
4280: 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61 6e  li>Correctly han
4290: 64 6c 65 20 4e 55 4c 4c 20 66 69 6c 65 6e 61 6d  dle NULL filenam
42a0: 65 73 20 69 6e 20 41 54 54 41 43 48 20 61 6e 64  es in ATTACH and
42b0: 20 44 45 54 41 43 48 3c 2f 6c 69 3e 0a 3c 6c 69   DETACH</li>.<li
42c0: 3e 49 6e 70 72 6f 76 65 64 20 73 79 6e 74 61 78  >Inproved syntax
42d0: 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20   error messages 
42e0: 69 6e 20 74 68 65 20 70 61 72 73 65 72 3c 2f 6c  in the parser</l
42f0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 65 20  i>.<li>Fix type 
4300: 63 6f 65 72 63 69 6f 6e 20 72 75 6c 65 73 20 66  coercion rules f
4310: 6f 72 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74  or the IN operat
4320: 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  or</li>.}..chng 
4330: 7b 32 30 30 36 20 41 70 72 69 6c 20 35 20 28 33  {2006 April 5 (3
4340: 2e 33 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43 48 45  .3.5)} {.<li>CHE
4350: 43 4b 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 75  CK constraints u
4360: 73 65 20 63 6f 6e 66 6c 69 63 74 20 72 65 73 6f  se conflict reso
4370: 6c 75 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d  lution algorithm
4380: 73 20 63 6f 72 72 65 63 74 6c 79 2e 3c 2f 6c 69  s correctly.</li
4390: 3e 0a 3c 6c 69 3e 54 68 65 20 53 55 4d 28 29 20  >.<li>The SUM() 
43a0: 66 75 6e 63 74 69 6f 6e 20 74 68 72 6f 77 73 20  function throws 
43b0: 61 6e 20 65 72 72 6f 72 20 6f 6e 20 69 6e 74 65  an error on inte
43c0: 67 65 72 20 6f 76 65 72 66 6c 6f 77 2e 3c 2f 6c  ger overflow.</l
43d0: 69 3e 0a 3c 6c 69 3e 43 68 6f 6f 73 65 20 74 68  i>.<li>Choose th
43e0: 65 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69  e column names i
43f0: 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 71 75 65  n a compound que
4400: 72 79 20 66 72 6f 6d 20 74 68 65 20 6c 65 66 74  ry from the left
4410: 2d 6d 6f 73 74 20 53 45 4c 45 43 54 0a 20 20 20  -most SELECT.   
4420: 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20   instead of the 
4430: 72 69 67 68 74 2d 6d 6f 73 74 2e 3c 2f 6c 69 3e  right-most.</li>
4440: 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33  .<li>The sqlite3
4450: 5f 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f  _create_collatio
4460: 6e 28 29 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20  n() function.   
4470: 20 68 6f 6e 6f 72 73 20 74 68 65 20 53 51 4c 49   honors the SQLI
4480: 54 45 5f 55 54 46 31 36 5f 41 4c 49 47 4e 45 44  TE_UTF16_ALIGNED
4490: 20 66 6c 61 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   flag.</li>.<li>
44a0: 53 51 4c 49 54 45 5f 53 45 43 55 52 45 5f 44 45  SQLITE_SECURE_DE
44b0: 4c 45 54 45 20 63 6f 6d 70 69 6c 65 2d 74 69 6d  LETE compile-tim
44c0: 65 20 6f 70 74 69 6f 6e 20 63 61 75 73 65 73 20  e option causes 
44d0: 64 65 6c 65 74 65 73 20 74 6f 20 6f 76 65 72 77  deletes to overw
44e0: 72 69 74 65 0a 20 20 20 20 6f 6c 64 20 64 61 74  rite.    old dat
44f0: 61 20 77 69 74 68 20 7a 65 72 6f 73 2e 3c 2f 6c  a with zeros.</l
4500: 69 3e 0a 3c 6c 69 3e 44 65 74 65 63 74 20 69 6e  i>.<li>Detect in
4510: 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 69  teger overflow i
4520: 6e 20 61 62 73 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c  n abs().</li>.<l
4530: 69 3e 54 68 65 20 72 61 6e 64 6f 6d 28 29 20 66  i>The random() f
4540: 75 6e 63 74 69 6f 6e 20 70 72 6f 76 69 64 65 73  unction provides
4550: 20 36 34 20 62 69 74 73 20 6f 66 20 72 61 6e 64   64 bits of rand
4560: 6f 6d 6e 65 73 73 20 69 6e 73 74 65 61 64 20 6f  omness instead o
4570: 66 0a 20 20 20 20 6f 6e 6c 79 20 33 32 20 62 69  f.    only 32 bi
4580: 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 72  ts.</li>.<li>Par
4590: 73 65 72 20 64 65 74 65 63 74 73 20 61 6e 64 20  ser detects and 
45a0: 72 65 70 6f 72 74 73 20 61 75 74 6f 6d 61 74 6f  reports automato
45b0: 6e 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77  n stack overflow
45c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
45d0: 65 20 74 68 65 20 72 6f 75 6e 64 28 29 20 66 75  e the round() fu
45e0: 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e  nction to return
45f0: 20 52 45 41 4c 20 69 6e 73 74 65 61 64 20 6f 66   REAL instead of
4600: 20 54 45 58 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   TEXT.</li>.<li>
4610: 41 6c 6c 6f 77 20 57 48 45 52 45 20 63 6c 61 75  Allow WHERE clau
4620: 73 65 20 74 65 72 6d 73 20 6f 6e 20 74 68 65 20  se terms on the 
4630: 6c 65 66 74 20 74 61 62 6c 65 20 6f 66 20 61 20  left table of a 
4640: 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 20  LEFT OUTER JOIN 
4650: 74 6f 0a 20 20 20 20 63 6f 6e 74 61 69 6e 20 61  to.    contain a
4660: 67 67 72 65 67 61 74 65 20 73 75 62 71 75 65 72  ggregate subquer
4670: 69 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6b  ies.</li>.<li>Sk
4680: 69 70 20 6f 76 65 72 20 6c 65 61 64 69 6e 67 20  ip over leading 
4690: 73 70 61 63 65 73 20 69 6e 20 74 65 78 74 20 74  spaces in text t
46a0: 6f 20 6e 75 6d 65 72 69 63 20 63 6f 6e 76 65 72  o numeric conver
46b0: 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  sions.</li>.<li>
46c0: 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75  Various minor bu
46d0: 67 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74  g and documentat
46e0: 69 6f 6e 20 74 79 70 6f 20 66 69 78 65 73 20 61  ion typo fixes a
46f0: 6e 64 0a 20 20 20 20 70 65 72 66 6f 72 6d 61 6e  nd.    performan
4700: 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 2e  ce enhancements.
4710: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4720: 30 30 36 20 46 65 62 72 75 61 72 79 20 31 31 20  006 February 11 
4730: 28 33 2e 33 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46  (3.3.4)} {.<li>F
4740: 69 78 20 61 20 62 6c 75 6e 64 65 72 20 69 6e 20  ix a blunder in 
4750: 74 68 65 20 55 6e 69 78 20 6d 75 74 65 78 20 69  the Unix mutex i
4760: 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 74 68  mplementation th
4770: 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 0a 64  at can lead to.d
4780: 65 61 64 6c 6f 63 6b 20 6f 6e 20 6d 75 6c 74 69  eadlock on multi
4790: 74 68 72 65 61 64 65 64 20 73 79 73 74 65 6d 73  threaded systems
47a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
47b0: 6e 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f 62  n alignment prob
47c0: 6c 65 6d 20 6f 6e 20 36 34 2d 62 69 74 20 6d 61  lem on 64-bit ma
47d0: 63 68 69 6e 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  chines</li>.<li>
47e0: 41 64 64 65 64 20 74 68 65 20 66 75 6c 6c 66 73  Added the fullfs
47f0: 79 6e 63 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e  ync pragma.</li>
4800: 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 70 74 69  .<li>Fix an opti
4810: 6d 69 7a 65 72 20 62 75 67 20 74 68 61 74 20 63  mizer bug that c
4820: 6f 75 6c 64 20 68 61 76 65 20 63 61 75 73 65 64  ould have caused
4830: 20 73 6f 6d 65 20 75 6e 75 73 75 61 6c 20 4c 45   some unusual LE
4840: 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73 0a 74  FT OUTER JOINs.t
4850: 6f 20 67 69 76 65 20 69 6e 63 6f 72 72 65 63 74  o give incorrect
4860: 20 72 65 73 75 6c 74 73 2e 3c 2f 6c 69 3e 0a 3c   results.</li>.<
4870: 6c 69 3e 54 68 65 20 53 55 4d 20 66 75 6e 63 74  li>The SUM funct
4880: 69 6f 6e 20 64 65 74 65 63 74 73 20 69 6e 74 65  ion detects inte
4890: 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 61 6e 64  ger overflow and
48a0: 20 63 6f 6e 76 65 72 74 73 20 74 6f 20 61 63 63   converts to acc
48b0: 75 6d 75 6c 61 74 69 6e 67 0a 61 6e 20 61 70 70  umulating.an app
48c0: 72 6f 78 69 6d 61 74 65 20 72 65 73 75 6c 74 20  roximate result 
48d0: 75 73 69 6e 67 20 66 6c 6f 61 74 69 6e 67 20 70  using floating p
48e0: 6f 69 6e 74 20 6e 75 6d 62 65 72 73 3c 2f 6c 69  oint numbers</li
48f0: 3e 0a 3c 6c 69 3e 48 6f 73 74 20 70 61 72 61 6d  >.<li>Host param
4900: 65 74 65 72 20 6e 61 6d 65 73 20 63 61 6e 20 62  eter names can b
4910: 65 67 69 6e 20 77 69 74 68 20 27 40 27 20 66 6f  egin with '@' fo
4920: 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20  r compatibility 
4930: 77 69 74 68 20 53 51 4c 20 53 65 72 76 65 72 2e  with SQL Server.
4940: 0a 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72  .</li>.<li>Other
4950: 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 62   miscellaneous b
4960: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
4970: 0a 63 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75  .chng {2006 Janu
4980: 61 72 79 20 33 31 20 28 33 2e 33 2e 33 29 7d 20  ary 31 (3.3.3)} 
4990: 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 75  {.<li>Removed su
49a0: 70 70 6f 72 74 20 66 6f 72 20 61 6e 20 4f 4e 20  pport for an ON 
49b0: 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 20  CONFLICT clause 
49c0: 6f 6e 20 43 52 45 41 54 45 20 49 4e 44 45 58 20  on CREATE INDEX 
49d0: 2d 20 69 74 20 6e 65 76 65 72 0a 77 6f 72 6b 65  - it never.worke
49e0: 64 20 63 6f 72 72 65 63 74 6c 79 20 73 6f 20 74  d correctly so t
49f0: 68 69 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 70  his should not p
4a00: 72 65 73 65 6e 74 20 61 6e 79 20 62 61 63 6b 77  resent any backw
4a10: 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74  ard compatibilit
4a20: 79 0a 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e  y.problems.</li>
4a30: 0a 3c 6c 69 3e 41 75 74 68 6f 72 69 7a 65 72 20  .<li>Authorizer 
4a40: 63 61 6c 6c 62 61 63 6b 20 6e 6f 77 20 6e 6f 74  callback now not
4a50: 69 66 69 65 64 20 6f 66 20 41 4c 54 45 52 20 54  ified of ALTER T
4a60: 41 42 4c 45 20 41 44 44 20 43 4f 4c 55 4d 4e 20  ABLE ADD COLUMN 
4a70: 63 6f 6d 6d 61 6e 64 73 3c 2f 6c 69 3e 0a 3c 6c  commands</li>.<l
4a80: 69 3e 41 66 74 65 72 20 61 6e 79 20 63 68 61 6e  i>After any chan
4a90: 67 65 73 20 74 6f 20 74 68 65 20 54 45 4d 50 20  ges to the TEMP 
4aa0: 64 61 74 61 62 61 73 65 20 73 63 68 65 6d 61 2c  database schema,
4ab0: 20 61 6c 6c 20 70 72 65 70 61 72 65 64 20 73 74   all prepared st
4ac0: 61 74 65 6d 65 6e 74 73 0a 61 72 65 20 69 6e 76  atements.are inv
4ad0: 61 6c 69 64 61 74 65 64 20 61 6e 64 20 6d 75 73  alidated and mus
4ae0: 74 20 62 65 20 72 65 63 72 65 61 74 65 64 20 75  t be recreated u
4af0: 73 69 6e 67 20 61 20 6e 65 77 20 63 61 6c 6c 20  sing a new call 
4b00: 74 6f 0a 73 71 6c 69 74 65 33 5f 70 72 65 70 61  to.sqlite3_prepa
4b10: 72 65 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  re()</li>.<li>Ot
4b20: 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69  her minor bug fi
4b30: 78 65 73 20 69 6e 20 70 72 65 70 61 72 61 74 69  xes in preparati
4b40: 6f 6e 20 66 6f 72 20 74 68 65 20 66 69 72 73 74  on for the first
4b50: 20 73 74 61 62 6c 65 20 72 65 6c 65 61 73 65 0a   stable release.
4b60: 6f 66 20 76 65 72 73 69 6f 6e 20 33 2e 33 3c 2f  of version 3.3</
4b70: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4b80: 36 20 4a 61 6e 75 61 72 79 20 32 34 20 28 33 2e  6 January 24 (3.
4b90: 33 2e 32 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69  3.2 beta)} {.<li
4ba0: 3e 42 75 67 20 66 69 78 65 73 20 61 6e 64 20 73  >Bug fixes and s
4bb0: 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74  peed improvement
4bc0: 73 2e 20 20 49 6d 70 72 6f 76 65 64 20 74 65 73  s.  Improved tes
4bd0: 74 20 63 6f 76 65 72 61 67 65 2e 3c 2f 6c 69 3e  t coverage.</li>
4be0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20  .<li>Changes to 
4bf0: 74 68 65 20 4f 53 2d 6c 61 79 65 72 20 69 6e 74  the OS-layer int
4c00: 65 72 66 61 63 65 3a 20 6d 75 74 65 78 65 73 20  erface: mutexes 
4c10: 6d 75 73 74 20 6e 6f 77 20 62 65 20 72 65 63 75  must now be recu
4c20: 72 73 69 76 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rsive.</li>.<li>
4c30: 44 69 73 63 6f 6e 74 69 6e 75 65 20 74 68 65 20  Discontinue the 
4c40: 75 73 65 20 6f 66 20 74 68 72 65 61 64 2d 73 70  use of thread-sp
4c50: 65 63 69 66 69 63 20 64 61 74 61 20 66 6f 72 20  ecific data for 
4c60: 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 0a 65 78  out-of-memory.ex
4c70: 63 65 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67  ception handling
4c80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4c90: 30 30 36 20 4a 61 6e 75 61 72 79 20 31 36 20 28  006 January 16 (
4ca0: 33 2e 33 2e 31 20 61 6c 70 68 61 29 7d 20 7b 0a  3.3.1 alpha)} {.
4cb0: 3c 6c 69 3e 43 6f 75 6e 74 6c 65 73 73 20 62 75  <li>Countless bu
4cc0: 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  g fixes</li>.<li
4cd0: 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65  >Speed improveme
4ce0: 6e 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 61 74  nts</li>.<li>Dat
4cf0: 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e  abase connection
4d00: 73 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65  s can now be use
4d10: 64 20 62 79 20 6d 75 6c 74 69 70 6c 65 20 74 68  d by multiple th
4d20: 72 65 61 64 73 2c 20 6e 6f 74 20 6a 75 73 74 0a  reads, not just.
4d30: 74 68 65 20 74 68 72 65 61 64 20 69 6e 20 77 68  the thread in wh
4d40: 69 63 68 20 74 68 65 79 20 77 65 72 65 20 63 72  ich they were cr
4d50: 65 61 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  eated.</li>.}..c
4d60: 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75 61 72  hng {2006 Januar
4d70: 79 20 31 30 20 28 33 2e 33 2e 30 20 61 6c 70 68  y 10 (3.3.0 alph
4d80: 61 29 7d 20 7b 0a 3c 6c 69 3e 43 48 45 43 4b 20  a)} {.<li>CHECK 
4d90: 63 6f 6e 73 74 72 61 69 6e 74 73 3c 2f 6c 69 3e  constraints</li>
4da0: 0a 3c 6c 69 3e 49 46 20 45 58 49 53 54 53 20 61  .<li>IF EXISTS a
4db0: 6e 64 20 49 46 20 4e 4f 54 20 45 58 49 53 54 53  nd IF NOT EXISTS
4dc0: 20 63 6c 61 75 73 65 73 20 6f 6e 20 43 52 45 41   clauses on CREA
4dd0: 54 45 2f 44 52 4f 50 20 54 41 42 4c 45 2f 49 4e  TE/DROP TABLE/IN
4de0: 44 45 58 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 45  DEX.</li>.<li>DE
4df0: 53 43 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a  SC indices</li>.
4e00: 3c 6c 69 3e 4d 6f 72 65 20 65 66 66 69 63 69 65  <li>More efficie
4e10: 6e 74 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20 62  nt encoding of b
4e20: 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 73 20 72 65  oolean values re
4e30: 73 75 6c 74 69 6e 67 20 69 6e 20 73 6d 61 6c 6c  sulting in small
4e40: 65 72 20 64 61 74 61 62 61 73 65 0a 66 69 6c 65  er database.file
4e50: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20  s</li>.<li>More 
4e60: 61 67 67 72 65 73 73 69 76 65 20 53 51 4c 49 54  aggressive SQLIT
4e70: 45 5f 4f 4d 49 54 5f 46 4c 4f 41 54 49 4e 47 5f  E_OMIT_FLOATING_
4e80: 50 4f 49 4e 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  POINT</li>.<li>S
4e90: 65 70 61 72 61 74 65 20 49 4e 54 45 47 45 52 20  eparate INTEGER 
4ea0: 61 6e 64 20 52 45 41 4c 20 61 66 66 69 6e 69 74  and REAL affinit
4eb0: 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  y</li>.<li>Added
4ec0: 20 61 20 76 69 72 74 75 61 6c 20 66 75 6e 63 74   a virtual funct
4ed0: 69 6f 6e 20 6c 61 79 65 72 20 66 6f 72 20 74 68  ion layer for th
4ee0: 65 20 4f 53 20 69 6e 74 65 72 66 61 63 65 3c 2f  e OS interface</
4ef0: 6c 69 3e 0a 3c 6c 69 3e 22 65 78 69 73 74 73 22  li>.<li>"exists"
4f00: 20 6d 65 74 68 6f 64 20 61 64 64 65 64 20 74 6f   method added to
4f10: 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61   the TCL interfa
4f20: 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72  ce</li>.<li>Impr
4f30: 6f 76 65 64 20 72 65 73 70 6f 6e 73 65 20 74 6f  oved response to
4f40: 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 65   out-of-memory e
4f50: 72 72 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  rrors</li>.<li>D
4f60: 61 74 61 62 61 73 65 20 63 61 63 68 65 20 63 61  atabase cache ca
4f70: 6e 20 62 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 20  n be optionally 
4f80: 73 68 61 72 65 64 20 62 65 74 77 65 65 6e 20 63  shared between c
4f90: 6f 6e 6e 65 63 74 69 6f 6e 73 0a 69 6e 20 74 68  onnections.in th
4fa0: 65 20 73 61 6d 65 20 74 68 72 65 61 64 3c 2f 6c  e same thread</l
4fb0: 69 3e 0a 3c 6c 69 3e 4f 70 74 69 6f 6e 61 6c 20  i>.<li>Optional 
4fc0: 52 45 41 44 20 55 4e 43 4f 4d 4d 49 54 54 45 44  READ UNCOMMITTED
4fd0: 20 69 73 6f 6c 61 74 69 6f 6e 20 28 69 6e 73 74   isolation (inst
4fe0: 65 61 64 20 6f 66 20 74 68 65 20 64 65 66 61 75  ead of the defau
4ff0: 6c 74 0a 69 73 6f 6c 61 74 69 6f 6e 20 6c 65 76  lt.isolation lev
5000: 65 6c 20 6f 66 20 53 45 52 49 41 4c 49 5a 41 42  el of SERIALIZAB
5010: 4c 45 29 20 61 6e 64 20 74 61 62 6c 65 20 6c 65  LE) and table le
5020: 76 65 6c 20 6c 6f 63 6b 69 6e 67 20 77 68 65 6e  vel locking when
5030: 0a 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63  .database connec
5040: 74 69 6f 6e 73 20 73 68 61 72 65 20 61 20 63 6f  tions share a co
5050: 6d 6d 6f 6e 20 63 61 63 68 65 2e 3c 2f 6c 69 3e  mmon cache.</li>
5060: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 44  .}..chng {2005 D
5070: 65 63 65 6d 62 65 72 20 31 39 20 28 33 2e 32 2e  ecember 19 (3.2.
5080: 38 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e  8)} {.<li>Fix an
5090: 20 6f 62 73 63 75 72 65 20 62 75 67 20 74 68 61   obscure bug tha
50a0: 74 20 63 61 6e 20 63 61 75 73 65 20 64 61 74 61  t can cause data
50b0: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
50c0: 75 6e 64 65 72 20 74 68 65 0a 66 6f 6c 6c 6f 77  under the.follow
50d0: 69 6e 67 20 75 6e 75 73 75 61 6c 20 63 69 72 63  ing unusual circ
50e0: 75 6d 73 74 61 6e 63 65 73 3a 20 41 20 6c 61 72  umstances: A lar
50f0: 67 65 20 49 4e 53 45 52 54 20 6f 72 20 55 50 44  ge INSERT or UPD
5100: 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20 77 68  ATE statement wh
5110: 69 63 68 20 0a 69 73 20 70 61 72 74 20 6f 66 20  ich .is part of 
5120: 61 6e 20 65 76 65 6e 20 6c 61 72 67 65 72 20 74  an even larger t
5130: 72 61 6e 73 61 63 74 69 6f 6e 20 66 61 69 6c 73  ransaction fails
5140: 20 64 75 65 20 74 6f 20 61 20 75 6e 69 71 75 65   due to a unique
5150: 6e 65 73 73 20 63 6f 6e 74 72 61 69 6e 74 0a 62  ness contraint.b
5160: 75 74 20 74 68 65 20 63 6f 6e 74 61 69 6e 69 6e  ut the containin
5170: 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f  g transaction co
5180: 6d 6d 69 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  mmits.</li>.}..c
5190: 68 6e 67 20 7b 32 30 30 35 20 44 65 63 65 6d 62  hng {2005 Decemb
51a0: 65 72 20 31 39 20 28 32 2e 38 2e 31 37 29 7d 20  er 19 (2.8.17)} 
51b0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 62 73  {.<li>Fix an obs
51c0: 63 75 72 65 20 62 75 67 20 74 68 61 74 20 63 61  cure bug that ca
51d0: 6e 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65  n cause database
51e0: 20 63 6f 72 72 75 70 74 69 6f 6e 20 75 6e 64 65   corruption unde
51f0: 72 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20  r the.following 
5200: 75 6e 75 73 75 61 6c 20 63 69 72 63 75 6d 73 74  unusual circumst
5210: 61 6e 63 65 73 3a 20 41 20 6c 61 72 67 65 20 49  ances: A large I
5220: 4e 53 45 52 54 20 6f 72 20 55 50 44 41 54 45 20  NSERT or UPDATE 
5230: 73 74 61 74 65 6d 65 6e 74 20 77 68 69 63 68 20  statement which 
5240: 0a 69 73 20 70 61 72 74 20 6f 66 20 61 6e 20 65  .is part of an e
5250: 76 65 6e 20 6c 61 72 67 65 72 20 74 72 61 6e 73  ven larger trans
5260: 61 63 74 69 6f 6e 20 66 61 69 6c 73 20 64 75 65  action fails due
5270: 20 74 6f 20 61 20 75 6e 69 71 75 65 6e 65 73 73   to a uniqueness
5280: 20 63 6f 6e 74 72 61 69 6e 74 0a 62 75 74 20 74   contraint.but t
5290: 68 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 72  he containing tr
52a0: 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6d 6d 69 74  ansaction commit
52b0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
52c0: 7b 32 30 30 35 20 53 65 70 74 65 6d 62 65 72 20  {2005 September 
52d0: 32 34 20 28 33 2e 32 2e 37 29 7d 20 7b 0a 3c 6c  24 (3.2.7)} {.<l
52e0: 69 3e 47 52 4f 55 50 20 42 59 20 6e 6f 77 20 63  i>GROUP BY now c
52f0: 6f 6e 73 69 64 65 72 73 20 4e 55 4c 4c 73 20 74  onsiders NULLs t
5300: 6f 20 62 65 20 65 71 75 61 6c 20 61 67 61 69 6e  o be equal again
5310: 2c 20 61 73 20 69 74 20 73 68 6f 75 6c 64 0a 3c  , as it should.<
5320: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 6f 77 20 63 6f 6d  /li>.<li>Now com
5330: 70 69 6c 65 73 20 6f 6e 20 53 6f 6c 61 72 69 73  piles on Solaris
5340: 20 61 6e 64 20 4f 70 65 6e 42 53 44 20 61 6e 64   and OpenBSD and
5350: 20 6f 74 68 65 72 20 55 6e 69 78 20 76 61 72 69   other Unix vari
5360: 61 6e 74 73 0a 74 68 61 74 20 6c 61 63 6b 20 74  ants.that lack t
5370: 68 65 20 66 64 61 74 61 73 79 6e 63 28 29 20 66  he fdatasync() f
5380: 75 6e 63 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69  unction</li>.<li
5390: 3e 4e 6f 77 20 63 6f 6d 70 69 6c 65 73 20 6f 6e  >Now compiles on
53a0: 20 4d 53 56 43 2b 2b 36 20 61 67 61 69 6e 3c 2f   MSVC++6 again</
53b0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 75 6e 69 6e  li>.<li>Fix unin
53c0: 69 74 69 61 6c 69 7a 65 64 20 76 61 72 69 61 62  itialized variab
53d0: 6c 65 73 20 63 61 75 73 69 6e 67 20 6d 61 6c 66  les causing malf
53e0: 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 76 61 72  unctions for var
53f0: 69 6f 75 73 20 6f 62 73 63 75 72 65 0a 71 75 65  ious obscure.que
5400: 72 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ries</li>.<li>Co
5410: 72 72 65 63 74 6c 79 20 63 6f 6d 70 75 74 65 20  rrectly compute 
5420: 61 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49  a LEFT OUTER JOI
5430: 4e 73 20 74 68 61 74 20 69 73 20 63 6f 6e 73 74  Ns that is const
5440: 72 61 69 6e 65 64 20 6f 6e 20 74 68 65 0a 6c 65  rained on the.le
5450: 66 74 20 74 61 62 6c 65 20 6f 6e 6c 79 3c 2f 6c  ft table only</l
5460: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
5470: 20 53 65 70 74 65 6d 62 65 72 20 31 37 20 28 33   September 17 (3
5480: 2e 32 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .2.6)} {.<li>Fix
5490: 20 61 20 62 75 67 20 74 68 61 74 20 63 61 6e 20   a bug that can 
54a0: 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63  cause database c
54b0: 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 61 20 56  orruption if a V
54c0: 41 43 55 55 4d 20 28 6f 72 0a 20 20 20 20 61 75  ACUUM (or.    au
54d0: 74 6f 76 61 63 75 75 6d 29 20 66 61 69 6c 73 20  tovacuum) fails 
54e0: 61 6e 64 20 69 73 20 72 6f 6c 6c 65 64 20 62 61  and is rolled ba
54f0: 63 6b 20 6f 6e 20 61 20 64 61 74 61 62 61 73 65  ck on a database
5500: 20 74 68 61 74 20 69 73 0a 20 20 20 20 6c 61 72   that is.    lar
5510: 67 65 72 20 74 68 61 6e 20 31 47 69 42 3c 2f 6c  ger than 1GiB</l
5520: 69 3e 0a 3c 6c 69 3e 4c 49 4b 45 20 6f 70 74 69  i>.<li>LIKE opti
5530: 69 7a 61 74 69 6f 6e 20 6e 6f 77 20 77 6f 72 6b  ization now work
5540: 73 20 66 6f 72 20 63 6f 6c 75 6d 6e 73 20 77 69  s for columns wi
5550: 74 68 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53  th COLLATE NOCAS
5560: 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52  E</li>.<li>ORDER
5570: 20 42 59 20 61 6e 64 20 47 52 4f 55 50 20 42 59   BY and GROUP BY
5580: 20 6e 6f 77 20 75 73 65 20 62 6f 75 6e 64 65 64   now use bounded
5590: 20 6d 65 6d 6f 72 79 3c 2f 6c 69 3e 0a 3c 6c 69   memory</li>.<li
55a0: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
55b0: 6f 72 20 43 4f 55 4e 54 28 44 49 53 54 49 4e 43  or COUNT(DISTINC
55c0: 54 20 65 78 70 72 29 3c 2f 6c 69 3e 0a 3c 6c 69  T expr)</li>.<li
55d0: 3e 43 68 61 6e 67 65 20 74 68 65 20 77 61 79 20  >Change the way 
55e0: 53 55 4d 28 29 20 68 61 6e 64 6c 65 73 20 4e 55  SUM() handles NU
55f0: 4c 4c 20 76 61 6c 75 65 73 20 69 6e 20 6f 72 64  LL values in ord
5600: 65 72 20 74 6f 20 63 6f 6d 70 6c 79 20 77 69 74  er to comply wit
5610: 68 0a 20 20 20 20 74 68 65 20 53 51 4c 20 73 74  h.    the SQL st
5620: 61 6e 64 61 72 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e  andard</li>.<li>
5630: 55 73 65 20 66 64 61 74 61 73 79 6e 63 28 29 20  Use fdatasync() 
5640: 69 6e 73 74 65 61 64 20 6f 66 20 66 73 79 6e 63  instead of fsync
5650: 28 29 20 77 68 65 72 65 20 70 6f 73 73 69 62 6c  () where possibl
5660: 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 73 70  e in order to sp
5670: 65 65 64 0a 20 20 20 20 75 70 20 63 6f 6d 6d 69  eed.    up commi
5680: 74 73 20 73 6c 69 67 68 74 6c 79 3c 2f 6c 69 3e  ts slightly</li>
5690: 0a 3c 6c 69 3e 55 73 65 20 6f 66 20 74 68 65 20  .<li>Use of the 
56a0: 43 52 4f 53 53 20 6b 65 79 77 6f 72 64 20 69 6e  CROSS keyword in
56b0: 20 61 20 6a 6f 69 6e 20 74 75 72 6e 73 20 6f 66   a join turns of
56c0: 66 20 74 68 65 20 74 61 62 6c 65 20 72 65 6f 72  f the table reor
56d0: 64 65 72 69 6e 67 0a 20 20 20 20 6f 70 74 69 6d  dering.    optim
56e0: 69 7a 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69  ization</li>.<li
56f0: 3e 41 64 64 65 64 20 74 68 65 20 65 78 70 65 72  >Added the exper
5700: 69 6d 65 6e 74 61 6c 20 61 6e 64 20 75 6e 64 6f  imental and undo
5710: 63 75 6d 65 6e 74 65 64 20 45 58 50 4c 41 49 4e  cumented EXPLAIN
5720: 20 51 55 45 52 59 20 50 4c 41 4e 20 63 61 70 61   QUERY PLAN capa
5730: 62 69 6c 69 74 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e  bility</li>.<li>
5740: 55 73 65 20 74 68 65 20 75 6e 69 63 6f 64 65 20  Use the unicode 
5750: 41 50 49 20 69 6e 20 77 69 6e 64 6f 77 73 3c 2f  API in windows</
5760: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
5770: 35 20 41 75 67 75 73 74 20 32 37 20 28 33 2e 32  5 August 27 (3.2
5780: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .5)} {.<li>Fix a
5790: 20 62 75 67 20 65 66 66 65 63 74 69 6e 67 20 44   bug effecting D
57a0: 45 4c 45 54 45 20 61 6e 64 20 55 50 44 41 54 45  ELETE and UPDATE
57b0: 20 73 74 61 74 65 6d 65 6e 74 73 20 74 68 61 74   statements that
57c0: 20 63 68 61 6e 67 65 64 0a 6d 6f 72 65 20 74 68   changed.more th
57d0: 61 6e 20 34 30 39 36 30 20 72 6f 77 73 2e 3c 2f  an 40960 rows.</
57e0: 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74  li>.<li>Change t
57f0: 68 65 20 6d 61 6b 65 66 69 6c 65 20 73 6f 20 74  he makefile so t
5800: 68 61 74 20 69 74 20 6e 6f 20 6c 6f 6e 67 65 72  hat it no longer
5810: 20 72 65 71 75 69 72 65 73 20 47 4e 55 6d 61 6b   requires GNUmak
5820: 65 20 65 78 74 65 6e 73 69 6f 6e 73 3c 2f 6c 69  e extensions</li
5830: 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 2d 2d  >.<li>Fix the --
5840: 65 6e 61 62 6c 65 2d 74 68 72 65 61 64 73 61 66  enable-threadsaf
5850: 65 20 6f 70 74 69 6f 6e 20 6f 6e 20 74 68 65 20  e option on the 
5860: 63 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70 74  configure script
5870: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
5880: 63 6f 64 65 20 67 65 6e 65 72 61 74 6f 72 20 62  code generator b
5890: 75 67 20 74 68 61 74 20 6f 63 63 75 72 73 20 77  ug that occurs w
58a0: 68 65 6e 20 74 68 65 20 6c 65 66 74 2d 68 61 6e  hen the left-han
58b0: 64 20 73 69 64 65 20 6f 66 20 61 6e 20 49 4e 0a  d side of an IN.
58c0: 6f 70 65 72 61 74 6f 72 20 69 73 20 63 6f 6e 73  operator is cons
58d0: 74 61 6e 74 20 61 6e 64 20 74 68 65 20 72 69 67  tant and the rig
58e0: 68 74 2d 68 61 6e 64 20 73 69 64 65 20 69 73 20  ht-hand side is 
58f0: 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  a SELECT stateme
5900: 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  nt</li>.<li>The 
5910: 50 52 41 47 4d 41 20 73 79 6e 63 68 72 6f 6e 6f  PRAGMA synchrono
5920: 75 73 3d 6f 66 66 20 73 74 61 74 65 6d 65 6e 74  us=off statement
5930: 20 6e 6f 77 20 64 69 73 61 62 6c 65 73 20 73 79   now disables sy
5940: 6e 63 69 6e 67 20 6f 66 20 74 68 65 0a 6d 61 73  ncing of the.mas
5950: 74 65 72 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65  ter journal file
5960: 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20   in addition to 
5970: 74 68 65 20 6e 6f 72 6d 61 6c 20 72 6f 6c 6c 62  the normal rollb
5980: 61 63 6b 20 6a 6f 75 72 6e 61 6c 73 3c 2f 6c 69  ack journals</li
5990: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
59a0: 41 75 67 75 73 74 20 32 34 20 28 33 2e 32 2e 34  August 24 (3.2.4
59b0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
59c0: 75 67 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e  ug introduced in
59d0: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65   the previous re
59e0: 6c 65 61 73 65 0a 74 68 61 74 20 63 61 6e 20 63  lease.that can c
59f0: 61 75 73 65 20 61 20 73 65 67 66 61 75 6c 74 20  ause a segfault 
5a00: 77 68 69 6c 65 20 67 65 6e 65 72 61 74 69 6e 67  while generating
5a10: 20 63 6f 64 65 0a 66 6f 72 20 63 6f 6d 70 6c 65   code.for comple
5a20: 78 20 57 48 45 52 45 20 63 6c 61 75 73 65 73 2e  x WHERE clauses.
5a30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
5a40: 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6c  floating point l
5a50: 69 74 65 72 61 6c 73 20 74 6f 20 62 65 67 69 6e  iterals to begin
5a60: 20 6f 72 20 65 6e 64 20 77 69 74 68 20 61 20 64   or end with a d
5a70: 65 63 69 6d 61 6c 20 70 6f 69 6e 74 2e 3c 2f 6c  ecimal point.</l
5a80: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
5a90: 20 41 75 67 75 73 74 20 32 31 20 28 33 2e 32 2e   August 21 (3.2.
5aa0: 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  3)} {.<li>Added 
5ab0: 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20  support for the 
5ac0: 43 41 53 54 20 6f 70 65 72 61 74 6f 72 3c 2f 6c  CAST operator</l
5ad0: 69 3e 0a 3c 6c 69 3e 54 63 6c 20 69 6e 74 65 72  i>.<li>Tcl inter
5ae0: 66 61 63 65 20 61 6c 6c 6f 77 73 20 42 4c 4f 42  face allows BLOB
5af0: 20 76 61 6c 75 65 73 20 74 6f 20 62 65 20 74 72   values to be tr
5b00: 61 6e 73 66 65 72 72 65 64 20 74 6f 20 75 73 65  ansferred to use
5b10: 72 2d 64 65 66 69 6e 65 64 0a 66 75 6e 63 74 69  r-defined.functi
5b20: 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ons</li>.<li>Add
5b30: 65 64 20 74 68 65 20 22 74 72 61 6e 73 61 63 74  ed the "transact
5b40: 69 6f 6e 22 20 6d 65 74 68 6f 64 20 74 6f 20 74  ion" method to t
5b50: 68 65 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65  he Tcl interface
5b60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
5b70: 74 68 65 20 44 45 46 41 55 4c 54 20 76 61 6c 75  the DEFAULT valu
5b80: 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 74 6f  e of a column to
5b90: 20 63 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 73 20   call functions 
5ba0: 74 68 61 74 20 68 61 76 65 20 63 6f 6e 73 74 61  that have consta
5bb0: 6e 74 0a 6f 70 65 72 61 6e 64 73 3c 2f 6c 69 3e  nt.operands</li>
5bc0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 41  .<li>Added the A
5bd0: 4e 41 4c 59 5a 45 20 63 6f 6d 6d 61 6e 64 20 66  NALYZE command f
5be0: 6f 72 20 67 61 74 68 65 72 69 6e 67 20 73 74 61  or gathering sta
5bf0: 74 69 73 74 69 63 73 20 6f 6e 20 69 6e 64 69 63  tistics on indic
5c00: 65 73 20 61 6e 64 0a 75 73 69 6e 67 20 74 68 6f  es and.using tho
5c10: 73 65 20 73 74 61 74 69 73 74 69 63 73 20 77 68  se statistics wh
5c20: 65 6e 20 70 69 63 6b 69 6e 67 20 61 6e 20 69 6e  en picking an in
5c30: 64 65 78 20 69 6e 20 74 68 65 20 6f 70 74 69 6d  dex in the optim
5c40: 69 7a 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65  izer</li>.<li>Re
5c50: 6d 6f 76 65 20 74 68 65 20 6c 69 6d 69 74 20 28  move the limit (
5c60: 66 6f 72 6d 65 72 6c 79 20 31 30 30 29 20 6f 6e  formerly 100) on
5c70: 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74   the number of t
5c80: 65 72 6d 73 20 69 6e 20 74 68 65 0a 57 48 45 52  erms in the.WHER
5c90: 45 20 63 6c 61 75 73 65 3c 2f 6c 69 3e 0a 3c 6c  E clause</li>.<l
5ca0: 69 3e 54 68 65 20 72 69 67 68 74 2d 68 61 6e 64  i>The right-hand
5cb0: 20 73 69 64 65 20 6f 66 20 74 68 65 20 49 4e 20   side of the IN 
5cc0: 6f 70 65 72 61 74 6f 72 20 63 61 6e 20 6e 6f 77  operator can now
5cd0: 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 65 78   be a list of ex
5ce0: 70 72 65 73 73 69 6f 6e 73 0a 69 6e 73 74 65 61  pressions.instea
5cf0: 64 20 6f 66 20 6a 75 73 74 20 61 20 6c 69 73 74  d of just a list
5d00: 20 6f 66 20 63 6f 6e 73 74 61 6e 74 73 3c 2f 6c   of constants</l
5d10: 69 3e 0a 3c 6c 69 3e 52 65 77 6f 72 6b 20 74 68  i>.<li>Rework th
5d20: 65 20 6f 70 74 69 6d 69 7a 65 72 20 73 6f 20 74  e optimizer so t
5d30: 68 61 74 20 69 74 20 69 73 20 61 62 6c 65 20 74  hat it is able t
5d40: 6f 20 6d 61 6b 65 20 62 65 74 74 65 72 20 75 73  o make better us
5d50: 65 20 6f 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69  e of indices</li
5d60: 3e 0a 3c 6c 69 3e 54 68 65 20 6f 72 64 65 72 20  >.<li>The order 
5d70: 6f 66 20 74 61 62 6c 65 73 20 69 6e 20 61 20 6a  of tables in a j
5d80: 6f 69 6e 20 69 73 20 61 64 6a 75 73 74 65 64 20  oin is adjusted 
5d90: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 6f  automatically to
5da0: 20 6d 61 6b 65 0a 62 65 74 74 65 72 20 75 73 65   make.better use
5db0: 20 6f 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e   of indices</li>
5dc0: 0a 3c 6c 69 3e 54 68 65 20 49 4e 20 6f 70 65 72  .<li>The IN oper
5dd0: 61 74 6f 72 20 69 73 20 6e 6f 77 20 61 20 63 61  ator is now a ca
5de0: 6e 64 69 64 61 74 65 20 66 6f 72 20 6f 70 74 69  ndidate for opti
5df0: 6d 69 7a 61 74 69 6f 6e 20 65 76 65 6e 20 69 66  mization even if
5e00: 20 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 0a 73   the left-hand.s
5e10: 69 64 65 20 69 73 20 6e 6f 74 20 74 68 65 20 6c  ide is not the l
5e20: 65 66 74 2d 6d 6f 73 74 20 74 65 72 6d 20 6f 66  eft-most term of
5e30: 20 74 68 65 20 69 6e 64 65 78 2e 20 20 4d 75 6c   the index.  Mul
5e40: 74 69 70 6c 65 20 49 4e 20 6f 70 65 72 61 74 6f  tiple IN operato
5e50: 72 73 20 63 61 6e 20 62 65 0a 75 73 65 64 20 77  rs can be.used w
5e60: 69 74 68 20 74 68 65 20 73 61 6d 65 20 69 6e 64  ith the same ind
5e70: 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 48 45  ex.</li>.<li>WHE
5e80: 52 45 20 63 6c 61 75 73 65 20 65 78 70 72 65 73  RE clause expres
5e90: 73 69 6f 6e 73 20 75 73 69 6e 67 20 42 45 54 57  sions using BETW
5ea0: 45 45 4e 20 61 6e 64 20 4f 52 20 61 72 65 20 6e  EEN and OR are n
5eb0: 6f 77 20 63 61 6e 64 69 64 61 74 65 73 0a 66 6f  ow candidates.fo
5ec0: 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f  r optimization</
5ed0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
5ee0: 65 20 22 63 61 73 65 5f 73 65 6e 73 69 74 69 76  e "case_sensitiv
5ef0: 65 5f 6c 69 6b 65 22 20 70 72 61 67 6d 61 20 61  e_like" pragma a
5f00: 6e 64 20 74 68 65 20 53 51 4c 49 54 45 5f 43 41  nd the SQLITE_CA
5f10: 53 45 5f 53 45 4e 53 49 54 49 56 45 5f 4c 49 4b  SE_SENSITIVE_LIK
5f20: 45 0a 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f  E.compile-time o
5f30: 70 74 69 6f 6e 20 74 6f 20 73 65 74 20 69 74 73  ption to set its
5f40: 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 74   default value t
5f50: 6f 20 22 6f 6e 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69  o "on".</li>.<li
5f60: 3e 55 73 65 20 69 6e 64 69 63 65 73 20 74 6f 20  >Use indices to 
5f70: 68 65 6c 70 20 77 69 74 68 20 47 4c 4f 42 20 65  help with GLOB e
5f80: 78 70 72 65 73 73 69 6f 6e 73 20 61 6e 64 20 4c  xpressions and L
5f90: 49 4b 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20  IKE expressions 
5fa0: 74 6f 6f 0a 77 68 65 6e 20 74 68 65 20 63 61 73  too.when the cas
5fb0: 65 5f 73 65 6e 73 69 74 69 76 65 5f 6c 69 6b 65  e_sensitive_like
5fc0: 20 70 72 61 67 6d 61 20 69 73 20 65 6e 61 62 6c   pragma is enabl
5fd0: 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  ed</li>.<li>Adde
5fe0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 67 72  d support for gr
5ff0: 61 76 65 2d 61 63 63 65 6e 74 20 71 75 6f 74 69  ave-accent quoti
6000: 6e 67 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69  ng for compatibi
6010: 6c 69 74 79 20 77 69 74 68 20 4d 79 53 51 4c 3c  lity with MySQL<
6020: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
6030: 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65 3c  d test coverage<
6040: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 7a 65 6e 73 20  /li>.<li>Dozens 
6050: 6f 66 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  of minor bug fix
6060: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
6070: 7b 32 30 30 35 20 4a 75 6e 65 20 31 33 20 28 33  {2005 June 13 (3
6080: 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .2.2)} {.<li>Add
6090: 65 64 20 74 68 65 20 73 71 6c 69 74 65 33 5f 64  ed the sqlite3_d
60a0: 62 5f 68 61 6e 64 6c 65 28 29 20 41 50 49 3c 2f  b_handle() API</
60b0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
60c0: 65 20 73 71 6c 69 74 65 33 5f 67 65 74 5f 61 75  e sqlite3_get_au
60d0: 74 6f 63 6f 6d 6d 69 74 28 29 20 41 50 49 3c 2f  tocommit() API</
60e0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20  li>.<li>Added a 
60f0: 52 45 47 45 58 50 20 6f 70 65 72 61 74 6f 72 20  REGEXP operator 
6100: 74 6f 20 74 68 65 20 70 61 72 73 65 72 2e 20 20  to the parser.  
6110: 54 68 65 72 65 20 69 73 20 6e 6f 20 66 75 6e 63  There is no func
6120: 74 69 6f 6e 20 74 6f 20 62 61 63 6b 0a 75 70 20  tion to back.up 
6130: 74 68 69 73 20 6f 70 65 72 61 74 6f 72 20 69 6e  this operator in
6140: 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 62 75   the standard bu
6150: 69 6c 64 20 62 75 74 20 75 73 65 72 73 20 63 61  ild but users ca
6160: 6e 20 61 64 64 20 74 68 65 69 72 20 6f 77 6e 20  n add their own 
6170: 75 73 69 6e 67 0a 73 71 6c 69 74 65 33 5f 63 72  using.sqlite3_cr
6180: 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e 28 29 3c  eate_function()<
6190: 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69  /li>.<li>Speed i
61a0: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20  mprovements and 
61b0: 6c 69 62 72 61 72 79 20 66 6f 6f 74 70 72 69 6e  library footprin
61c0: 74 20 72 65 64 75 63 74 69 6f 6e 73 2e 3c 2f 6c  t reductions.</l
61d0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 62 79 74 65 20  i>.<li>Fix byte 
61e0: 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65  alignment proble
61f0: 6d 73 20 6f 6e 20 36 34 2d 62 69 74 20 61 72 63  ms on 64-bit arc
6200: 68 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e  hitectures.</li>
6210: 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20  .<li>Many, many 
6220: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20  minor bug fixes 
6230: 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  and documentatio
6240: 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a  n updates.</li>.
6250: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d 61  }..chng {2005 Ma
6260: 72 63 68 20 32 39 20 28 33 2e 32 2e 31 29 7d 20  rch 29 (3.2.1)} 
6270: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f  {.<li>Fix a memo
6280: 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 65 72  ry allocation er
6290: 72 6f 72 20 69 6e 20 74 68 65 20 6e 65 77 20 41  ror in the new A
62a0: 44 44 20 43 4f 4c 55 4d 4e 20 63 6f 6d 6d 65 6e  DD COLUMN commen
62b0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75  t.</li>.<li>Docu
62c0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
62d0: 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  s</li>.}..chng {
62e0: 32 30 30 35 20 4d 61 72 63 68 20 32 31 20 28 33  2005 March 21 (3
62f0: 2e 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .2.0)} {.<li>Add
6300: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41  ed support for A
6310: 4c 54 45 52 20 54 41 42 4c 45 20 41 44 44 20 43  LTER TABLE ADD C
6320: 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  OLUMN.</li>.<li>
6330: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
6340: 72 20 74 68 65 20 22 54 22 20 73 65 70 61 72 61  r the "T" separa
6350: 74 6f 72 20 69 6e 20 49 53 4f 2d 38 36 30 31 20  tor in ISO-8601 
6360: 64 61 74 65 2f 74 69 6d 65 20 73 74 72 69 6e 67  date/time string
6370: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72  s.</li>.<li>Impr
6380: 6f 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  oved support for
6390: 20 43 79 67 77 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c   Cygwin.</li>.<l
63a0: 69 3e 4e 75 6d 65 72 6f 75 73 20 62 75 67 20 66  i>Numerous bug f
63b0: 69 78 65 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e  ixes and documen
63c0: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c  tation updates.<
63d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
63e0: 30 35 20 4d 61 72 63 68 20 31 36 20 28 33 2e 31  05 March 16 (3.1
63f0: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .6)} {.<li>Fix a
6400: 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20   bug that could 
6410: 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63  cause database c
6420: 6f 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 69  orruption when i
6430: 6e 73 65 72 74 69 6e 67 0a 20 20 20 20 72 65 63  nserting.    rec
6440: 6f 72 64 20 69 6e 74 6f 20 74 61 62 6c 65 73 20  ord into tables 
6450: 77 69 74 68 20 61 72 6f 75 6e 64 20 31 32 35 20  with around 125 
6460: 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  columns.</li>.<l
6470: 69 3e 73 71 6c 69 74 65 33 5f 73 74 65 70 28 29  i>sqlite3_step()
6480: 20 69 73 20 6e 6f 77 20 6d 75 63 68 20 6d 6f 72   is now much mor
6490: 65 20 6c 69 6b 65 6c 79 20 74 6f 20 69 6e 76 6f  e likely to invo
64a0: 6b 65 20 74 68 65 20 62 75 73 79 20 68 61 6e 64  ke the busy hand
64b0: 6c 65 72 0a 20 20 20 20 61 6e 64 20 6c 65 73 73  ler.    and less
64c0: 20 6c 69 6b 65 6c 79 20 74 6f 20 72 65 74 75 72   likely to retur
64d0: 6e 20 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f  n SQLITE_BUSY.</
64e0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 6d 65 6d 6f  li>.<li>Fix memo
64f0: 72 79 20 6c 65 61 6b 73 20 74 68 61 74 20 75 73  ry leaks that us
6500: 65 64 20 74 6f 20 6f 63 63 75 72 20 61 66 74 65  ed to occur afte
6510: 72 20 61 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69  r a malloc() fai
6520: 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  lure.</li>.}..ch
6530: 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31  ng {2005 March 1
6540: 31 20 28 33 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69  1 (3.1.5)} {.<li
6550: 3e 54 68 65 20 69 6f 63 74 6c 20 6f 6e 20 4f 53  >The ioctl on OS
6560: 2d 58 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 73 79  -X to control sy
6570: 6e 63 69 6e 67 20 74 6f 20 64 69 73 6b 20 69 73  ncing to disk is
6580: 20 46 5f 46 55 4c 4c 46 53 59 4e 43 2c 0a 20 20   F_FULLFSYNC,.  
6590: 20 20 6e 6f 74 20 46 5f 46 55 4c 4c 53 59 4e 43    not F_FULLSYNC
65a0: 2e 20 20 54 68 65 20 70 72 65 76 69 6f 75 73 20  .  The previous 
65b0: 72 65 6c 65 61 73 65 20 68 61 64 20 69 74 20 77  release had it w
65c0: 72 6f 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  rong.</li>.}..ch
65d0: 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31  ng {2005 March 1
65e0: 30 20 28 33 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69  0 (3.1.4)} {.<li
65f0: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 61 75  >Fix a bug in au
6600: 74 6f 76 61 63 75 75 6d 20 74 68 61 74 20 63 6f  tovacuum that co
6610: 75 6c 64 20 63 61 75 73 65 20 64 61 74 61 62 61  uld cause databa
6620: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66  se corruption if
6630: 0a 61 20 43 52 45 41 54 45 20 55 4e 49 51 55 45  .a CREATE UNIQUE
6640: 20 49 4e 44 45 58 20 66 61 69 6c 73 20 62 65 63   INDEX fails bec
6650: 61 75 73 65 20 6f 66 20 61 20 63 6f 6e 73 74 72  ause of a constr
6660: 61 69 6e 74 20 76 69 6f 6c 61 74 69 6f 6e 2e 0a  aint violation..
6670: 54 68 69 73 20 70 72 6f 62 6c 65 6d 20 6f 6e 6c  This problem onl
6680: 79 20 6f 63 63 75 72 73 20 69 66 20 74 68 65 20  y occurs if the 
6690: 6e 65 77 20 61 75 74 6f 76 61 63 75 75 6d 20 66  new autovacuum f
66a0: 65 61 74 75 72 65 20 69 6e 74 72 6f 64 75 63 65  eature introduce
66b0: 64 20 69 6e 0a 76 65 72 73 69 6f 6e 20 33 2e 31  d in.version 3.1
66c0: 20 69 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f   is turned on.</
66d0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 46 5f 46 55  li>.<li>The F_FU
66e0: 4c 4c 53 59 4e 43 20 69 6f 63 74 6c 20 28 63 75  LLSYNC ioctl (cu
66f0: 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 73 75 70  rrently only sup
6700: 70 6f 72 74 65 64 20 6f 6e 20 4f 53 2d 58 29 20  ported on OS-X) 
6710: 69 73 20 64 69 73 61 62 6c 65 64 0a 69 66 20 74  is disabled.if t
6720: 68 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 70  he synchronous p
6730: 72 61 67 6d 61 20 69 73 20 73 65 74 20 74 6f 20  ragma is set to 
6740: 73 6f 6d 65 74 68 69 6e 67 20 6f 74 68 65 72 20  something other 
6750: 74 68 61 6e 20 22 66 75 6c 6c 22 2e 3c 2f 6c 69  than "full".</li
6760: 3e 0a 3c 6c 69 3e 41 64 64 20 61 64 64 69 74 69  >.<li>Add additi
6770: 6f 6e 61 6c 20 66 6f 72 77 61 72 64 20 63 6f 6d  onal forward com
6780: 70 61 74 69 62 69 6c 69 74 79 20 74 6f 20 74 68  patibility to th
6790: 65 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e  e future version
67a0: 20 33 2e 32 20 64 61 74 61 62 61 73 65 20 0a 66   3.2 database .f
67b0: 69 6c 65 20 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e  ile format.</li>
67c0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
67d0: 6e 20 57 48 45 52 45 20 63 6c 61 75 73 65 73 20  n WHERE clauses 
67e0: 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 72 6f 77  of the form (row
67f0: 69 64 3c 27 32 27 29 3c 2f 6c 69 3e 0a 3c 6c 69  id<'2')</li>.<li
6800: 3e 4e 65 77 20 53 51 4c 49 54 45 5f 4f 4d 49 54  >New SQLITE_OMIT
6810: 5f 2e 2e 2e 20 63 6f 6d 70 69 6c 65 2d 74 69 6d  _... compile-tim
6820: 65 20 6f 70 74 69 6f 6e 73 20 61 64 64 65 64 3c  e options added<
6830: 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73  /li>.<li>Updates
6840: 20 74 6f 20 74 68 65 20 6d 61 6e 20 70 61 67 65   to the man page
6850: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65  </li>.<li>Remove
6860: 20 74 68 65 20 75 73 65 20 6f 66 20 73 74 72 63   the use of strc
6870: 61 73 65 63 6d 70 28 29 20 66 72 6f 6d 20 74 68  asecmp() from th
6880: 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69  e shell</li>.<li
6890: 3e 57 69 6e 64 6f 77 73 20 44 4c 4c 20 65 78 70  >Windows DLL exp
68a0: 6f 72 74 73 20 73 79 6d 62 6f 6c 73 20 54 63 6c  orts symbols Tcl
68b0: 73 71 6c 69 74 65 5f 49 6e 69 74 20 61 6e 64 20  sqlite_Init and 
68c0: 53 71 6c 69 74 65 5f 49 6e 69 74 3c 2f 6c 69 3e  Sqlite_Init</li>
68d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46  .}..chng {2005 F
68e0: 65 62 72 75 61 72 79 20 31 39 20 28 33 2e 31 2e  ebruary 19 (3.1.
68f0: 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  3)} {.<li>Fix a 
6900: 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 56 41 43  problem with VAC
6910: 55 55 4d 20 6f 6e 20 64 61 74 61 62 61 73 65 73  UUM on databases
6920: 20 66 72 6f 6d 20 77 68 69 63 68 20 74 61 62 6c   from which tabl
6930: 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 41 55  es containing.AU
6940: 54 4f 49 4e 43 52 45 4d 45 4e 54 20 68 61 76 65  TOINCREMENT have
6950: 20 62 65 65 6e 20 64 72 6f 70 70 65 64 2e 3c 2f   been dropped.</
6960: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 66 6f 72 77  li>.<li>Add forw
6970: 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74  ard compatibilit
6980: 79 20 74 6f 20 74 68 65 20 66 75 74 75 72 65 20  y to the future 
6990: 76 65 72 73 69 6f 6e 20 33 2e 32 20 64 61 74 61  version 3.2 data
69a0: 62 61 73 65 20 66 69 6c 65 0a 66 6f 72 6d 61 74  base file.format
69b0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d  .</li>.<li>Docum
69c0: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
69d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
69e0: 30 30 35 20 46 65 62 72 75 61 72 79 20 31 35 20  005 February 15 
69f0: 28 33 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46  (3.1.2)} {.<li>F
6a00: 69 78 20 61 20 62 75 67 20 74 68 61 74 20 63 61  ix a bug that ca
6a10: 6e 20 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61  n lead to databa
6a20: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66  se corruption if
6a30: 20 74 68 65 72 65 20 61 72 65 20 74 77 6f 0a 6f   there are two.o
6a40: 70 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20  pen connections 
6a50: 74 6f 20 74 68 65 20 73 61 6d 65 20 64 61 74 61  to the same data
6a60: 62 61 73 65 20 61 6e 64 20 6f 6e 65 20 63 6f 6e  base and one con
6a70: 6e 65 63 74 69 6f 6e 20 64 6f 65 73 20 61 20 56  nection does a V
6a80: 41 43 55 55 4d 0a 61 6e 64 20 74 68 65 20 73 65  ACUUM.and the se
6a90: 63 6f 6e 64 20 6d 61 6b 65 73 20 73 6f 6d 65 20  cond makes some 
6aa0: 63 68 61 6e 67 65 20 74 6f 20 74 68 65 20 64 61  change to the da
6ab0: 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tabase.</li>.<li
6ac0: 3e 41 6c 6c 6f 77 20 22 3f 22 20 70 61 72 61 6d  >Allow "?" param
6ad0: 65 74 65 72 73 20 69 6e 20 74 68 65 20 4c 49 4d  eters in the LIM
6ae0: 49 54 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a  IT clause.</li>.
6af0: 3c 6c 69 3e 46 69 78 20 56 41 43 55 55 4d 20 73  <li>Fix VACUUM s
6b00: 6f 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20  o that it works 
6b10: 77 69 74 68 20 41 55 54 4f 49 4e 43 52 45 4d 45  with AUTOINCREME
6b20: 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  NT.</li>.<li>Fix
6b30: 20 61 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f   a race conditio
6b40: 6e 20 69 6e 20 41 55 54 4f 56 41 43 55 55 4d 20  n in AUTOVACUUM 
6b50: 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f  that can lead to
6b60: 20 63 6f 72 72 75 70 74 20 64 61 74 61 62 61 73   corrupt databas
6b70: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  es</li>.<li>Add 
6b80: 61 20 6e 75 6d 65 72 69 63 20 76 65 72 73 69 6f  a numeric versio
6b90: 6e 20 6e 75 6d 62 65 72 20 74 6f 20 74 68 65 20  n number to the 
6ba0: 73 71 6c 69 74 65 33 2e 68 20 69 6e 63 6c 75 64  sqlite3.h includ
6bb0: 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e file.</li>.<li
6bc0: 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67  >Other minor bug
6bd0: 20 66 69 78 65 73 20 61 6e 64 20 70 65 72 66 6f   fixes and perfo
6be0: 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65  rmance enhanceme
6bf0: 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nts.</li>.}..chn
6c00: 67 20 7b 32 30 30 35 20 46 65 62 72 75 61 72 79  g {2005 February
6c10: 20 31 35 20 28 32 2e 38 2e 31 36 29 7d 20 7b 0a   15 (2.8.16)} {.
6c20: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68  <li>Fix a bug th
6c30: 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64  at can lead to d
6c40: 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69  atabase corrupti
6c50: 6f 6e 20 69 66 20 74 68 65 72 65 20 61 72 65 20  on if there are 
6c60: 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63 74  two.open connect
6c70: 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 61 6d 65  ions to the same
6c80: 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6f 6e   database and on
6c90: 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f 65  e connection doe
6ca0: 73 20 61 20 56 41 43 55 55 4d 0a 61 6e 64 20 74  s a VACUUM.and t
6cb0: 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b 65 73 20  he second makes 
6cc0: 73 6f 6d 65 20 63 68 61 6e 67 65 20 74 6f 20 74  some change to t
6cd0: 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69  he database.</li
6ce0: 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20  >.<li>Correctly 
6cf0: 68 61 6e 64 6c 65 20 71 75 6f 74 65 64 20 6e 61  handle quoted na
6d00: 6d 65 73 20 69 6e 20 43 52 45 41 54 45 20 49 4e  mes in CREATE IN
6d10: 44 45 58 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c  DEX statements.<
6d20: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6e  /li>.<li>Fix a n
6d30: 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63 74 20 62  aming conflict b
6d40: 65 74 77 65 65 6e 20 73 71 6c 69 74 65 2e 68 20  etween sqlite.h 
6d50: 61 6e 64 20 73 71 6c 69 74 65 33 2e 68 2e 3c 2f  and sqlite3.h.</
6d60: 6c 69 3e 0a 3c 6c 69 3e 41 76 6f 69 64 20 65 78  li>.<li>Avoid ex
6d70: 63 65 73 73 20 68 65 61 70 20 75 73 61 67 65 20  cess heap usage 
6d80: 77 68 65 6e 20 63 6f 70 79 69 6e 67 20 65 78 70  when copying exp
6d90: 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  ressions.</li>.<
6da0: 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62  li>Other minor b
6db0: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
6dc0: 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62  ..chng {2005 Feb
6dd0: 72 75 61 72 79 20 31 20 28 33 2e 31 2e 31 20 42  ruary 1 (3.1.1 B
6de0: 45 54 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f  ETA)} {.<li>Auto
6df0: 6d 61 74 69 63 20 63 61 63 68 69 6e 67 20 6f 66  matic caching of
6e00: 20 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d   prepared statem
6e10: 65 6e 74 73 20 69 6e 20 74 68 65 20 54 43 4c 20  ents in the TCL 
6e20: 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c  interface</li>.<
6e30: 6c 69 3e 41 54 54 41 43 48 20 61 6e 64 20 44 45  li>ATTACH and DE
6e40: 54 41 43 48 20 61 73 20 77 65 6c 6c 20 61 73 20  TACH as well as 
6e50: 73 6f 6d 65 20 6f 74 68 65 72 20 6f 70 65 72 61  some other opera
6e60: 74 69 6f 6e 73 20 63 61 75 73 65 20 65 78 69 73  tions cause exis
6e70: 74 69 6e 67 0a 20 20 20 20 70 72 65 70 61 72 65  ting.    prepare
6e80: 64 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20  d statements to 
6e90: 65 78 70 69 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  expire.</li>.<li
6ea0: 3e 4e 75 6d 65 72 69 6f 75 73 20 6d 69 6e 6f 72  >Numerious minor
6eb0: 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a   bug fixes</li>.
6ec0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4a 61  }..chng {2005 Ja
6ed0: 6e 75 61 72 79 20 32 31 20 28 33 2e 31 2e 30 20  nuary 21 (3.1.0 
6ee0: 41 4c 50 48 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75  ALPHA)} {.<li>Au
6ef0: 74 6f 76 61 63 75 75 6d 20 73 75 70 70 6f 72 74  tovacuum support
6f00: 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e   added</li>.<li>
6f10: 43 55 52 52 45 4e 54 5f 54 49 4d 45 2c 20 43 55  CURRENT_TIME, CU
6f20: 52 52 45 4e 54 5f 44 41 54 45 2c 20 61 6e 64 20  RRENT_DATE, and 
6f30: 43 55 52 52 45 4e 54 5f 54 49 4d 45 53 54 41 4d  CURRENT_TIMESTAM
6f40: 50 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69  P added</li>.<li
6f50: 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65  >Support for the
6f60: 20 45 58 49 53 54 53 20 63 6c 61 75 73 65 20 61   EXISTS clause a
6f70: 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  dded.</li>.<li>S
6f80: 75 70 70 6f 72 74 20 66 6f 72 20 63 6f 72 72 65  upport for corre
6f90: 6c 61 74 65 64 20 73 75 62 71 75 65 72 69 65 73  lated subqueries
6fa0: 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69   added.</li>.<li
6fb0: 3e 41 64 64 65 64 20 74 68 65 20 45 53 43 41 50  >Added the ESCAP
6fc0: 45 20 63 6c 61 75 73 65 20 6f 6e 20 74 68 65 20  E clause on the 
6fd0: 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 2e 3c 2f  LIKE operator.</
6fe0: 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20  li>.<li>Support 
6ff0: 66 6f 72 20 41 4c 54 45 52 20 54 41 42 4c 45 20  for ALTER TABLE 
7000: 2e 2e 2e 20 52 45 4e 41 4d 45 20 54 41 42 4c 45  ... RENAME TABLE
7010: 20 2e 2e 2e 20 61 64 64 65 64 3c 2f 6c 69 3e 0a   ... added</li>.
7020: 3c 6c 69 3e 41 55 54 4f 49 4e 43 52 45 4d 45 4e  <li>AUTOINCREMEN
7030: 54 20 6b 65 79 77 6f 72 64 20 73 75 70 70 6f 72  T keyword suppor
7040: 74 65 64 20 6f 6e 20 49 4e 54 45 47 45 52 20 50  ted on INTEGER P
7050: 52 49 4d 41 52 59 20 4b 45 59 3c 2f 6c 69 3e 0a  RIMARY KEY</li>.
7060: 3c 6c 69 3e 4d 61 6e 79 20 53 51 4c 49 54 45 5f  <li>Many SQLITE_
7070: 4f 4d 49 54 5f 20 6d 61 63 72 6f 73 20 69 6e 73  OMIT_ macros ins
7080: 65 72 74 73 20 74 6f 20 6f 6d 69 74 20 66 65 61  erts to omit fea
7090: 74 75 72 65 73 20 61 74 20 63 6f 6d 70 69 6c 65  tures at compile
70a0: 2d 74 69 6d 65 0a 20 20 20 20 61 6e 64 20 72 65  -time.    and re
70b0: 64 75 63 65 20 74 68 65 20 6c 69 62 72 61 72 79  duce the library
70c0: 20 66 6f 6f 74 70 72 69 6e 74 2e 3c 2f 6c 69 3e   footprint.</li>
70d0: 0a 3c 6c 69 3e 54 68 65 20 52 45 49 4e 44 45 58  .<li>The REINDEX
70e0: 20 63 6f 6d 6d 61 6e 64 20 77 61 73 20 61 64 64   command was add
70f0: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ed.</li>.<li>The
7100: 20 65 6e 67 69 6e 65 20 6e 6f 20 6c 6f 6e 67 65   engine no longe
7110: 72 20 63 6f 6e 73 75 6c 74 73 20 74 68 65 20 6d  r consults the m
7120: 61 69 6e 20 74 61 62 6c 65 20 69 66 20 69 74 20  ain table if it 
7130: 63 61 6e 20 67 65 74 0a 20 20 20 20 61 6c 6c 20  can get.    all 
7140: 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  the information 
7150: 69 74 20 6e 65 65 64 73 20 66 72 6f 6d 20 61 6e  it needs from an
7160: 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69   index.</li>.<li
7170: 3e 4d 61 6e 79 20 6e 75 69 73 61 6e 63 65 20 62  >Many nuisance b
7180: 75 67 73 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a  ugs fixed.</li>.
7190: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4f 63  }..chng {2004 Oc
71a0: 74 6f 62 65 72 20 31 31 20 28 33 2e 30 2e 38 29  tober 11 (3.0.8)
71b0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70  } {.<li>Add supp
71c0: 6f 72 74 20 66 6f 72 20 44 45 46 45 52 52 45 44  ort for DEFERRED
71d0: 2c 20 49 4d 4d 45 44 49 41 54 45 2c 20 61 6e 64  , IMMEDIATE, and
71e0: 20 45 58 43 4c 55 53 49 56 45 20 74 72 61 6e 73   EXCLUSIVE trans
71f0: 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  actions.</li>.<l
7200: 69 3e 41 6c 6c 6f 77 20 6e 65 77 20 75 73 65 72  i>Allow new user
7210: 2d 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f  -defined functio
7220: 6e 73 20 74 6f 20 62 65 20 63 72 65 61 74 65 64  ns to be created
7230: 20 77 68 65 6e 20 74 68 65 72 65 20 61 72 65 0a   when there are.
7240: 61 6c 72 65 61 64 79 20 6f 6e 65 20 6f 72 20 6d  already one or m
7250: 6f 72 65 20 70 72 65 63 6f 6d 70 69 6c 65 64 20  ore precompiled 
7260: 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c  SQL statements.<
7270: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 70 6f 72 74  li>.<li>Fix port
7280: 61 62 69 6c 69 74 79 20 70 72 6f 62 6c 65 6d 73  ability problems
7290: 20 66 6f 72 20 4d 69 6e 67 77 2f 4d 53 59 53 2e   for Mingw/MSYS.
72a0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
72b0: 62 79 74 65 20 61 6c 69 67 6e 6d 65 6e 74 20 70  byte alignment p
72c0: 72 6f 62 6c 65 6d 20 6f 6e 20 36 34 2d 62 69 74  roblem on 64-bit
72d0: 20 53 70 61 72 63 20 6d 61 63 68 69 6e 65 73 2e   Sparc machines.
72e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68  </li>.<li>Fix th
72f0: 65 20 22 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d  e ".import" comm
7300: 61 6e 64 20 6f 66 20 74 68 65 20 73 68 65 6c 6c  and of the shell
7310: 20 73 6f 20 74 68 61 74 20 69 74 20 69 67 6e 6f   so that it igno
7320: 72 65 73 20 5c 72 0a 63 68 61 72 61 63 74 65 72  res \r.character
7330: 73 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20  s at the end of 
7340: 6c 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lines.</li>.<li>
7350: 54 68 65 20 22 63 73 76 22 20 6d 6f 64 65 20 6f  The "csv" mode o
7360: 70 74 69 6f 6e 20 69 6e 20 74 68 65 20 73 68 65  ption in the she
7370: 6c 6c 20 70 75 74 73 20 73 74 72 69 6e 67 73 20  ll puts strings 
7380: 69 6e 73 69 64 65 20 64 6f 75 62 6c 65 2d 71 75  inside double-qu
7390: 6f 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  otes.</li>.<li>F
73a0: 69 78 20 74 79 70 6f 73 20 69 6e 20 64 6f 63 75  ix typos in docu
73b0: 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a  mentation.</li>.
73c0: 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 61 72 72 61  <li>Convert arra
73d0: 79 20 63 6f 6e 73 74 61 6e 74 73 20 69 6e 20 74  y constants in t
73e0: 68 65 20 63 6f 64 65 20 74 6f 20 68 61 76 65 20  he code to have 
73f0: 74 79 70 65 20 22 63 6f 6e 73 74 22 2e 3c 2f 6c  type "const".</l
7400: 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73 20  i>.<li>Numerous 
7410: 63 6f 64 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f  code optimizatio
7420: 6e 73 2c 20 73 70 65 63 69 61 6c 6c 79 20 6f 70  ns, specially op
7430: 74 69 6d 69 7a 61 74 69 6f 6e 73 20 64 65 73 69  timizations desi
7440: 67 6e 65 64 20 74 6f 0a 6d 61 6b 65 20 74 68 65  gned to.make the
7450: 20 63 6f 64 65 20 66 6f 6f 74 70 72 69 6e 74 20   code footprint 
7460: 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a  smaller.</li>.}.
7470: 0a 63 68 6e 67 20 7b 32 30 30 34 20 53 65 70 74  .chng {2004 Sept
7480: 65 6d 62 65 72 20 31 38 20 28 33 2e 30 2e 37 29  ember 18 (3.0.7)
7490: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 42 54 72 65  } {.<li>The BTre
74a0: 65 20 6d 6f 64 75 6c 65 20 61 6c 6c 6f 63 61 74  e module allocat
74b0: 65 73 20 6c 61 72 67 65 20 62 75 66 66 65 72 73  es large buffers
74c0: 20 75 73 69 6e 67 20 6d 61 6c 6c 6f 63 28 29 20   using malloc() 
74d0: 69 6e 73 74 65 61 64 20 6f 66 0a 20 20 20 20 6f  instead of.    o
74e0: 66 66 20 6f 66 20 74 68 65 20 73 74 61 63 6b 2c  ff of the stack,
74f0: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 6c 61   in order to pla
7500: 79 20 62 65 74 74 65 72 20 6f 6e 20 6d 61 63 68  y better on mach
7510: 69 6e 65 73 20 77 69 74 68 20 6c 69 6d 69 74 65  ines with limite
7520: 64 0a 20 20 20 20 73 74 61 63 6b 20 73 70 61 63  d.    stack spac
7530: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65  e.</li>.<li>Fixe
7540: 64 20 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63  d naming conflic
7550: 74 73 20 73 6f 20 74 68 61 74 20 76 65 72 73 69  ts so that versi
7560: 6f 6e 73 20 32 2e 38 20 61 6e 64 20 33 2e 30 20  ons 2.8 and 3.0 
7570: 63 61 6e 20 62 65 0a 20 20 20 20 6c 69 6e 6b 65  can be.    linke
7580: 64 20 61 6e 64 20 75 73 65 64 20 74 6f 67 65 74  d and used toget
7590: 68 65 72 20 69 6e 20 74 68 65 20 73 61 6d 65 20  her in the same 
75a0: 41 4e 53 49 2d 43 20 73 6f 75 72 63 65 20 66 69  ANSI-C source fi
75b0: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77  le.</li>.<li>New
75c0: 20 69 6e 74 65 72 66 61 63 65 3a 20 73 71 6c 69   interface: sqli
75d0: 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74  te3_bind_paramet
75e0: 65 72 5f 69 6e 64 65 78 28 29 3c 2f 6c 69 3e 0a  er_index()</li>.
75f0: 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20  <li>Add support 
7600: 66 6f 72 20 77 69 6c 64 63 61 72 64 20 70 61 72  for wildcard par
7610: 61 6d 65 74 65 72 73 20 6f 66 20 74 68 65 20 66  ameters of the f
7620: 6f 72 6d 3a 20 22 3f 6e 6e 6e 22 3c 2f 6c 69 3e  orm: "?nnn"</li>
7630: 0a 3c 6c 69 3e 46 69 78 20 70 72 6f 62 6c 65 6d  .<li>Fix problem
7640: 73 20 66 6f 75 6e 64 20 6f 6e 20 36 34 2d 62 69  s found on 64-bi
7650: 74 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a  t systems.</li>.
7660: 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 65 6e 63 6f  <li>Removed enco
7670: 64 65 2e 63 20 66 69 6c 65 20 28 63 6f 6e 74 61  de.c file (conta
7680: 69 6e 69 6e 67 20 75 6e 75 73 65 64 20 72 6f 75  ining unused rou
7690: 74 69 6e 65 73 29 20 66 72 6f 6d 20 74 68 65 20  tines) from the 
76a0: 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 33 2e 30  .    version 3.0
76b0: 20 73 6f 75 72 63 65 20 74 72 65 65 2e 3c 2f 6c   source tree.</l
76c0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74  i>.<li>The sqlit
76d0: 65 33 5f 74 72 61 63 65 28 29 20 63 61 6c 6c 62  e3_trace() callb
76e0: 61 63 6b 73 20 6f 63 63 75 72 20 62 65 66 6f 72  acks occur befor
76f0: 65 20 65 61 63 68 20 73 74 61 74 65 6d 65 6e 74  e each statement
7700: 0a 20 20 20 20 69 73 20 65 78 65 63 75 74 65 64  .    is executed
7710: 2c 20 6e 6f 74 20 77 68 65 6e 20 74 68 65 20 73  , not when the s
7720: 74 61 74 65 6d 65 6e 74 20 69 73 20 63 6f 6d 70  tatement is comp
7730: 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  iled.</li>.<li>M
7740: 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73 20  akefile updates 
7750: 61 6e 64 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75  and miscellaneou
7760: 73 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69  s bug fixes.</li
7770: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
7780: 53 65 70 74 65 6d 62 65 72 20 30 32 20 28 33 2e  September 02 (3.
7790: 30 2e 36 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69  0.6 beta)} {.<li
77a0: 3e 42 65 74 74 65 72 20 64 65 74 65 63 74 69 6f  >Better detectio
77b0: 6e 20 61 6e 64 20 68 61 6e 64 6c 69 6e 67 20 6f  n and handling o
77c0: 66 20 63 6f 72 72 75 70 74 20 64 61 74 61 62 61  f corrupt databa
77d0: 73 65 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c  se files.</li>.<
77e0: 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33 5f 73  li>The sqlite3_s
77f0: 74 65 70 28 29 20 69 6e 74 65 72 66 61 63 65 20  tep() interface 
7800: 72 65 74 75 72 6e 73 20 53 51 4c 49 54 45 5f 42  returns SQLITE_B
7810: 55 53 59 20 69 66 20 69 74 20 69 73 20 75 6e 61  USY if it is una
7820: 62 6c 65 0a 20 20 20 20 74 6f 20 63 6f 6d 6d 69  ble.    to commi
7830: 74 20 61 20 63 68 61 6e 67 65 20 62 65 63 61 75  t a change becau
7840: 73 65 20 6f 66 20 61 20 6c 6f 63 6b 3c 2f 6c 69  se of a lock</li
7850: 3e 0a 3c 6c 69 3e 43 6f 6d 62 69 6e 65 20 74 68  >.<li>Combine th
7860: 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  e implementation
7870: 73 20 6f 66 20 4c 49 4b 45 20 61 6e 64 20 47 4c  s of LIKE and GL
7880: 4f 42 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65  OB into a single
7890: 0a 20 20 20 20 70 61 74 74 65 72 6e 2d 6d 61 74  .    pattern-mat
78a0: 63 68 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65  ching subroutine
78b0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 73 63 65  .</li>.<li>Misce
78c0: 6c 6c 61 6e 65 6f 75 73 20 63 6f 64 65 20 73 69  llaneous code si
78d0: 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  ze optimizations
78e0: 20 61 6e 64 20 62 75 67 20 66 69 78 65 73 3c 2f   and bug fixes</
78f0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
7900: 34 20 41 75 67 75 73 74 20 32 39 20 28 33 2e 30  4 August 29 (3.0
7910: 2e 35 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e  .5 beta)} {.<li>
7920: 53 75 70 70 6f 72 74 20 66 6f 72 20 22 3a 41 41  Support for ":AA
7930: 41 22 20 73 74 79 6c 65 20 62 69 6e 64 20 70 61  A" style bind pa
7940: 72 61 6d 65 74 65 72 20 6e 61 6d 65 73 2e 3c 2f  rameter names.</
7950: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
7960: 65 20 6e 65 77 20 73 71 6c 69 74 65 33 5f 62 69  e new sqlite3_bi
7970: 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d  nd_parameter_nam
7980: 65 28 29 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  e() interface.</
7990: 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20  li>.<li>Support 
79a0: 66 6f 72 20 54 43 4c 20 76 61 72 69 61 62 6c 65  for TCL variable
79b0: 20 6e 61 6d 65 73 20 65 6d 62 65 64 64 65 64 20   names embedded 
79c0: 69 6e 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74  in SQL statement
79d0: 73 20 69 6e 20 74 68 65 0a 20 20 20 20 54 43 4c  s in the.    TCL
79e0: 20 62 69 6e 64 69 6e 67 73 2e 3c 2f 6c 69 3e 0a   bindings.</li>.
79f0: 3c 6c 69 3e 54 68 65 20 54 43 4c 20 62 69 6e 64  <li>The TCL bind
7a00: 69 6e 67 73 20 74 72 61 6e 73 66 65 72 20 64 61  ings transfer da
7a10: 74 61 20 77 69 74 68 6f 75 74 20 6e 65 63 65 73  ta without neces
7a20: 73 61 72 69 6c 79 20 64 6f 69 6e 67 20 61 20 63  sarily doing a c
7a30: 6f 6e 76 65 72 73 69 6f 6e 0a 20 20 20 20 74 6f  onversion.    to
7a40: 20 61 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a   a string.</li>.
7a50: 3c 6c 69 3e 54 68 65 20 64 61 74 61 62 61 73 65  <li>The database
7a60: 20 66 6f 72 20 54 45 4d 50 20 74 61 62 6c 65 73   for TEMP tables
7a70: 20 69 73 20 6e 6f 74 20 63 72 65 61 74 65 64 20   is not created 
7a80: 75 6e 74 69 6c 20 69 74 20 69 73 20 6e 65 65 64  until it is need
7a90: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ed.</li>.<li>Add
7aa0: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
7ab0: 73 70 65 63 69 66 79 20 61 6e 20 61 6c 74 65 72  specify an alter
7ac0: 6e 61 74 69 76 65 20 74 65 6d 70 6f 72 61 72 79  native temporary
7ad0: 20 66 69 6c 65 20 64 69 72 65 63 74 6f 72 79 0a   file directory.
7ae0: 20 20 20 20 75 73 69 6e 67 20 74 68 65 20 22 73      using the "s
7af0: 71 6c 69 74 65 5f 74 65 6d 70 5f 64 69 72 65 63  qlite_temp_direc
7b00: 74 6f 72 79 22 20 67 6c 6f 62 61 6c 20 76 61 72  tory" global var
7b10: 69 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  iable.</li>.<li>
7b20: 41 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f  A compile-time o
7b30: 70 74 69 6f 6e 20 28 53 51 4c 49 54 45 5f 42 55  ption (SQLITE_BU
7b40: 53 59 5f 52 45 53 45 52 56 45 44 5f 4c 4f 43 4b  SY_RESERVED_LOCK
7b50: 29 20 63 61 75 73 65 73 20 74 68 65 20 62 75 73  ) causes the bus
7b60: 79 0a 20 20 20 20 68 61 6e 64 6c 65 72 20 74 6f  y.    handler to
7b70: 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20   be called when 
7b80: 74 68 65 72 65 20 69 73 20 63 6f 6e 74 65 6e 74  there is content
7b90: 69 6f 6e 20 66 6f 72 20 61 20 52 45 53 45 52 56  ion for a RESERV
7ba0: 45 44 20 6c 6f 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c  ED lock.</li>.<l
7bb0: 69 3e 56 61 72 69 6f 75 73 20 62 75 67 20 66 69  i>Various bug fi
7bc0: 78 65 73 20 61 6e 64 20 6f 70 74 69 6d 69 7a 61  xes and optimiza
7bd0: 74 69 6f 6e 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tions</li>.}..ch
7be0: 6e 67 20 7b 32 30 30 34 20 41 75 67 75 73 74 20  ng {2004 August 
7bf0: 38 20 28 33 2e 30 2e 34 20 62 65 74 61 29 7d 20  8 (3.0.4 beta)} 
7c00: 7b 0a 3c 6c 69 3e 43 52 45 41 54 45 20 54 41 42  {.<li>CREATE TAB
7c10: 4c 45 20 61 6e 64 20 44 52 4f 50 20 54 41 42 4c  LE and DROP TABL
7c20: 45 20 6e 6f 77 20 77 6f 72 6b 20 63 6f 72 72 65  E now work corre
7c30: 63 74 6c 79 20 61 73 20 70 72 65 70 61 72 65 64  ctly as prepared
7c40: 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69   statements.</li
7c50: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
7c60: 69 6e 20 56 41 43 55 55 4d 20 61 6e 64 20 55 4e  in VACUUM and UN
7c70: 49 51 55 45 20 69 6e 64 69 63 65 73 2e 3c 2f 6c  IQUE indices.</l
7c80: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 22  i>.<li>Add the "
7c90: 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d 61 6e 64  .import" command
7ca0: 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d   to the command-
7cb0: 6c 69 6e 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e  line shell.</li>
7cc0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
7cd0: 68 61 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20  hat could cause 
7ce0: 69 6e 64 65 78 20 63 6f 72 72 75 70 74 69 6f 6e  index corruption
7cf0: 20 77 68 65 6e 20 61 6e 20 61 74 74 65 6d 70 74   when an attempt
7d00: 20 74 6f 0a 20 20 20 20 64 65 6c 65 74 65 20 72   to.    delete r
7d10: 6f 77 73 20 6f 66 20 61 20 74 61 62 6c 65 20 69  ows of a table i
7d20: 73 20 62 6c 6f 63 6b 65 64 20 62 79 20 61 20 70  s blocked by a p
7d30: 65 6e 64 69 6e 67 20 71 75 65 72 79 2e 3c 2f 6c  ending query.</l
7d40: 69 3e 0a 3c 6c 69 3e 4c 69 62 72 61 72 79 20 73  i>.<li>Library s
7d50: 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  ize optimization
7d60: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65  s.</li>.<li>Othe
7d70: 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65  r minor bug fixe
7d80: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
7d90: 7b 32 30 30 34 20 4a 75 6c 79 20 32 32 20 28 32  {2004 July 22 (2
7da0: 2e 38 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 54 68  .8.15)} {.<li>Th
7db0: 69 73 20 69 73 20 61 20 6d 61 69 6e 74 65 6e 61  is is a maintena
7dc0: 6e 63 65 20 72 65 6c 65 61 73 65 20 6f 6e 6c 79  nce release only
7dd0: 2e 20 20 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72  .  Various minor
7de0: 20 62 75 67 73 20 68 61 76 65 20 62 65 65 6e 0a   bugs have been.
7df0: 66 69 78 65 64 20 61 6e 64 20 73 6f 6d 65 20 70  fixed and some p
7e00: 6f 72 74 61 62 69 6c 69 74 79 20 65 6e 68 61 6e  ortability enhan
7e10: 63 65 6d 65 6e 74 73 20 61 72 65 20 61 64 64 65  cements are adde
7e20: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
7e30: 7b 32 30 30 34 20 4a 75 6c 79 20 32 32 20 28 33  {2004 July 22 (3
7e40: 2e 30 2e 33 20 62 65 74 61 29 7d 20 7b 0a 3c 6c  .0.3 beta)} {.<l
7e50: 69 3e 54 68 65 20 73 65 63 6f 6e 64 20 62 65 74  i>The second bet
7e60: 61 20 72 65 6c 65 61 73 65 20 66 6f 72 20 53 51  a release for SQ
7e70: 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 3c  Lite 3.0.</li>.<
7e80: 6c 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66  li>Add support f
7e90: 6f 72 20 22 50 52 41 47 4d 41 20 70 61 67 65 5f  or "PRAGMA page_
7ea0: 73 69 7a 65 22 20 74 6f 20 61 64 6a 75 73 74 20  size" to adjust 
7eb0: 74 68 65 20 70 61 67 65 20 73 69 7a 65 20 6f 66  the page size of
7ec0: 0a 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f  .the database.</
7ed0: 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20  li>.<li>Various 
7ee0: 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 64 6f  bug fixes and do
7ef0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
7f00: 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  tes.</li>.}..chn
7f10: 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 33 30 20  g {2004 June 30 
7f20: 28 33 2e 30 2e 32 20 62 65 74 61 29 7d 20 7b 0a  (3.0.2 beta)} {.
7f30: 3c 6c 69 3e 54 68 65 20 66 69 72 73 74 20 62 65  <li>The first be
7f40: 74 61 20 72 65 6c 65 61 73 65 20 66 6f 72 20 53  ta release for S
7f50: 51 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a  QLite 3.0.</li>.
7f60: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
7f70: 6e 65 20 32 32 20 28 33 2e 30 2e 31 20 61 6c 70  ne 22 (3.0.1 alp
7f80: 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74  ha)} {.<li><font
7f90: 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e   color="red"><b>
7fa0: 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52  .    *** Alpha R
7fb0: 65 6c 65 61 73 65 20 2d 20 52 65 73 65 61 72 63  elease - Researc
7fc0: 68 20 41 6e 64 20 54 65 73 74 69 6e 67 20 55 73  h And Testing Us
7fd0: 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f  e Only ***</b></
7fe0: 66 6f 6e 74 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f  font>.<li>Lots o
7ff0: 66 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69  f bug fixes.</li
8000: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
8010: 4a 75 6e 65 20 31 38 20 28 33 2e 30 2e 30 20 61  June 18 (3.0.0 a
8020: 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f  lpha)} {.<li><fo
8030: 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c  nt color="red"><
8040: 62 3e 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61  b>.    *** Alpha
8050: 20 52 65 6c 65 61 73 65 20 2d 20 52 65 73 65 61   Release - Resea
8060: 72 63 68 20 41 6e 64 20 54 65 73 74 69 6e 67 20  rch And Testing 
8070: 55 73 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e  Use Only ***</b>
8080: 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 53 75 70 70  </font>.<li>Supp
8090: 6f 72 74 20 66 6f 72 20 69 6e 74 65 72 6e 61 74  ort for internat
80a0: 69 6f 6e 61 6c 69 7a 61 74 69 6f 6e 20 69 6e 63  ionalization inc
80b0: 6c 75 64 69 6e 67 20 55 54 46 2d 38 2c 20 55 54  luding UTF-8, UT
80c0: 46 2d 31 36 2c 20 61 6e 64 0a 20 20 20 20 75 73  F-16, and.    us
80d0: 65 72 20 64 65 66 69 6e 65 64 20 63 6f 6c 6c 61  er defined colla
80e0: 74 69 6e 67 20 73 65 71 75 65 6e 63 65 73 2e 3c  ting sequences.<
80f0: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 66 69 6c  /li>.<li>New fil
8100: 65 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73  e format that is
8110: 20 32 35 25 20 74 6f 20 33 35 25 20 73 6d 61 6c   25% to 35% smal
8120: 6c 65 72 20 66 6f 72 20 74 79 70 69 63 61 6c 20  ler for typical 
8130: 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d  use.</li>.<li>Im
8140: 70 72 6f 76 65 64 20 63 6f 6e 63 75 72 72 65 6e  proved concurren
8150: 63 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 74 6f  cy.</li>.<li>Ato
8160: 6d 69 63 20 63 6f 6d 6d 69 74 73 20 66 6f 72 20  mic commits for 
8170: 41 54 54 41 43 48 65 64 20 64 61 74 61 62 61 73  ATTACHed databas
8180: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  es.</li>.<li>Rem
8190: 6f 76 65 20 63 72 75 66 74 20 66 72 6f 6d 20 74  ove cruft from t
81a0: 68 65 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c  he APIs.</li>.<l
81b0: 69 3e 42 4c 4f 42 20 73 75 70 70 6f 72 74 2e 3c  i>BLOB support.<
81c0: 2f 6c 69 3e 0a 3c 6c 69 3e 36 34 2d 62 69 74 20  /li>.<li>64-bit 
81d0: 72 6f 77 69 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  rowids.</li>.<li
81e0: 3e 3c 61 20 68 72 65 66 3d 22 76 65 72 73 69 6f  ><a href="versio
81f0: 6e 33 2e 68 74 6d 6c 22 3e 4d 6f 72 65 20 69 6e  n3.html">More in
8200: 66 6f 72 6d 61 74 69 6f 6e 3c 2f 61 3e 2e 0a 7d  formation</a>..}
8210: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e  ..chng {2004 Jun
8220: 65 20 39 20 28 32 2e 38 2e 31 34 29 7d 20 7b 0a  e 9 (2.8.14)} {.
8230: 3c 6c 69 3e 46 69 78 20 74 68 65 20 6d 69 6e 28  <li>Fix the min(
8240: 29 20 61 6e 64 20 6d 61 78 28 29 20 6f 70 74 69  ) and max() opti
8250: 6d 69 7a 65 72 20 73 6f 20 74 68 61 74 20 69 74  mizer so that it
8260: 20 77 6f 72 6b 73 20 77 68 65 6e 20 74 68 65 20   works when the 
8270: 46 52 4f 4d 0a 20 20 20 20 63 6c 61 75 73 65 20  FROM.    clause 
8280: 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 20 73 75  consists of a su
8290: 62 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69  bquery.</li>.<li
82a0: 3e 49 67 6e 6f 72 65 20 65 78 74 72 61 20 77 68  >Ignore extra wh
82b0: 69 74 65 73 70 61 63 65 20 61 74 20 74 68 65 20  itespace at the 
82c0: 65 6e 64 20 6f 66 20 6f 66 20 22 2e 22 20 63 6f  end of of "." co
82d0: 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 73 68  mmands in the sh
82e0: 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ell.</li>.<li>Bu
82f0: 6e 64 6c 65 20 73 71 6c 69 74 65 5f 65 6e 63 6f  ndle sqlite_enco
8300: 64 65 5f 62 69 6e 61 72 79 28 29 20 61 6e 64 20  de_binary() and 
8310: 73 71 6c 69 74 65 5f 64 65 63 6f 64 65 5f 62 69  sqlite_decode_bi
8320: 6e 61 72 79 28 29 20 77 69 74 68 20 74 68 65 20  nary() with the 
8330: 0a 20 20 20 20 6c 69 62 72 61 72 79 2e 3c 2f 6c  .    library.</l
8340: 69 3e 0a 3c 6c 69 3e 54 68 65 20 54 45 4d 50 5f  i>.<li>The TEMP_
8350: 53 54 4f 52 45 20 61 6e 64 20 44 45 46 41 55 4c  STORE and DEFAUL
8360: 54 5f 54 45 4d 50 5f 53 54 4f 52 45 20 70 72 61  T_TEMP_STORE pra
8370: 67 6d 61 73 20 6e 6f 77 20 77 6f 72 6b 2e 3c 2f  gmas now work.</
8380: 6c 69 3e 0a 3c 6c 69 3e 43 6f 64 65 20 63 68 61  li>.<li>Code cha
8390: 6e 67 65 73 20 74 6f 20 63 6f 6d 70 69 6c 65 20  nges to compile 
83a0: 63 6c 65 61 6e 6c 79 20 75 73 69 6e 67 20 4f 70  cleanly using Op
83b0: 65 6e 57 61 74 63 6f 6d 2e 3c 2f 6c 69 3e 0a 3c  enWatcom.</li>.<
83c0: 6c 69 3e 46 69 78 20 56 44 42 45 20 73 74 61 63  li>Fix VDBE stac
83d0: 6b 20 6f 76 65 72 66 6c 6f 77 20 70 72 6f 62 6c  k overflow probl
83e0: 65 6d 73 20 77 69 74 68 20 49 4e 53 54 45 41 44  ems with INSTEAD
83f0: 20 4f 46 20 74 72 69 67 67 65 72 73 20 61 6e 64   OF triggers and
8400: 0a 20 20 20 20 4e 55 4c 4c 73 20 69 6e 20 49 4e  .    NULLs in IN
8410: 20 6f 70 65 72 61 74 6f 72 73 2e 3c 2f 6c 69 3e   operators.</li>
8420: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 67 6c 6f  .<li>Add the glo
8430: 62 61 6c 20 76 61 72 69 61 62 6c 65 20 73 71 6c  bal variable sql
8440: 69 74 65 5f 74 65 6d 70 5f 64 69 72 65 63 74 6f  ite_temp_directo
8450: 72 79 20 77 68 69 63 68 20 69 66 20 73 65 74 20  ry which if set 
8460: 64 65 66 69 6e 65 73 20 74 68 65 0a 20 20 20 20  defines the.    
8470: 64 69 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69  directory in whi
8480: 63 68 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c  ch temporary fil
8490: 65 73 20 61 72 65 20 73 74 6f 72 65 64 2e 3c 2f  es are stored.</
84a0: 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 69  li>.<li>sqlite_i
84b0: 6e 74 65 72 72 75 70 74 28 29 20 70 6c 61 79 73  nterrupt() plays
84c0: 20 77 65 6c 6c 20 77 69 74 68 20 56 41 43 55 55   well with VACUU
84d0: 4d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65  M.</li>.<li>Othe
84e0: 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65  r minor bug fixe
84f0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
8500: 7b 32 30 30 34 20 4d 61 72 63 68 20 38 20 28 32  {2004 March 8 (2
8510: 2e 38 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e 52 65  .8.13)} {.<li>Re
8520: 66 61 63 74 6f 72 20 70 61 72 74 73 20 6f 66 20  factor parts of 
8530: 74 68 65 20 63 6f 64 65 20 69 6e 20 6f 72 64 65  the code in orde
8540: 72 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 63 6f  r to make the co
8550: 64 65 20 66 6f 6f 74 70 72 69 6e 74 0a 20 20 20  de footprint.   
8560: 20 73 6d 61 6c 6c 65 72 2e 20 20 54 68 65 20 63   smaller.  The c
8570: 6f 64 65 20 69 73 20 6e 6f 77 20 61 6c 73 6f 20  ode is now also 
8580: 61 20 6c 69 74 74 6c 65 20 62 69 74 20 66 61 73  a little bit fas
8590: 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71  ter.</li>.<li>sq
85a0: 6c 69 74 65 5f 65 78 65 63 28 29 20 69 73 20 6e  lite_exec() is n
85b0: 6f 77 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61  ow implemented a
85c0: 73 20 61 20 77 72 61 70 70 65 72 20 61 72 6f 75  s a wrapper arou
85d0: 6e 64 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c  nd sqlite_compil
85e0: 65 28 29 0a 20 20 20 20 61 6e 64 20 73 71 6c 69  e().    and sqli
85f0: 74 65 5f 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a  te_step().</li>.
8600: 3c 6c 69 3e 54 68 65 20 62 75 69 6c 74 2d 69 6e  <li>The built-in
8610: 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78 28 29   min() and max()
8620: 20 66 75 6e 63 74 69 6f 6e 73 20 6e 6f 77 20 68   functions now h
8630: 6f 6e 6f 72 20 74 68 65 20 64 69 66 66 65 72 65  onor the differe
8640: 6e 63 65 20 62 65 74 77 65 65 6e 0a 20 20 20 20  nce between.    
8650: 4e 55 4d 45 52 49 43 20 61 6e 64 20 54 45 58 54  NUMERIC and TEXT
8660: 20 64 61 74 61 74 79 70 65 73 2e 20 20 46 6f 72   datatypes.  For
8670: 6d 65 72 6c 79 2c 20 6d 69 6e 28 29 20 61 6e 64  merly, min() and
8680: 20 6d 61 78 28 29 20 61 6c 77 61 79 73 20 61 73   max() always as
8690: 73 75 6d 65 64 0a 20 20 20 20 74 68 65 69 72 20  sumed.    their 
86a0: 61 72 67 75 6d 65 6e 74 73 20 77 65 72 65 20 6f  arguments were o
86b0: 66 20 74 79 70 65 20 4e 55 4d 45 52 49 43 2e 3c  f type NUMERIC.<
86c0: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 48 48 3a  /li>.<li>New HH:
86d0: 4d 4d 3a 53 53 20 6d 6f 64 69 66 69 65 72 20 74  MM:SS modifier t
86e0: 6f 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 64  o the built-in d
86f0: 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f  ate/time functio
8700: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70  ns.</li>.<li>Exp
8710: 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65  erimental sqlite
8720: 5f 6c 61 73 74 5f 73 74 61 74 65 6d 65 6e 74 5f  _last_statement_
8730: 63 68 61 6e 67 65 73 28 29 20 41 50 49 20 61 64  changes() API ad
8740: 64 65 64 2e 20 20 46 69 78 65 64 20 74 68 65 0a  ded.  Fixed the.
8750: 20 20 20 20 74 68 65 20 6c 61 73 74 5f 69 6e 73      the last_ins
8760: 65 72 74 5f 72 6f 77 69 64 28 29 20 66 75 6e 63  ert_rowid() func
8770: 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 69 74 20  tion so that it 
8780: 77 6f 72 6b 73 20 63 6f 72 72 65 63 74 6c 79 20  works correctly 
8790: 77 69 74 68 0a 20 20 20 20 74 72 69 67 67 65 72  with.    trigger
87a0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  s.</li>.<li>Add 
87b0: 66 75 6e 63 74 69 6f 6e 73 20 70 72 6f 74 6f 74  functions protot
87c0: 79 70 65 73 20 66 6f 72 20 74 68 65 20 64 61 74  ypes for the dat
87d0: 61 62 61 73 65 20 65 6e 63 72 79 70 74 69 6f 6e  abase encryption
87e0: 20 41 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46   API.</li>.<li>F
87f0: 69 78 20 73 65 76 65 72 61 6c 20 6e 75 69 73 61  ix several nuisa
8800: 6e 63 65 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 7d  nce bugs.</li>.}
8810: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 46 65 62  ..chng {2004 Feb
8820: 72 75 61 72 79 20 38 20 28 32 2e 38 2e 31 32 29  ruary 8 (2.8.12)
8830: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
8840: 67 20 74 68 61 74 20 77 69 6c 6c 20 6d 69 67 68  g that will migh
8850: 74 20 63 6f 72 72 75 70 74 20 74 68 65 20 72 6f  t corrupt the ro
8860: 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 20 69  llback journal i
8870: 66 20 61 20 70 6f 77 65 72 20 66 61 69 6c 75 72  f a power failur
8880: 65 0a 20 20 20 20 6f 72 20 65 78 74 65 72 6e 61  e.    or externa
8890: 6c 20 70 72 6f 67 72 61 6d 20 68 61 6c 74 20 6f  l program halt o
88a0: 63 63 75 72 73 20 69 6e 20 74 68 65 20 6d 69 64  ccurs in the mid
88b0: 64 6c 65 20 6f 66 20 61 20 43 4f 4d 4d 49 54 2e  dle of a COMMIT.
88c0: 20 20 54 68 65 20 63 6f 72 72 75 70 74 0a 20 20    The corrupt.  
88d0: 20 20 6a 6f 75 72 6e 61 6c 20 63 61 6e 20 6c 65    journal can le
88e0: 61 64 20 74 6f 20 64 61 74 61 62 61 73 65 20 63  ad to database c
88f0: 6f 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 69  orruption when i
8900: 74 20 69 73 20 72 6f 6c 6c 65 64 20 62 61 63 6b  t is rolled back
8910: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 64 75 63  .</li>.<li>Reduc
8920: 65 20 74 68 65 20 73 69 7a 65 20 61 6e 64 20 69  e the size and i
8930: 6e 63 72 65 61 73 65 20 74 68 65 20 73 70 65 65  ncrease the spee
8940: 64 20 6f 66 20 76 61 72 69 6f 75 73 20 6d 6f 64  d of various mod
8950: 75 6c 65 73 2c 20 65 73 70 65 63 69 61 6c 6c 79  ules, especially
8960: 0a 20 20 20 20 74 68 65 20 76 69 72 74 75 61 6c  .    the virtual
8970: 20 6d 61 63 68 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c   machine.</li>.<
8980: 6c 69 3e 41 6c 6c 6f 77 20 22 26 6c 74 3b 65 78  li>Allow "&lt;ex
8990: 70 72 26 67 74 3b 20 49 4e 20 26 6c 74 3b 74 61  pr&gt; IN &lt;ta
89a0: 62 6c 65 26 67 74 3b 22 20 61 73 20 61 20 73 68  ble&gt;" as a sh
89b0: 6f 72 74 68 61 6e 64 20 66 6f 72 0a 20 20 20 20  orthand for.    
89c0: 22 26 6c 74 3b 65 78 70 72 26 67 74 3b 20 49 4e  "&lt;expr&gt; IN
89d0: 20 28 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20   (SELECT * FROM 
89e0: 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22 2e 3c  &lt;table&gt;".<
89f0: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 70 74 69 6d 69 7a  /li>.<li>Optimiz
8a00: 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 71  ations to the sq
8a10: 6c 69 74 65 5f 6d 70 72 69 6e 74 66 28 29 20 72  lite_mprintf() r
8a20: 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  outine.</li>.<li
8a30: 3e 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 4d  >Make sure the M
8a40: 49 4e 28 29 20 61 6e 64 20 4d 41 58 28 29 20 6f  IN() and MAX() o
8a50: 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 77 6f 72  ptimizations wor
8a60: 6b 20 77 69 74 68 69 6e 20 73 75 62 71 75 65 72  k within subquer
8a70: 69 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ies.</li>.}..chn
8a80: 67 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20  g {2004 January 
8a90: 31 34 20 28 32 2e 38 2e 31 31 29 7d 20 7b 0a 3c  14 (2.8.11)} {.<
8aa0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
8ab0: 68 6f 77 20 74 68 65 20 49 4e 20 6f 70 65 72 61  how the IN opera
8ac0: 74 6f 72 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c  tor handles NULL
8ad0: 73 20 69 6e 20 73 75 62 71 75 65 72 69 65 73 2e  s in subqueries.
8ae0: 20 20 54 68 65 20 62 75 67 0a 20 20 20 20 77 61    The bug.    wa
8af0: 73 20 69 6e 74 72 6f 64 75 63 65 64 20 62 79 20  s introduced by 
8b00: 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c  the previous rel
8b10: 65 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ease.</li>.}..ch
8b20: 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79  ng {2004 January
8b30: 20 31 33 20 28 32 2e 38 2e 31 30 29 7d 20 7b 0a   13 (2.8.10)} {.
8b40: 3c 6c 69 3e 46 69 78 20 61 20 70 6f 74 65 6e 74  <li>Fix a potent
8b50: 69 61 6c 20 64 61 74 61 62 61 73 65 20 63 6f 72  ial database cor
8b60: 72 75 70 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20  ruption problem 
8b70: 6f 6e 20 55 6e 69 78 20 63 61 75 73 65 64 20 62  on Unix caused b
8b80: 79 20 74 68 65 20 66 61 63 74 0a 20 20 20 20 74  y the fact.    t
8b90: 68 61 74 20 61 6c 6c 20 70 6f 73 69 78 20 61 64  hat all posix ad
8ba0: 76 69 73 6f 72 79 20 6c 6f 63 6b 73 20 61 72 65  visory locks are
8bb0: 20 63 6c 65 61 72 65 64 20 77 68 65 6e 65 76 65   cleared wheneve
8bc0: 72 20 79 6f 75 20 63 6c 6f 73 65 28 29 20 61 20  r you close() a 
8bd0: 66 69 6c 65 2e 0a 20 20 20 20 54 68 65 20 77 6f  file..    The wo
8be0: 72 6b 20 61 72 6f 75 6e 64 20 69 74 20 74 6f 20  rk around it to 
8bf0: 65 6d 62 61 72 67 6f 20 61 6c 6c 20 63 6c 6f 73  embargo all clos
8c00: 65 28 29 20 63 61 6c 6c 73 20 77 68 69 6c 65 20  e() calls while 
8c10: 6c 6f 63 6b 73 20 61 72 65 20 0a 20 20 20 20 6f  locks are .    o
8c20: 75 74 73 74 61 6e 64 69 6e 67 2e 3c 2f 6c 69 3e  utstanding.</li>
8c30: 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65  .<li>Performance
8c40: 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 6f 6e   enhancements on
8c50: 20 73 6f 6d 65 20 63 6f 72 6e 65 72 20 63 61 73   some corner cas
8c60: 65 73 20 6f 66 20 43 4f 55 4e 54 28 2a 29 2e 3c  es of COUNT(*).<
8c70: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75  /li>.<li>Make su
8c80: 72 65 20 74 68 65 20 69 6e 2d 6d 65 6d 6f 72 79  re the in-memory
8c90: 20 62 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73   backend respons
8ca0: 65 20 73 61 6e 65 6c 79 20 69 66 20 6d 61 6c 6c  e sanely if mall
8cb0: 6f 63 28 29 20 66 61 69 6c 73 2e 3c 2f 6c 69 3e  oc() fails.</li>
8cc0: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 73 71 6c 69 74  .<li>Allow sqlit
8cd0: 65 5f 65 78 65 63 28 29 20 74 6f 20 62 65 20 63  e_exec() to be c
8ce0: 61 6c 6c 65 64 20 66 72 6f 6d 20 77 69 74 68 69  alled from withi
8cf0: 6e 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 53  n user-defined S
8d00: 51 4c 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73  QL.    functions
8d10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f  .</li>.<li>Impro
8d20: 76 65 64 20 61 63 63 75 72 61 63 79 20 6f 66 20  ved accuracy of 
8d30: 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63  floating-point c
8d40: 6f 6e 76 65 72 73 69 6f 6e 73 20 75 73 69 6e 67  onversions using
8d50: 20 22 6c 6f 6e 67 20 64 6f 75 62 6c 65 22 2e 3c   "long double".<
8d60: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
8d70: 65 73 20 69 6e 20 74 68 65 20 65 78 70 65 72 69  es in the experi
8d80: 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65  mental date/time
8d90: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
8da0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a  .}..chng {2004 J
8db0: 61 6e 75 61 72 79 20 35 20 28 32 2e 38 2e 39 29  anuary 5 (2.8.9)
8dc0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 33 32  } {.<li>Fix a 32
8dd0: 2d 62 69 74 20 69 6e 74 65 67 65 72 20 6f 76 65  -bit integer ove
8de0: 72 66 6c 6f 77 20 70 72 6f 62 6c 65 6d 20 74 68  rflow problem th
8df0: 61 74 20 63 6f 75 6c 64 20 72 65 73 75 6c 74 20  at could result 
8e00: 69 6e 20 63 6f 72 72 75 70 74 0a 20 20 20 20 69  in corrupt.    i
8e10: 6e 64 69 63 65 73 20 69 6e 20 61 20 64 61 74 61  ndices in a data
8e20: 62 61 73 65 20 69 66 20 6c 61 72 67 65 20 6e 65  base if large ne
8e30: 67 61 74 69 76 65 20 6e 75 6d 62 65 72 73 20 28  gative numbers (
8e40: 6c 65 73 73 20 74 68 61 6e 20 2d 32 31 34 37 34  less than -21474
8e50: 38 33 36 34 38 29 0a 20 20 20 20 77 65 72 65 20  83648).    were 
8e60: 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 61 20  inserted into a 
8e70: 69 6e 64 65 78 65 64 20 6e 75 6d 65 72 69 63 20  indexed numeric 
8e80: 63 6f 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  column.</li>.<li
8e90: 3e 46 69 78 20 61 20 6c 6f 63 6b 69 6e 67 20 70  >Fix a locking p
8ea0: 72 6f 62 6c 65 6d 20 6f 6e 20 6d 75 6c 74 69 2d  roblem on multi-
8eb0: 74 68 72 65 61 64 65 64 20 4c 69 6e 75 78 20 69  threaded Linux i
8ec0: 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2e 3c  mplementations.<
8ed0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 77 61 79 73 20  /li>.<li>Always 
8ee0: 75 73 65 20 22 2e 22 20 69 6e 73 74 65 61 64 20  use "." instead 
8ef0: 6f 66 20 22 2c 22 20 61 73 20 74 68 65 20 64 65  of "," as the de
8f00: 63 69 6d 61 6c 20 70 6f 69 6e 74 20 65 76 65 6e  cimal point even
8f10: 20 69 66 20 74 68 65 20 6c 6f 63 61 6c 65 0a 20   if the locale. 
8f20: 20 20 20 72 65 71 75 65 73 74 73 20 22 2c 22 2e     requests ",".
8f30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
8f40: 55 54 43 20 74 6f 20 6c 6f 63 61 6c 74 69 6d 65  UTC to localtime
8f50: 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 74 6f 20   conversions to 
8f60: 74 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c  the experimental
8f70: 20 64 61 74 65 2f 74 69 6d 65 0a 20 20 20 20 66   date/time.    f
8f80: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  unctions.</li>.<
8f90: 6c 69 3e 42 75 67 20 66 69 78 65 73 20 74 6f 20  li>Bug fixes to 
8fa0: 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69  date/time functi
8fb0: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ons.</li>.}..chn
8fc0: 67 20 7b 32 30 30 33 20 44 65 63 65 6d 62 65 72  g {2003 December
8fd0: 20 31 37 20 28 32 2e 38 2e 38 29 7d 20 7b 0a 3c   17 (2.8.8)} {.<
8fe0: 6c 69 3e 46 69 78 20 61 20 63 72 69 74 69 63 61  li>Fix a critica
8ff0: 6c 20 62 75 67 20 69 6e 74 72 6f 64 75 63 65 64  l bug introduced
9000: 20 69 6e 74 6f 20 32 2e 38 2e 30 20 77 68 69 63   into 2.8.0 whic
9010: 68 20 63 6f 75 6c 64 20 63 61 75 73 65 0a 20 20  h could cause.  
9020: 20 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75    database corru
9030: 70 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ption.</li>.<li>
9040: 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69  Fix a problem wi
9050: 74 68 20 33 2d 77 61 79 20 6a 6f 69 6e 73 20 74  th 3-way joins t
9060: 68 61 74 20 64 6f 20 6e 6f 74 20 75 73 65 20 69  hat do not use i
9070: 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ndices</li>.<li>
9080: 54 68 65 20 56 41 43 55 55 4d 20 63 6f 6d 6d 61  The VACUUM comma
9090: 6e 64 20 6e 6f 77 20 77 6f 72 6b 73 20 77 69 74  nd now works wit
90a0: 68 20 74 68 65 20 6e 6f 6e 2d 63 61 6c 6c 62 61  h the non-callba
90b0: 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ck API</li>.<li>
90c0: 49 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20  Improvements to 
90d0: 74 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74 65  the "PRAGMA inte
90e0: 67 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f 6d  grity_check" com
90f0: 6d 61 6e 64 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  mand</li>.}..chn
9100: 67 20 7b 32 30 30 33 20 44 65 63 65 6d 62 65 72  g {2003 December
9110: 20 34 20 28 32 2e 38 2e 37 29 7d 20 7b 0a 3c 6c   4 (2.8.7)} {.<l
9120: 69 3e 41 64 64 65 64 20 65 78 70 65 72 69 6d 65  i>Added experime
9130: 6e 74 61 6c 20 73 71 6c 69 74 65 5f 62 69 6e 64  ntal sqlite_bind
9140: 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 72 65  () and sqlite_re
9150: 73 65 74 28 29 20 41 50 49 73 2e 3c 2f 6c 69 3e  set() APIs.</li>
9160: 0a 3c 6c 69 3e 49 66 20 74 68 65 20 6e 61 6d 65  .<li>If the name
9170: 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65   of the database
9180: 20 69 73 20 61 6e 20 65 6d 70 74 79 20 73 74 72   is an empty str
9190: 69 6e 67 2c 20 6f 70 65 6e 20 61 20 6e 65 77 20  ing, open a new 
91a0: 64 61 74 61 62 61 73 65 0a 20 20 20 20 69 6e 20  database.    in 
91b0: 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65  a temporary file
91c0: 20 74 68 61 74 20 69 73 20 61 75 74 6f 6d 61 74   that is automat
91d0: 69 63 61 6c 6c 79 20 64 65 6c 65 74 65 64 20 77  ically deleted w
91e0: 68 65 6e 20 74 68 65 20 64 61 74 61 62 61 73 65  hen the database
91f0: 0a 20 20 20 20 69 73 20 63 6c 6f 73 65 64 2e 3c  .    is closed.<
9200: 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d  /li>.<li>Perform
9210: 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74  ance enhancement
9220: 73 20 69 6e 20 74 68 65 20 6c 65 6d 6f 6e 2d 67  s in the lemon-g
9230: 65 6e 65 72 61 74 65 64 20 70 61 72 73 65 72 3c  enerated parser<
9240: 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d  /li>.<li>Experim
9250: 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20  ental date/time 
9260: 66 75 6e 63 74 69 6f 6e 73 20 72 65 76 69 73 65  functions revise
9270: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 69 73 61  d.</li>.<li>Disa
9280: 6c 6c 6f 77 20 74 65 6d 70 6f 72 61 72 79 20 69  llow temporary i
9290: 6e 64 69 63 65 73 20 6f 6e 20 70 65 72 6d 61 6e  ndices on perman
92a0: 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e  ent tables.</li>
92b0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
92c0: 6f 6e 20 75 70 64 61 74 65 73 20 61 6e 64 20 74  on updates and t
92d0: 79 70 6f 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c  ypo fixes</li>.<
92e0: 6c 69 3e 41 64 64 65 64 20 65 78 70 65 72 69 6d  li>Added experim
92f0: 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 70 72 6f  ental sqlite_pro
9300: 67 72 65 73 73 5f 68 61 6e 64 6c 65 72 28 29 20  gress_handler() 
9310: 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f 6c 69  callback API</li
9320: 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 75  >.<li>Removed su
9330: 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 4f 72  pport for the Or
9340: 61 63 6c 65 38 20 6f 75 74 65 72 20 6a 6f 69 6e  acle8 outer join
9350: 20 73 79 6e 74 61 78 2e 3c 2f 6c 69 3e 0a 3c 6c   syntax.</li>.<l
9360: 69 3e 41 6c 6c 6f 77 20 47 4c 4f 42 20 61 6e 64  i>Allow GLOB and
9370: 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 73 20   LIKE operators 
9380: 74 6f 20 77 6f 72 6b 20 61 73 20 66 75 6e 63 74  to work as funct
9390: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  ions.</li>.<li>O
93a0: 74 68 65 72 20 6d 69 6e 6f 72 20 64 6f 63 75 6d  ther minor docum
93b0: 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20 6d 61 6b  entation and mak
93c0: 65 66 69 6c 65 20 63 68 61 6e 67 65 73 20 61 6e  efile changes an
93d0: 64 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69  d bug fixes.</li
93e0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
93f0: 41 75 67 75 73 74 20 32 31 20 28 32 2e 38 2e 36  August 21 (2.8.6
9400: 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 76 65 64 20 74  )} {.<li>Moved t
9410: 68 65 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72  he CVS repositor
9420: 79 20 74 6f 20 77 77 77 2e 73 71 6c 69 74 65 2e  y to www.sqlite.
9430: 6f 72 67 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64  org</li>.<li>Upd
9440: 61 74 65 20 74 68 65 20 4e 55 4c 4c 2d 68 61 6e  ate the NULL-han
9450: 64 6c 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74  dling documentat
9460: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78  ion.</li>.<li>Ex
9470: 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f  perimental date/
9480: 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20 61  time functions a
9490: 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  dded.</li>.<li>B
94a0: 75 67 20 66 69 78 3a 20 63 6f 72 72 65 63 74 6c  ug fix: correctl
94b0: 79 20 65 76 61 6c 75 61 74 65 20 61 20 76 69 65  y evaluate a vie
94c0: 77 20 6f 66 20 61 20 76 69 65 77 20 77 69 74 68  w of a view with
94d0: 6f 75 74 20 73 65 67 66 61 75 6c 74 69 6e 67 2e  out segfaulting.
94e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
94f0: 78 3a 20 70 72 65 76 65 6e 74 20 64 61 74 61 62  x: prevent datab
9500: 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69  ase corruption i
9510: 66 20 79 6f 75 20 64 72 6f 70 70 65 64 20 61 0a  f you dropped a.
9520: 20 20 20 20 74 72 69 67 67 65 72 20 74 68 61 74      trigger that
9530: 20 68 61 64 20 74 68 65 20 73 61 6d 65 20 6e 61   had the same na
9540: 6d 65 20 61 73 20 61 20 74 61 62 6c 65 2e 3c 2f  me as a table.</
9550: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
9560: 20 61 6c 6c 6f 77 20 61 20 56 41 43 55 55 4d 20   allow a VACUUM 
9570: 28 77 69 74 68 6f 75 74 20 73 65 67 66 61 75 6c  (without segfaul
9580: 74 69 6e 67 29 20 6f 6e 20 61 6e 20 65 6d 70 74  ting) on an empt
9590: 79 0a 20 20 20 20 64 61 74 61 62 61 73 65 20 61  y.    database a
95a0: 66 74 65 72 20 73 65 74 74 69 6e 67 20 74 68 65  fter setting the
95b0: 20 45 4d 50 54 59 5f 52 45 53 55 4c 54 5f 43 41   EMPTY_RESULT_CA
95c0: 4c 4c 42 41 43 4b 53 20 70 72 61 67 6d 61 2e 3c  LLBACKS pragma.<
95d0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
95e0: 3a 20 69 66 20 61 6e 20 69 6e 74 65 67 65 72 20  : if an integer 
95f0: 76 61 6c 75 65 20 77 69 6c 6c 20 6e 6f 74 20 66  value will not f
9600: 69 74 20 69 6e 20 61 20 33 32 2d 62 69 74 20 69  it in a 32-bit i
9610: 6e 74 2c 20 73 74 6f 72 65 20 69 74 20 69 6e 0a  nt, store it in.
9620: 20 20 20 20 61 20 64 6f 75 62 6c 65 20 69 6e 73      a double ins
9630: 74 65 61 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  tead.</li>.<li>B
9640: 75 67 20 66 69 78 3a 20 4d 61 6b 65 20 73 75 72  ug fix: Make sur
9650: 65 20 74 68 65 20 6a 6f 75 72 6e 61 6c 20 66 69  e the journal fi
9660: 6c 65 20 64 69 72 65 63 74 6f 72 79 20 65 6e 74  le directory ent
9670: 72 79 20 69 73 20 63 6f 6d 6d 69 74 74 65 64 20  ry is committed 
9680: 74 6f 20 64 69 73 6b 0a 20 20 20 20 62 65 66 6f  to disk.    befo
9690: 72 65 20 77 72 69 74 69 6e 67 20 74 68 65 20 64  re writing the d
96a0: 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c 2f 6c  atabase file.</l
96b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
96c0: 20 4a 75 6c 79 20 32 32 20 28 32 2e 38 2e 35 29   July 22 (2.8.5)
96d0: 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 4c 49 4d  } {.<li>Make LIM
96e0: 49 54 20 77 6f 72 6b 20 6f 6e 20 61 20 63 6f 6d  IT work on a com
96f0: 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 73 74 61  pound SELECT sta
9700: 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tement.</li>.<li
9710: 3e 4c 49 4d 49 54 20 30 20 6e 6f 77 20 73 68 6f  >LIMIT 0 now sho
9720: 77 73 20 6e 6f 20 72 6f 77 73 2e 20 20 55 73 65  ws no rows.  Use
9730: 20 4c 49 4d 49 54 20 2d 31 20 74 6f 20 73 65 65   LIMIT -1 to see
9740: 20 61 6c 6c 20 72 6f 77 73 2e 3c 2f 6c 69 3e 0a   all rows.</li>.
9750: 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61  <li>Correctly ha
9760: 6e 64 6c 65 20 63 6f 6d 70 61 72 69 73 6f 6e 73  ndle comparisons
9770: 20 62 65 74 77 65 65 6e 20 61 6e 20 49 4e 54 45   between an INTE
9780: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20  GER PRIMARY KEY 
9790: 61 6e 64 0a 20 20 20 20 61 20 66 6c 6f 61 74 69  and.    a floati
97a0: 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e  ng point number.
97b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65  </li>.<li>Fix se
97c0: 76 65 72 61 6c 20 69 6d 70 6f 72 74 61 6e 74 20  veral important 
97d0: 62 75 67 73 20 69 6e 20 74 68 65 20 6e 65 77 20  bugs in the new 
97e0: 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41 43  ATTACH and DETAC
97f0: 48 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e  H commands.</li>
9800: 0a 3c 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65  .<li>Updated the
9810: 20 3c 61 20 68 72 65 66 3d 22 6e 75 6c 6c 73 2e   <a href="nulls.
9820: 68 74 6d 6c 22 3e 4e 55 4c 4c 2d 68 61 6e 64 6c  html">NULL-handl
9830: 69 6e 67 20 64 6f 63 75 6d 65 6e 74 3c 2f 61 3e  ing document</a>
9840: 2e 3c 2f 6c 69 3e 20 0a 3c 6c 69 3e 41 6c 6c 6f  .</li> .<li>Allo
9850: 77 20 4e 55 4c 4c 20 61 72 67 75 6d 65 6e 74 73  w NULL arguments
9860: 20 69 6e 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69   in sqlite_compi
9870: 6c 65 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f  le() and sqlite_
9880: 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69  step().</li>.<li
9890: 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20  >Many minor bug 
98a0: 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  fixes</li>.}..ch
98b0: 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65 20 32 39  ng {2003 June 29
98c0: 20 28 32 2e 38 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.4)} {.<li>
98d0: 45 6e 68 61 6e 63 65 64 20 74 68 65 20 22 50 52  Enhanced the "PR
98e0: 41 47 4d 41 20 69 6e 74 65 67 72 69 74 79 5f 63  AGMA integrity_c
98f0: 68 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 20 74 6f  heck" command to
9900: 20 76 65 72 69 66 79 20 69 6e 64 69 63 65 73 2e   verify indices.
9910: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
9920: 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 68 6f  authorization ho
9930: 6f 6b 73 20 66 6f 72 20 74 68 65 20 6e 65 77 20  oks for the new 
9940: 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41 43  ATTACH and DETAC
9950: 48 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e  H commands.</li>
9960: 0a 3c 6c 69 3e 4d 61 6e 79 20 64 6f 63 75 6d 65  .<li>Many docume
9970: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
9980: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69  /li>.<li>Many mi
9990: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  nor bug fixes</l
99a0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
99b0: 20 4a 75 6e 65 20 34 20 28 32 2e 38 2e 33 29 7d   June 4 (2.8.3)}
99c0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f   {.<li>Fix a pro
99d0: 62 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63  blem that will c
99e0: 6f 72 72 75 70 74 20 74 68 65 20 69 6e 64 69 63  orrupt the indic
99f0: 65 73 20 6f 6e 20 61 20 74 61 62 6c 65 20 69 66  es on a table if
9a00: 20 79 6f 75 0a 20 20 20 20 64 6f 20 61 6e 20 49   you.    do an I
9a10: 4e 53 45 52 54 20 4f 52 20 52 45 50 4c 41 43 45  NSERT OR REPLACE
9a20: 20 6f 72 20 61 6e 20 55 50 44 41 54 45 20 4f 52   or an UPDATE OR
9a30: 20 52 45 50 4c 41 43 45 20 6f 6e 20 61 20 74 61   REPLACE on a ta
9a40: 62 6c 65 20 74 68 61 74 0a 20 20 20 20 63 6f 6e  ble that.    con
9a50: 74 61 69 6e 73 20 61 6e 20 49 4e 54 45 47 45 52  tains an INTEGER
9a60: 20 50 52 49 4d 41 52 59 20 4b 45 59 20 70 6c 75   PRIMARY KEY plu
9a70: 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 6e  s one or more in
9a80: 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  dices.</li>.<li>
9a90: 46 69 78 20 61 20 62 75 67 20 69 6e 20 77 69 6e  Fix a bug in win
9aa0: 64 6f 77 73 20 6c 6f 63 6b 69 6e 67 20 63 6f 64  dows locking cod
9ab0: 65 20 73 6f 20 74 68 61 74 20 6c 6f 63 6b 73 20  e so that locks 
9ac0: 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c 79 0a 20  work correctly. 
9ad0: 20 20 20 77 68 65 6e 20 73 69 6d 75 6c 74 61 6e     when simultan
9ae0: 65 6f 75 73 6c 79 20 61 63 63 65 73 73 65 64 20  eously accessed 
9af0: 62 79 20 57 69 6e 39 35 20 61 6e 64 20 57 69 6e  by Win95 and Win
9b00: 4e 54 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e  NT systems.</li>
9b10: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69  .<li>Add the abi
9b20: 6c 69 74 79 20 66 6f 72 20 49 4e 53 45 52 54 20  lity for INSERT 
9b30: 61 6e 64 20 55 50 44 41 54 45 20 73 74 61 74 65  and UPDATE state
9b40: 6d 65 6e 74 73 20 74 6f 20 72 65 66 65 72 20 74  ments to refer t
9b50: 6f 20 74 68 65 0a 20 20 20 20 22 72 6f 77 69 64  o the.    "rowid
9b60: 22 20 28 6f 72 20 22 5f 72 6f 77 69 64 5f 22 20  " (or "_rowid_" 
9b70: 6f 72 20 22 6f 69 64 22 29 20 63 6f 6c 75 6d 6e  or "oid") column
9b80: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65  s.</li>.<li>Othe
9b90: 72 20 69 6d 70 6f 72 74 61 6e 74 20 62 75 67 20  r important bug 
9ba0: 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  fixes</li>.}..ch
9bb0: 6e 67 20 7b 32 30 30 33 20 4d 61 79 20 31 37 20  ng {2003 May 17 
9bc0: 28 32 2e 38 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.8.2)} {.<li>F
9bd0: 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61  ix a problem tha
9be0: 74 20 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74  t will corrupt t
9bf0: 68 65 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  he database file
9c00: 20 69 66 20 79 6f 75 20 64 72 6f 70 20 61 0a 20   if you drop a. 
9c10: 20 20 20 74 61 62 6c 65 20 66 72 6f 6d 20 74 68     table from th
9c20: 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20  e main database 
9c30: 74 68 61 74 20 68 61 73 20 61 20 54 45 4d 50 20  that has a TEMP 
9c40: 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  index.</li>.}..c
9c50: 68 6e 67 20 7b 32 30 30 33 20 4d 61 79 20 31 36  hng {2003 May 16
9c60: 20 28 32 2e 38 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.1)} {.<li>
9c70: 52 65 61 63 74 69 76 61 74 65 64 20 74 68 65 20  Reactivated the 
9c80: 56 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20 74  VACUUM command t
9c90: 68 61 74 20 72 65 63 6c 61 69 6d 73 20 75 6e 75  hat reclaims unu
9ca0: 73 65 64 20 64 69 73 6b 20 73 70 61 63 65 20 69  sed disk space i
9cb0: 6e 20 0a 20 20 20 20 61 20 64 61 74 61 62 61 73  n .    a databas
9cc0: 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e file.</li>.<li
9cd0: 3e 41 64 64 65 64 20 74 68 65 20 41 54 54 41 43  >Added the ATTAC
9ce0: 48 20 61 6e 64 20 44 45 54 41 43 48 20 63 6f 6d  H and DETACH com
9cf0: 6d 61 6e 64 73 20 74 6f 20 61 6c 6c 6f 77 20 69  mands to allow i
9d00: 6e 74 65 72 61 63 74 69 6e 67 20 77 69 74 68 20  nteracting with 
9d10: 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20 64 61 74  multiple.    dat
9d20: 61 62 61 73 65 20 66 69 6c 65 73 20 61 74 20 74  abase files at t
9d30: 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 3c 2f 6c  he same time.</l
9d40: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
9d50: 70 6f 72 74 20 66 6f 72 20 54 45 4d 50 20 74 72  port for TEMP tr
9d60: 69 67 67 65 72 73 20 61 6e 64 20 69 6e 64 69 63  iggers and indic
9d70: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
9d80: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 69  ed support for i
9d90: 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61 62 61 73  n-memory databas
9da0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  es.</li>.<li>Rem
9db0: 6f 76 65 64 20 74 68 65 20 65 78 70 65 72 69 6d  oved the experim
9dc0: 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 6f 70 65  ental sqlite_ope
9dd0: 6e 5f 61 75 78 5f 66 69 6c 65 28 29 2e 20 20 49  n_aux_file().  I
9de0: 74 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 0a 20  ts function is. 
9df0: 20 20 20 73 75 62 73 75 6d 65 64 20 69 6e 20 74     subsumed in t
9e00: 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 63 6f  he new ATTACH co
9e10: 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  mmand.</li>.<li>
9e20: 54 68 65 20 70 72 65 63 65 64 65 6e 63 65 20 6f  The precedence o
9e30: 72 64 65 72 20 66 6f 72 20 4f 4e 20 43 4f 4e 46  rder for ON CONF
9e40: 4c 49 43 54 20 63 6c 61 75 73 65 73 20 77 61 73  LICT clauses was
9e50: 20 63 68 61 6e 67 65 64 20 73 6f 20 74 68 61 74   changed so that
9e60: 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49 43 54  .    ON CONFLICT
9e70: 20 63 6c 61 75 73 65 73 20 6f 6e 20 42 45 47 49   clauses on BEGI
9e80: 4e 20 73 74 61 74 65 6d 65 6e 74 73 20 68 61 76  N statements hav
9e90: 65 20 61 20 68 69 67 68 65 72 20 70 72 65 63 65  e a higher prece
9ea0: 64 65 6e 63 65 20 74 68 61 6e 0a 20 20 20 20 4f  dence than.    O
9eb0: 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73  N CONFLICT claus
9ec0: 65 73 20 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74  es on constraint
9ed0: 73 2e 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e  s..<li>Many, man
9ee0: 79 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20  y bug fixes and 
9ef0: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 65 6e  compatibility en
9f00: 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  hancements.</li>
9f10: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 46  .}..chng {2003 F
9f20: 65 62 20 31 36 20 28 32 2e 38 2e 30 29 7d 20 7b  eb 16 (2.8.0)} {
9f30: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
9f40: 65 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 66  e journal file f
9f50: 6f 72 6d 61 74 20 74 6f 20 6d 61 6b 65 20 69 74  ormat to make it
9f60: 20 6d 6f 72 65 20 72 65 73 69 73 74 61 6e 74 20   more resistant 
9f70: 74 6f 20 63 6f 72 72 75 70 74 69 6f 6e 0a 20 20  to corruption.  
9f80: 20 20 74 68 61 74 20 63 61 6e 20 6f 63 63 75 72    that can occur
9f90: 20 61 66 74 65 72 20 61 6e 20 4f 53 20 63 72 61   after an OS cra
9fa0: 73 68 20 6f 72 20 70 6f 77 65 72 20 66 61 69 6c  sh or power fail
9fb0: 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ure.</li>.<li>Ad
9fc0: 64 65 64 20 61 20 6e 65 77 20 43 2f 43 2b 2b 20  ded a new C/C++ 
9fd0: 41 50 49 20 74 68 61 74 20 64 6f 65 73 20 6e 6f  API that does no
9fe0: 74 20 75 73 65 20 63 61 6c 6c 62 61 63 6b 20 66  t use callback f
9ff0: 6f 72 20 72 65 74 75 72 6e 69 6e 67 20 64 61 74  or returning dat
a000: 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  a.</li>.}..chng 
a010: 7b 32 30 30 33 20 4a 61 6e 20 32 35 20 28 32 2e  {2003 Jan 25 (2.
a020: 37 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 50 65 72 66  7.6)} {.<li>Perf
a030: 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d  ormance improvem
a040: 65 6e 74 73 2e 20 20 54 68 65 20 6c 69 62 72 61  ents.  The libra
a050: 72 79 20 69 73 20 6e 6f 77 20 6d 75 63 68 20 66  ry is now much f
a060: 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  aster.</li>.<li>
a070: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
a080: 69 74 65 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a  ite_set_authoriz
a090: 65 72 28 29 3c 2f 62 3e 20 41 50 49 2e 20 20 46  er()</b> API.  F
a0a0: 6f 72 6d 61 6c 20 64 6f 63 75 6d 65 6e 74 61 74  ormal documentat
a0b0: 69 6f 6e 20 68 61 73 0a 20 20 20 20 6e 6f 74 20  ion has.    not 
a0c0: 62 65 65 6e 20 77 72 69 74 74 65 6e 20 2d 20 73  been written - s
a0d0: 65 65 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f  ee the source co
a0e0: 64 65 20 63 6f 6d 6d 65 6e 74 73 20 66 6f 72 20  de comments for 
a0f0: 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 6f 6e 0a  instructions on.
a100: 20 20 20 20 68 6f 77 20 74 6f 20 75 73 65 20 74      how to use t
a110: 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c  his function.</l
a120: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
a130: 20 69 6e 20 74 68 65 20 47 4c 4f 42 20 6f 70 65   in the GLOB ope
a140: 72 61 74 6f 72 20 74 68 61 74 20 77 61 73 20 70  rator that was p
a150: 72 65 76 65 6e 74 69 6e 67 20 69 74 20 66 72 6f  reventing it fro
a160: 6d 20 77 6f 72 6b 69 6e 67 0a 20 20 20 20 77 69  m working.    wi
a170: 74 68 20 75 70 70 65 72 2d 63 61 73 65 20 6c 65  th upper-case le
a180: 74 74 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tters.</li>.<li>
a190: 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75  Various minor bu
a1a0: 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  g fixes.</li>.}.
a1b0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 44 65 63 20  .chng {2002 Dec 
a1c0: 32 37 20 28 32 2e 37 2e 35 29 7d 20 7b 0a 3c 6c  27 (2.7.5)} {.<l
a1d0: 69 3e 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69  i>Fix an uniniti
a1e0: 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20  alized variable 
a1f0: 69 6e 20 70 61 67 65 72 2e 63 20 77 68 69 63 68  in pager.c which
a200: 20 63 6f 75 6c 64 20 28 77 69 74 68 20 61 20 70   could (with a p
a210: 72 6f 62 61 62 69 6c 69 74 79 0a 20 20 20 20 6f  robability.    o
a220: 66 20 61 62 6f 75 74 20 31 20 69 6e 20 34 20 62  f about 1 in 4 b
a230: 69 6c 6c 69 6f 6e 29 20 72 65 73 75 6c 74 20 69  illion) result i
a240: 6e 20 61 20 63 6f 72 72 75 70 74 65 64 20 64 61  n a corrupted da
a250: 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  tabase.</li>.}..
a260: 63 68 6e 67 20 7b 32 30 30 32 20 44 65 63 20 31  chng {2002 Dec 1
a270: 37 20 28 32 2e 37 2e 34 29 7d 20 7b 0a 3c 6c 69  7 (2.7.4)} {.<li
a280: 3e 44 61 74 61 62 61 73 65 20 66 69 6c 65 73 20  >Database files 
a290: 63 61 6e 20 6e 6f 77 20 67 72 6f 77 20 74 6f 20  can now grow to 
a2a0: 62 65 20 75 70 20 74 6f 20 32 5e 34 31 20 62 79  be up to 2^41 by
a2b0: 74 65 73 2e 20 20 54 68 65 20 6f 6c 64 20 6c 69  tes.  The old li
a2c0: 6d 69 74 0a 20 20 20 20 77 61 73 20 32 5e 33 31  mit.    was 2^31
a2d0: 20 62 79 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   bytes.</li>.<li
a2e0: 3e 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 77  >The optimizer w
a2f0: 69 6c 6c 20 6e 6f 77 20 73 63 61 6e 20 74 61 62  ill now scan tab
a300: 6c 65 73 20 69 6e 20 74 68 65 20 72 65 76 65 72  les in the rever
a310: 73 65 20 69 66 20 64 6f 69 6e 67 20 73 6f 20 77  se if doing so w
a320: 69 6c 6c 0a 20 20 20 20 73 61 74 69 73 66 79 20  ill.    satisfy 
a330: 61 6e 20 4f 52 44 45 52 20 42 59 20 2e 2e 2e 20  an ORDER BY ... 
a340: 44 45 53 43 20 63 6c 61 75 73 65 2e 3c 2f 6c 69  DESC clause.</li
a350: 3e 0a 3c 6c 69 3e 54 68 65 20 66 75 6c 6c 20 70  >.<li>The full p
a360: 61 74 68 6e 61 6d 65 20 6f 66 20 74 68 65 20 64  athname of the d
a370: 61 74 61 62 61 73 65 20 66 69 6c 65 20 69 73 20  atabase file is 
a380: 6e 6f 77 20 72 65 6d 65 6d 62 65 72 65 64 20 65  now remembered e
a390: 76 65 6e 20 69 66 0a 20 20 20 20 61 20 72 65 6c  ven if.    a rel
a3a0: 61 74 69 76 65 20 70 61 74 68 20 69 73 20 70 61  ative path is pa
a3b0: 73 73 65 64 20 69 6e 74 6f 20 73 71 6c 69 74 65  ssed into sqlite
a3c0: 5f 6f 70 65 6e 28 29 2e 20 20 54 68 69 73 20 61  _open().  This a
a3d0: 6c 6c 6f 77 73 20 0a 20 20 20 20 74 68 65 20 6c  llows .    the l
a3e0: 69 62 72 61 72 79 20 74 6f 20 63 6f 6e 74 69 6e  ibrary to contin
a3f0: 75 65 20 6f 70 65 72 61 74 69 6e 67 20 63 6f 72  ue operating cor
a400: 72 65 63 74 6c 79 20 61 66 74 65 72 20 61 20 63  rectly after a c
a410: 68 64 69 72 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69  hdir().</li>.<li
a420: 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65  >Speed improveme
a430: 6e 74 73 20 69 6e 20 74 68 65 20 56 44 42 45 2e  nts in the VDBE.
a440: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f  </li>.<li>Lots o
a450: 66 20 6c 69 74 74 6c 65 20 62 75 67 20 66 69 78  f little bug fix
a460: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
a470: 20 7b 32 30 30 32 20 4f 63 74 20 33 30 20 28 32   {2002 Oct 30 (2
a480: 2e 37 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 56 61 72  .7.3)} {.<li>Var
a490: 69 6f 75 73 20 63 6f 6d 70 69 6c 65 72 20 63 6f  ious compiler co
a4a0: 6d 70 61 74 69 62 69 6c 69 74 79 20 66 69 78 65  mpatibility fixe
a4b0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
a4c0: 61 20 62 75 67 20 69 6e 20 74 68 65 20 22 65 78  a bug in the "ex
a4d0: 70 72 20 49 4e 20 28 29 22 20 6f 70 65 72 61 74  pr IN ()" operat
a4e0: 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 63 63  or.</li>.<li>Acc
a4f0: 65 70 74 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73  ept column names
a500: 20 69 6e 20 70 61 72 65 6e 74 68 65 73 65 73 2e   in parentheses.
a510: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
a520: 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 73 74 72  problem with str
a530: 69 6e 67 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67  ing memory manag
a540: 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 56 44 42  ement in the VDB
a550: 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  E</li>.<li>Fix a
a560: 20 62 75 67 20 69 6e 20 74 68 65 20 22 74 61 62   bug in the "tab
a570: 6c 65 5f 69 6e 66 6f 22 20 70 72 61 67 6d 61 22  le_info" pragma"
a580: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74  </li>.<li>Export
a590: 20 74 68 65 20 73 71 6c 69 74 65 5f 66 75 6e 63   the sqlite_func
a5a0: 74 69 6f 6e 5f 74 79 70 65 28 29 20 41 50 49 20  tion_type() API 
a5b0: 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20  function in the 
a5c0: 57 69 6e 64 6f 77 73 20 44 4c 4c 3c 2f 6c 69 3e  Windows DLL</li>
a5d0: 0a 3c 6c 69 3e 46 69 78 20 6c 6f 63 6b 69 6e 67  .<li>Fix locking
a5e0: 20 62 65 68 61 76 69 6f 72 20 75 6e 64 65 72 20   behavior under 
a5f0: 77 69 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 3c 6c 69  windows</li>.<li
a600: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 4c 45  >Fix a bug in LE
a610: 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c  FT OUTER JOIN</l
a620: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
a630: 20 53 65 70 20 32 35 20 28 32 2e 37 2e 32 29 7d   Sep 25 (2.7.2)}
a640: 20 7b 0a 3c 6c 69 3e 50 72 65 76 65 6e 74 20 6a   {.<li>Prevent j
a650: 6f 75 72 6e 61 6c 20 66 69 6c 65 20 6f 76 65 72  ournal file over
a660: 66 6c 6f 77 73 20 6f 6e 20 68 75 67 65 20 74 72  flows on huge tr
a670: 61 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e  ansactions.</li>
a680: 0a 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72  .<li>Fix a memor
a690: 79 20 6c 65 61 6b 20 74 68 61 74 20 6f 63 63 75  y leak that occu
a6a0: 72 72 65 64 20 77 68 65 6e 20 73 71 6c 69 74 65  rred when sqlite
a6b0: 5f 6f 70 65 6e 28 29 20 66 61 69 6c 65 64 2e 3c  _open() failed.<
a6c0: 2f 6c 69 3e 0a 3c 6c 69 3e 48 6f 6e 6f 72 20 74  /li>.<li>Honor t
a6d0: 68 65 20 4f 52 44 45 52 20 42 59 20 61 6e 64 20  he ORDER BY and 
a6e0: 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6f 66 20  LIMIT clause of 
a6f0: 61 20 53 45 4c 45 43 54 20 65 76 65 6e 20 69 66  a SELECT even if
a700: 20 74 68 65 0a 20 20 20 20 72 65 73 75 6c 74 20   the.    result 
a710: 73 65 74 20 69 73 20 75 73 65 64 20 66 6f 72 20  set is used for 
a720: 61 6e 20 49 4e 53 45 52 54 2e 3c 2f 6c 69 3e 0a  an INSERT.</li>.
a730: 3c 6c 69 3e 44 6f 20 6e 6f 74 20 70 75 74 20 77  <li>Do not put w
a740: 72 69 74 65 20 6c 6f 63 6b 73 20 6f 6e 20 74 68  rite locks on th
a750: 65 20 66 69 6c 65 20 75 73 65 64 20 74 6f 20 68  e file used to h
a760: 6f 6c 64 20 54 45 4d 50 20 74 61 62 6c 65 73 2e  old TEMP tables.
a770: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
a780: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e  documentation on
a790: 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54   SELECT DISTINCT
a7a0: 20 61 6e 64 20 6f 6e 20 68 6f 77 20 53 51 4c 69   and on how SQLi
a7b0: 74 65 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73  te handles NULLs
a7c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
a7d0: 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 61   problem that wa
a7e0: 73 20 63 61 75 73 69 6e 67 20 70 6f 6f 72 20 70  s causing poor p
a7f0: 65 72 66 6f 72 6d 61 6e 63 65 20 77 68 65 6e 20  erformance when 
a800: 6d 61 6e 79 20 74 68 6f 75 73 61 6e 64 73 0a 20  many thousands. 
a810: 20 20 20 6f 66 20 53 51 4c 20 73 74 61 74 65 6d     of SQL statem
a820: 65 6e 74 73 20 77 65 72 65 20 65 78 65 63 75 74  ents were execut
a830: 65 64 20 62 79 20 61 20 73 69 6e 67 6c 65 20 73  ed by a single s
a840: 71 6c 69 74 65 5f 65 78 65 63 28 29 20 63 61 6c  qlite_exec() cal
a850: 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  l.</li>.}..chng 
a860: 7b 32 30 30 32 20 41 75 67 20 33 31 20 28 32 2e  {2002 Aug 31 (2.
a870: 37 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  7.1)} {.<li>Fix 
a880: 61 20 62 75 67 20 69 6e 20 74 68 65 20 4f 52 44  a bug in the ORD
a890: 45 52 20 42 59 20 6c 6f 67 69 63 20 74 68 61 74  ER BY logic that
a8a0: 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20   was introduced 
a8b0: 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 37 2e 30  in version 2.7.0
a8c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 2d 73 74 79 6c  </li>.<li>C-styl
a8d0: 65 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 6e  e comments are n
a8e0: 6f 77 20 61 63 63 65 70 74 65 64 20 62 79 20 74  ow accepted by t
a8f0: 68 65 20 74 6f 6b 65 6e 69 7a 65 72 2e 3c 2f 6c  he tokenizer.</l
a900: 69 3e 0a 3c 6c 69 3e 49 4e 53 45 52 54 20 72 75  i>.<li>INSERT ru
a910: 6e 73 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74  ns a little fast
a920: 65 72 20 77 68 65 6e 20 74 68 65 20 73 6f 75 72  er when the sour
a930: 63 65 20 69 73 20 61 20 53 45 4c 45 43 54 20 73  ce is a SELECT s
a940: 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d  tatement.</li>.}
a950: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67  ..chng {2002 Aug
a960: 20 32 35 20 28 32 2e 37 2e 30 29 7d 20 7b 0a 3c   25 (2.7.0)} {.<
a970: 6c 69 3e 4d 61 6b 65 20 61 20 64 69 73 74 69 6e  li>Make a distin
a980: 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 6e 75  ction between nu
a990: 6d 65 72 69 63 20 61 6e 64 20 74 65 78 74 20 76  meric and text v
a9a0: 61 6c 75 65 73 20 77 68 65 6e 20 73 6f 72 74 69  alues when sorti
a9b0: 6e 67 2e 0a 20 20 20 20 54 65 78 74 20 76 61 6c  ng..    Text val
a9c0: 75 65 73 20 73 6f 72 74 20 61 63 63 6f 72 64 69  ues sort accordi
a9d0: 6e 67 20 74 6f 20 6d 65 6d 63 6d 70 28 29 2e 20  ng to memcmp(). 
a9e0: 20 4e 75 6d 65 72 69 63 20 76 61 6c 75 65 73 20   Numeric values 
a9f0: 73 6f 72 74 20 69 6e 0a 20 20 20 20 6e 75 6d 65  sort in.    nume
aa00: 72 69 63 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a  ric order.</li>.
aa10: 3c 6c 69 3e 41 6c 6c 6f 77 20 6d 75 6c 74 69 70  <li>Allow multip
aa20: 6c 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20  le simultaneous 
aa30: 72 65 61 64 65 72 73 20 75 6e 64 65 72 20 77 69  readers under wi
aa40: 6e 64 6f 77 73 20 62 79 20 73 69 6d 75 6c 61 74  ndows by simulat
aa50: 69 6e 67 0a 20 20 20 20 74 68 65 20 72 65 61 64  ing.    the read
aa60: 65 72 2f 77 72 69 74 65 72 73 20 6c 6f 63 6b 73  er/writers locks
aa70: 20 74 68 61 74 20 61 72 65 20 6d 69 73 73 69 6e   that are missin
aa80: 67 20 66 72 6f 6d 20 57 69 6e 39 35 2f 39 38 2f  g from Win95/98/
aa90: 4d 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 20  ME.</li>.<li>An 
aaa0: 65 72 72 6f 72 20 69 73 20 6e 6f 77 20 72 65 74  error is now ret
aab0: 75 72 6e 65 64 20 77 68 65 6e 20 74 72 79 69 6e  urned when tryin
aac0: 67 20 74 6f 20 73 74 61 72 74 20 61 20 74 72 61  g to start a tra
aad0: 6e 73 61 63 74 69 6f 6e 20 69 66 0a 20 20 20 20  nsaction if.    
aae0: 61 6e 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74  another transact
aaf0: 69 6f 6e 20 69 73 20 61 6c 72 65 61 64 79 20 61  ion is already a
ab00: 63 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ctive.</li>.}..c
ab10: 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20 31 32  hng {2002 Aug 12
ab20: 20 28 32 2e 36 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.6.3)} {.<li>
ab30: 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20  Add the ability 
ab40: 74 6f 20 72 65 61 64 20 62 6f 74 68 20 6c 69 74  to read both lit
ab50: 74 6c 65 2d 65 6e 64 69 61 6e 20 61 6e 64 20 62  tle-endian and b
ab60: 69 67 2d 65 6e 64 69 61 6e 20 64 61 74 61 62 61  ig-endian databa
ab70: 73 65 73 2e 0a 20 20 20 20 53 6f 20 64 61 74 61  ses..    So data
ab80: 62 61 73 65 20 63 72 65 61 74 65 64 20 75 6e 64  base created und
ab90: 65 72 20 53 75 6e 4f 53 20 6f 72 20 4d 61 63 4f  er SunOS or MacO
aba0: 53 58 20 63 61 6e 20 62 65 20 72 65 61 64 20 61  SX can be read a
abb0: 6e 64 20 77 72 69 74 74 65 6e 0a 20 20 20 20 75  nd written.    u
abc0: 6e 64 65 72 20 4c 69 6e 75 78 20 6f 72 20 57 69  nder Linux or Wi
abd0: 6e 64 6f 77 73 20 61 6e 64 20 76 69 63 65 20 76  ndows and vice v
abe0: 65 72 73 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  ersa.</li>.<li>C
abf0: 6f 6e 76 65 72 74 20 74 6f 20 74 68 65 20 6e 65  onvert to the ne
ac00: 77 20 77 65 62 73 69 74 65 3a 20 68 74 74 70 3a  w website: http:
ac10: 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67  //www.sqlite.org
ac20: 2f 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  /</li>.<li>Allow
ac30: 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f   transactions to
ac40: 20 73 70 61 6e 20 4c 69 6e 75 78 20 54 68 72 65   span Linux Thre
ac50: 61 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ads</li>.<li>Bug
ac60: 20 66 69 78 20 69 6e 20 74 68 65 20 70 72 6f 63   fix in the proc
ac70: 65 73 73 69 6e 67 20 6f 66 20 74 68 65 20 4f 52  essing of the OR
ac80: 44 45 52 20 42 59 20 63 6c 61 75 73 65 20 66 6f  DER BY clause fo
ac90: 72 20 47 52 4f 55 50 20 42 59 20 71 75 65 72 69  r GROUP BY queri
aca0: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
acb0: 7b 32 30 30 32 20 4a 6c 79 20 33 30 20 28 32 2e  {2002 Jly 30 (2.
acc0: 36 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 54 65 78 74  6.2)} {.<li>Text
acd0: 20 66 69 6c 65 73 20 72 65 61 64 20 62 79 20 74   files read by t
ace0: 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20  he COPY command 
acf0: 63 61 6e 20 6e 6f 77 20 68 61 76 65 20 6c 69 6e  can now have lin
ad00: 65 20 74 65 72 6d 69 6e 61 74 6f 72 73 0a 20 20  e terminators.  
ad10: 20 20 6f 66 20 4c 46 2c 20 20 43 52 4c 46 2c 20    of LF,  CRLF, 
ad20: 6f 72 20 43 52 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  or CR.</li>.<li>
ad30: 53 51 4c 49 54 45 5f 42 55 53 59 20 69 73 20 68  SQLITE_BUSY is h
ad40: 61 6e 64 6c 65 64 20 63 6f 72 72 65 63 74 6c 79  andled correctly
ad50: 20 69 66 20 65 6e 63 6f 75 6e 74 65 72 65 64 20   if encountered 
ad60: 64 75 72 69 6e 67 20 64 61 74 61 62 61 73 65 0a  during database.
ad70: 20 20 20 20 69 6e 69 74 69 61 6c 69 7a 61 74 69      initializati
ad80: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  on.</li>.<li>Fix
ad90: 20 74 6f 20 55 50 44 41 54 45 20 74 72 69 67 67   to UPDATE trigg
ada0: 65 72 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c  ers on TEMP tabl
adb0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  es.</li>.<li>Doc
adc0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
add0: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
ade0: 20 7b 32 30 30 32 20 4a 6c 79 20 31 39 20 28 32   {2002 Jly 19 (2
adf0: 2e 36 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63  .6.1)} {.<li>Inc
ae00: 6c 75 64 65 20 61 20 73 74 61 74 69 63 20 73 74  lude a static st
ae10: 72 69 6e 67 20 69 6e 20 74 68 65 20 6c 69 62 72  ring in the libr
ae20: 61 72 79 20 74 68 61 74 20 72 65 73 70 6f 6e 64  ary that respond
ae30: 73 20 74 6f 20 74 68 65 20 52 43 53 0a 20 20 20  s to the RCS.   
ae40: 20 22 69 64 65 6e 74 22 20 63 6f 6d 6d 61 6e 64   "ident" command
ae50: 20 61 6e 64 20 77 68 69 63 68 20 63 6f 6e 74 61   and which conta
ae60: 69 6e 73 20 74 68 65 20 6c 69 62 72 61 72 79 20  ins the library 
ae70: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c  version number.<
ae80: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20  /li>.<li>Fix an 
ae90: 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72  assertion failur
aea0: 65 20 74 68 61 74 20 6f 63 63 75 72 72 65 64 20  e that occurred 
aeb0: 77 68 65 6e 20 64 65 6c 65 74 69 6e 67 20 61 6c  when deleting al
aec0: 6c 20 72 6f 77 73 20 6f 66 0a 20 20 20 20 61 20  l rows of.    a 
aed0: 74 61 62 6c 65 20 77 69 74 68 20 74 68 65 20 22  table with the "
aee0: 63 6f 75 6e 74 5f 63 68 61 6e 67 65 73 22 20 70  count_changes" p
aef0: 72 61 67 6d 61 20 74 75 72 6e 65 64 20 6f 6e 2e  ragma turned on.
af00: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 74 74 65 72  </li>.<li>Better
af10: 20 65 72 72 6f 72 20 72 65 70 6f 72 74 69 6e 67   error reporting
af20: 20 77 68 65 6e 20 70 72 6f 62 6c 65 6d 73 20 6f   when problems o
af30: 63 63 75 72 20 64 75 72 69 6e 67 20 74 68 65 20  ccur during the 
af40: 61 75 74 6f 6d 61 74 69 63 0a 20 20 20 20 32 2e  automatic.    2.
af50: 35 2e 36 20 74 6f 20 32 2e 36 2e 30 20 64 61 74  5.6 to 2.6.0 dat
af60: 61 62 61 73 65 20 66 6f 72 6d 61 74 20 75 70 67  abase format upg
af70: 72 61 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  rade.</li>.}..ch
af80: 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 37 20  ng {2002 Jly 17 
af90: 28 32 2e 36 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43  (2.6.0)} {.<li>C
afa0: 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74  hange the format
afb0: 20 6f 66 20 69 6e 64 69 63 65 73 20 74 6f 20 63   of indices to c
afc0: 6f 72 72 65 63 74 20 61 20 64 65 73 69 67 6e 20  orrect a design 
afd0: 66 6c 61 77 20 74 68 65 20 6f 72 69 67 69 6e 61  flaw the origina
afe0: 74 65 64 0a 20 20 20 20 77 69 74 68 20 76 65 72  ted.    with ver
aff0: 73 69 6f 6e 20 32 2e 31 2e 30 2e 20 20 3c 66 6f  sion 2.1.0.  <fo
b000: 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a  nt color="red">*
b010: 2a 2a 20 54 68 69 73 20 69 73 20 61 6e 20 69 6e  ** This is an in
b020: 63 6f 6d 70 61 74 69 62 6c 65 0a 20 20 20 20 66  compatible.    f
b030: 69 6c 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67  ile format chang
b040: 65 20 2a 2a 2a 3c 2f 66 6f 6e 74 3e 20 20 57 68  e ***</font>  Wh
b050: 65 6e 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30  en version 2.6.0
b060: 20 6f 72 20 6c 61 74 65 72 20 6f 66 20 74 68 65   or later of the
b070: 0a 20 20 20 20 6c 69 62 72 61 72 79 20 61 74 74  .    library att
b080: 65 6d 70 74 73 20 74 6f 20 6f 70 65 6e 20 61 20  empts to open a 
b090: 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 63 72  database file cr
b0a0: 65 61 74 65 64 20 62 79 20 76 65 72 73 69 6f 6e  eated by version
b0b0: 20 32 2e 35 2e 36 20 6f 72 0a 20 20 20 20 65 61   2.5.6 or.    ea
b0c0: 72 6c 69 65 72 2c 20 69 74 20 77 69 6c 6c 20 61  rlier, it will a
b0d0: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 6e 64  utomatically and
b0e0: 20 69 72 72 65 76 65 72 73 69 62 6c 79 20 63 6f   irreversibly co
b0f0: 6e 76 65 72 74 20 74 68 65 20 66 69 6c 65 20 66  nvert the file f
b100: 6f 72 6d 61 74 2e 0a 20 20 20 20 3c 62 3e 4d 61  ormat..    <b>Ma
b110: 6b 65 20 62 61 63 6b 75 70 20 63 6f 70 69 65 73  ke backup copies
b120: 20 6f 66 20 6f 6c 64 65 72 20 64 61 74 61 62 61   of older databa
b130: 73 65 20 66 69 6c 65 73 20 62 65 66 6f 72 65 20  se files before 
b140: 6f 70 65 6e 69 6e 67 20 74 68 65 6d 20 77 69 74  opening them wit
b150: 68 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 32 2e  h.    version 2.
b160: 36 2e 30 20 6f 66 20 74 68 65 20 6c 69 62 72 61  6.0 of the libra
b170: 72 79 2e 3c 2f 62 3e 0a 20 20 20 20 3c 2f 6c 69  ry.</b>.    </li
b180: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
b190: 4a 6c 79 20 37 20 28 32 2e 35 2e 36 29 7d 20 7b  Jly 7 (2.5.6)} {
b1a0: 0a 3c 6c 69 3e 46 69 78 20 6d 6f 72 65 20 70 72  .<li>Fix more pr
b1b0: 6f 62 6c 65 6d 73 20 77 69 74 68 20 72 6f 6c 6c  oblems with roll
b1c0: 62 61 63 6b 2e 20 20 45 6e 68 61 6e 63 65 20 74  back.  Enhance t
b1d0: 68 65 20 74 65 73 74 20 73 75 69 74 65 20 74 6f  he test suite to
b1e0: 20 65 78 65 72 63 69 73 65 0a 20 20 20 20 74 68   exercise.    th
b1f0: 65 20 72 6f 6c 6c 62 61 63 6b 20 6c 6f 67 69 63  e rollback logic
b200: 20 65 78 74 65 6e 73 69 76 65 6c 79 20 69 6e 20   extensively in 
b210: 6f 72 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74  order to prevent
b220: 20 61 6e 79 20 66 75 74 75 72 65 20 70 72 6f 62   any future prob
b230: 6c 65 6d 73 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  lems..    </li>.
b240: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
b250: 79 20 36 20 28 32 2e 35 2e 35 29 7d 20 7b 0a 3c  y 6 (2.5.5)} {.<
b260: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 77 68 69  li>Fix a bug whi
b270: 63 68 20 63 6f 75 6c 64 20 63 61 75 73 65 20 64  ch could cause d
b280: 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69  atabase corrupti
b290: 6f 6e 20 64 75 72 69 6e 67 20 61 20 72 6f 6c 6c  on during a roll
b2a0: 62 61 63 6b 2e 0a 20 20 20 20 54 68 69 73 20 62  back..    This b
b2b0: 75 67 73 20 77 61 73 20 69 6e 74 72 6f 64 75 63  ugs was introduc
b2c0: 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e  ed in version 2.
b2d0: 34 2e 30 20 62 79 20 74 68 65 20 66 72 65 65 6c  4.0 by the freel
b2e0: 69 73 74 0a 20 20 20 20 6f 70 74 69 6d 69 7a 61  ist.    optimiza
b2f0: 74 69 6f 6e 20 6f 66 20 63 68 65 63 6b 69 6e 67  tion of checking
b300: 20 5b 34 31 30 5d 2e 3c 2f 6c 69 3e 0a 3c 6c 69   [410].</li>.<li
b310: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 61 67  >Fix a bug in ag
b320: 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e  gregate function
b330: 73 20 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c 69  s for VIEWs.</li
b340: 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f  >.<li>Other mino
b350: 72 20 63 68 61 6e 67 65 73 20 61 6e 64 20 65 6e  r changes and en
b360: 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  hancements.</li>
b370: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
b380: 6c 79 20 31 20 28 32 2e 35 2e 34 29 7d 20 7b 0a  ly 1 (2.5.4)} {.
b390: 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 22 41 53  <li>Make the "AS
b3a0: 22 20 6b 65 79 77 6f 72 64 20 6f 70 74 69 6f 6e  " keyword option
b3b0: 61 6c 20 61 67 61 69 6e 2e 3c 2f 6c 69 3e 0a 3c  al again.</li>.<
b3c0: 6c 69 3e 54 68 65 20 64 61 74 61 74 79 70 65 20  li>The datatype 
b3d0: 6f 66 20 63 6f 6c 75 6d 6e 73 20 6e 6f 77 20 61  of columns now a
b3e0: 70 70 65 61 72 20 69 6e 20 74 68 65 20 34 74 68  ppear in the 4th
b3f0: 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65   argument to the
b400: 0a 20 20 20 20 63 61 6c 6c 62 61 63 6b 2e 3c 2f  .    callback.</
b410: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
b420: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e  e <b>sqlite_open
b430: 5f 61 75 78 5f 66 69 6c 65 28 29 3c 2f 62 3e 20  _aux_file()</b> 
b440: 41 50 49 2c 20 74 68 6f 75 67 68 20 69 74 20 69  API, though it i
b450: 73 20 73 74 69 6c 6c 0a 20 20 20 20 6d 6f 73 74  s still.    most
b460: 6c 79 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20  ly undocumented 
b470: 61 6e 64 20 75 6e 74 65 73 74 65 64 2e 3c 2f 6c  and untested.</l
b480: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 64 64  i>.<li>Added add
b490: 69 74 69 6f 6e 61 6c 20 74 65 73 74 20 63 61 73  itional test cas
b4a0: 65 73 20 61 6e 64 20 66 69 78 65 64 20 61 20 66  es and fixed a f
b4b0: 65 77 20 62 75 67 73 20 74 68 61 74 20 74 68 6f  ew bugs that tho
b4c0: 73 65 0a 20 20 20 20 74 65 73 74 20 63 61 73 65  se.    test case
b4d0: 73 20 66 6f 75 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a  s found.</li>.}.
b4e0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20  .chng {2002 Jun 
b4f0: 32 34 20 28 32 2e 35 2e 33 29 7d 20 7b 0a 3c 6c  24 (2.5.3)} {.<l
b500: 69 3e 42 75 67 20 66 69 78 3a 20 20 44 61 74 61  i>Bug fix:  Data
b510: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
b520: 63 61 6e 20 6f 63 63 75 72 20 64 75 65 20 74 6f  can occur due to
b530: 20 74 68 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f   the optimizatio
b540: 6e 0a 20 20 20 20 74 68 61 74 20 77 61 73 20 69  n.    that was i
b550: 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72  ntroduced in ver
b560: 73 69 6f 6e 20 32 2e 34 2e 30 20 28 63 68 65 63  sion 2.4.0 (chec
b570: 6b 2d 69 6e 20 5b 34 31 30 5d 29 2e 20 20 54 68  k-in [410]).  Th
b580: 65 20 70 72 6f 62 6c 65 6d 0a 20 20 20 20 73 68  e problem.    sh
b590: 6f 75 6c 64 20 6e 6f 77 20 62 65 20 66 69 78 65  ould now be fixe
b5a0: 64 2e 20 20 54 68 65 20 75 73 65 20 6f 66 20 76  d.  The use of v
b5b0: 65 72 73 69 6f 6e 73 20 32 2e 34 2e 30 20 74 68  ersions 2.4.0 th
b5c0: 72 6f 75 67 68 20 32 2e 35 2e 32 20 69 73 0a 20  rough 2.5.2 is. 
b5d0: 20 20 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64     not recommend
b5e0: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
b5f0: 20 7b 32 30 30 32 20 4a 75 6e 20 32 34 20 28 32   {2002 Jun 24 (2
b600: 2e 35 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .5.2)} {.<li>Add
b610: 65 64 20 74 68 65 20 6e 65 77 20 3c 62 3e 53 51  ed the new <b>SQ
b620: 4c 49 54 45 5f 54 45 4d 50 5f 4d 41 53 54 45 52  LITE_TEMP_MASTER
b630: 3c 2f 62 3e 20 74 61 62 6c 65 20 77 68 69 63 68  </b> table which
b640: 20 72 65 63 6f 72 64 73 20 74 68 65 20 73 63 68   records the sch
b650: 65 6d 61 0a 20 20 20 20 66 6f 72 20 74 65 6d 70  ema.    for temp
b660: 6f 72 61 72 79 20 74 61 62 6c 65 73 20 69 6e 20  orary tables in 
b670: 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61  the same way tha
b680: 74 20 3c 62 3e 53 51 4c 49 54 45 5f 4d 41 53 54  t <b>SQLITE_MAST
b690: 45 52 3c 2f 62 3e 20 64 6f 65 73 20 66 6f 72 0a  ER</b> does for.
b6a0: 20 20 20 20 70 65 72 73 69 73 74 65 6e 74 20 74      persistent t
b6b0: 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ables.</li>.<li>
b6c0: 41 64 64 65 64 20 61 6e 20 6f 70 74 69 6d 69 7a  Added an optimiz
b6d0: 61 74 69 6f 6e 20 74 6f 20 55 4e 49 4f 4e 20 41  ation to UNION A
b6e0: 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65  LL</li>.<li>Fixe
b6f0: 64 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 70  d a bug in the p
b700: 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 4c 45 46  rocessing of LEF
b710: 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69  T OUTER JOIN</li
b720: 3e 0a 3c 6c 69 3e 54 68 65 20 4c 49 4d 49 54 20  >.<li>The LIMIT 
b730: 63 6c 61 75 73 65 20 6e 6f 77 20 77 6f 72 6b 73  clause now works
b740: 20 6f 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f   on subselects</
b750: 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20 42 59  li>.<li>ORDER BY
b760: 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c   works on subsel
b770: 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ects</li>.<li>Th
b780: 65 72 65 20 69 73 20 61 20 6e 65 77 20 54 79 70  ere is a new Typ
b790: 65 4f 66 28 29 20 66 75 6e 63 74 69 6f 6e 20 75  eOf() function u
b7a0: 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69 6e 65  sed to determine
b7b0: 20 69 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f   if an expressio
b7c0: 6e 0a 20 20 20 20 69 73 20 6e 75 6d 65 72 69 63  n.    is numeric
b7d0: 20 6f 72 20 74 65 78 74 2e 3c 2f 6c 69 3e 0a 3c   or text.</li>.<
b7e0: 6c 69 3e 41 75 74 6f 69 6e 63 72 65 6d 65 6e 74  li>Autoincrement
b7f0: 20 6e 6f 77 20 77 6f 72 6b 73 20 66 6f 72 20 49   now works for I
b800: 4e 53 45 52 54 20 66 72 6f 6d 20 61 20 53 45 4c  NSERT from a SEL
b810: 45 43 54 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ECT.</li>.}..chn
b820: 67 20 7b 32 30 30 32 20 4a 75 6e 20 31 39 20 28  g {2002 Jun 19 (
b830: 32 2e 35 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68  2.5.1)} {.<li>Th
b840: 65 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 65  e query optimize
b850: 72 20 6e 6f 77 20 61 74 74 65 6d 70 74 73 20 74  r now attempts t
b860: 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20  o implement the 
b870: 4f 52 44 45 52 20 42 59 20 63 6c 61 75 73 65 0a  ORDER BY clause.
b880: 20 20 20 20 75 73 69 6e 67 20 61 6e 20 69 6e 64      using an ind
b890: 65 78 2e 20 20 53 6f 72 74 69 6e 67 20 69 73 20  ex.  Sorting is 
b8a0: 73 74 69 6c 6c 20 75 73 65 64 20 69 66 20 6e 6f  still used if no
b8b0: 74 20 73 75 69 74 61 62 6c 65 20 69 6e 64 65 78  t suitable index
b8c0: 20 69 73 0a 20 20 20 20 61 76 61 69 6c 61 62 6c   is.    availabl
b8d0: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
b8e0: 7b 32 30 30 32 20 4a 75 6e 20 31 37 20 28 32 2e  {2002 Jun 17 (2.
b8f0: 35 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  5.0)} {.<li>Adde
b900: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72 6f  d support for ro
b910: 77 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e  w triggers.</li>
b920: 0a 3c 6c 69 3e 41 64 64 65 64 20 53 51 4c 2d 39  .<li>Added SQL-9
b930: 32 20 63 6f 6d 70 6c 69 61 6e 74 20 68 61 6e 64  2 compliant hand
b940: 6c 69 6e 67 20 6f 66 20 4e 55 4c 4c 73 2e 3c 2f  ling of NULLs.</
b950: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70  li>.<li>Add supp
b960: 6f 72 74 20 66 6f 72 20 74 68 65 20 66 75 6c 6c  ort for the full
b970: 20 53 51 4c 2d 39 32 20 6a 6f 69 6e 20 73 79 6e   SQL-92 join syn
b980: 74 61 78 20 61 6e 64 20 4c 45 46 54 20 4f 55 54  tax and LEFT OUT
b990: 45 52 20 4a 4f 49 4e 73 2e 3c 2f 6c 69 3e 0a 3c  ER JOINs.</li>.<
b9a0: 6c 69 3e 44 6f 75 62 6c 65 2d 71 75 6f 74 65 64  li>Double-quoted
b9b0: 20 73 74 72 69 6e 67 73 20 69 6e 74 65 72 70 72   strings interpr
b9c0: 65 74 65 64 20 61 73 20 63 6f 6c 75 6d 6e 20 6e  eted as column n
b9d0: 61 6d 65 73 20 6e 6f 74 20 74 65 78 74 20 6c 69  ames not text li
b9e0: 74 65 72 61 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  terals.</li>.<li
b9f0: 3e 50 61 72 73 65 20 28 62 75 74 20 64 6f 20 6e  >Parse (but do n
ba00: 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 29 20 66 6f  ot implement) fo
ba10: 72 65 69 67 6e 20 6b 65 79 73 2e 3c 2f 6c 69 3e  reign keys.</li>
ba20: 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65  .<li>Performance
ba30: 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e   improvements in
ba40: 20 74 68 65 20 70 61 72 73 65 72 2c 20 70 61 67   the parser, pag
ba50: 65 72 2c 20 61 6e 64 20 57 48 45 52 45 20 63 6c  er, and WHERE cl
ba60: 61 75 73 65 20 63 6f 64 65 0a 20 20 20 20 67 65  ause code.    ge
ba70: 6e 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c  nerator.</li>.<l
ba80: 69 3e 4d 61 6b 65 20 74 68 65 20 4c 49 4d 49 54  i>Make the LIMIT
ba90: 20 63 6c 61 75 73 65 20 77 6f 72 6b 20 6f 6e 20   clause work on 
baa0: 73 75 62 71 75 65 72 69 65 73 2e 20 20 28 4f 52  subqueries.  (OR
bab0: 44 45 52 20 42 59 20 73 74 69 6c 6c 20 64 6f 65  DER BY still doe
bac0: 73 20 6e 6f 74 0a 20 20 20 20 77 6f 72 6b 2c 20  s not.    work, 
bad0: 74 68 6f 75 67 68 2e 29 3c 2f 6c 69 3e 0a 3c 6c  though.)</li>.<l
bae0: 69 3e 41 64 64 65 64 20 74 68 65 20 22 25 51 22  i>Added the "%Q"
baf0: 20 65 78 70 61 6e 73 69 6f 6e 20 74 6f 20 73 71   expansion to sq
bb00: 6c 69 74 65 5f 2a 5f 70 72 69 6e 74 66 28 29 2e  lite_*_printf().
bb10: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
bb20: 78 65 73 20 74 6f 6f 20 6e 75 6d 65 72 6f 75 73  xes too numerous
bb30: 20 74 6f 20 6d 65 6e 74 69 6f 6e 20 28 73 65 65   to mention (see
bb40: 20 74 68 65 20 63 68 61 6e 67 65 20 6c 6f 67 29   the change log)
bb50: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
bb60: 32 30 30 32 20 4d 61 79 20 30 39 20 28 32 2e 34  2002 May 09 (2.4
bb70: 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  .12)} {.<li>Adde
bb80: 64 20 6c 6f 67 69 63 20 74 6f 20 64 65 74 65 63  d logic to detec
bb90: 74 20 77 68 65 6e 20 74 68 65 20 6c 69 62 72 61  t when the libra
bba0: 72 79 20 41 50 49 20 72 6f 75 74 69 6e 65 73 20  ry API routines 
bbb0: 61 72 65 20 63 61 6c 6c 65 64 20 6f 75 74 0a 20  are called out. 
bbc0: 20 20 20 6f 66 20 73 65 71 75 65 6e 63 65 2e 3c     of sequence.<
bbd0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
bbe0: 30 32 20 4d 61 79 20 30 38 20 28 32 2e 34 2e 31  02 May 08 (2.4.1
bbf0: 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  1)} {.<li>Bug fi
bc00: 78 3a 20 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20  x: Column names 
bc10: 69 6e 20 74 68 65 20 72 65 73 75 6c 74 20 73 65  in the result se
bc20: 74 20 77 65 72 65 20 6e 6f 74 20 62 65 69 6e 67  t were not being
bc30: 20 67 65 6e 65 72 61 74 65 64 0a 20 20 20 20 63   generated.    c
bc40: 6f 72 72 65 63 74 6c 79 20 66 6f 72 20 73 6f 6d  orrectly for som
bc50: 65 20 28 72 61 74 68 65 72 20 63 6f 6d 70 6c 65  e (rather comple
bc60: 78 29 20 56 49 45 57 73 2e 20 20 54 68 69 73 20  x) VIEWs.  This 
bc70: 63 6f 75 6c 64 20 63 61 75 73 65 20 61 0a 20 20  could cause a.  
bc80: 20 20 73 65 67 66 61 75 6c 74 20 75 6e 64 65 72    segfault under
bc90: 20 63 65 72 74 61 69 6e 20 63 69 72 63 75 6d 73   certain circums
bca0: 74 61 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  tances.</li>.}..
bcb0: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30  chng {2002 May 0
bcc0: 32 20 28 32 2e 34 2e 31 30 29 7d 20 7b 0a 3c 6c  2 (2.4.10)} {.<l
bcd0: 69 3e 42 75 67 20 66 69 78 3a 20 47 65 6e 65 72  i>Bug fix: Gener
bce0: 61 74 65 20 63 6f 72 72 65 63 74 20 63 6f 6c 75  ate correct colu
bcf0: 6d 6e 20 68 65 61 64 65 72 73 20 77 68 65 6e 20  mn headers when 
bd00: 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43  a compound SELEC
bd10: 54 20 69 73 20 75 73 65 64 0a 20 20 20 20 61 73  T is used.    as
bd20: 20 61 20 73 75 62 71 75 65 72 79 2e 3c 2f 6c 69   a subquery.</li
bd30: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
bd40: 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69  sqlite_encode_bi
bd50: 6e 61 72 79 28 29 20 61 6e 64 20 73 71 6c 69 74  nary() and sqlit
bd60: 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61 72 79 28  e_decode_binary(
bd70: 29 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0a 20  ) functions to. 
bd80: 20 20 20 74 68 65 20 73 6f 75 72 63 65 20 74 72     the source tr
bd90: 65 65 2e 20 20 42 75 74 20 74 68 65 79 20 61 72  ee.  But they ar
bda0: 65 20 6e 6f 74 20 79 65 74 20 6c 69 6e 6b 65 64  e not yet linked
bdb0: 20 69 6e 74 6f 20 74 68 65 20 6c 69 62 72 61 72   into the librar
bdc0: 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75  y.</li>.<li>Docu
bdd0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
bde0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f  s.</li>.<li>Expo
bdf0: 72 74 20 74 68 65 20 73 71 6c 69 74 65 5f 63 68  rt the sqlite_ch
be00: 61 6e 67 65 73 28 29 20 66 75 6e 63 74 69 6f 6e  anges() function
be10: 20 66 72 6f 6d 20 77 69 6e 64 6f 77 73 20 44 4c   from windows DL
be20: 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  Ls.</li>.<li>Bug
be30: 20 66 69 78 3a 20 44 6f 20 6e 6f 74 20 61 74 74   fix: Do not att
be40: 65 6d 70 74 20 74 68 65 20 73 75 62 71 75 65 72  empt the subquer
be50: 79 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74  y flattening opt
be60: 69 6d 69 7a 61 74 69 6f 6e 20 6f 6e 20 71 75 65  imization on que
be70: 72 69 65 73 0a 20 20 20 20 74 68 61 74 20 6c 61  ries.    that la
be80: 63 6b 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65  ck a FROM clause
be90: 2e 20 20 54 6f 20 64 6f 20 73 6f 20 63 61 75 73  .  To do so caus
bea0: 65 73 20 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f  es a segfault.</
beb0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
bec0: 32 20 41 70 72 20 32 31 20 28 32 2e 34 2e 39 29  2 Apr 21 (2.4.9)
bed0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
bee0: 67 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69  g that was causi
bef0: 6e 67 20 74 68 65 20 70 72 65 63 6f 6d 70 69 6c  ng the precompil
bf00: 65 64 20 62 69 6e 61 72 79 20 6f 66 20 53 51 4c  ed binary of SQL
bf10: 49 54 45 2e 45 58 45 20 74 6f 0a 20 20 20 20 72  ITE.EXE to.    r
bf20: 65 70 6f 72 74 20 22 6f 75 74 20 6f 66 20 6d 65  eport "out of me
bf30: 6d 6f 72 79 22 20 75 6e 64 65 72 20 57 69 6e 64  mory" under Wind
bf40: 6f 77 73 20 39 38 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ows 98.</li>.}..
bf50: 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 32  chng {2002 Apr 2
bf60: 30 20 28 32 2e 34 2e 38 29 7d 20 7b 0a 3c 6c 69  0 (2.4.8)} {.<li
bf70: 3e 4d 61 6b 65 20 73 75 72 65 20 56 49 45 57 73  >Make sure VIEWs
bf80: 20 61 72 65 20 63 72 65 61 74 65 64 20 61 66 74   are created aft
bf90: 65 72 20 74 68 65 69 72 20 63 6f 72 72 65 73 70  er their corresp
bfa0: 6f 6e 64 69 6e 67 20 54 41 42 4c 45 73 20 69 6e  onding TABLEs in
bfb0: 20 74 68 65 0a 20 20 20 20 6f 75 74 70 75 74 20   the.    output 
bfc0: 6f 66 20 74 68 65 20 3c 62 3e 2e 64 75 6d 70 3c  of the <b>.dump<
bfd0: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74  /b> command in t
bfe0: 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c  he shell.</li>.<
bff0: 6c 69 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65  li>Speed improve
c000: 6d 65 6e 74 73 3a 20 44 6f 20 6e 6f 74 20 64 6f  ments: Do not do
c010: 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 75 70 64   synchronous upd
c020: 61 74 65 73 20 6f 6e 20 54 45 4d 50 20 74 61 62  ates on TEMP tab
c030: 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  les.</li>.<li>Ma
c040: 6e 79 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20  ny improvements 
c050: 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  and enhancements
c060: 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f   to the shell.</
c070: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65  li>.<li>Make the
c080: 20 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f   GLOB and LIKE o
c090: 70 65 72 61 74 6f 72 73 20 66 75 6e 63 74 69 6f  perators functio
c0a0: 6e 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 6f  ns that can be o
c0b0: 76 65 72 72 69 64 64 65 6e 0a 20 20 20 20 62 79  verridden.    by
c0c0: 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 20   a programmer.  
c0d0: 54 68 69 73 20 61 6c 6c 6f 77 73 2c 20 66 6f 72  This allows, for
c0e0: 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 4c 49   example, the LI
c0f0: 4b 45 20 6f 70 65 72 61 74 6f 72 20 74 6f 0a 20  KE operator to. 
c100: 20 20 20 62 65 20 63 68 61 6e 67 65 64 20 74 6f     be changed to
c110: 20 62 65 20 63 61 73 65 20 73 65 6e 73 69 74 69   be case sensiti
c120: 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ve.</li>.}..chng
c130: 20 7b 32 30 30 32 20 41 70 72 20 30 36 20 28 32   {2002 Apr 06 (2
c140: 2e 34 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .4.7)} {.<li>Add
c150: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
c160: 70 75 74 20 54 41 42 4c 45 2e 2a 20 69 6e 20 74  put TABLE.* in t
c170: 68 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f  he column list o
c180: 66 20 61 0a 20 20 20 20 53 45 4c 45 43 54 20 73  f a.    SELECT s
c190: 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c  tatement.</li>.<
c1a0: 6c 69 3e 50 65 72 6d 69 74 20 53 45 4c 45 43 54  li>Permit SELECT
c1b0: 20 73 74 61 74 65 6d 65 6e 74 73 20 77 69 74 68   statements with
c1c0: 6f 75 74 20 61 20 46 52 4f 4d 20 63 6c 61 75 73  out a FROM claus
c1d0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  e.</li>.<li>Adde
c1e0: 64 20 74 68 65 20 3c 62 3e 6c 61 73 74 5f 69 6e  d the <b>last_in
c1f0: 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e  sert_rowid()</b>
c200: 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f   SQL function.</
c210: 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 63  li>.<li>Do not c
c220: 6f 75 6e 74 20 72 6f 77 73 20 77 68 65 72 65 20  ount rows where 
c230: 74 68 65 20 49 47 4e 4f 52 45 20 63 6f 6e 66 6c  the IGNORE confl
c240: 69 63 74 20 72 65 73 6f 6c 75 74 69 6f 6e 20 6f  ict resolution o
c250: 63 63 75 72 73 20 69 6e 0a 20 20 20 20 74 68 65  ccurs in.    the
c260: 20 72 6f 77 20 63 6f 75 6e 74 2e 3c 2f 6c 69 3e   row count.</li>
c270: 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 66  .<li>Make sure f
c280: 75 6e 63 74 69 6f 6e 73 20 65 78 70 72 65 73 73  unctions express
c290: 69 6f 6e 73 20 69 6e 20 74 68 65 20 56 41 4c 55  ions in the VALU
c2a0: 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20  ES clause of an 
c2b0: 49 4e 53 45 52 54 0a 20 20 20 20 61 72 65 20 63  INSERT.    are c
c2c0: 6f 72 72 65 63 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  orrect.</li>.<li
c2d0: 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71  >Added the <b>sq
c2e0: 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 29 3c 2f  lite_changes()</
c2f0: 62 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 20  b> API function 
c300: 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 6e 75  to return the nu
c310: 6d 62 65 72 0a 20 20 20 20 6f 66 20 72 6f 77 20  mber.    of row 
c320: 74 68 61 74 20 63 68 61 6e 67 65 64 20 69 6e 20  that changed in 
c330: 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20  the most recent 
c340: 6f 70 65 72 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a  operation.</li>.
c350: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70  }..chng {2002 Ap
c360: 72 20 30 32 20 28 32 2e 34 2e 36 29 7d 20 7b 0a  r 02 (2.4.6)} {.
c370: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72  <li>Bug fix: Cor
c380: 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 74 65  rectly handle te
c390: 72 6d 73 20 69 6e 20 74 68 65 20 57 48 45 52 45  rms in the WHERE
c3a0: 20 63 6c 61 75 73 65 20 6f 66 20 61 20 6a 6f 69   clause of a joi
c3b0: 6e 20 74 68 61 74 0a 20 20 20 20 64 6f 20 6e 6f  n that.    do no
c3c0: 74 20 63 6f 6e 74 61 69 6e 20 61 20 63 6f 6d 70  t contain a comp
c3d0: 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 2e  arison operator.
c3e0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c3f0: 30 30 32 20 41 70 72 20 30 31 20 28 32 2e 34 2e  002 Apr 01 (2.4.
c400: 35 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  5)} {.<li>Bug fi
c410: 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68 61 6e  x: Correctly han
c420: 64 6c 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68  dle functions th
c430: 61 74 20 61 70 70 65 61 72 20 69 6e 20 74 68 65  at appear in the
c440: 20 57 48 45 52 45 20 63 6c 61 75 73 65 0a 20 20   WHERE clause.  
c450: 20 20 6f 66 20 61 20 6a 6f 69 6e 2e 3c 2f 6c 69    of a join.</li
c460: 3e 0a 3c 6c 69 3e 57 68 65 6e 20 74 68 65 20 50  >.<li>When the P
c470: 52 41 47 4d 41 20 76 64 62 65 5f 74 72 61 63 65  RAGMA vdbe_trace
c480: 3d 4f 4e 20 69 73 20 73 65 74 2c 20 63 6f 72 72  =ON is set, corr
c490: 65 63 74 6c 79 20 70 72 69 6e 74 20 74 68 65 20  ectly print the 
c4a0: 50 33 20 6f 70 65 72 61 6e 64 0a 20 20 20 20 76  P3 operand.    v
c4b0: 61 6c 75 65 20 77 68 65 6e 20 69 74 20 69 73 20  alue when it is 
c4c0: 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 73  a pointer to a s
c4d0: 74 72 75 63 74 75 72 65 20 72 61 74 68 65 72 20  tructure rather 
c4e0: 74 68 61 6e 20 61 20 70 6f 69 6e 74 65 72 20 74  than a pointer t
c4f0: 6f 0a 20 20 20 20 61 20 73 74 72 69 6e 67 2e 3c  o.    a string.<
c500: 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 69 6e  /li>.<li>When in
c510: 73 65 72 74 69 6e 67 20 61 6e 20 65 78 70 6c 69  serting an expli
c520: 63 69 74 20 4e 55 4c 4c 20 69 6e 74 6f 20 61 6e  cit NULL into an
c530: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59   INTEGER PRIMARY
c540: 20 4b 45 59 2c 20 63 6f 6e 76 65 72 74 0a 20 20   KEY, convert.  
c550: 20 20 74 68 65 20 4e 55 4c 4c 20 76 61 6c 75 65    the NULL value
c560: 20 69 6e 74 6f 20 61 20 75 6e 69 71 75 65 20 6b   into a unique k
c570: 65 79 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  ey automatically
c580: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c590: 32 30 30 32 20 4d 61 72 20 32 34 20 28 32 2e 34  2002 Mar 24 (2.4
c5a0: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77  .4)} {.<li>Allow
c5b0: 20 22 56 49 45 57 22 20 74 6f 20 62 65 20 61 20   "VIEW" to be a 
c5c0: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 3c 2f 6c 69 3e  column name</li>
c5d0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
c5e0: 72 74 20 66 6f 72 20 43 41 53 45 20 65 78 70 72  rt for CASE expr
c5f0: 65 73 73 69 6f 6e 73 20 28 70 61 74 63 68 20 66  essions (patch f
c600: 72 6f 6d 20 44 61 6e 20 4b 65 6e 6e 65 64 79 29  rom Dan Kennedy)
c610: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
c620: 52 50 4d 53 20 74 6f 20 74 68 65 20 64 65 6c 69  RPMS to the deli
c630: 76 65 72 79 20 28 70 61 74 63 68 65 73 20 66 72  very (patches fr
c640: 6f 6d 20 44 6f 75 67 20 48 65 6e 72 79 29 3c 2f  om Doug Henry)</
c650: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f  li>.<li>Fix typo
c660: 73 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e  s in the documen
c670: 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tation</li>.<li>
c680: 43 75 74 20 6f 76 65 72 20 63 6f 6e 66 69 67 75  Cut over configu
c690: 72 61 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e  ration managemen
c6a0: 74 20 74 6f 20 61 20 6e 65 77 20 43 56 53 20 72  t to a new CVS r
c6b0: 65 70 6f 73 69 74 6f 72 79 20 77 69 74 68 0a 20  epository with. 
c6c0: 20 20 20 69 74 73 20 6f 77 6e 20 43 56 53 54 72     its own CVSTr
c6d0: 61 63 20 62 75 67 20 74 72 61 63 6b 69 6e 67 20  ac bug tracking 
c6e0: 73 79 73 74 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  system.</li>.}..
c6f0: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 32  chng {2002 Mar 2
c700: 32 20 28 32 2e 34 2e 33 29 7d 20 7b 0a 3c 6c 69  2 (2.4.3)} {.<li
c710: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 53 45  >Fix a bug in SE
c720: 4c 45 43 54 20 74 68 61 74 20 6f 63 63 75 72 73  LECT that occurs
c730: 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64   when a compound
c740: 20 53 45 4c 45 43 54 20 69 73 20 75 73 65 64 20   SELECT is used 
c750: 61 73 20 61 0a 20 20 20 20 73 75 62 71 75 65 72  as a.    subquer
c760: 79 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 6f 66  y in the FROM of
c770: 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a   a SELECT.</li>.
c780: 3c 6c 69 3e 54 68 65 20 3c 62 3e 73 71 6c 69 74  <li>The <b>sqlit
c790: 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f 62  e_get_table()</b
c7a0: 3e 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 77 20 72  > function now r
c7b0: 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 20  eturns an error 
c7c0: 69 66 20 79 6f 75 0a 20 20 20 20 67 69 76 65 20  if you.    give 
c7d0: 69 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 53  it two or more S
c7e0: 45 4c 45 43 54 73 20 74 68 61 74 20 72 65 74 75  ELECTs that retu
c7f0: 72 6e 20 64 69 66 66 65 72 65 6e 74 20 6e 75 6d  rn different num
c800: 62 65 72 73 20 6f 66 20 63 6f 6c 75 6d 6e 73 2e  bers of columns.
c810: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c820: 30 30 32 20 4d 61 72 20 31 34 20 28 32 2e 34 2e  002 Mar 14 (2.4.
c830: 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  2)} {.<li>Bug fi
c840: 78 3a 20 46 69 78 20 61 6e 20 61 73 73 65 72 74  x: Fix an assert
c850: 69 6f 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74  ion failure that
c860: 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e 20 52   occurred when R
c870: 4f 57 49 44 20 77 61 73 20 61 20 63 6f 6c 75 6d  OWID was a colum
c880: 6e 0a 20 20 20 20 69 6e 20 61 20 53 45 4c 45 43  n.    in a SELEC
c890: 54 20 73 74 61 74 65 6d 65 6e 74 20 6f 6e 20 61  T statement on a
c8a0: 20 76 69 65 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   view.</li>.<li>
c8b0: 42 75 67 20 66 69 78 3a 20 46 69 78 20 61 6e 20  Bug fix: Fix an 
c8c0: 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61  uninitialized va
c8d0: 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 56 44  riable in the VD
c8e0: 42 45 20 74 68 61 74 20 77 6f 75 6c 64 20 63 6f  BE that would co
c8f0: 75 6c 64 20 61 6e 0a 20 20 20 20 61 73 73 65 72  uld an.    asser
c900: 74 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a  t failure.</li>.
c910: 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6f 73 2e  <li>Make the os.
c920: 68 20 68 65 61 64 65 72 20 66 69 6c 65 20 6d 6f  h header file mo
c930: 72 65 20 72 6f 62 75 73 74 20 69 6e 20 64 65 74  re robust in det
c940: 65 63 74 69 6e 67 20 77 68 65 6e 20 74 68 65 20  ecting when the 
c950: 63 6f 6d 70 69 6c 65 20 69 73 0a 20 20 20 20 66  compile is.    f
c960: 6f 72 20 77 69 6e 64 6f 77 73 20 61 6e 64 20 77  or windows and w
c970: 68 65 6e 20 69 74 20 69 73 20 66 6f 72 20 75 6e  hen it is for un
c980: 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ix.</li>.}..chng
c990: 20 7b 32 30 30 32 20 4d 61 72 20 31 33 20 28 32   {2002 Mar 13 (2
c9a0: 2e 34 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 55 73 69  .4.1)} {.<li>Usi
c9b0: 6e 67 20 61 6e 20 75 6e 6e 61 6d 65 64 20 73 75  ng an unnamed su
c9c0: 62 71 75 65 72 79 20 69 6e 20 61 20 46 52 4f 4d  bquery in a FROM
c9d0: 20 63 6c 61 75 73 65 20 77 6f 75 6c 64 20 63 61   clause would ca
c9e0: 75 73 65 20 61 20 73 65 67 66 61 75 6c 74 2e 3c  use a segfault.<
c9f0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 72  /li>.<li>The par
ca00: 73 65 72 20 6e 6f 77 20 69 6e 73 69 73 74 73 20  ser now insists 
ca10: 6f 6e 20 73 65 65 69 6e 67 20 61 20 73 65 6d 69  on seeing a semi
ca20: 63 6f 6c 6f 6e 20 6f 72 20 74 68 65 20 65 6e 64  colon or the end
ca30: 20 6f 66 20 69 6e 70 75 74 20 62 65 66 6f 72 65   of input before
ca40: 0a 20 20 20 20 65 78 65 63 75 74 69 6e 67 20 61  .    executing a
ca50: 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 54 68 69   statement.  Thi
ca60: 73 20 61 76 6f 69 64 73 20 61 6e 20 61 63 63 69  s avoids an acci
ca70: 64 65 6e 74 61 6c 20 64 69 73 61 73 74 65 72 20  dental disaster 
ca80: 69 66 20 74 68 65 0a 20 20 20 20 57 48 45 52 45  if the.    WHERE
ca90: 20 6b 65 79 77 6f 72 64 20 69 73 20 6d 69 73 73   keyword is miss
caa0: 70 65 6c 6c 65 64 20 69 6e 20 61 6e 20 55 50 44  pelled in an UPD
cab0: 41 54 45 20 6f 72 20 44 45 4c 45 54 45 20 73 74  ATE or DELETE st
cac0: 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a  atement.</li>.}.
cad0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72  ..chng {2002 Mar
cae0: 20 31 30 20 28 32 2e 34 2e 30 29 7d 20 7b 0a 3c   10 (2.4.0)} {.<
caf0: 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 6e 61  li>Change the na
cb00: 6d 65 20 6f 66 20 74 68 65 20 73 61 6e 69 74 79  me of the sanity
cb10: 5f 63 68 65 63 6b 20 50 52 41 47 4d 41 20 74 6f  _check PRAGMA to
cb20: 20 3c 62 3e 69 6e 74 65 67 72 69 74 79 5f 63 68   <b>integrity_ch
cb30: 65 63 6b 3c 2f 62 3e 0a 20 20 20 20 61 6e 64 20  eck</b>.    and 
cb40: 6d 61 6b 65 20 69 74 20 61 76 61 69 6c 61 62 6c  make it availabl
cb50: 65 20 69 6e 20 61 6c 6c 20 63 6f 6d 70 69 6c 65  e in all compile
cb60: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 45 4c 45  s.</li>.<li>SELE
cb70: 43 54 20 6d 69 6e 28 29 20 6f 72 20 6d 61 78 28  CT min() or max(
cb80: 29 20 6f 66 20 61 6e 20 69 6e 64 65 78 65 64 20  ) of an indexed 
cb90: 63 6f 6c 75 6d 6e 20 77 69 74 68 20 6e 6f 20 57  column with no W
cba0: 48 45 52 45 20 6f 72 20 47 52 4f 55 50 20 42 59  HERE or GROUP BY
cbb0: 0a 20 20 20 20 63 6c 61 75 73 65 20 69 73 20 68  .    clause is h
cbc0: 61 6e 64 6c 65 64 20 61 73 20 61 20 73 70 65 63  andled as a spec
cbd0: 69 61 6c 20 63 61 73 65 20 77 68 69 63 68 20 61  ial case which a
cbe0: 76 6f 69 64 73 20 61 20 63 6f 6d 70 6c 65 74 65  voids a complete
cbf0: 20 74 61 62 6c 65 20 73 63 61 6e 2e 3c 2f 6c 69   table scan.</li
cc00: 3e 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 61  >.<li>Automatica
cc10: 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20 52 4f  lly generated RO
cc20: 57 49 44 73 20 61 72 65 20 6e 6f 77 20 73 65 71  WIDs are now seq
cc30: 75 65 6e 74 69 61 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  uential.</li>.<l
cc40: 69 3e 44 6f 20 6e 6f 74 20 61 6c 6c 6f 77 20 64  i>Do not allow d
cc50: 6f 74 2d 63 6f 6d 6d 61 6e 64 73 20 6f 66 20 74  ot-commands of t
cc60: 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20  he command-line 
cc70: 73 68 65 6c 6c 20 74 6f 20 6f 63 63 75 72 20 69  shell to occur i
cc80: 6e 20 74 68 65 0a 20 20 20 20 6d 69 64 64 6c 65  n the.    middle
cc90: 20 6f 66 20 61 20 72 65 61 6c 20 53 51 4c 20 63   of a real SQL c
cca0: 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ommand.</li>.<li
ccb0: 3e 4d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74  >Modifications t
ccc0: 6f 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61  o the "lemon" pa
ccd0: 72 73 65 72 20 67 65 6e 65 72 61 74 6f 72 20 73  rser generator s
cce0: 6f 20 74 68 61 74 20 74 68 65 20 70 61 72 73 65  o that the parse
ccf0: 72 20 74 61 62 6c 65 73 0a 20 20 20 20 61 72 65  r tables.    are
cd00: 20 34 20 74 69 6d 65 73 20 73 6d 61 6c 6c 65 72   4 times smaller
cd10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
cd20: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 75 73 65   support for use
cd30: 72 2d 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69  r-defined functi
cd40: 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20  ons implemented 
cd50: 69 6e 20 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  in C.</li>.<li>A
cd60: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
cd70: 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a 20   new functions: 
cd80: 3c 62 3e 63 6f 61 6c 65 73 63 65 28 29 3c 2f 62  <b>coalesce()</b
cd90: 3e 2c 20 3c 62 3e 6c 6f 77 65 72 28 29 3c 2f 62  >, <b>lower()</b
cda0: 3e 2c 0a 20 20 20 20 3c 62 3e 75 70 70 65 72 28  >,.    <b>upper(
cdb0: 29 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 72 61  )</b>, and <b>ra
cdc0: 6e 64 6f 6d 28 29 3c 2f 62 3e 0a 3c 6c 69 3e 41  ndom()</b>.<li>A
cdd0: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
cde0: 20 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   VIEWs.</li>.<li
cdf0: 3e 41 64 64 65 64 20 74 68 65 20 73 75 62 71 75  >Added the subqu
ce00: 65 72 79 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f  ery flattening o
ce10: 70 74 69 6d 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c  ptimizer.</li>.<
ce20: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
ce30: 42 2d 54 72 65 65 20 61 6e 64 20 50 61 67 65 72  B-Tree and Pager
ce40: 20 6d 6f 64 75 6c 65 73 20 73 6f 20 74 68 61 74   modules so that
ce50: 20 64 69 73 6b 20 70 61 67 65 73 20 74 68 61 74   disk pages that
ce60: 20 64 6f 20 6e 6f 74 0a 20 20 20 20 63 6f 6e 74   do not.    cont
ce70: 61 69 6e 20 72 65 61 6c 20 64 61 74 61 20 28 66  ain real data (f
ce80: 72 65 65 20 70 61 67 65 73 29 20 61 72 65 20 6e  ree pages) are n
ce90: 6f 74 20 6a 6f 75 72 6e 61 6c 65 64 20 61 6e 64  ot journaled and
cea0: 20 61 72 65 20 6e 6f 74 0a 20 20 20 20 77 72 69   are not.    wri
ceb0: 74 74 65 6e 20 66 72 6f 6d 20 6d 65 6d 6f 72 79  tten from memory
cec0: 20 62 61 63 6b 20 74 6f 20 74 68 65 20 64 69 73   back to the dis
ced0: 6b 20 77 68 65 6e 20 74 68 65 79 20 63 68 61 6e  k when they chan
cee0: 67 65 2e 20 20 54 68 69 73 20 64 6f 65 73 20 6e  ge.  This does n
cef0: 6f 74 20 0a 20 20 20 20 69 6d 70 61 63 74 20 64  ot .    impact d
cf00: 61 74 61 62 61 73 65 20 69 6e 74 65 67 72 69 74  atabase integrit
cf10: 79 2c 20 73 69 6e 63 65 20 74 68 65 0a 20 20 20  y, since the.   
cf20: 20 70 61 67 65 73 20 63 6f 6e 74 61 69 6e 20 6e   pages contain n
cf30: 6f 20 72 65 61 6c 20 64 61 74 61 2c 20 62 75 74  o real data, but
cf40: 20 69 74 20 64 6f 65 73 20 6d 61 6b 65 20 6c 61   it does make la
cf50: 72 67 65 20 49 4e 53 45 52 54 20 6f 70 65 72 61  rge INSERT opera
cf60: 74 69 6f 6e 73 0a 20 20 20 20 61 62 6f 75 74 20  tions.    about 
cf70: 32 2e 35 20 74 69 6d 65 73 20 66 61 73 74 65 72  2.5 times faster
cf80: 20 61 6e 64 20 6c 61 72 67 65 20 44 45 4c 45 54   and large DELET
cf90: 45 73 20 61 62 6f 75 74 20 35 20 74 69 6d 65 73  Es about 5 times
cfa0: 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   faster.</li>.<l
cfb0: 69 3e 4d 61 64 65 20 74 68 65 20 43 41 43 48 45  i>Made the CACHE
cfc0: 5f 53 49 5a 45 20 70 72 61 67 6d 61 20 70 65 72  _SIZE pragma per
cfd0: 73 69 73 74 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69  sistent</li>.<li
cfe0: 3e 41 64 64 65 64 20 74 68 65 20 53 59 4e 43 48  >Added the SYNCH
cff0: 52 4f 4e 4f 55 53 20 70 72 61 67 6d 61 3c 2f 6c  RONOUS pragma</l
d000: 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20 62  i>.<li>Fixed a b
d010: 75 67 20 74 68 61 74 20 77 61 73 20 63 61 75 73  ug that was caus
d020: 69 6e 67 20 75 70 64 61 74 65 73 20 74 6f 20 66  ing updates to f
d030: 61 69 6c 20 69 6e 73 69 64 65 20 6f 66 20 74 72  ail inside of tr
d040: 61 6e 73 61 63 74 69 6f 6e 73 20 77 68 65 6e 0a  ansactions when.
d050: 20 20 20 20 74 68 65 20 64 61 74 61 62 61 73 65      the database
d060: 20 63 6f 6e 74 61 69 6e 65 64 20 61 20 74 65 6d   contained a tem
d070: 70 6f 72 61 72 79 20 74 61 62 6c 65 2e 3c 2f 6c  porary table.</l
d080: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
d090: 20 46 65 62 20 31 38 20 28 32 2e 33 2e 33 29 7d   Feb 18 (2.3.3)}
d0a0: 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 69 64 65   {.<li>Allow ide
d0b0: 6e 74 69 66 69 65 72 73 20 74 6f 20 62 65 20 71  ntifiers to be q
d0c0: 75 6f 74 65 64 20 69 6e 20 73 71 75 61 72 65 20  uoted in square 
d0d0: 62 72 61 63 6b 65 74 73 2c 20 66 6f 72 20 63 6f  brackets, for co
d0e0: 6d 70 61 74 69 62 69 6c 69 74 79 0a 20 20 20 20  mpatibility.    
d0f0: 77 69 74 68 20 4d 53 2d 41 63 63 65 73 73 2e 3c  with MS-Access.<
d100: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
d110: 75 70 70 6f 72 74 20 66 6f 72 20 73 75 62 2d 71  upport for sub-q
d120: 75 65 72 69 65 73 20 69 6e 20 74 68 65 20 46 52  ueries in the FR
d130: 4f 4d 20 63 6c 61 75 73 65 20 6f 66 20 61 20 53  OM clause of a S
d140: 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ELECT.</li>.<li>
d150: 4d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 20 69  More efficient i
d160: 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66  mplementation of
d170: 20 73 71 6c 69 74 65 46 69 6c 65 45 78 69 73 74   sqliteFileExist
d180: 73 28 29 20 75 6e 64 65 72 20 57 69 6e 64 6f 77  s() under Window
d190: 73 2e 0a 20 20 20 20 28 62 79 20 4a 6f 65 6c 20  s..    (by Joel 
d1a0: 4c 75 73 63 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  Luscy)</li>.<li>
d1b0: 54 68 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73  The VALUES claus
d1c0: 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54 20 63  e of an INSERT c
d1d0: 61 6e 20 6e 6f 77 20 63 6f 6e 74 61 69 6e 20 65  an now contain e
d1e0: 78 70 72 65 73 73 69 6f 6e 73 2c 20 69 6e 63 6c  xpressions, incl
d1f0: 75 64 69 6e 67 0a 20 20 20 20 73 63 61 6c 61 72  uding.    scalar
d200: 20 53 45 4c 45 43 54 20 63 6c 61 75 73 65 73 2e   SELECT clauses.
d210: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
d220: 73 75 70 70 6f 72 74 20 66 6f 72 20 43 52 45 41  support for CREA
d230: 54 45 20 54 41 42 4c 45 20 41 53 20 53 45 4c 45  TE TABLE AS SELE
d240: 43 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  CT</li>.<li>Bug 
d250: 66 69 78 3a 20 43 72 65 61 74 69 6e 67 20 61 6e  fix: Creating an
d260: 64 20 64 72 6f 70 70 69 6e 67 20 61 20 74 61 62  d dropping a tab
d270: 6c 65 20 61 6c 6c 20 77 69 74 68 69 6e 20 61 20  le all within a 
d280: 73 69 6e 67 6c 65 0a 20 20 20 20 74 72 61 6e 73  single.    trans
d290: 61 63 74 69 6f 6e 20 77 61 73 20 6e 6f 74 20 77  action was not w
d2a0: 6f 72 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  orking.</li>.}..
d2b0: 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31  chng {2002 Feb 1
d2c0: 34 20 28 32 2e 33 2e 32 29 7d 20 7b 0a 3c 6c 69  4 (2.3.2)} {.<li
d2d0: 3e 42 75 67 20 66 69 78 3a 20 54 68 65 72 65 20  >Bug fix: There 
d2e0: 77 61 73 20 61 6e 20 69 6e 63 6f 72 72 65 63 74  was an incorrect
d2f0: 20 61 73 73 65 72 74 28 29 20 69 6e 20 70 61 67   assert() in pag
d300: 65 72 2e 63 2e 20 20 54 68 65 20 72 65 61 6c 20  er.c.  The real 
d310: 63 6f 64 65 20 77 61 73 0a 20 20 20 20 61 6c 6c  code was.    all
d320: 20 63 6f 72 72 65 63 74 20 28 61 73 20 66 61 72   correct (as far
d330: 20 61 73 20 69 73 20 6b 6e 6f 77 6e 29 20 73 6f   as is known) so
d340: 20 65 76 65 72 79 74 68 69 6e 67 20 73 68 6f 75   everything shou
d350: 6c 64 20 77 6f 72 6b 20 4f 4b 20 69 66 20 79 6f  ld work OK if yo
d360: 75 0a 20 20 20 20 63 6f 6d 70 69 6c 65 20 77 69  u.    compile wi
d370: 74 68 20 2d 44 4e 44 45 42 55 47 3d 31 2e 20 20  th -DNDEBUG=1.  
d380: 57 68 65 6e 20 61 73 73 65 72 74 73 20 61 72 65  When asserts are
d390: 20 6e 6f 74 20 64 69 73 61 62 6c 65 64 2c 20 74   not disabled, t
d3a0: 68 65 72 65 0a 20 20 20 20 63 6f 75 6c 64 20 62  here.    could b
d3b0: 65 20 61 20 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a  e a fault.</li>.
d3c0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65  }..chng {2002 Fe
d3d0: 62 20 31 33 20 28 32 2e 33 2e 31 29 7d 20 7b 0a  b 13 (2.3.1)} {.
d3e0: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20  <li>Bug fix: An 
d3f0: 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61  assertion was fa
d400: 69 6c 69 6e 67 20 69 66 20 22 50 52 41 47 4d 41  iling if "PRAGMA
d410: 20 66 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d   full_column_nam
d420: 65 73 3d 4f 4e 3b 22 20 77 61 73 0a 20 20 20 20  es=ON;" was.    
d430: 73 65 74 20 61 6e 64 20 79 6f 75 20 64 69 64 20  set and you did 
d440: 61 20 71 75 65 72 79 20 74 68 61 74 20 75 73 65  a query that use
d450: 64 20 61 20 72 6f 77 69 64 2c 20 6c 69 6b 65 20  d a rowid, like 
d460: 74 68 69 73 3a 20 20 0a 20 20 20 20 22 53 45 4c  this:  .    "SEL
d470: 45 43 54 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f  ECT rowid, * FRO
d480: 4d 20 2e 2e 2e 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  M ...".</li>.}..
d490: 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 33  chng {2002 Jan 3
d4a0: 30 20 28 32 2e 33 2e 30 29 7d 20 7b 0a 3c 6c 69  0 (2.3.0)} {.<li
d4b0: 3e 46 69 78 20 61 20 73 65 72 69 6f 75 73 20 62  >Fix a serious b
d4c0: 75 67 20 69 6e 20 74 68 65 20 49 4e 53 45 52 54  ug in the INSERT
d4d0: 20 63 6f 6d 6d 61 6e 64 20 77 68 69 63 68 20 77   command which w
d4e0: 61 73 20 63 61 75 73 69 6e 67 20 64 61 74 61 20  as causing data 
d4f0: 74 6f 20 67 6f 0a 20 20 20 20 69 6e 74 6f 20 74  to go.    into t
d500: 68 65 20 77 72 6f 6e 67 20 63 6f 6c 75 6d 6e 73  he wrong columns
d510: 20 69 66 20 74 68 65 20 64 61 74 61 20 73 6f 75   if the data sou
d520: 72 63 65 20 77 61 73 20 61 20 53 45 4c 45 43 54  rce was a SELECT
d530: 20 61 6e 64 20 74 68 65 20 49 4e 53 45 52 54 0a   and the INSERT.
d540: 20 20 20 20 63 6c 61 75 73 65 73 20 73 70 65 63      clauses spec
d550: 69 66 69 65 64 20 69 74 73 20 63 6f 6c 75 6d 6e  ified its column
d560: 73 20 69 6e 20 73 6f 6d 65 20 6f 72 64 65 72 20  s in some order 
d570: 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 64  other than the d
d580: 65 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  efault.</li>.<li
d590: 3e 41 64 64 65 64 20 74 68 65 20 61 62 69 6c 69  >Added the abili
d5a0: 74 79 20 74 6f 20 72 65 73 6f 6c 76 65 20 63 6f  ty to resolve co
d5b0: 6e 73 74 72 61 69 6e 74 20 63 6f 6e 66 6c 69 63  nstraint conflic
d5c0: 74 73 20 69 73 20 77 61 79 73 20 6f 74 68 65 72  ts is ways other
d5d0: 20 74 68 61 6e 0a 20 20 20 20 61 6e 20 61 62 6f   than.    an abo
d5e0: 72 74 20 61 6e 64 20 72 6f 6c 6c 62 61 63 6b 2e  rt and rollback.
d5f0: 20 20 53 65 65 20 74 68 65 20 64 6f 63 75 6d 65    See the docume
d600: 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 22  ntation on the "
d610: 4f 4e 20 43 4f 4e 46 4c 49 43 54 22 0a 20 20 20  ON CONFLICT".   
d620: 20 63 6c 61 75 73 65 20 66 6f 72 20 64 65 74 61   clause for deta
d630: 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 65  ils.</li>.<li>Te
d640: 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 61 72  mporary files ar
d650: 65 20 6e 6f 77 20 61 75 74 6f 6d 61 74 69 63 61  e now automatica
d660: 6c 6c 79 20 64 65 6c 65 74 65 64 20 62 79 20 74  lly deleted by t
d670: 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73  he operating sys
d680: 74 65 6d 0a 20 20 20 20 77 68 65 6e 20 63 6c 6f  tem.    when clo
d690: 73 65 64 2e 20 20 54 68 65 72 65 20 61 72 65 20  sed.  There are 
d6a0: 6e 6f 20 6d 6f 72 65 20 64 61 6e 67 6c 69 6e 67  no more dangling
d6b0: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73   temporary files
d6c0: 20 6f 6e 20 61 20 70 72 6f 67 72 61 6d 0a 20 20   on a program.  
d6d0: 20 20 63 72 61 73 68 2e 20 20 28 49 66 20 74 68    crash.  (If th
d6e0: 65 20 4f 53 20 63 72 61 73 68 65 73 2c 20 66 73  e OS crashes, fs
d6f0: 63 6b 20 77 69 6c 6c 20 64 65 6c 65 74 65 20 74  ck will delete t
d700: 68 65 20 66 69 6c 65 20 61 66 74 65 72 20 72 65  he file after re
d710: 62 6f 6f 74 20 0a 20 20 20 20 75 6e 64 65 72 20  boot .    under 
d720: 55 6e 69 78 2e 20 20 49 20 64 6f 20 6e 6f 74 20  Unix.  I do not 
d730: 6b 6e 6f 77 20 77 68 61 74 20 68 61 70 70 65 6e  know what happen
d740: 73 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e  s under Windows.
d750: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 4f 54 20 4e  )</li>.<li>NOT N
d760: 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e 74 73 20  ULL constraints 
d770: 61 72 65 20 68 6f 6e 6f 72 65 64 2e 3c 2f 6c 69  are honored.</li
d780: 3e 0a 3c 6c 69 3e 54 68 65 20 43 4f 50 59 20 63  >.<li>The COPY c
d790: 6f 6d 6d 61 6e 64 20 70 75 74 73 20 4e 55 4c 4c  ommand puts NULL
d7a0: 73 20 69 6e 20 63 6f 6c 75 6d 6e 73 20 77 68 6f  s in columns who
d7b0: 73 65 20 64 61 74 61 20 69 73 20 27 5c 4e 27 2e  se data is '\N'.
d7c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65  </li>.<li>In the
d7d0: 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2c 20 62   COPY command, b
d7e0: 61 63 6b 73 6c 61 73 68 20 63 61 6e 20 6e 6f 77  ackslash can now
d7f0: 20 62 65 20 75 73 65 64 20 74 6f 20 65 73 63 61   be used to esca
d800: 70 65 20 61 20 6e 65 77 6c 69 6e 65 2e 3c 2f 6c  pe a newline.</l
d810: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
d820: 20 53 41 4e 49 54 59 5f 43 48 45 43 4b 20 70 72   SANITY_CHECK pr
d830: 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  agma.</li>.}..ch
d840: 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 32 38 20  ng {2002 Jan 28 
d850: 28 32 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 49  (2.2.5)} {.<li>I
d860: 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66 69 78  mportant bug fix
d870: 3a 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f  : the IN operato
d880: 72 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e  r was not workin
d890: 67 20 69 66 20 65 69 74 68 65 72 20 74 68 65 0a  g if either the.
d8a0: 20 20 20 20 6c 65 66 74 2d 68 61 6e 64 20 6f 72      left-hand or
d8b0: 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65   right-hand side
d8c0: 20 77 61 73 20 64 65 72 69 76 65 64 20 66 72 6f   was derived fro
d8d0: 6d 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49  m an INTEGER PRI
d8e0: 4d 41 52 59 20 4b 45 59 2e 3c 2f 6c 69 3e 0a 3c  MARY KEY.</li>.<
d8f0: 6c 69 3e 44 6f 20 6e 6f 74 20 65 73 63 61 70 65  li>Do not escape
d900: 20 74 68 65 20 62 61 63 6b 73 6c 61 73 68 20 27   the backslash '
d910: 5c 27 20 63 68 61 72 61 63 74 65 72 20 69 6e 20  \' character in 
d920: 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68  the output of th
d930: 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c  e.    <b>sqlite<
d940: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65  /b> command-line
d950: 20 61 63 63 65 73 73 20 70 72 6f 67 72 61 6d 2e   access program.
d960: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
d970: 30 30 32 20 4a 61 6e 20 32 32 20 28 32 2e 32 2e  002 Jan 22 (2.2.
d980: 34 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c 61  4)} {.<li>The la
d990: 62 65 6c 20 74 6f 20 74 68 65 20 72 69 67 68 74  bel to the right
d9a0: 20 6f 66 20 61 6e 20 41 53 20 69 6e 20 74 68 65   of an AS in the
d9b0: 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20   column list of 
d9c0: 61 20 53 45 4c 45 43 54 20 63 61 6e 20 6e 6f 77  a SELECT can now
d9d0: 0a 20 20 20 20 62 65 20 75 73 65 64 20 61 73 20  .    be used as 
d9e0: 70 61 72 74 20 6f 66 20 61 6e 20 65 78 70 72 65  part of an expre
d9f0: 73 73 69 6f 6e 20 69 6e 20 74 68 65 20 57 48 45  ssion in the WHE
da00: 52 45 2c 20 4f 52 44 45 52 20 42 59 2c 20 47 52  RE, ORDER BY, GR
da10: 4f 55 50 20 42 59 2c 20 61 6e 64 2f 6f 72 0a 20  OUP BY, and/or. 
da20: 20 20 20 48 41 56 49 4e 47 20 63 6c 61 75 73 65     HAVING clause
da30: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
da40: 61 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e  a bug in the <b>
da50: 2d 73 65 70 61 72 61 74 6f 72 3c 2f 62 3e 20 63  -separator</b> c
da60: 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70 74 69  ommand-line opti
da70: 6f 6e 20 74 6f 20 74 68 65 20 3c 62 3e 73 71 6c  on to the <b>sql
da80: 69 74 65 3c 2f 62 3e 0a 20 20 20 20 63 6f 6d 6d  ite</b>.    comm
da90: 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  and.</li>.<li>Fi
daa0: 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68  x a problem with
dab0: 20 74 68 65 20 73 6f 72 74 20 6f 72 64 65 72 20   the sort order 
dac0: 77 68 65 6e 20 63 6f 6d 70 61 72 69 6e 67 20 75  when comparing u
dad0: 70 70 65 72 2d 63 61 73 65 20 73 74 72 69 6e 67  pper-case string
dae0: 73 20 61 67 61 69 6e 73 74 0a 20 20 20 20 63 68  s against.    ch
daf0: 61 72 61 63 74 65 72 73 20 67 72 65 61 74 65 72  aracters greater
db00: 20 74 68 61 6e 20 27 5a 27 20 62 75 74 20 6c 65   than 'Z' but le
db10: 73 73 20 74 68 61 6e 20 27 61 27 2e 3c 2f 6c 69  ss than 'a'.</li
db20: 3e 0a 3c 6c 69 3e 52 65 70 6f 72 74 20 61 6e 20  >.<li>Report an 
db30: 65 72 72 6f 72 20 69 66 20 61 6e 20 4f 52 44 45  error if an ORDE
db40: 52 20 42 59 20 6f 72 20 47 52 4f 55 50 20 42 59  R BY or GROUP BY
db50: 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 63   expression is c
db60: 6f 6e 73 74 61 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a  onstant.</li>.}.
db70: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20  .chng {2002 Jan 
db80: 31 36 20 28 32 2e 32 2e 33 29 7d 20 7b 0a 3c 6c  16 (2.2.3)} {.<l
db90: 69 3e 46 69 78 20 77 61 72 6e 69 6e 67 20 6d 65  i>Fix warning me
dba0: 73 73 61 67 65 73 20 69 6e 20 56 43 2b 2b 20 37  ssages in VC++ 7
dbb0: 2e 30 2e 20 20 28 50 61 74 63 68 65 73 20 66 72  .0.  (Patches fr
dbc0: 6f 6d 20 6e 69 63 6f 6c 61 73 33 35 32 30 30 31  om nicolas352001
dbd0: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20  )</li>.<li>Make 
dbe0: 74 68 65 20 6c 69 62 72 61 72 79 20 74 68 72 65  the library thre
dbf0: 61 64 2d 73 61 66 65 2e 20 20 28 54 68 65 20 63  ad-safe.  (The c
dc00: 6f 64 65 20 69 73 20 74 68 65 72 65 20 61 6e 64  ode is there and
dc10: 20 61 70 70 65 61 72 73 20 74 6f 20 77 6f 72 6b   appears to work
dc20: 0a 20 20 20 20 62 75 74 20 68 61 73 20 6e 6f 74  .    but has not
dc30: 20 62 65 65 6e 20 73 74 72 65 73 73 65 64 2e 29   been stressed.)
dc40: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
dc50: 74 68 65 20 6e 65 77 20 3c 62 3e 73 71 6c 69 74  the new <b>sqlit
dc60: 65 5f 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f  e_last_insert_ro
dc70: 77 69 64 28 29 3c 2f 62 3e 20 41 50 49 20 66 75  wid()</b> API fu
dc80: 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  nction.</li>.}..
dc90: 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 31  chng {2002 Jan 1
dca0: 33 20 28 32 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69  3 (2.2.2)} {.<li
dcb0: 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61 73 73  >Bug fix: An ass
dcc0: 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69  ertion was faili
dcd0: 6e 67 20 77 68 65 6e 20 61 20 74 65 6d 70 6f 72  ng when a tempor
dce0: 61 72 79 20 74 61 62 6c 65 20 77 69 74 68 20 61  ary table with a
dcf0: 6e 20 69 6e 64 65 78 0a 20 20 20 20 68 61 64 20  n index.    had 
dd00: 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 73  the same name as
dd10: 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 74 61 62   a permanent tab
dd20: 6c 65 20 63 72 65 61 74 65 64 20 62 79 20 61 20  le created by a 
dd30: 73 65 70 61 72 61 74 65 20 70 72 6f 63 65 73 73  separate process
dd40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
dd50: 69 78 3a 20 55 70 64 61 74 65 73 20 74 6f 20 74  ix: Updates to t
dd60: 61 62 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67  ables containing
dd70: 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d   an INTEGER PRIM
dd80: 41 52 59 20 4b 45 59 20 61 6e 64 20 61 6e 0a 20  ARY KEY and an. 
dd90: 20 20 20 69 6e 64 65 78 20 63 6f 75 6c 64 20 66     index could f
dda0: 61 69 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ail.</li>.}..chn
ddb0: 67 20 7b 32 30 30 32 20 4a 61 6e 20 39 20 28 32  g {2002 Jan 9 (2
ddc0: 2e 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .2.1)} {.<li>Bug
ddd0: 20 66 69 78 3a 20 41 6e 20 61 74 74 65 6d 70 74   fix: An attempt
dde0: 20 74 6f 20 64 65 6c 65 74 65 20 61 20 73 69 6e   to delete a sin
ddf0: 67 6c 65 20 72 6f 77 20 6f 66 20 61 20 74 61 62  gle row of a tab
de00: 6c 65 20 77 69 74 68 20 61 20 57 48 45 52 45 0a  le with a WHERE.
de10: 20 20 20 20 63 6c 61 75 73 65 20 6f 66 20 22 52      clause of "R
de20: 4f 57 49 44 3d 78 22 20 77 68 65 6e 20 6e 6f 20  OWID=x" when no 
de30: 73 75 63 68 20 72 6f 77 69 64 20 65 78 69 73 74  such rowid exist
de40: 73 20 77 61 73 20 63 61 75 73 69 6e 67 20 61 6e  s was causing an
de50: 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69   error.</li>.<li
de60: 3e 42 75 67 20 66 69 78 3a 20 50 61 73 73 69 6e  >Bug fix: Passin
de70: 67 20 69 6e 20 61 20 4e 55 4c 4c 20 61 73 20 74  g in a NULL as t
de80: 68 65 20 33 72 64 20 70 61 72 61 6d 65 74 65 72  he 3rd parameter
de90: 20 74 6f 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70   to <b>sqlite_op
dea0: 65 6e 28 29 3c 2f 62 3e 0a 20 20 20 20 77 6f 75  en()</b>.    wou
deb0: 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75  ld sometimes cau
dec0: 73 65 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f  se a coredump.</
ded0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
dee0: 20 44 52 4f 50 20 54 41 42 4c 45 20 66 6f 6c 6c   DROP TABLE foll
def0: 6f 77 65 64 20 62 79 20 61 20 43 52 45 41 54 45  owed by a CREATE
df00: 20 54 41 42 4c 45 20 77 69 74 68 20 74 68 65 20   TABLE with the 
df10: 73 61 6d 65 20 6e 61 6d 65 20 61 6c 6c 0a 20 20  same name all.  
df20: 20 20 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c    within a singl
df30: 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61  e transaction wa
df40: 73 20 63 61 75 73 69 6e 67 20 61 20 63 6f 72 65  s causing a core
df50: 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  dump.</li>.<li>M
df60: 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73 20  akefile updates 
df70: 66 72 6f 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e  from A. Rottmann
df80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
df90: 30 30 31 20 44 65 63 20 32 32 20 28 32 2e 32 2e  001 Dec 22 (2.2.
dfa0: 30 29 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e  0)} {.<li>Column
dfb0: 73 20 6f 66 20 74 79 70 65 20 49 4e 54 45 47 45  s of type INTEGE
dfc0: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61 72  R PRIMARY KEY ar
dfd0: 65 20 61 63 74 75 61 6c 6c 79 20 75 73 65 64 20  e actually used 
dfe0: 61 73 20 74 68 65 20 70 72 69 6d 61 72 79 0a 20  as the primary. 
dff0: 20 20 20 6b 65 79 20 69 6e 20 75 6e 64 65 72 6c     key in underl
e000: 79 69 6e 67 20 42 2d 54 72 65 65 20 72 65 70 72  ying B-Tree repr
e010: 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68  esentation of th
e020: 65 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  e table.</li>.<l
e030: 69 3e 53 65 76 65 72 61 6c 20 6f 62 73 63 75 72  i>Several obscur
e040: 65 2c 20 75 6e 72 65 6c 61 74 65 64 20 62 75 67  e, unrelated bug
e050: 73 20 77 65 72 65 20 66 6f 75 6e 64 20 61 6e 64  s were found and
e060: 20 66 69 78 65 64 20 77 68 69 6c 65 20 0a 20 20   fixed while .  
e070: 20 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 74 68    implemented th
e080: 65 20 69 6e 74 65 67 65 72 20 70 72 69 6d 61 72  e integer primar
e090: 79 20 6b 65 79 20 63 68 61 6e 67 65 20 6f 66 20  y key change of 
e0a0: 74 68 65 20 70 72 65 76 69 6f 75 73 20 62 75 6c  the previous bul
e0b0: 6c 65 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  let.</li>.<li>Ad
e0c0: 64 65 64 20 74 68 65 20 61 62 69 6c 69 74 79 20  ded the ability 
e0d0: 74 6f 20 73 70 65 63 69 66 79 20 22 2a 22 20 61  to specify "*" a
e0e0: 73 20 70 61 72 74 20 6f 66 20 61 20 6c 61 72 67  s part of a larg
e0f0: 65 72 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 69  er column list i
e100: 6e 0a 20 20 20 20 74 68 65 20 72 65 73 75 6c 74  n.    the result
e110: 20 73 65 63 74 69 6f 6e 20 6f 66 20 61 20 53 45   section of a SE
e120: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 20  LECT statement. 
e130: 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20   For example:.  
e140: 20 20 3c 6e 6f 62 72 3e 22 3c 62 3e 53 45 4c 45    <nobr>"<b>SELE
e150: 43 54 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d  CT rowid, * FROM
e160: 20 74 61 62 6c 65 31 3b 3c 2f 62 3e 22 3c 2f 6e   table1;</b>"</n
e170: 6f 62 72 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  obr>.</li>.<li>U
e180: 70 64 61 74 65 73 20 74 6f 20 63 6f 6d 6d 65 6e  pdates to commen
e190: 74 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61  ts and documenta
e1a0: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tion.</li>.}..ch
e1b0: 6e 67 20 7b 32 30 30 31 20 44 65 63 20 31 34 20  ng {2001 Dec 14 
e1c0: 28 32 2e 31 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.1.7)} {.<li>F
e1d0: 69 78 20 61 20 62 75 67 20 69 6e 20 3c 62 3e 43  ix a bug in <b>C
e1e0: 52 45 41 54 45 20 54 45 4d 50 4f 52 41 52 59 20  REATE TEMPORARY 
e1f0: 54 41 42 4c 45 3c 2f 62 3e 20 77 68 69 63 68 20  TABLE</b> which 
e200: 77 61 73 20 63 61 75 73 69 6e 67 20 74 68 65 0a  was causing the.
e210: 20 20 20 20 74 61 62 6c 65 20 74 6f 20 62 65 20      table to be 
e220: 69 6e 69 74 69 61 6c 6c 79 20 61 6c 6c 6f 63 61  initially alloca
e230: 74 65 64 20 69 6e 20 74 68 65 20 6d 61 69 6e 20  ted in the main 
e240: 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 69 6e  database file in
e250: 73 74 65 61 64 0a 20 20 20 20 6f 66 20 69 6e 20  stead.    of in 
e260: 74 68 65 20 73 65 70 61 72 61 74 65 20 74 65 6d  the separate tem
e270: 70 6f 72 61 72 79 20 66 69 6c 65 2e 20 20 54 68  porary file.  Th
e280: 69 73 20 62 75 67 20 63 6f 75 6c 64 20 63 61 75  is bug could cau
e290: 73 65 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20  se the library. 
e2a0: 20 20 20 74 6f 20 73 75 66 66 65 72 20 61 6e 20     to suffer an 
e2b0: 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72  assertion failur
e2c0: 65 20 61 6e 64 20 69 74 20 63 6f 75 6c 64 20 63  e and it could c
e2d0: 61 75 73 65 20 22 70 61 67 65 20 6c 65 61 6b 73  ause "page leaks
e2e0: 22 20 69 6e 20 74 68 65 0a 20 20 20 20 6d 61 69  " in the.    mai
e2f0: 6e 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e  n database file.
e300: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
e310: 6e 20 74 68 65 20 62 2d 74 72 65 65 20 73 75 62  n the b-tree sub
e320: 73 79 73 74 65 6d 20 74 68 61 74 20 63 6f 75 6c  system that coul
e330: 64 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73  d sometimes caus
e340: 65 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 20  e the first.    
e350: 72 6f 77 20 6f 66 20 61 20 74 61 62 6c 65 20 74  row of a table t
e360: 6f 20 62 65 20 72 65 70 65 61 74 65 64 20 64 75  o be repeated du
e370: 72 69 6e 67 20 61 20 64 61 74 61 62 61 73 65 20  ring a database 
e380: 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  scan.</li>.}..ch
e390: 6e 67 20 7b 32 30 30 31 20 44 65 63 20 31 34 20  ng {2001 Dec 14 
e3a0: 28 32 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.1.6)} {.<li>F
e3b0: 69 78 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 6d  ix the locking m
e3c0: 65 63 68 61 6e 69 73 6d 20 79 65 74 20 61 67 61  echanism yet aga
e3d0: 69 6e 20 74 6f 20 70 72 65 76 65 6e 74 0a 20 20  in to prevent.  
e3e0: 20 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63    <b>sqlite_exec
e3f0: 28 29 3c 2f 62 3e 20 66 72 6f 6d 20 72 65 74 75  ()</b> from retu
e400: 72 6e 69 6e 67 20 53 51 4c 49 54 45 5f 50 52 4f  rning SQLITE_PRO
e410: 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65  TOCOL.    unnece
e420: 73 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74  ssarily.  This t
e430: 69 6d 65 20 74 68 65 20 62 75 67 20 77 61 73 20  ime the bug was 
e440: 61 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e  a race condition
e450: 20 69 6e 0a 20 20 20 20 74 68 65 20 6c 6f 63 6b   in.    the lock
e460: 69 6e 67 20 63 6f 64 65 2e 20 20 54 68 69 73 20  ing code.  This 
e470: 63 68 61 6e 67 65 20 65 66 66 65 63 74 73 20 62  change effects b
e480: 6f 74 68 20 50 4f 53 49 58 20 61 6e 64 20 57 69  oth POSIX and Wi
e490: 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69  ndows users.</li
e4a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
e4b0: 44 65 63 20 36 20 28 32 2e 31 2e 35 29 7d 20 7b  Dec 6 (2.1.5)} {
e4c0: 0a 3c 6c 69 3e 46 69 78 20 66 6f 72 20 61 6e 6f  .<li>Fix for ano
e4d0: 74 68 65 72 20 70 72 6f 62 6c 65 6d 20 28 75 6e  ther problem (un
e4e0: 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65 20 6f  related to the o
e4f0: 6e 65 20 66 69 78 65 64 20 69 6e 20 32 2e 31 2e  ne fixed in 2.1.
e500: 34 29 20 0a 20 20 20 20 74 68 61 74 20 73 6f 6d  4) .    that som
e510: 65 74 69 6d 65 73 20 63 61 75 73 65 73 20 3c 62  etimes causes <b
e520: 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f  >sqlite_exec()</
e530: 62 3e 20 74 6f 20 72 65 74 75 72 6e 20 53 51 4c  b> to return SQL
e540: 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20  ITE_PROTOCOL.   
e550: 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e 20   unnecessarily. 
e560: 20 54 68 69 73 20 74 69 6d 65 20 74 68 65 20 62   This time the b
e570: 75 67 20 77 61 73 0a 20 20 20 20 69 6e 20 74 68  ug was.    in th
e580: 65 20 50 4f 53 49 58 20 6c 6f 63 6b 69 6e 67 20  e POSIX locking 
e590: 63 6f 64 65 20 61 6e 64 20 73 68 6f 75 6c 64 20  code and should 
e5a0: 6e 6f 74 20 65 66 66 65 63 74 20 77 69 6e 64 6f  not effect windo
e5b0: 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d  ws users.</li>.}
e5c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63  ..chng {2001 Dec
e5d0: 20 34 20 28 32 2e 31 2e 34 29 7d 20 7b 0a 3c 6c   4 (2.1.4)} {.<l
e5e0: 69 3e 53 6f 6d 65 74 69 6d 65 73 20 3c 62 3e 73  i>Sometimes <b>s
e5f0: 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e  qlite_exec()</b>
e600: 20 77 6f 75 6c 64 20 72 65 74 75 72 6e 20 53 51   would return SQ
e610: 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 20 77 68  LITE_PROTOCOL wh
e620: 65 6e 20 69 74 0a 20 20 20 20 73 68 6f 75 6c 64  en it.    should
e630: 20 68 61 76 65 20 72 65 74 75 72 6e 65 64 20 53   have returned S
e640: 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c 69 3e  QLITE_BUSY.</li>
e650: 0a 3c 6c 69 3e 54 68 65 20 66 69 78 20 74 6f 20  .<li>The fix to 
e660: 74 68 65 20 70 72 65 76 69 6f 75 73 20 62 75 67  the previous bug
e670: 20 75 6e 63 6f 76 65 72 65 64 20 61 20 64 65 61   uncovered a dea
e680: 64 6c 6f 63 6b 20 77 68 69 63 68 20 77 61 73 20  dlock which was 
e690: 61 6c 73 6f 0a 20 20 20 20 66 69 78 65 64 2e 3c  also.    fixed.<
e6a0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65  /li>.<li>Add the
e6b0: 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75 74 20   ability to put 
e6c0: 61 20 73 69 6e 67 6c 65 20 2e 63 6f 6d 6d 61 6e  a single .comman
e6d0: 64 20 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20  d in the second 
e6e0: 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 6f 66 20  argument.    of 
e6f0: 74 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c  the sqlite shell
e700: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65  </li>.<li>Update
e710: 73 20 74 6f 20 74 68 65 20 46 41 51 3c 2f 6c 69  s to the FAQ</li
e720: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
e730: 4e 6f 76 20 32 33 20 28 32 2e 31 2e 33 29 7d 20  Nov 23 (2.1.3)} 
e740: 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 62 65  {.<li>Fix the be
e750: 68 61 76 69 6f 72 20 6f 66 20 63 6f 6d 70 61 72  havior of compar
e760: 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 73 20 0a  ison operators .
e770: 20 20 20 20 28 65 78 3a 20 22 3c 62 3e 26 6c 74      (ex: "<b>&lt
e780: 3c 2f 62 3e 22 2c 20 22 3c 62 3e 3d 3d 3c 2f 62  </b>", "<b>==</b
e790: 3e 22 2c 20 65 74 63 2e 29 0a 20 20 20 20 73 6f  >", etc.).    so
e7a0: 20 74 68 61 74 20 74 68 65 79 20 61 72 65 20 63   that they are c
e7b0: 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74  onsistent with t
e7c0: 68 65 20 6f 72 64 65 72 20 6f 66 20 65 6e 74 72  he order of entr
e7d0: 69 65 73 20 69 6e 20 61 6e 20 69 6e 64 65 78 2e  ies in an index.
e7e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63  </li>.<li>Correc
e7f0: 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 69 6e  t handling of in
e800: 74 65 67 65 72 73 20 69 6e 20 53 51 4c 20 65 78  tegers in SQL ex
e810: 70 72 65 73 73 69 6f 6e 73 20 74 68 61 74 20 61  pressions that a
e820: 72 65 20 6c 61 72 67 65 72 20 74 68 61 6e 0a 20  re larger than. 
e830: 20 20 20 77 68 61 74 20 63 61 6e 20 62 65 20 72     what can be r
e840: 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 74 68  epresented by th
e850: 65 20 6d 61 63 68 69 6e 65 20 69 6e 74 65 67 65  e machine intege
e860: 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  r.</li>.}..chng 
e870: 7b 32 30 30 31 20 4e 6f 76 20 32 32 20 28 32 2e  {2001 Nov 22 (2.
e880: 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e  1.2)} {.<li>Chan
e890: 67 65 73 20 74 6f 20 73 75 70 70 6f 72 74 20 36  ges to support 6
e8a0: 34 2d 62 69 74 20 61 72 63 68 69 74 65 63 74 75  4-bit architectu
e8b0: 72 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  res.</li>.<li>Fi
e8c0: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 6c  x a bug in the l
e8d0: 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e  ocking protocol.
e8e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
e8f0: 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20 28  bug that could (
e900: 72 61 72 65 6c 79 29 20 63 61 75 73 65 20 74 68  rarely) cause th
e910: 65 20 64 61 74 61 62 61 73 65 20 74 6f 20 62 65  e database to be
e920: 63 6f 6d 65 20 0a 20 20 20 20 75 6e 72 65 61 64  come .    unread
e930: 61 62 6c 65 20 61 66 74 65 72 20 61 20 44 52 4f  able after a DRO
e940: 50 20 54 41 42 4c 45 20 64 75 65 20 74 6f 20 63  P TABLE due to c
e950: 6f 72 72 75 70 74 69 6f 6e 20 74 6f 20 74 68 65  orruption to the
e960: 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 0a 20   SQLITE_MASTER. 
e970: 20 20 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c     table.</li>.<
e980: 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 63 6f  li>Change the co
e990: 64 65 20 73 6f 20 74 68 61 74 20 76 65 72 73 69  de so that versi
e9a0: 6f 6e 20 32 2e 31 2e 31 20 64 61 74 61 62 61 73  on 2.1.1 databas
e9b0: 65 73 20 74 68 61 74 20 77 65 72 65 20 72 65 6e  es that were ren
e9c0: 64 65 72 65 64 20 0a 20 20 20 20 75 6e 72 65 61  dered .    unrea
e9d0: 64 61 62 6c 65 20 62 79 20 74 68 65 20 61 62 6f  dable by the abo
e9e0: 76 65 20 62 75 67 20 63 61 6e 20 62 65 20 72 65  ve bug can be re
e9f0: 61 64 20 62 79 20 74 68 69 73 20 76 65 72 73 69  ad by this versi
ea00: 6f 6e 20 6f 66 0a 20 20 20 20 74 68 65 20 6c 69  on of.    the li
ea10: 62 72 61 72 79 20 65 76 65 6e 20 74 68 6f 75 67  brary even thoug
ea20: 68 20 74 68 65 20 53 51 4c 49 54 45 5f 4d 41 53  h the SQLITE_MAS
ea30: 54 45 52 20 74 61 62 6c 65 20 69 73 20 28 73 6c  TER table is (sl
ea40: 69 67 68 74 6c 79 29 0a 20 20 20 20 63 6f 72 72  ightly).    corr
ea50: 75 70 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  upted.</li>.}..c
ea60: 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 31 33  hng {2001 Nov 13
ea70: 20 28 32 2e 31 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.1)} {.<li>
ea80: 42 75 67 20 66 69 78 3a 20 53 6f 6d 65 74 69 6d  Bug fix: Sometim
ea90: 65 73 20 61 72 62 69 74 72 61 72 79 20 73 74 72  es arbitrary str
eaa0: 69 6e 67 73 20 77 65 72 65 20 70 61 73 73 65 64  ings were passed
eab0: 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b   to the callback
eac0: 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 77 68  .    function wh
ead0: 65 6e 20 74 68 65 20 61 63 74 75 61 6c 20 76 61  en the actual va
eae0: 6c 75 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e 20  lue of a column 
eaf0: 77 61 73 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d  was NULL.</li>.}
eb00: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76  ..chng {2001 Nov
eb10: 20 31 32 20 28 32 2e 31 2e 30 29 7d 20 7b 0a 3c   12 (2.1.0)} {.<
eb20: 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f  li>Change the fo
eb30: 72 6d 61 74 20 6f 66 20 64 61 74 61 20 72 65 63  rmat of data rec
eb40: 6f 72 64 73 20 73 6f 20 74 68 61 74 20 72 65 63  ords so that rec
eb50: 6f 72 64 73 20 75 70 20 74 6f 20 31 36 4d 42 20  ords up to 16MB 
eb60: 69 6e 20 73 69 7a 65 0a 20 20 20 20 63 61 6e 20  in size.    can 
eb70: 62 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a  be stored.</li>.
eb80: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66  <li>Change the f
eb90: 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69 63 65 73  ormat of indices
eba0: 20 74 6f 20 61 6c 6c 6f 77 20 66 6f 72 20 62 65   to allow for be
ebb0: 74 74 65 72 20 71 75 65 72 79 20 6f 70 74 69 6d  tter query optim
ebc0: 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  ization.</li>.<l
ebd0: 69 3e 49 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20  i>Implement the 
ebe0: 22 4c 49 4d 49 54 20 2e 2e 2e 20 4f 46 46 53 45  "LIMIT ... OFFSE
ebf0: 54 20 2e 2e 2e 22 20 63 6c 61 75 73 65 20 6f 6e  T ..." clause on
ec00: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
ec10: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
ec20: 20 7b 32 30 30 31 20 4e 6f 76 20 33 20 28 32 2e   {2001 Nov 3 (2.
ec30: 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 64 65  0.8)} {.<li>Made
ec40: 20 73 65 6c 65 63 74 65 64 20 70 61 72 61 6d 65   selected parame
ec50: 74 65 72 73 20 69 6e 20 41 50 49 20 66 75 6e 63  ters in API func
ec60: 74 69 6f 6e 73 20 3c 62 3e 63 6f 6e 73 74 3c 2f  tions <b>const</
ec70: 62 3e 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 0a  b>. This should.
ec80: 20 20 20 20 62 65 20 66 75 6c 6c 79 20 62 61 63      be fully bac
ec90: 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 6c  kwards compatibl
eca0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75  e.</li>.<li>Docu
ecb0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
ecc0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 69 6d 70 6c  s</li>.<li>Simpl
ecd0: 69 66 79 20 74 68 65 20 64 65 73 69 67 6e 20 6f  ify the design o
ece0: 66 20 74 68 65 20 56 44 42 45 20 62 79 20 72 65  f the VDBE by re
ecf0: 73 74 72 69 63 74 69 6e 67 20 74 68 65 20 6e 75  stricting the nu
ed00: 6d 62 65 72 20 6f 66 20 73 6f 72 74 65 72 73 0a  mber of sorters.
ed10: 20 20 20 20 61 6e 64 20 6c 69 73 74 73 20 74 6f      and lists to
ed20: 20 31 2e 0a 20 20 20 20 49 6e 20 70 72 61 63 74   1..    In pract
ed30: 69 63 65 2c 20 6e 6f 20 6d 6f 72 65 20 74 68 61  ice, no more tha
ed40: 6e 20 6f 6e 65 20 73 6f 72 74 65 72 20 61 6e 64  n one sorter and
ed50: 20 6f 6e 65 20 6c 69 73 74 20 77 61 73 20 65 76   one list was ev
ed60: 65 72 20 75 73 65 64 20 61 6e 79 68 6f 77 2e 0a  er used anyhow..
ed70: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
ed80: 67 20 7b 32 30 30 31 20 4f 63 74 20 32 31 20 28  g {2001 Oct 21 (
ed90: 32 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 6e  2.0.7)} {.<li>An
eda0: 79 20 55 54 46 2d 38 20 63 68 61 72 61 63 74 65  y UTF-8 characte
edb0: 72 20 6f 72 20 49 53 4f 38 38 35 39 20 63 68 61  r or ISO8859 cha
edc0: 72 61 63 74 65 72 20 63 61 6e 20 62 65 20 75 73  racter can be us
edd0: 65 64 20 61 73 20 70 61 72 74 20 6f 66 0a 20 20  ed as part of.  
ede0: 20 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2e    an identifier.
edf0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 74 63 68 65  </li>.<li>Patche
ee00: 73 20 66 72 6f 6d 20 43 68 72 69 73 74 69 61 6e  s from Christian
ee10: 20 57 65 72 6e 65 72 20 74 6f 20 69 6d 70 72 6f   Werner to impro
ee20: 76 65 20 4f 44 42 43 20 63 6f 6d 70 61 74 69 62  ve ODBC compatib
ee30: 69 6c 69 74 79 20 61 6e 64 20 74 6f 0a 20 20 20  ility and to.   
ee40: 20 66 69 78 20 61 20 62 75 67 20 69 6e 20 74 68   fix a bug in th
ee50: 65 20 72 6f 75 6e 64 28 29 20 66 75 6e 63 74 69  e round() functi
ee60: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 6c 75  on.</li>.<li>Plu
ee70: 67 20 73 6f 6d 65 20 6d 65 6d 6f 72 79 20 6c 65  g some memory le
ee80: 61 6b 73 20 74 68 61 74 20 75 73 65 20 74 6f 20  aks that use to 
ee90: 6f 63 63 75 72 20 69 66 20 6d 61 6c 6c 6f 63 28  occur if malloc(
eea0: 29 20 66 61 69 6c 65 64 2e 0a 20 20 20 20 57 65  ) failed..    We
eeb0: 20 68 61 76 65 20 62 65 65 6e 20 61 6e 64 20 63   have been and c
eec0: 6f 6e 74 69 6e 75 65 20 74 6f 20 62 65 20 6d 65  ontinue to be me
eed0: 6d 6f 72 79 20 6c 65 61 6b 20 66 72 65 65 20 61  mory leak free a
eee0: 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 6d 61  s long as.    ma
eef0: 6c 6c 6f 63 28 29 20 77 6f 72 6b 73 2e 3c 2f 6c  lloc() works.</l
ef00: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74  i>.<li>Changes t
ef10: 6f 20 73 6f 6d 65 20 74 65 73 74 20 73 63 72 69  o some test scri
ef20: 70 74 73 20 73 6f 20 74 68 61 74 20 74 68 65 79  pts so that they
ef30: 20 77 6f 72 6b 20 6f 6e 20 57 69 6e 64 6f 77 73   work on Windows
ef40: 20 69 6e 0a 20 20 20 20 61 64 64 69 74 69 6f 6e   in.    addition
ef50: 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d   to Unix.</li>.}
ef60: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74  ..chng {2001 Oct
ef70: 20 31 39 20 28 32 2e 30 2e 36 29 7d 20 7b 0a 3c   19 (2.0.6)} {.<
ef80: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 45 4d 50  li>Added the EMP
ef90: 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42 41  TY_RESULT_CALLBA
efa0: 43 4b 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a  CKS pragma</li>.
efb0: 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20  <li>Support for 
efc0: 55 54 46 2d 38 20 61 6e 64 20 49 53 4f 38 38 35  UTF-8 and ISO885
efd0: 39 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20  9 characters in 
efe0: 63 6f 6c 75 6d 6e 20 61 6e 64 20 74 61 62 6c 65  column and table
eff0: 20 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   names.</li>.<li
f000: 3e 42 75 67 20 66 69 78 3a 20 43 6f 6d 70 75 74  >Bug fix: Comput
f010: 65 20 63 6f 72 72 65 63 74 20 74 61 62 6c 65 20  e correct table 
f020: 6e 61 6d 65 73 20 77 69 74 68 20 74 68 65 20 46  names with the F
f030: 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53  ULL_COLUMN_NAMES
f040: 20 70 72 61 67 6d 61 0a 20 20 20 20 69 73 20 74   pragma.    is t
f050: 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 7d  urned on.</li>.}
f060: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74  ..chng {2001 Oct
f070: 20 31 34 20 28 32 2e 30 2e 35 29 7d 20 7b 0a 3c   14 (2.0.5)} {.<
f080: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 43 4f 55  li>Added the COU
f090: 4e 54 5f 43 48 41 4e 47 45 53 20 70 72 61 67 6d  NT_CHANGES pragm
f0a0: 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  a.</li>.<li>Chan
f0b0: 67 65 73 20 74 6f 20 74 68 65 20 46 55 4c 4c 5f  ges to the FULL_
f0c0: 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61  COLUMN_NAMES pra
f0d0: 67 6d 61 20 74 6f 20 68 65 6c 70 20 6f 75 74 20  gma to help out 
f0e0: 74 68 65 20 4f 44 42 43 20 64 72 69 76 65 72 2e  the ODBC driver.
f0f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
f100: 78 3a 20 22 53 45 4c 45 43 54 20 63 6f 75 6e 74  x: "SELECT count
f110: 28 2a 29 22 20 77 61 73 20 72 65 74 75 72 6e 69  (*)" was returni
f120: 6e 67 20 4e 55 4c 4c 20 66 6f 72 20 65 6d 70 74  ng NULL for empt
f130: 79 20 74 61 62 6c 65 73 2e 0a 20 20 20 20 4e 6f  y tables..    No
f140: 77 20 69 74 20 72 65 74 75 72 6e 73 20 30 2e 3c  w it returns 0.<
f150: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
f160: 30 31 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 34  01 Oct 13 (2.0.4
f170: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
f180: 3a 20 61 6e 20 6f 62 73 63 75 72 65 20 61 6e 64  : an obscure and
f190: 20 72 65 6c 61 74 69 76 65 6c 79 20 68 61 72 6d   relatively harm
f1a0: 6c 65 73 73 20 62 75 67 20 77 61 73 20 63 61 75  less bug was cau
f1b0: 73 69 6e 67 20 6f 6e 65 20 6f 66 0a 20 20 20 20  sing one of.    
f1c0: 74 68 65 20 74 65 73 74 73 20 74 6f 20 66 61 69  the tests to fai
f1d0: 6c 20 77 68 65 6e 20 67 63 63 20 6f 70 74 69 6d  l when gcc optim
f1e0: 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 74 75 72  izations are tur
f1f0: 6e 65 64 20 6f 6e 2e 20 20 54 68 69 73 20 72 65  ned on.  This re
f200: 6c 65 61 73 65 0a 20 20 20 20 66 69 78 65 73 20  lease.    fixes 
f210: 74 68 65 20 70 72 6f 62 6c 65 6d 2e 3c 2f 6c 69  the problem.</li
f220: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
f230: 4f 63 74 20 31 33 20 28 32 2e 30 2e 33 29 7d 20  Oct 13 (2.0.3)} 
f240: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 74  {.<li>Bug fix: t
f250: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73  he <b>sqlite_bus
f260: 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20  y_timeout()</b> 
f270: 66 75 6e 63 74 69 6f 6e 20 77 61 73 20 64 65 6c  function was del
f280: 61 79 69 6e 67 20 31 30 30 30 0a 20 20 20 20 74  aying 1000.    t
f290: 69 6d 65 73 20 74 6f 6f 20 6c 6f 6e 67 20 62 65  imes too long be
f2a0: 66 6f 72 65 20 66 61 69 6c 69 6e 67 2e 3c 2f 6c  fore failing.</l
f2b0: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
f2c0: 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73  an assertion was
f2d0: 20 66 61 69 6c 69 6e 67 20 69 66 20 74 68 65 20   failing if the 
f2e0: 64 69 73 6b 20 68 6f 6c 64 69 6e 67 20 74 68 65  disk holding the
f2f0: 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 66 69   database.    fi
f300: 6c 65 20 62 65 63 61 6d 65 20 66 75 6c 6c 20 6f  le became full o
f310: 72 20 73 74 6f 70 70 65 64 20 61 63 63 65 70 74  r stopped accept
f320: 69 6e 67 20 77 72 69 74 65 73 20 66 6f 72 20 73  ing writes for s
f330: 6f 6d 65 20 6f 74 68 65 72 20 72 65 61 73 6f 6e  ome other reason
f340: 2e 0a 20 20 20 20 4e 65 77 20 74 65 73 74 73 20  ..    New tests 
f350: 77 65 72 65 20 61 64 64 65 64 20 74 6f 20 64 65  were added to de
f360: 74 65 63 74 20 73 69 6d 69 6c 61 72 20 70 72 6f  tect similar pro
f370: 62 6c 65 6d 73 20 69 6e 20 74 68 65 20 66 75 74  blems in the fut
f380: 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ure.</li>.<li>Ad
f390: 64 65 64 20 6e 65 77 20 6f 70 65 72 61 74 6f 72  ded new operator
f3a0: 73 3a 20 3c 62 3e 26 61 6d 70 3b 3c 2f 62 3e 20  s: <b>&amp;</b> 
f3b0: 28 62 69 74 77 69 73 65 2d 61 6e 64 29 0a 20 20  (bitwise-and).  
f3c0: 20 20 3c 62 3e 7c 3c 2f 62 3e 20 28 62 69 74 77    <b>|</b> (bitw
f3d0: 69 73 65 2d 6f 72 29 2c 20 3c 62 3e 7e 3c 2f 62  ise-or), <b>~</b
f3e0: 3e 20 28 6f 6e 65 73 2d 63 6f 6d 70 6c 65 6d 65  > (ones-compleme
f3f0: 6e 74 29 2c 0a 20 20 20 20 3c 62 3e 26 6c 74 3b  nt),.    <b>&lt;
f400: 26 6c 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20  &lt;</b> (shift 
f410: 6c 65 66 74 29 2c 20 3c 62 3e 26 67 74 3b 26 67  left), <b>&gt;&g
f420: 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20 72 69  t;</b> (shift ri
f430: 67 68 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ght).</li>.<li>A
f440: 64 64 65 64 20 6e 65 77 20 66 75 6e 63 74 69 6f  dded new functio
f450: 6e 73 3a 20 3c 62 3e 72 6f 75 6e 64 28 29 3c 2f  ns: <b>round()</
f460: 62 3e 20 61 6e 64 20 3c 62 3e 61 62 73 28 29 3c  b> and <b>abs()<
f470: 2f 62 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  /b>.</li>.}..chn
f480: 67 20 7b 32 30 30 31 20 4f 63 74 20 39 20 28 32  g {2001 Oct 9 (2
f490: 2e 30 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .0.2)} {.<li>Fix
f4a0: 20 74 77 6f 20 62 75 67 73 20 69 6e 20 74 68 65   two bugs in the
f4b0: 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f   locking protoco
f4c0: 6c 2e 20 20 28 4f 6e 65 20 77 61 73 20 6d 61 73  l.  (One was mas
f4d0: 6b 69 6e 67 20 74 68 65 20 6f 74 68 65 72 2e 29  king the other.)
f4e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65  </li>.<li>Remove
f4f0: 64 20 73 6f 6d 65 20 75 6e 75 73 65 64 20 22 23  d some unused "#
f500: 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e  include <unistd.
f510: 68 3e 22 20 74 68 61 74 20 77 65 72 65 20 63 61  h>" that were ca
f520: 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20  using problems. 
f530: 20 20 20 66 6f 72 20 56 43 2b 2b 2e 3c 2f 6c 69     for VC++.</li
f540: 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 3c 62 3e 73  >.<li>Fixed <b>s
f550: 71 6c 69 74 65 2e 68 3c 2f 62 3e 20 73 6f 20 74  qlite.h</b> so t
f560: 68 61 74 20 69 74 20 69 73 20 75 73 61 62 6c 65  hat it is usable
f570: 20 66 72 6f 6d 20 43 2b 2b 3c 2f 6c 69 3e 0a 3c   from C++</li>.<
f580: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 46 55 4c  li>Added the FUL
f590: 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70  L_COLUMN_NAMES p
f5a0: 72 61 67 6d 61 2e 20 20 57 68 65 6e 20 73 65 74  ragma.  When set
f5b0: 20 74 6f 20 22 4f 4e 22 2c 20 74 68 65 20 6e 61   to "ON", the na
f5c0: 6d 65 73 20 6f 66 0a 20 20 20 20 63 6f 6c 75 6d  mes of.    colum
f5d0: 6e 73 20 61 72 65 20 72 65 70 6f 72 74 65 64 20  ns are reported 
f5e0: 62 61 63 6b 20 61 73 20 54 41 42 4c 45 2e 43 4f  back as TABLE.CO
f5f0: 4c 55 4d 4e 20 69 6e 73 74 65 61 64 20 6f 66 20  LUMN instead of 
f600: 6a 75 73 74 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69  just COLUMN.</li
f610: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
f620: 54 41 42 4c 45 5f 49 4e 46 4f 28 29 20 61 6e 64  TABLE_INFO() and
f630: 20 49 4e 44 45 58 5f 49 4e 46 4f 28 29 20 70 72   INDEX_INFO() pr
f640: 61 67 6d 61 73 20 74 6f 20 68 65 6c 70 20 73 75  agmas to help su
f650: 70 70 6f 72 74 20 74 68 65 0a 20 20 20 20 4f 44  pport the.    OD
f660: 42 43 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  BC interface.</l
f670: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
f680: 70 6f 72 74 20 66 6f 72 20 54 45 4d 50 4f 52 41  port for TEMPORA
f690: 52 59 20 74 61 62 6c 65 73 20 61 6e 64 20 69 6e  RY tables and in
f6a0: 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  dices.</li>.}..c
f6b0: 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32 20  hng {2001 Oct 2 
f6c0: 28 32 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52  (2.0.1)} {.<li>R
f6d0: 65 6d 6f 76 65 20 73 6f 6d 65 20 43 2b 2b 20 73  emove some C++ s
f6e0: 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 66 72  tyle comments fr
f6f0: 6f 6d 20 62 74 72 65 65 2e 63 20 73 6f 20 74 68  om btree.c so th
f700: 61 74 20 69 74 20 77 69 6c 6c 20 63 6f 6d 70 69  at it will compi
f710: 6c 65 0a 20 20 20 20 75 73 69 6e 67 20 63 6f 6d  le.    using com
f720: 70 69 6c 65 72 73 20 6f 74 68 65 72 20 74 68 61  pilers other tha
f730: 6e 20 67 63 63 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  n gcc.</li>.<li>
f740: 54 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70  The ".dump" outp
f750: 75 74 20 66 72 6f 6d 20 74 68 65 20 73 68 65 6c  ut from the shel
f760: 6c 20 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b 20  l does not work 
f770: 69 66 20 74 68 65 72 65 20 61 72 65 20 65 6d 62  if there are emb
f780: 65 64 64 65 64 0a 20 20 20 20 6e 65 77 6c 69 6e  edded.    newlin
f790: 65 73 20 61 6e 79 77 68 65 72 65 20 69 6e 20 74  es anywhere in t
f7a0: 68 65 20 64 61 74 61 2e 20 20 54 68 69 73 20 69  he data.  This i
f7b0: 73 20 61 6e 20 6f 6c 64 20 62 75 67 20 74 68 61  s an old bug tha
f7c0: 74 20 77 61 73 20 63 61 72 72 69 65 64 0a 20 20  t was carried.  
f7d0: 20 20 66 6f 72 77 61 72 64 20 66 72 6f 6d 20 76    forward from v
f7e0: 65 72 73 69 6f 6e 20 31 2e 30 2e 20 20 54 6f 20  ersion 1.0.  To 
f7f0: 66 69 78 20 69 74 2c 20 74 68 65 20 22 2e 64 75  fix it, the ".du
f800: 6d 70 22 20 6f 75 74 70 75 74 20 6e 6f 20 6c 6f  mp" output no lo
f810: 6e 67 65 72 0a 20 20 20 20 75 73 65 73 20 74 68  nger.    uses th
f820: 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2e 20  e COPY command. 
f830: 20 49 74 20 69 6e 73 74 65 61 64 20 67 65 6e 65   It instead gene
f840: 72 61 74 65 73 20 49 4e 53 45 52 54 20 73 74 61  rates INSERT sta
f850: 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c  tements.</li>.<l
f860: 69 3e 45 78 74 65 6e 64 20 74 68 65 20 65 78 70  i>Extend the exp
f870: 72 65 73 73 69 6f 6e 20 73 79 6e 74 61 78 20 74  ression syntax t
f880: 6f 20 73 75 70 70 6f 72 74 20 22 65 78 70 72 20  o support "expr 
f890: 4e 4f 54 20 4e 55 4c 4c 22 20 28 77 69 74 68 20  NOT NULL" (with 
f8a0: 61 0a 20 20 20 20 73 70 61 63 65 20 62 65 74 77  a.    space betw
f8b0: 65 65 6e 20 74 68 65 20 22 4e 4f 54 22 20 61 6e  een the "NOT" an
f8c0: 64 20 74 68 65 20 22 4e 55 4c 4c 22 29 20 69 6e  d the "NULL") in
f8d0: 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 22 65 78   addition to "ex
f8e0: 70 72 20 4e 4f 54 4e 55 4c 4c 22 0a 20 20 20 20  pr NOTNULL".    
f8f0: 28 77 69 74 68 20 6e 6f 20 73 70 61 63 65 29 2e  (with no space).
f900: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
f910: 30 30 31 20 53 65 70 20 32 38 20 28 32 2e 30 2e  001 Sep 28 (2.0.
f920: 30 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61  0)} {.<li>Automa
f930: 74 69 63 61 6c 6c 79 20 62 75 69 6c 64 20 62 69  tically build bi
f940: 6e 61 72 69 65 73 20 66 6f 72 20 4c 69 6e 75 78  naries for Linux
f950: 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 61 6e 64   and Windows and
f960: 20 70 75 74 20 74 68 65 6d 20 6f 6e 0a 20 20 20   put them on.   
f970: 20 74 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c   the website.</l
f980: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
f990: 20 53 65 70 20 32 38 20 28 32 2e 30 2d 61 6c 70   Sep 28 (2.0-alp
f9a0: 68 61 2d 34 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63  ha-4)} {.<li>Inc
f9b0: 6f 72 70 6f 72 61 74 65 20 6d 61 6b 65 66 69 6c  orporate makefil
f9c0: 65 20 70 61 74 63 68 65 73 20 66 6f 72 6d 20 41  e patches form A
f9d0: 2e 20 52 6f 74 74 6d 61 6e 6e 20 74 6f 20 75 73  . Rottmann to us
f9e0: 65 20 4c 49 42 54 4f 4f 4c 3c 2f 6c 69 3e 0a 7d  e LIBTOOL</li>.}
f9f0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70  ..chng {2001 Sep
fa00: 20 32 37 20 28 32 2e 30 2d 61 6c 70 68 61 2d 33   27 (2.0-alpha-3
fa10: 29 7d 20 7b 0a 3c 6c 69 3e 53 51 4c 69 74 65 20  )} {.<li>SQLite 
fa20: 6e 6f 77 20 68 6f 6e 6f 72 73 20 74 68 65 20 55  now honors the U
fa30: 4e 49 51 55 45 20 6b 65 79 77 6f 72 64 20 69 6e  NIQUE keyword in
fa40: 20 43 52 45 41 54 45 20 55 4e 49 51 55 45 20 49   CREATE UNIQUE I
fa50: 4e 44 45 58 2e 20 20 50 72 69 6d 61 72 79 0a 20  NDEX.  Primary. 
fa60: 20 20 20 6b 65 79 73 20 61 72 65 20 72 65 71 75     keys are requ
fa70: 69 72 65 64 20 74 6f 20 62 65 20 75 6e 69 71 75  ired to be uniqu
fa80: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 6c 65  e.</li>.<li>File
fa90: 20 66 6f 72 6d 61 74 20 63 68 61 6e 67 65 64 20   format changed 
faa0: 62 61 63 6b 20 74 6f 20 77 68 61 74 20 69 74 20  back to what it 
fab0: 77 61 73 20 66 6f 72 20 61 6c 70 68 61 2d 31 3c  was for alpha-1<
fac0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 73 20 74  /li>.<li>Fixes t
fad0: 6f 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 61  o the rollback a
fae0: 6e 64 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76  nd locking behav
faf0: 69 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ior</li>.}..chng
fb00: 20 7b 32 30 30 31 20 53 65 70 20 32 30 20 28 32   {2001 Sep 20 (2
fb10: 2e 30 2d 61 6c 70 68 61 2d 32 29 7d 20 7b 0a 3c  .0-alpha-2)} {.<
fb20: 6c 69 3e 49 6e 69 74 69 61 6c 20 72 65 6c 65 61  li>Initial relea
fb30: 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 20 32 2e  se of version 2.
fb40: 30 2e 20 20 54 68 65 20 69 64 65 61 20 6f 66 20  0.  The idea of 
fb50: 72 65 6e 61 6d 69 6e 67 20 74 68 65 20 6c 69 62  renaming the lib
fb60: 72 61 72 79 0a 20 20 20 20 74 6f 20 22 53 51 4c  rary.    to "SQL
fb70: 75 73 22 20 77 61 73 20 61 62 61 6e 64 6f 6e 65  us" was abandone
fb80: 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 6b 65  d in favor of ke
fb90: 65 70 69 6e 67 20 74 68 65 20 22 53 51 4c 69 74  eping the "SQLit
fba0: 65 22 20 6e 61 6d 65 20 61 6e 64 0a 20 20 20 20  e" name and.    
fbb0: 62 75 6d 70 69 6e 67 20 74 68 65 20 6d 61 6a 6f  bumping the majo
fbc0: 72 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  r version number
fbd0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70  .</li>.<li>The p
fbe0: 61 67 65 72 20 61 6e 64 20 62 74 72 65 65 20 73  ager and btree s
fbf0: 75 62 73 79 73 74 65 6d 73 20 61 64 64 65 64 20  ubsystems added 
fc00: 62 61 63 6b 2e 20 54 68 65 79 20 61 72 65 20 6e  back. They are n
fc10: 6f 77 20 74 68 65 20 6f 6e 6c 79 0a 20 20 20 20  ow the only.    
fc20: 61 76 61 69 6c 61 62 6c 65 20 62 61 63 6b 65 6e  available backen
fc30: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  d.</li>.<li>The 
fc40: 44 62 62 65 20 61 62 73 74 72 61 63 74 69 6f 6e  Dbbe abstraction
fc50: 20 61 6e 64 20 74 68 65 20 47 44 42 4d 20 61 6e   and the GDBM an
fc60: 64 20 6d 65 6d 6f 72 79 20 64 72 69 76 65 72 73  d memory drivers
fc70: 20 77 65 72 65 20 72 65 6d 6f 76 65 64 2e 3c 2f   were removed.</
fc80: 6c 69 3e 0a 3c 6c 69 3e 43 6f 70 79 72 69 67 68  li>.<li>Copyrigh
fc90: 74 20 6f 6e 20 61 6c 6c 20 63 6f 64 65 20 77 61  t on all code wa
fca0: 73 20 64 69 73 63 6c 61 69 6d 65 64 2e 20 20 54  s disclaimed.  T
fcb0: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f  he library is no
fcc0: 77 20 69 6e 20 74 68 65 0a 20 20 20 20 70 75 62  w in the.    pub
fcd0: 6c 69 63 20 64 6f 6d 61 69 6e 2e 3c 2f 6c 69 3e  lic domain.</li>
fce0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a  .}..chng {2001 J
fcf0: 75 6c 20 32 33 20 28 31 2e 30 2e 33 32 29 7d 20  ul 23 (1.0.32)} 
fd00: 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 61 6e 64 20  {.<li>Pager and 
fd10: 62 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 73  btree subsystems
fd20: 20 72 65 6d 6f 76 65 64 2e 20 20 54 68 65 73 65   removed.  These
fd30: 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 69 6e   will be used in
fd40: 20 61 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a 20 20 20   a follow-on.   
fd50: 20 53 51 4c 20 73 65 72 76 65 72 20 6c 69 62 72   SQL server libr
fd60: 61 72 79 20 6e 61 6d 65 64 20 22 53 51 4c 75 73  ary named "SQLus
fd70: 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  ".</li>.<li>Add 
fd80: 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 75  the ability to u
fd90: 73 65 20 71 75 6f 74 65 64 20 73 74 72 69 6e 67  se quoted string
fda0: 73 20 61 73 20 74 61 62 6c 65 20 61 6e 64 20 63  s as table and c
fdb0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 0a 20  olumn names in. 
fdc0: 20 20 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 3c     expressions.<
fdd0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
fde0: 30 31 20 41 70 72 20 31 34 20 28 31 2e 30 2e 33  01 Apr 14 (1.0.3
fdf0: 31 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20  1)} {.<li>Pager 
fe00: 73 75 62 73 79 73 74 65 6d 20 61 64 64 65 64 20  subsystem added 
fe10: 62 75 74 20 6e 6f 74 20 79 65 74 20 75 73 65 64  but not yet used
fe20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20  .</li>.<li>More 
fe30: 72 6f 62 75 73 74 20 68 61 6e 64 6c 69 6e 67 20  robust handling 
fe40: 6f 66 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79  of out-of-memory
fe50: 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c   errors.</li>.<l
fe60: 69 3e 4e 65 77 20 74 65 73 74 73 20 61 64 64 65  i>New tests adde
fe70: 64 20 74 6f 20 74 68 65 20 74 65 73 74 20 73 75  d to the test su
fe80: 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ite.</li>.}..chn
fe90: 67 20 7b 32 30 30 31 20 41 70 72 20 36 20 28 31  g {2001 Apr 6 (1
fea0: 2e 30 2e 33 30 29 7d 20 7b 0a 3c 6c 69 3e 52 65  .0.30)} {.<li>Re
feb0: 6d 6f 76 65 20 74 68 65 20 3c 62 3e 73 71 6c 69  move the <b>sqli
fec0: 74 65 5f 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20  te_encoding</b> 
fed0: 54 43 4c 20 76 61 72 69 61 62 6c 65 20 74 68 61  TCL variable tha
fee0: 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64  t was introduced
fef0: 0a 20 20 20 20 69 6e 20 74 68 65 20 70 72 65 76  .    in the prev
ff00: 69 6f 75 73 20 76 65 72 73 69 6f 6e 2e 3c 2f 6c  ious version.</l
ff10: 69 3e 0a 3c 6c 69 3e 41 64 64 20 6f 70 74 69 6f  i>.<li>Add optio
ff20: 6e 73 20 3c 62 3e 2d 65 6e 63 6f 64 69 6e 67 3c  ns <b>-encoding<
ff30: 2f 62 3e 20 61 6e 64 20 3c 62 3e 2d 74 63 6c 2d  /b> and <b>-tcl-
ff40: 75 73 65 73 2d 75 74 66 3c 2f 62 3e 20 74 6f 20  uses-utf</b> to 
ff50: 74 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74  the.    <b>sqlit
ff60: 65 3c 2f 62 3e 20 54 43 4c 20 63 6f 6d 6d 61 6e  e</b> TCL comman
ff70: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  d.</li>.<li>Add 
ff80: 74 65 73 74 73 20 74 6f 20 6d 61 6b 65 20 73 75  tests to make su
ff90: 72 65 20 74 68 61 74 20 74 63 6c 73 71 6c 69 74  re that tclsqlit
ffa0: 65 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 75  e was compiled u
ffb0: 73 69 6e 67 20 54 63 6c 20 68 65 61 64 65 72 0a  sing Tcl header.
ffc0: 20 20 20 20 66 69 6c 65 73 20 61 6e 64 20 6c 69      files and li
ffd0: 62 72 61 72 69 65 73 20 74 68 61 74 20 6d 61 74  braries that mat
ffe0: 63 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ch.</li>.}..chng
fff0: 20 7b 32 30 30 31 20 41 70 72 20 35 20 28 31 2e   {2001 Apr 5 (1.
10000 30 2e 32 39 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65  0.29)} {.<li>The
10010 20 6c 69 62 72 61 72 79 20 6e 6f 77 20 61 73 73   library now ass
10020 75 6d 65 73 20 64 61 74 61 20 69 73 20 73 74 6f  umes data is sto
10030 72 65 64 20 61 73 20 55 54 46 2d 38 20 69 66 20  red as UTF-8 if 
10040 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 75 74 66  the --enable-utf
10050 38 0a 20 20 20 20 6f 70 74 69 6f 6e 20 69 73 20  8.    option is 
10060 67 69 76 65 6e 20 74 6f 20 63 6f 6e 66 69 67 75  given to configu
10070 72 65 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74  re.  The default
10080 20 62 65 68 61 76 69 6f 72 20 69 73 20 74 6f 20   behavior is to 
10090 61 73 73 75 6d 65 0a 20 20 20 20 69 73 6f 38 38  assume.    iso88
100a0 35 39 2d 78 2c 20 61 73 20 69 74 20 68 61 73 20  59-x, as it has 
100b0 61 6c 77 61 79 73 20 64 6f 6e 65 2e 20 20 54 68  always done.  Th
100c0 69 73 20 6f 6e 6c 79 20 6d 61 6b 65 73 20 61 20  is only makes a 
100d0 64 69 66 66 65 72 65 6e 63 65 20 66 6f 72 0a 20  difference for. 
100e0 20 20 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f 42     LIKE and GLOB
100f0 20 6f 70 65 72 61 74 6f 72 73 20 61 6e 64 20 74   operators and t
10100 68 65 20 4c 45 4e 47 54 48 20 61 6e 64 20 53 55  he LENGTH and SU
10110 42 53 54 52 20 66 75 6e 63 74 69 6f 6e 73 2e 3c  BSTR functions.<
10120 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74 68 65 20  /li>.<li>If the 
10130 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 74 20 63  library is not c
10140 6f 6e 66 69 67 75 72 65 64 20 66 6f 72 20 55 54  onfigured for UT
10150 46 2d 38 20 61 6e 64 20 74 68 65 20 54 63 6c 20  F-8 and the Tcl 
10160 6c 69 62 72 61 72 79 0a 20 20 20 20 69 73 20 6f  library.    is o
10170 6e 65 20 6f 66 20 74 68 65 20 6e 65 77 65 72 20  ne of the newer 
10180 6f 6e 65 73 20 74 68 61 74 20 75 73 65 73 20 55  ones that uses U
10190 54 46 2d 38 20 69 6e 74 65 72 6e 61 6c 6c 79 2c  TF-8 internally,
101a0 0a 20 20 20 20 74 68 65 6e 20 61 20 63 6f 6e 76  .    then a conv
101b0 65 72 73 69 6f 6e 20 66 72 6f 6d 20 55 54 46 2d  ersion from UTF-
101c0 38 20 74 6f 20 69 73 6f 38 38 35 39 20 61 6e 64  8 to iso8859 and
101d0 0a 20 20 20 20 62 61 63 6b 20 61 67 61 69 6e 20  .    back again 
101e0 69 73 20 64 6f 6e 65 20 69 6e 73 69 64 65 20 74  is done inside t
101f0 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65  he TCL interface
10200 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
10210 32 30 30 31 20 41 70 72 20 34 20 28 31 2e 30 2e  2001 Apr 4 (1.0.
10220 32 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  28)} {.<li>Added
10230 20 6c 69 6d 69 74 65 64 20 73 75 70 70 6f 72 74   limited support
10240 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e   for transaction
10250 73 2e 20 20 41 74 20 74 68 69 73 20 70 6f 69 6e  s.  At this poin
10260 74 2c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 0a  t, transactions.
10270 20 20 20 20 77 69 6c 6c 20 64 6f 20 74 61 62 6c      will do tabl
10280 65 20 6c 6f 63 6b 69 6e 67 20 6f 6e 20 74 68 65  e locking on the
10290 20 47 44 42 4d 20 62 61 63 6b 65 6e 64 2e 20 20   GDBM backend.  
102a0 54 68 65 72 65 20 69 73 20 6e 6f 20 73 75 70 70  There is no supp
102b0 6f 72 74 20 28 79 65 74 29 0a 20 20 20 20 66 6f  ort (yet).    fo
102c0 72 20 72 6f 6c 6c 62 61 63 6b 20 6f 72 20 61 74  r rollback or at
102d0 6f 6d 69 63 20 63 6f 6d 6d 69 74 2e 3c 2f 6c 69  omic commit.</li
102e0 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 70 65 63  >.<li>Added spec
102f0 69 61 6c 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73  ial column names
10300 20 52 4f 57 49 44 2c 20 4f 49 44 2c 20 61 6e 64   ROWID, OID, and
10310 20 5f 52 4f 57 49 44 5f 20 74 68 61 74 20 72 65   _ROWID_ that re
10320 66 65 72 20 74 6f 20 74 68 65 0a 20 20 20 20 75  fer to the.    u
10330 6e 69 71 75 65 20 72 61 6e 64 6f 6d 20 69 6e 74  nique random int
10340 65 67 65 72 20 6b 65 79 20 61 73 73 6f 63 69 61  eger key associa
10350 74 65 64 20 77 69 74 68 20 65 76 65 72 79 20 72  ted with every r
10360 6f 77 20 6f 66 20 65 76 65 72 79 20 74 61 62 6c  ow of every tabl
10370 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 69  e.</li>.<li>Addi
10380 74 69 6f 6e 61 6c 20 74 65 73 74 73 20 61 64 64  tional tests add
10390 65 64 20 74 6f 20 74 68 65 20 72 65 67 72 65 73  ed to the regres
103a0 73 69 6f 6e 20 73 75 69 74 65 20 74 6f 20 63 6f  sion suite to co
103b0 76 65 72 20 74 68 65 20 6e 65 77 20 52 4f 57 49  ver the new ROWI
103c0 44 0a 20 20 20 20 66 65 61 74 75 72 65 20 61 6e  D.    feature an
103d0 64 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66  d the TCL interf
103e0 61 63 65 20 62 75 67 73 20 6d 65 6e 74 69 6f 6e  ace bugs mention
103f0 65 64 20 62 65 6c 6f 77 2e 3c 2f 6c 69 3e 0a 3c  ed below.</li>.<
10400 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74 68  li>Changes to th
10410 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65 72  e "lemon" parser
10420 20 67 65 6e 65 72 61 74 6f 72 20 74 6f 20 68 65   generator to he
10430 6c 70 20 69 74 20 77 6f 72 6b 20 62 65 74 74 65  lp it work bette
10440 72 20 77 68 65 6e 0a 20 20 20 20 63 6f 6d 70 69  r when.    compi
10450 6c 65 64 20 75 73 69 6e 67 20 4d 53 56 43 2e 3c  led using MSVC.<
10460 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
10470 65 73 20 69 6e 20 74 68 65 20 54 43 4c 20 69 6e  es in the TCL in
10480 74 65 72 66 61 63 65 20 69 64 65 6e 74 69 66 69  terface identifi
10490 65 64 20 62 79 20 4f 6c 65 67 20 4f 6c 65 69 6e  ed by Oleg Olein
104a0 69 63 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ick.</li>.}..chn
104b0 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30 20 28  g {2001 Mar 20 (
104c0 31 2e 30 2e 32 37 29 7d 20 7b 0a 3c 6c 69 3e 57  1.0.27)} {.<li>W
104d0 68 65 6e 20 64 6f 69 6e 67 20 44 45 4c 45 54 45  hen doing DELETE
104e0 20 61 6e 64 20 55 50 44 41 54 45 2c 20 74 68 65   and UPDATE, the
104f0 20 6c 69 62 72 61 72 79 20 75 73 65 64 20 74 6f   library used to
10500 20 77 72 69 74 65 20 74 68 65 20 72 65 63 6f 72   write the recor
10510 64 0a 20 20 20 20 6e 75 6d 62 65 72 73 20 6f 66  d.    numbers of
10520 20 72 65 63 6f 72 64 73 20 74 6f 20 62 65 20 64   records to be d
10530 65 6c 65 74 65 64 20 6f 72 20 75 70 64 61 74 65  eleted or update
10540 64 20 69 6e 74 6f 20 61 20 74 65 6d 70 6f 72 61  d into a tempora
10550 72 79 20 66 69 6c 65 2e 0a 20 20 20 20 54 68 69  ry file..    Thi
10560 73 20 69 73 20 63 68 61 6e 67 65 64 20 73 6f 20  s is changed so 
10570 74 68 61 74 20 74 68 65 20 72 65 63 6f 72 64 20  that the record 
10580 6e 75 6d 62 65 72 73 20 61 72 65 20 68 65 6c 64  numbers are held
10590 20 69 6e 20 6d 65 6d 6f 72 79 2e 3c 2f 6c 69 3e   in memory.</li>
105a0 0a 3c 6c 69 3e 54 68 65 20 44 45 4c 45 54 45 20  .<li>The DELETE 
105b0 63 6f 6d 6d 61 6e 64 20 77 69 74 68 6f 75 74 20  command without 
105c0 61 20 57 48 49 4c 45 20 63 6c 61 75 73 65 20 6a  a WHILE clause j
105d0 75 73 74 20 72 65 6d 6f 76 65 73 20 74 68 65 20  ust removes the 
105e0 64 61 74 61 62 61 73 65 0a 20 20 20 20 66 69 6c  database.    fil
105f0 65 73 20 66 72 6f 6d 20 74 68 65 20 64 69 73 6b  es from the disk
10600 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 67 6f  , rather than go
10610 69 6e 67 20 74 68 72 6f 75 67 68 20 61 6e 64 20  ing through and 
10620 64 65 6c 65 74 69 6e 67 20 72 65 63 6f 72 64 0a  deleting record.
10630 20 20 20 20 62 79 20 72 65 63 6f 72 64 2e 3c 2f      by record.</
10640 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
10650 31 20 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 36  1 Mar 20 (1.0.26
10660 29 7d 20 7b 0a 3c 6c 69 3e 41 20 73 65 72 69 6f  )} {.<li>A serio
10670 75 73 20 62 75 67 20 66 69 78 65 64 20 6f 6e 20  us bug fixed on 
10680 57 69 6e 64 6f 77 73 2e 20 20 57 69 6e 64 6f 77  Windows.  Window
10690 73 20 75 73 65 72 73 20 73 68 6f 75 6c 64 20 75  s users should u
106a0 70 67 72 61 64 65 2e 0a 20 20 20 20 4e 6f 20 69  pgrade..    No i
106b0 6d 70 61 63 74 20 74 6f 20 55 6e 69 78 2e 3c 2f  mpact to Unix.</
106c0 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
106d0 31 20 4d 61 72 20 31 35 20 28 31 2e 30 2e 32 35  1 Mar 15 (1.0.25
106e0 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 79 20  )} {.<li>Modify 
106f0 74 68 65 20 74 65 73 74 20 73 63 72 69 70 74 73  the test scripts
10700 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74 65 73   to identify tes
10710 74 73 20 74 68 61 74 20 64 65 70 65 6e 64 20 6f  ts that depend o
10720 6e 20 73 79 73 74 65 6d 0a 20 20 20 20 6c 6f 61  n system.    loa
10730 64 20 61 6e 64 20 70 72 6f 63 65 73 73 6f 72 20  d and processor 
10740 73 70 65 65 64 20 61 6e 64 0a 20 20 20 20 74 6f  speed and.    to
10750 20 77 61 72 6e 20 74 68 65 20 75 73 65 72 20 74   warn the user t
10760 68 61 74 20 61 20 66 61 69 6c 75 72 65 20 6f 66  hat a failure of
10770 20 6f 6e 65 20 6f 66 20 74 68 6f 73 65 20 28 72   one of those (r
10780 61 72 65 29 20 74 65 73 74 73 20 64 6f 65 73 0a  are) tests does.
10790 20 20 20 20 6e 6f 74 20 6e 65 63 65 73 73 61 72      not necessar
107a0 69 6c 79 20 6d 65 61 6e 20 74 68 65 20 6c 69 62  ily mean the lib
107b0 72 61 72 79 20 69 73 20 6d 61 6c 66 75 6e 63 74  rary is malfunct
107c0 69 6f 6e 69 6e 67 2e 20 20 4e 6f 20 63 68 61 6e  ioning.  No chan
107d0 67 65 73 20 74 6f 0a 20 20 20 20 63 6f 64 65 2e  ges to.    code.
107e0 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  .    </li>.}..ch
107f0 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31 34 20  ng {2001 Mar 14 
10800 28 31 2e 30 2e 32 34 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.24)} {.<li>
10810 46 69 78 20 61 20 62 75 67 20 77 68 69 63 68 20  Fix a bug which 
10820 77 61 73 20 63 61 75 73 69 6e 67 0a 20 20 20 20  was causing.    
10830 74 68 65 20 55 50 44 41 54 45 20 63 6f 6d 6d 61  the UPDATE comma
10840 6e 64 20 74 6f 20 66 61 69 6c 20 6f 6e 20 73 79  nd to fail on sy
10850 73 74 65 6d 73 20 77 68 65 72 65 20 22 6d 61 6c  stems where "mal
10860 6c 6f 63 28 30 29 22 20 72 65 74 75 72 6e 73 0a  loc(0)" returns.
10870 20 20 20 20 4e 55 4c 4c 2e 20 20 54 68 65 20 70      NULL.  The p
10880 72 6f 62 6c 65 6d 20 64 6f 65 73 20 6e 6f 74 20  roblem does not 
10890 61 70 70 65 61 72 20 57 69 6e 64 6f 77 73 2c 20  appear Windows, 
108a0 4c 69 6e 75 78 2c 20 6f 72 20 48 50 55 58 20 62  Linux, or HPUX b
108b0 75 74 20 64 6f 65 73 20 0a 20 20 20 20 63 61 75  ut does .    cau
108c0 73 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 74  se the library t
108d0 6f 20 66 61 69 6c 20 6f 6e 20 51 4e 58 2e 0a 20  o fail on QNX.. 
108e0 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
108f0 20 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31   {2001 Feb 19 (1
10900 2e 30 2e 32 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6e  .0.23)} {.<li>An
10910 20 75 6e 72 65 6c 61 74 65 64 20 28 61 6e 64 20   unrelated (and 
10920 6d 69 6e 6f 72 29 20 62 75 67 20 66 72 6f 6d 20  minor) bug from 
10930 4d 61 72 6b 20 4d 75 72 61 6e 77 73 6b 69 20 66  Mark Muranwski f
10940 69 78 65 64 2e 20 20 54 68 65 20 61 6c 67 6f 72  ixed.  The algor
10950 69 74 68 6d 0a 20 20 20 20 66 6f 72 20 66 69 67  ithm.    for fig
10960 75 72 69 6e 67 20 6f 75 74 20 77 68 65 72 65 20  uring out where 
10970 74 6f 20 70 75 74 20 74 65 6d 70 6f 72 61 72 79  to put temporary
10980 20 66 69 6c 65 73 20 66 6f 72 20 61 20 22 6d 65   files for a "me
10990 6d 6f 72 79 3a 22 20 64 61 74 61 62 61 73 65 0a  mory:" database.
109a0 20 20 20 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b      was not work
109b0 69 6e 67 20 71 75 69 74 65 20 72 69 67 68 74 2e  ing quite right.
109c0 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  .    </li>.}..ch
109d0 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31 39 20  ng {2001 Feb 19 
109e0 28 31 2e 30 2e 32 32 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.22)} {.<li>
109f0 54 68 65 20 70 72 65 76 69 6f 75 73 20 66 69 78  The previous fix
10a00 20 77 61 73 20 6e 6f 74 20 71 75 69 74 65 20 72   was not quite r
10a10 69 67 68 74 2e 20 20 54 68 69 73 20 6f 6e 65 20  ight.  This one 
10a20 73 65 65 6d 73 20 74 6f 20 77 6f 72 6b 20 62 65  seems to work be
10a30 74 74 65 72 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  tter..    </li>.
10a40 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65  }..chng {2001 Fe
10a50 62 20 31 39 20 28 31 2e 30 2e 32 31 29 7d 20 7b  b 19 (1.0.21)} {
10a60 0a 3c 6c 69 3e 54 68 65 20 55 50 44 41 54 45 20  .<li>The UPDATE 
10a70 73 74 61 74 65 6d 65 6e 74 20 77 61 73 20 6e 6f  statement was no
10a80 74 20 77 6f 72 6b 69 6e 67 20 77 68 65 6e 20 74  t working when t
10a90 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 20  he WHERE clause 
10aa0 63 6f 6e 74 61 69 6e 65 64 0a 20 20 20 20 73 6f  contained.    so
10ab0 6d 65 20 74 65 72 6d 73 20 74 68 61 74 20 63 6f  me terms that co
10ac0 75 6c 64 20 62 65 20 73 61 74 69 73 66 69 65 64  uld be satisfied
10ad0 20 75 73 69 6e 67 20 69 6e 64 69 63 65 73 20 61   using indices a
10ae0 6e 64 20 6f 74 68 65 72 20 74 65 72 6d 73 20 74  nd other terms t
10af0 68 61 74 0a 20 20 20 20 63 6f 75 6c 64 20 6e 6f  hat.    could no
10b00 74 2e 20 20 46 69 78 65 64 2e 3c 2f 6c 69 3e 0a  t.  Fixed.</li>.
10b10 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65  }..chng {2001 Fe
10b20 62 20 31 31 20 28 31 2e 30 2e 32 30 29 7d 20 7b  b 11 (1.0.20)} {
10b30 0a 3c 6c 69 3e 4d 65 72 67 65 20 64 65 76 65 6c  .<li>Merge devel
10b40 6f 70 6d 65 6e 74 20 63 68 61 6e 67 65 73 20 69  opment changes i
10b50 6e 74 6f 20 74 68 65 20 6d 61 69 6e 20 74 72 75  nto the main tru
10b60 6e 6b 2e 20 20 46 75 74 75 72 65 20 77 6f 72 6b  nk.  Future work
10b70 20 74 6f 77 61 72 64 0a 20 20 20 20 75 73 69 6e   toward.    usin
10b80 67 20 61 20 42 54 72 65 65 20 66 69 6c 65 20 73  g a BTree file s
10b90 74 72 75 63 74 75 72 65 20 77 69 6c 6c 20 75 73  tructure will us
10ba0 65 20 61 20 73 65 70 61 72 61 74 65 20 43 56 53  e a separate CVS
10bb0 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20 54   source tree.  T
10bc0 68 69 73 0a 20 20 20 20 43 56 53 20 74 72 65 65  his.    CVS tree
10bd0 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74   will continue t
10be0 6f 20 73 75 70 70 6f 72 74 20 74 68 65 20 47 44  o support the GD
10bf0 42 4d 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 51  BM version of SQ
10c00 4c 69 74 65 20 6f 6e 6c 79 2e 3c 2f 6c 69 3e 0a  Lite only.</li>.
10c10 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65  }..chng {2001 Fe
10c20 62 20 36 20 28 31 2e 30 2e 31 39 29 7d 20 7b 0a  b 6 (1.0.19)} {.
10c30 3c 6c 69 3e 46 69 78 20 61 20 73 74 72 61 6e 67  <li>Fix a strang
10c40 65 20 28 62 75 74 20 76 61 6c 69 64 29 20 43 20  e (but valid) C 
10c50 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 68 61 74  declaration that
10c60 20 77 61 73 20 63 61 75 73 69 6e 67 20 70 72 6f   was causing pro
10c70 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 51 4e  blems.    for QN
10c80 58 2e 20 20 4e 6f 20 6c 6f 67 69 63 61 6c 20 63  X.  No logical c
10c90 68 61 6e 67 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  hanges.</li>.}..
10ca0 63 68 6e 67 20 7b 32 30 30 31 20 4a 61 6e 20 34  chng {2001 Jan 4
10cb0 20 28 31 2e 30 2e 31 38 29 7d 20 7b 0a 3c 6c 69   (1.0.18)} {.<li
10cc0 3e 50 72 69 6e 74 20 74 68 65 20 6f 66 66 65 6e  >Print the offen
10cd0 64 69 6e 67 20 53 51 4c 20 73 74 61 74 65 6d 65  ding SQL stateme
10ce0 6e 74 20 77 68 65 6e 20 61 6e 20 65 72 72 6f 72  nt when an error
10cf0 20 6f 63 63 75 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c   occurs.</li>.<l
10d00 69 3e 44 6f 20 6e 6f 74 20 72 65 71 75 69 72 65  i>Do not require
10d10 20 63 6f 6d 6d 61 73 20 62 65 74 77 65 65 6e 20   commas between 
10d20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69 6e 20 43  constraints in C
10d30 52 45 41 54 45 20 54 41 42 4c 45 20 73 74 61 74  REATE TABLE stat
10d40 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ements.</li>.<li
10d50 3e 41 64 64 65 64 20 74 68 65 20 22 2d 65 63 68  >Added the "-ech
10d60 6f 22 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65  o" option to the
10d70 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69   shell.</li>.<li
10d80 3e 43 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d 6d  >Changes to comm
10d90 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ents.</li>.}..ch
10da0 6e 67 20 7b 32 30 30 30 20 44 65 63 20 31 30 20  ng {2000 Dec 10 
10db0 28 31 2e 30 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.17)} {.<li>
10dc0 52 65 77 72 6f 74 65 20 3c 62 3e 73 71 6c 69 74  Rewrote <b>sqlit
10dd0 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e  e_complete()</b>
10de0 20 74 6f 20 6d 61 6b 65 20 69 74 20 66 61 73 74   to make it fast
10df0 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e  er.</li>.<li>Min
10e00 6f 72 20 74 77 65 61 6b 73 20 74 6f 20 6f 74 68  or tweaks to oth
10e10 65 72 20 63 6f 64 65 20 74 6f 20 6d 61 6b 65 20  er code to make 
10e20 69 74 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20  it run a little 
10e30 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  faster.</li>.<li
10e40 3e 41 64 64 65 64 20 6e 65 77 20 74 65 73 74 73  >Added new tests
10e50 20 66 6f 72 20 3c 62 3e 73 71 6c 69 74 65 5f 63   for <b>sqlite_c
10e60 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20 61 6e  omplete()</b> an
10e70 64 20 66 6f 72 20 6d 65 6d 6f 72 79 20 6c 65 61  d for memory lea
10e80 6b 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ks.</li>.}..chng
10e90 20 7b 32 30 30 30 20 44 65 63 20 34 20 28 31 2e   {2000 Dec 4 (1.
10ea0 30 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63  0.16)} {.<li>Doc
10eb0 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
10ec0 65 73 2e 20 20 4d 6f 73 74 6c 79 20 66 69 78 69  es.  Mostly fixi
10ed0 6e 67 20 6f 66 20 74 79 70 6f 73 20 61 6e 64 20  ng of typos and 
10ee0 73 70 65 6c 6c 69 6e 67 20 65 72 72 6f 72 73 2e  spelling errors.
10ef0 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
10f00 30 30 30 20 4f 63 74 20 32 33 20 28 31 2e 30 2e  000 Oct 23 (1.0.
10f10 31 35 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d  15)} {.<li>Docum
10f20 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
10f30 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d 65 20 73  </li>.<li>Some s
10f40 61 6e 69 74 79 20 63 68 65 63 6b 69 6e 67 20 63  anity checking c
10f50 6f 64 65 20 77 61 73 20 72 65 6d 6f 76 65 64 20  ode was removed 
10f60 66 72 6f 6d 20 74 68 65 20 69 6e 6e 65 72 20 6c  from the inner l
10f70 6f 6f 70 20 6f 66 20 76 64 62 65 2e 63 0a 20 20  oop of vdbe.c.  
10f80 20 20 74 6f 20 68 65 6c 70 20 74 68 65 20 6c 69    to help the li
10f90 62 72 61 72 79 20 74 6f 20 72 75 6e 20 61 20 6c  brary to run a l
10fa0 69 74 74 6c 65 20 66 61 73 74 65 72 2e 20 20 54  ittle faster.  T
10fb0 68 65 20 63 6f 64 65 20 69 73 20 6f 6e 6c 79 0a  he code is only.
10fc0 20 20 20 20 72 65 6d 6f 76 65 64 20 69 66 20 79      removed if y
10fd0 6f 75 20 63 6f 6d 70 69 6c 65 20 77 69 74 68 20  ou compile with 
10fe0 2d 44 4e 44 45 42 55 47 2e 3c 2f 6c 69 3e 0a 7d  -DNDEBUG.</li>.}
10ff0 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
11000 20 31 39 20 28 31 2e 30 2e 31 34 29 7d 20 7b 0a   19 (1.0.14)} {.
11010 3c 6c 69 3e 41 64 64 65 64 20 61 20 22 6d 65 6d  <li>Added a "mem
11020 6f 72 79 3a 22 20 62 61 63 6b 65 6e 64 20 64 72  ory:" backend dr
11030 69 76 65 72 20 74 68 61 74 20 73 74 6f 72 65 73  iver that stores
11040 20 69 74 73 20 64 61 74 61 62 61 73 65 20 69 6e   its database in
11050 20 61 6e 0a 20 20 20 20 69 6e 2d 6d 65 6d 6f 72   an.    in-memor
11060 79 20 68 61 73 68 20 74 61 62 6c 65 2e 3c 2f 6c  y hash table.</l
11070 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
11080 20 4f 63 74 20 31 38 20 28 31 2e 30 2e 31 33 29   Oct 18 (1.0.13)
11090 7d 20 7b 0a 3c 6c 69 3e 42 72 65 61 6b 20 6f 75  } {.<li>Break ou
110a0 74 20 74 68 65 20 47 44 42 4d 20 64 72 69 76 65  t the GDBM drive
110b0 72 20 69 6e 74 6f 20 61 20 73 65 70 61 72 61 74  r into a separat
110c0 65 20 66 69 6c 65 20 69 6e 20 61 6e 74 69 63 69  e file in antici
110d0 70 61 74 69 6f 6e 0a 20 20 20 20 74 6f 20 61 64  pation.    to ad
110e0 64 65 64 20 6e 65 77 20 64 72 69 76 65 72 73 2e  ded new drivers.
110f0 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
11100 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 64 61  the name of a da
11110 74 61 62 61 73 65 20 74 6f 20 62 65 20 70 72 65  tabase to be pre
11120 66 69 78 65 64 20 62 79 20 74 68 65 20 64 72 69  fixed by the dri
11130 76 65 72 20 74 79 70 65 2e 0a 20 20 20 20 46 6f  ver type..    Fo
11140 72 20 6e 6f 77 2c 20 74 68 65 20 6f 6e 6c 79 20  r now, the only 
11150 64 72 69 76 65 72 20 74 79 70 65 20 69 73 20 22  driver type is "
11160 67 64 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  gdbm:".</li>.}..
11170 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31  chng {2000 Oct 1
11180 36 20 28 31 2e 30 2e 31 32 29 7d 20 7b 0a 3c 6c  6 (1.0.12)} {.<l
11190 69 3e 46 69 78 65 64 20 61 6e 20 6f 66 66 2d 62  i>Fixed an off-b
111a0 79 2d 6f 6e 65 20 65 72 72 6f 72 20 74 68 61 74  y-one error that
111b0 20 77 61 73 20 63 61 75 73 69 6e 67 20 61 20 63   was causing a c
111c0 6f 72 65 64 75 6d 70 20 69 6e 20 0a 20 20 20 20  oredump in .    
111d0 74 68 65 20 27 25 71 27 20 66 6f 72 6d 61 74 20  the '%q' format 
111e0 64 69 72 65 63 74 69 76 65 20 6f 66 20 74 68 65  directive of the
111f0 20 6e 65 77 0a 20 20 20 20 3c 62 3e 73 71 6c 69   new.    <b>sqli
11200 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29 3c  te_..._printf()<
11210 2f 62 3e 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c  /b> routines.</l
11220 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
11230 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72   <b>sqlite_inter
11240 72 75 70 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72  rupt()</b> inter
11250 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  face.</li>.<li>I
11260 6e 20 74 68 65 20 73 68 65 6c 6c 2c 20 3c 62 3e  n the shell, <b>
11270 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74  sqlite_interrupt
11280 28 29 3c 2f 62 3e 20 69 73 20 69 6e 76 6f 6b 65  ()</b> is invoke
11290 64 20 77 68 65 6e 20 74 68 65 0a 20 20 20 20 75  d when the.    u
112a0 73 65 72 20 70 72 65 73 73 65 73 20 43 6f 6e 74  ser presses Cont
112b0 72 6f 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  rol-C</li>.<li>F
112c0 69 78 65 64 20 73 6f 6d 65 20 69 6e 73 74 61 6e  ixed some instan
112d0 63 65 73 20 77 68 65 72 65 20 3c 62 3e 73 71 6c  ces where <b>sql
112e0 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77  ite_exec()</b> w
112f0 61 73 0a 20 20 20 20 72 65 74 75 72 6e 69 6e 67  as.    returning
11300 20 74 68 65 20 77 72 6f 6e 67 20 65 72 72 6f 72   the wrong error
11310 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   code.</li>.}..c
11320 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 31  hng {2000 Oct 11
11330 20 28 31 2e 30 2e 31 30 29 7d 20 7b 0a 3c 6c 69   (1.0.10)} {.<li
11340 3e 41 64 64 65 64 20 6e 6f 74 65 73 20 6f 6e 20  >Added notes on 
11350 68 6f 77 20 74 6f 20 63 6f 6d 70 69 6c 65 20 66  how to compile f
11360 6f 72 20 57 69 6e 64 6f 77 73 39 35 2f 39 38 2e  or Windows95/98.
11370 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65  </li>.<li>Remove
11380 64 20 61 20 66 65 77 20 76 61 72 69 61 62 6c 65  d a few variable
11390 73 20 74 68 61 74 20 77 65 72 65 20 6e 6f 74 20  s that were not 
113a0 62 65 69 6e 67 20 75 73 65 64 2e 20 20 45 74 63  being used.  Etc
113b0 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
113c0 32 30 30 30 20 4f 63 74 20 38 20 28 31 2e 30 2e  2000 Oct 8 (1.0.
113d0 39 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  9)} {.<li>Added 
113e0 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e  the <b>sqlite_..
113f0 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20 69  ._printf()</b> i
11400 6e 74 65 72 66 61 63 65 20 72 6f 75 74 69 6e 65  nterface routine
11410 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  s.</li>.<li>Modi
11420 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  fied the <b>sqli
11430 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f  te</b> shell pro
11440 67 72 61 6d 20 74 6f 20 75 73 65 20 74 68 65 20  gram to use the 
11450 6e 65 77 20 69 6e 74 65 72 66 61 63 65 20 0a 20  new interface . 
11460 20 20 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69     routines.</li
11470 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74  >.<li>Modified t
11480 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
11490 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74   shell program t
114a0 6f 20 70 72 69 6e 74 20 74 68 65 20 73 63 68 65  o print the sche
114b0 6d 61 20 66 6f 72 0a 20 20 20 20 74 68 65 20 62  ma for.    the b
114c0 75 69 6c 74 2d 69 6e 20 53 51 4c 49 54 45 5f 4d  uilt-in SQLITE_M
114d0 41 53 54 45 52 20 74 61 62 6c 65 2c 20 69 66 20  ASTER table, if 
114e0 65 78 70 6c 69 63 69 74 6c 79 20 72 65 71 75 65  explicitly reque
114f0 73 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  sted.</li>.}..ch
11500 6e 67 20 7b 32 30 30 30 20 53 65 70 20 33 30 20  ng {2000 Sep 30 
11510 28 31 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 42  (1.0.8)} {.<li>B
11520 65 67 69 6e 20 77 72 69 74 69 6e 67 20 64 6f 63  egin writing doc
11530 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68  umentation on th
11540 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e  e TCL interface.
11550 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
11560 30 30 30 20 53 65 70 20 32 39 20 28 4e 6f 74 20  000 Sep 29 (Not 
11570 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c 69  Released)} {.<li
11580 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71  >Added the <b>sq
11590 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29  lite_get_table()
115a0 3c 2f 62 3e 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c  </b> API</li>.<l
115b0 69 3e 55 70 64 61 74 65 64 20 74 68 65 20 64 6f  i>Updated the do
115c0 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20  cumentation for 
115d0 64 75 65 20 74 6f 20 74 68 65 20 61 62 6f 76 65  due to the above
115e0 20 63 68 61 6e 67 65 2e 3c 2f 6c 69 3e 0a 3c 6c   change.</li>.<l
115f0 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c  i>Modified the <
11600 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65  b>sqlite</b> she
11610 6c 6c 20 74 6f 20 6d 61 6b 65 20 75 73 65 20 6f  ll to make use o
11620 66 20 74 68 65 20 6e 65 77 0a 20 20 20 20 73 71  f the new.    sq
11630 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29  lite_get_table()
11640 20 41 50 49 20 69 6e 20 6f 72 64 65 72 20 74 6f   API in order to
11650 20 70 72 69 6e 74 20 61 20 6c 69 73 74 20 6f 66   print a list of
11660 20 74 61 62 6c 65 73 0a 20 20 20 20 69 6e 20 6d   tables.    in m
11670 75 6c 74 69 70 6c 65 20 63 6f 6c 75 6d 6e 73 2c  ultiple columns,
11680 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20   similar to the 
11690 77 61 79 20 22 6c 73 22 20 70 72 69 6e 74 73 20  way "ls" prints 
116a0 66 69 6c 65 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a  filenames.</li>.
116b0 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
116c0 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
116d0 68 65 6c 6c 20 74 6f 20 70 72 69 6e 74 20 61 20  hell to print a 
116e0 73 65 6d 69 63 6f 6c 6f 6e 20 61 74 20 74 68 65  semicolon at the
116f0 0a 20 20 20 20 65 6e 64 20 6f 66 20 65 61 63 68  .    end of each
11700 20 43 52 45 41 54 45 20 73 74 61 74 65 6d 65 6e   CREATE statemen
11710 74 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20  t in the output 
11720 6f 66 20 74 68 65 20 22 2e 73 63 68 65 6d 61 22  of the ".schema"
11730 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 7d   command.</li>.}
11740 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70  ..chng {2000 Sep
11750 20 32 31 20 28 4e 6f 74 20 52 65 6c 65 61 73 65   21 (Not Release
11760 64 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65  d)} {.<li>Change
11770 20 74 68 65 20 74 63 6c 73 71 6c 69 74 65 20 22   the tclsqlite "
11780 65 76 61 6c 22 20 6d 65 74 68 6f 64 20 74 6f 20  eval" method to 
11790 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66  return a list of
117a0 20 72 65 73 75 6c 74 73 20 69 66 0a 20 20 20 20   results if.    
117b0 6e 6f 20 63 61 6c 6c 62 61 63 6b 20 73 63 72 69  no callback scri
117c0 70 74 20 69 73 20 73 70 65 63 69 66 69 65 64 2e  pt is specified.
117d0 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
117e0 20 74 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20   tclsqlite.c to 
117f0 75 73 65 20 74 68 65 20 54 63 6c 5f 4f 62 6a 20  use the Tcl_Obj 
11800 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c  interface</li>.<
11810 6c 69 3e 41 64 64 20 74 63 6c 73 71 6c 69 74 65  li>Add tclsqlite
11820 2e 63 20 74 6f 20 74 68 65 20 6c 69 62 73 71 6c  .c to the libsql
11830 69 74 65 2e 61 20 6c 69 62 72 61 72 79 3c 2f 6c  ite.a library</l
11840 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
11850 20 53 65 70 20 31 33 20 28 56 65 72 73 69 6f 6e   Sep 13 (Version
11860 20 31 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43   1.0.5)} {.<li>C
11870 68 61 6e 67 65 64 20 74 68 65 20 70 72 69 6e 74  hanged the print
11880 20 66 6f 72 6d 61 74 20 66 6f 72 20 66 6c 6f 61   format for floa
11890 74 69 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75 65  ting point value
118a0 73 20 66 72 6f 6d 20 22 25 67 22 20 74 6f 20 22  s from "%g" to "
118b0 25 2e 31 35 67 22 2e 0a 20 20 20 20 3c 2f 6c 69  %.15g"..    </li
118c0 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74 68  >.<li>Changed th
118d0 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e  e comparison fun
118e0 63 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 6e 75  ction so that nu
118f0 6d 62 65 72 73 20 69 6e 20 65 78 70 6f 6e 65 6e  mbers in exponen
11900 74 69 61 6c 20 6e 6f 74 61 74 69 6f 6e 0a 20 20  tial notation.  
11910 20 20 28 65 78 3a 20 31 2e 32 33 34 65 2b 30 35    (ex: 1.234e+05
11920 29 20 73 6f 72 74 20 69 6e 20 6e 75 6d 65 72 69  ) sort in numeri
11930 63 61 6c 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a  cal order.</li>.
11940 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
11950 67 20 32 38 20 28 56 65 72 73 69 6f 6e 20 31 2e  g 28 (Version 1.
11960 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  0.4)} {.<li>Adde
11970 64 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 6c  d functions <b>l
11980 65 6e 67 74 68 28 29 3c 2f 62 3e 20 61 6e 64 20  ength()</b> and 
11990 3c 62 3e 73 75 62 73 74 72 28 29 3c 2f 62 3e 2e  <b>substr()</b>.
119a0 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
119b0 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 73 71  bug in the <b>sq
119c0 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70  lite</b> shell p
119d0 72 6f 67 72 61 6d 20 74 68 61 74 20 77 61 73 20  rogram that was 
119e0 63 61 75 73 69 6e 67 0a 20 20 20 20 61 20 63 6f  causing.    a co
119f0 72 65 64 75 6d 70 20 77 68 65 6e 20 74 68 65 20  redump when the 
11a00 6f 75 74 70 75 74 20 6d 6f 64 65 20 77 61 73 20  output mode was 
11a10 22 63 6f 6c 75 6d 6e 22 20 61 6e 64 20 74 68 65  "column" and the
11a20 20 66 69 72 73 74 20 72 6f 77 0a 20 20 20 20 6f   first row.    o
11a30 66 20 64 61 74 61 20 63 6f 6e 74 61 69 6e 65 64  f data contained
11a40 20 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a   a NULL.</li>.}.
11a50 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
11a60 32 32 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e  22 (Version 1.0.
11a70 33 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 20 74 68 65  3)} {.<li>In the
11a80 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 70   sqlite shell, p
11a90 72 69 6e 74 20 74 68 65 20 22 44 61 74 61 62 61  rint the "Databa
11aa0 73 65 20 6f 70 65 6e 65 64 20 52 45 41 44 20 4f  se opened READ O
11ab0 4e 4c 59 22 20 6d 65 73 73 61 67 65 0a 20 20 20  NLY" message.   
11ac0 20 74 6f 20 73 74 64 65 72 72 20 69 6e 73 74 65   to stderr inste
11ad0 61 64 20 6f 66 20 73 74 64 6f 75 74 2e 3c 2f 6c  ad of stdout.</l
11ae0 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 71  i>.<li>In the sq
11af0 6c 69 74 65 20 73 68 65 6c 6c 2c 20 6e 6f 77 20  lite shell, now 
11b00 70 72 69 6e 74 20 74 68 65 20 76 65 72 73 69 6f  print the versio
11b10 6e 20 6e 75 6d 62 65 72 20 6f 6e 20 69 6e 69 74  n number on init
11b20 69 61 6c 20 73 74 61 72 74 75 70 2e 3c 2f 6c 69  ial startup.</li
11b30 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 3c 62  >.<li>Add the <b
11b40 3e 73 71 6c 69 74 65 5f 76 65 72 73 69 6f 6e 5b  >sqlite_version[
11b50 5d 3c 2f 62 3e 20 73 74 72 69 6e 67 20 63 6f 6e  ]</b> string con
11b60 73 74 61 6e 74 20 74 6f 20 74 68 65 20 6c 69 62  stant to the lib
11b70 72 61 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  rary</li>.<li>Ma
11b80 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73 3c 2f  kefile updates</
11b90 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
11ba0 20 69 6e 63 6f 72 72 65 63 74 20 56 44 42 45 20   incorrect VDBE 
11bb0 63 6f 64 65 20 77 61 73 20 62 65 69 6e 67 20 67  code was being g
11bc0 65 6e 65 72 61 74 65 64 20 66 6f 72 20 74 68 65  enerated for the
11bd0 20 66 6f 6c 6c 6f 77 69 6e 67 0a 20 20 20 20 63   following.    c
11be0 69 72 63 75 6d 73 74 61 6e 63 65 3a 20 61 20 71  ircumstance: a q
11bf0 75 65 72 79 20 6f 6e 20 61 6e 20 69 6e 64 65 78  uery on an index
11c00 65 64 20 74 61 62 6c 65 20 63 6f 6e 74 61 69 6e  ed table contain
11c10 69 6e 67 20 61 20 57 48 45 52 45 20 63 6c 61 75  ing a WHERE clau
11c20 73 65 20 77 69 74 68 0a 20 20 20 20 61 6e 20 49  se with.    an I
11c30 4e 20 6f 70 65 72 61 74 6f 72 20 74 68 61 74 20  N operator that 
11c40 68 61 64 20 61 20 73 75 62 71 75 65 72 79 20 6f  had a subquery o
11c50 6e 20 69 74 73 20 72 69 67 68 74 2d 68 61 6e 64  n its right-hand
11c60 20 73 69 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   side.</li>.}..c
11c70 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31 38  hng {2000 Aug 18
11c80 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 31 29   (Version 1.0.1)
11c90 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
11ca0 67 20 69 6e 20 74 68 65 20 63 6f 6e 66 69 67 75  g in the configu
11cb0 72 65 20 73 63 72 69 70 74 2e 3c 2f 6c 69 3e 0a  re script.</li>.
11cc0 3c 6c 69 3e 4d 69 6e 6f 72 20 72 65 76 69 73 69  <li>Minor revisi
11cd0 6f 6e 73 20 74 6f 20 74 68 65 20 77 65 62 73 69  ons to the websi
11ce0 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  te.</li>.}..chng
11cf0 20 7b 32 30 30 30 20 41 75 67 20 31 37 20 28 56   {2000 Aug 17 (V
11d00 65 72 73 69 6f 6e 20 31 2e 30 29 7d 20 7b 0a 3c  ersion 1.0)} {.<
11d10 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 3c 62  li>Change the <b
11d20 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 70 72 6f 67  >sqlite</b> prog
11d30 72 61 6d 20 73 6f 20 74 68 61 74 20 69 74 20 63  ram so that it c
11d40 61 6e 20 72 65 61 64 0a 20 20 20 20 64 61 74 61  an read.    data
11d50 62 61 73 65 73 20 66 6f 72 20 77 68 69 63 68 20  bases for which 
11d60 69 74 20 6c 61 63 6b 73 20 77 72 69 74 65 20 70  it lacks write p
11d70 65 72 6d 69 73 73 69 6f 6e 2e 20 20 28 49 74 20  ermission.  (It 
11d80 75 73 65 64 20 74 6f 0a 20 20 20 20 72 65 66 75  used to.    refu
11d90 73 65 20 61 6c 6c 20 61 63 63 65 73 73 20 69 66  se all access if
11da0 20 69 74 20 63 6f 75 6c 64 20 6e 6f 74 20 77 72   it could not wr
11db0 69 74 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ite.)</li>.}..ch
11dc0 6e 67 20 7b 32 30 30 30 20 41 75 67 20 39 7d 20  ng {2000 Aug 9} 
11dd0 7b 0a 3c 6c 69 3e 54 72 65 61 74 20 63 61 72 72  {.<li>Treat carr
11de0 69 61 67 65 20 72 65 74 75 72 6e 73 20 61 73 20  iage returns as 
11df0 77 68 69 74 65 20 73 70 61 63 65 2e 3c 2f 6c 69  white space.</li
11e00 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
11e10 41 75 67 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64  Aug 8} {.<li>Add
11e20 65 64 20 70 61 74 74 65 72 6e 20 6d 61 74 63 68  ed pattern match
11e30 69 6e 67 20 74 6f 20 74 68 65 20 22 2e 74 61 62  ing to the ".tab
11e40 6c 65 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74  le" command in t
11e50 68 65 20 22 73 71 6c 69 74 65 22 0a 63 6f 6d 6d  he "sqlite".comm
11e60 61 6e 64 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a  and shell.</li>.
11e70 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
11e80 67 20 34 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d  g 4} {.<li>Docum
11e90 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
11ea0 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
11eb0 22 62 75 73 79 22 20 61 6e 64 20 22 74 69 6d 65  "busy" and "time
11ec0 6f 75 74 22 20 6d 65 74 68 6f 64 73 20 74 6f 20  out" methods to 
11ed0 74 68 65 20 54 63 6c 20 69 6e 74 65 72 66 61 63  the Tcl interfac
11ee0 65 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  e</li>.}..chng {
11ef0 32 30 30 30 20 41 75 67 20 33 7d 20 7b 0a 3c 6c  2000 Aug 3} {.<l
11f00 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20 76 65  i>File format ve
11f10 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 77 61 73  rsion number was
11f20 20 62 65 69 6e 67 20 73 74 6f 72 65 64 20 69 6e   being stored in
11f30 20 73 71 6c 69 74 65 5f 6d 61 73 74 65 72 2e 74   sqlite_master.t
11f40 63 6c 0a 20 20 20 20 6d 75 6c 74 69 70 6c 65 20  cl.    multiple 
11f50 74 69 6d 65 73 2e 20 54 68 69 73 20 77 61 73 20  times. This was 
11f60 68 61 72 6d 6c 65 73 73 2c 20 62 75 74 20 75 6e  harmless, but un
11f70 6e 65 63 65 73 73 61 72 79 2e 20 49 74 20 69 73  necessary. It is
11f80 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e   now fixed.</li>
11f90 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
11fa0 75 67 20 32 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  ug 2} {.<li>The 
11fb0 66 69 6c 65 20 66 6f 72 6d 61 74 20 66 6f 72 20  file format for 
11fc0 69 6e 64 69 63 65 73 20 77 61 73 20 63 68 61 6e  indices was chan
11fd0 67 65 64 20 73 6c 69 67 68 74 6c 79 20 69 6e 20  ged slightly in 
11fe0 6f 72 64 65 72 20 74 6f 20 77 6f 72 6b 0a 20 20  order to work.  
11ff0 20 20 61 72 6f 75 6e 64 20 61 6e 20 69 6e 65 66    around an inef
12000 66 69 63 69 65 6e 63 79 20 74 68 61 74 20 63 61  ficiency that ca
12010 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63 6f 6d 65  n sometimes come
12020 20 75 70 20 77 69 74 68 20 47 44 42 4d 20 77 68   up with GDBM wh
12030 65 6e 0a 20 20 20 20 74 68 65 72 65 20 61 72 65  en.    there are
12040 20 6c 61 72 67 65 20 69 6e 64 69 63 65 73 20 68   large indices h
12050 61 76 69 6e 67 20 6d 61 6e 79 20 65 6e 74 72 69  aving many entri
12060 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65  es with the same
12070 20 6b 65 79 2e 0a 20 20 20 20 3c 66 6f 6e 74 20   key..    <font 
12080 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 20 49  color="red">** I
12090 6e 63 6f 6d 70 61 74 69 62 6c 65 20 43 68 61 6e  ncompatible Chan
120a0 67 65 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f 6c 69  ge **</font></li
120b0 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
120c0 41 75 67 20 31 7d 20 7b 0a 3c 6c 69 3e 54 68 65  Aug 1} {.<li>The
120d0 20 70 61 72 73 65 72 27 73 20 73 74 61 63 6b 20   parser's stack 
120e0 77 61 73 20 6f 76 65 72 66 6c 6f 77 69 6e 67 20  was overflowing 
120f0 6f 6e 20 61 20 76 65 72 79 20 6c 6f 6e 67 20 55  on a very long U
12100 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 2e  PDATE statement.
12110 0a 20 20 20 20 54 68 69 73 20 69 73 20 6e 6f 77  .    This is now
12120 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   fixed.</li>.}..
12130 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20  chng {2000 July 
12140 33 31 7d 20 7b 0a 3c 6c 69 3e 46 69 6e 69 73 68  31} {.<li>Finish
12150 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64   the <a href="vd
12160 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75  be.html">VDBE tu
12170 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e  torial</a>.</li>
12180 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63 75 6d  .<li>Added docum
12190 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d 70  entation on comp
121a0 69 6c 69 6e 67 20 74 6f 20 57 69 6e 64 6f 77 73  iling to Windows
121b0 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  NT.</li>.<li>Fix
121c0 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e   a configuration
121d0 20 70 72 6f 67 72 61 6d 20 66 6f 72 20 57 69 6e   program for Win
121e0 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69  dowsNT.</li>.<li
121f0 3e 46 69 78 20 61 20 63 6f 6e 66 69 67 75 72 61  >Fix a configura
12200 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 66 6f 72  tion problem for
12210 20 48 50 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   HPUX.</li>.}..c
12220 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32  hng {2000 July 2
12230 39 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20  9} {.<li>Better 
12240 6c 61 62 65 6c 73 20 6f 6e 20 63 6f 6c 75 6d 6e  labels on column
12250 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 72 65   names of the re
12260 73 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  sult.</li>.}..ch
12270 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32 38  ng {2000 July 28
12280 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
12290 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79  e <b>sqlite_busy
122a0 5f 68 61 6e 64 6c 65 72 28 29 3c 2f 62 3e 20 0a  _handler()</b> .
122b0 20 20 20 20 61 6e 64 20 3c 62 3e 73 71 6c 69 74      and <b>sqlit
122c0 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 28 29  e_busy_timeout()
122d0 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c  </b> interface.<
122e0 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
122f0 30 30 20 4a 75 6e 65 20 32 33 7d 20 7b 0a 3c 6c  00 June 23} {.<l
12300 69 3e 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20  i>Begin writing 
12310 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64 62  the <a href="vdb
12320 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75 74  e.html">VDBE tut
12330 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a  orial</a>.</li>.
12340 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
12350 6e 65 20 32 31 7d 20 7b 0a 3c 6c 69 3e 43 6c 65  ne 21} {.<li>Cle
12360 61 6e 20 75 70 20 63 6f 6d 6d 65 6e 74 73 20 61  an up comments a
12370 6e 64 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65  nd variable name
12380 73 2e 20 20 43 68 61 6e 67 65 73 20 74 6f 20 64  s.  Changes to d
12390 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20  ocumentation..  
123a0 20 20 4e 6f 20 66 75 6e 63 74 69 6f 6e 61 6c 20    No functional 
123b0 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 63  changes to the c
123c0 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ode.</li>.}..chn
123d0 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 39 7d  g {2000 June 19}
123e0 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 20 6e 61   {.<li>Column na
123f0 6d 65 73 20 69 6e 20 55 50 44 41 54 45 20 73 74  mes in UPDATE st
12400 61 74 65 6d 65 6e 74 73 20 77 65 72 65 20 63 61  atements were ca
12410 73 65 20 73 65 6e 73 69 74 69 76 65 2e 0a 20 20  se sensitive..  
12420 20 20 54 68 69 73 20 6d 69 73 74 61 6b 65 20 68    This mistake h
12430 61 73 20 6e 6f 77 20 62 65 65 6e 20 66 69 78 65  as now been fixe
12440 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
12450 7b 32 30 30 30 20 4a 75 6e 65 20 31 36 7d 20 7b  {2000 June 16} {
12460 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 63  .<li>Added the c
12470 6f 6e 63 61 74 65 6e 61 74 65 20 73 74 72 69 6e  oncatenate strin
12480 67 20 6f 70 65 72 61 74 6f 72 20 28 7c 7c 29 3c  g operator (||)<
12490 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
124a0 30 30 20 4a 75 6e 65 20 31 32 7d 20 7b 0a 3c 6c  00 June 12} {.<l
124b0 69 3e 41 64 64 65 64 20 74 68 65 20 66 63 6e 74  i>Added the fcnt
124c0 28 29 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74  () function to t
124d0 68 65 20 53 51 4c 20 69 6e 74 65 72 70 72 65 74  he SQL interpret
124e0 65 72 2e 20 20 54 68 65 20 66 63 6e 74 28 29 20  er.  The fcnt() 
124f0 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 72 65 74  function.    ret
12500 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20  urns the number 
12510 6f 66 20 64 61 74 61 62 61 73 65 20 22 46 65 74  of database "Fet
12520 63 68 22 20 6f 70 65 72 61 74 69 6f 6e 73 20 74  ch" operations t
12530 68 61 74 20 68 61 76 65 20 6f 63 63 75 72 72 65  hat have occurre
12540 64 2e 0a 20 20 20 20 54 68 69 73 20 66 75 6e 63  d..    This func
12550 74 69 6f 6e 20 69 73 20 64 65 73 69 67 6e 65 64  tion is designed
12560 20 66 6f 72 20 75 73 65 20 69 6e 20 74 65 73 74   for use in test
12570 20 73 63 72 69 70 74 73 20 74 6f 20 76 65 72 69   scripts to veri
12580 66 79 20 74 68 61 74 0a 20 20 20 20 71 75 65 72  fy that.    quer
12590 69 65 73 20 61 72 65 20 65 66 66 69 63 69 65 6e  ies are efficien
125a0 74 20 61 6e 64 20 61 70 70 72 6f 70 72 69 61 74  t and appropriat
125b0 65 6c 79 20 6f 70 74 69 6d 69 7a 65 64 2e 20 20  ely optimized.  
125c0 46 63 6e 74 28 29 20 68 61 73 20 6e 6f 20 6f 74  Fcnt() has no ot
125d0 68 65 72 0a 20 20 20 20 75 73 65 66 75 6c 20 70  her.    useful p
125e0 75 72 70 6f 73 65 2c 20 61 73 20 66 61 72 20 61  urpose, as far a
125f0 73 20 49 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e 0a 3c  s I know.</li>.<
12600 6c 69 3e 41 64 64 65 64 20 61 20 62 75 6e 63 68  li>Added a bunch
12610 20 6d 6f 72 65 20 74 65 73 74 73 20 74 68 61 74   more tests that
12620 20 74 61 6b 65 20 61 64 76 61 6e 74 61 67 65 20   take advantage 
12630 6f 66 20 74 68 65 20 6e 65 77 20 66 63 6e 74 28  of the new fcnt(
12640 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20  ) function..    
12650 54 68 65 20 6e 65 77 20 74 65 73 74 73 20 64 69  The new tests di
12660 64 20 6e 6f 74 20 75 6e 63 6f 76 65 72 20 61 6e  d not uncover an
12670 79 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73 2e 3c  y new problems.<
12680 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
12690 30 30 20 4a 75 6e 65 20 38 7d 20 7b 0a 3c 6c 69  00 June 8} {.<li
126a0 3e 41 64 64 65 64 20 6c 6f 74 73 20 6f 66 20 6e  >Added lots of n
126b0 65 77 20 74 65 73 74 20 63 61 73 65 73 3c 2f 6c  ew test cases</l
126c0 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 66 65 77  i>.<li>Fix a few
126d0 20 62 75 67 73 20 64 69 73 63 6f 76 65 72 65 64   bugs discovered
126e0 20 77 68 69 6c 65 20 61 64 64 69 6e 67 20 74 65   while adding te
126f0 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c  st cases</li>.<l
12700 69 3e 42 65 67 69 6e 20 61 64 64 69 6e 67 20 6c  i>Begin adding l
12710 6f 74 73 20 6f 66 20 6e 65 77 20 64 6f 63 75 6d  ots of new docum
12720 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 7d 0a  entation</li>.}.
12730 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
12740 20 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20   6} {.<li>Added 
12750 63 6f 6d 70 6f 75 6e 64 20 73 65 6c 65 63 74 20  compound select 
12760 6f 70 65 72 61 74 6f 72 73 3a 20 3c 42 3e 55 4e  operators: <B>UN
12770 49 4f 4e 3c 2f 62 3e 2c 20 3c 62 3e 55 4e 49 4f  ION</b>, <b>UNIO
12780 4e 20 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e 49 4e  N ALL</B>,.<b>IN
12790 54 45 52 53 45 43 54 3c 2f 62 3e 2c 20 61 6e 64  TERSECT</b>, and
127a0 20 3c 62 3e 45 58 43 45 50 54 3c 2f 62 3e 3c 2f   <b>EXCEPT</b></
127b0 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
127c0 70 70 6f 72 74 20 66 6f 72 20 75 73 69 6e 67 20  pport for using 
127d0 3c 62 3e 28 53 45 4c 45 43 54 20 2e 2e 2e 29 3c  <b>(SELECT ...)<
127e0 2f 62 3e 20 77 69 74 68 69 6e 20 65 78 70 72 65  /b> within expre
127f0 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ssions</li>.<li>
12800 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
12810 72 20 3c 62 3e 49 4e 3c 2f 62 3e 20 61 6e 64 20  r <b>IN</b> and 
12820 3c 62 3e 42 45 54 57 45 45 4e 3c 2f 62 3e 20 6f  <b>BETWEEN</b> o
12830 70 65 72 61 74 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c  perators</li>.<l
12840 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
12850 66 6f 72 20 3c 62 3e 47 52 4f 55 50 20 42 59 3c  for <b>GROUP BY<
12860 2f 62 3e 20 61 6e 64 20 3c 62 3e 48 41 56 49 4e  /b> and <b>HAVIN
12870 47 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  G</b></li>.<li>N
12880 55 4c 4c 20 76 61 6c 75 65 73 20 61 72 65 20 6e  ULL values are n
12890 6f 77 20 72 65 70 6f 72 74 65 64 20 74 6f 20 74  ow reported to t
128a0 68 65 20 63 61 6c 6c 62 61 63 6b 20 61 73 20 61  he callback as a
128b0 20 4e 55 4c 4c 20 70 6f 69 6e 74 65 72 0a 20 20   NULL pointer.  
128c0 20 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 6e    rather than an
128d0 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 3c 2f   empty string.</
128e0 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
128f0 30 20 4a 75 6e 65 20 33 7d 20 7b 0a 3c 6c 69 3e  0 June 3} {.<li>
12900 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
12910 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73  r default values
12920 20 6f 6e 20 63 6f 6c 75 6d 6e 73 20 6f 66 20 61   on columns of a
12930 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69   table.</li>.<li
12940 3e 49 6d 70 72 6f 76 65 64 20 74 65 73 74 20 63  >Improved test c
12950 6f 76 65 72 61 67 65 2e 20 20 46 69 78 65 64 20  overage.  Fixed 
12960 61 20 66 65 77 20 6f 62 73 63 75 72 65 20 62 75  a few obscure bu
12970 67 73 20 66 6f 75 6e 64 20 62 79 20 74 68 65 0a  gs found by the.
12980 69 6d 70 72 6f 76 65 64 20 74 65 73 74 73 2e 3c  improved tests.<
12990 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
129a0 30 30 20 4a 75 6e 65 20 32 7d 20 7b 0a 3c 6c 69  00 June 2} {.<li
129b0 3e 41 6c 6c 20 64 61 74 61 62 61 73 65 20 66 69  >All database fi
129c0 6c 65 73 20 74 6f 20 62 65 20 6d 6f 64 69 66 69  les to be modifi
129d0 65 64 20 62 79 20 61 6e 20 55 50 44 41 54 45 2c  ed by an UPDATE,
129e0 20 49 4e 53 45 52 54 20 6f 72 20 44 45 4c 45 54   INSERT or DELET
129f0 45 20 61 72 65 20 0a 6e 6f 77 20 6c 6f 63 6b 65  E are .now locke
12a00 64 20 62 65 66 6f 72 65 20 61 6e 79 20 63 68 61  d before any cha
12a10 6e 67 65 73 20 61 72 65 20 6d 61 64 65 20 74 6f  nges are made to
12a20 20 61 6e 79 20 66 69 6c 65 73 2e 20 20 0a 54 68   any files.  .Th
12a30 69 73 20 6d 61 6b 65 73 20 69 74 20 73 61 66 65  is makes it safe
12a40 20 28 49 20 74 68 69 6e 6b 29 20 74 6f 20 61 63   (I think) to ac
12a50 63 65 73 73 0a 74 68 65 20 73 61 6d 65 20 64 61  cess.the same da
12a60 74 61 62 61 73 65 20 73 69 6d 75 6c 74 61 6e 65  tabase simultane
12a70 6f 75 73 6c 79 20 66 72 6f 6d 20 6d 75 6c 74 69  ously from multi
12a80 70 6c 65 20 70 72 6f 63 65 73 73 65 73 2e 3c 2f  ple processes.</
12a90 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f 64 65  li>.<li>The code
12aa0 20 61 70 70 65 61 72 73 20 73 74 61 62 6c 65 20   appears stable 
12ab0 73 6f 20 77 65 20 61 72 65 20 6e 6f 77 20 63 61  so we are now ca
12ac0 6c 6c 69 6e 67 20 69 74 20 22 62 65 74 61 22 2e  lling it "beta".
12ad0 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
12ae0 30 30 30 20 4a 75 6e 65 20 31 7d 20 7b 0a 3c 6c  000 June 1} {.<l
12af0 69 3e 42 65 74 74 65 72 20 73 75 70 70 6f 72 74  i>Better support
12b00 20 66 6f 72 20 66 69 6c 65 20 6c 6f 63 6b 69 6e   for file lockin
12b10 67 20 73 6f 20 74 68 61 74 20 74 77 6f 20 6f 72  g so that two or
12b20 20 6d 6f 72 65 20 70 72 6f 63 65 73 73 65 73 20   more processes 
12b30 0a 28 6f 72 20 74 68 72 65 61 64 73 29 0a 63 61  .(or threads).ca
12b40 6e 20 61 63 63 65 73 73 20 74 68 65 20 73 61 6d  n access the sam
12b50 65 20 64 61 74 61 62 61 73 65 20 73 69 6d 75 6c  e database simul
12b60 74 61 6e 65 6f 75 73 6c 79 2e 20 20 4d 6f 72 65  taneously.  More
12b70 20 77 6f 72 6b 20 6e 65 65 64 65 64 20 69 6e 0a   work needed in.
12b80 74 68 69 73 20 61 72 65 61 2c 20 74 68 6f 75 67  this area, thoug
12b90 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  h.</li>.}..chng 
12ba0 7b 32 30 30 30 20 4d 61 79 20 33 31 7d 20 7b 0a  {2000 May 31} {.
12bb0 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
12bc0 74 20 66 6f 72 20 61 67 67 72 65 67 61 74 65 20  t for aggregate 
12bd0 66 75 6e 63 74 69 6f 6e 73 20 28 45 78 3a 20 3c  functions (Ex: <
12be0 62 3e 43 4f 55 4e 54 28 2a 29 3c 2f 62 3e 2c 20  b>COUNT(*)</b>, 
12bf0 3c 62 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f 62 3e 29  <b>MIN(...)</b>)
12c00 0a 74 6f 20 74 68 65 20 53 45 4c 45 43 54 20 73  .to the SELECT s
12c10 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c  tatement.</li>.<
12c20 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
12c30 20 66 6f 72 20 3c 42 3e 53 45 4c 45 43 54 20 44   for <B>SELECT D
12c40 49 53 54 49 4e 43 54 20 2e 2e 2e 3c 2f 42 3e 3c  ISTINCT ...</B><
12c50 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
12c60 30 30 20 4d 61 79 20 33 30 7d 20 7b 0a 3c 6c 69  00 May 30} {.<li
12c70 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 4c 49  >Added the <b>LI
12c80 4b 45 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 2e  KE</b> operator.
12c90 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
12ca0 61 20 3c 62 3e 47 4c 4f 42 3c 2f 62 3e 20 6f 70  a <b>GLOB</b> op
12cb0 65 72 61 74 6f 72 3a 20 73 69 6d 69 6c 61 72 20  erator: similar 
12cc0 74 6f 20 3c 42 3e 4c 49 4b 45 3c 2f 42 3e 20 0a  to <B>LIKE</B> .
12cd0 62 75 74 20 69 74 20 75 73 65 73 20 55 6e 69 78  but it uses Unix
12ce0 20 73 68 65 6c 6c 20 67 6c 6f 62 62 69 6e 67 20   shell globbing 
12cf0 77 69 6c 64 63 61 72 64 73 20 69 6e 73 74 65 61  wildcards instea
12d00 64 20 6f 66 20 74 68 65 20 27 25 27 20 0a 61 6e  d of the '%' .an
12d10 64 20 27 5f 27 20 77 69 6c 64 63 61 72 64 73 20  d '_' wildcards 
12d20 6f 66 20 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69  of SQL.</li>.<li
12d30 3e 41 64 64 65 64 20 74 68 65 20 3c 42 3e 43 4f  >Added the <B>CO
12d40 50 59 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 70  PY</b> command p
12d50 61 74 74 65 72 6e 65 64 20 61 66 74 65 72 20 0a  atterned after .
12d60 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
12d70 77 77 77 2e 70 6f 73 74 67 72 65 73 71 6c 2e 6f  www.postgresql.o
12d80 72 67 2f 22 3e 50 6f 73 74 67 72 65 53 51 4c 3c  rg/">PostgreSQL<
12d90 2f 61 3e 20 73 6f 20 74 68 61 74 20 53 51 4c 69  /a> so that SQLi
12da0 74 65 0a 63 61 6e 20 6e 6f 77 20 72 65 61 64 20  te.can now read 
12db0 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68  the output of th
12dc0 65 20 3c 62 3e 70 67 5f 64 75 6d 70 3c 2f 62 3e  e <b>pg_dump</b>
12dd0 20 64 61 74 61 62 61 73 65 20 64 75 6d 70 20 75   database dump u
12de0 74 69 6c 69 74 79 0a 6f 66 20 50 6f 73 74 67 72  tility.of Postgr
12df0 65 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  eSQL.</li>.<li>A
12e00 64 64 65 64 20 61 20 3c 42 3e 56 41 43 55 55 4d  dded a <B>VACUUM
12e10 3c 2f 42 3e 20 63 6f 6d 6d 61 6e 64 20 74 68 61  </B> command tha
12e20 74 20 74 68 61 74 20 63 61 6c 6c 73 20 74 68 65  t that calls the
12e30 20 0a 3c 62 3e 67 64 62 6d 5f 72 65 6f 72 67 61   .<b>gdbm_reorga
12e40 6e 69 7a 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74  nize()</b> funct
12e50 69 6f 6e 20 6f 6e 20 74 68 65 20 75 6e 64 65 72  ion on the under
12e60 6c 79 69 6e 67 20 64 61 74 61 62 61 73 65 0a 66  lying database.f
12e70 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  iles.</li>.<li>A
12e80 6e 64 20 6d 61 6e 79 2c 20 6d 61 6e 79 20 62 75  nd many, many bu
12e90 67 20 66 69 78 65 73 2e 2e 2e 3c 2f 6c 69 3e 0a  g fixes...</li>.
12ea0 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61  }..chng {2000 Ma
12eb0 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74  y 29} {.<li>Init
12ec0 69 61 6c 20 50 75 62 6c 69 63 20 52 65 6c 65 61  ial Public Relea
12ed0 73 65 20 6f 66 20 41 6c 70 68 61 20 63 6f 64 65  se of Alpha code
12ee0 3c 2f 6c 69 3e 0a 7d 0a 0a 70 75 74 73 20 7b 0a  </li>.}..puts {.
12ef0 3c 2f 44 4c 3e 0a 7d 0a 66 6f 6f 74 65 72 20 7b  </DL>.}.footer {
12f00 24 49 64 3a 7d 0a                                $Id:}.