/ Hex Artifact Content
Login

Artifact 480f301f7945cc0348a0cc92905d37fe499eacd2:


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: 33 20 28 33 2e 35 2e 30 20 62 65 74 61 29 7d 20  3 (3.5.0 beta)} 
02e0: 7b 0a 3c 6c 69 3e 52 65 64 65 73 69 67 6e 20 74  {.<li>Redesign t
02f0: 68 65 20 4f 53 20 69 6e 74 65 72 66 61 63 65 20  he OS interface 
0300: 6c 61 79 65 72 2e 20 20 53 65 65 0a 20 20 20 20  layer.  See.    
0310: 3c 61 20 68 72 65 66 3d 22 33 34 74 6f 33 35 2e  <a href="34to35.
0320: 68 74 6d 6c 22 3e 33 34 74 6f 33 35 2e 68 74 6d  html">34to35.htm
0330: 6c 3c 2f 61 3e 20 66 6f 72 20 64 65 74 61 69 6c  l</a> for detail
0340: 73 2e 0a 20 20 20 20 3c 66 6f 6e 74 20 63 6f 6c  s..    <font col
0350: 6f 72 3d 22 72 65 64 22 3e 2a 2a 2a 20 50 6f 74  or="red">*** Pot
0360: 65 6e 74 69 61 6c 6c 79 20 69 6e 63 6f 6d 70 61  entially incompa
0370: 74 69 62 6c 65 20 63 68 61 6e 67 65 20 2a 2a 2a  tible change ***
0380: 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 54 68 65 20  </font>.<li>The 
0390: 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33 72 65  <a href="capi3re
03a0: 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f 72  f.html#sqlite3_r
03b0: 65 6c 65 61 73 65 5f 6d 65 6d 6f 72 79 22 3e 0a  elease_memory">.
03c0: 20 20 20 20 73 71 6c 69 74 65 33 5f 72 65 6c 65      sqlite3_rele
03d0: 61 73 65 5f 6d 65 6d 6f 72 79 28 29 3c 2f 61 3e  ase_memory()</a>
03e0: 2c 0a 20 20 20 20 3c 61 20 68 72 65 66 3d 22 63  ,.    <a href="c
03f0: 61 70 69 33 72 65 66 2e 68 74 6d 6c 23 73 71 6c  api3ref.html#sql
0400: 69 74 65 33 5f 73 6f 66 74 5f 68 65 61 70 5f 6c  ite3_soft_heap_l
0410: 69 6d 69 74 22 3e 0a 20 20 20 20 73 71 6c 69 74  imit">.    sqlit
0420: 65 33 5f 73 6f 66 74 5f 68 65 61 70 5f 6c 69 6d  e3_soft_heap_lim
0430: 69 74 28 29 3c 2f 61 3e 2c 0a 20 20 20 20 61 6e  it()</a>,.    an
0440: 64 20 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33  d <a href="capi3
0450: 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33  ref.html#sqlite3
0460: 5f 65 6e 61 62 6c 65 5f 73 68 61 72 65 64 5f 63  _enable_shared_c
0470: 61 63 68 65 22 3e 0a 20 20 20 20 73 71 6c 69 74  ache">.    sqlit
0480: 65 33 5f 65 6e 61 62 6c 65 5f 73 68 61 72 65 64  e3_enable_shared
0490: 5f 63 61 63 68 65 28 29 3c 2f 61 3e 20 69 6e 74  _cache()</a> int
04a0: 65 72 66 61 63 65 73 20 6e 6f 77 20 77 6f 72 6b  erfaces now work
04b0: 20 63 72 6f 73 73 20 61 6c 6c 0a 20 20 20 20 74   cross all.    t
04c0: 68 72 65 61 64 73 20 69 6e 20 74 68 65 20 70 72  hreads in the pr
04d0: 6f 63 65 73 73 2c 20 6e 6f 74 20 6a 75 73 74 20  ocess, not just 
04e0: 74 68 65 20 73 69 6e 67 6c 65 20 74 68 72 65 61  the single threa
04f0: 64 20 69 6e 20 77 68 69 63 68 20 74 68 65 79 0a  d in which they.
0500: 20 20 20 20 61 72 65 20 69 6e 76 6f 6b 65 64 2e      are invoked.
0510: 0a 20 20 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72  .    <font color
0520: 3d 22 72 65 64 22 3e 2a 2a 2a 20 50 6f 74 65 6e  ="red">*** Poten
0530: 74 69 61 6c 6c 79 20 69 6e 63 6f 6d 70 61 74 69  tially incompati
0540: 62 6c 65 20 63 68 61 6e 67 65 20 2a 2a 2a 3c 2f  ble change ***</
0550: 66 6f 6e 74 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  font>.<li>Added 
0560: 74 68 65 20 0a 20 20 20 20 3c 61 20 68 72 65 66  the .    <a href
0570: 3d 22 63 61 70 69 33 72 65 66 2e 68 74 6d 6c 23  ="capi3ref.html#
0580: 73 71 6c 69 74 65 33 5f 6f 70 65 6e 5f 76 32 22  sqlite3_open_v2"
0590: 3e 73 71 6c 69 74 65 33 5f 6f 70 65 6e 5f 76 32  >sqlite3_open_v2
05a0: 28 29 3c 2f 61 3e 0a 20 20 20 20 69 6e 74 65 72  ()</a>.    inter
05b0: 66 61 63 65 2e 20 20 0a 3c 6c 69 3e 52 65 69 6d  face.  .<li>Reim
05c0: 70 6c 65 6d 65 6e 74 65 64 20 74 68 65 20 6d 65  plemented the me
05d0: 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20  mory allocation 
05e0: 73 75 62 73 79 73 74 65 6d 20 61 6e 64 20 6d 61  subsystem and ma
05f0: 64 65 20 69 74 20 0a 20 20 20 20 72 65 70 6c 61  de it .    repla
0600: 63 61 62 6c 65 20 61 74 20 63 6f 6d 70 69 6c 65  cable at compile
0610: 2d 74 69 6d 65 2e 0a 3c 6c 69 3e 43 72 65 61 74  -time..<li>Creat
0620: 65 64 20 61 20 6e 65 77 20 6d 75 74 65 78 20 73  ed a new mutex s
0630: 75 62 73 79 73 74 65 6d 20 61 6e 64 20 6d 61 64  ubsystem and mad
0640: 65 20 69 74 20 72 65 70 6c 61 63 61 62 6c 65 20  e it replacable 
0650: 61 74 0a 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74  at.    compile-t
0660: 69 6d 65 2e 0a 3c 6c 69 3e 54 68 65 20 73 61 6d  ime..<li>The sam
0670: 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65  e database conne
0680: 63 74 69 6f 6e 20 6d 61 79 20 6e 6f 77 20 62 65  ction may now be
0690: 20 75 73 65 64 20 73 69 6d 75 6c 74 61 6e 65 6f   used simultaneo
06a0: 75 73 6c 79 20 62 79 0a 20 20 20 20 73 65 70 61  usly by.    sepa
06b0: 72 61 74 65 20 74 68 72 65 61 64 73 2e 0a 7d 0a  rate threads..}.
06c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20 41 75 67  ..chng {2007 Aug
06d0: 75 73 74 20 31 33 20 28 33 2e 34 2e 32 29 7d 20  ust 13 (3.4.2)} 
06e0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 64 61 74 61  {.<li>Fix a data
06f0: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
0700: 62 75 67 20 74 68 61 74 20 6d 69 67 68 74 20 6f  bug that might o
0710: 63 63 75 72 20 69 66 20 61 20 52 4f 4c 4c 42 41  ccur if a ROLLBA
0720: 43 4b 20 63 6f 6d 6d 61 6e 64 0a 69 73 20 65 78  CK command.is ex
0730: 65 63 75 74 65 64 20 69 6e 20 3c 61 20 68 72 65  ecuted in <a hre
0740: 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c 23 70  f="pragma.html#p
0750: 72 61 67 6d 61 5f 61 75 74 6f 5f 76 61 63 75 75  ragma_auto_vacuu
0760: 6d 22 3e 61 75 74 6f 2d 76 61 63 75 75 6d 20 6d  m">auto-vacuum m
0770: 6f 64 65 3c 2f 61 3e 0a 61 6e 64 20 61 20 76 65  ode</a>.and a ve
0780: 72 79 20 73 6d 61 6c 6c 20 3c 61 20 68 72 65 66  ry small <a href
0790: 3d 22 63 61 70 69 33 72 65 66 2e 68 74 6d 6c 23  ="capi3ref.html#
07a0: 73 71 6c 69 74 65 33 5f 73 6f 66 74 5f 68 65 61  sqlite3_soft_hea
07b0: 70 5f 6c 69 6d 69 74 22 3e 0a 73 6f 66 74 5f 68  p_limit">.soft_h
07c0: 65 61 70 5f 6c 69 6d 69 74 3c 2f 61 3e 20 69 73  eap_limit</a> is
07d0: 20 73 65 74 2e 20 0a 3c 61 20 68 72 65 66 3d 22   set. .<a href="
07e0: 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74  http://www.sqlit
07f0: 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f 74 6b  e.org/cvstrac/tk
0800: 74 76 69 65 77 3f 74 6e 3d 32 35 36 35 22 3e 54  tview?tn=2565">T
0810: 69 63 6b 65 74 20 23 32 35 36 35 3c 2f 61 3e 2e  icket #2565</a>.
0820: 0a 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62  ..<li>Add the ab
0830: 69 6c 69 74 79 20 74 6f 20 72 75 6e 20 61 20 66  ility to run a f
0840: 75 6c 6c 20 72 65 67 72 65 73 73 69 6f 6e 20 74  ull regression t
0850: 65 73 74 20 77 69 74 68 20 61 20 73 6d 61 6c 6c  est with a small
0860: 0a 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33 72  .<a href="capi3r
0870: 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f  ef.html#sqlite3_
0880: 73 6f 66 74 5f 68 65 61 70 5f 6c 69 6d 69 74 22  soft_heap_limit"
0890: 3e 73 6f 66 74 5f 68 65 61 70 5f 6c 69 6d 69 74  >soft_heap_limit
08a0: 3c 2f 61 3e 2e 0a 0a 3c 6c 69 3e 46 69 78 20 6f  </a>...<li>Fix o
08b0: 74 68 65 72 20 6d 69 6e 6f 72 20 70 72 6f 62 6c  ther minor probl
08c0: 65 6d 73 20 77 69 74 68 20 75 73 69 6e 67 20 73  ems with using s
08d0: 6d 61 6c 6c 20 73 6f 66 74 20 68 65 61 70 20 6c  mall soft heap l
08e0: 69 6d 69 74 73 2e 0a 0a 3c 6c 69 3e 57 6f 72 6b  imits...<li>Work
08f0: 2d 61 72 6f 75 6e 64 20 66 6f 72 20 0a 3c 61 20  -around for .<a 
0900: 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 67 63 63  href="http://gcc
0910: 2e 67 6e 75 2e 6f 72 67 2f 62 75 67 7a 69 6c 6c  .gnu.org/bugzill
0920: 61 2f 73 68 6f 77 5f 62 75 67 2e 63 67 69 3f 69  a/show_bug.cgi?i
0930: 64 3d 33 32 35 37 35 22 3e 47 43 43 20 62 75 67  d=32575">GCC bug
0940: 20 33 32 35 37 35 3c 2f 61 3e 2e 0a 0a 3c 6c 69   32575</a>...<li
0950: 3e 49 6d 70 72 6f 76 65 64 20 65 72 72 6f 72 20  >Improved error 
0960: 64 65 74 65 63 74 69 6f 6e 20 6f 66 20 6d 69 73  detection of mis
0970: 75 73 65 64 20 61 67 67 72 65 67 61 74 65 20 66  used aggregate f
0980: 75 6e 63 74 69 6f 6e 73 2e 0a 0a 3c 6c 69 3e 49  unctions...<li>I
0990: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74  mprovements to t
09a0: 68 65 20 61 6d 61 6c 67 61 6d 61 74 69 6f 6e 20  he amalgamation 
09b0: 67 65 6e 65 72 61 74 6f 72 20 73 63 72 69 70 74  generator script
09c0: 20 73 6f 20 74 68 61 74 20 61 6c 6c 20 73 79 6d   so that all sym
09d0: 62 6f 6c 73 0a 61 72 65 20 70 72 65 66 69 78 65  bols.are prefixe
09e0: 64 20 77 69 74 68 20 65 69 74 68 65 72 20 53 51  d with either SQ
09f0: 4c 49 54 45 5f 50 52 49 56 41 54 45 20 6f 72 20  LITE_PRIVATE or 
0a00: 53 51 4c 49 54 45 5f 41 50 49 2e 0a 7d 0a 0a 63  SQLITE_API..}..c
0a10: 68 6e 67 20 7b 32 30 30 37 20 4a 75 6c 79 20 32  hng {2007 July 2
0a20: 30 20 28 33 2e 34 2e 31 29 7d 20 7b 0a 3c 6c 69  0 (3.4.1)} {.<li
0a30: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 3c 61  >Fix a bug in <a
0a40: 20 68 72 65 66 3d 22 6c 61 6e 67 5f 76 61 63 75   href="lang_vacu
0a50: 75 6d 2e 68 74 6d 6c 22 3e 56 41 43 55 55 4d 3c  um.html">VACUUM<
0a60: 2f 61 3e 20 74 68 61 74 20 63 61 6e 20 6c 65 61  /a> that can lea
0a70: 64 20 74 6f 0a 20 20 20 20 3c 61 20 68 72 65 66  d to.    <a href
0a80: 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c  ="http://www.sql
0a90: 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f  ite.org/cvstrac/
0aa0: 77 69 6b 69 3f 70 3d 44 61 74 61 62 61 73 65 43  wiki?p=DatabaseC
0ab0: 6f 72 72 75 70 74 69 6f 6e 22 3e 0a 20 20 20 20  orruption">.    
0ac0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
0ad0: 69 6f 6e 3c 2f 61 3e 20 69 66 20 74 77 6f 0a 20  ion</a> if two. 
0ae0: 20 20 20 70 72 6f 63 65 73 73 65 73 20 61 72 65     processes are
0af0: 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 74 68   connected to th
0b00: 65 20 64 61 74 61 62 61 73 65 20 61 74 20 74 68  e database at th
0b10: 65 20 73 61 6d 65 20 74 69 6d 65 20 61 6e 64 20  e same time and 
0b20: 6f 6e 65 0a 20 20 20 20 56 41 43 55 55 4d 73 20  one.    VACUUMs 
0b30: 74 68 65 6e 20 74 68 65 20 6f 74 68 65 72 20 74  then the other t
0b40: 68 65 6e 20 6d 6f 64 69 66 69 65 73 20 74 68 65  hen modifies the
0b50: 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a   database.</li>.
0b60: 3c 6c 69 3e 54 68 65 20 65 78 70 72 65 73 73 69  <li>The expressi
0b70: 6f 6e 20 22 2b 63 6f 6c 75 6d 6e 22 20 69 73 20  on "+column" is 
0b80: 6e 6f 77 20 63 6f 6e 73 69 64 65 72 65 64 20 74  now considered t
0b90: 68 65 20 73 61 6d 65 20 61 73 20 22 63 6f 6c 75  he same as "colu
0ba0: 6d 6e 22 0a 20 20 20 20 77 68 65 6e 20 63 6f 6d  mn".    when com
0bb0: 70 75 74 69 6e 67 20 74 68 65 20 63 6f 6c 6c 61  puting the colla
0bc0: 74 69 6e 67 20 73 65 71 75 65 6e 63 65 20 74 6f  ting sequence to
0bd0: 20 75 73 65 20 6f 6e 20 74 68 65 20 65 78 70 72   use on the expr
0be0: 65 73 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ession.</li>.<li
0bf0: 3e 49 6e 20 74 68 65 20 3c 61 20 68 72 65 66 3d  >In the <a href=
0c00: 22 74 63 6c 73 71 6c 69 74 65 2e 68 74 6d 6c 22  "tclsqlite.html"
0c10: 3e 54 43 4c 20 6c 61 6e 67 75 61 67 65 20 69 6e  >TCL language in
0c20: 74 65 72 66 61 63 65 3c 2f 61 3e 2c 0a 20 20 20  terface</a>,.   
0c30: 22 40 76 61 72 69 61 62 6c 65 22 20 69 6e 73 74  "@variable" inst
0c40: 65 61 64 20 6f 66 20 22 24 76 61 72 69 61 62 6c  ead of "$variabl
0c50: 65 22 20 61 6c 77 61 79 73 20 62 69 6e 64 73 20  e" always binds 
0c60: 61 73 20 61 20 62 6c 6f 62 2e 3c 2f 6c 69 3e 0a  as a blob.</li>.
0c70: 3c 6c 69 3e 41 64 64 65 64 20 3c 61 20 68 72 65  <li>Added <a hre
0c80: 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c 23 70  f="pragma.html#p
0c90: 72 61 67 6d 61 5f 66 72 65 65 6c 69 73 74 5f 63  ragma_freelist_c
0ca0: 6f 75 6e 74 22 3e 50 52 41 47 4d 41 20 66 72 65  ount">PRAGMA fre
0cb0: 65 6c 69 73 74 5f 63 6f 75 6e 74 3c 2f 61 3e 0a  elist_count</a>.
0cc0: 20 20 20 20 66 6f 72 20 64 65 74 65 72 6d 69 6e      for determin
0cd0: 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20  ing the current 
0ce0: 73 69 7a 65 20 6f 66 20 74 68 65 20 66 72 65 65  size of the free
0cf0: 6c 69 73 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  list.</li>.<li>T
0d00: 68 65 20 3c 61 20 68 72 65 66 3d 22 70 72 61 67  he <a href="prag
0d10: 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f 61  ma.html#pragma_a
0d20: 75 74 6f 5f 76 61 63 75 75 6d 22 3e 0a 20 20 20  uto_vacuum">.   
0d30: 20 50 52 41 47 4d 41 20 61 75 74 6f 5f 76 61 63   PRAGMA auto_vac
0d40: 75 75 6d 3d 69 6e 63 72 65 6d 65 6e 74 61 6c 3c  uum=incremental<
0d50: 2f 61 3e 20 73 65 74 74 69 6e 67 20 69 73 20 6e  /a> setting is n
0d60: 6f 77 20 70 65 72 73 69 73 74 65 6e 74 2e 3c 2f  ow persistent.</
0d70: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 46 44 5f 43  li>.<li>Add FD_C
0d80: 4c 4f 45 58 45 43 20 74 6f 20 61 6c 6c 20 6f 70  LOEXEC to all op
0d90: 65 6e 20 66 69 6c 65 73 20 75 6e 64 65 72 20 75  en files under u
0da0: 6e 69 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  nix.</li>.<li>Fi
0db0: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 3c  x a bug in the <
0dc0: 61 20 68 72 65 66 3d 22 6f 70 74 6f 76 65 72 76  a href="optoverv
0dd0: 69 65 77 2e 68 74 6d 6c 23 6d 69 6e 6d 61 78 22  iew.html#minmax"
0de0: 3e 0a 20 20 20 20 6d 69 6e 28 29 2f 6d 61 78 28  >.    min()/max(
0df0: 29 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f  ) optimization</
0e00: 61 3e 20 77 68 65 6e 20 61 70 70 6c 69 65 64 20  a> when applied 
0e10: 74 6f 0a 20 20 20 20 64 65 73 63 65 6e 64 69 6e  to.    descendin
0e20: 67 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a  g indices.</li>.
0e30: 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 74 68  <li>Make sure th
0e40: 65 20 54 43 4c 20 6c 61 6e 67 75 61 67 65 20 69  e TCL language i
0e50: 6e 74 65 72 66 61 63 65 20 77 6f 72 6b 73 20 63  nterface works c
0e60: 6f 72 72 65 63 74 6c 79 20 77 69 74 68 20 36 34  orrectly with 64
0e70: 2d 62 69 74 0a 20 20 20 20 69 6e 74 65 67 65 72  -bit.    integer
0e80: 73 20 6f 6e 20 36 34 2d 62 69 74 20 6d 61 63 68  s on 64-bit mach
0e90: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ines.</li>.<li>A
0ea0: 6c 6c 6f 77 20 74 68 65 20 76 61 6c 75 65 20 2d  llow the value -
0eb0: 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35  9223372036854775
0ec0: 38 30 38 20 61 73 20 61 6e 20 69 6e 74 65 67 65  808 as an intege
0ed0: 72 20 6c 69 74 65 72 61 6c 20 69 6e 20 53 51 4c  r literal in SQL
0ee0: 0a 20 20 20 20 73 74 61 74 65 6d 65 6e 74 73 2e  .    statements.
0ef0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68  </li>.<li>Add th
0f00: 65 20 63 61 70 61 62 69 6c 69 74 79 20 6f 66 20  e capability of 
0f10: 22 68 69 64 64 65 6e 22 20 63 6f 6c 75 6d 6e 73  "hidden" columns
0f20: 20 69 6e 20 76 69 72 74 75 61 6c 20 74 61 62 6c   in virtual tabl
0f30: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65  es.</li>.<li>Use
0f40: 20 74 68 65 20 6d 61 63 72 6f 20 53 51 4c 49 54   the macro SQLIT
0f50: 45 5f 50 52 49 56 41 54 45 20 28 64 65 66 61 75  E_PRIVATE (defau
0f60: 6c 74 69 6e 67 20 74 6f 20 22 73 74 61 74 69 63  lting to "static
0f70: 22 29 20 6f 6e 20 61 6c 6c 0a 20 20 20 20 69 6e  ") on all.    in
0f80: 74 65 72 6e 61 6c 20 66 75 6e 63 74 69 6f 6e 73  ternal functions
0f90: 20 69 6e 20 74 68 65 20 61 6d 61 6c 67 61 6d 61   in the amalgama
0fa0: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  tion.</li>.<li>A
0fb0: 64 64 20 70 6c 75 67 67 61 62 6c 65 20 74 6f 6b  dd pluggable tok
0fc0: 65 6e 69 7a 65 72 73 20 61 6e 64 20 3c 61 20 68  enizers and <a h
0fd0: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e  ref="http://www.
0fe0: 69 63 75 2d 70 72 6f 6a 65 63 74 2e 6f 72 67 2f  icu-project.org/
0ff0: 22 3e 49 43 55 3c 2f 61 3e 0a 20 20 20 20 74 6f  ">ICU</a>.    to
1000: 6b 65 6e 69 7a 61 74 69 6f 6e 20 73 75 70 70 6f  kenization suppo
1010: 72 74 20 74 6f 20 46 54 53 32 3c 2f 6c 69 3e 0a  rt to FTS2</li>.
1020: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
1030: 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 64 6f  bug fixes and do
1040: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 65 6e 68 61  cumentation enha
1050: 6e 63 65 6d 65 6e 74 73 3c 2f 6c 69 3e 0a 7d 0a  ncements</li>.}.
1060: 0a 63 68 6e 67 20 7b 32 30 30 37 20 4a 75 6e 65  .chng {2007 June
1070: 20 31 38 20 28 33 2e 34 2e 30 29 7d 20 7b 0a 3c   18 (3.4.0)} {.<
1080: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
1090: 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61  t can lead to da
10a0: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
10b0: 6e 20 69 66 20 61 6e 20 53 51 4c 49 54 45 5f 42  n if an SQLITE_B
10c0: 55 53 59 20 65 72 72 6f 72 0a 20 20 20 20 6f 63  USY error.    oc
10d0: 63 75 72 73 20 69 6e 20 74 68 65 20 6d 69 64 64  curs in the midd
10e0: 6c 65 20 6f 66 20 61 6e 20 65 78 70 6c 69 63 69  le of an explici
10f0: 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 6e  t transaction an
1100: 64 20 74 68 61 74 20 74 72 61 6e 73 61 63 74 69  d that transacti
1110: 6f 6e 0a 20 20 20 20 69 73 20 6c 61 74 65 72 20  on.    is later 
1120: 63 6f 6d 6d 69 74 74 65 64 2e 20 20 0a 20 20 20  committed.  .   
1130: 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f   <a href="http:/
1140: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
1150: 63 76 73 74 72 61 63 2f 74 6b 74 76 69 65 77 3f  cvstrac/tktview?
1160: 74 6e 3d 32 34 30 39 22 3e 54 69 63 6b 65 74 20  tn=2409">Ticket 
1170: 23 32 34 30 39 2e 3c 2f 61 3e 0a 20 20 20 20 53  #2409.</a>.    S
1180: 65 65 20 74 68 65 0a 20 20 20 20 3c 61 20 68 72  ee the.    <a hr
1190: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73  ef="http://www.s
11a0: 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61  qlite.org/cvstra
11b0: 63 2f 77 69 6b 69 3f 70 3d 43 6f 72 72 75 70 74  c/wiki?p=Corrupt
11c0: 69 6f 6e 46 6f 6c 6c 6f 77 69 6e 67 42 75 73 79  ionFollowingBusy
11d0: 45 72 72 6f 72 22 3e 0a 20 20 20 20 43 6f 72 72  Error">.    Corr
11e0: 75 70 74 69 6f 6e 46 6f 6c 6c 6f 77 69 6e 67 42  uptionFollowingB
11f0: 75 73 79 45 72 72 6f 72 3c 2f 61 3e 20 77 69 6b  usyError</a> wik
1200: 69 20 70 61 67 65 20 66 6f 72 20 64 65 74 61 69  i page for detai
1210: 6c 73 2e 3c 2f 69 3e 0a 3c 6c 69 3e 46 69 78 20  ls.</i>.<li>Fix 
1220: 61 20 62 75 67 20 74 68 61 74 20 63 61 6e 20 6c  a bug that can l
1230: 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65 20  ead to database 
1240: 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 61 75  corruption if au
1250: 74 6f 76 61 63 75 75 6d 20 6d 6f 64 65 20 69 73  tovacuum mode is
1260: 0a 20 20 20 20 6f 6e 20 61 6e 64 20 61 20 6d 61  .    on and a ma
1270: 6c 6c 6f 63 28 29 20 66 61 69 6c 75 72 65 20 66  lloc() failure f
1280: 6f 6c 6c 6f 77 73 20 61 20 43 52 45 41 54 45 20  ollows a CREATE 
1290: 54 41 42 4c 45 20 6f 72 20 43 52 45 41 54 45 20  TABLE or CREATE 
12a0: 49 4e 44 45 58 20 73 74 61 74 65 6d 65 6e 74 0a  INDEX statement.
12b0: 20 20 20 20 77 68 69 63 68 20 69 74 73 65 6c 66      which itself
12c0: 20 66 6f 6c 6c 6f 77 73 20 61 20 63 61 63 68 65   follows a cache
12d0: 20 6f 76 65 72 66 6c 6f 77 20 69 6e 73 69 64 65   overflow inside
12e0: 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 20   a transaction. 
12f0: 20 53 65 65 0a 20 20 20 20 3c 61 20 68 72 65 66   See.    <a href
1300: 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c  ="http://www.sql
1310: 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f  ite.org/cvstrac/
1320: 74 6b 74 76 69 65 77 3f 74 6e 3d 32 34 31 38 22  tktview?tn=2418"
1330: 3e 74 69 63 6b 65 74 20 23 32 34 31 38 3c 2f 61  >ticket #2418</a
1340: 3e 2e 20 0a 20 20 20 20 3c 2f 6c 69 3e 0a 3c 6c  >. .    </li>.<l
1350: 69 3e 41 64 64 65 64 20 65 78 70 6c 69 63 69 74  i>Added explicit
1360: 20 3c 61 20 68 72 65 66 3d 22 6c 69 6d 69 74 73   <a href="limits
1370: 2e 68 74 6d 6c 22 3e 75 70 70 65 72 20 62 6f 75  .html">upper bou
1380: 6e 64 73 3c 2f 61 3e 20 6f 6e 20 74 68 65 20 73  nds</a> on the s
1390: 69 7a 65 73 20 61 6e 64 0a 20 20 20 20 71 75 61  izes and.    qua
13a0: 6e 74 69 74 69 65 73 20 6f 66 20 74 68 69 6e 67  ntities of thing
13b0: 73 20 53 51 4c 69 74 65 20 63 61 6e 20 70 72 6f  s SQLite can pro
13c0: 63 65 73 73 2e 20 20 54 68 69 73 20 63 68 61 6e  cess.  This chan
13d0: 67 65 20 6d 69 67 68 74 20 63 61 75 73 65 0a 20  ge might cause. 
13e0: 20 20 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79     compatibility
13f0: 20 70 72 6f 62 6c 65 6d 73 20 66 6f 72 0a 20 20   problems for.  
1400: 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 74    applications t
1410: 68 61 74 20 75 73 65 20 53 51 4c 69 74 65 20 69  hat use SQLite i
1420: 6e 20 74 68 65 20 65 78 74 72 65 6d 65 2c 20 77  n the extreme, w
1430: 68 69 63 68 20 69 73 20 77 68 79 20 74 68 65 20  hich is why the 
1440: 63 75 72 72 65 6e 74 0a 20 20 20 20 72 65 6c 65  current.    rele
1450: 61 73 65 20 69 73 20 33 2e 34 2e 30 20 69 6e 73  ase is 3.4.0 ins
1460: 74 65 61 64 20 6f 66 20 33 2e 33 2e 31 38 2e 3c  tead of 3.3.18.<
1470: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
1480: 75 70 70 6f 72 74 20 66 6f 72 20 3c 61 20 68 72  upport for <a hr
1490: 65 66 3d 22 63 61 70 69 33 72 65 66 2e 68 74 6d  ef="capi3ref.htm
14a0: 6c 23 73 71 6c 69 74 65 33 5f 62 6c 6f 62 5f 6f  l#sqlite3_blob_o
14b0: 70 65 6e 22 3e 0a 20 20 20 20 49 6e 63 72 65 6d  pen">.    Increm
14c0: 65 6e 74 61 6c 20 42 4c 4f 42 20 49 2f 4f 3c 2f  ental BLOB I/O</
14d0: 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  a>.</li>.<li>Add
14e0: 65 64 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22  ed the <a href="
14f0: 63 61 70 69 33 72 65 66 2e 68 74 6d 6c 23 73 71  capi3ref.html#sq
1500: 6c 69 74 65 33 5f 62 69 6e 64 5f 7a 65 72 6f 62  lite3_bind_zerob
1510: 6c 6f 62 22 3e 7a 65 72 6f 62 6c 6f 62 20 41 50  lob">zeroblob AP
1520: 49 3c 2f 61 3e 0a 20 20 20 20 61 6e 64 20 74 68  I</a>.    and th
1530: 65 20 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f  e <a href="lang_
1540: 65 78 70 72 2e 68 74 6d 6c 23 7a 65 72 6f 62 6c  expr.html#zerobl
1550: 6f 62 22 3e 7a 65 72 6f 62 6c 6f 62 28 29 3c 2f  ob">zeroblob()</
1560: 61 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e  a> SQL function.
1570: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
1580: 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 61 20 68  support for <a h
1590: 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c  ref="pragma.html
15a0: 23 70 72 61 67 6d 61 5f 69 6e 63 72 65 6d 65 6e  #pragma_incremen
15b0: 74 61 6c 5f 76 61 63 75 75 6d 22 3e 0a 20 20 20  tal_vacuum">.   
15c0: 20 49 6e 63 72 65 6d 65 6e 74 61 6c 20 56 61 63   Incremental Vac
15d0: 75 75 6d 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c  uum</a>.</li>.<l
15e0: 69 3e 41 64 64 65 64 20 74 68 65 20 53 51 4c 49  i>Added the SQLI
15f0: 54 45 5f 4d 49 58 45 44 5f 45 4e 44 49 41 4e 5f  TE_MIXED_ENDIAN_
1600: 36 34 42 49 54 5f 46 4c 4f 41 54 20 63 6f 6d 70  64BIT_FLOAT comp
1610: 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20  ile-time option 
1620: 74 6f 20 73 75 70 70 70 6f 72 74 0a 20 20 20 20  to suppport.    
1630: 41 52 4d 37 20 70 72 6f 63 65 73 73 6f 72 73 20  ARM7 processors 
1640: 77 69 74 68 20 67 6f 6f 66 79 20 65 6e 64 69 61  with goofy endia
1650: 6e 6e 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nness.</li>.<li>
1660: 52 65 6d 6f 76 65 64 20 61 6c 6c 20 69 6e 73 74  Removed all inst
1670: 61 6e 63 65 73 20 6f 66 20 73 70 72 69 6e 74 66  ances of sprintf
1680: 28 29 20 61 6e 64 20 73 74 72 63 70 79 28 29 20  () and strcpy() 
1690: 66 72 6f 6d 20 74 68 65 20 63 6f 72 65 20 6c 69  from the core li
16a0: 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  brary.</li>.<li>
16b0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
16c0: 72 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a  r <a href="http:
16d0: 2f 2f 77 77 77 2e 69 63 75 2d 70 72 6f 6a 65 63  //www.icu-projec
16e0: 74 2e 6f 72 67 2f 22 3e 0a 20 20 20 20 49 6e 74  t.org/">.    Int
16f0: 65 72 6e 61 74 69 6f 6e 61 6c 20 43 6f 6d 70 6f  ernational Compo
1700: 6e 65 6e 74 73 20 66 6f 72 20 55 6e 69 63 6f 64  nents for Unicod
1710: 65 20 28 49 43 55 29 3c 2f 61 3e 20 74 6f 20 74  e (ICU)</a> to t
1720: 68 65 20 66 75 6c 6c 2d 74 65 78 74 20 73 65 61  he full-text sea
1730: 72 63 68 0a 20 20 20 20 65 78 74 65 6e 73 69 6f  rch.    extensio
1740: 6e 73 2e 0a 3c 2f 75 6c 3e 3c 70 3e 0a 3c 75 6c  ns..</ul><p>.<ul
1750: 20 74 79 70 65 3d 22 63 69 72 63 6c 65 22 3e 0a   type="circle">.
1760: 3c 6c 69 3e 49 6e 20 74 68 65 20 77 69 6e 64 6f  <li>In the windo
1770: 77 73 20 4f 53 20 64 72 69 76 65 72 2c 20 72 65  ws OS driver, re
1780: 61 63 71 75 69 72 65 20 61 20 53 48 41 52 45 44  acquire a SHARED
1790: 20 6c 6f 63 6b 20 69 66 20 61 6e 20 61 74 74 65   lock if an atte
17a0: 6d 70 74 20 74 6f 0a 20 20 20 20 61 63 71 75 69  mpt to.    acqui
17b0: 72 65 20 61 6e 20 45 58 43 4c 55 53 49 56 45 20  re an EXCLUSIVE 
17c0: 6c 6f 63 6b 20 66 61 69 6c 73 2e 20 20 54 69 63  lock fails.  Tic
17d0: 6b 65 74 20 23 32 33 35 34 3c 2f 6c 69 3e 0a 3c  ket #2354</li>.<
17e0: 6c 69 3e 46 69 78 20 74 68 65 20 52 45 50 4c 41  li>Fix the REPLA
17f0: 43 45 28 29 20 66 75 6e 63 74 69 6f 6e 20 73 6f  CE() function so
1800: 20 74 68 61 74 20 69 74 20 72 65 74 75 72 6e 73   that it returns
1810: 20 4e 55 4c 4c 20 69 66 20 74 68 65 20 73 65 63   NULL if the sec
1820: 6f 6e 64 20 61 72 67 75 6d 65 6e 74 0a 20 20 20  ond argument.   
1830: 20 69 73 20 61 6e 20 65 6d 70 74 79 20 73 74 72   is an empty str
1840: 69 6e 67 2e 20 20 54 69 63 6b 65 74 20 23 32 33  ing.  Ticket #23
1850: 32 34 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  24.</li>.<li>Doc
1860: 75 6d 65 6e 74 20 74 68 65 20 68 61 7a 61 72 64  ument the hazard
1870: 73 20 6f 66 20 74 79 70 65 20 63 6f 76 65 72 73  s of type covers
1880: 69 6f 6e 73 20 69 6e 0a 20 20 20 20 3c 61 20 68  ions in.    <a h
1890: 72 65 66 3d 22 63 61 70 69 33 72 65 66 2e 68 74  ref="capi3ref.ht
18a0: 6d 6c 23 73 71 6c 69 74 65 33 5f 63 6f 6c 75 6d  ml#sqlite3_colum
18b0: 6e 5f 62 6c 6f 62 22 3e 73 71 6c 69 74 65 33 5f  n_blob">sqlite3_
18c0: 63 6f 6c 75 6d 6e 5f 62 6c 6f 62 28 29 3c 2f 61  column_blob()</a
18d0: 3e 0a 20 20 20 20 61 6e 64 20 72 65 6c 61 74 65  >.    and relate
18e0: 64 20 41 50 49 73 2e 20 20 46 69 78 20 75 6e 6e  d APIs.  Fix unn
18f0: 65 63 65 73 73 61 72 79 20 74 79 70 65 20 63 6f  ecessary type co
1900: 6e 76 65 72 73 69 6f 6e 73 2e 20 20 54 69 63 6b  nversions.  Tick
1910: 65 74 20 23 32 33 32 31 2e 3c 2f 6c 69 3e 0a 3c  et #2321.</li>.<
1920: 6c 69 3e 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c  li>International
1930: 69 7a 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 54  ization of the T
1940: 52 49 4d 28 29 20 66 75 6e 63 74 69 6f 6e 2e 20  RIM() function. 
1950: 20 54 69 63 6b 65 74 20 23 32 33 32 33 3c 2f 6c   Ticket #2323</l
1960: 69 3e 0a 3c 6c 69 3e 55 73 65 20 6d 65 6d 6d 6f  i>.<li>Use memmo
1970: 76 65 28 29 20 69 6e 73 74 65 61 64 20 6f 66 20  ve() instead of 
1980: 6d 65 6d 63 70 79 28 29 20 77 68 65 6e 20 6d 6f  memcpy() when mo
1990: 76 69 6e 67 20 62 65 74 77 65 65 6e 20 6d 65 6d  ving between mem
19a0: 6f 72 79 20 72 65 67 69 6f 6e 73 0a 20 20 20 20  ory regions.    
19b0: 74 68 61 74 20 6d 69 67 68 74 20 6f 76 65 72 6c  that might overl
19c0: 61 70 2e 20 20 54 69 63 6b 65 74 20 23 32 33 33  ap.  Ticket #233
19d0: 34 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  4</li>.<li>Fix a
19e0: 6e 20 6f 70 74 69 6d 69 7a 65 72 20 62 75 67 20  n optimizer bug 
19f0: 69 6e 76 6f 6c 76 69 6e 67 20 73 75 62 71 75 65  involving subque
1a00: 72 69 65 73 20 69 6e 20 61 20 63 6f 6d 70 6f 75  ries in a compou
1a10: 6e 64 20 53 45 4c 45 43 54 20 74 68 61 74 20 68  nd SELECT that h
1a20: 61 73 0a 20 20 20 20 62 6f 74 68 20 61 6e 20 4f  as.    both an O
1a30: 52 44 45 52 20 42 59 20 61 6e 64 20 61 20 4c 49  RDER BY and a LI
1a40: 4d 49 54 20 63 6c 61 75 73 65 2e 20 20 54 69 63  MIT clause.  Tic
1a50: 6b 65 74 20 23 32 33 33 39 2e 3c 2f 6c 69 3e 0a  ket #2339.</li>.
1a60: 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 74 68  <li>Make sure th
1a70: 65 20 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33  e <a href="capi3
1a80: 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33  ref.html#sqlite3
1a90: 5f 73 6e 70 72 69 6e 74 66 22 3e 73 71 6c 69 74  _snprintf">sqlit
1aa0: 65 33 5f 73 6e 70 72 69 6e 74 66 28 29 0a 20 20  e3_snprintf().  
1ab0: 20 20 3c 2f 61 3e 20 69 6e 74 65 72 66 61 63 65    </a> interface
1ac0: 20 64 6f 65 73 20 6e 6f 74 20 7a 65 72 6f 2d 74   does not zero-t
1ad0: 65 72 6d 69 6e 61 74 65 20 74 68 65 20 62 75 66  erminate the buf
1ae0: 66 65 72 20 69 66 20 74 68 65 20 62 75 66 66 65  fer if the buffe
1af0: 72 20 73 69 7a 65 20 69 73 0a 20 20 20 20 6c 65  r size is.    le
1b00: 73 73 20 74 68 61 6e 20 31 2e 20 20 54 69 63 6b  ss than 1.  Tick
1b10: 65 74 20 23 32 33 34 31 3c 2f 6c 69 3e 0a 3c 6c  et #2341</li>.<l
1b20: 69 3e 46 69 78 20 74 68 65 20 62 75 69 6c 74 2d  i>Fix the built-
1b30: 69 6e 20 70 72 69 6e 74 66 20 6c 6f 67 69 63 20  in printf logic 
1b40: 73 6f 20 74 68 61 74 20 69 74 20 70 72 69 6e 74  so that it print
1b50: 73 20 22 4e 61 4e 22 20 6e 6f 74 20 22 49 6e 66  s "NaN" not "Inf
1b60: 22 20 66 6f 72 0a 20 20 20 20 66 6c 6f 61 74 69  " for.    floati
1b70: 6e 67 2d 70 6f 69 6e 74 20 4e 61 4e 73 2e 20 20  ng-point NaNs.  
1b80: 54 69 63 6b 65 74 20 23 32 33 34 35 3c 2f 6c 69  Ticket #2345</li
1b90: 3e 0a 3c 6c 69 3e 57 68 65 6e 20 63 6f 6e 76 65  >.<li>When conve
1ba0: 72 74 69 6e 67 20 42 4c 4f 42 20 74 6f 20 54 45  rting BLOB to TE
1bb0: 58 54 2c 20 75 73 65 20 74 68 65 20 74 65 78 74  XT, use the text
1bc0: 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20 74 68 65   encoding of the
1bd0: 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65 2e 0a   main database..
1be0: 20 20 20 20 54 69 63 6b 65 74 20 23 32 33 34 39      Ticket #2349
1bf0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4b 65 65 70 20 74  </li>.<li>Keep t
1c00: 68 65 20 66 75 6c 6c 20 70 72 65 63 69 73 69 6f  he full precisio
1c10: 6e 20 6f 66 20 69 6e 74 65 67 65 72 73 20 28 69  n of integers (i
1c20: 66 20 70 6f 73 73 69 62 6c 65 29 20 77 68 65 6e  f possible) when
1c30: 20 63 61 73 74 69 6e 67 20 74 6f 0a 20 20 20 20   casting to.    
1c40: 4e 55 4d 45 52 49 43 2e 20 20 54 69 63 6b 65 74  NUMERIC.  Ticket
1c50: 20 23 32 33 36 34 3c 2f 6c 69 3e 0a 3c 6c 69 3e   #2364</li>.<li>
1c60: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
1c70: 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 55 54 46   handling of UTF
1c80: 31 36 20 63 6f 64 65 70 6f 69 6e 74 20 30 78 45  16 codepoint 0xE
1c90: 30 30 30 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e  000</li>.<li>Con
1ca0: 73 69 64 65 72 20 65 78 70 6c 69 63 69 74 20 63  sider explicit c
1cb0: 6f 6c 6c 61 74 65 20 63 6c 61 75 73 65 73 20 77  ollate clauses w
1cc0: 68 65 6e 20 6d 61 74 63 68 69 6e 67 20 57 48 45  hen matching WHE
1cd0: 52 45 20 63 6f 6e 73 74 72 61 69 6e 74 73 0a 20  RE constraints. 
1ce0: 20 20 20 74 6f 20 69 6e 64 69 63 65 73 20 69 6e     to indices in
1cf0: 20 74 68 65 20 71 75 65 72 79 20 6f 70 74 69 6d   the query optim
1d00: 69 7a 65 72 2e 20 20 54 69 63 6b 65 74 20 23 32  izer.  Ticket #2
1d10: 33 39 31 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  391</li>.<li>Fix
1d20: 20 74 68 65 20 71 75 65 72 79 20 6f 70 74 69 6d   the query optim
1d30: 69 7a 65 72 20 74 6f 20 63 6f 72 72 65 63 74 6c  izer to correctl
1d40: 79 20 68 61 6e 64 6c 65 20 63 6f 6e 73 74 61 6e  y handle constan
1d50: 74 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e  t expressions in
1d60: 20 0a 20 20 20 20 74 68 65 20 4f 4e 20 63 6c 61   .    the ON cla
1d70: 75 73 65 20 6f 66 20 61 20 4c 45 46 54 20 4a 4f  use of a LEFT JO
1d80: 49 4e 2e 20 20 54 69 63 6b 65 74 20 23 32 34 30  IN.  Ticket #240
1d90: 33 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74  3</li>.<li>Fix t
1da0: 68 65 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a  he query optimiz
1db0: 65 72 20 74 6f 20 68 61 6e 64 6c 65 20 72 6f 77  er to handle row
1dc0: 69 64 20 63 6f 6d 70 61 72 69 73 69 6f 6e 73 20  id comparisions 
1dd0: 74 6f 20 4e 55 4c 4c 0a 20 20 20 20 63 6f 72 72  to NULL.    corr
1de0: 65 63 74 6c 79 2e 20 20 54 69 63 6b 65 74 20 23  ectly.  Ticket #
1df0: 32 34 30 34 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  2404</li>.<li>Fi
1e00: 78 20 6d 61 6e 79 20 70 6f 74 65 6e 74 61 6c 20  x many potental 
1e10: 73 65 67 66 61 75 6c 74 73 20 74 68 61 74 20 63  segfaults that c
1e20: 6f 75 6c 64 20 62 65 20 63 61 75 73 65 64 20 62  ould be caused b
1e30: 79 20 6d 61 6c 69 63 69 6f 75 73 20 53 51 4c 0a  y malicious SQL.
1e40: 20 20 20 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c      statements.<
1e50: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
1e60: 30 37 20 41 70 72 69 6c 20 32 35 20 28 33 2e 33  07 April 25 (3.3
1e70: 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e 57 68 65 6e  .17)} {.<li>When
1e80: 20 74 68 65 20 22 77 72 69 74 65 5f 76 65 72 73   the "write_vers
1e90: 69 6f 6e 22 20 76 61 6c 75 65 20 6f 66 20 74 68  ion" value of th
1ea0: 65 20 64 61 74 61 62 61 73 65 20 68 65 61 64 65  e database heade
1eb0: 72 20 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e  r is larger than
1ec0: 0a 20 20 20 20 77 68 61 74 20 74 68 65 20 6c 69  .    what the li
1ed0: 62 72 61 72 79 20 75 6e 64 65 72 73 74 61 6e 64  brary understand
1ee0: 73 2c 20 6d 61 6b 65 20 74 68 65 20 64 61 74 61  s, make the data
1ef0: 62 61 73 65 20 72 65 61 64 2d 6f 6e 6c 79 20 69  base read-only i
1f00: 6e 73 74 65 61 64 20 6f 66 0a 20 20 20 20 75 6e  nstead of.    un
1f10: 72 65 61 64 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c  readable.</li>.<
1f20: 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62  li>Other minor b
1f30: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
1f40: 0a 63 68 6e 67 20 7b 32 30 30 37 20 41 70 72 69  .chng {2007 Apri
1f50: 6c 20 31 38 20 28 33 2e 33 2e 31 36 29 7d 20 7b  l 18 (3.3.16)} {
1f60: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
1f70: 68 61 74 20 63 61 75 73 65 64 20 56 41 43 55 55  hat caused VACUU
1f80: 4d 20 74 6f 20 66 61 69 6c 20 69 66 20 4e 55 4c  M to fail if NUL
1f90: 4c 73 20 61 70 70 65 61 72 65 64 20 69 6e 20 61  Ls appeared in a
1fa0: 0a 20 20 20 20 55 4e 49 51 55 45 20 63 6f 6c 75  .    UNIQUE colu
1fb0: 6d 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 69  mn.</li>.<li>Rei
1fc0: 6e 73 74 61 74 65 20 70 65 72 66 6f 72 6d 61 6e  nstate performan
1fd0: 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20  ce improvements 
1fe0: 74 68 61 74 20 77 65 72 65 20 61 64 64 65 64 20  that were added 
1ff0: 69 6e 20 33 2e 33 2e 31 34 0a 20 20 20 20 62 75  in 3.3.14.    bu
2000: 74 20 72 65 67 72 65 73 73 65 64 20 69 6e 20 33  t regressed in 3
2010: 2e 33 2e 31 35 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  .3.15.</li>.<li>
2020: 46 69 78 20 70 72 6f 62 6c 65 6d 73 20 77 69 74  Fix problems wit
2030: 68 20 74 68 65 20 68 61 6e 64 6c 69 6e 67 20 6f  h the handling o
2040: 66 20 4f 52 44 45 52 20 42 59 20 65 78 70 72 65  f ORDER BY expre
2050: 73 73 69 6f 6e 73 20 6f 6e 0a 20 20 20 20 63 6f  ssions on.    co
2060: 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 73 74  mpound SELECT st
2070: 61 74 65 6d 65 6e 74 73 20 69 6e 20 73 75 62 71  atements in subq
2080: 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ueries.</li>.<li
2090: 3e 46 69 78 20 61 20 70 6f 74 65 6e 74 69 61 6c  >Fix a potential
20a0: 20 73 65 67 66 61 75 6c 74 20 77 68 65 6e 20 64   segfault when d
20b0: 65 73 74 72 6f 79 69 6e 67 20 6c 6f 63 6b 73 20  estroying locks 
20c0: 6f 6e 20 57 69 6e 43 45 20 69 6e 0a 20 20 20 20  on WinCE in.    
20d0: 61 20 6d 75 6c 74 69 2d 74 68 72 65 61 64 65 64  a multi-threaded
20e0: 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 3c 2f 6c   environment.</l
20f0: 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61  i>.<li>Documenta
2100: 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c  tion updates.</l
2110: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 37  i>.}..chng {2007
2120: 20 41 70 72 69 6c 20 39 20 28 33 2e 33 2e 31 35   April 9 (3.3.15
2130: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
2140: 75 67 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e  ug introduced in
2150: 20 33 2e 33 2e 31 34 20 74 68 61 74 20 63 61 75   3.3.14 that cau
2160: 73 65 64 20 61 20 72 6f 6c 6c 62 61 63 6b 20 6f  sed a rollback o
2170: 66 0a 20 20 20 20 43 52 45 41 54 45 20 54 45 4d  f.    CREATE TEM
2180: 50 20 54 41 42 4c 45 20 74 6f 20 6c 65 61 76 65  P TABLE to leave
2190: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 63 6f   the database co
21a0: 6e 6e 65 63 74 69 6f 6e 20 77 65 64 67 65 64 2e  nnection wedged.
21b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
21c0: 62 75 67 20 74 68 61 74 20 63 61 75 73 65 64 20  bug that caused 
21d0: 61 6e 20 65 78 74 72 61 20 4e 55 4c 4c 20 72 6f  an extra NULL ro
21e0: 77 20 74 6f 20 62 65 20 72 65 74 75 72 6e 65 64  w to be returned
21f0: 20 77 68 65 6e 0a 20 20 20 20 61 20 64 65 73 63   when.    a desc
2200: 65 6e 64 69 6e 67 20 71 75 65 72 79 20 77 61 73  ending query was
2210: 20 69 6e 74 65 72 72 75 70 74 65 64 20 62 79 20   interrupted by 
2220: 61 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65 20  a change to the 
2230: 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c  database.</li>.<
2240: 6c 69 3e 54 68 65 20 46 4f 52 20 45 41 43 48 20  li>The FOR EACH 
2250: 53 54 41 54 45 4d 45 4e 54 20 63 6c 61 75 73 65  STATEMENT clause
2260: 20 6f 6e 20 61 20 74 72 69 67 67 65 72 20 6e 6f   on a trigger no
2270: 77 20 63 61 75 73 65 73 20 61 20 73 79 6e 74 61  w causes a synta
2280: 78 0a 20 20 20 20 65 72 72 6f 72 2e 20 20 49 74  x.    error.  It
2290: 20 75 73 65 64 20 74 6f 20 62 65 20 73 69 6c 65   used to be sile
22a0: 6e 74 6c 79 20 69 67 6e 6f 72 65 64 2e 3c 2f 6c  ntly ignored.</l
22b0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 62  i>.<li>Fix an ob
22c0: 73 63 75 72 65 20 61 6e 64 20 72 65 6c 61 74 69  scure and relati
22d0: 76 65 6c 79 20 68 61 72 6d 6c 65 73 73 20 70 72  vely harmless pr
22e0: 6f 62 6c 65 6d 20 74 68 61 74 20 6d 69 67 68 74  oblem that might
22f0: 20 68 61 76 65 20 63 61 75 73 65 64 0a 20 20 20   have caused.   
2300: 20 61 20 72 65 73 6f 75 72 63 65 20 6c 65 61 6b   a resource leak
2310: 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 6e 20 49 2f   following an I/
2320: 4f 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c  O error.</li>.<l
2330: 69 3e 4d 61 6e 79 20 69 6d 70 72 6f 76 65 6d 65  i>Many improveme
2340: 6e 74 73 20 74 6f 20 74 68 65 20 74 65 73 74 20  nts to the test 
2350: 73 75 69 74 65 2e 20 20 54 65 73 74 20 63 6f 76  suite.  Test cov
2360: 65 72 61 67 65 20 6e 6f 77 20 65 78 63 65 65 64  erage now exceed
2370: 65 64 20 39 38 25 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ed 98%</li>.}..c
2380: 68 6e 67 20 7b 32 30 30 37 20 41 70 72 69 6c 20  hng {2007 April 
2390: 32 20 28 33 2e 33 2e 31 34 29 7d 20 7b 0a 3c 6c  2 (3.3.14)} {.<l
23a0: 69 3e 46 69 78 20 61 20 3c 61 20 68 72 65 66 3d  i>Fix a <a href=
23b0: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69  "http://www.sqli
23c0: 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f 74  te.org/cvstrac/t
23d0: 6b 74 76 69 65 77 3f 74 6e 3d 32 32 37 33 22 3e  ktview?tn=2273">
23e0: 62 75 67 3c 2f 61 3e 0a 20 20 20 20 69 6e 20 33  bug</a>.    in 3
23f0: 2e 33 2e 31 33 20 74 68 61 74 20 63 6f 75 6c 64  .3.13 that could
2400: 20 63 61 75 73 65 20 61 20 73 65 67 66 61 75 6c   cause a segfaul
2410: 74 20 77 68 65 6e 20 74 68 65 20 49 4e 20 6f 70  t when the IN op
2420: 65 72 61 74 6f 72 0a 20 20 20 20 69 73 20 75 73  erator.    is us
2430: 65 64 20 6f 6e 65 20 6f 6e 65 20 74 65 72 6d 20  ed one one term 
2440: 6f 66 20 61 20 74 77 6f 2d 63 6f 6c 75 6d 6e 20  of a two-column 
2450: 69 6e 64 65 78 20 61 6e 64 20 74 68 65 20 72 69  index and the ri
2460: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66  ght-hand side of
2470: 0a 20 20 20 20 74 68 65 20 49 4e 20 6f 70 65 72  .    the IN oper
2480: 61 74 6f 72 20 63 6f 6e 74 61 69 6e 73 20 61 20  ator contains a 
2490: 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  NULL.</li>.<li>A
24a0: 64 64 65 64 20 61 20 6e 65 77 20 4f 53 20 69 6e  dded a new OS in
24b0: 74 65 72 66 61 63 65 20 6d 65 74 68 6f 64 20 66  terface method f
24c0: 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 74  or determining t
24d0: 68 65 20 73 65 63 74 6f 72 20 73 69 7a 65 0a 20  he sector size. 
24e0: 20 20 20 6f 66 20 75 6e 64 65 72 6c 79 69 6e 67     of underlying
24f0: 20 6d 65 64 69 61 3a 20 20 73 71 6c 69 74 65 33   media:  sqlite3
2500: 4f 73 53 65 63 74 6f 72 53 69 7a 65 28 29 2e 3c  OsSectorSize().<
2510: 2f 6c 69 3e 0a 3c 6c 69 3e 41 20 6e 65 77 20 61  /li>.<li>A new a
2520: 6c 67 6f 72 69 74 68 6d 20 66 6f 72 20 73 74 61  lgorithm for sta
2530: 74 65 6d 65 6e 74 73 20 6f 66 20 74 68 65 20 66  tements of the f
2540: 6f 72 6d 0a 20 20 20 20 49 4e 53 45 52 54 20 49  orm.    INSERT I
2550: 4e 54 4f 20 3c 69 3e 74 61 62 6c 65 31 3c 2f 69  NTO <i>table1</i
2560: 3e 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  > SELECT * FROM 
2570: 3c 69 3e 74 61 62 6c 65 32 3c 2f 69 3e 0a 20 20  <i>table2</i>.  
2580: 20 20 69 73 20 66 61 73 74 65 72 20 61 6e 64 20    is faster and 
2590: 72 65 64 75 63 65 73 20 66 72 61 67 6d 65 6e 74  reduces fragment
25a0: 61 74 69 6f 6e 2e 20 20 56 41 43 55 55 4d 20 75  ation.  VACUUM u
25b0: 73 65 73 20 73 74 61 74 65 6d 65 6e 74 73 20 6f  ses statements o
25c0: 66 0a 20 20 20 20 74 68 69 73 20 66 6f 72 6d 20  f.    this form 
25d0: 61 6e 64 20 74 68 75 73 20 72 75 6e 73 20 66 61  and thus runs fa
25e0: 73 74 65 72 20 61 6e 64 20 64 65 66 72 61 67 6d  ster and defragm
25f0: 65 6e 74 73 20 62 65 74 74 65 72 2e 3c 2f 6c 69  ents better.</li
2600: 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63  >.<li>Performanc
2610: 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74  e enhancements t
2620: 68 72 6f 75 67 68 20 72 65 64 75 63 74 69 6f 6e  hrough reduction
2630: 73 20 69 6e 20 64 69 73 6b 20 49 2f 4f 3a 0a 3c  s in disk I/O:.<
2640: 75 6c 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 72  ul>.<li>Do not r
2650: 65 61 64 20 74 68 65 20 6c 61 73 74 20 70 61 67  ead the last pag
2660: 65 20 6f 66 20 61 6e 20 6f 76 65 72 66 6c 6f 77  e of an overflow
2670: 20 63 68 61 69 6e 20 77 68 65 6e 0a 20 20 20 20   chain when.    
2680: 64 65 6c 65 74 69 6e 67 20 74 68 65 20 72 6f 77  deleting the row
2690: 20 2d 20 6a 75 73 74 20 61 64 64 20 74 68 61 74   - just add that
26a0: 20 70 61 67 65 20 74 6f 20 74 68 65 20 66 72 65   page to the fre
26b0: 65 6c 69 73 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  elist.</li>.<li>
26c0: 44 6f 20 6e 6f 74 20 73 74 6f 72 65 20 70 61 67  Do not store pag
26d0: 65 73 20 62 65 69 6e 67 20 64 65 6c 65 74 65 64  es being deleted
26e0: 20 69 6e 20 74 68 65 20 0a 20 20 20 20 72 6f 6c   in the .    rol
26f0: 6c 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 2e 3c 2f  lback journal.</
2700: 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 72  li>.<li>Do not r
2710: 65 61 64 20 69 6e 20 74 68 65 20 28 6d 65 61 6e  ead in the (mean
2720: 69 6e 67 6c 65 73 73 29 20 63 6f 6e 74 65 6e 74  ingless) content
2730: 20 6f 66 0a 20 20 20 20 70 61 67 65 73 20 65 78   of.    pages ex
2740: 74 72 61 63 74 65 64 20 66 72 6f 6d 20 74 68 65  tracted from the
2750: 20 66 72 65 65 6c 69 73 74 2e 3c 2f 6c 69 3e 0a   freelist.</li>.
2760: 3c 6c 69 3e 44 6f 20 6e 6f 74 20 66 6c 75 73 68  <li>Do not flush
2770: 20 74 68 65 20 70 61 67 65 20 63 61 63 68 65 20   the page cache 
2780: 28 61 6e 64 20 74 68 75 73 20 61 76 6f 69 64 69  (and thus avoidi
2790: 6e 67 0a 20 20 20 20 61 20 63 61 63 68 65 20 72  ng.    a cache r
27a0: 65 66 69 6c 6c 29 20 75 6e 6c 65 73 73 20 61 6e  efill) unless an
27b0: 6f 74 68 65 72 20 70 72 6f 63 65 73 73 20 63 68  other process ch
27c0: 61 6e 67 65 73 20 74 68 65 20 75 6e 64 65 72 6c  anges the underl
27d0: 79 69 6e 67 0a 20 20 20 20 64 61 74 61 62 61 73  ying.    databas
27e0: 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e file.</li>.<li
27f0: 3e 54 72 75 6e 63 61 74 65 20 72 61 74 68 65 72  >Truncate rather
2800: 20 74 68 61 6e 20 64 65 6c 65 74 65 20 74 68 65   than delete the
2810: 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61   rollback journa
2820: 6c 20 77 68 65 6e 20 63 6f 6d 6d 69 74 74 69 6e  l when committin
2830: 67 0a 20 20 20 20 61 20 74 72 61 6e 73 61 63 74  g.    a transact
2840: 69 6f 6e 20 69 6e 20 65 78 63 6c 75 73 69 76 65  ion in exclusive
2850: 20 61 63 63 65 73 73 20 6d 6f 64 65 2c 20 6f 72   access mode, or
2860: 20 77 68 65 6e 20 63 6f 6d 6d 69 74 74 69 6e 67   when committing
2870: 20 74 68 65 20 54 45 4d 50 0a 20 20 20 20 64 61   the TEMP.    da
2880: 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 2f 75  tabase.</li>.</u
2890: 6c 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  l></li>.<li>Adde
28a0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 65 78  d support for ex
28b0: 63 6c 75 73 69 76 65 20 61 63 63 65 73 73 20 6d  clusive access m
28c0: 6f 64 65 20 75 73 69 6e 67 0a 20 20 20 20 3c 61  ode using.    <a
28d0: 20 68 72 65 66 3d 22 70 72 61 67 6d 61 2e 68 74   href="pragma.ht
28e0: 6d 6c 23 70 72 61 67 6d 61 5f 6c 6f 63 6b 69 6e  ml#pragma_lockin
28f0: 67 5f 6d 6f 64 65 22 3e 0a 20 20 20 20 22 50 52  g_mode">.    "PR
2900: 41 47 4d 41 20 6c 6f 63 6b 69 6e 67 5f 6d 6f 64  AGMA locking_mod
2910: 65 3d 45 58 43 4c 55 53 49 56 45 22 3c 2f 61 3e  e=EXCLUSIVE"</a>
2920: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 68 65  </li>.<li>Use he
2930: 61 70 20 73 70 61 63 65 20 69 6e 73 74 65 61 64  ap space instead
2940: 20 6f 66 20 73 74 61 63 6b 20 73 70 61 63 65 20   of stack space 
2950: 66 6f 72 20 6c 61 72 67 65 20 62 75 66 66 65 72  for large buffer
2960: 73 20 69 6e 20 74 68 65 0a 20 20 20 20 70 61 67  s in the.    pag
2970: 65 72 20 2d 20 75 73 65 66 75 6c 20 6f 6e 20 65  er - useful on e
2980: 6d 62 65 64 64 65 64 20 70 6c 61 74 66 6f 72 6d  mbedded platform
2990: 73 20 77 69 74 68 20 20 73 74 61 63 6b 2d 73 70  s with  stack-sp
29a0: 61 63 65 0a 20 20 20 20 6c 69 6d 69 74 61 74 69  ace.    limitati
29b0: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ons.</li>.<li>Ad
29c0: 64 20 61 20 6d 61 6b 65 66 69 6c 65 20 74 61 72  d a makefile tar
29d0: 67 65 74 20 22 73 71 6c 69 74 65 33 2e 63 22 20  get "sqlite3.c" 
29e0: 74 68 61 74 20 62 75 69 6c 64 73 20 61 6e 20 61  that builds an a
29f0: 6d 61 6c 67 61 6d 61 74 69 6f 6e 20 63 6f 6e 74  malgamation cont
2a00: 61 69 6e 69 6e 67 0a 20 20 20 20 74 68 65 20 63  aining.    the c
2a10: 6f 72 65 20 53 51 4c 69 74 65 20 6c 69 62 72 61  ore SQLite libra
2a20: 72 79 20 43 20 63 6f 64 65 20 69 6e 20 61 20 73  ry C code in a s
2a30: 69 6e 67 6c 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e  ingle file.</li>
2a40: 0a 3c 6c 69 3e 47 65 74 20 74 68 65 20 6c 69 62  .<li>Get the lib
2a50: 72 61 72 79 20 77 6f 72 6b 69 6e 67 20 63 6f 72  rary working cor
2a60: 72 65 63 74 6c 79 20 77 68 65 6e 20 63 6f 6d 70  rectly when comp
2a70: 69 6c 65 64 20 0a 20 20 20 20 77 69 74 68 20 47  iled .    with G
2a80: 43 43 20 6f 70 74 69 6f 6e 20 22 2d 66 73 74 72  CC option "-fstr
2a90: 69 63 74 2d 61 6c 69 61 73 69 6e 67 22 2e 3c 2f  ict-aliasing".</
2aa0: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20  li>.<li>Removed 
2ab0: 74 68 65 20 76 65 73 74 69 67 61 6c 20 53 51 4c  the vestigal SQL
2ac0: 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 20 65 72 72  ITE_PROTOCOL err
2ad0: 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70  or.</li>.<li>Imp
2ae0: 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74 65 73  rovements to tes
2af0: 74 20 63 6f 76 65 72 61 67 65 2c 20 6f 74 68 65  t coverage, othe
2b00: 72 20 6d 69 6e 6f 72 20 62 75 67 73 20 66 69 78  r minor bugs fix
2b10: 65 64 2c 0a 20 20 20 20 6d 65 6d 6f 72 79 20 6c  ed,.    memory l
2b20: 65 61 6b 73 20 70 6c 75 67 67 65 64 2c 0a 20 20  eaks plugged,.  
2b30: 20 20 63 6f 64 65 20 72 65 66 61 63 74 6f 72 65    code refactore
2b40: 64 20 61 6e 64 2f 6f 72 20 72 65 63 6f 6d 6d 65  d and/or recomme
2b50: 6e 74 65 64 20 69 6e 20 70 6c 61 63 65 73 20 66  nted in places f
2b60: 6f 72 20 65 61 73 69 65 72 20 72 65 61 64 69 6e  or easier readin
2b70: 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  g.</li>.}..chng 
2b80: 7b 32 30 30 37 20 46 65 62 72 75 61 72 79 20 31  {2007 February 1
2b90: 33 20 28 33 2e 33 2e 31 33 29 7d 20 7b 0a 3c 6c  3 (3.3.13)} {.<l
2ba0: 69 3e 41 64 64 20 61 20 22 66 72 61 67 6d 65 6e  i>Add a "fragmen
2bb0: 74 61 74 69 6f 6e 22 20 6d 65 61 73 75 72 65 6d  tation" measurem
2bc0: 65 6e 74 20 69 6e 20 74 68 65 20 6f 75 74 70 75  ent in the outpu
2bd0: 74 20 6f 66 20 73 71 6c 69 74 65 33 5f 61 6e 61  t of sqlite3_ana
2be0: 6c 79 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lyzer.</li>.<li>
2bf0: 41 64 64 20 74 68 65 20 43 4f 4c 4c 41 54 45 20  Add the COLLATE 
2c00: 6f 70 65 72 61 74 6f 72 20 75 73 65 64 20 74 6f  operator used to
2c10: 20 65 78 70 6c 69 63 69 74 6c 79 20 73 65 74 20   explicitly set 
2c20: 74 68 65 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65  the collating se
2c30: 71 75 65 6e 63 65 0a 75 73 65 64 20 62 79 20 61  quence.used by a
2c40: 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 20 54  n expression.  T
2c50: 68 69 73 20 66 65 61 74 75 72 65 20 69 73 20 63  his feature is c
2c60: 6f 6e 73 69 64 65 72 65 64 20 65 78 70 65 72 69  onsidered experi
2c70: 6d 65 6e 74 61 6c 20 70 65 6e 64 69 6e 67 0a 61  mental pending.a
2c80: 64 64 69 74 69 6f 6e 61 6c 20 74 65 73 74 69 6e  dditional testin
2c90: 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  g.</li>.<li>Allo
2ca0: 77 20 75 70 20 74 6f 20 36 34 20 74 61 62 6c 65  w up to 64 table
2cb0: 73 20 69 6e 20 61 20 6a 6f 69 6e 20 2d 20 74 68  s in a join - th
2cc0: 65 20 6f 6c 64 20 6c 69 6d 69 74 20 77 61 73 20  e old limit was 
2cd0: 33 32 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  32.</li>.<li>Add
2ce0: 65 64 20 74 77 6f 20 6e 65 77 20 65 78 70 65 72  ed two new exper
2cf0: 69 6d 65 6e 74 61 6c 20 66 75 6e 63 74 69 6f 6e  imental function
2d00: 73 3a 0a 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67  s:.<a href="lang
2d10: 5f 65 78 70 72 2e 68 74 6d 6c 23 72 61 6e 64 6f  _expr.html#rando
2d20: 6d 62 6c 6f 62 46 75 6e 63 22 3e 72 61 6e 64 6f  mblobFunc">rando
2d30: 6d 42 6c 6f 62 28 29 3c 2f 61 3e 20 61 6e 64 0a  mBlob()</a> and.
2d40: 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 65 78  <a href="lang_ex
2d50: 70 72 2e 68 74 6d 6c 23 68 65 78 46 75 6e 63 22  pr.html#hexFunc"
2d60: 3e 68 65 78 28 29 3c 2f 61 3e 2e 0a 54 68 65 69  >hex()</a>..Thei
2d70: 72 20 69 6e 74 65 6e 64 65 64 20 75 73 65 20 69  r intended use i
2d80: 73 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 20  s to facilitate 
2d90: 67 65 6e 65 72 61 74 69 6e 67 20 0a 3c 61 20 68  generating .<a h
2da0: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 65 6e 2e 77  ref="http://en.w
2db0: 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b  ikipedia.org/wik
2dc0: 69 2f 55 55 49 44 22 3e 55 55 49 44 73 3c 2f 61  i/UUID">UUIDs</a
2dd0: 3e 2e 0a 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  >..</li>.<li>Fix
2de0: 20 61 20 70 72 6f 62 6c 65 6d 20 77 68 65 72 65   a problem where
2df0: 0a 3c 61 20 68 72 65 66 3d 22 70 72 61 67 6d 61  .<a href="pragma
2e00: 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f 63 6f 75  .html#pragma_cou
2e10: 6e 74 5f 63 68 61 6e 67 65 73 22 3e 50 52 41 47  nt_changes">PRAG
2e20: 4d 41 20 63 6f 75 6e 74 5f 63 68 61 6e 67 65 73  MA count_changes
2e30: 3c 2f 61 3e 20 77 61 73 0a 63 61 75 73 69 6e 67  </a> was.causing
2e40: 20 69 6e 63 6f 72 72 65 63 74 20 72 65 73 75 6c   incorrect resul
2e50: 74 73 20 66 6f 72 20 75 70 64 61 74 65 73 20 6f  ts for updates o
2e60: 6e 20 74 61 62 6c 65 73 20 77 69 74 68 20 74 72  n tables with tr
2e70: 69 67 67 65 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  iggers</li>.<li>
2e80: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
2e90: 20 4f 52 44 45 52 20 42 59 20 63 6c 61 75 73 65   ORDER BY clause
2ea0: 20 6f 70 74 69 6d 69 7a 65 72 20 66 6f 72 20 6a   optimizer for j
2eb0: 6f 69 6e 73 20 77 68 65 72 65 20 74 68 65 0a 6c  oins where the.l
2ec0: 65 66 74 2d 6d 6f 73 74 20 74 61 62 6c 65 20 69  eft-most table i
2ed0: 6e 20 74 68 65 20 6a 6f 69 6e 20 69 73 20 63 6f  n the join is co
2ee0: 6e 73 74 72 61 69 6e 65 64 20 62 79 20 61 20 55  nstrained by a U
2ef0: 4e 49 51 55 45 20 69 6e 64 65 78 2e 3c 2f 6c 69  NIQUE index.</li
2f00: 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75  >.<li>Fixed a bu
2f10: 67 20 69 6e 20 74 68 65 20 22 63 6f 70 79 22 20  g in the "copy" 
2f20: 6d 65 74 68 6f 64 20 6f 66 20 74 68 65 20 54 43  method of the TC
2f30: 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69  L interface.</li
2f40: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20  >.<li>Bug fixes 
2f50: 69 6e 20 66 74 73 31 20 61 6e 64 20 66 74 73 32  in fts1 and fts2
2f60: 20 6d 6f 64 75 6c 65 73 2e 3c 2f 6c 69 3e 0a 7d   modules.</li>.}
2f70: 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20 4a 61 6e  ..chng {2007 Jan
2f80: 75 61 72 79 20 32 37 20 28 33 2e 33 2e 31 32 29  uary 27 (3.3.12)
2f90: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 6f 74  } {.<li>Fix anot
2fa0: 68 65 72 20 62 75 67 20 69 6e 20 74 68 65 20 49  her bug in the I
2fb0: 53 20 4e 55 4c 4c 20 6f 70 74 69 6d 69 7a 61 74  S NULL optimizat
2fc0: 69 6f 6e 20 74 68 61 74 20 77 61 73 20 61 64 64  ion that was add
2fd0: 65 64 20 69 6e 0a 76 65 72 73 69 6f 6e 20 33 2e  ed in.version 3.
2fe0: 33 2e 39 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  3.9.</li>.<li>Fi
2ff0: 78 20 61 20 61 73 73 65 72 74 69 6f 6e 20 66 61  x a assertion fa
3000: 75 6c 74 20 74 68 61 74 20 6f 63 63 75 72 72 65  ult that occurre
3010: 64 20 6f 6e 20 64 65 65 70 6c 79 20 6e 65 73 74  d on deeply nest
3020: 65 64 20 76 69 65 77 73 2e 3c 2f 6c 69 3e 0a 3c  ed views.</li>.<
3030: 6c 69 3e 4c 69 6d 69 74 20 74 68 65 20 61 6d 6f  li>Limit the amo
3040: 75 6e 74 20 6f 66 20 6f 75 74 70 75 74 20 74 68  unt of output th
3050: 61 74 0a 3c 61 20 68 72 65 66 3d 22 70 72 61 67  at.<a href="prag
3060: 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f 69  ma.html#pragma_i
3070: 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 22 3e  ntegrity_check">
3080: 50 52 41 47 4d 41 20 69 6e 74 65 67 72 69 74 79  PRAGMA integrity
3090: 5f 63 68 65 63 6b 3c 2f 61 3e 0a 67 65 6e 65 72  _check</a>.gener
30a0: 61 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ates.</li>.<li>M
30b0: 69 6e 6f 72 20 73 79 6e 74 61 63 74 69 63 20 63  inor syntactic c
30c0: 68 61 6e 67 65 73 20 74 6f 20 73 75 70 70 6f 72  hanges to suppor
30d0: 74 20 61 20 77 69 64 65 72 20 76 61 72 69 65 74  t a wider variet
30e0: 79 20 6f 66 20 63 6f 6d 70 69 6c 65 72 73 2e 3c  y of compilers.<
30f0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3100: 30 37 20 4a 61 6e 75 61 72 79 20 32 32 20 28 33  07 January 22 (3
3110: 2e 33 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .3.11)} {.<li>Fi
3120: 78 20 61 6e 6f 74 68 65 72 20 62 75 67 20 69 6e  x another bug in
3130: 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74   the implementat
3140: 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 77 20 0a  ion of the new .
3150: 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33 72 65  <a href="capi3re
3160: 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f 70  f.html#sqlite3_p
3170: 72 65 70 61 72 65 5f 76 32 22 3e 73 71 6c 69 74  repare_v2">sqlit
3180: 65 33 5f 70 72 65 70 61 72 65 5f 76 32 28 29 3c  e3_prepare_v2()<
3190: 2f 61 3e 20 41 50 49 2e 0a 57 65 27 6c 6c 20 67  /a> API..We'll g
31a0: 65 74 20 69 74 20 72 69 67 68 74 20 65 76 65 6e  et it right even
31b0: 74 75 61 6c 6c 79 2e 2e 2e 3c 2f 6c 69 3e 0a 3c  tually...</li>.<
31c0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
31d0: 74 68 65 20 49 53 20 4e 55 4c 4c 20 6f 70 74 69  the IS NULL opti
31e0: 6d 69 7a 61 74 69 6f 6e 20 74 68 61 74 20 77 61  mization that wa
31f0: 73 20 61 64 64 65 64 20 69 6e 20 76 65 72 73 69  s added in versi
3200: 6f 6e 20 33 2e 33 2e 39 20 2d 0a 74 68 65 20 62  on 3.3.9 -.the b
3210: 75 67 20 77 61 73 20 63 61 75 73 69 6e 67 20 69  ug was causing i
3220: 6e 63 6f 72 72 65 63 74 20 72 65 73 75 6c 74 73  ncorrect results
3230: 20 6f 6e 20 63 65 72 74 61 69 6e 20 4c 45 46 54   on certain LEFT
3240: 20 4a 4f 49 4e 73 20 74 68 61 74 20 69 6e 63 6c   JOINs that incl
3250: 75 64 65 64 0a 69 6e 20 74 68 65 20 57 48 45 52  uded.in the WHER
3260: 45 20 63 6c 61 75 73 65 20 61 6e 20 49 53 20 4e  E clause an IS N
3270: 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e 74 20 66  ULL constraint f
3280: 6f 72 20 74 68 65 20 72 69 67 68 74 20 74 61 62  or the right tab
3290: 6c 65 20 6f 66 20 74 68 65 0a 4c 45 46 54 20 4a  le of the.LEFT J
32a0: 4f 49 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  OIN.</li>.<li>Ma
32b0: 6b 65 20 41 72 65 46 69 6c 65 41 70 69 73 41 4e  ke AreFileApisAN
32c0: 53 49 28 29 20 61 20 6e 6f 2d 6f 70 20 6d 61 63  SI() a no-op mac
32d0: 72 6f 20 69 6e 20 77 69 6e 43 45 20 73 69 6e 63  ro in winCE sinc
32e0: 65 20 77 69 6e 43 45 20 64 6f 65 73 20 6e 6f 74  e winCE does not
32f0: 0a 73 75 70 70 6f 72 74 20 74 68 69 73 20 66 75  .support this fu
3300: 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  nction.</li>.}..
3310: 63 68 6e 67 20 7b 32 30 30 37 20 4a 61 6e 75 61  chng {2007 Janua
3320: 72 79 20 39 20 28 33 2e 33 2e 31 30 29 7d 20 7b  ry 9 (3.3.10)} {
3330: 0a 3c 6c 69 3e 46 69 78 20 62 75 67 73 20 69 6e  .<li>Fix bugs in
3340: 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74   the implementat
3350: 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 77 20 0a  ion of the new .
3360: 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33 72 65  <a href="capi3re
3370: 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f 70  f.html#sqlite3_p
3380: 72 65 70 61 72 65 5f 76 32 22 3e 73 71 6c 69 74  repare_v2">sqlit
3390: 65 33 5f 70 72 65 70 61 72 65 5f 76 32 28 29 3c  e3_prepare_v2()<
33a0: 2f 61 3e 20 41 50 49 0a 74 68 61 74 20 63 61 6e  /a> API.that can
33b0: 20 6c 65 61 64 20 74 6f 20 73 65 67 66 61 75 6c   lead to segfaul
33c0: 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ts.</li>.<li>Fix
33d0: 20 31 2d 73 65 63 6f 6e 64 20 72 6f 75 6e 64 2d   1-second round-
33e0: 6f 66 66 20 65 72 72 6f 72 73 20 69 6e 20 74 68  off errors in th
33f0: 65 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70  e .<a href="http
3400: 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72  ://www.sqlite.or
3410: 67 2f 63 76 73 74 72 61 63 2f 77 69 6b 69 3f 70  g/cvstrac/wiki?p
3420: 3d 44 61 74 65 41 6e 64 54 69 6d 65 46 75 6e 63  =DateAndTimeFunc
3430: 74 69 6f 6e 73 22 3e 0a 73 74 72 66 74 69 6d 65  tions">.strftime
3440: 28 29 3c 2f 61 3e 20 66 75 6e 63 74 69 6f 6e 3c  ()</a> function<
3450: 2f 6c 69 3e 0a 3c 6c 69 3e 45 6e 68 61 6e 63 65  /li>.<li>Enhance
3460: 20 74 68 65 20 77 69 6e 64 6f 77 73 20 4f 53 20   the windows OS 
3470: 6c 61 79 65 72 20 74 6f 20 70 72 6f 76 69 64 65  layer to provide
3480: 20 64 65 74 61 69 6c 65 64 20 65 72 72 6f 72 20   detailed error 
3490: 63 6f 64 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57  codes</li>.<li>W
34a0: 6f 72 6b 20 61 72 6f 75 6e 64 20 61 20 77 69 6e  ork around a win
34b0: 32 6b 20 70 72 6f 62 6c 65 6d 20 73 6f 20 74 68  2k problem so th
34c0: 61 74 20 53 51 4c 69 74 65 20 63 61 6e 20 75 73  at SQLite can us
34d0: 65 20 73 69 6e 67 6c 65 2d 63 68 61 72 61 63 74  e single-charact
34e0: 65 72 0a 64 61 74 61 62 61 73 65 20 66 69 6c 65  er.database file
34f0: 20 6e 61 6d 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e   names</li>.<li>
3500: 54 68 65 0a 3c 61 20 68 72 65 66 3d 22 70 72 61  The.<a href="pra
3510: 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f  gma.html#pragma_
3520: 75 73 65 72 5f 76 65 72 73 69 6f 6e 22 3e 75 73  user_version">us
3530: 65 72 5f 76 65 72 73 69 6f 6e 3c 2f 61 3e 20 61  er_version</a> a
3540: 6e 64 0a 3c 61 20 68 72 65 66 3d 22 70 72 61 67  nd.<a href="prag
3550: 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f 73  ma.html#pragma_s
3560: 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 22 3e 73  chema_version">s
3570: 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 3c 2f 61  chema_version</a
3580: 3e 20 70 72 61 67 6d 61 73 20 0a 63 6f 72 72 65  > pragmas .corre
3590: 63 74 6c 79 20 73 65 74 20 74 68 65 69 72 20 63  ctly set their c
35a0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 74  olumn names in t
35b0: 68 65 20 72 65 73 75 6c 74 20 73 65 74 3c 2f 6c  he result set</l
35c0: 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61  i>.<li>Documenta
35d0: 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69  tion updates</li
35e0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20  >.}..chng {2007 
35f0: 4a 61 6e 75 61 72 79 20 34 20 28 33 2e 33 2e 39  January 4 (3.3.9
3600: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 62 75 67  )} {.<li>Fix bug
3610: 73 20 69 6e 20 70 61 67 65 72 2e 63 20 74 68 61  s in pager.c tha
3620: 74 20 63 6f 75 6c 64 20 6c 65 61 64 20 74 6f 20  t could lead to 
3630: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
3640: 69 6f 6e 20 69 66 20 74 77 6f 0a 70 72 6f 63 65  ion if two.proce
3650: 73 73 65 73 20 62 6f 74 68 20 74 72 79 20 74 6f  sses both try to
3660: 20 72 65 63 6f 76 65 72 20 61 20 68 6f 74 20 6a   recover a hot j
3670: 6f 75 72 6e 61 6c 20 61 74 20 74 68 65 20 73 61  ournal at the sa
3680: 6d 65 20 69 6e 73 74 61 6e 74 3c 2f 6c 69 3e 0a  me instant</li>.
3690: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 61  <li>Added the <a
36a0: 20 68 72 65 66 3d 22 63 61 70 69 33 72 65 66 2e   href="capi3ref.
36b0: 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f 70 72 65  html#sqlite3_pre
36c0: 70 61 72 65 5f 76 32 22 3e 73 71 6c 69 74 65 33  pare_v2">sqlite3
36d0: 5f 70 72 65 70 61 72 65 5f 76 32 28 29 3c 2f 61  _prepare_v2()</a
36e0: 3e 0a 41 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  >.API.</li>.<li>
36f0: 46 69 78 65 64 20 74 68 65 20 22 2e 64 75 6d 70  Fixed the ".dump
3700: 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65  " command in the
3710: 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68   command-line sh
3720: 65 6c 6c 20 74 6f 20 73 68 6f 77 0a 69 6e 64 69  ell to show.indi
3730: 63 65 73 2c 20 74 72 69 67 67 65 72 73 20 61 6e  ces, triggers an
3740: 64 20 76 69 65 77 73 20 61 67 61 69 6e 2e 3c 2f  d views again.</
3750: 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74  li>.<li>Change t
3760: 68 65 20 74 61 62 6c 65 5f 69 6e 66 6f 20 70 72  he table_info pr
3770: 61 67 6d 61 20 73 6f 20 74 68 61 74 20 69 74 20  agma so that it 
3780: 72 65 74 75 72 6e 73 20 4e 55 4c 4c 20 66 6f 72  returns NULL for
3790: 20 74 68 65 20 64 65 66 61 75 6c 74 0a 76 61 6c   the default.val
37a0: 75 65 20 69 66 20 74 68 65 72 65 20 69 73 20 6e  ue if there is n
37b0: 6f 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 3c  o default value<
37c0: 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74  /li>.<li>Support
37d0: 20 66 6f 72 20 6e 6f 6e 2d 41 53 43 49 49 20 63   for non-ASCII c
37e0: 68 61 72 61 63 74 65 72 73 20 69 6e 20 77 69 6e  haracters in win
37f0: 39 35 20 66 69 6c 65 6e 61 6d 65 73 3c 2f 6c 69  95 filenames</li
3800: 3e 0a 3c 6c 69 3e 51 75 65 72 79 20 6f 70 74 69  >.<li>Query opti
3810: 6d 69 7a 65 72 20 65 6e 68 61 6e 63 65 6d 65 6e  mizer enhancemen
3820: 74 73 3a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 4f 70 74  ts:.<ul>.<li>Opt
3830: 69 6d 69 7a 65 72 20 64 6f 65 73 20 61 20 62 65  imizer does a be
3840: 74 74 65 72 20 6a 6f 62 20 6f 66 20 75 73 69 6e  tter job of usin
3850: 67 20 69 6e 64 69 63 65 73 20 74 6f 20 73 61 74  g indices to sat
3860: 69 73 66 79 20 4f 52 44 45 52 20 42 59 0a 63 6c  isfy ORDER BY.cl
3870: 61 75 73 65 73 20 74 68 61 74 20 73 6f 72 74 20  auses that sort 
3880: 6f 6e 20 74 68 65 20 69 6e 74 65 67 65 72 20 70  on the integer p
3890: 72 69 6d 61 72 79 20 6b 65 79 3c 2f 6c 69 3e 0a  rimary key</li>.
38a0: 3c 6c 69 3e 55 73 65 20 61 6e 20 69 6e 64 65 78  <li>Use an index
38b0: 20 74 6f 20 73 61 74 69 73 66 79 20 61 6e 20 49   to satisfy an I
38c0: 53 20 4e 55 4c 4c 20 6f 70 65 72 61 74 6f 72 20  S NULL operator 
38d0: 69 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c 61  in the WHERE cla
38e0: 75 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  use</li>.<li>Fix
38f0: 20 61 20 62 75 67 20 74 68 61 74 20 77 61 73 20   a bug that was 
3900: 63 61 75 73 69 6e 67 20 74 68 65 20 6f 70 74 69  causing the opti
3910: 6d 69 7a 65 72 20 74 6f 20 6d 69 73 73 20 61 6e  mizer to miss an
3920: 20 4f 52 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e   OR optimization
3930: 0a 6f 70 70 6f 72 74 75 6e 69 74 79 3c 2f 6c 69  .opportunity</li
3940: 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74 69 6d 69  >.<li>The optimi
3950: 7a 65 72 20 68 61 73 20 6d 6f 72 65 20 66 72 65  zer has more fre
3960: 65 64 6f 6d 20 74 6f 20 72 65 6f 72 64 65 72 20  edom to reorder 
3970: 74 61 62 6c 65 73 20 69 6e 20 74 68 65 20 46 52  tables in the FR
3980: 4f 4d 20 63 6c 61 75 73 65 0a 65 76 65 6e 20 69  OM clause.even i
3990: 6e 20 74 68 65 72 65 20 61 72 65 20 4c 45 46 54  n there are LEFT
39a0: 20 6a 6f 69 6e 73 2e 3c 2f 6c 69 3e 0a 3c 2f 75   joins.</li>.</u
39b0: 6c 3e 0a 3c 6c 69 3e 45 78 74 65 6e 73 69 6f 6e  l>.<li>Extension
39c0: 20 6c 6f 61 64 69 6e 67 20 73 75 70 70 6f 72 74   loading support
39d0: 65 64 20 61 64 64 65 64 20 74 6f 20 77 69 6e 43  ed added to winC
39e0: 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  E</li>.<li>Allow
39f0: 20 63 6f 6e 73 74 72 61 69 6e 74 20 6e 61 6d 65   constraint name
3a00: 73 20 6f 6e 20 74 68 65 20 44 45 46 41 55 4c 54  s on the DEFAULT
3a10: 20 63 6c 61 75 73 65 20 69 6e 20 61 20 74 61 62   clause in a tab
3a20: 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 3c 2f 6c  le definition</l
3a30: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
3a40: 20 22 2e 62 61 69 6c 22 20 63 6f 6d 6d 61 6e 64   ".bail" command
3a50: 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d   to the command-
3a60: 6c 69 6e 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a  line shell</li>.
3a70: 3c 6c 69 3e 4d 61 6b 65 20 43 53 56 20 28 63 6f  <li>Make CSV (co
3a80: 6d 6d 61 20 73 65 70 61 72 61 74 65 20 76 61 6c  mma separate val
3a90: 75 65 29 20 6f 75 74 70 75 74 20 66 72 6f 6d 20  ue) output from 
3aa0: 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65  the command-line
3ab0: 20 73 68 65 6c 6c 0a 6d 6f 72 65 20 63 6c 6f 73   shell.more clos
3ac0: 65 6c 79 20 61 6c 69 67 6e 65 64 20 74 6f 20 61  ely aligned to a
3ad0: 63 63 65 70 74 65 64 20 70 72 61 63 74 69 63 65  ccepted practice
3ae0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69  </li>.<li>Experi
3af0: 6d 65 6e 74 61 6c 20 46 54 53 32 20 6d 6f 64 75  mental FTS2 modu
3b00: 6c 65 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c  le added</li>.<l
3b10: 69 3e 55 73 65 20 73 71 6c 69 74 65 33 5f 6d 70  i>Use sqlite3_mp
3b20: 72 69 6e 74 66 28 29 20 69 6e 73 74 65 61 64 20  rintf() instead 
3b30: 6f 66 20 73 74 72 64 75 70 28 29 20 74 6f 20 61  of strdup() to a
3b40: 76 6f 69 64 20 6c 69 62 63 20 64 65 70 65 6e 64  void libc depend
3b50: 65 6e 63 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  encies</li>.<li>
3b60: 56 41 43 55 55 4d 20 75 73 65 73 20 61 20 74 65  VACUUM uses a te
3b70: 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 69 6e 20  mporary file in 
3b80: 74 68 65 20 6f 66 66 69 63 69 61 6c 20 54 45 4d  the official TEM
3b90: 50 20 66 6f 6c 64 65 72 2c 20 6e 6f 74 20 69 6e  P folder, not in
3ba0: 20 74 68 65 0a 73 61 6d 65 20 64 69 72 65 63 74   the.same direct
3bb0: 6f 72 79 20 61 73 20 74 68 65 20 6f 72 69 67 69  ory as the origi
3bc0: 6e 61 6c 20 64 61 74 61 62 61 73 65 3c 2f 6c 69  nal database</li
3bd0: 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 66 69 78  >.<li>The prefix
3be0: 20 6f 6e 20 74 65 6d 70 6f 72 61 72 79 20 66 69   on temporary fi
3bf0: 6c 65 6e 61 6d 65 73 20 6f 6e 20 77 69 6e 64 6f  lenames on windo
3c00: 77 73 20 69 73 20 63 68 61 6e 67 65 64 20 66 72  ws is changed fr
3c10: 6f 6d 20 22 73 71 6c 69 74 65 22 0a 74 6f 20 22  om "sqlite".to "
3c20: 65 74 69 6c 71 73 22 2e 3c 2f 6c 69 3e 0a 7d 0a  etilqs".</li>.}.
3c30: 0a 63 68 6e 67 20 7b 32 30 30 36 20 4f 63 74 6f  .chng {2006 Octo
3c40: 62 65 72 20 39 20 28 33 2e 33 2e 38 29 7d 20 7b  ber 9 (3.3.8)} {
3c50: 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72  .<li>Support for
3c60: 20 66 75 6c 6c 20 74 65 78 74 20 73 65 61 72 63   full text searc
3c70: 68 20 75 73 69 6e 67 20 74 68 65 0a 3c 61 20 68  h using the.<a h
3c80: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e  ref="http://www.
3c90: 73 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72  sqlite.org/cvstr
3ca0: 61 63 2f 77 69 6b 69 3f 70 3d 46 75 6c 6c 54 65  ac/wiki?p=FullTe
3cb0: 78 74 49 6e 64 65 78 22 3e 46 54 53 31 20 6d 6f  xtIndex">FTS1 mo
3cc0: 64 75 6c 65 3c 2f 61 3e 0a 28 62 65 74 61 29 3c  dule</a>.(beta)<
3cd0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 4f  /li>.<li>Added O
3ce0: 53 2d 58 20 6c 6f 63 6b 69 6e 67 20 70 61 74 63  S-X locking patc
3cf0: 68 65 73 20 28 62 65 74 61 20 2d 20 64 69 73 61  hes (beta - disa
3d00: 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 29  bled by default)
3d10: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 74 72 6f 64  </li>.<li>Introd
3d20: 75 63 65 20 65 78 74 65 6e 64 65 64 20 65 72 72  uce extended err
3d30: 6f 72 20 63 6f 64 65 73 20 61 6e 64 20 61 64 64  or codes and add
3d40: 20 65 72 72 6f 72 20 63 6f 64 65 73 20 66 6f 72   error codes for
3d50: 20 76 61 72 69 6f 75 73 0a 6b 69 6e 64 73 20 6f   various.kinds o
3d60: 66 20 49 2f 4f 20 65 72 72 6f 72 73 2e 3c 2f 6c  f I/O errors.</l
3d70: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
3d80: 70 6f 72 74 20 66 6f 72 20 49 46 20 45 58 49 53  port for IF EXIS
3d90: 54 53 20 6f 6e 20 43 52 45 41 54 45 2f 44 52 4f  TS on CREATE/DRO
3da0: 50 20 54 52 49 47 47 45 52 2f 56 49 45 57 3c 2f  P TRIGGER/VIEW</
3db0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20  li>.<li>Fix the 
3dc0: 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74 20  regression test 
3dd0: 73 75 69 74 65 20 73 6f 20 74 68 61 74 20 69 74  suite so that it
3de0: 20 77 6f 72 6b 73 20 77 69 74 68 20 54 63 6c 38   works with Tcl8
3df0: 2e 35 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 6e 68 61  .5</li>.<li>Enha
3e00: 6e 63 65 20 73 71 6c 69 74 65 33 5f 73 65 74 5f  nce sqlite3_set_
3e10: 61 75 74 68 6f 72 69 7a 65 72 28 29 20 74 6f 20  authorizer() to 
3e20: 70 72 6f 76 69 64 65 20 6e 6f 74 69 66 69 63 61  provide notifica
3e30: 74 69 6f 6e 20 6f 66 20 63 61 6c 6c 73 20 74 6f  tion of calls to
3e40: 0a 20 20 20 20 53 51 4c 20 66 75 6e 63 74 69 6f  .    SQL functio
3e50: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ns.</li>.<li>Add
3e60: 65 64 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20  ed experimental 
3e70: 41 50 49 3a 20 20 73 71 6c 69 74 65 33 5f 61 75  API:  sqlite3_au
3e80: 74 6f 5f 65 78 74 65 6e 73 69 6f 6e 28 29 3c 2f  to_extension()</
3e90: 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20  li>.<li>Various 
3ea0: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c  minor bug fixes<
3eb0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3ec0: 30 36 20 41 75 67 75 73 74 20 31 32 20 28 33 2e  06 August 12 (3.
3ed0: 33 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  3.7)} {.<li>Adde
3ee0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 0a 3c 61  d support for.<a
3ef0: 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77   href="http://ww
3f00: 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73  w.sqlite.org/cvs
3f10: 74 72 61 63 2f 77 69 6b 69 3f 70 3d 56 69 72 74  trac/wiki?p=Virt
3f20: 75 61 6c 54 61 62 6c 65 73 22 3e 76 69 72 74 75  ualTables">virtu
3f30: 61 6c 20 74 61 62 6c 65 73 3c 2f 61 3e 0a 28 62  al tables</a>.(b
3f40: 65 74 61 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  eta)</li>.<li>Ad
3f50: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
3f60: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
3f70: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
3f80: 63 76 73 74 72 61 63 2f 77 69 6b 69 3f 70 3d 4c  cvstrac/wiki?p=L
3f90: 6f 61 64 61 62 6c 65 45 78 74 65 6e 73 69 6f 6e  oadableExtension
3fa0: 73 22 3e 0a 64 79 6e 61 6d 69 63 61 6c 6c 79 20  s">.dynamically 
3fb0: 6c 6f 61 64 65 64 20 65 78 74 65 6e 73 69 6f 6e  loaded extension
3fc0: 73 3c 2f 61 3e 20 28 62 65 74 61 29 3c 2f 6c 69  s</a> (beta)</li
3fd0: 3e 0a 3c 6c 69 3e 54 68 65 20 0a 3c 61 20 68 72  >.<li>The .<a hr
3fe0: 65 66 3d 22 63 61 70 69 33 72 65 66 2e 68 74 6d  ef="capi3ref.htm
3ff0: 6c 23 73 71 6c 69 74 65 33 5f 69 6e 74 65 72 72  l#sqlite3_interr
4000: 75 70 74 22 3e 73 71 6c 69 74 65 33 5f 69 6e 74  upt">sqlite3_int
4010: 65 72 72 75 70 74 28 29 3c 2f 61 3e 0a 72 6f 75  errupt()</a>.rou
4020: 74 69 6e 65 20 63 61 6e 20 62 65 20 63 61 6c 6c  tine can be call
4030: 65 64 20 66 6f 72 20 61 20 64 69 66 66 65 72 65  ed for a differe
4040: 6e 74 20 74 68 72 65 61 64 3c 2f 6c 69 3e 0a 3c  nt thread</li>.<
4050: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 61 20  li>Added the <a 
4060: 68 72 65 66 3d 22 6c 61 6e 67 5f 65 78 70 72 2e  href="lang_expr.
4070: 68 74 6d 6c 23 6d 61 74 63 68 22 3e 4d 41 54 43  html#match">MATC
4080: 48 3c 2f 61 3e 20 6f 70 65 72 61 74 6f 72 2e 3c  H</a> operator.<
4090: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 65 66  /li>.<li>The def
40a0: 61 75 6c 74 20 66 69 6c 65 20 66 6f 72 6d 61 74  ault file format
40b0: 20 69 73 20 6e 6f 77 20 31 2e 20 20 0a 7d 0a 0a   is now 1.  .}..
40c0: 63 68 6e 67 20 7b 32 30 30 36 20 4a 75 6e 65 20  chng {2006 June 
40d0: 36 20 28 33 2e 33 2e 36 29 7d 20 7b 0a 3c 6c 69  6 (3.3.6)} {.<li
40e0: 3e 50 6c 61 79 73 20 62 65 74 74 65 72 20 77 69  >Plays better wi
40f0: 74 68 20 76 69 72 75 73 20 73 63 61 6e 6e 65 72  th virus scanner
4100: 73 20 6f 6e 20 77 69 6e 64 6f 77 73 3c 2f 6c 69  s on windows</li
4110: 3e 0a 3c 6c 69 3e 46 61 73 74 65 72 20 3a 6d 65  >.<li>Faster :me
4120: 6d 6f 72 79 3a 20 64 61 74 61 62 61 73 65 73 3c  mory: databases<
4130: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20  /li>.<li>Fix an 
4140: 6f 62 73 63 75 72 65 20 73 65 67 66 61 75 6c 74  obscure segfault
4150: 20 69 6e 20 55 54 46 2d 38 20 74 6f 20 55 54 46   in UTF-8 to UTF
4160: 2d 31 36 20 63 6f 6e 76 65 72 73 69 6f 6e 73 3c  -16 conversions<
4170: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64  /li>.<li>Added d
4180: 72 69 76 65 72 20 66 6f 72 20 4f 53 2f 32 3c 2f  river for OS/2</
4190: 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 20  li>.<li>Correct 
41a0: 63 6f 6c 75 6d 6e 20 6d 65 74 61 2d 69 6e 66 6f  column meta-info
41b0: 72 6d 61 74 69 6f 6e 20 72 65 74 75 72 6e 65 64  rmation returned
41c0: 20 66 6f 72 20 61 67 67 72 65 67 61 74 65 20 71   for aggregate q
41d0: 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ueries</li>.<li>
41e0: 45 6e 68 61 6e 63 65 64 20 6f 75 74 70 75 74 20  Enhanced output 
41f0: 66 72 6f 6d 20 45 58 50 4c 41 49 4e 20 51 55 45  from EXPLAIN QUE
4200: 52 59 20 50 4c 41 4e 3c 2f 6c 69 3e 0a 3c 6c 69  RY PLAN</li>.<li
4210: 3e 4c 49 4d 49 54 20 30 20 6e 6f 77 20 77 6f 72  >LIMIT 0 now wor
4220: 6b 73 20 6f 6e 20 73 75 62 71 75 65 72 69 65 73  ks on subqueries
4230: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
4240: 78 65 73 20 61 6e 64 20 70 65 72 66 6f 72 6d 61  xes and performa
4250: 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  nce enhancements
4260: 20 69 6e 20 74 68 65 20 71 75 65 72 79 20 6f 70   in the query op
4270: 74 69 6d 69 7a 65 72 3c 2f 6c 69 3e 0a 3c 6c 69  timizer</li>.<li
4280: 3e 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c  >Correctly handl
4290: 65 20 4e 55 4c 4c 20 66 69 6c 65 6e 61 6d 65 73  e NULL filenames
42a0: 20 69 6e 20 41 54 54 41 43 48 20 61 6e 64 20 44   in ATTACH and D
42b0: 45 54 41 43 48 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  ETACH</li>.<li>I
42c0: 6e 70 72 6f 76 65 64 20 73 79 6e 74 61 78 20 65  nproved syntax e
42d0: 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 69 6e  rror messages in
42e0: 20 74 68 65 20 70 61 72 73 65 72 3c 2f 6c 69 3e   the parser</li>
42f0: 0a 3c 6c 69 3e 46 69 78 20 74 79 70 65 20 63 6f  .<li>Fix type co
4300: 65 72 63 69 6f 6e 20 72 75 6c 65 73 20 66 6f 72  ercion rules for
4310: 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72   the IN operator
4320: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4330: 30 30 36 20 41 70 72 69 6c 20 35 20 28 33 2e 33  006 April 5 (3.3
4340: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43 48 45 43 4b  .5)} {.<li>CHECK
4350: 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 75 73 65   constraints use
4360: 20 63 6f 6e 66 6c 69 63 74 20 72 65 73 6f 6c 75   conflict resolu
4370: 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 73 20  tion algorithms 
4380: 63 6f 72 72 65 63 74 6c 79 2e 3c 2f 6c 69 3e 0a  correctly.</li>.
4390: 3c 6c 69 3e 54 68 65 20 53 55 4d 28 29 20 66 75  <li>The SUM() fu
43a0: 6e 63 74 69 6f 6e 20 74 68 72 6f 77 73 20 61 6e  nction throws an
43b0: 20 65 72 72 6f 72 20 6f 6e 20 69 6e 74 65 67 65   error on intege
43c0: 72 20 6f 76 65 72 66 6c 6f 77 2e 3c 2f 6c 69 3e  r overflow.</li>
43d0: 0a 3c 6c 69 3e 43 68 6f 6f 73 65 20 74 68 65 20  .<li>Choose the 
43e0: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20  column names in 
43f0: 61 20 63 6f 6d 70 6f 75 6e 64 20 71 75 65 72 79  a compound query
4400: 20 66 72 6f 6d 20 74 68 65 20 6c 65 66 74 2d 6d   from the left-m
4410: 6f 73 74 20 53 45 4c 45 43 54 0a 20 20 20 20 69  ost SELECT.    i
4420: 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 72 69  nstead of the ri
4430: 67 68 74 2d 6d 6f 73 74 2e 3c 2f 6c 69 3e 0a 3c  ght-most.</li>.<
4440: 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33 5f 63  li>The sqlite3_c
4450: 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e 28  reate_collation(
4460: 29 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 68  ) function.    h
4470: 6f 6e 6f 72 73 20 74 68 65 20 53 51 4c 49 54 45  onors the SQLITE
4480: 5f 55 54 46 31 36 5f 41 4c 49 47 4e 45 44 20 66  _UTF16_ALIGNED f
4490: 6c 61 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 51  lag.</li>.<li>SQ
44a0: 4c 49 54 45 5f 53 45 43 55 52 45 5f 44 45 4c 45  LITE_SECURE_DELE
44b0: 54 45 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20  TE compile-time 
44c0: 6f 70 74 69 6f 6e 20 63 61 75 73 65 73 20 64 65  option causes de
44d0: 6c 65 74 65 73 20 74 6f 20 6f 76 65 72 77 72 69  letes to overwri
44e0: 74 65 0a 20 20 20 20 6f 6c 64 20 64 61 74 61 20  te.    old data 
44f0: 77 69 74 68 20 7a 65 72 6f 73 2e 3c 2f 6c 69 3e  with zeros.</li>
4500: 0a 3c 6c 69 3e 44 65 74 65 63 74 20 69 6e 74 65  .<li>Detect inte
4510: 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 69 6e 20  ger overflow in 
4520: 61 62 73 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  abs().</li>.<li>
4530: 54 68 65 20 72 61 6e 64 6f 6d 28 29 20 66 75 6e  The random() fun
4540: 63 74 69 6f 6e 20 70 72 6f 76 69 64 65 73 20 36  ction provides 6
4550: 34 20 62 69 74 73 20 6f 66 20 72 61 6e 64 6f 6d  4 bits of random
4560: 6e 65 73 73 20 69 6e 73 74 65 61 64 20 6f 66 0a  ness instead of.
4570: 20 20 20 20 6f 6e 6c 79 20 33 32 20 62 69 74 73      only 32 bits
4580: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73 65  .</li>.<li>Parse
4590: 72 20 64 65 74 65 63 74 73 20 61 6e 64 20 72 65  r detects and re
45a0: 70 6f 72 74 73 20 61 75 74 6f 6d 61 74 6f 6e 20  ports automaton 
45b0: 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 2e 3c  stack overflow.<
45c0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  /li>.<li>Change 
45d0: 74 68 65 20 72 6f 75 6e 64 28 29 20 66 75 6e 63  the round() func
45e0: 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20 52  tion to return R
45f0: 45 41 4c 20 69 6e 73 74 65 61 64 20 6f 66 20 54  EAL instead of T
4600: 45 58 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c  EXT.</li>.<li>Al
4610: 6c 6f 77 20 57 48 45 52 45 20 63 6c 61 75 73 65  low WHERE clause
4620: 20 74 65 72 6d 73 20 6f 6e 20 74 68 65 20 6c 65   terms on the le
4630: 66 74 20 74 61 62 6c 65 20 6f 66 20 61 20 4c 45  ft table of a LE
4640: 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 20 74 6f  FT OUTER JOIN to
4650: 0a 20 20 20 20 63 6f 6e 74 61 69 6e 20 61 67 67  .    contain agg
4660: 72 65 67 61 74 65 20 73 75 62 71 75 65 72 69 65  regate subquerie
4670: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6b 69 70  s.</li>.<li>Skip
4680: 20 6f 76 65 72 20 6c 65 61 64 69 6e 67 20 73 70   over leading sp
4690: 61 63 65 73 20 69 6e 20 74 65 78 74 20 74 6f 20  aces in text to 
46a0: 6e 75 6d 65 72 69 63 20 63 6f 6e 76 65 72 73 69  numeric conversi
46b0: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61  ons.</li>.<li>Va
46c0: 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75 67 20  rious minor bug 
46d0: 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  and documentatio
46e0: 6e 20 74 79 70 6f 20 66 69 78 65 73 20 61 6e 64  n typo fixes and
46f0: 0a 20 20 20 20 70 65 72 66 6f 72 6d 61 6e 63 65  .    performance
4700: 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f   enhancements.</
4710: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4720: 36 20 46 65 62 72 75 61 72 79 20 31 31 20 28 33  6 February 11 (3
4730: 2e 33 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .3.4)} {.<li>Fix
4740: 20 61 20 62 6c 75 6e 64 65 72 20 69 6e 20 74 68   a blunder in th
4750: 65 20 55 6e 69 78 20 6d 75 74 65 78 20 69 6d 70  e Unix mutex imp
4760: 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 74 68 61 74  lementation that
4770: 20 63 61 6e 20 6c 65 61 64 20 74 6f 0a 64 65 61   can lead to.dea
4780: 64 6c 6f 63 6b 20 6f 6e 20 6d 75 6c 74 69 74 68  dlock on multith
4790: 72 65 61 64 65 64 20 73 79 73 74 65 6d 73 2e 3c  readed systems.<
47a0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20  /li>.<li>Fix an 
47b0: 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65  alignment proble
47c0: 6d 20 6f 6e 20 36 34 2d 62 69 74 20 6d 61 63 68  m on 64-bit mach
47d0: 69 6e 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ines</li>.<li>Ad
47e0: 64 65 64 20 74 68 65 20 66 75 6c 6c 66 73 79 6e  ded the fullfsyn
47f0: 63 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c  c pragma.</li>.<
4800: 6c 69 3e 46 69 78 20 61 6e 20 6f 70 74 69 6d 69  li>Fix an optimi
4810: 7a 65 72 20 62 75 67 20 74 68 61 74 20 63 6f 75  zer bug that cou
4820: 6c 64 20 68 61 76 65 20 63 61 75 73 65 64 20 73  ld have caused s
4830: 6f 6d 65 20 75 6e 75 73 75 61 6c 20 4c 45 46 54  ome unusual LEFT
4840: 20 4f 55 54 45 52 20 4a 4f 49 4e 73 0a 74 6f 20   OUTER JOINs.to 
4850: 67 69 76 65 20 69 6e 63 6f 72 72 65 63 74 20 72  give incorrect r
4860: 65 73 75 6c 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  esults.</li>.<li
4870: 3e 54 68 65 20 53 55 4d 20 66 75 6e 63 74 69 6f  >The SUM functio
4880: 6e 20 64 65 74 65 63 74 73 20 69 6e 74 65 67 65  n detects intege
4890: 72 20 6f 76 65 72 66 6c 6f 77 20 61 6e 64 20 63  r overflow and c
48a0: 6f 6e 76 65 72 74 73 20 74 6f 20 61 63 63 75 6d  onverts to accum
48b0: 75 6c 61 74 69 6e 67 0a 61 6e 20 61 70 70 72 6f  ulating.an appro
48c0: 78 69 6d 61 74 65 20 72 65 73 75 6c 74 20 75 73  ximate result us
48d0: 69 6e 67 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69  ing floating poi
48e0: 6e 74 20 6e 75 6d 62 65 72 73 3c 2f 6c 69 3e 0a  nt numbers</li>.
48f0: 3c 6c 69 3e 48 6f 73 74 20 70 61 72 61 6d 65 74  <li>Host paramet
4900: 65 72 20 6e 61 6d 65 73 20 63 61 6e 20 62 65 67  er names can beg
4910: 69 6e 20 77 69 74 68 20 27 40 27 20 66 6f 72 20  in with '@' for 
4920: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69  compatibility wi
4930: 74 68 20 53 51 4c 20 53 65 72 76 65 72 2e 0a 3c  th SQL Server..<
4940: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
4950: 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 62 75 67  iscellaneous bug
4960: 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63   fixes</li>.}..c
4970: 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75 61 72  hng {2006 Januar
4980: 79 20 33 31 20 28 33 2e 33 2e 33 29 7d 20 7b 0a  y 31 (3.3.3)} {.
4990: 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 75 70 70  <li>Removed supp
49a0: 6f 72 74 20 66 6f 72 20 61 6e 20 4f 4e 20 43 4f  ort for an ON CO
49b0: 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 20 6f 6e  NFLICT clause on
49c0: 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 2d 20   CREATE INDEX - 
49d0: 69 74 20 6e 65 76 65 72 0a 77 6f 72 6b 65 64 20  it never.worked 
49e0: 63 6f 72 72 65 63 74 6c 79 20 73 6f 20 74 68 69  correctly so thi
49f0: 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 70 72 65  s should not pre
4a00: 73 65 6e 74 20 61 6e 79 20 62 61 63 6b 77 61 72  sent any backwar
4a10: 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a  d compatibility.
4a20: 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c  problems.</li>.<
4a30: 6c 69 3e 41 75 74 68 6f 72 69 7a 65 72 20 63 61  li>Authorizer ca
4a40: 6c 6c 62 61 63 6b 20 6e 6f 77 20 6e 6f 74 69 66  llback now notif
4a50: 69 65 64 20 6f 66 20 41 4c 54 45 52 20 54 41 42  ied of ALTER TAB
4a60: 4c 45 20 41 44 44 20 43 4f 4c 55 4d 4e 20 63 6f  LE ADD COLUMN co
4a70: 6d 6d 61 6e 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  mmands</li>.<li>
4a80: 41 66 74 65 72 20 61 6e 79 20 63 68 61 6e 67 65  After any change
4a90: 73 20 74 6f 20 74 68 65 20 54 45 4d 50 20 64 61  s to the TEMP da
4aa0: 74 61 62 61 73 65 20 73 63 68 65 6d 61 2c 20 61  tabase schema, a
4ab0: 6c 6c 20 70 72 65 70 61 72 65 64 20 73 74 61 74  ll prepared stat
4ac0: 65 6d 65 6e 74 73 0a 61 72 65 20 69 6e 76 61 6c  ements.are inval
4ad0: 69 64 61 74 65 64 20 61 6e 64 20 6d 75 73 74 20  idated and must 
4ae0: 62 65 20 72 65 63 72 65 61 74 65 64 20 75 73 69  be recreated usi
4af0: 6e 67 20 61 20 6e 65 77 20 63 61 6c 6c 20 74 6f  ng a new call to
4b00: 0a 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72 65  .sqlite3_prepare
4b10: 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65  ()</li>.<li>Othe
4b20: 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65  r minor bug fixe
4b30: 73 20 69 6e 20 70 72 65 70 61 72 61 74 69 6f 6e  s in preparation
4b40: 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 73   for the first s
4b50: 74 61 62 6c 65 20 72 65 6c 65 61 73 65 0a 6f 66  table release.of
4b60: 20 76 65 72 73 69 6f 6e 20 33 2e 33 3c 2f 6c 69   version 3.3</li
4b70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20  >.}..chng {2006 
4b80: 4a 61 6e 75 61 72 79 20 32 34 20 28 33 2e 33 2e  January 24 (3.3.
4b90: 32 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 42  2 beta)} {.<li>B
4ba0: 75 67 20 66 69 78 65 73 20 61 6e 64 20 73 70 65  ug fixes and spe
4bb0: 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e  ed improvements.
4bc0: 20 20 49 6d 70 72 6f 76 65 64 20 74 65 73 74 20    Improved test 
4bd0: 63 6f 76 65 72 61 67 65 2e 3c 2f 6c 69 3e 0a 3c  coverage.</li>.<
4be0: 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74 68  li>Changes to th
4bf0: 65 20 4f 53 2d 6c 61 79 65 72 20 69 6e 74 65 72  e OS-layer inter
4c00: 66 61 63 65 3a 20 6d 75 74 65 78 65 73 20 6d 75  face: mutexes mu
4c10: 73 74 20 6e 6f 77 20 62 65 20 72 65 63 75 72 73  st now be recurs
4c20: 69 76 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 69  ive.</li>.<li>Di
4c30: 73 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 75 73  scontinue the us
4c40: 65 20 6f 66 20 74 68 72 65 61 64 2d 73 70 65 63  e of thread-spec
4c50: 69 66 69 63 20 64 61 74 61 20 66 6f 72 20 6f 75  ific data for ou
4c60: 74 2d 6f 66 2d 6d 65 6d 6f 72 79 0a 65 78 63 65  t-of-memory.exce
4c70: 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 3c 2f  ption handling</
4c80: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4c90: 36 20 4a 61 6e 75 61 72 79 20 31 36 20 28 33 2e  6 January 16 (3.
4ca0: 33 2e 31 20 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c  3.1 alpha)} {.<l
4cb0: 69 3e 43 6f 75 6e 74 6c 65 73 73 20 62 75 67 20  i>Countless bug 
4cc0: 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  fixes</li>.<li>S
4cd0: 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74  peed improvement
4ce0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 61 74 61 62  s</li>.<li>Datab
4cf0: 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20  ase connections 
4d00: 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64 20  can now be used 
4d10: 62 79 20 6d 75 6c 74 69 70 6c 65 20 74 68 72 65  by multiple thre
4d20: 61 64 73 2c 20 6e 6f 74 20 6a 75 73 74 0a 74 68  ads, not just.th
4d30: 65 20 74 68 72 65 61 64 20 69 6e 20 77 68 69 63  e thread in whic
4d40: 68 20 74 68 65 79 20 77 65 72 65 20 63 72 65 61  h they were crea
4d50: 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ted.</li>.}..chn
4d60: 67 20 7b 32 30 30 36 20 4a 61 6e 75 61 72 79 20  g {2006 January 
4d70: 31 30 20 28 33 2e 33 2e 30 20 61 6c 70 68 61 29  10 (3.3.0 alpha)
4d80: 7d 20 7b 0a 3c 6c 69 3e 43 48 45 43 4b 20 63 6f  } {.<li>CHECK co
4d90: 6e 73 74 72 61 69 6e 74 73 3c 2f 6c 69 3e 0a 3c  nstraints</li>.<
4da0: 6c 69 3e 49 46 20 45 58 49 53 54 53 20 61 6e 64  li>IF EXISTS and
4db0: 20 49 46 20 4e 4f 54 20 45 58 49 53 54 53 20 63   IF NOT EXISTS c
4dc0: 6c 61 75 73 65 73 20 6f 6e 20 43 52 45 41 54 45  lauses on CREATE
4dd0: 2f 44 52 4f 50 20 54 41 42 4c 45 2f 49 4e 44 45  /DROP TABLE/INDE
4de0: 58 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 45 53 43  X.</li>.<li>DESC
4df0: 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c   indices</li>.<l
4e00: 69 3e 4d 6f 72 65 20 65 66 66 69 63 69 65 6e 74  i>More efficient
4e10: 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20 62 6f 6f   encoding of boo
4e20: 6c 65 61 6e 20 76 61 6c 75 65 73 20 72 65 73 75  lean values resu
4e30: 6c 74 69 6e 67 20 69 6e 20 73 6d 61 6c 6c 65 72  lting in smaller
4e40: 20 64 61 74 61 62 61 73 65 0a 66 69 6c 65 73 3c   database.files<
4e50: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 61 67  /li>.<li>More ag
4e60: 67 72 65 73 73 69 76 65 20 53 51 4c 49 54 45 5f  gressive SQLITE_
4e70: 4f 4d 49 54 5f 46 4c 4f 41 54 49 4e 47 5f 50 4f  OMIT_FLOATING_PO
4e80: 49 4e 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 70  INT</li>.<li>Sep
4e90: 61 72 61 74 65 20 49 4e 54 45 47 45 52 20 61 6e  arate INTEGER an
4ea0: 64 20 52 45 41 4c 20 61 66 66 69 6e 69 74 79 3c  d REAL affinity<
4eb0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
4ec0: 20 76 69 72 74 75 61 6c 20 66 75 6e 63 74 69 6f   virtual functio
4ed0: 6e 20 6c 61 79 65 72 20 66 6f 72 20 74 68 65 20  n layer for the 
4ee0: 4f 53 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69  OS interface</li
4ef0: 3e 0a 3c 6c 69 3e 22 65 78 69 73 74 73 22 20 6d  >.<li>"exists" m
4f00: 65 74 68 6f 64 20 61 64 64 65 64 20 74 6f 20 74  ethod added to t
4f10: 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65  he TCL interface
4f20: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76  </li>.<li>Improv
4f30: 65 64 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 6f  ed response to o
4f40: 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 65 72 72  ut-of-memory err
4f50: 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 61 74  ors</li>.<li>Dat
4f60: 61 62 61 73 65 20 63 61 63 68 65 20 63 61 6e 20  abase cache can 
4f70: 62 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 73 68  be optionally sh
4f80: 61 72 65 64 20 62 65 74 77 65 65 6e 20 63 6f 6e  ared between con
4f90: 6e 65 63 74 69 6f 6e 73 0a 69 6e 20 74 68 65 20  nections.in the 
4fa0: 73 61 6d 65 20 74 68 72 65 61 64 3c 2f 6c 69 3e  same thread</li>
4fb0: 0a 3c 6c 69 3e 4f 70 74 69 6f 6e 61 6c 20 52 45  .<li>Optional RE
4fc0: 41 44 20 55 4e 43 4f 4d 4d 49 54 54 45 44 20 69  AD UNCOMMITTED i
4fd0: 73 6f 6c 61 74 69 6f 6e 20 28 69 6e 73 74 65 61  solation (instea
4fe0: 64 20 6f 66 20 74 68 65 20 64 65 66 61 75 6c 74  d of the default
4ff0: 0a 69 73 6f 6c 61 74 69 6f 6e 20 6c 65 76 65 6c  .isolation level
5000: 20 6f 66 20 53 45 52 49 41 4c 49 5a 41 42 4c 45   of SERIALIZABLE
5010: 29 20 61 6e 64 20 74 61 62 6c 65 20 6c 65 76 65  ) and table leve
5020: 6c 20 6c 6f 63 6b 69 6e 67 20 77 68 65 6e 0a 64  l locking when.d
5030: 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69  atabase connecti
5040: 6f 6e 73 20 73 68 61 72 65 20 61 20 63 6f 6d 6d  ons share a comm
5050: 6f 6e 20 63 61 63 68 65 2e 3c 2f 6c 69 3e 0a 7d  on cache.</li>.}
5060: 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 44 65 63  ..chng {2005 Dec
5070: 65 6d 62 65 72 20 31 39 20 28 33 2e 32 2e 38 29  ember 19 (3.2.8)
5080: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 6f  } {.<li>Fix an o
5090: 62 73 63 75 72 65 20 62 75 67 20 74 68 61 74 20  bscure bug that 
50a0: 63 61 6e 20 63 61 75 73 65 20 64 61 74 61 62 61  can cause databa
50b0: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 75 6e  se corruption un
50c0: 64 65 72 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e  der the.followin
50d0: 67 20 75 6e 75 73 75 61 6c 20 63 69 72 63 75 6d  g unusual circum
50e0: 73 74 61 6e 63 65 73 3a 20 41 20 6c 61 72 67 65  stances: A large
50f0: 20 49 4e 53 45 52 54 20 6f 72 20 55 50 44 41 54   INSERT or UPDAT
5100: 45 20 73 74 61 74 65 6d 65 6e 74 20 77 68 69 63  E statement whic
5110: 68 20 0a 69 73 20 70 61 72 74 20 6f 66 20 61 6e  h .is part of an
5120: 20 65 76 65 6e 20 6c 61 72 67 65 72 20 74 72 61   even larger tra
5130: 6e 73 61 63 74 69 6f 6e 20 66 61 69 6c 73 20 64  nsaction fails d
5140: 75 65 20 74 6f 20 61 20 75 6e 69 71 75 65 6e 65  ue to a uniquene
5150: 73 73 20 63 6f 6e 74 72 61 69 6e 74 0a 62 75 74  ss contraint.but
5160: 20 74 68 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20   the containing 
5170: 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6d 6d  transaction comm
5180: 69 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  its.</li>.}..chn
5190: 67 20 7b 32 30 30 35 20 44 65 63 65 6d 62 65 72  g {2005 December
51a0: 20 31 39 20 28 32 2e 38 2e 31 37 29 7d 20 7b 0a   19 (2.8.17)} {.
51b0: 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 62 73 63 75  <li>Fix an obscu
51c0: 72 65 20 62 75 67 20 74 68 61 74 20 63 61 6e 20  re bug that can 
51d0: 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63  cause database c
51e0: 6f 72 72 75 70 74 69 6f 6e 20 75 6e 64 65 72 20  orruption under 
51f0: 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 75 6e  the.following un
5200: 75 73 75 61 6c 20 63 69 72 63 75 6d 73 74 61 6e  usual circumstan
5210: 63 65 73 3a 20 41 20 6c 61 72 67 65 20 49 4e 53  ces: A large INS
5220: 45 52 54 20 6f 72 20 55 50 44 41 54 45 20 73 74  ERT or UPDATE st
5230: 61 74 65 6d 65 6e 74 20 77 68 69 63 68 20 0a 69  atement which .i
5240: 73 20 70 61 72 74 20 6f 66 20 61 6e 20 65 76 65  s part of an eve
5250: 6e 20 6c 61 72 67 65 72 20 74 72 61 6e 73 61 63  n larger transac
5260: 74 69 6f 6e 20 66 61 69 6c 73 20 64 75 65 20 74  tion fails due t
5270: 6f 20 61 20 75 6e 69 71 75 65 6e 65 73 73 20 63  o a uniqueness c
5280: 6f 6e 74 72 61 69 6e 74 0a 62 75 74 20 74 68 65  ontraint.but the
5290: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 72 61 6e   containing tran
52a0: 73 61 63 74 69 6f 6e 20 63 6f 6d 6d 69 74 73 2e  saction commits.
52b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
52c0: 30 30 35 20 53 65 70 74 65 6d 62 65 72 20 32 34  005 September 24
52d0: 20 28 33 2e 32 2e 37 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.7)} {.<li>
52e0: 47 52 4f 55 50 20 42 59 20 6e 6f 77 20 63 6f 6e  GROUP BY now con
52f0: 73 69 64 65 72 73 20 4e 55 4c 4c 73 20 74 6f 20  siders NULLs to 
5300: 62 65 20 65 71 75 61 6c 20 61 67 61 69 6e 2c 20  be equal again, 
5310: 61 73 20 69 74 20 73 68 6f 75 6c 64 0a 3c 2f 6c  as it should.</l
5320: 69 3e 0a 3c 6c 69 3e 4e 6f 77 20 63 6f 6d 70 69  i>.<li>Now compi
5330: 6c 65 73 20 6f 6e 20 53 6f 6c 61 72 69 73 20 61  les on Solaris a
5340: 6e 64 20 4f 70 65 6e 42 53 44 20 61 6e 64 20 6f  nd OpenBSD and o
5350: 74 68 65 72 20 55 6e 69 78 20 76 61 72 69 61 6e  ther Unix varian
5360: 74 73 0a 74 68 61 74 20 6c 61 63 6b 20 74 68 65  ts.that lack the
5370: 20 66 64 61 74 61 73 79 6e 63 28 29 20 66 75 6e   fdatasync() fun
5380: 63 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  ction</li>.<li>N
5390: 6f 77 20 63 6f 6d 70 69 6c 65 73 20 6f 6e 20 4d  ow compiles on M
53a0: 53 56 43 2b 2b 36 20 61 67 61 69 6e 3c 2f 6c 69  SVC++6 again</li
53b0: 3e 0a 3c 6c 69 3e 46 69 78 20 75 6e 69 6e 69 74  >.<li>Fix uninit
53c0: 69 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65  ialized variable
53d0: 73 20 63 61 75 73 69 6e 67 20 6d 61 6c 66 75 6e  s causing malfun
53e0: 63 74 69 6f 6e 73 20 66 6f 72 20 76 61 72 69 6f  ctions for vario
53f0: 75 73 20 6f 62 73 63 75 72 65 0a 71 75 65 72 69  us obscure.queri
5400: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72  es</li>.<li>Corr
5410: 65 63 74 6c 79 20 63 6f 6d 70 75 74 65 20 61 20  ectly compute a 
5420: 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73  LEFT OUTER JOINs
5430: 20 74 68 61 74 20 69 73 20 63 6f 6e 73 74 72 61   that is constra
5440: 69 6e 65 64 20 6f 6e 20 74 68 65 0a 6c 65 66 74  ined on the.left
5450: 20 74 61 62 6c 65 20 6f 6e 6c 79 3c 2f 6c 69 3e   table only</li>
5460: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 53  .}..chng {2005 S
5470: 65 70 74 65 6d 62 65 72 20 31 37 20 28 33 2e 32  eptember 17 (3.2
5480: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .6)} {.<li>Fix a
5490: 20 62 75 67 20 74 68 61 74 20 63 61 6e 20 63 61   bug that can ca
54a0: 75 73 65 20 64 61 74 61 62 61 73 65 20 63 6f 72  use database cor
54b0: 72 75 70 74 69 6f 6e 20 69 66 20 61 20 56 41 43  ruption if a VAC
54c0: 55 55 4d 20 28 6f 72 0a 20 20 20 20 61 75 74 6f  UUM (or.    auto
54d0: 76 61 63 75 75 6d 29 20 66 61 69 6c 73 20 61 6e  vacuum) fails an
54e0: 64 20 69 73 20 72 6f 6c 6c 65 64 20 62 61 63 6b  d is rolled back
54f0: 20 6f 6e 20 61 20 64 61 74 61 62 61 73 65 20 74   on a database t
5500: 68 61 74 20 69 73 0a 20 20 20 20 6c 61 72 67 65  hat is.    large
5510: 72 20 74 68 61 6e 20 31 47 69 42 3c 2f 6c 69 3e  r than 1GiB</li>
5520: 0a 3c 6c 69 3e 4c 49 4b 45 20 6f 70 74 69 69 7a  .<li>LIKE optiiz
5530: 61 74 69 6f 6e 20 6e 6f 77 20 77 6f 72 6b 73 20  ation now works 
5540: 66 6f 72 20 63 6f 6c 75 6d 6e 73 20 77 69 74 68  for columns with
5550: 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45 3c   COLLATE NOCASE<
5560: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20 42  /li>.<li>ORDER B
5570: 59 20 61 6e 64 20 47 52 4f 55 50 20 42 59 20 6e  Y and GROUP BY n
5580: 6f 77 20 75 73 65 20 62 6f 75 6e 64 65 64 20 6d  ow use bounded m
5590: 65 6d 6f 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  emory</li>.<li>A
55a0: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
55b0: 20 43 4f 55 4e 54 28 44 49 53 54 49 4e 43 54 20   COUNT(DISTINCT 
55c0: 65 78 70 72 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  expr)</li>.<li>C
55d0: 68 61 6e 67 65 20 74 68 65 20 77 61 79 20 53 55  hange the way SU
55e0: 4d 28 29 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c  M() handles NULL
55f0: 20 76 61 6c 75 65 73 20 69 6e 20 6f 72 64 65 72   values in order
5600: 20 74 6f 20 63 6f 6d 70 6c 79 20 77 69 74 68 0a   to comply with.
5610: 20 20 20 20 74 68 65 20 53 51 4c 20 73 74 61 6e      the SQL stan
5620: 64 61 72 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73  dard</li>.<li>Us
5630: 65 20 66 64 61 74 61 73 79 6e 63 28 29 20 69 6e  e fdatasync() in
5640: 73 74 65 61 64 20 6f 66 20 66 73 79 6e 63 28 29  stead of fsync()
5650: 20 77 68 65 72 65 20 70 6f 73 73 69 62 6c 65 20   where possible 
5660: 69 6e 20 6f 72 64 65 72 20 74 6f 20 73 70 65 65  in order to spee
5670: 64 0a 20 20 20 20 75 70 20 63 6f 6d 6d 69 74 73  d.    up commits
5680: 20 73 6c 69 67 68 74 6c 79 3c 2f 6c 69 3e 0a 3c   slightly</li>.<
5690: 6c 69 3e 55 73 65 20 6f 66 20 74 68 65 20 43 52  li>Use of the CR
56a0: 4f 53 53 20 6b 65 79 77 6f 72 64 20 69 6e 20 61  OSS keyword in a
56b0: 20 6a 6f 69 6e 20 74 75 72 6e 73 20 6f 66 66 20   join turns off 
56c0: 74 68 65 20 74 61 62 6c 65 20 72 65 6f 72 64 65  the table reorde
56d0: 72 69 6e 67 0a 20 20 20 20 6f 70 74 69 6d 69 7a  ring.    optimiz
56e0: 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ation</li>.<li>A
56f0: 64 64 65 64 20 74 68 65 20 65 78 70 65 72 69 6d  dded the experim
5700: 65 6e 74 61 6c 20 61 6e 64 20 75 6e 64 6f 63 75  ental and undocu
5710: 6d 65 6e 74 65 64 20 45 58 50 4c 41 49 4e 20 51  mented EXPLAIN Q
5720: 55 45 52 59 20 50 4c 41 4e 20 63 61 70 61 62 69  UERY PLAN capabi
5730: 6c 69 74 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73  lity</li>.<li>Us
5740: 65 20 74 68 65 20 75 6e 69 63 6f 64 65 20 41 50  e the unicode AP
5750: 49 20 69 6e 20 77 69 6e 64 6f 77 73 3c 2f 6c 69  I in windows</li
5760: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
5770: 41 75 67 75 73 74 20 32 37 20 28 33 2e 32 2e 35  August 27 (3.2.5
5780: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
5790: 75 67 20 65 66 66 65 63 74 69 6e 67 20 44 45 4c  ug effecting DEL
57a0: 45 54 45 20 61 6e 64 20 55 50 44 41 54 45 20 73  ETE and UPDATE s
57b0: 74 61 74 65 6d 65 6e 74 73 20 74 68 61 74 20 63  tatements that c
57c0: 68 61 6e 67 65 64 0a 6d 6f 72 65 20 74 68 61 6e  hanged.more than
57d0: 20 34 30 39 36 30 20 72 6f 77 73 2e 3c 2f 6c 69   40960 rows.</li
57e0: 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  >.<li>Change the
57f0: 20 6d 61 6b 65 66 69 6c 65 20 73 6f 20 74 68 61   makefile so tha
5800: 74 20 69 74 20 6e 6f 20 6c 6f 6e 67 65 72 20 72  t it no longer r
5810: 65 71 75 69 72 65 73 20 47 4e 55 6d 61 6b 65 20  equires GNUmake 
5820: 65 78 74 65 6e 73 69 6f 6e 73 3c 2f 6c 69 3e 0a  extensions</li>.
5830: 3c 6c 69 3e 46 69 78 20 74 68 65 20 2d 2d 65 6e  <li>Fix the --en
5840: 61 62 6c 65 2d 74 68 72 65 61 64 73 61 66 65 20  able-threadsafe 
5850: 6f 70 74 69 6f 6e 20 6f 6e 20 74 68 65 20 63 6f  option on the co
5860: 6e 66 69 67 75 72 65 20 73 63 72 69 70 74 3c 2f  nfigure script</
5870: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f  li>.<li>Fix a co
5880: 64 65 20 67 65 6e 65 72 61 74 6f 72 20 62 75 67  de generator bug
5890: 20 74 68 61 74 20 6f 63 63 75 72 73 20 77 68 65   that occurs whe
58a0: 6e 20 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 20  n the left-hand 
58b0: 73 69 64 65 20 6f 66 20 61 6e 20 49 4e 0a 6f 70  side of an IN.op
58c0: 65 72 61 74 6f 72 20 69 73 20 63 6f 6e 73 74 61  erator is consta
58d0: 6e 74 20 61 6e 64 20 74 68 65 20 72 69 67 68 74  nt and the right
58e0: 2d 68 61 6e 64 20 73 69 64 65 20 69 73 20 61 20  -hand side is a 
58f0: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
5900: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 50 52  </li>.<li>The PR
5910: 41 47 4d 41 20 73 79 6e 63 68 72 6f 6e 6f 75 73  AGMA synchronous
5920: 3d 6f 66 66 20 73 74 61 74 65 6d 65 6e 74 20 6e  =off statement n
5930: 6f 77 20 64 69 73 61 62 6c 65 73 20 73 79 6e 63  ow disables sync
5940: 69 6e 67 20 6f 66 20 74 68 65 0a 6d 61 73 74 65  ing of the.maste
5950: 72 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 69  r journal file i
5960: 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68  n addition to th
5970: 65 20 6e 6f 72 6d 61 6c 20 72 6f 6c 6c 62 61 63  e normal rollbac
5980: 6b 20 6a 6f 75 72 6e 61 6c 73 3c 2f 6c 69 3e 0a  k journals</li>.
5990: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 41 75  }..chng {2005 Au
59a0: 67 75 73 74 20 32 34 20 28 33 2e 32 2e 34 29 7d  gust 24 (3.2.4)}
59b0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
59c0: 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 74   introduced in t
59d0: 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65  he previous rele
59e0: 61 73 65 0a 74 68 61 74 20 63 61 6e 20 63 61 75  ase.that can cau
59f0: 73 65 20 61 20 73 65 67 66 61 75 6c 74 20 77 68  se a segfault wh
5a00: 69 6c 65 20 67 65 6e 65 72 61 74 69 6e 67 20 63  ile generating c
5a10: 6f 64 65 0a 66 6f 72 20 63 6f 6d 70 6c 65 78 20  ode.for complex 
5a20: 57 48 45 52 45 20 63 6c 61 75 73 65 73 2e 3c 2f  WHERE clauses.</
5a30: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 66 6c  li>.<li>Allow fl
5a40: 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6c 69 74  oating point lit
5a50: 65 72 61 6c 73 20 74 6f 20 62 65 67 69 6e 20 6f  erals to begin o
5a60: 72 20 65 6e 64 20 77 69 74 68 20 61 20 64 65 63  r end with a dec
5a70: 69 6d 61 6c 20 70 6f 69 6e 74 2e 3c 2f 6c 69 3e  imal point.</li>
5a80: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 41  .}..chng {2005 A
5a90: 75 67 75 73 74 20 32 31 20 28 33 2e 32 2e 33 29  ugust 21 (3.2.3)
5aa0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  } {.<li>Added su
5ab0: 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 43 41  pport for the CA
5ac0: 53 54 20 6f 70 65 72 61 74 6f 72 3c 2f 6c 69 3e  ST operator</li>
5ad0: 0a 3c 6c 69 3e 54 63 6c 20 69 6e 74 65 72 66 61  .<li>Tcl interfa
5ae0: 63 65 20 61 6c 6c 6f 77 73 20 42 4c 4f 42 20 76  ce allows BLOB v
5af0: 61 6c 75 65 73 20 74 6f 20 62 65 20 74 72 61 6e  alues to be tran
5b00: 73 66 65 72 72 65 64 20 74 6f 20 75 73 65 72 2d  sferred to user-
5b10: 64 65 66 69 6e 65 64 0a 66 75 6e 63 74 69 6f 6e  defined.function
5b20: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
5b30: 20 74 68 65 20 22 74 72 61 6e 73 61 63 74 69 6f   the "transactio
5b40: 6e 22 20 6d 65 74 68 6f 64 20 74 6f 20 74 68 65  n" method to the
5b50: 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65 3c 2f   Tcl interface</
5b60: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68  li>.<li>Allow th
5b70: 65 20 44 45 46 41 55 4c 54 20 76 61 6c 75 65 20  e DEFAULT value 
5b80: 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 74 6f 20 63  of a column to c
5b90: 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 73 20 74 68  all functions th
5ba0: 61 74 20 68 61 76 65 20 63 6f 6e 73 74 61 6e 74  at have constant
5bb0: 0a 6f 70 65 72 61 6e 64 73 3c 2f 6c 69 3e 0a 3c  .operands</li>.<
5bc0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 41 4e 41  li>Added the ANA
5bd0: 4c 59 5a 45 20 63 6f 6d 6d 61 6e 64 20 66 6f 72  LYZE command for
5be0: 20 67 61 74 68 65 72 69 6e 67 20 73 74 61 74 69   gathering stati
5bf0: 73 74 69 63 73 20 6f 6e 20 69 6e 64 69 63 65 73  stics on indices
5c00: 20 61 6e 64 0a 75 73 69 6e 67 20 74 68 6f 73 65   and.using those
5c10: 20 73 74 61 74 69 73 74 69 63 73 20 77 68 65 6e   statistics when
5c20: 20 70 69 63 6b 69 6e 67 20 61 6e 20 69 6e 64 65   picking an inde
5c30: 78 20 69 6e 20 74 68 65 20 6f 70 74 69 6d 69 7a  x in the optimiz
5c40: 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  er</li>.<li>Remo
5c50: 76 65 20 74 68 65 20 6c 69 6d 69 74 20 28 66 6f  ve the limit (fo
5c60: 72 6d 65 72 6c 79 20 31 30 30 29 20 6f 6e 20 74  rmerly 100) on t
5c70: 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 65 72  he number of ter
5c80: 6d 73 20 69 6e 20 74 68 65 0a 57 48 45 52 45 20  ms in the.WHERE 
5c90: 63 6c 61 75 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  clause</li>.<li>
5ca0: 54 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20 73  The right-hand s
5cb0: 69 64 65 20 6f 66 20 74 68 65 20 49 4e 20 6f 70  ide of the IN op
5cc0: 65 72 61 74 6f 72 20 63 61 6e 20 6e 6f 77 20 62  erator can now b
5cd0: 65 20 61 20 6c 69 73 74 20 6f 66 20 65 78 70 72  e a list of expr
5ce0: 65 73 73 69 6f 6e 73 0a 69 6e 73 74 65 61 64 20  essions.instead 
5cf0: 6f 66 20 6a 75 73 74 20 61 20 6c 69 73 74 20 6f  of just a list o
5d00: 66 20 63 6f 6e 73 74 61 6e 74 73 3c 2f 6c 69 3e  f constants</li>
5d10: 0a 3c 6c 69 3e 52 65 77 6f 72 6b 20 74 68 65 20  .<li>Rework the 
5d20: 6f 70 74 69 6d 69 7a 65 72 20 73 6f 20 74 68 61  optimizer so tha
5d30: 74 20 69 74 20 69 73 20 61 62 6c 65 20 74 6f 20  t it is able to 
5d40: 6d 61 6b 65 20 62 65 74 74 65 72 20 75 73 65 20  make better use 
5d50: 6f 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a  of indices</li>.
5d60: 3c 6c 69 3e 54 68 65 20 6f 72 64 65 72 20 6f 66  <li>The order of
5d70: 20 74 61 62 6c 65 73 20 69 6e 20 61 20 6a 6f 69   tables in a joi
5d80: 6e 20 69 73 20 61 64 6a 75 73 74 65 64 20 61 75  n is adjusted au
5d90: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 6f 20 6d  tomatically to m
5da0: 61 6b 65 0a 62 65 74 74 65 72 20 75 73 65 20 6f  ake.better use o
5db0: 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c  f indices</li>.<
5dc0: 6c 69 3e 54 68 65 20 49 4e 20 6f 70 65 72 61 74  li>The IN operat
5dd0: 6f 72 20 69 73 20 6e 6f 77 20 61 20 63 61 6e 64  or is now a cand
5de0: 69 64 61 74 65 20 66 6f 72 20 6f 70 74 69 6d 69  idate for optimi
5df0: 7a 61 74 69 6f 6e 20 65 76 65 6e 20 69 66 20 74  zation even if t
5e00: 68 65 20 6c 65 66 74 2d 68 61 6e 64 0a 73 69 64  he left-hand.sid
5e10: 65 20 69 73 20 6e 6f 74 20 74 68 65 20 6c 65 66  e is not the lef
5e20: 74 2d 6d 6f 73 74 20 74 65 72 6d 20 6f 66 20 74  t-most term of t
5e30: 68 65 20 69 6e 64 65 78 2e 20 20 4d 75 6c 74 69  he index.  Multi
5e40: 70 6c 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 73  ple IN operators
5e50: 20 63 61 6e 20 62 65 0a 75 73 65 64 20 77 69 74   can be.used wit
5e60: 68 20 74 68 65 20 73 61 6d 65 20 69 6e 64 65 78  h the same index
5e70: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 48 45 52 45  .</li>.<li>WHERE
5e80: 20 63 6c 61 75 73 65 20 65 78 70 72 65 73 73 69   clause expressi
5e90: 6f 6e 73 20 75 73 69 6e 67 20 42 45 54 57 45 45  ons using BETWEE
5ea0: 4e 20 61 6e 64 20 4f 52 20 61 72 65 20 6e 6f 77  N and OR are now
5eb0: 20 63 61 6e 64 69 64 61 74 65 73 0a 66 6f 72 20   candidates.for 
5ec0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f 6c 69  optimization</li
5ed0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
5ee0: 22 63 61 73 65 5f 73 65 6e 73 69 74 69 76 65 5f  "case_sensitive_
5ef0: 6c 69 6b 65 22 20 70 72 61 67 6d 61 20 61 6e 64  like" pragma and
5f00: 20 74 68 65 20 53 51 4c 49 54 45 5f 43 41 53 45   the SQLITE_CASE
5f10: 5f 53 45 4e 53 49 54 49 56 45 5f 4c 49 4b 45 0a  _SENSITIVE_LIKE.
5f20: 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74  compile-time opt
5f30: 69 6f 6e 20 74 6f 20 73 65 74 20 69 74 73 20 64  ion to set its d
5f40: 65 66 61 75 6c 74 20 76 61 6c 75 65 20 74 6f 20  efault value to 
5f50: 22 6f 6e 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  "on".</li>.<li>U
5f60: 73 65 20 69 6e 64 69 63 65 73 20 74 6f 20 68 65  se indices to he
5f70: 6c 70 20 77 69 74 68 20 47 4c 4f 42 20 65 78 70  lp with GLOB exp
5f80: 72 65 73 73 69 6f 6e 73 20 61 6e 64 20 4c 49 4b  ressions and LIK
5f90: 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f  E expressions to
5fa0: 6f 0a 77 68 65 6e 20 74 68 65 20 63 61 73 65 5f  o.when the case_
5fb0: 73 65 6e 73 69 74 69 76 65 5f 6c 69 6b 65 20 70  sensitive_like p
5fc0: 72 61 67 6d 61 20 69 73 20 65 6e 61 62 6c 65 64  ragma is enabled
5fd0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
5fe0: 73 75 70 70 6f 72 74 20 66 6f 72 20 67 72 61 76  support for grav
5ff0: 65 2d 61 63 63 65 6e 74 20 71 75 6f 74 69 6e 67  e-accent quoting
6000: 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69   for compatibili
6010: 74 79 20 77 69 74 68 20 4d 79 53 51 4c 3c 2f 6c  ty with MySQL</l
6020: 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20  i>.<li>Improved 
6030: 74 65 73 74 20 63 6f 76 65 72 61 67 65 3c 2f 6c  test coverage</l
6040: 69 3e 0a 3c 6c 69 3e 44 6f 7a 65 6e 73 20 6f 66  i>.<li>Dozens of
6050: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
6060: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
6070: 30 30 35 20 4a 75 6e 65 20 31 33 20 28 33 2e 32  005 June 13 (3.2
6080: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .2)} {.<li>Added
6090: 20 74 68 65 20 73 71 6c 69 74 65 33 5f 64 62 5f   the sqlite3_db_
60a0: 68 61 6e 64 6c 65 28 29 20 41 50 49 3c 2f 6c 69  handle() API</li
60b0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
60c0: 73 71 6c 69 74 65 33 5f 67 65 74 5f 61 75 74 6f  sqlite3_get_auto
60d0: 63 6f 6d 6d 69 74 28 29 20 41 50 49 3c 2f 6c 69  commit() API</li
60e0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 52 45  >.<li>Added a RE
60f0: 47 45 58 50 20 6f 70 65 72 61 74 6f 72 20 74 6f  GEXP operator to
6100: 20 74 68 65 20 70 61 72 73 65 72 2e 20 20 54 68   the parser.  Th
6110: 65 72 65 20 69 73 20 6e 6f 20 66 75 6e 63 74 69  ere is no functi
6120: 6f 6e 20 74 6f 20 62 61 63 6b 0a 75 70 20 74 68  on to back.up th
6130: 69 73 20 6f 70 65 72 61 74 6f 72 20 69 6e 20 74  is operator in t
6140: 68 65 20 73 74 61 6e 64 61 72 64 20 62 75 69 6c  he standard buil
6150: 64 20 62 75 74 20 75 73 65 72 73 20 63 61 6e 20  d but users can 
6160: 61 64 64 20 74 68 65 69 72 20 6f 77 6e 20 75 73  add their own us
6170: 69 6e 67 0a 73 71 6c 69 74 65 33 5f 63 72 65 61  ing.sqlite3_crea
6180: 74 65 5f 66 75 6e 63 74 69 6f 6e 28 29 3c 2f 6c  te_function()</l
6190: 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70  i>.<li>Speed imp
61a0: 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20 6c 69  rovements and li
61b0: 62 72 61 72 79 20 66 6f 6f 74 70 72 69 6e 74 20  brary footprint 
61c0: 72 65 64 75 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e  reductions.</li>
61d0: 0a 3c 6c 69 3e 46 69 78 20 62 79 74 65 20 61 6c  .<li>Fix byte al
61e0: 69 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 73  ignment problems
61f0: 20 6f 6e 20 36 34 2d 62 69 74 20 61 72 63 68 69   on 64-bit archi
6200: 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c  tectures.</li>.<
6210: 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20 6d 69  li>Many, many mi
6220: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 61 6e  nor bug fixes an
6230: 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  d documentation 
6240: 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  updates.</li>.}.
6250: 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63  .chng {2005 Marc
6260: 68 20 32 39 20 28 33 2e 32 2e 31 29 7d 20 7b 0a  h 29 (3.2.1)} {.
6270: 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72 79  <li>Fix a memory
6280: 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 65 72 72 6f   allocation erro
6290: 72 20 69 6e 20 74 68 65 20 6e 65 77 20 41 44 44  r in the new ADD
62a0: 20 43 4f 4c 55 4d 4e 20 63 6f 6d 6d 65 6e 74 2e   COLUMN comment.
62b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
62c0: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
62d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
62e0: 30 35 20 4d 61 72 63 68 20 32 31 20 28 33 2e 32  05 March 21 (3.2
62f0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .0)} {.<li>Added
6300: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 4c 54   support for ALT
6310: 45 52 20 54 41 42 4c 45 20 41 44 44 20 43 4f 4c  ER TABLE ADD COL
6320: 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  UMN.</li>.<li>Ad
6330: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
6340: 74 68 65 20 22 54 22 20 73 65 70 61 72 61 74 6f  the "T" separato
6350: 72 20 69 6e 20 49 53 4f 2d 38 36 30 31 20 64 61  r in ISO-8601 da
6360: 74 65 2f 74 69 6d 65 20 73 74 72 69 6e 67 73 2e  te/time strings.
6370: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76  </li>.<li>Improv
6380: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43  ed support for C
6390: 79 67 77 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ygwin.</li>.<li>
63a0: 4e 75 6d 65 72 6f 75 73 20 62 75 67 20 66 69 78  Numerous bug fix
63b0: 65 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61  es and documenta
63c0: 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c  tion updates.</l
63d0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
63e0: 20 4d 61 72 63 68 20 31 36 20 28 33 2e 31 2e 36   March 16 (3.1.6
63f0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
6400: 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20 63 61  ug that could ca
6410: 75 73 65 20 64 61 74 61 62 61 73 65 20 63 6f 72  use database cor
6420: 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 69 6e 73  ruption when ins
6430: 65 72 74 69 6e 67 0a 20 20 20 20 72 65 63 6f 72  erting.    recor
6440: 64 20 69 6e 74 6f 20 74 61 62 6c 65 73 20 77 69  d into tables wi
6450: 74 68 20 61 72 6f 75 6e 64 20 31 32 35 20 63 6f  th around 125 co
6460: 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lumns.</li>.<li>
6470: 73 71 6c 69 74 65 33 5f 73 74 65 70 28 29 20 69  sqlite3_step() i
6480: 73 20 6e 6f 77 20 6d 75 63 68 20 6d 6f 72 65 20  s now much more 
6490: 6c 69 6b 65 6c 79 20 74 6f 20 69 6e 76 6f 6b 65  likely to invoke
64a0: 20 74 68 65 20 62 75 73 79 20 68 61 6e 64 6c 65   the busy handle
64b0: 72 0a 20 20 20 20 61 6e 64 20 6c 65 73 73 20 6c  r.    and less l
64c0: 69 6b 65 6c 79 20 74 6f 20 72 65 74 75 72 6e 20  ikely to return 
64d0: 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c 69  SQLITE_BUSY.</li
64e0: 3e 0a 3c 6c 69 3e 46 69 78 20 6d 65 6d 6f 72 79  >.<li>Fix memory
64f0: 20 6c 65 61 6b 73 20 74 68 61 74 20 75 73 65 64   leaks that used
6500: 20 74 6f 20 6f 63 63 75 72 20 61 66 74 65 72 20   to occur after 
6510: 61 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 75  a malloc() failu
6520: 72 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  re.</li>.}..chng
6530: 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31 31 20   {2005 March 11 
6540: 28 33 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 54  (3.1.5)} {.<li>T
6550: 68 65 20 69 6f 63 74 6c 20 6f 6e 20 4f 53 2d 58  he ioctl on OS-X
6560: 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 73 79 6e 63   to control sync
6570: 69 6e 67 20 74 6f 20 64 69 73 6b 20 69 73 20 46  ing to disk is F
6580: 5f 46 55 4c 4c 46 53 59 4e 43 2c 0a 20 20 20 20  _FULLFSYNC,.    
6590: 6e 6f 74 20 46 5f 46 55 4c 4c 53 59 4e 43 2e 20  not F_FULLSYNC. 
65a0: 20 54 68 65 20 70 72 65 76 69 6f 75 73 20 72 65   The previous re
65b0: 6c 65 61 73 65 20 68 61 64 20 69 74 20 77 72 6f  lease had it wro
65c0: 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ng.</li>.}..chng
65d0: 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31 30 20   {2005 March 10 
65e0: 28 33 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46  (3.1.4)} {.<li>F
65f0: 69 78 20 61 20 62 75 67 20 69 6e 20 61 75 74 6f  ix a bug in auto
6600: 76 61 63 75 75 6d 20 74 68 61 74 20 63 6f 75 6c  vacuum that coul
6610: 64 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65  d cause database
6620: 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 0a 61   corruption if.a
6630: 20 43 52 45 41 54 45 20 55 4e 49 51 55 45 20 49   CREATE UNIQUE I
6640: 4e 44 45 58 20 66 61 69 6c 73 20 62 65 63 61 75  NDEX fails becau
6650: 73 65 20 6f 66 20 61 20 63 6f 6e 73 74 72 61 69  se of a constrai
6660: 6e 74 20 76 69 6f 6c 61 74 69 6f 6e 2e 0a 54 68  nt violation..Th
6670: 69 73 20 70 72 6f 62 6c 65 6d 20 6f 6e 6c 79 20  is problem only 
6680: 6f 63 63 75 72 73 20 69 66 20 74 68 65 20 6e 65  occurs if the ne
6690: 77 20 61 75 74 6f 76 61 63 75 75 6d 20 66 65 61  w autovacuum fea
66a0: 74 75 72 65 20 69 6e 74 72 6f 64 75 63 65 64 20  ture introduced 
66b0: 69 6e 0a 76 65 72 73 69 6f 6e 20 33 2e 31 20 69  in.version 3.1 i
66c0: 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69  s turned on.</li
66d0: 3e 0a 3c 6c 69 3e 54 68 65 20 46 5f 46 55 4c 4c  >.<li>The F_FULL
66e0: 53 59 4e 43 20 69 6f 63 74 6c 20 28 63 75 72 72  SYNC ioctl (curr
66f0: 65 6e 74 6c 79 20 6f 6e 6c 79 20 73 75 70 70 6f  ently only suppo
6700: 72 74 65 64 20 6f 6e 20 4f 53 2d 58 29 20 69 73  rted on OS-X) is
6710: 20 64 69 73 61 62 6c 65 64 0a 69 66 20 74 68 65   disabled.if the
6720: 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 70 72 61   synchronous pra
6730: 67 6d 61 20 69 73 20 73 65 74 20 74 6f 20 73 6f  gma is set to so
6740: 6d 65 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68  mething other th
6750: 61 6e 20 22 66 75 6c 6c 22 2e 3c 2f 6c 69 3e 0a  an "full".</li>.
6760: 3c 6c 69 3e 41 64 64 20 61 64 64 69 74 69 6f 6e  <li>Add addition
6770: 61 6c 20 66 6f 72 77 61 72 64 20 63 6f 6d 70 61  al forward compa
6780: 74 69 62 69 6c 69 74 79 20 74 6f 20 74 68 65 20  tibility to the 
6790: 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 33  future version 3
67a0: 2e 32 20 64 61 74 61 62 61 73 65 20 0a 66 69 6c  .2 database .fil
67b0: 65 20 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c  e format.</li>.<
67c0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
67d0: 57 48 45 52 45 20 63 6c 61 75 73 65 73 20 6f 66  WHERE clauses of
67e0: 20 74 68 65 20 66 6f 72 6d 20 28 72 6f 77 69 64   the form (rowid
67f0: 3c 27 32 27 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  <'2')</li>.<li>N
6800: 65 77 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 2e  ew SQLITE_OMIT_.
6810: 2e 2e 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20  .. compile-time 
6820: 6f 70 74 69 6f 6e 73 20 61 64 64 65 64 3c 2f 6c  options added</l
6830: 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74  i>.<li>Updates t
6840: 6f 20 74 68 65 20 6d 61 6e 20 70 61 67 65 3c 2f  o the man page</
6850: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74  li>.<li>Remove t
6860: 68 65 20 75 73 65 20 6f 66 20 73 74 72 63 61 73  he use of strcas
6870: 65 63 6d 70 28 29 20 66 72 6f 6d 20 74 68 65 20  ecmp() from the 
6880: 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57  shell</li>.<li>W
6890: 69 6e 64 6f 77 73 20 44 4c 4c 20 65 78 70 6f 72  indows DLL expor
68a0: 74 73 20 73 79 6d 62 6f 6c 73 20 54 63 6c 73 71  ts symbols Tclsq
68b0: 6c 69 74 65 5f 49 6e 69 74 20 61 6e 64 20 53 71  lite_Init and Sq
68c0: 6c 69 74 65 5f 49 6e 69 74 3c 2f 6c 69 3e 0a 7d  lite_Init</li>.}
68d0: 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62  ..chng {2005 Feb
68e0: 72 75 61 72 79 20 31 39 20 28 33 2e 31 2e 33 29  ruary 19 (3.1.3)
68f0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  } {.<li>Fix a pr
6900: 6f 62 6c 65 6d 20 77 69 74 68 20 56 41 43 55 55  oblem with VACUU
6910: 4d 20 6f 6e 20 64 61 74 61 62 61 73 65 73 20 66  M on databases f
6920: 72 6f 6d 20 77 68 69 63 68 20 74 61 62 6c 65 73  rom which tables
6930: 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 41 55 54 4f   containing.AUTO
6940: 49 4e 43 52 45 4d 45 4e 54 20 68 61 76 65 20 62  INCREMENT have b
6950: 65 65 6e 20 64 72 6f 70 70 65 64 2e 3c 2f 6c 69  een dropped.</li
6960: 3e 0a 3c 6c 69 3e 41 64 64 20 66 6f 72 77 61 72  >.<li>Add forwar
6970: 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20  d compatibility 
6980: 74 6f 20 74 68 65 20 66 75 74 75 72 65 20 76 65  to the future ve
6990: 72 73 69 6f 6e 20 33 2e 32 20 64 61 74 61 62 61  rsion 3.2 databa
69a0: 73 65 20 66 69 6c 65 0a 66 6f 72 6d 61 74 2e 3c  se file.format.<
69b0: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  /li>.<li>Documen
69c0: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
69d0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
69e0: 35 20 46 65 62 72 75 61 72 79 20 31 35 20 28 33  5 February 15 (3
69f0: 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.2)} {.<li>Fix
6a00: 20 61 20 62 75 67 20 74 68 61 74 20 63 61 6e 20   a bug that can 
6a10: 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65  lead to database
6a20: 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 74   corruption if t
6a30: 68 65 72 65 20 61 72 65 20 74 77 6f 0a 6f 70 65  here are two.ope
6a40: 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f  n connections to
6a50: 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61   the same databa
6a60: 73 65 20 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65  se and one conne
6a70: 63 74 69 6f 6e 20 64 6f 65 73 20 61 20 56 41 43  ction does a VAC
6a80: 55 55 4d 0a 61 6e 64 20 74 68 65 20 73 65 63 6f  UUM.and the seco
6a90: 6e 64 20 6d 61 6b 65 73 20 73 6f 6d 65 20 63 68  nd makes some ch
6aa0: 61 6e 67 65 20 74 6f 20 74 68 65 20 64 61 74 61  ange to the data
6ab0: 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  base.</li>.<li>A
6ac0: 6c 6c 6f 77 20 22 3f 22 20 70 61 72 61 6d 65 74  llow "?" paramet
6ad0: 65 72 73 20 69 6e 20 74 68 65 20 4c 49 4d 49 54  ers in the LIMIT
6ae0: 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c   clause.</li>.<l
6af0: 69 3e 46 69 78 20 56 41 43 55 55 4d 20 73 6f 20  i>Fix VACUUM so 
6b00: 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77 69  that it works wi
6b10: 74 68 20 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54  th AUTOINCREMENT
6b20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
6b30: 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20   race condition 
6b40: 69 6e 20 41 55 54 4f 56 41 43 55 55 4d 20 74 68  in AUTOVACUUM th
6b50: 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 63  at can lead to c
6b60: 6f 72 72 75 70 74 20 64 61 74 61 62 61 73 65 73  orrupt databases
6b70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 61 20  </li>.<li>Add a 
6b80: 6e 75 6d 65 72 69 63 20 76 65 72 73 69 6f 6e 20  numeric version 
6b90: 6e 75 6d 62 65 72 20 74 6f 20 74 68 65 20 73 71  number to the sq
6ba0: 6c 69 74 65 33 2e 68 20 69 6e 63 6c 75 64 65 20  lite3.h include 
6bb0: 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  file.</li>.<li>O
6bc0: 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66  ther minor bug f
6bd0: 69 78 65 73 20 61 6e 64 20 70 65 72 66 6f 72 6d  ixes and perform
6be0: 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74  ance enhancement
6bf0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
6c00: 7b 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31  {2005 February 1
6c10: 35 20 28 32 2e 38 2e 31 36 29 7d 20 7b 0a 3c 6c  5 (2.8.16)} {.<l
6c20: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
6c30: 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74   can lead to dat
6c40: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
6c50: 20 69 66 20 74 68 65 72 65 20 61 72 65 20 74 77   if there are tw
6c60: 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63 74 69 6f  o.open connectio
6c70: 6e 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20 64  ns to the same d
6c80: 61 74 61 62 61 73 65 20 61 6e 64 20 6f 6e 65 20  atabase and one 
6c90: 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f 65 73 20  connection does 
6ca0: 61 20 56 41 43 55 55 4d 0a 61 6e 64 20 74 68 65  a VACUUM.and the
6cb0: 20 73 65 63 6f 6e 64 20 6d 61 6b 65 73 20 73 6f   second makes so
6cc0: 6d 65 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65  me change to the
6cd0: 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a   database.</li>.
6ce0: 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61  <li>Correctly ha
6cf0: 6e 64 6c 65 20 71 75 6f 74 65 64 20 6e 61 6d 65  ndle quoted name
6d00: 73 20 69 6e 20 43 52 45 41 54 45 20 49 4e 44 45  s in CREATE INDE
6d10: 58 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c  X statements.</l
6d20: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6e 61 6d  i>.<li>Fix a nam
6d30: 69 6e 67 20 63 6f 6e 66 6c 69 63 74 20 62 65 74  ing conflict bet
6d40: 77 65 65 6e 20 73 71 6c 69 74 65 2e 68 20 61 6e  ween sqlite.h an
6d50: 64 20 73 71 6c 69 74 65 33 2e 68 2e 3c 2f 6c 69  d sqlite3.h.</li
6d60: 3e 0a 3c 6c 69 3e 41 76 6f 69 64 20 65 78 63 65  >.<li>Avoid exce
6d70: 73 73 20 68 65 61 70 20 75 73 61 67 65 20 77 68  ss heap usage wh
6d80: 65 6e 20 63 6f 70 79 69 6e 67 20 65 78 70 72 65  en copying expre
6d90: 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ssions.</li>.<li
6da0: 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67  >Other minor bug
6db0: 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   fixes.</li>.}..
6dc0: 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75  chng {2005 Febru
6dd0: 61 72 79 20 31 20 28 33 2e 31 2e 31 20 42 45 54  ary 1 (3.1.1 BET
6de0: 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61  A)} {.<li>Automa
6df0: 74 69 63 20 63 61 63 68 69 6e 67 20 6f 66 20 70  tic caching of p
6e00: 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e  repared statemen
6e10: 74 73 20 69 6e 20 74 68 65 20 54 43 4c 20 69 6e  ts in the TCL in
6e20: 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69  terface</li>.<li
6e30: 3e 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41  >ATTACH and DETA
6e40: 43 48 20 61 73 20 77 65 6c 6c 20 61 73 20 73 6f  CH as well as so
6e50: 6d 65 20 6f 74 68 65 72 20 6f 70 65 72 61 74 69  me other operati
6e60: 6f 6e 73 20 63 61 75 73 65 20 65 78 69 73 74 69  ons cause existi
6e70: 6e 67 0a 20 20 20 20 70 72 65 70 61 72 65 64 20  ng.    prepared 
6e80: 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 65 78  statements to ex
6e90: 70 69 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  pire.</li>.<li>N
6ea0: 75 6d 65 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62  umerious minor b
6eb0: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
6ec0: 0a 63 68 6e 67 20 7b 32 30 30 35 20 4a 61 6e 75  .chng {2005 Janu
6ed0: 61 72 79 20 32 31 20 28 33 2e 31 2e 30 20 41 4c  ary 21 (3.1.0 AL
6ee0: 50 48 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f  PHA)} {.<li>Auto
6ef0: 76 61 63 75 75 6d 20 73 75 70 70 6f 72 74 20 61  vacuum support a
6f00: 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 55  dded</li>.<li>CU
6f10: 52 52 45 4e 54 5f 54 49 4d 45 2c 20 43 55 52 52  RRENT_TIME, CURR
6f20: 45 4e 54 5f 44 41 54 45 2c 20 61 6e 64 20 43 55  ENT_DATE, and CU
6f30: 52 52 45 4e 54 5f 54 49 4d 45 53 54 41 4d 50 20  RRENT_TIMESTAMP 
6f40: 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  added</li>.<li>S
6f50: 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 45  upport for the E
6f60: 58 49 53 54 53 20 63 6c 61 75 73 65 20 61 64 64  XISTS clause add
6f70: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70  ed.</li>.<li>Sup
6f80: 70 6f 72 74 20 66 6f 72 20 63 6f 72 72 65 6c 61  port for correla
6f90: 74 65 64 20 73 75 62 71 75 65 72 69 65 73 20 61  ted subqueries a
6fa0: 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  dded.</li>.<li>A
6fb0: 64 64 65 64 20 74 68 65 20 45 53 43 41 50 45 20  dded the ESCAPE 
6fc0: 63 6c 61 75 73 65 20 6f 6e 20 74 68 65 20 4c 49  clause on the LI
6fd0: 4b 45 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69  KE operator.</li
6fe0: 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  >.<li>Support fo
6ff0: 72 20 41 4c 54 45 52 20 54 41 42 4c 45 20 2e 2e  r ALTER TABLE ..
7000: 2e 20 52 45 4e 41 4d 45 20 54 41 42 4c 45 20 2e  . RENAME TABLE .
7010: 2e 2e 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c  .. added</li>.<l
7020: 69 3e 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 20  i>AUTOINCREMENT 
7030: 6b 65 79 77 6f 72 64 20 73 75 70 70 6f 72 74 65  keyword supporte
7040: 64 20 6f 6e 20 49 4e 54 45 47 45 52 20 50 52 49  d on INTEGER PRI
7050: 4d 41 52 59 20 4b 45 59 3c 2f 6c 69 3e 0a 3c 6c  MARY KEY</li>.<l
7060: 69 3e 4d 61 6e 79 20 53 51 4c 49 54 45 5f 4f 4d  i>Many SQLITE_OM
7070: 49 54 5f 20 6d 61 63 72 6f 73 20 69 6e 73 65 72  IT_ macros inser
7080: 74 73 20 74 6f 20 6f 6d 69 74 20 66 65 61 74 75  ts to omit featu
7090: 72 65 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74  res at compile-t
70a0: 69 6d 65 0a 20 20 20 20 61 6e 64 20 72 65 64 75  ime.    and redu
70b0: 63 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 66  ce the library f
70c0: 6f 6f 74 70 72 69 6e 74 2e 3c 2f 6c 69 3e 0a 3c  ootprint.</li>.<
70d0: 6c 69 3e 54 68 65 20 52 45 49 4e 44 45 58 20 63  li>The REINDEX c
70e0: 6f 6d 6d 61 6e 64 20 77 61 73 20 61 64 64 65 64  ommand was added
70f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 65  .</li>.<li>The e
7100: 6e 67 69 6e 65 20 6e 6f 20 6c 6f 6e 67 65 72 20  ngine no longer 
7110: 63 6f 6e 73 75 6c 74 73 20 74 68 65 20 6d 61 69  consults the mai
7120: 6e 20 74 61 62 6c 65 20 69 66 20 69 74 20 63 61  n table if it ca
7130: 6e 20 67 65 74 0a 20 20 20 20 61 6c 6c 20 74 68  n get.    all th
7140: 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 74  e information it
7150: 20 6e 65 65 64 73 20 66 72 6f 6d 20 61 6e 20 69   needs from an i
7160: 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ndex.</li>.<li>M
7170: 61 6e 79 20 6e 75 69 73 61 6e 63 65 20 62 75 67  any nuisance bug
7180: 73 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  s fixed.</li>.}.
7190: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4f 63 74 6f  .chng {2004 Octo
71a0: 62 65 72 20 31 31 20 28 33 2e 30 2e 38 29 7d 20  ber 11 (3.0.8)} 
71b0: 7b 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72  {.<li>Add suppor
71c0: 74 20 66 6f 72 20 44 45 46 45 52 52 45 44 2c 20  t for DEFERRED, 
71d0: 49 4d 4d 45 44 49 41 54 45 2c 20 61 6e 64 20 45  IMMEDIATE, and E
71e0: 58 43 4c 55 53 49 56 45 20 74 72 61 6e 73 61 63  XCLUSIVE transac
71f0: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
7200: 41 6c 6c 6f 77 20 6e 65 77 20 75 73 65 72 2d 64  Allow new user-d
7210: 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73  efined functions
7220: 20 74 6f 20 62 65 20 63 72 65 61 74 65 64 20 77   to be created w
7230: 68 65 6e 20 74 68 65 72 65 20 61 72 65 0a 61 6c  hen there are.al
7240: 72 65 61 64 79 20 6f 6e 65 20 6f 72 20 6d 6f 72  ready one or mor
7250: 65 20 70 72 65 63 6f 6d 70 69 6c 65 64 20 53 51  e precompiled SQ
7260: 4c 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 6c 69  L statements.<li
7270: 3e 0a 3c 6c 69 3e 46 69 78 20 70 6f 72 74 61 62  >.<li>Fix portab
7280: 69 6c 69 74 79 20 70 72 6f 62 6c 65 6d 73 20 66  ility problems f
7290: 6f 72 20 4d 69 6e 67 77 2f 4d 53 59 53 2e 3c 2f  or Mingw/MSYS.</
72a0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 79  li>.<li>Fix a by
72b0: 74 65 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f  te alignment pro
72c0: 62 6c 65 6d 20 6f 6e 20 36 34 2d 62 69 74 20 53  blem on 64-bit S
72d0: 70 61 72 63 20 6d 61 63 68 69 6e 65 73 2e 3c 2f  parc machines.</
72e0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20  li>.<li>Fix the 
72f0: 22 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d 61 6e  ".import" comman
7300: 64 20 6f 66 20 74 68 65 20 73 68 65 6c 6c 20 73  d of the shell s
7310: 6f 20 74 68 61 74 20 69 74 20 69 67 6e 6f 72 65  o that it ignore
7320: 73 20 5c 72 0a 63 68 61 72 61 63 74 65 72 73 20  s \r.characters 
7330: 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6c 69  at the end of li
7340: 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  nes.</li>.<li>Th
7350: 65 20 22 63 73 76 22 20 6d 6f 64 65 20 6f 70 74  e "csv" mode opt
7360: 69 6f 6e 20 69 6e 20 74 68 65 20 73 68 65 6c 6c  ion in the shell
7370: 20 70 75 74 73 20 73 74 72 69 6e 67 73 20 69 6e   puts strings in
7380: 73 69 64 65 20 64 6f 75 62 6c 65 2d 71 75 6f 74  side double-quot
7390: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
73a0: 20 74 79 70 6f 73 20 69 6e 20 64 6f 63 75 6d 65   typos in docume
73b0: 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  ntation.</li>.<l
73c0: 69 3e 43 6f 6e 76 65 72 74 20 61 72 72 61 79 20  i>Convert array 
73d0: 63 6f 6e 73 74 61 6e 74 73 20 69 6e 20 74 68 65  constants in the
73e0: 20 63 6f 64 65 20 74 6f 20 68 61 76 65 20 74 79   code to have ty
73f0: 70 65 20 22 63 6f 6e 73 74 22 2e 3c 2f 6c 69 3e  pe "const".</li>
7400: 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73 20 63 6f  .<li>Numerous co
7410: 64 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  de optimizations
7420: 2c 20 73 70 65 63 69 61 6c 6c 79 20 6f 70 74 69  , specially opti
7430: 6d 69 7a 61 74 69 6f 6e 73 20 64 65 73 69 67 6e  mizations design
7440: 65 64 20 74 6f 0a 6d 61 6b 65 20 74 68 65 20 63  ed to.make the c
7450: 6f 64 65 20 66 6f 6f 74 70 72 69 6e 74 20 73 6d  ode footprint sm
7460: 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  aller.</li>.}..c
7470: 68 6e 67 20 7b 32 30 30 34 20 53 65 70 74 65 6d  hng {2004 Septem
7480: 62 65 72 20 31 38 20 28 33 2e 30 2e 37 29 7d 20  ber 18 (3.0.7)} 
7490: 7b 0a 3c 6c 69 3e 54 68 65 20 42 54 72 65 65 20  {.<li>The BTree 
74a0: 6d 6f 64 75 6c 65 20 61 6c 6c 6f 63 61 74 65 73  module allocates
74b0: 20 6c 61 72 67 65 20 62 75 66 66 65 72 73 20 75   large buffers u
74c0: 73 69 6e 67 20 6d 61 6c 6c 6f 63 28 29 20 69 6e  sing malloc() in
74d0: 73 74 65 61 64 20 6f 66 0a 20 20 20 20 6f 66 66  stead of.    off
74e0: 20 6f 66 20 74 68 65 20 73 74 61 63 6b 2c 20 69   of the stack, i
74f0: 6e 20 6f 72 64 65 72 20 74 6f 20 70 6c 61 79 20  n order to play 
7500: 62 65 74 74 65 72 20 6f 6e 20 6d 61 63 68 69 6e  better on machin
7510: 65 73 20 77 69 74 68 20 6c 69 6d 69 74 65 64 0a  es with limited.
7520: 20 20 20 20 73 74 61 63 6b 20 73 70 61 63 65 2e      stack space.
7530: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20  </li>.<li>Fixed 
7540: 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63 74 73  naming conflicts
7550: 20 73 6f 20 74 68 61 74 20 76 65 72 73 69 6f 6e   so that version
7560: 73 20 32 2e 38 20 61 6e 64 20 33 2e 30 20 63 61  s 2.8 and 3.0 ca
7570: 6e 20 62 65 0a 20 20 20 20 6c 69 6e 6b 65 64 20  n be.    linked 
7580: 61 6e 64 20 75 73 65 64 20 74 6f 67 65 74 68 65  and used togethe
7590: 72 20 69 6e 20 74 68 65 20 73 61 6d 65 20 41 4e  r in the same AN
75a0: 53 49 2d 43 20 73 6f 75 72 63 65 20 66 69 6c 65  SI-C source file
75b0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 69  .</li>.<li>New i
75c0: 6e 74 65 72 66 61 63 65 3a 20 73 71 6c 69 74 65  nterface: sqlite
75d0: 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72  3_bind_parameter
75e0: 5f 69 6e 64 65 78 28 29 3c 2f 6c 69 3e 0a 3c 6c  _index()</li>.<l
75f0: 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f  i>Add support fo
7600: 72 20 77 69 6c 64 63 61 72 64 20 70 61 72 61 6d  r wildcard param
7610: 65 74 65 72 73 20 6f 66 20 74 68 65 20 66 6f 72  eters of the for
7620: 6d 3a 20 22 3f 6e 6e 6e 22 3c 2f 6c 69 3e 0a 3c  m: "?nnn"</li>.<
7630: 6c 69 3e 46 69 78 20 70 72 6f 62 6c 65 6d 73 20  li>Fix problems 
7640: 66 6f 75 6e 64 20 6f 6e 20 36 34 2d 62 69 74 20  found on 64-bit 
7650: 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c  systems.</li>.<l
7660: 69 3e 52 65 6d 6f 76 65 64 20 65 6e 63 6f 64 65  i>Removed encode
7670: 2e 63 20 66 69 6c 65 20 28 63 6f 6e 74 61 69 6e  .c file (contain
7680: 69 6e 67 20 75 6e 75 73 65 64 20 72 6f 75 74 69  ing unused routi
7690: 6e 65 73 29 20 66 72 6f 6d 20 74 68 65 20 0a 20  nes) from the . 
76a0: 20 20 20 76 65 72 73 69 6f 6e 20 33 2e 30 20 73     version 3.0 s
76b0: 6f 75 72 63 65 20 74 72 65 65 2e 3c 2f 6c 69 3e  ource tree.</li>
76c0: 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33  .<li>The sqlite3
76d0: 5f 74 72 61 63 65 28 29 20 63 61 6c 6c 62 61 63  _trace() callbac
76e0: 6b 73 20 6f 63 63 75 72 20 62 65 66 6f 72 65 20  ks occur before 
76f0: 65 61 63 68 20 73 74 61 74 65 6d 65 6e 74 0a 20  each statement. 
7700: 20 20 20 69 73 20 65 78 65 63 75 74 65 64 2c 20     is executed, 
7710: 6e 6f 74 20 77 68 65 6e 20 74 68 65 20 73 74 61  not when the sta
7720: 74 65 6d 65 6e 74 20 69 73 20 63 6f 6d 70 69 6c  tement is compil
7730: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  ed.</li>.<li>Mak
7740: 65 66 69 6c 65 20 75 70 64 61 74 65 73 20 61 6e  efile updates an
7750: 64 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20  d miscellaneous 
7760: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
7770: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 53 65  }..chng {2004 Se
7780: 70 74 65 6d 62 65 72 20 30 32 20 28 33 2e 30 2e  ptember 02 (3.0.
7790: 36 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 42  6 beta)} {.<li>B
77a0: 65 74 74 65 72 20 64 65 74 65 63 74 69 6f 6e 20  etter detection 
77b0: 61 6e 64 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  and handling of 
77c0: 63 6f 72 72 75 70 74 20 64 61 74 61 62 61 73 65  corrupt database
77d0: 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   files.</li>.<li
77e0: 3e 54 68 65 20 73 71 6c 69 74 65 33 5f 73 74 65  >The sqlite3_ste
77f0: 70 28 29 20 69 6e 74 65 72 66 61 63 65 20 72 65  p() interface re
7800: 74 75 72 6e 73 20 53 51 4c 49 54 45 5f 42 55 53  turns SQLITE_BUS
7810: 59 20 69 66 20 69 74 20 69 73 20 75 6e 61 62 6c  Y if it is unabl
7820: 65 0a 20 20 20 20 74 6f 20 63 6f 6d 6d 69 74 20  e.    to commit 
7830: 61 20 63 68 61 6e 67 65 20 62 65 63 61 75 73 65  a change because
7840: 20 6f 66 20 61 20 6c 6f 63 6b 3c 2f 6c 69 3e 0a   of a lock</li>.
7850: 3c 6c 69 3e 43 6f 6d 62 69 6e 65 20 74 68 65 20  <li>Combine the 
7860: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20  implementations 
7870: 6f 66 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f 42  of LIKE and GLOB
7880: 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 20   into a single. 
7890: 20 20 20 70 61 74 74 65 72 6e 2d 6d 61 74 63 68     pattern-match
78a0: 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 2e 3c  ing subroutine.<
78b0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 73 63 65 6c 6c  /li>.<li>Miscell
78c0: 61 6e 65 6f 75 73 20 63 6f 64 65 20 73 69 7a 65  aneous code size
78d0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61   optimizations a
78e0: 6e 64 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69  nd bug fixes</li
78f0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
7900: 41 75 67 75 73 74 20 32 39 20 28 33 2e 30 2e 35  August 29 (3.0.5
7910: 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 53 75   beta)} {.<li>Su
7920: 70 70 6f 72 74 20 66 6f 72 20 22 3a 41 41 41 22  pport for ":AAA"
7930: 20 73 74 79 6c 65 20 62 69 6e 64 20 70 61 72 61   style bind para
7940: 6d 65 74 65 72 20 6e 61 6d 65 73 2e 3c 2f 6c 69  meter names.</li
7950: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
7960: 6e 65 77 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  new sqlite3_bind
7970: 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65 28  _parameter_name(
7980: 29 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69  ) interface.</li
7990: 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  >.<li>Support fo
79a0: 72 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20 6e  r TCL variable n
79b0: 61 6d 65 73 20 65 6d 62 65 64 64 65 64 20 69 6e  ames embedded in
79c0: 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 20   SQL statements 
79d0: 69 6e 20 74 68 65 0a 20 20 20 20 54 43 4c 20 62  in the.    TCL b
79e0: 69 6e 64 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 3c 6c  indings.</li>.<l
79f0: 69 3e 54 68 65 20 54 43 4c 20 62 69 6e 64 69 6e  i>The TCL bindin
7a00: 67 73 20 74 72 61 6e 73 66 65 72 20 64 61 74 61  gs transfer data
7a10: 20 77 69 74 68 6f 75 74 20 6e 65 63 65 73 73 61   without necessa
7a20: 72 69 6c 79 20 64 6f 69 6e 67 20 61 20 63 6f 6e  rily doing a con
7a30: 76 65 72 73 69 6f 6e 0a 20 20 20 20 74 6f 20 61  version.    to a
7a40: 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c   string.</li>.<l
7a50: 69 3e 54 68 65 20 64 61 74 61 62 61 73 65 20 66  i>The database f
7a60: 6f 72 20 54 45 4d 50 20 74 61 62 6c 65 73 20 69  or TEMP tables i
7a70: 73 20 6e 6f 74 20 63 72 65 61 74 65 64 20 75 6e  s not created un
7a80: 74 69 6c 20 69 74 20 69 73 20 6e 65 65 64 65 64  til it is needed
7a90: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
7aa0: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70  he ability to sp
7ab0: 65 63 69 66 79 20 61 6e 20 61 6c 74 65 72 6e 61  ecify an alterna
7ac0: 74 69 76 65 20 74 65 6d 70 6f 72 61 72 79 20 66  tive temporary f
7ad0: 69 6c 65 20 64 69 72 65 63 74 6f 72 79 0a 20 20  ile directory.  
7ae0: 20 20 75 73 69 6e 67 20 74 68 65 20 22 73 71 6c    using the "sql
7af0: 69 74 65 5f 74 65 6d 70 5f 64 69 72 65 63 74 6f  ite_temp_directo
7b00: 72 79 22 20 67 6c 6f 62 61 6c 20 76 61 72 69 61  ry" global varia
7b10: 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20  ble.</li>.<li>A 
7b20: 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74  compile-time opt
7b30: 69 6f 6e 20 28 53 51 4c 49 54 45 5f 42 55 53 59  ion (SQLITE_BUSY
7b40: 5f 52 45 53 45 52 56 45 44 5f 4c 4f 43 4b 29 20  _RESERVED_LOCK) 
7b50: 63 61 75 73 65 73 20 74 68 65 20 62 75 73 79 0a  causes the busy.
7b60: 20 20 20 20 68 61 6e 64 6c 65 72 20 74 6f 20 62      handler to b
7b70: 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68  e called when th
7b80: 65 72 65 20 69 73 20 63 6f 6e 74 65 6e 74 69 6f  ere is contentio
7b90: 6e 20 66 6f 72 20 61 20 52 45 53 45 52 56 45 44  n for a RESERVED
7ba0: 20 6c 6f 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   lock.</li>.<li>
7bb0: 56 61 72 69 6f 75 73 20 62 75 67 20 66 69 78 65  Various bug fixe
7bc0: 73 20 61 6e 64 20 6f 70 74 69 6d 69 7a 61 74 69  s and optimizati
7bd0: 6f 6e 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ons</li>.}..chng
7be0: 20 7b 32 30 30 34 20 41 75 67 75 73 74 20 38 20   {2004 August 8 
7bf0: 28 33 2e 30 2e 34 20 62 65 74 61 29 7d 20 7b 0a  (3.0.4 beta)} {.
7c00: 3c 6c 69 3e 43 52 45 41 54 45 20 54 41 42 4c 45  <li>CREATE TABLE
7c10: 20 61 6e 64 20 44 52 4f 50 20 54 41 42 4c 45 20   and DROP TABLE 
7c20: 6e 6f 77 20 77 6f 72 6b 20 63 6f 72 72 65 63 74  now work correct
7c30: 6c 79 20 61 73 20 70 72 65 70 61 72 65 64 20 73  ly as prepared s
7c40: 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  tatements.</li>.
7c50: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
7c60: 20 56 41 43 55 55 4d 20 61 6e 64 20 55 4e 49 51   VACUUM and UNIQ
7c70: 55 45 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e  UE indices.</li>
7c80: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 22 2e 69  .<li>Add the ".i
7c90: 6d 70 6f 72 74 22 20 63 6f 6d 6d 61 6e 64 20 74  mport" command t
7ca0: 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69  o the command-li
7cb0: 6e 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c  ne shell.</li>.<
7cc0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
7cd0: 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 69 6e  t could cause in
7ce0: 64 65 78 20 63 6f 72 72 75 70 74 69 6f 6e 20 77  dex corruption w
7cf0: 68 65 6e 20 61 6e 20 61 74 74 65 6d 70 74 20 74  hen an attempt t
7d00: 6f 0a 20 20 20 20 64 65 6c 65 74 65 20 72 6f 77  o.    delete row
7d10: 73 20 6f 66 20 61 20 74 61 62 6c 65 20 69 73 20  s of a table is 
7d20: 62 6c 6f 63 6b 65 64 20 62 79 20 61 20 70 65 6e  blocked by a pen
7d30: 64 69 6e 67 20 71 75 65 72 79 2e 3c 2f 6c 69 3e  ding query.</li>
7d40: 0a 3c 6c 69 3e 4c 69 62 72 61 72 79 20 73 69 7a  .<li>Library siz
7d50: 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e  e optimizations.
7d60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
7d70: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e  minor bug fixes.
7d80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
7d90: 30 30 34 20 4a 75 6c 79 20 32 32 20 28 32 2e 38  004 July 22 (2.8
7da0: 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 54 68 69 73  .15)} {.<li>This
7db0: 20 69 73 20 61 20 6d 61 69 6e 74 65 6e 61 6e 63   is a maintenanc
7dc0: 65 20 72 65 6c 65 61 73 65 20 6f 6e 6c 79 2e 20  e release only. 
7dd0: 20 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62   Various minor b
7de0: 75 67 73 20 68 61 76 65 20 62 65 65 6e 0a 66 69  ugs have been.fi
7df0: 78 65 64 20 61 6e 64 20 73 6f 6d 65 20 70 6f 72  xed and some por
7e00: 74 61 62 69 6c 69 74 79 20 65 6e 68 61 6e 63 65  tability enhance
7e10: 6d 65 6e 74 73 20 61 72 65 20 61 64 64 65 64 2e  ments are added.
7e20: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
7e30: 30 30 34 20 4a 75 6c 79 20 32 32 20 28 33 2e 30  004 July 22 (3.0
7e40: 2e 33 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e  .3 beta)} {.<li>
7e50: 54 68 65 20 73 65 63 6f 6e 64 20 62 65 74 61 20  The second beta 
7e60: 72 65 6c 65 61 73 65 20 66 6f 72 20 53 51 4c 69  release for SQLi
7e70: 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 3c 6c 69  te 3.0.</li>.<li
7e80: 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72  >Add support for
7e90: 20 22 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69   "PRAGMA page_si
7ea0: 7a 65 22 20 74 6f 20 61 64 6a 75 73 74 20 74 68  ze" to adjust th
7eb0: 65 20 70 61 67 65 20 73 69 7a 65 20 6f 66 0a 74  e page size of.t
7ec0: 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69  he database.</li
7ed0: 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 62 75  >.<li>Various bu
7ee0: 67 20 66 69 78 65 73 20 61 6e 64 20 64 6f 63 75  g fixes and docu
7ef0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
7f00: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
7f10: 7b 32 30 30 34 20 4a 75 6e 65 20 33 30 20 28 33  {2004 June 30 (3
7f20: 2e 30 2e 32 20 62 65 74 61 29 7d 20 7b 0a 3c 6c  .0.2 beta)} {.<l
7f30: 69 3e 54 68 65 20 66 69 72 73 74 20 62 65 74 61  i>The first beta
7f40: 20 72 65 6c 65 61 73 65 20 66 6f 72 20 53 51 4c   release for SQL
7f50: 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 7d 0a  ite 3.0.</li>.}.
7f60: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65  .chng {2004 June
7f70: 20 32 32 20 28 33 2e 30 2e 31 20 61 6c 70 68 61   22 (3.0.1 alpha
7f80: 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74 20 63  )} {.<li><font c
7f90: 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e 0a 20  olor="red"><b>. 
7fa0: 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52 65 6c     *** Alpha Rel
7fb0: 65 61 73 65 20 2d 20 52 65 73 65 61 72 63 68 20  ease - Research 
7fc0: 41 6e 64 20 54 65 73 74 69 6e 67 20 55 73 65 20  And Testing Use 
7fd0: 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f  Only ***</b></fo
7fe0: 6e 74 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20  nt>.<li>Lots of 
7ff0: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
8000: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
8010: 6e 65 20 31 38 20 28 33 2e 30 2e 30 20 61 6c 70  ne 18 (3.0.0 alp
8020: 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74  ha)} {.<li><font
8030: 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e   color="red"><b>
8040: 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52  .    *** Alpha R
8050: 65 6c 65 61 73 65 20 2d 20 52 65 73 65 61 72 63  elease - Researc
8060: 68 20 41 6e 64 20 54 65 73 74 69 6e 67 20 55 73  h And Testing Us
8070: 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f  e Only ***</b></
8080: 66 6f 6e 74 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72  font>.<li>Suppor
8090: 74 20 66 6f 72 20 69 6e 74 65 72 6e 61 74 69 6f  t for internatio
80a0: 6e 61 6c 69 7a 61 74 69 6f 6e 20 69 6e 63 6c 75  nalization inclu
80b0: 64 69 6e 67 20 55 54 46 2d 38 2c 20 55 54 46 2d  ding UTF-8, UTF-
80c0: 31 36 2c 20 61 6e 64 0a 20 20 20 20 75 73 65 72  16, and.    user
80d0: 20 64 65 66 69 6e 65 64 20 63 6f 6c 6c 61 74 69   defined collati
80e0: 6e 67 20 73 65 71 75 65 6e 63 65 73 2e 3c 2f 6c  ng sequences.</l
80f0: 69 3e 0a 3c 6c 69 3e 4e 65 77 20 66 69 6c 65 20  i>.<li>New file 
8100: 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20 32  format that is 2
8110: 35 25 20 74 6f 20 33 35 25 20 73 6d 61 6c 6c 65  5% to 35% smalle
8120: 72 20 66 6f 72 20 74 79 70 69 63 61 6c 20 75 73  r for typical us
8130: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72  e.</li>.<li>Impr
8140: 6f 76 65 64 20 63 6f 6e 63 75 72 72 65 6e 63 79  oved concurrency
8150: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 74 6f 6d 69  .</li>.<li>Atomi
8160: 63 20 63 6f 6d 6d 69 74 73 20 66 6f 72 20 41 54  c commits for AT
8170: 54 41 43 48 65 64 20 64 61 74 61 62 61 73 65 73  TACHed databases
8180: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  .</li>.<li>Remov
8190: 65 20 63 72 75 66 74 20 66 72 6f 6d 20 74 68 65  e cruft from the
81a0: 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   APIs.</li>.<li>
81b0: 42 4c 4f 42 20 73 75 70 70 6f 72 74 2e 3c 2f 6c  BLOB support.</l
81c0: 69 3e 0a 3c 6c 69 3e 36 34 2d 62 69 74 20 72 6f  i>.<li>64-bit ro
81d0: 77 69 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c  wids.</li>.<li><
81e0: 61 20 68 72 65 66 3d 22 76 65 72 73 69 6f 6e 33  a href="version3
81f0: 2e 68 74 6d 6c 22 3e 4d 6f 72 65 20 69 6e 66 6f  .html">More info
8200: 72 6d 61 74 69 6f 6e 3c 2f 61 3e 2e 0a 7d 0a 0a  rmation</a>..}..
8210: 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65 20  chng {2004 June 
8220: 39 20 28 32 2e 38 2e 31 34 29 7d 20 7b 0a 3c 6c  9 (2.8.14)} {.<l
8230: 69 3e 46 69 78 20 74 68 65 20 6d 69 6e 28 29 20  i>Fix the min() 
8240: 61 6e 64 20 6d 61 78 28 29 20 6f 70 74 69 6d 69  and max() optimi
8250: 7a 65 72 20 73 6f 20 74 68 61 74 20 69 74 20 77  zer so that it w
8260: 6f 72 6b 73 20 77 68 65 6e 20 74 68 65 20 46 52  orks when the FR
8270: 4f 4d 0a 20 20 20 20 63 6c 61 75 73 65 20 63 6f  OM.    clause co
8280: 6e 73 69 73 74 73 20 6f 66 20 61 20 73 75 62 71  nsists of a subq
8290: 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  uery.</li>.<li>I
82a0: 67 6e 6f 72 65 20 65 78 74 72 61 20 77 68 69 74  gnore extra whit
82b0: 65 73 70 61 63 65 20 61 74 20 74 68 65 20 65 6e  espace at the en
82c0: 64 20 6f 66 20 6f 66 20 22 2e 22 20 63 6f 6d 6d  d of of "." comm
82d0: 61 6e 64 73 20 69 6e 20 74 68 65 20 73 68 65 6c  ands in the shel
82e0: 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 6e 64  l.</li>.<li>Bund
82f0: 6c 65 20 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65  le sqlite_encode
8300: 5f 62 69 6e 61 72 79 28 29 20 61 6e 64 20 73 71  _binary() and sq
8310: 6c 69 74 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61  lite_decode_bina
8320: 72 79 28 29 20 77 69 74 68 20 74 68 65 20 0a 20  ry() with the . 
8330: 20 20 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e     library.</li>
8340: 0a 3c 6c 69 3e 54 68 65 20 54 45 4d 50 5f 53 54  .<li>The TEMP_ST
8350: 4f 52 45 20 61 6e 64 20 44 45 46 41 55 4c 54 5f  ORE and DEFAULT_
8360: 54 45 4d 50 5f 53 54 4f 52 45 20 70 72 61 67 6d  TEMP_STORE pragm
8370: 61 73 20 6e 6f 77 20 77 6f 72 6b 2e 3c 2f 6c 69  as now work.</li
8380: 3e 0a 3c 6c 69 3e 43 6f 64 65 20 63 68 61 6e 67  >.<li>Code chang
8390: 65 73 20 74 6f 20 63 6f 6d 70 69 6c 65 20 63 6c  es to compile cl
83a0: 65 61 6e 6c 79 20 75 73 69 6e 67 20 4f 70 65 6e  eanly using Open
83b0: 57 61 74 63 6f 6d 2e 3c 2f 6c 69 3e 0a 3c 6c 69  Watcom.</li>.<li
83c0: 3e 46 69 78 20 56 44 42 45 20 73 74 61 63 6b 20  >Fix VDBE stack 
83d0: 6f 76 65 72 66 6c 6f 77 20 70 72 6f 62 6c 65 6d  overflow problem
83e0: 73 20 77 69 74 68 20 49 4e 53 54 45 41 44 20 4f  s with INSTEAD O
83f0: 46 20 74 72 69 67 67 65 72 73 20 61 6e 64 0a 20  F triggers and. 
8400: 20 20 20 4e 55 4c 4c 73 20 69 6e 20 49 4e 20 6f     NULLs in IN o
8410: 70 65 72 61 74 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c  perators.</li>.<
8420: 6c 69 3e 41 64 64 20 74 68 65 20 67 6c 6f 62 61  li>Add the globa
8430: 6c 20 76 61 72 69 61 62 6c 65 20 73 71 6c 69 74  l variable sqlit
8440: 65 5f 74 65 6d 70 5f 64 69 72 65 63 74 6f 72 79  e_temp_directory
8450: 20 77 68 69 63 68 20 69 66 20 73 65 74 20 64 65   which if set de
8460: 66 69 6e 65 73 20 74 68 65 0a 20 20 20 20 64 69  fines the.    di
8470: 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63 68  rectory in which
8480: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73   temporary files
8490: 20 61 72 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69   are stored.</li
84a0: 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 69 6e 74  >.<li>sqlite_int
84b0: 65 72 72 75 70 74 28 29 20 70 6c 61 79 73 20 77  errupt() plays w
84c0: 65 6c 6c 20 77 69 74 68 20 56 41 43 55 55 4d 2e  ell with VACUUM.
84d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
84e0: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e  minor bug fixes.
84f0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8500: 30 30 34 20 4d 61 72 63 68 20 38 20 28 32 2e 38  004 March 8 (2.8
8510: 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e 52 65 66 61  .13)} {.<li>Refa
8520: 63 74 6f 72 20 70 61 72 74 73 20 6f 66 20 74 68  ctor parts of th
8530: 65 20 63 6f 64 65 20 69 6e 20 6f 72 64 65 72 20  e code in order 
8540: 74 6f 20 6d 61 6b 65 20 74 68 65 20 63 6f 64 65  to make the code
8550: 20 66 6f 6f 74 70 72 69 6e 74 0a 20 20 20 20 73   footprint.    s
8560: 6d 61 6c 6c 65 72 2e 20 20 54 68 65 20 63 6f 64  maller.  The cod
8570: 65 20 69 73 20 6e 6f 77 20 61 6c 73 6f 20 61 20  e is now also a 
8580: 6c 69 74 74 6c 65 20 62 69 74 20 66 61 73 74 65  little bit faste
8590: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69  r.</li>.<li>sqli
85a0: 74 65 5f 65 78 65 63 28 29 20 69 73 20 6e 6f 77  te_exec() is now
85b0: 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 73 20   implemented as 
85c0: 61 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64  a wrapper around
85d0: 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c 65 28   sqlite_compile(
85e0: 29 0a 20 20 20 20 61 6e 64 20 73 71 6c 69 74 65  ).    and sqlite
85f0: 5f 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c  _step().</li>.<l
8600: 69 3e 54 68 65 20 62 75 69 6c 74 2d 69 6e 20 6d  i>The built-in m
8610: 69 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20 66  in() and max() f
8620: 75 6e 63 74 69 6f 6e 73 20 6e 6f 77 20 68 6f 6e  unctions now hon
8630: 6f 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 63  or the differenc
8640: 65 20 62 65 74 77 65 65 6e 0a 20 20 20 20 4e 55  e between.    NU
8650: 4d 45 52 49 43 20 61 6e 64 20 54 45 58 54 20 64  MERIC and TEXT d
8660: 61 74 61 74 79 70 65 73 2e 20 20 46 6f 72 6d 65  atatypes.  Forme
8670: 72 6c 79 2c 20 6d 69 6e 28 29 20 61 6e 64 20 6d  rly, min() and m
8680: 61 78 28 29 20 61 6c 77 61 79 73 20 61 73 73 75  ax() always assu
8690: 6d 65 64 0a 20 20 20 20 74 68 65 69 72 20 61 72  med.    their ar
86a0: 67 75 6d 65 6e 74 73 20 77 65 72 65 20 6f 66 20  guments were of 
86b0: 74 79 70 65 20 4e 55 4d 45 52 49 43 2e 3c 2f 6c  type NUMERIC.</l
86c0: 69 3e 0a 3c 6c 69 3e 4e 65 77 20 48 48 3a 4d 4d  i>.<li>New HH:MM
86d0: 3a 53 53 20 6d 6f 64 69 66 69 65 72 20 74 6f 20  :SS modifier to 
86e0: 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 64 61 74  the built-in dat
86f0: 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73  e/time functions
8700: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72  .</li>.<li>Exper
8710: 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 6c  imental sqlite_l
8720: 61 73 74 5f 73 74 61 74 65 6d 65 6e 74 5f 63 68  ast_statement_ch
8730: 61 6e 67 65 73 28 29 20 41 50 49 20 61 64 64 65  anges() API adde
8740: 64 2e 20 20 46 69 78 65 64 20 74 68 65 0a 20 20  d.  Fixed the.  
8750: 20 20 74 68 65 20 6c 61 73 74 5f 69 6e 73 65 72    the last_inser
8760: 74 5f 72 6f 77 69 64 28 29 20 66 75 6e 63 74 69  t_rowid() functi
8770: 6f 6e 20 73 6f 20 74 68 61 74 20 69 74 20 77 6f  on so that it wo
8780: 72 6b 73 20 63 6f 72 72 65 63 74 6c 79 20 77 69  rks correctly wi
8790: 74 68 0a 20 20 20 20 74 72 69 67 67 65 72 73 2e  th.    triggers.
87a0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 66 75  </li>.<li>Add fu
87b0: 6e 63 74 69 6f 6e 73 20 70 72 6f 74 6f 74 79 70  nctions prototyp
87c0: 65 73 20 66 6f 72 20 74 68 65 20 64 61 74 61 62  es for the datab
87d0: 61 73 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 41  ase encryption A
87e0: 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  PI.</li>.<li>Fix
87f0: 20 73 65 76 65 72 61 6c 20 6e 75 69 73 61 6e 63   several nuisanc
8800: 65 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e bugs.</li>.}..
8810: 63 68 6e 67 20 7b 32 30 30 34 20 46 65 62 72 75  chng {2004 Febru
8820: 61 72 79 20 38 20 28 32 2e 38 2e 31 32 29 7d 20  ary 8 (2.8.12)} 
8830: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
8840: 74 68 61 74 20 77 69 6c 6c 20 6d 69 67 68 74 20  that will might 
8850: 63 6f 72 72 75 70 74 20 74 68 65 20 72 6f 6c 6c  corrupt the roll
8860: 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 20 69 66 20  back journal if 
8870: 61 20 70 6f 77 65 72 20 66 61 69 6c 75 72 65 0a  a power failure.
8880: 20 20 20 20 6f 72 20 65 78 74 65 72 6e 61 6c 20      or external 
8890: 70 72 6f 67 72 61 6d 20 68 61 6c 74 20 6f 63 63  program halt occ
88a0: 75 72 73 20 69 6e 20 74 68 65 20 6d 69 64 64 6c  urs in the middl
88b0: 65 20 6f 66 20 61 20 43 4f 4d 4d 49 54 2e 20 20  e of a COMMIT.  
88c0: 54 68 65 20 63 6f 72 72 75 70 74 0a 20 20 20 20  The corrupt.    
88d0: 6a 6f 75 72 6e 61 6c 20 63 61 6e 20 6c 65 61 64  journal can lead
88e0: 20 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72   to database cor
88f0: 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 69 74 20  ruption when it 
8900: 69 73 20 72 6f 6c 6c 65 64 20 62 61 63 6b 2e 3c  is rolled back.<
8910: 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 64 75 63 65 20  /li>.<li>Reduce 
8920: 74 68 65 20 73 69 7a 65 20 61 6e 64 20 69 6e 63  the size and inc
8930: 72 65 61 73 65 20 74 68 65 20 73 70 65 65 64 20  rease the speed 
8940: 6f 66 20 76 61 72 69 6f 75 73 20 6d 6f 64 75 6c  of various modul
8950: 65 73 2c 20 65 73 70 65 63 69 61 6c 6c 79 0a 20  es, especially. 
8960: 20 20 20 74 68 65 20 76 69 72 74 75 61 6c 20 6d     the virtual m
8970: 61 63 68 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  achine.</li>.<li
8980: 3e 41 6c 6c 6f 77 20 22 26 6c 74 3b 65 78 70 72  >Allow "&lt;expr
8990: 26 67 74 3b 20 49 4e 20 26 6c 74 3b 74 61 62 6c  &gt; IN &lt;tabl
89a0: 65 26 67 74 3b 22 20 61 73 20 61 20 73 68 6f 72  e&gt;" as a shor
89b0: 74 68 61 6e 64 20 66 6f 72 0a 20 20 20 20 22 26  thand for.    "&
89c0: 6c 74 3b 65 78 70 72 26 67 74 3b 20 49 4e 20 28  lt;expr&gt; IN (
89d0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 26 6c  SELECT * FROM &l
89e0: 74 3b 74 61 62 6c 65 26 67 74 3b 22 2e 3c 2f 6c  t;table&gt;".</l
89f0: 69 3e 0a 3c 6c 69 3e 4f 70 74 69 6d 69 7a 61 74  i>.<li>Optimizat
8a00: 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 71 6c 69  ions to the sqli
8a10: 74 65 5f 6d 70 72 69 6e 74 66 28 29 20 72 6f 75  te_mprintf() rou
8a20: 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  tine.</li>.<li>M
8a30: 61 6b 65 20 73 75 72 65 20 74 68 65 20 4d 49 4e  ake sure the MIN
8a40: 28 29 20 61 6e 64 20 4d 41 58 28 29 20 6f 70 74  () and MAX() opt
8a50: 69 6d 69 7a 61 74 69 6f 6e 73 20 77 6f 72 6b 20  imizations work 
8a60: 77 69 74 68 69 6e 20 73 75 62 71 75 65 72 69 65  within subquerie
8a70: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
8a80: 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 31 34  {2004 January 14
8a90: 20 28 32 2e 38 2e 31 31 29 7d 20 7b 0a 3c 6c 69   (2.8.11)} {.<li
8aa0: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 68 6f  >Fix a bug in ho
8ab0: 77 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f  w the IN operato
8ac0: 72 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 20  r handles NULLs 
8ad0: 69 6e 20 73 75 62 71 75 65 72 69 65 73 2e 20 20  in subqueries.  
8ae0: 54 68 65 20 62 75 67 0a 20 20 20 20 77 61 73 20  The bug.    was 
8af0: 69 6e 74 72 6f 64 75 63 65 64 20 62 79 20 74 68  introduced by th
8b00: 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65 61  e previous relea
8b10: 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  se.</li>.}..chng
8b20: 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 31   {2004 January 1
8b30: 33 20 28 32 2e 38 2e 31 30 29 7d 20 7b 0a 3c 6c  3 (2.8.10)} {.<l
8b40: 69 3e 46 69 78 20 61 20 70 6f 74 65 6e 74 69 61  i>Fix a potentia
8b50: 6c 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  l database corru
8b60: 70 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 6f 6e  ption problem on
8b70: 20 55 6e 69 78 20 63 61 75 73 65 64 20 62 79 20   Unix caused by 
8b80: 74 68 65 20 66 61 63 74 0a 20 20 20 20 74 68 61  the fact.    tha
8b90: 74 20 61 6c 6c 20 70 6f 73 69 78 20 61 64 76 69  t all posix advi
8ba0: 73 6f 72 79 20 6c 6f 63 6b 73 20 61 72 65 20 63  sory locks are c
8bb0: 6c 65 61 72 65 64 20 77 68 65 6e 65 76 65 72 20  leared whenever 
8bc0: 79 6f 75 20 63 6c 6f 73 65 28 29 20 61 20 66 69  you close() a fi
8bd0: 6c 65 2e 0a 20 20 20 20 54 68 65 20 77 6f 72 6b  le..    The work
8be0: 20 61 72 6f 75 6e 64 20 69 74 20 74 6f 20 65 6d   around it to em
8bf0: 62 61 72 67 6f 20 61 6c 6c 20 63 6c 6f 73 65 28  bargo all close(
8c00: 29 20 63 61 6c 6c 73 20 77 68 69 6c 65 20 6c 6f  ) calls while lo
8c10: 63 6b 73 20 61 72 65 20 0a 20 20 20 20 6f 75 74  cks are .    out
8c20: 73 74 61 6e 64 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c  standing.</li>.<
8c30: 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 65  li>Performance e
8c40: 6e 68 61 6e 63 65 6d 65 6e 74 73 20 6f 6e 20 73  nhancements on s
8c50: 6f 6d 65 20 63 6f 72 6e 65 72 20 63 61 73 65 73  ome corner cases
8c60: 20 6f 66 20 43 4f 55 4e 54 28 2a 29 2e 3c 2f 6c   of COUNT(*).</l
8c70: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65  i>.<li>Make sure
8c80: 20 74 68 65 20 69 6e 2d 6d 65 6d 6f 72 79 20 62   the in-memory b
8c90: 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73 65 20  ackend response 
8ca0: 73 61 6e 65 6c 79 20 69 66 20 6d 61 6c 6c 6f 63  sanely if malloc
8cb0: 28 29 20 66 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c  () fails.</li>.<
8cc0: 6c 69 3e 41 6c 6c 6f 77 20 73 71 6c 69 74 65 5f  li>Allow sqlite_
8cd0: 65 78 65 63 28 29 20 74 6f 20 62 65 20 63 61 6c  exec() to be cal
8ce0: 6c 65 64 20 66 72 6f 6d 20 77 69 74 68 69 6e 20  led from within 
8cf0: 75 73 65 72 2d 64 65 66 69 6e 65 64 20 53 51 4c  user-defined SQL
8d00: 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2e 3c  .    functions.<
8d10: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
8d20: 64 20 61 63 63 75 72 61 63 79 20 6f 66 20 66 6c  d accuracy of fl
8d30: 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63 6f 6e  oating-point con
8d40: 76 65 72 73 69 6f 6e 73 20 75 73 69 6e 67 20 22  versions using "
8d50: 6c 6f 6e 67 20 64 6f 75 62 6c 65 22 2e 3c 2f 6c  long double".</l
8d60: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73  i>.<li>Bug fixes
8d70: 20 69 6e 20 74 68 65 20 65 78 70 65 72 69 6d 65   in the experime
8d80: 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66  ntal date/time f
8d90: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d  unctions.</li>.}
8da0: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e  ..chng {2004 Jan
8db0: 75 61 72 79 20 35 20 28 32 2e 38 2e 39 29 7d 20  uary 5 (2.8.9)} 
8dc0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 33 32 2d 62  {.<li>Fix a 32-b
8dd0: 69 74 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66  it integer overf
8de0: 6c 6f 77 20 70 72 6f 62 6c 65 6d 20 74 68 61 74  low problem that
8df0: 20 63 6f 75 6c 64 20 72 65 73 75 6c 74 20 69 6e   could result in
8e00: 20 63 6f 72 72 75 70 74 0a 20 20 20 20 69 6e 64   corrupt.    ind
8e10: 69 63 65 73 20 69 6e 20 61 20 64 61 74 61 62 61  ices in a databa
8e20: 73 65 20 69 66 20 6c 61 72 67 65 20 6e 65 67 61  se if large nega
8e30: 74 69 76 65 20 6e 75 6d 62 65 72 73 20 28 6c 65  tive numbers (le
8e40: 73 73 20 74 68 61 6e 20 2d 32 31 34 37 34 38 33  ss than -2147483
8e50: 36 34 38 29 0a 20 20 20 20 77 65 72 65 20 69 6e  648).    were in
8e60: 73 65 72 74 65 64 20 69 6e 74 6f 20 61 20 69 6e  serted into a in
8e70: 64 65 78 65 64 20 6e 75 6d 65 72 69 63 20 63 6f  dexed numeric co
8e80: 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  lumn.</li>.<li>F
8e90: 69 78 20 61 20 6c 6f 63 6b 69 6e 67 20 70 72 6f  ix a locking pro
8ea0: 62 6c 65 6d 20 6f 6e 20 6d 75 6c 74 69 2d 74 68  blem on multi-th
8eb0: 72 65 61 64 65 64 20 4c 69 6e 75 78 20 69 6d 70  readed Linux imp
8ec0: 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2e 3c 2f 6c  lementations.</l
8ed0: 69 3e 0a 3c 6c 69 3e 41 6c 77 61 79 73 20 75 73  i>.<li>Always us
8ee0: 65 20 22 2e 22 20 69 6e 73 74 65 61 64 20 6f 66  e "." instead of
8ef0: 20 22 2c 22 20 61 73 20 74 68 65 20 64 65 63 69   "," as the deci
8f00: 6d 61 6c 20 70 6f 69 6e 74 20 65 76 65 6e 20 69  mal point even i
8f10: 66 20 74 68 65 20 6c 6f 63 61 6c 65 0a 20 20 20  f the locale.   
8f20: 20 72 65 71 75 65 73 74 73 20 22 2c 22 2e 3c 2f   requests ",".</
8f30: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 55 54  li>.<li>Added UT
8f40: 43 20 74 6f 20 6c 6f 63 61 6c 74 69 6d 65 20 63  C to localtime c
8f50: 6f 6e 76 65 72 73 69 6f 6e 73 20 74 6f 20 74 68  onversions to th
8f60: 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64  e experimental d
8f70: 61 74 65 2f 74 69 6d 65 0a 20 20 20 20 66 75 6e  ate/time.    fun
8f80: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
8f90: 3e 42 75 67 20 66 69 78 65 73 20 74 6f 20 64 61  >Bug fixes to da
8fa0: 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e  te/time function
8fb0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
8fc0: 7b 32 30 30 33 20 44 65 63 65 6d 62 65 72 20 31  {2003 December 1
8fd0: 37 20 28 32 2e 38 2e 38 29 7d 20 7b 0a 3c 6c 69  7 (2.8.8)} {.<li
8fe0: 3e 46 69 78 20 61 20 63 72 69 74 69 63 61 6c 20  >Fix a critical 
8ff0: 62 75 67 20 69 6e 74 72 6f 64 75 63 65 64 20 69  bug introduced i
9000: 6e 74 6f 20 32 2e 38 2e 30 20 77 68 69 63 68 20  nto 2.8.0 which 
9010: 63 6f 75 6c 64 20 63 61 75 73 65 0a 20 20 20 20  could cause.    
9020: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
9030: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ion.</li>.<li>Fi
9040: 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68  x a problem with
9050: 20 33 2d 77 61 79 20 6a 6f 69 6e 73 20 74 68 61   3-way joins tha
9060: 74 20 64 6f 20 6e 6f 74 20 75 73 65 20 69 6e 64  t do not use ind
9070: 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ices</li>.<li>Th
9080: 65 20 56 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64  e VACUUM command
9090: 20 6e 6f 77 20 77 6f 72 6b 73 20 77 69 74 68 20   now works with 
90a0: 74 68 65 20 6e 6f 6e 2d 63 61 6c 6c 62 61 63 6b  the non-callback
90b0: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d   API</li>.<li>Im
90c0: 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74 68  provements to th
90d0: 65 20 22 50 52 41 47 4d 41 20 69 6e 74 65 67 72  e "PRAGMA integr
90e0: 69 74 79 5f 63 68 65 63 6b 22 20 63 6f 6d 6d 61  ity_check" comma
90f0: 6e 64 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  nd</li>.}..chng 
9100: 7b 32 30 30 33 20 44 65 63 65 6d 62 65 72 20 34  {2003 December 4
9110: 20 28 32 2e 38 2e 37 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.7)} {.<li>
9120: 41 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e 74  Added experiment
9130: 61 6c 20 73 71 6c 69 74 65 5f 62 69 6e 64 28 29  al sqlite_bind()
9140: 20 61 6e 64 20 73 71 6c 69 74 65 5f 72 65 73 65   and sqlite_rese
9150: 74 28 29 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c  t() APIs.</li>.<
9160: 6c 69 3e 49 66 20 74 68 65 20 6e 61 6d 65 20 6f  li>If the name o
9170: 66 20 74 68 65 20 64 61 74 61 62 61 73 65 20 69  f the database i
9180: 73 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e  s an empty strin
9190: 67 2c 20 6f 70 65 6e 20 61 20 6e 65 77 20 64 61  g, open a new da
91a0: 74 61 62 61 73 65 0a 20 20 20 20 69 6e 20 61 20  tabase.    in a 
91b0: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 74  temporary file t
91c0: 68 61 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63  hat is automatic
91d0: 61 6c 6c 79 20 64 65 6c 65 74 65 64 20 77 68 65  ally deleted whe
91e0: 6e 20 74 68 65 20 64 61 74 61 62 61 73 65 0a 20  n the database. 
91f0: 20 20 20 69 73 20 63 6c 6f 73 65 64 2e 3c 2f 6c     is closed.</l
9200: 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e  i>.<li>Performan
9210: 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20  ce enhancements 
9220: 69 6e 20 74 68 65 20 6c 65 6d 6f 6e 2d 67 65 6e  in the lemon-gen
9230: 65 72 61 74 65 64 20 70 61 72 73 65 72 3c 2f 6c  erated parser</l
9240: 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e  i>.<li>Experimen
9250: 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75  tal date/time fu
9260: 6e 63 74 69 6f 6e 73 20 72 65 76 69 73 65 64 2e  nctions revised.
9270: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 69 73 61 6c 6c  </li>.<li>Disall
9280: 6f 77 20 74 65 6d 70 6f 72 61 72 79 20 69 6e 64  ow temporary ind
9290: 69 63 65 73 20 6f 6e 20 70 65 72 6d 61 6e 65 6e  ices on permanen
92a0: 74 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c  t tables.</li>.<
92b0: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
92c0: 20 75 70 64 61 74 65 73 20 61 6e 64 20 74 79 70   updates and typ
92d0: 6f 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  o fixes</li>.<li
92e0: 3e 41 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e  >Added experimen
92f0: 74 61 6c 20 73 71 6c 69 74 65 5f 70 72 6f 67 72  tal sqlite_progr
9300: 65 73 73 5f 68 61 6e 64 6c 65 72 28 29 20 63 61  ess_handler() ca
9310: 6c 6c 62 61 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a  llback API</li>.
9320: 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 75 70 70  <li>Removed supp
9330: 6f 72 74 20 66 6f 72 20 74 68 65 20 4f 72 61 63  ort for the Orac
9340: 6c 65 38 20 6f 75 74 65 72 20 6a 6f 69 6e 20 73  le8 outer join s
9350: 79 6e 74 61 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  yntax.</li>.<li>
9360: 41 6c 6c 6f 77 20 47 4c 4f 42 20 61 6e 64 20 4c  Allow GLOB and L
9370: 49 4b 45 20 6f 70 65 72 61 74 6f 72 73 20 74 6f  IKE operators to
9380: 20 77 6f 72 6b 20 61 73 20 66 75 6e 63 74 69 6f   work as functio
9390: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  ns.</li>.<li>Oth
93a0: 65 72 20 6d 69 6e 6f 72 20 64 6f 63 75 6d 65 6e  er minor documen
93b0: 74 61 74 69 6f 6e 20 61 6e 64 20 6d 61 6b 65 66  tation and makef
93c0: 69 6c 65 20 63 68 61 6e 67 65 73 20 61 6e 64 20  ile changes and 
93d0: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
93e0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 41 75  }..chng {2003 Au
93f0: 67 75 73 74 20 32 31 20 28 32 2e 38 2e 36 29 7d  gust 21 (2.8.6)}
9400: 20 7b 0a 3c 6c 69 3e 4d 6f 76 65 64 20 74 68 65   {.<li>Moved the
9410: 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72 79 20   CVS repository 
9420: 74 6f 20 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72  to www.sqlite.or
9430: 67 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74  g</li>.<li>Updat
9440: 65 20 74 68 65 20 4e 55 4c 4c 2d 68 61 6e 64 6c  e the NULL-handl
9450: 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  ing documentatio
9460: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65  n.</li>.<li>Expe
9470: 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69  rimental date/ti
9480: 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 64 64  me functions add
9490: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ed.</li>.<li>Bug
94a0: 20 66 69 78 3a 20 63 6f 72 72 65 63 74 6c 79 20   fix: correctly 
94b0: 65 76 61 6c 75 61 74 65 20 61 20 76 69 65 77 20  evaluate a view 
94c0: 6f 66 20 61 20 76 69 65 77 20 77 69 74 68 6f 75  of a view withou
94d0: 74 20 73 65 67 66 61 75 6c 74 69 6e 67 2e 3c 2f  t segfaulting.</
94e0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
94f0: 20 70 72 65 76 65 6e 74 20 64 61 74 61 62 61 73   prevent databas
9500: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20  e corruption if 
9510: 79 6f 75 20 64 72 6f 70 70 65 64 20 61 0a 20 20  you dropped a.  
9520: 20 20 74 72 69 67 67 65 72 20 74 68 61 74 20 68    trigger that h
9530: 61 64 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65  ad the same name
9540: 20 61 73 20 61 20 74 61 62 6c 65 2e 3c 2f 6c 69   as a table.</li
9550: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61  >.<li>Bug fix: a
9560: 6c 6c 6f 77 20 61 20 56 41 43 55 55 4d 20 28 77  llow a VACUUM (w
9570: 69 74 68 6f 75 74 20 73 65 67 66 61 75 6c 74 69  ithout segfaulti
9580: 6e 67 29 20 6f 6e 20 61 6e 20 65 6d 70 74 79 0a  ng) on an empty.
9590: 20 20 20 20 64 61 74 61 62 61 73 65 20 61 66 74      database aft
95a0: 65 72 20 73 65 74 74 69 6e 67 20 74 68 65 20 45  er setting the E
95b0: 4d 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c  MPTY_RESULT_CALL
95c0: 42 41 43 4b 53 20 70 72 61 67 6d 61 2e 3c 2f 6c  BACKS pragma.</l
95d0: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
95e0: 69 66 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61  if an integer va
95f0: 6c 75 65 20 77 69 6c 6c 20 6e 6f 74 20 66 69 74  lue will not fit
9600: 20 69 6e 20 61 20 33 32 2d 62 69 74 20 69 6e 74   in a 32-bit int
9610: 2c 20 73 74 6f 72 65 20 69 74 20 69 6e 0a 20 20  , store it in.  
9620: 20 20 61 20 64 6f 75 62 6c 65 20 69 6e 73 74 65    a double inste
9630: 61 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ad.</li>.<li>Bug
9640: 20 66 69 78 3a 20 4d 61 6b 65 20 73 75 72 65 20   fix: Make sure 
9650: 74 68 65 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65  the journal file
9660: 20 64 69 72 65 63 74 6f 72 79 20 65 6e 74 72 79   directory entry
9670: 20 69 73 20 63 6f 6d 6d 69 74 74 65 64 20 74 6f   is committed to
9680: 20 64 69 73 6b 0a 20 20 20 20 62 65 66 6f 72 65   disk.    before
9690: 20 77 72 69 74 69 6e 67 20 74 68 65 20 64 61 74   writing the dat
96a0: 61 62 61 73 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e  abase file.</li>
96b0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a  .}..chng {2003 J
96c0: 75 6c 79 20 32 32 20 28 32 2e 38 2e 35 29 7d 20  uly 22 (2.8.5)} 
96d0: 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 4c 49 4d 49 54  {.<li>Make LIMIT
96e0: 20 77 6f 72 6b 20 6f 6e 20 61 20 63 6f 6d 70 6f   work on a compo
96f0: 75 6e 64 20 53 45 4c 45 43 54 20 73 74 61 74 65  und SELECT state
9700: 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c  ment.</li>.<li>L
9710: 49 4d 49 54 20 30 20 6e 6f 77 20 73 68 6f 77 73  IMIT 0 now shows
9720: 20 6e 6f 20 72 6f 77 73 2e 20 20 55 73 65 20 4c   no rows.  Use L
9730: 49 4d 49 54 20 2d 31 20 74 6f 20 73 65 65 20 61  IMIT -1 to see a
9740: 6c 6c 20 72 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ll rows.</li>.<l
9750: 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64  i>Correctly hand
9760: 6c 65 20 63 6f 6d 70 61 72 69 73 6f 6e 73 20 62  le comparisons b
9770: 65 74 77 65 65 6e 20 61 6e 20 49 4e 54 45 47 45  etween an INTEGE
9780: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61 6e  R PRIMARY KEY an
9790: 64 0a 20 20 20 20 61 20 66 6c 6f 61 74 69 6e 67  d.    a floating
97a0: 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 3c 2f   point number.</
97b0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65  li>.<li>Fix seve
97c0: 72 61 6c 20 69 6d 70 6f 72 74 61 6e 74 20 62 75  ral important bu
97d0: 67 73 20 69 6e 20 74 68 65 20 6e 65 77 20 41 54  gs in the new AT
97e0: 54 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20  TACH and DETACH 
97f0: 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c  commands.</li>.<
9800: 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65 20 3c  li>Updated the <
9810: 61 20 68 72 65 66 3d 22 6e 75 6c 6c 73 2e 68 74  a href="nulls.ht
9820: 6d 6c 22 3e 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e  ml">NULL-handlin
9830: 67 20 64 6f 63 75 6d 65 6e 74 3c 2f 61 3e 2e 3c  g document</a>.<
9840: 2f 6c 69 3e 20 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  /li> .<li>Allow 
9850: 4e 55 4c 4c 20 61 72 67 75 6d 65 6e 74 73 20 69  NULL arguments i
9860: 6e 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c 65  n sqlite_compile
9870: 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 73 74  () and sqlite_st
9880: 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ep().</li>.<li>M
9890: 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20 66 69  any minor bug fi
98a0: 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  xes</li>.}..chng
98b0: 20 7b 32 30 30 33 20 4a 75 6e 65 20 32 39 20 28   {2003 June 29 (
98c0: 32 2e 38 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 45 6e  2.8.4)} {.<li>En
98d0: 68 61 6e 63 65 64 20 74 68 65 20 22 50 52 41 47  hanced the "PRAG
98e0: 4d 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68 65  MA integrity_che
98f0: 63 6b 22 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 76  ck" command to v
9900: 65 72 69 66 79 20 69 6e 64 69 63 65 73 2e 3c 2f  erify indices.</
9910: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 75  li>.<li>Added au
9920: 74 68 6f 72 69 7a 61 74 69 6f 6e 20 68 6f 6f 6b  thorization hook
9930: 73 20 66 6f 72 20 74 68 65 20 6e 65 77 20 41 54  s for the new AT
9940: 54 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20  TACH and DETACH 
9950: 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c  commands.</li>.<
9960: 6c 69 3e 4d 61 6e 79 20 64 6f 63 75 6d 65 6e 74  li>Many document
9970: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c  ation updates</l
9980: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f  i>.<li>Many mino
9990: 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e  r bug fixes</li>
99a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a  .}..chng {2003 J
99b0: 75 6e 65 20 34 20 28 32 2e 38 2e 33 29 7d 20 7b  une 4 (2.8.3)} {
99c0: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c  .<li>Fix a probl
99d0: 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63 6f 72  em that will cor
99e0: 72 75 70 74 20 74 68 65 20 69 6e 64 69 63 65 73  rupt the indices
99f0: 20 6f 6e 20 61 20 74 61 62 6c 65 20 69 66 20 79   on a table if y
9a00: 6f 75 0a 20 20 20 20 64 6f 20 61 6e 20 49 4e 53  ou.    do an INS
9a10: 45 52 54 20 4f 52 20 52 45 50 4c 41 43 45 20 6f  ERT OR REPLACE o
9a20: 72 20 61 6e 20 55 50 44 41 54 45 20 4f 52 20 52  r an UPDATE OR R
9a30: 45 50 4c 41 43 45 20 6f 6e 20 61 20 74 61 62 6c  EPLACE on a tabl
9a40: 65 20 74 68 61 74 0a 20 20 20 20 63 6f 6e 74 61  e that.    conta
9a50: 69 6e 73 20 61 6e 20 49 4e 54 45 47 45 52 20 50  ins an INTEGER P
9a60: 52 49 4d 41 52 59 20 4b 45 59 20 70 6c 75 73 20  RIMARY KEY plus 
9a70: 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 6e 64 69  one or more indi
9a80: 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ces.</li>.<li>Fi
9a90: 78 20 61 20 62 75 67 20 69 6e 20 77 69 6e 64 6f  x a bug in windo
9aa0: 77 73 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20  ws locking code 
9ab0: 73 6f 20 74 68 61 74 20 6c 6f 63 6b 73 20 77 6f  so that locks wo
9ac0: 72 6b 20 63 6f 72 72 65 63 74 6c 79 0a 20 20 20  rk correctly.   
9ad0: 20 77 68 65 6e 20 73 69 6d 75 6c 74 61 6e 65 6f   when simultaneo
9ae0: 75 73 6c 79 20 61 63 63 65 73 73 65 64 20 62 79  usly accessed by
9af0: 20 57 69 6e 39 35 20 61 6e 64 20 57 69 6e 4e 54   Win95 and WinNT
9b00: 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c   systems.</li>.<
9b10: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
9b20: 74 79 20 66 6f 72 20 49 4e 53 45 52 54 20 61 6e  ty for INSERT an
9b30: 64 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65  d UPDATE stateme
9b40: 6e 74 73 20 74 6f 20 72 65 66 65 72 20 74 6f 20  nts to refer to 
9b50: 74 68 65 0a 20 20 20 20 22 72 6f 77 69 64 22 20  the.    "rowid" 
9b60: 28 6f 72 20 22 5f 72 6f 77 69 64 5f 22 20 6f 72  (or "_rowid_" or
9b70: 20 22 6f 69 64 22 29 20 63 6f 6c 75 6d 6e 73 2e   "oid") columns.
9b80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
9b90: 69 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66 69  important bug fi
9ba0: 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  xes</li>.}..chng
9bb0: 20 7b 32 30 30 33 20 4d 61 79 20 31 37 20 28 32   {2003 May 17 (2
9bc0: 2e 38 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .8.2)} {.<li>Fix
9bd0: 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20   a problem that 
9be0: 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74 68 65  will corrupt the
9bf0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 69   database file i
9c00: 66 20 79 6f 75 20 64 72 6f 70 20 61 0a 20 20 20  f you drop a.   
9c10: 20 74 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20   table from the 
9c20: 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20 74 68  main database th
9c30: 61 74 20 68 61 73 20 61 20 54 45 4d 50 20 69 6e  at has a TEMP in
9c40: 64 65 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  dex.</li>.}..chn
9c50: 67 20 7b 32 30 30 33 20 4d 61 79 20 31 36 20 28  g {2003 May 16 (
9c60: 32 2e 38 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65  2.8.1)} {.<li>Re
9c70: 61 63 74 69 76 61 74 65 64 20 74 68 65 20 56 41  activated the VA
9c80: 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20 74 68 61  CUUM command tha
9c90: 74 20 72 65 63 6c 61 69 6d 73 20 75 6e 75 73 65  t reclaims unuse
9ca0: 64 20 64 69 73 6b 20 73 70 61 63 65 20 69 6e 20  d disk space in 
9cb0: 0a 20 20 20 20 61 20 64 61 74 61 62 61 73 65 20  .    a database 
9cc0: 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  file.</li>.<li>A
9cd0: 64 64 65 64 20 74 68 65 20 41 54 54 41 43 48 20  dded the ATTACH 
9ce0: 61 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61  and DETACH comma
9cf0: 6e 64 73 20 74 6f 20 61 6c 6c 6f 77 20 69 6e 74  nds to allow int
9d00: 65 72 61 63 74 69 6e 67 20 77 69 74 68 20 6d 75  eracting with mu
9d10: 6c 74 69 70 6c 65 0a 20 20 20 20 64 61 74 61 62  ltiple.    datab
9d20: 61 73 65 20 66 69 6c 65 73 20 61 74 20 74 68 65  ase files at the
9d30: 20 73 61 6d 65 20 74 69 6d 65 2e 3c 2f 6c 69 3e   same time.</li>
9d40: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
9d50: 72 74 20 66 6f 72 20 54 45 4d 50 20 74 72 69 67  rt for TEMP trig
9d60: 67 65 72 73 20 61 6e 64 20 69 6e 64 69 63 65 73  gers and indices
9d70: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
9d80: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 69 6e 2d   support for in-
9d90: 6d 65 6d 6f 72 79 20 64 61 74 61 62 61 73 65 73  memory databases
9da0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  .</li>.<li>Remov
9db0: 65 64 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e  ed the experimen
9dc0: 74 61 6c 20 73 71 6c 69 74 65 5f 6f 70 65 6e 5f  tal sqlite_open_
9dd0: 61 75 78 5f 66 69 6c 65 28 29 2e 20 20 49 74 73  aux_file().  Its
9de0: 20 66 75 6e 63 74 69 6f 6e 20 69 73 0a 20 20 20   function is.   
9df0: 20 73 75 62 73 75 6d 65 64 20 69 6e 20 74 68 65   subsumed in the
9e00: 20 6e 65 77 20 41 54 54 41 43 48 20 63 6f 6d 6d   new ATTACH comm
9e10: 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  and.</li>.<li>Th
9e20: 65 20 70 72 65 63 65 64 65 6e 63 65 20 6f 72 64  e precedence ord
9e30: 65 72 20 66 6f 72 20 4f 4e 20 43 4f 4e 46 4c 49  er for ON CONFLI
9e40: 43 54 20 63 6c 61 75 73 65 73 20 77 61 73 20 63  CT clauses was c
9e50: 68 61 6e 67 65 64 20 73 6f 20 74 68 61 74 0a 20  hanged so that. 
9e60: 20 20 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63     ON CONFLICT c
9e70: 6c 61 75 73 65 73 20 6f 6e 20 42 45 47 49 4e 20  lauses on BEGIN 
9e80: 73 74 61 74 65 6d 65 6e 74 73 20 68 61 76 65 20  statements have 
9e90: 61 20 68 69 67 68 65 72 20 70 72 65 63 65 64 65  a higher precede
9ea0: 6e 63 65 20 74 68 61 6e 0a 20 20 20 20 4f 4e 20  nce than.    ON 
9eb0: 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73  CONFLICT clauses
9ec0: 20 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 2e   on constraints.
9ed0: 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20  .<li>Many, many 
9ee0: 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 63 6f  bug fixes and co
9ef0: 6d 70 61 74 69 62 69 6c 69 74 79 20 65 6e 68 61  mpatibility enha
9f00: 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d  ncements.</li>.}
9f10: 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 46 65 62  ..chng {2003 Feb
9f20: 20 31 36 20 28 32 2e 38 2e 30 29 7d 20 7b 0a 3c   16 (2.8.0)} {.<
9f30: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
9f40: 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 66 6f 72  journal file for
9f50: 6d 61 74 20 74 6f 20 6d 61 6b 65 20 69 74 20 6d  mat to make it m
9f60: 6f 72 65 20 72 65 73 69 73 74 61 6e 74 20 74 6f  ore resistant to
9f70: 20 63 6f 72 72 75 70 74 69 6f 6e 0a 20 20 20 20   corruption.    
9f80: 74 68 61 74 20 63 61 6e 20 6f 63 63 75 72 20 61  that can occur a
9f90: 66 74 65 72 20 61 6e 20 4f 53 20 63 72 61 73 68  fter an OS crash
9fa0: 20 6f 72 20 70 6f 77 65 72 20 66 61 69 6c 75 72   or power failur
9fb0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  e.</li>.<li>Adde
9fc0: 64 20 61 20 6e 65 77 20 43 2f 43 2b 2b 20 41 50  d a new C/C++ AP
9fd0: 49 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20  I that does not 
9fe0: 75 73 65 20 63 61 6c 6c 62 61 63 6b 20 66 6f 72  use callback for
9ff0: 20 72 65 74 75 72 6e 69 6e 67 20 64 61 74 61 2e   returning data.
a000: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a010: 30 30 33 20 4a 61 6e 20 32 35 20 28 32 2e 37 2e  003 Jan 25 (2.7.
a020: 36 29 7d 20 7b 0a 3c 6c 69 3e 50 65 72 66 6f 72  6)} {.<li>Perfor
a030: 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e  mance improvemen
a040: 74 73 2e 20 20 54 68 65 20 6c 69 62 72 61 72 79  ts.  The library
a050: 20 69 73 20 6e 6f 77 20 6d 75 63 68 20 66 61 73   is now much fas
a060: 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ter.</li>.<li>Ad
a070: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
a080: 65 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72  e_set_authorizer
a090: 28 29 3c 2f 62 3e 20 41 50 49 2e 20 20 46 6f 72  ()</b> API.  For
a0a0: 6d 61 6c 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  mal documentatio
a0b0: 6e 20 68 61 73 0a 20 20 20 20 6e 6f 74 20 62 65  n has.    not be
a0c0: 65 6e 20 77 72 69 74 74 65 6e 20 2d 20 73 65 65  en written - see
a0d0: 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65   the source code
a0e0: 20 63 6f 6d 6d 65 6e 74 73 20 66 6f 72 20 69 6e   comments for in
a0f0: 73 74 72 75 63 74 69 6f 6e 73 20 6f 6e 0a 20 20  structions on.  
a100: 20 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68 69    how to use thi
a110: 73 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e  s function.</li>
a120: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
a130: 6e 20 74 68 65 20 47 4c 4f 42 20 6f 70 65 72 61  n the GLOB opera
a140: 74 6f 72 20 74 68 61 74 20 77 61 73 20 70 72 65  tor that was pre
a150: 76 65 6e 74 69 6e 67 20 69 74 20 66 72 6f 6d 20  venting it from 
a160: 77 6f 72 6b 69 6e 67 0a 20 20 20 20 77 69 74 68  working.    with
a170: 20 75 70 70 65 72 2d 63 61 73 65 20 6c 65 74 74   upper-case lett
a180: 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61  ers.</li>.<li>Va
a190: 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75 67 20  rious minor bug 
a1a0: 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixes.</li>.}..c
a1b0: 68 6e 67 20 7b 32 30 30 32 20 44 65 63 20 32 37  hng {2002 Dec 27
a1c0: 20 28 32 2e 37 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.7.5)} {.<li>
a1d0: 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61 6c  Fix an uninitial
a1e0: 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69 6e  ized variable in
a1f0: 20 70 61 67 65 72 2e 63 20 77 68 69 63 68 20 63   pager.c which c
a200: 6f 75 6c 64 20 28 77 69 74 68 20 61 20 70 72 6f  ould (with a pro
a210: 62 61 62 69 6c 69 74 79 0a 20 20 20 20 6f 66 20  bability.    of 
a220: 61 62 6f 75 74 20 31 20 69 6e 20 34 20 62 69 6c  about 1 in 4 bil
a230: 6c 69 6f 6e 29 20 72 65 73 75 6c 74 20 69 6e 20  lion) result in 
a240: 61 20 63 6f 72 72 75 70 74 65 64 20 64 61 74 61  a corrupted data
a250: 62 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  base.</li>.}..ch
a260: 6e 67 20 7b 32 30 30 32 20 44 65 63 20 31 37 20  ng {2002 Dec 17 
a270: 28 32 2e 37 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 44  (2.7.4)} {.<li>D
a280: 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 63 61  atabase files ca
a290: 6e 20 6e 6f 77 20 67 72 6f 77 20 74 6f 20 62 65  n now grow to be
a2a0: 20 75 70 20 74 6f 20 32 5e 34 31 20 62 79 74 65   up to 2^41 byte
a2b0: 73 2e 20 20 54 68 65 20 6f 6c 64 20 6c 69 6d 69  s.  The old limi
a2c0: 74 0a 20 20 20 20 77 61 73 20 32 5e 33 31 20 62  t.    was 2^31 b
a2d0: 79 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ytes.</li>.<li>T
a2e0: 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 77 69 6c  he optimizer wil
a2f0: 6c 20 6e 6f 77 20 73 63 61 6e 20 74 61 62 6c 65  l now scan table
a300: 73 20 69 6e 20 74 68 65 20 72 65 76 65 72 73 65  s in the reverse
a310: 20 69 66 20 64 6f 69 6e 67 20 73 6f 20 77 69 6c   if doing so wil
a320: 6c 0a 20 20 20 20 73 61 74 69 73 66 79 20 61 6e  l.    satisfy an
a330: 20 4f 52 44 45 52 20 42 59 20 2e 2e 2e 20 44 45   ORDER BY ... DE
a340: 53 43 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a  SC clause.</li>.
a350: 3c 6c 69 3e 54 68 65 20 66 75 6c 6c 20 70 61 74  <li>The full pat
a360: 68 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 61 74  hname of the dat
a370: 61 62 61 73 65 20 66 69 6c 65 20 69 73 20 6e 6f  abase file is no
a380: 77 20 72 65 6d 65 6d 62 65 72 65 64 20 65 76 65  w remembered eve
a390: 6e 20 69 66 0a 20 20 20 20 61 20 72 65 6c 61 74  n if.    a relat
a3a0: 69 76 65 20 70 61 74 68 20 69 73 20 70 61 73 73  ive path is pass
a3b0: 65 64 20 69 6e 74 6f 20 73 71 6c 69 74 65 5f 6f  ed into sqlite_o
a3c0: 70 65 6e 28 29 2e 20 20 54 68 69 73 20 61 6c 6c  pen().  This all
a3d0: 6f 77 73 20 0a 20 20 20 20 74 68 65 20 6c 69 62  ows .    the lib
a3e0: 72 61 72 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65  rary to continue
a3f0: 20 6f 70 65 72 61 74 69 6e 67 20 63 6f 72 72 65   operating corre
a400: 63 74 6c 79 20 61 66 74 65 72 20 61 20 63 68 64  ctly after a chd
a410: 69 72 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  ir().</li>.<li>S
a420: 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74  peed improvement
a430: 73 20 69 6e 20 74 68 65 20 56 44 42 45 2e 3c 2f  s in the VDBE.</
a440: 6c 69 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20  li>.<li>Lots of 
a450: 6c 69 74 74 6c 65 20 62 75 67 20 66 69 78 65 73  little bug fixes
a460: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
a470: 32 30 30 32 20 4f 63 74 20 33 30 20 28 32 2e 37  2002 Oct 30 (2.7
a480: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 56 61 72 69 6f  .3)} {.<li>Vario
a490: 75 73 20 63 6f 6d 70 69 6c 65 72 20 63 6f 6d 70  us compiler comp
a4a0: 61 74 69 62 69 6c 69 74 79 20 66 69 78 65 73 2e  atibility fixes.
a4b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
a4c0: 62 75 67 20 69 6e 20 74 68 65 20 22 65 78 70 72  bug in the "expr
a4d0: 20 49 4e 20 28 29 22 20 6f 70 65 72 61 74 6f 72   IN ()" operator
a4e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 63 63 65 70  .</li>.<li>Accep
a4f0: 74 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69  t column names i
a500: 6e 20 70 61 72 65 6e 74 68 65 73 65 73 2e 3c 2f  n parentheses.</
a510: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  li>.<li>Fix a pr
a520: 6f 62 6c 65 6d 20 77 69 74 68 20 73 74 72 69 6e  oblem with strin
a530: 67 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d  g memory managem
a540: 65 6e 74 20 69 6e 20 74 68 65 20 56 44 42 45 3c  ent in the VDBE<
a550: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
a560: 75 67 20 69 6e 20 74 68 65 20 22 74 61 62 6c 65  ug in the "table
a570: 5f 69 6e 66 6f 22 20 70 72 61 67 6d 61 22 3c 2f  _info" pragma"</
a580: 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74 20 74  li>.<li>Export t
a590: 68 65 20 73 71 6c 69 74 65 5f 66 75 6e 63 74 69  he sqlite_functi
a5a0: 6f 6e 5f 74 79 70 65 28 29 20 41 50 49 20 66 75  on_type() API fu
a5b0: 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 57 69  nction in the Wi
a5c0: 6e 64 6f 77 73 20 44 4c 4c 3c 2f 6c 69 3e 0a 3c  ndows DLL</li>.<
a5d0: 6c 69 3e 46 69 78 20 6c 6f 63 6b 69 6e 67 20 62  li>Fix locking b
a5e0: 65 68 61 76 69 6f 72 20 75 6e 64 65 72 20 77 69  ehavior under wi
a5f0: 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ndows</li>.<li>F
a600: 69 78 20 61 20 62 75 67 20 69 6e 20 4c 45 46 54  ix a bug in LEFT
a610: 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e   OUTER JOIN</li>
a620: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 53  .}..chng {2002 S
a630: 65 70 20 32 35 20 28 32 2e 37 2e 32 29 7d 20 7b  ep 25 (2.7.2)} {
a640: 0a 3c 6c 69 3e 50 72 65 76 65 6e 74 20 6a 6f 75  .<li>Prevent jou
a650: 72 6e 61 6c 20 66 69 6c 65 20 6f 76 65 72 66 6c  rnal file overfl
a660: 6f 77 73 20 6f 6e 20 68 75 67 65 20 74 72 61 6e  ows on huge tran
a670: 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  sactions.</li>.<
a680: 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72 79 20  li>Fix a memory 
a690: 6c 65 61 6b 20 74 68 61 74 20 6f 63 63 75 72 72  leak that occurr
a6a0: 65 64 20 77 68 65 6e 20 73 71 6c 69 74 65 5f 6f  ed when sqlite_o
a6b0: 70 65 6e 28 29 20 66 61 69 6c 65 64 2e 3c 2f 6c  pen() failed.</l
a6c0: 69 3e 0a 3c 6c 69 3e 48 6f 6e 6f 72 20 74 68 65  i>.<li>Honor the
a6d0: 20 4f 52 44 45 52 20 42 59 20 61 6e 64 20 4c 49   ORDER BY and LI
a6e0: 4d 49 54 20 63 6c 61 75 73 65 20 6f 66 20 61 20  MIT clause of a 
a6f0: 53 45 4c 45 43 54 20 65 76 65 6e 20 69 66 20 74  SELECT even if t
a700: 68 65 0a 20 20 20 20 72 65 73 75 6c 74 20 73 65  he.    result se
a710: 74 20 69 73 20 75 73 65 64 20 66 6f 72 20 61 6e  t is used for an
a720: 20 49 4e 53 45 52 54 2e 3c 2f 6c 69 3e 0a 3c 6c   INSERT.</li>.<l
a730: 69 3e 44 6f 20 6e 6f 74 20 70 75 74 20 77 72 69  i>Do not put wri
a740: 74 65 20 6c 6f 63 6b 73 20 6f 6e 20 74 68 65 20  te locks on the 
a750: 66 69 6c 65 20 75 73 65 64 20 74 6f 20 68 6f 6c  file used to hol
a760: 64 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f  d TEMP tables.</
a770: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f  li>.<li>Added do
a780: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 53  cumentation on S
a790: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 61  ELECT DISTINCT a
a7a0: 6e 64 20 6f 6e 20 68 6f 77 20 53 51 4c 69 74 65  nd on how SQLite
a7b0: 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 2e 3c   handles NULLs.<
a7c0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70  /li>.<li>Fix a p
a7d0: 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 61 73 20  roblem that was 
a7e0: 63 61 75 73 69 6e 67 20 70 6f 6f 72 20 70 65 72  causing poor per
a7f0: 66 6f 72 6d 61 6e 63 65 20 77 68 65 6e 20 6d 61  formance when ma
a800: 6e 79 20 74 68 6f 75 73 61 6e 64 73 0a 20 20 20  ny thousands.   
a810: 20 6f 66 20 53 51 4c 20 73 74 61 74 65 6d 65 6e   of SQL statemen
a820: 74 73 20 77 65 72 65 20 65 78 65 63 75 74 65 64  ts were executed
a830: 20 62 79 20 61 20 73 69 6e 67 6c 65 20 73 71 6c   by a single sql
a840: 69 74 65 5f 65 78 65 63 28 29 20 63 61 6c 6c 2e  ite_exec() call.
a850: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a860: 30 30 32 20 41 75 67 20 33 31 20 28 32 2e 37 2e  002 Aug 31 (2.7.
a870: 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  1)} {.<li>Fix a 
a880: 62 75 67 20 69 6e 20 74 68 65 20 4f 52 44 45 52  bug in the ORDER
a890: 20 42 59 20 6c 6f 67 69 63 20 74 68 61 74 20 77   BY logic that w
a8a0: 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e  as introduced in
a8b0: 20 76 65 72 73 69 6f 6e 20 32 2e 37 2e 30 3c 2f   version 2.7.0</
a8c0: 6c 69 3e 0a 3c 6c 69 3e 43 2d 73 74 79 6c 65 20  li>.<li>C-style 
a8d0: 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 6e 6f 77  comments are now
a8e0: 20 61 63 63 65 70 74 65 64 20 62 79 20 74 68 65   accepted by the
a8f0: 20 74 6f 6b 65 6e 69 7a 65 72 2e 3c 2f 6c 69 3e   tokenizer.</li>
a900: 0a 3c 6c 69 3e 49 4e 53 45 52 54 20 72 75 6e 73  .<li>INSERT runs
a910: 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72   a little faster
a920: 20 77 68 65 6e 20 74 68 65 20 73 6f 75 72 63 65   when the source
a930: 20 69 73 20 61 20 53 45 4c 45 43 54 20 73 74 61   is a SELECT sta
a940: 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  tement.</li>.}..
a950: 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20 32  chng {2002 Aug 2
a960: 35 20 28 32 2e 37 2e 30 29 7d 20 7b 0a 3c 6c 69  5 (2.7.0)} {.<li
a970: 3e 4d 61 6b 65 20 61 20 64 69 73 74 69 6e 63 74  >Make a distinct
a980: 69 6f 6e 20 62 65 74 77 65 65 6e 20 6e 75 6d 65  ion between nume
a990: 72 69 63 20 61 6e 64 20 74 65 78 74 20 76 61 6c  ric and text val
a9a0: 75 65 73 20 77 68 65 6e 20 73 6f 72 74 69 6e 67  ues when sorting
a9b0: 2e 0a 20 20 20 20 54 65 78 74 20 76 61 6c 75 65  ..    Text value
a9c0: 73 20 73 6f 72 74 20 61 63 63 6f 72 64 69 6e 67  s sort according
a9d0: 20 74 6f 20 6d 65 6d 63 6d 70 28 29 2e 20 20 4e   to memcmp().  N
a9e0: 75 6d 65 72 69 63 20 76 61 6c 75 65 73 20 73 6f  umeric values so
a9f0: 72 74 20 69 6e 0a 20 20 20 20 6e 75 6d 65 72 69  rt in.    numeri
aa00: 63 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  c order.</li>.<l
aa10: 69 3e 41 6c 6c 6f 77 20 6d 75 6c 74 69 70 6c 65  i>Allow multiple
aa20: 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 72 65   simultaneous re
aa30: 61 64 65 72 73 20 75 6e 64 65 72 20 77 69 6e 64  aders under wind
aa40: 6f 77 73 20 62 79 20 73 69 6d 75 6c 61 74 69 6e  ows by simulatin
aa50: 67 0a 20 20 20 20 74 68 65 20 72 65 61 64 65 72  g.    the reader
aa60: 2f 77 72 69 74 65 72 73 20 6c 6f 63 6b 73 20 74  /writers locks t
aa70: 68 61 74 20 61 72 65 20 6d 69 73 73 69 6e 67 20  hat are missing 
aa80: 66 72 6f 6d 20 57 69 6e 39 35 2f 39 38 2f 4d 45  from Win95/98/ME
aa90: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 20 65 72  .</li>.<li>An er
aaa0: 72 6f 72 20 69 73 20 6e 6f 77 20 72 65 74 75 72  ror is now retur
aab0: 6e 65 64 20 77 68 65 6e 20 74 72 79 69 6e 67 20  ned when trying 
aac0: 74 6f 20 73 74 61 72 74 20 61 20 74 72 61 6e 73  to start a trans
aad0: 61 63 74 69 6f 6e 20 69 66 0a 20 20 20 20 61 6e  action if.    an
aae0: 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f  other transactio
aaf0: 6e 20 69 73 20 61 6c 72 65 61 64 79 20 61 63 74  n is already act
ab00: 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ive.</li>.}..chn
ab10: 67 20 7b 32 30 30 32 20 41 75 67 20 31 32 20 28  g {2002 Aug 12 (
ab20: 32 2e 36 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64  2.6.3)} {.<li>Ad
ab30: 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f  d the ability to
ab40: 20 72 65 61 64 20 62 6f 74 68 20 6c 69 74 74 6c   read both littl
ab50: 65 2d 65 6e 64 69 61 6e 20 61 6e 64 20 62 69 67  e-endian and big
ab60: 2d 65 6e 64 69 61 6e 20 64 61 74 61 62 61 73 65  -endian database
ab70: 73 2e 0a 20 20 20 20 53 6f 20 64 61 74 61 62 61  s..    So databa
ab80: 73 65 20 63 72 65 61 74 65 64 20 75 6e 64 65 72  se created under
ab90: 20 53 75 6e 4f 53 20 6f 72 20 4d 61 63 4f 53 58   SunOS or MacOSX
aba0: 20 63 61 6e 20 62 65 20 72 65 61 64 20 61 6e 64   can be read and
abb0: 20 77 72 69 74 74 65 6e 0a 20 20 20 20 75 6e 64   written.    und
abc0: 65 72 20 4c 69 6e 75 78 20 6f 72 20 57 69 6e 64  er Linux or Wind
abd0: 6f 77 73 20 61 6e 64 20 76 69 63 65 20 76 65 72  ows and vice ver
abe0: 73 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e  sa.</li>.<li>Con
abf0: 76 65 72 74 20 74 6f 20 74 68 65 20 6e 65 77 20  vert to the new 
ac00: 77 65 62 73 69 74 65 3a 20 68 74 74 70 3a 2f 2f  website: http://
ac10: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 3c  www.sqlite.org/<
ac20: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74  /li>.<li>Allow t
ac30: 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20 73  ransactions to s
ac40: 70 61 6e 20 4c 69 6e 75 78 20 54 68 72 65 61 64  pan Linux Thread
ac50: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  s</li>.<li>Bug f
ac60: 69 78 20 69 6e 20 74 68 65 20 70 72 6f 63 65 73  ix in the proces
ac70: 73 69 6e 67 20 6f 66 20 74 68 65 20 4f 52 44 45  sing of the ORDE
ac80: 52 20 42 59 20 63 6c 61 75 73 65 20 66 6f 72 20  R BY clause for 
ac90: 47 52 4f 55 50 20 42 59 20 71 75 65 72 69 65 73  GROUP BY queries
aca0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
acb0: 30 30 32 20 4a 6c 79 20 33 30 20 28 32 2e 36 2e  002 Jly 30 (2.6.
acc0: 32 29 7d 20 7b 0a 3c 6c 69 3e 54 65 78 74 20 66  2)} {.<li>Text f
acd0: 69 6c 65 73 20 72 65 61 64 20 62 79 20 74 68 65  iles read by the
ace0: 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 63 61   COPY command ca
acf0: 6e 20 6e 6f 77 20 68 61 76 65 20 6c 69 6e 65 20  n now have line 
ad00: 74 65 72 6d 69 6e 61 74 6f 72 73 0a 20 20 20 20  terminators.    
ad10: 6f 66 20 4c 46 2c 20 20 43 52 4c 46 2c 20 6f 72  of LF,  CRLF, or
ad20: 20 43 52 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 51   CR.</li>.<li>SQ
ad30: 4c 49 54 45 5f 42 55 53 59 20 69 73 20 68 61 6e  LITE_BUSY is han
ad40: 64 6c 65 64 20 63 6f 72 72 65 63 74 6c 79 20 69  dled correctly i
ad50: 66 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 64 75  f encountered du
ad60: 72 69 6e 67 20 64 61 74 61 62 61 73 65 0a 20 20  ring database.  
ad70: 20 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e    initialization
ad80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74  .</li>.<li>Fix t
ad90: 6f 20 55 50 44 41 54 45 20 74 72 69 67 67 65 72  o UPDATE trigger
ada0: 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c 65 73  s on TEMP tables
adb0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d  .</li>.<li>Docum
adc0: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
add0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
ade0: 32 30 30 32 20 4a 6c 79 20 31 39 20 28 32 2e 36  2002 Jly 19 (2.6
adf0: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6c 75  .1)} {.<li>Inclu
ae00: 64 65 20 61 20 73 74 61 74 69 63 20 73 74 72 69  de a static stri
ae10: 6e 67 20 69 6e 20 74 68 65 20 6c 69 62 72 61 72  ng in the librar
ae20: 79 20 74 68 61 74 20 72 65 73 70 6f 6e 64 73 20  y that responds 
ae30: 74 6f 20 74 68 65 20 52 43 53 0a 20 20 20 20 22  to the RCS.    "
ae40: 69 64 65 6e 74 22 20 63 6f 6d 6d 61 6e 64 20 61  ident" command a
ae50: 6e 64 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e  nd which contain
ae60: 73 20 74 68 65 20 6c 69 62 72 61 72 79 20 76 65  s the library ve
ae70: 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c  rsion number.</l
ae80: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 61 73  i>.<li>Fix an as
ae90: 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20  sertion failure 
aea0: 74 68 61 74 20 6f 63 63 75 72 72 65 64 20 77 68  that occurred wh
aeb0: 65 6e 20 64 65 6c 65 74 69 6e 67 20 61 6c 6c 20  en deleting all 
aec0: 72 6f 77 73 20 6f 66 0a 20 20 20 20 61 20 74 61  rows of.    a ta
aed0: 62 6c 65 20 77 69 74 68 20 74 68 65 20 22 63 6f  ble with the "co
aee0: 75 6e 74 5f 63 68 61 6e 67 65 73 22 20 70 72 61  unt_changes" pra
aef0: 67 6d 61 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f  gma turned on.</
af00: 6c 69 3e 0a 3c 6c 69 3e 42 65 74 74 65 72 20 65  li>.<li>Better e
af10: 72 72 6f 72 20 72 65 70 6f 72 74 69 6e 67 20 77  rror reporting w
af20: 68 65 6e 20 70 72 6f 62 6c 65 6d 73 20 6f 63 63  hen problems occ
af30: 75 72 20 64 75 72 69 6e 67 20 74 68 65 20 61 75  ur during the au
af40: 74 6f 6d 61 74 69 63 0a 20 20 20 20 32 2e 35 2e  tomatic.    2.5.
af50: 36 20 74 6f 20 32 2e 36 2e 30 20 64 61 74 61 62  6 to 2.6.0 datab
af60: 61 73 65 20 66 6f 72 6d 61 74 20 75 70 67 72 61  ase format upgra
af70: 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  de.</li>.}..chng
af80: 20 7b 32 30 30 32 20 4a 6c 79 20 31 37 20 28 32   {2002 Jly 17 (2
af90: 2e 36 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  .6.0)} {.<li>Cha
afa0: 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f  nge the format o
afb0: 66 20 69 6e 64 69 63 65 73 20 74 6f 20 63 6f 72  f indices to cor
afc0: 72 65 63 74 20 61 20 64 65 73 69 67 6e 20 66 6c  rect a design fl
afd0: 61 77 20 74 68 65 20 6f 72 69 67 69 6e 61 74 65  aw the originate
afe0: 64 0a 20 20 20 20 77 69 74 68 20 76 65 72 73 69  d.    with versi
aff0: 6f 6e 20 32 2e 31 2e 30 2e 20 20 3c 66 6f 6e 74  on 2.1.0.  <font
b000: 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 2a   color="red">***
b010: 20 54 68 69 73 20 69 73 20 61 6e 20 69 6e 63 6f   This is an inco
b020: 6d 70 61 74 69 62 6c 65 0a 20 20 20 20 66 69 6c  mpatible.    fil
b030: 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67 65 20  e format change 
b040: 2a 2a 2a 3c 2f 66 6f 6e 74 3e 20 20 57 68 65 6e  ***</font>  When
b050: 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30 20 6f   version 2.6.0 o
b060: 72 20 6c 61 74 65 72 20 6f 66 20 74 68 65 0a 20  r later of the. 
b070: 20 20 20 6c 69 62 72 61 72 79 20 61 74 74 65 6d     library attem
b080: 70 74 73 20 74 6f 20 6f 70 65 6e 20 61 20 64 61  pts to open a da
b090: 74 61 62 61 73 65 20 66 69 6c 65 20 63 72 65 61  tabase file crea
b0a0: 74 65 64 20 62 79 20 76 65 72 73 69 6f 6e 20 32  ted by version 2
b0b0: 2e 35 2e 36 20 6f 72 0a 20 20 20 20 65 61 72 6c  .5.6 or.    earl
b0c0: 69 65 72 2c 20 69 74 20 77 69 6c 6c 20 61 75 74  ier, it will aut
b0d0: 6f 6d 61 74 69 63 61 6c 6c 79 20 61 6e 64 20 69  omatically and i
b0e0: 72 72 65 76 65 72 73 69 62 6c 79 20 63 6f 6e 76  rreversibly conv
b0f0: 65 72 74 20 74 68 65 20 66 69 6c 65 20 66 6f 72  ert the file for
b100: 6d 61 74 2e 0a 20 20 20 20 3c 62 3e 4d 61 6b 65  mat..    <b>Make
b110: 20 62 61 63 6b 75 70 20 63 6f 70 69 65 73 20 6f   backup copies o
b120: 66 20 6f 6c 64 65 72 20 64 61 74 61 62 61 73 65  f older database
b130: 20 66 69 6c 65 73 20 62 65 66 6f 72 65 20 6f 70   files before op
b140: 65 6e 69 6e 67 20 74 68 65 6d 20 77 69 74 68 0a  ening them with.
b150: 20 20 20 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e      version 2.6.
b160: 30 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79  0 of the library
b170: 2e 3c 2f 62 3e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  .</b>.    </li>.
b180: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
b190: 79 20 37 20 28 32 2e 35 2e 36 29 7d 20 7b 0a 3c  y 7 (2.5.6)} {.<
b1a0: 6c 69 3e 46 69 78 20 6d 6f 72 65 20 70 72 6f 62  li>Fix more prob
b1b0: 6c 65 6d 73 20 77 69 74 68 20 72 6f 6c 6c 62 61  lems with rollba
b1c0: 63 6b 2e 20 20 45 6e 68 61 6e 63 65 20 74 68 65  ck.  Enhance the
b1d0: 20 74 65 73 74 20 73 75 69 74 65 20 74 6f 20 65   test suite to e
b1e0: 78 65 72 63 69 73 65 0a 20 20 20 20 74 68 65 20  xercise.    the 
b1f0: 72 6f 6c 6c 62 61 63 6b 20 6c 6f 67 69 63 20 65  rollback logic e
b200: 78 74 65 6e 73 69 76 65 6c 79 20 69 6e 20 6f 72  xtensively in or
b210: 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 61  der to prevent a
b220: 6e 79 20 66 75 74 75 72 65 20 70 72 6f 62 6c 65  ny future proble
b230: 6d 73 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a  ms..    </li>.}.
b240: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20  .chng {2002 Jly 
b250: 36 20 28 32 2e 35 2e 35 29 7d 20 7b 0a 3c 6c 69  6 (2.5.5)} {.<li
b260: 3e 46 69 78 20 61 20 62 75 67 20 77 68 69 63 68  >Fix a bug which
b270: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61 74   could cause dat
b280: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
b290: 20 64 75 72 69 6e 67 20 61 20 72 6f 6c 6c 62 61   during a rollba
b2a0: 63 6b 2e 0a 20 20 20 20 54 68 69 73 20 62 75 67  ck..    This bug
b2b0: 73 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64  s was introduced
b2c0: 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 2e   in version 2.4.
b2d0: 30 20 62 79 20 74 68 65 20 66 72 65 65 6c 69 73  0 by the freelis
b2e0: 74 0a 20 20 20 20 6f 70 74 69 6d 69 7a 61 74 69  t.    optimizati
b2f0: 6f 6e 20 6f 66 20 63 68 65 63 6b 69 6e 67 20 5b  on of checking [
b300: 34 31 30 5d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  410].</li>.<li>F
b310: 69 78 20 61 20 62 75 67 20 69 6e 20 61 67 67 72  ix a bug in aggr
b320: 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e 73 20  egate functions 
b330: 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a  for VIEWs.</li>.
b340: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
b350: 63 68 61 6e 67 65 73 20 61 6e 64 20 65 6e 68 61  changes and enha
b360: 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d  ncements.</li>.}
b370: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79  ..chng {2002 Jly
b380: 20 31 20 28 32 2e 35 2e 34 29 7d 20 7b 0a 3c 6c   1 (2.5.4)} {.<l
b390: 69 3e 4d 61 6b 65 20 74 68 65 20 22 41 53 22 20  i>Make the "AS" 
b3a0: 6b 65 79 77 6f 72 64 20 6f 70 74 69 6f 6e 61 6c  keyword optional
b3b0: 20 61 67 61 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69   again.</li>.<li
b3c0: 3e 54 68 65 20 64 61 74 61 74 79 70 65 20 6f 66  >The datatype of
b3d0: 20 63 6f 6c 75 6d 6e 73 20 6e 6f 77 20 61 70 70   columns now app
b3e0: 65 61 72 20 69 6e 20 74 68 65 20 34 74 68 20 61  ear in the 4th a
b3f0: 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65 0a 20  rgument to the. 
b400: 20 20 20 63 61 6c 6c 62 61 63 6b 2e 3c 2f 6c 69     callback.</li
b410: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
b420: 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 5f 61  <b>sqlite_open_a
b430: 75 78 5f 66 69 6c 65 28 29 3c 2f 62 3e 20 41 50  ux_file()</b> AP
b440: 49 2c 20 74 68 6f 75 67 68 20 69 74 20 69 73 20  I, though it is 
b450: 73 74 69 6c 6c 0a 20 20 20 20 6d 6f 73 74 6c 79  still.    mostly
b460: 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20 61 6e   undocumented an
b470: 64 20 75 6e 74 65 73 74 65 64 2e 3c 2f 6c 69 3e  d untested.</li>
b480: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 64 64 69 74  .<li>Added addit
b490: 69 6f 6e 61 6c 20 74 65 73 74 20 63 61 73 65 73  ional test cases
b4a0: 20 61 6e 64 20 66 69 78 65 64 20 61 20 66 65 77   and fixed a few
b4b0: 20 62 75 67 73 20 74 68 61 74 20 74 68 6f 73 65   bugs that those
b4c0: 0a 20 20 20 20 74 65 73 74 20 63 61 73 65 73 20  .    test cases 
b4d0: 66 6f 75 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  found.</li>.}..c
b4e0: 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 32 34  hng {2002 Jun 24
b4f0: 20 28 32 2e 35 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.5.3)} {.<li>
b500: 42 75 67 20 66 69 78 3a 20 20 44 61 74 61 62 61  Bug fix:  Databa
b510: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 63 61  se corruption ca
b520: 6e 20 6f 63 63 75 72 20 64 75 65 20 74 6f 20 74  n occur due to t
b530: 68 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 0a  he optimization.
b540: 20 20 20 20 74 68 61 74 20 77 61 73 20 69 6e 74      that was int
b550: 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73 69  roduced in versi
b560: 6f 6e 20 32 2e 34 2e 30 20 28 63 68 65 63 6b 2d  on 2.4.0 (check-
b570: 69 6e 20 5b 34 31 30 5d 29 2e 20 20 54 68 65 20  in [410]).  The 
b580: 70 72 6f 62 6c 65 6d 0a 20 20 20 20 73 68 6f 75  problem.    shou
b590: 6c 64 20 6e 6f 77 20 62 65 20 66 69 78 65 64 2e  ld now be fixed.
b5a0: 20 20 54 68 65 20 75 73 65 20 6f 66 20 76 65 72    The use of ver
b5b0: 73 69 6f 6e 73 20 32 2e 34 2e 30 20 74 68 72 6f  sions 2.4.0 thro
b5c0: 75 67 68 20 32 2e 35 2e 32 20 69 73 0a 20 20 20  ugh 2.5.2 is.   
b5d0: 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64   not recommended
b5e0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
b5f0: 32 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e 35  2002 Jun 24 (2.5
b600: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .2)} {.<li>Added
b610: 20 74 68 65 20 6e 65 77 20 3c 62 3e 53 51 4c 49   the new <b>SQLI
b620: 54 45 5f 54 45 4d 50 5f 4d 41 53 54 45 52 3c 2f  TE_TEMP_MASTER</
b630: 62 3e 20 74 61 62 6c 65 20 77 68 69 63 68 20 72  b> table which r
b640: 65 63 6f 72 64 73 20 74 68 65 20 73 63 68 65 6d  ecords the schem
b650: 61 0a 20 20 20 20 66 6f 72 20 74 65 6d 70 6f 72  a.    for tempor
b660: 61 72 79 20 74 61 62 6c 65 73 20 69 6e 20 74 68  ary tables in th
b670: 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20  e same way that 
b680: 3c 62 3e 53 51 4c 49 54 45 5f 4d 41 53 54 45 52  <b>SQLITE_MASTER
b690: 3c 2f 62 3e 20 64 6f 65 73 20 66 6f 72 0a 20 20  </b> does for.  
b6a0: 20 20 70 65 72 73 69 73 74 65 6e 74 20 74 61 62    persistent tab
b6b0: 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  les.</li>.<li>Ad
b6c0: 64 65 64 20 61 6e 20 6f 70 74 69 6d 69 7a 61 74  ded an optimizat
b6d0: 69 6f 6e 20 74 6f 20 55 4e 49 4f 4e 20 41 4c 4c  ion to UNION ALL
b6e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20  </li>.<li>Fixed 
b6f0: 61 20 62 75 67 20 69 6e 20 74 68 65 20 70 72 6f  a bug in the pro
b700: 63 65 73 73 69 6e 67 20 6f 66 20 4c 45 46 54 20  cessing of LEFT 
b710: 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a  OUTER JOIN</li>.
b720: 3c 6c 69 3e 54 68 65 20 4c 49 4d 49 54 20 63 6c  <li>The LIMIT cl
b730: 61 75 73 65 20 6e 6f 77 20 77 6f 72 6b 73 20 6f  ause now works o
b740: 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69  n subselects</li
b750: 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20 42 59 20 77  >.<li>ORDER BY w
b760: 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c 65 63  orks on subselec
b770: 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 72  ts</li>.<li>Ther
b780: 65 20 69 73 20 61 20 6e 65 77 20 54 79 70 65 4f  e is a new TypeO
b790: 66 28 29 20 66 75 6e 63 74 69 6f 6e 20 75 73 65  f() function use
b7a0: 64 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69  d to determine i
b7b0: 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 0a  f an expression.
b7c0: 20 20 20 20 69 73 20 6e 75 6d 65 72 69 63 20 6f      is numeric o
b7d0: 72 20 74 65 78 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  r text.</li>.<li
b7e0: 3e 41 75 74 6f 69 6e 63 72 65 6d 65 6e 74 20 6e  >Autoincrement n
b7f0: 6f 77 20 77 6f 72 6b 73 20 66 6f 72 20 49 4e 53  ow works for INS
b800: 45 52 54 20 66 72 6f 6d 20 61 20 53 45 4c 45 43  ERT from a SELEC
b810: 54 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  T.</li>.}..chng 
b820: 7b 32 30 30 32 20 4a 75 6e 20 31 39 20 28 32 2e  {2002 Jun 19 (2.
b830: 35 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  5.1)} {.<li>The 
b840: 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 65 72 20  query optimizer 
b850: 6e 6f 77 20 61 74 74 65 6d 70 74 73 20 74 6f 20  now attempts to 
b860: 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 4f 52  implement the OR
b870: 44 45 52 20 42 59 20 63 6c 61 75 73 65 0a 20 20  DER BY clause.  
b880: 20 20 75 73 69 6e 67 20 61 6e 20 69 6e 64 65 78    using an index
b890: 2e 20 20 53 6f 72 74 69 6e 67 20 69 73 20 73 74  .  Sorting is st
b8a0: 69 6c 6c 20 75 73 65 64 20 69 66 20 6e 6f 74 20  ill used if not 
b8b0: 73 75 69 74 61 62 6c 65 20 69 6e 64 65 78 20 69  suitable index i
b8c0: 73 0a 20 20 20 20 61 76 61 69 6c 61 62 6c 65 2e  s.    available.
b8d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
b8e0: 30 30 32 20 4a 75 6e 20 31 37 20 28 32 2e 35 2e  002 Jun 17 (2.5.
b8f0: 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  0)} {.<li>Added 
b900: 73 75 70 70 6f 72 74 20 66 6f 72 20 72 6f 77 20  support for row 
b910: 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c  triggers.</li>.<
b920: 6c 69 3e 41 64 64 65 64 20 53 51 4c 2d 39 32 20  li>Added SQL-92 
b930: 63 6f 6d 70 6c 69 61 6e 74 20 68 61 6e 64 6c 69  compliant handli
b940: 6e 67 20 6f 66 20 4e 55 4c 4c 73 2e 3c 2f 6c 69  ng of NULLs.</li
b950: 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72  >.<li>Add suppor
b960: 74 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20 53  t for the full S
b970: 51 4c 2d 39 32 20 6a 6f 69 6e 20 73 79 6e 74 61  QL-92 join synta
b980: 78 20 61 6e 64 20 4c 45 46 54 20 4f 55 54 45 52  x and LEFT OUTER
b990: 20 4a 4f 49 4e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   JOINs.</li>.<li
b9a0: 3e 44 6f 75 62 6c 65 2d 71 75 6f 74 65 64 20 73  >Double-quoted s
b9b0: 74 72 69 6e 67 73 20 69 6e 74 65 72 70 72 65 74  trings interpret
b9c0: 65 64 20 61 73 20 63 6f 6c 75 6d 6e 20 6e 61 6d  ed as column nam
b9d0: 65 73 20 6e 6f 74 20 74 65 78 74 20 6c 69 74 65  es not text lite
b9e0: 72 61 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  rals.</li>.<li>P
b9f0: 61 72 73 65 20 28 62 75 74 20 64 6f 20 6e 6f 74  arse (but do not
ba00: 20 69 6d 70 6c 65 6d 65 6e 74 29 20 66 6f 72 65   implement) fore
ba10: 69 67 6e 20 6b 65 79 73 2e 3c 2f 6c 69 3e 0a 3c  ign keys.</li>.<
ba20: 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 69  li>Performance i
ba30: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74  mprovements in t
ba40: 68 65 20 70 61 72 73 65 72 2c 20 70 61 67 65 72  he parser, pager
ba50: 2c 20 61 6e 64 20 57 48 45 52 45 20 63 6c 61 75  , and WHERE clau
ba60: 73 65 20 63 6f 64 65 0a 20 20 20 20 67 65 6e 65  se code.    gene
ba70: 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rator.</li>.<li>
ba80: 4d 61 6b 65 20 74 68 65 20 4c 49 4d 49 54 20 63  Make the LIMIT c
ba90: 6c 61 75 73 65 20 77 6f 72 6b 20 6f 6e 20 73 75  lause work on su
baa0: 62 71 75 65 72 69 65 73 2e 20 20 28 4f 52 44 45  bqueries.  (ORDE
bab0: 52 20 42 59 20 73 74 69 6c 6c 20 64 6f 65 73 20  R BY still does 
bac0: 6e 6f 74 0a 20 20 20 20 77 6f 72 6b 2c 20 74 68  not.    work, th
bad0: 6f 75 67 68 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ough.)</li>.<li>
bae0: 41 64 64 65 64 20 74 68 65 20 22 25 51 22 20 65  Added the "%Q" e
baf0: 78 70 61 6e 73 69 6f 6e 20 74 6f 20 73 71 6c 69  xpansion to sqli
bb00: 74 65 5f 2a 5f 70 72 69 6e 74 66 28 29 2e 3c 2f  te_*_printf().</
bb10: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65  li>.<li>Bug fixe
bb20: 73 20 74 6f 6f 20 6e 75 6d 65 72 6f 75 73 20 74  s too numerous t
bb30: 6f 20 6d 65 6e 74 69 6f 6e 20 28 73 65 65 20 74  o mention (see t
bb40: 68 65 20 63 68 61 6e 67 65 20 6c 6f 67 29 2e 3c  he change log).<
bb50: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
bb60: 30 32 20 4d 61 79 20 30 39 20 28 32 2e 34 2e 31  02 May 09 (2.4.1
bb70: 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  2)} {.<li>Added 
bb80: 6c 6f 67 69 63 20 74 6f 20 64 65 74 65 63 74 20  logic to detect 
bb90: 77 68 65 6e 20 74 68 65 20 6c 69 62 72 61 72 79  when the library
bba0: 20 41 50 49 20 72 6f 75 74 69 6e 65 73 20 61 72   API routines ar
bbb0: 65 20 63 61 6c 6c 65 64 20 6f 75 74 0a 20 20 20  e called out.   
bbc0: 20 6f 66 20 73 65 71 75 65 6e 63 65 2e 3c 2f 6c   of sequence.</l
bbd0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
bbe0: 20 4d 61 79 20 30 38 20 28 32 2e 34 2e 31 31 29   May 08 (2.4.11)
bbf0: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
bc00: 20 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e   Column names in
bc10: 20 74 68 65 20 72 65 73 75 6c 74 20 73 65 74 20   the result set 
bc20: 77 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 67  were not being g
bc30: 65 6e 65 72 61 74 65 64 0a 20 20 20 20 63 6f 72  enerated.    cor
bc40: 72 65 63 74 6c 79 20 66 6f 72 20 73 6f 6d 65 20  rectly for some 
bc50: 28 72 61 74 68 65 72 20 63 6f 6d 70 6c 65 78 29  (rather complex)
bc60: 20 56 49 45 57 73 2e 20 20 54 68 69 73 20 63 6f   VIEWs.  This co
bc70: 75 6c 64 20 63 61 75 73 65 20 61 0a 20 20 20 20  uld cause a.    
bc80: 73 65 67 66 61 75 6c 74 20 75 6e 64 65 72 20 63  segfault under c
bc90: 65 72 74 61 69 6e 20 63 69 72 63 75 6d 73 74 61  ertain circumsta
bca0: 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  nces.</li>.}..ch
bcb0: 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30 32 20  ng {2002 May 02 
bcc0: 28 32 2e 34 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e  (2.4.10)} {.<li>
bcd0: 42 75 67 20 66 69 78 3a 20 47 65 6e 65 72 61 74  Bug fix: Generat
bce0: 65 20 63 6f 72 72 65 63 74 20 63 6f 6c 75 6d 6e  e correct column
bcf0: 20 68 65 61 64 65 72 73 20 77 68 65 6e 20 61 20   headers when a 
bd00: 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20  compound SELECT 
bd10: 69 73 20 75 73 65 64 0a 20 20 20 20 61 73 20 61  is used.    as a
bd20: 20 73 75 62 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a   subquery.</li>.
bd30: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73 71  <li>Added the sq
bd40: 6c 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61  lite_encode_bina
bd50: 72 79 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f  ry() and sqlite_
bd60: 64 65 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20  decode_binary() 
bd70: 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20 20  functions to.   
bd80: 20 74 68 65 20 73 6f 75 72 63 65 20 74 72 65 65   the source tree
bd90: 2e 20 20 42 75 74 20 74 68 65 79 20 61 72 65 20  .  But they are 
bda0: 6e 6f 74 20 79 65 74 20 6c 69 6e 6b 65 64 20 69  not yet linked i
bdb0: 6e 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79 2e  nto the library.
bdc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
bdd0: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e  ntation updates.
bde0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74  </li>.<li>Export
bdf0: 20 74 68 65 20 73 71 6c 69 74 65 5f 63 68 61 6e   the sqlite_chan
be00: 67 65 73 28 29 20 66 75 6e 63 74 69 6f 6e 20 66  ges() function f
be10: 72 6f 6d 20 77 69 6e 64 6f 77 73 20 44 4c 4c 73  rom windows DLLs
be20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
be30: 69 78 3a 20 44 6f 20 6e 6f 74 20 61 74 74 65 6d  ix: Do not attem
be40: 70 74 20 74 68 65 20 73 75 62 71 75 65 72 79 20  pt the subquery 
be50: 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74 69 6d  flattening optim
be60: 69 7a 61 74 69 6f 6e 20 6f 6e 20 71 75 65 72 69  ization on queri
be70: 65 73 0a 20 20 20 20 74 68 61 74 20 6c 61 63 6b  es.    that lack
be80: 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 20   a FROM clause. 
be90: 20 54 6f 20 64 6f 20 73 6f 20 63 61 75 73 65 73   To do so causes
bea0: 20 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c 69   a segfault.</li
beb0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
bec0: 41 70 72 20 32 31 20 28 32 2e 34 2e 39 29 7d 20  Apr 21 (2.4.9)} 
bed0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
bee0: 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67  that was causing
bef0: 20 74 68 65 20 70 72 65 63 6f 6d 70 69 6c 65 64   the precompiled
bf00: 20 62 69 6e 61 72 79 20 6f 66 20 53 51 4c 49 54   binary of SQLIT
bf10: 45 2e 45 58 45 20 74 6f 0a 20 20 20 20 72 65 70  E.EXE to.    rep
bf20: 6f 72 74 20 22 6f 75 74 20 6f 66 20 6d 65 6d 6f  ort "out of memo
bf30: 72 79 22 20 75 6e 64 65 72 20 57 69 6e 64 6f 77  ry" under Window
bf40: 73 20 39 38 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  s 98.</li>.}..ch
bf50: 6e 67 20 7b 32 30 30 32 20 41 70 72 20 32 30 20  ng {2002 Apr 20 
bf60: 28 32 2e 34 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d  (2.4.8)} {.<li>M
bf70: 61 6b 65 20 73 75 72 65 20 56 49 45 57 73 20 61  ake sure VIEWs a
bf80: 72 65 20 63 72 65 61 74 65 64 20 61 66 74 65 72  re created after
bf90: 20 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e   their correspon
bfa0: 64 69 6e 67 20 54 41 42 4c 45 73 20 69 6e 20 74  ding TABLEs in t
bfb0: 68 65 0a 20 20 20 20 6f 75 74 70 75 74 20 6f 66  he.    output of
bfc0: 20 74 68 65 20 3c 62 3e 2e 64 75 6d 70 3c 2f 62   the <b>.dump</b
bfd0: 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65  > command in the
bfe0: 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69   shell.</li>.<li
bff0: 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65  >Speed improveme
c000: 6e 74 73 3a 20 44 6f 20 6e 6f 74 20 64 6f 20 73  nts: Do not do s
c010: 79 6e 63 68 72 6f 6e 6f 75 73 20 75 70 64 61 74  ynchronous updat
c020: 65 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c 65  es on TEMP table
c030: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79  s.</li>.<li>Many
c040: 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61 6e   improvements an
c050: 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74  d enhancements t
c060: 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69  o the shell.</li
c070: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 47  >.<li>Make the G
c080: 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70 65  LOB and LIKE ope
c090: 72 61 74 6f 72 73 20 66 75 6e 63 74 69 6f 6e 73  rators functions
c0a0: 20 74 68 61 74 20 63 61 6e 20 62 65 20 6f 76 65   that can be ove
c0b0: 72 72 69 64 64 65 6e 0a 20 20 20 20 62 79 20 61  rridden.    by a
c0c0: 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 20 54 68   programmer.  Th
c0d0: 69 73 20 61 6c 6c 6f 77 73 2c 20 66 6f 72 20 65  is allows, for e
c0e0: 78 61 6d 70 6c 65 2c 20 74 68 65 20 4c 49 4b 45  xample, the LIKE
c0f0: 20 6f 70 65 72 61 74 6f 72 20 74 6f 0a 20 20 20   operator to.   
c100: 20 62 65 20 63 68 61 6e 67 65 64 20 74 6f 20 62   be changed to b
c110: 65 20 63 61 73 65 20 73 65 6e 73 69 74 69 76 65  e case sensitive
c120: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c130: 32 30 30 32 20 41 70 72 20 30 36 20 28 32 2e 34  2002 Apr 06 (2.4
c140: 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74  .7)} {.<li>Add t
c150: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75  he ability to pu
c160: 74 20 54 41 42 4c 45 2e 2a 20 69 6e 20 74 68 65  t TABLE.* in the
c170: 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20   column list of 
c180: 61 0a 20 20 20 20 53 45 4c 45 43 54 20 73 74 61  a.    SELECT sta
c190: 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tement.</li>.<li
c1a0: 3e 50 65 72 6d 69 74 20 53 45 4c 45 43 54 20 73  >Permit SELECT s
c1b0: 74 61 74 65 6d 65 6e 74 73 20 77 69 74 68 6f 75  tatements withou
c1c0: 74 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e  t a FROM clause.
c1d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
c1e0: 74 68 65 20 3c 62 3e 6c 61 73 74 5f 69 6e 73 65  the <b>last_inse
c1f0: 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20 53  rt_rowid()</b> S
c200: 51 4c 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69  QL function.</li
c210: 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 63 6f 75  >.<li>Do not cou
c220: 6e 74 20 72 6f 77 73 20 77 68 65 72 65 20 74 68  nt rows where th
c230: 65 20 49 47 4e 4f 52 45 20 63 6f 6e 66 6c 69 63  e IGNORE conflic
c240: 74 20 72 65 73 6f 6c 75 74 69 6f 6e 20 6f 63 63  t resolution occ
c250: 75 72 73 20 69 6e 0a 20 20 20 20 74 68 65 20 72  urs in.    the r
c260: 6f 77 20 63 6f 75 6e 74 2e 3c 2f 6c 69 3e 0a 3c  ow count.</li>.<
c270: 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 66 75 6e  li>Make sure fun
c280: 63 74 69 6f 6e 73 20 65 78 70 72 65 73 73 69 6f  ctions expressio
c290: 6e 73 20 69 6e 20 74 68 65 20 56 41 4c 55 45 53  ns in the VALUES
c2a0: 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20 49 4e   clause of an IN
c2b0: 53 45 52 54 0a 20 20 20 20 61 72 65 20 63 6f 72  SERT.    are cor
c2c0: 72 65 63 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  rect.</li>.<li>A
c2d0: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
c2e0: 74 65 5f 63 68 61 6e 67 65 73 28 29 3c 2f 62 3e  te_changes()</b>
c2f0: 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 20 74 6f   API function to
c300: 20 72 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62   return the numb
c310: 65 72 0a 20 20 20 20 6f 66 20 72 6f 77 20 74 68  er.    of row th
c320: 61 74 20 63 68 61 6e 67 65 64 20 69 6e 20 74 68  at changed in th
c330: 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 6f 70  e most recent op
c340: 65 72 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a  eration.</li>.}.
c350: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20  .chng {2002 Apr 
c360: 30 32 20 28 32 2e 34 2e 36 29 7d 20 7b 0a 3c 6c  02 (2.4.6)} {.<l
c370: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65  i>Bug fix: Corre
c380: 63 74 6c 79 20 68 61 6e 64 6c 65 20 74 65 72 6d  ctly handle term
c390: 73 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63  s in the WHERE c
c3a0: 6c 61 75 73 65 20 6f 66 20 61 20 6a 6f 69 6e 20  lause of a join 
c3b0: 74 68 61 74 0a 20 20 20 20 64 6f 20 6e 6f 74 20  that.    do not 
c3c0: 63 6f 6e 74 61 69 6e 20 61 20 63 6f 6d 70 61 72  contain a compar
c3d0: 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 2e 3c 2f  ison operator.</
c3e0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
c3f0: 32 20 41 70 72 20 30 31 20 28 32 2e 34 2e 35 29  2 Apr 01 (2.4.5)
c400: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
c410: 20 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c   Correctly handl
c420: 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74  e functions that
c430: 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 57   appear in the W
c440: 48 45 52 45 20 63 6c 61 75 73 65 0a 20 20 20 20  HERE clause.    
c450: 6f 66 20 61 20 6a 6f 69 6e 2e 3c 2f 6c 69 3e 0a  of a join.</li>.
c460: 3c 6c 69 3e 57 68 65 6e 20 74 68 65 20 50 52 41  <li>When the PRA
c470: 47 4d 41 20 76 64 62 65 5f 74 72 61 63 65 3d 4f  GMA vdbe_trace=O
c480: 4e 20 69 73 20 73 65 74 2c 20 63 6f 72 72 65 63  N is set, correc
c490: 74 6c 79 20 70 72 69 6e 74 20 74 68 65 20 50 33  tly print the P3
c4a0: 20 6f 70 65 72 61 6e 64 0a 20 20 20 20 76 61 6c   operand.    val
c4b0: 75 65 20 77 68 65 6e 20 69 74 20 69 73 20 61 20  ue when it is a 
c4c0: 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 73 74 72  pointer to a str
c4d0: 75 63 74 75 72 65 20 72 61 74 68 65 72 20 74 68  ucture rather th
c4e0: 61 6e 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 0a  an a pointer to.
c4f0: 20 20 20 20 61 20 73 74 72 69 6e 67 2e 3c 2f 6c      a string.</l
c500: 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 69 6e 73 65  i>.<li>When inse
c510: 72 74 69 6e 67 20 61 6e 20 65 78 70 6c 69 63 69  rting an explici
c520: 74 20 4e 55 4c 4c 20 69 6e 74 6f 20 61 6e 20 49  t NULL into an I
c530: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
c540: 45 59 2c 20 63 6f 6e 76 65 72 74 0a 20 20 20 20  EY, convert.    
c550: 74 68 65 20 4e 55 4c 4c 20 76 61 6c 75 65 20 69  the NULL value i
c560: 6e 74 6f 20 61 20 75 6e 69 71 75 65 20 6b 65 79  nto a unique key
c570: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 3c   automatically.<
c580: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c590: 30 32 20 4d 61 72 20 32 34 20 28 32 2e 34 2e 34  02 Mar 24 (2.4.4
c5a0: 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22  )} {.<li>Allow "
c5b0: 56 49 45 57 22 20 74 6f 20 62 65 20 61 20 63 6f  VIEW" to be a co
c5c0: 6c 75 6d 6e 20 6e 61 6d 65 3c 2f 6c 69 3e 0a 3c  lumn name</li>.<
c5d0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
c5e0: 20 66 6f 72 20 43 41 53 45 20 65 78 70 72 65 73   for CASE expres
c5f0: 73 69 6f 6e 73 20 28 70 61 74 63 68 20 66 72 6f  sions (patch fro
c600: 6d 20 44 61 6e 20 4b 65 6e 6e 65 64 79 29 3c 2f  m Dan Kennedy)</
c610: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 52 50  li>.<li>Added RP
c620: 4d 53 20 74 6f 20 74 68 65 20 64 65 6c 69 76 65  MS to the delive
c630: 72 79 20 28 70 61 74 63 68 65 73 20 66 72 6f 6d  ry (patches from
c640: 20 44 6f 75 67 20 48 65 6e 72 79 29 3c 2f 6c 69   Doug Henry)</li
c650: 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73 20  >.<li>Fix typos 
c660: 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61  in the documenta
c670: 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 75  tion</li>.<li>Cu
c680: 74 20 6f 76 65 72 20 63 6f 6e 66 69 67 75 72 61  t over configura
c690: 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e 74 20  tion management 
c6a0: 74 6f 20 61 20 6e 65 77 20 43 56 53 20 72 65 70  to a new CVS rep
c6b0: 6f 73 69 74 6f 72 79 20 77 69 74 68 0a 20 20 20  ository with.   
c6c0: 20 69 74 73 20 6f 77 6e 20 43 56 53 54 72 61 63   its own CVSTrac
c6d0: 20 62 75 67 20 74 72 61 63 6b 69 6e 67 20 73 79   bug tracking sy
c6e0: 73 74 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  stem.</li>.}..ch
c6f0: 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 32 32 20  ng {2002 Mar 22 
c700: 28 32 2e 34 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.4.3)} {.<li>F
c710: 69 78 20 61 20 62 75 67 20 69 6e 20 53 45 4c 45  ix a bug in SELE
c720: 43 54 20 74 68 61 74 20 6f 63 63 75 72 73 20 77  CT that occurs w
c730: 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53  hen a compound S
c740: 45 4c 45 43 54 20 69 73 20 75 73 65 64 20 61 73  ELECT is used as
c750: 20 61 0a 20 20 20 20 73 75 62 71 75 65 72 79 20   a.    subquery 
c760: 69 6e 20 74 68 65 20 46 52 4f 4d 20 6f 66 20 61  in the FROM of a
c770: 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c   SELECT.</li>.<l
c780: 69 3e 54 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  i>The <b>sqlite_
c790: 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20  get_table()</b> 
c7a0: 66 75 6e 63 74 69 6f 6e 20 6e 6f 77 20 72 65 74  function now ret
c7b0: 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 20 69 66  urns an error if
c7c0: 20 79 6f 75 0a 20 20 20 20 67 69 76 65 20 69 74   you.    give it
c7d0: 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 53 45 4c   two or more SEL
c7e0: 45 43 54 73 20 74 68 61 74 20 72 65 74 75 72 6e  ECTs that return
c7f0: 20 64 69 66 66 65 72 65 6e 74 20 6e 75 6d 62 65   different numbe
c800: 72 73 20 6f 66 20 63 6f 6c 75 6d 6e 73 2e 3c 2f  rs of columns.</
c810: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
c820: 32 20 4d 61 72 20 31 34 20 28 32 2e 34 2e 32 29  2 Mar 14 (2.4.2)
c830: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
c840: 20 46 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f   Fix an assertio
c850: 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f  n failure that o
c860: 63 63 75 72 72 65 64 20 77 68 65 6e 20 52 4f 57  ccurred when ROW
c870: 49 44 20 77 61 73 20 61 20 63 6f 6c 75 6d 6e 0a  ID was a column.
c880: 20 20 20 20 69 6e 20 61 20 53 45 4c 45 43 54 20      in a SELECT 
c890: 73 74 61 74 65 6d 65 6e 74 20 6f 6e 20 61 20 76  statement on a v
c8a0: 69 65 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  iew.</li>.<li>Bu
c8b0: 67 20 66 69 78 3a 20 46 69 78 20 61 6e 20 75 6e  g fix: Fix an un
c8c0: 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72 69  initialized vari
c8d0: 61 62 6c 65 20 69 6e 20 74 68 65 20 56 44 42 45  able in the VDBE
c8e0: 20 74 68 61 74 20 77 6f 75 6c 64 20 63 6f 75 6c   that would coul
c8f0: 64 20 61 6e 0a 20 20 20 20 61 73 73 65 72 74 20  d an.    assert 
c900: 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c  failure.</li>.<l
c910: 69 3e 4d 61 6b 65 20 74 68 65 20 6f 73 2e 68 20  i>Make the os.h 
c920: 68 65 61 64 65 72 20 66 69 6c 65 20 6d 6f 72 65  header file more
c930: 20 72 6f 62 75 73 74 20 69 6e 20 64 65 74 65 63   robust in detec
c940: 74 69 6e 67 20 77 68 65 6e 20 74 68 65 20 63 6f  ting when the co
c950: 6d 70 69 6c 65 20 69 73 0a 20 20 20 20 66 6f 72  mpile is.    for
c960: 20 77 69 6e 64 6f 77 73 20 61 6e 64 20 77 68 65   windows and whe
c970: 6e 20 69 74 20 69 73 20 66 6f 72 20 75 6e 69 78  n it is for unix
c980: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c990: 32 30 30 32 20 4d 61 72 20 31 33 20 28 32 2e 34  2002 Mar 13 (2.4
c9a0: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 55 73 69 6e 67  .1)} {.<li>Using
c9b0: 20 61 6e 20 75 6e 6e 61 6d 65 64 20 73 75 62 71   an unnamed subq
c9c0: 75 65 72 79 20 69 6e 20 61 20 46 52 4f 4d 20 63  uery in a FROM c
c9d0: 6c 61 75 73 65 20 77 6f 75 6c 64 20 63 61 75 73  lause would caus
c9e0: 65 20 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c  e a segfault.</l
c9f0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65  i>.<li>The parse
ca00: 72 20 6e 6f 77 20 69 6e 73 69 73 74 73 20 6f 6e  r now insists on
ca10: 20 73 65 65 69 6e 67 20 61 20 73 65 6d 69 63 6f   seeing a semico
ca20: 6c 6f 6e 20 6f 72 20 74 68 65 20 65 6e 64 20 6f  lon or the end o
ca30: 66 20 69 6e 70 75 74 20 62 65 66 6f 72 65 0a 20  f input before. 
ca40: 20 20 20 65 78 65 63 75 74 69 6e 67 20 61 20 73     executing a s
ca50: 74 61 74 65 6d 65 6e 74 2e 20 20 54 68 69 73 20  tatement.  This 
ca60: 61 76 6f 69 64 73 20 61 6e 20 61 63 63 69 64 65  avoids an accide
ca70: 6e 74 61 6c 20 64 69 73 61 73 74 65 72 20 69 66  ntal disaster if
ca80: 20 74 68 65 0a 20 20 20 20 57 48 45 52 45 20 6b   the.    WHERE k
ca90: 65 79 77 6f 72 64 20 69 73 20 6d 69 73 73 70 65  eyword is misspe
caa0: 6c 6c 65 64 20 69 6e 20 61 6e 20 55 50 44 41 54  lled in an UPDAT
cab0: 45 20 6f 72 20 44 45 4c 45 54 45 20 73 74 61 74  E or DELETE stat
cac0: 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 0a  ement.</li>.}...
cad0: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 31  chng {2002 Mar 1
cae0: 30 20 28 32 2e 34 2e 30 29 7d 20 7b 0a 3c 6c 69  0 (2.4.0)} {.<li
caf0: 3e 43 68 61 6e 67 65 20 74 68 65 20 6e 61 6d 65  >Change the name
cb00: 20 6f 66 20 74 68 65 20 73 61 6e 69 74 79 5f 63   of the sanity_c
cb10: 68 65 63 6b 20 50 52 41 47 4d 41 20 74 6f 20 3c  heck PRAGMA to <
cb20: 62 3e 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63  b>integrity_chec
cb30: 6b 3c 2f 62 3e 0a 20 20 20 20 61 6e 64 20 6d 61  k</b>.    and ma
cb40: 6b 65 20 69 74 20 61 76 61 69 6c 61 62 6c 65 20  ke it available 
cb50: 69 6e 20 61 6c 6c 20 63 6f 6d 70 69 6c 65 73 2e  in all compiles.
cb60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 45 4c 45 43 54  </li>.<li>SELECT
cb70: 20 6d 69 6e 28 29 20 6f 72 20 6d 61 78 28 29 20   min() or max() 
cb80: 6f 66 20 61 6e 20 69 6e 64 65 78 65 64 20 63 6f  of an indexed co
cb90: 6c 75 6d 6e 20 77 69 74 68 20 6e 6f 20 57 48 45  lumn with no WHE
cba0: 52 45 20 6f 72 20 47 52 4f 55 50 20 42 59 0a 20  RE or GROUP BY. 
cbb0: 20 20 20 63 6c 61 75 73 65 20 69 73 20 68 61 6e     clause is han
cbc0: 64 6c 65 64 20 61 73 20 61 20 73 70 65 63 69 61  dled as a specia
cbd0: 6c 20 63 61 73 65 20 77 68 69 63 68 20 61 76 6f  l case which avo
cbe0: 69 64 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 74  ids a complete t
cbf0: 61 62 6c 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a  able scan.</li>.
cc00: 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c  <li>Automaticall
cc10: 79 20 67 65 6e 65 72 61 74 65 64 20 52 4f 57 49  y generated ROWI
cc20: 44 73 20 61 72 65 20 6e 6f 77 20 73 65 71 75 65  Ds are now seque
cc30: 6e 74 69 61 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ntial.</li>.<li>
cc40: 44 6f 20 6e 6f 74 20 61 6c 6c 6f 77 20 64 6f 74  Do not allow dot
cc50: 2d 63 6f 6d 6d 61 6e 64 73 20 6f 66 20 74 68 65  -commands of the
cc60: 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68   command-line sh
cc70: 65 6c 6c 20 74 6f 20 6f 63 63 75 72 20 69 6e 20  ell to occur in 
cc80: 74 68 65 0a 20 20 20 20 6d 69 64 64 6c 65 20 6f  the.    middle o
cc90: 66 20 61 20 72 65 61 6c 20 53 51 4c 20 63 6f 6d  f a real SQL com
cca0: 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  mand.</li>.<li>M
ccb0: 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 20  odifications to 
ccc0: 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73  the "lemon" pars
ccd0: 65 72 20 67 65 6e 65 72 61 74 6f 72 20 73 6f 20  er generator so 
cce0: 74 68 61 74 20 74 68 65 20 70 61 72 73 65 72 20  that the parser 
ccf0: 74 61 62 6c 65 73 0a 20 20 20 20 61 72 65 20 34  tables.    are 4
cd00: 20 74 69 6d 65 73 20 73 6d 61 6c 6c 65 72 2e 3c   times smaller.<
cd10: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
cd20: 75 70 70 6f 72 74 20 66 6f 72 20 75 73 65 72 2d  upport for user-
cd30: 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e  defined function
cd40: 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 69 6e  s implemented in
cd50: 20 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64   C.</li>.<li>Add
cd60: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6e  ed support for n
cd70: 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62  ew functions: <b
cd80: 3e 63 6f 61 6c 65 73 63 65 28 29 3c 2f 62 3e 2c  >coalesce()</b>,
cd90: 20 3c 62 3e 6c 6f 77 65 72 28 29 3c 2f 62 3e 2c   <b>lower()</b>,
cda0: 0a 20 20 20 20 3c 62 3e 75 70 70 65 72 28 29 3c  .    <b>upper()<
cdb0: 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 72 61 6e 64  /b>, and <b>rand
cdc0: 6f 6d 28 29 3c 2f 62 3e 0a 3c 6c 69 3e 41 64 64  om()</b>.<li>Add
cdd0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 56  ed support for V
cde0: 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  IEWs.</li>.<li>A
cdf0: 64 64 65 64 20 74 68 65 20 73 75 62 71 75 65 72  dded the subquer
ce00: 79 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74  y flattening opt
ce10: 69 6d 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  imizer.</li>.<li
ce20: 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 42 2d  >Modified the B-
ce30: 54 72 65 65 20 61 6e 64 20 50 61 67 65 72 20 6d  Tree and Pager m
ce40: 6f 64 75 6c 65 73 20 73 6f 20 74 68 61 74 20 64  odules so that d
ce50: 69 73 6b 20 70 61 67 65 73 20 74 68 61 74 20 64  isk pages that d
ce60: 6f 20 6e 6f 74 0a 20 20 20 20 63 6f 6e 74 61 69  o not.    contai
ce70: 6e 20 72 65 61 6c 20 64 61 74 61 20 28 66 72 65  n real data (fre
ce80: 65 20 70 61 67 65 73 29 20 61 72 65 20 6e 6f 74  e pages) are not
ce90: 20 6a 6f 75 72 6e 61 6c 65 64 20 61 6e 64 20 61   journaled and a
cea0: 72 65 20 6e 6f 74 0a 20 20 20 20 77 72 69 74 74  re not.    writt
ceb0: 65 6e 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 20 62  en from memory b
cec0: 61 63 6b 20 74 6f 20 74 68 65 20 64 69 73 6b 20  ack to the disk 
ced0: 77 68 65 6e 20 74 68 65 79 20 63 68 61 6e 67 65  when they change
cee0: 2e 20 20 54 68 69 73 20 64 6f 65 73 20 6e 6f 74  .  This does not
cef0: 20 0a 20 20 20 20 69 6d 70 61 63 74 20 64 61 74   .    impact dat
cf00: 61 62 61 73 65 20 69 6e 74 65 67 72 69 74 79 2c  abase integrity,
cf10: 20 73 69 6e 63 65 20 74 68 65 0a 20 20 20 20 70   since the.    p
cf20: 61 67 65 73 20 63 6f 6e 74 61 69 6e 20 6e 6f 20  ages contain no 
cf30: 72 65 61 6c 20 64 61 74 61 2c 20 62 75 74 20 69  real data, but i
cf40: 74 20 64 6f 65 73 20 6d 61 6b 65 20 6c 61 72 67  t does make larg
cf50: 65 20 49 4e 53 45 52 54 20 6f 70 65 72 61 74 69  e INSERT operati
cf60: 6f 6e 73 0a 20 20 20 20 61 62 6f 75 74 20 32 2e  ons.    about 2.
cf70: 35 20 74 69 6d 65 73 20 66 61 73 74 65 72 20 61  5 times faster a
cf80: 6e 64 20 6c 61 72 67 65 20 44 45 4c 45 54 45 73  nd large DELETEs
cf90: 20 61 62 6f 75 74 20 35 20 74 69 6d 65 73 20 66   about 5 times f
cfa0: 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  aster.</li>.<li>
cfb0: 4d 61 64 65 20 74 68 65 20 43 41 43 48 45 5f 53  Made the CACHE_S
cfc0: 49 5a 45 20 70 72 61 67 6d 61 20 70 65 72 73 69  IZE pragma persi
cfd0: 73 74 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  stent</li>.<li>A
cfe0: 64 64 65 64 20 74 68 65 20 53 59 4e 43 48 52 4f  dded the SYNCHRO
cff0: 4e 4f 55 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e  NOUS pragma</li>
d000: 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67  .<li>Fixed a bug
d010: 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e   that was causin
d020: 67 20 75 70 64 61 74 65 73 20 74 6f 20 66 61 69  g updates to fai
d030: 6c 20 69 6e 73 69 64 65 20 6f 66 20 74 72 61 6e  l inside of tran
d040: 73 61 63 74 69 6f 6e 73 20 77 68 65 6e 0a 20 20  sactions when.  
d050: 20 20 74 68 65 20 64 61 74 61 62 61 73 65 20 63    the database c
d060: 6f 6e 74 61 69 6e 65 64 20 61 20 74 65 6d 70 6f  ontained a tempo
d070: 72 61 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e  rary table.</li>
d080: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46  .}..chng {2002 F
d090: 65 62 20 31 38 20 28 32 2e 33 2e 33 29 7d 20 7b  eb 18 (2.3.3)} {
d0a0: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 69 64 65 6e 74  .<li>Allow ident
d0b0: 69 66 69 65 72 73 20 74 6f 20 62 65 20 71 75 6f  ifiers to be quo
d0c0: 74 65 64 20 69 6e 20 73 71 75 61 72 65 20 62 72  ted in square br
d0d0: 61 63 6b 65 74 73 2c 20 66 6f 72 20 63 6f 6d 70  ackets, for comp
d0e0: 61 74 69 62 69 6c 69 74 79 0a 20 20 20 20 77 69  atibility.    wi
d0f0: 74 68 20 4d 53 2d 41 63 63 65 73 73 2e 3c 2f 6c  th MS-Access.</l
d100: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
d110: 70 6f 72 74 20 66 6f 72 20 73 75 62 2d 71 75 65  port for sub-que
d120: 72 69 65 73 20 69 6e 20 74 68 65 20 46 52 4f 4d  ries in the FROM
d130: 20 63 6c 61 75 73 65 20 6f 66 20 61 20 53 45 4c   clause of a SEL
d140: 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  ECT.</li>.<li>Mo
d150: 72 65 20 65 66 66 69 63 69 65 6e 74 20 69 6d 70  re efficient imp
d160: 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 73  lementation of s
d170: 71 6c 69 74 65 46 69 6c 65 45 78 69 73 74 73 28  qliteFileExists(
d180: 29 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e  ) under Windows.
d190: 0a 20 20 20 20 28 62 79 20 4a 6f 65 6c 20 4c 75  .    (by Joel Lu
d1a0: 73 63 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  scy)</li>.<li>Th
d1b0: 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73 65 20  e VALUES clause 
d1c0: 6f 66 20 61 6e 20 49 4e 53 45 52 54 20 63 61 6e  of an INSERT can
d1d0: 20 6e 6f 77 20 63 6f 6e 74 61 69 6e 20 65 78 70   now contain exp
d1e0: 72 65 73 73 69 6f 6e 73 2c 20 69 6e 63 6c 75 64  ressions, includ
d1f0: 69 6e 67 0a 20 20 20 20 73 63 61 6c 61 72 20 53  ing.    scalar S
d200: 45 4c 45 43 54 20 63 6c 61 75 73 65 73 2e 3c 2f  ELECT clauses.</
d210: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
d220: 70 70 6f 72 74 20 66 6f 72 20 43 52 45 41 54 45  pport for CREATE
d230: 20 54 41 42 4c 45 20 41 53 20 53 45 4c 45 43 54   TABLE AS SELECT
d240: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
d250: 78 3a 20 43 72 65 61 74 69 6e 67 20 61 6e 64 20  x: Creating and 
d260: 64 72 6f 70 70 69 6e 67 20 61 20 74 61 62 6c 65  dropping a table
d270: 20 61 6c 6c 20 77 69 74 68 69 6e 20 61 20 73 69   all within a si
d280: 6e 67 6c 65 0a 20 20 20 20 74 72 61 6e 73 61 63  ngle.    transac
d290: 74 69 6f 6e 20 77 61 73 20 6e 6f 74 20 77 6f 72  tion was not wor
d2a0: 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  king.</li>.}..ch
d2b0: 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31 34 20  ng {2002 Feb 14 
d2c0: 28 32 2e 33 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.3.2)} {.<li>B
d2d0: 75 67 20 66 69 78 3a 20 54 68 65 72 65 20 77 61  ug fix: There wa
d2e0: 73 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 61  s an incorrect a
d2f0: 73 73 65 72 74 28 29 20 69 6e 20 70 61 67 65 72  ssert() in pager
d300: 2e 63 2e 20 20 54 68 65 20 72 65 61 6c 20 63 6f  .c.  The real co
d310: 64 65 20 77 61 73 0a 20 20 20 20 61 6c 6c 20 63  de was.    all c
d320: 6f 72 72 65 63 74 20 28 61 73 20 66 61 72 20 61  orrect (as far a
d330: 73 20 69 73 20 6b 6e 6f 77 6e 29 20 73 6f 20 65  s is known) so e
d340: 76 65 72 79 74 68 69 6e 67 20 73 68 6f 75 6c 64  verything should
d350: 20 77 6f 72 6b 20 4f 4b 20 69 66 20 79 6f 75 0a   work OK if you.
d360: 20 20 20 20 63 6f 6d 70 69 6c 65 20 77 69 74 68      compile with
d370: 20 2d 44 4e 44 45 42 55 47 3d 31 2e 20 20 57 68   -DNDEBUG=1.  Wh
d380: 65 6e 20 61 73 73 65 72 74 73 20 61 72 65 20 6e  en asserts are n
d390: 6f 74 20 64 69 73 61 62 6c 65 64 2c 20 74 68 65  ot disabled, the
d3a0: 72 65 0a 20 20 20 20 63 6f 75 6c 64 20 62 65 20  re.    could be 
d3b0: 61 20 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a  a fault.</li>.}.
d3c0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20  .chng {2002 Feb 
d3d0: 31 33 20 28 32 2e 33 2e 31 29 7d 20 7b 0a 3c 6c  13 (2.3.1)} {.<l
d3e0: 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61 73  i>Bug fix: An as
d3f0: 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c  sertion was fail
d400: 69 6e 67 20 69 66 20 22 50 52 41 47 4d 41 20 66  ing if "PRAGMA f
d410: 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73  ull_column_names
d420: 3d 4f 4e 3b 22 20 77 61 73 0a 20 20 20 20 73 65  =ON;" was.    se
d430: 74 20 61 6e 64 20 79 6f 75 20 64 69 64 20 61 20  t and you did a 
d440: 71 75 65 72 79 20 74 68 61 74 20 75 73 65 64 20  query that used 
d450: 61 20 72 6f 77 69 64 2c 20 6c 69 6b 65 20 74 68  a rowid, like th
d460: 69 73 3a 20 20 0a 20 20 20 20 22 53 45 4c 45 43  is:  .    "SELEC
d470: 54 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20  T rowid, * FROM 
d480: 2e 2e 2e 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ...".</li>.}..ch
d490: 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 33 30 20  ng {2002 Jan 30 
d4a0: 28 32 2e 33 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.3.0)} {.<li>F
d4b0: 69 78 20 61 20 73 65 72 69 6f 75 73 20 62 75 67  ix a serious bug
d4c0: 20 69 6e 20 74 68 65 20 49 4e 53 45 52 54 20 63   in the INSERT c
d4d0: 6f 6d 6d 61 6e 64 20 77 68 69 63 68 20 77 61 73  ommand which was
d4e0: 20 63 61 75 73 69 6e 67 20 64 61 74 61 20 74 6f   causing data to
d4f0: 20 67 6f 0a 20 20 20 20 69 6e 74 6f 20 74 68 65   go.    into the
d500: 20 77 72 6f 6e 67 20 63 6f 6c 75 6d 6e 73 20 69   wrong columns i
d510: 66 20 74 68 65 20 64 61 74 61 20 73 6f 75 72 63  f the data sourc
d520: 65 20 77 61 73 20 61 20 53 45 4c 45 43 54 20 61  e was a SELECT a
d530: 6e 64 20 74 68 65 20 49 4e 53 45 52 54 0a 20 20  nd the INSERT.  
d540: 20 20 63 6c 61 75 73 65 73 20 73 70 65 63 69 66    clauses specif
d550: 69 65 64 20 69 74 73 20 63 6f 6c 75 6d 6e 73 20  ied its columns 
d560: 69 6e 20 73 6f 6d 65 20 6f 72 64 65 72 20 6f 74  in some order ot
d570: 68 65 72 20 74 68 61 6e 20 74 68 65 20 64 65 66  her than the def
d580: 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ault.</li>.<li>A
d590: 64 64 65 64 20 74 68 65 20 61 62 69 6c 69 74 79  dded the ability
d5a0: 20 74 6f 20 72 65 73 6f 6c 76 65 20 63 6f 6e 73   to resolve cons
d5b0: 74 72 61 69 6e 74 20 63 6f 6e 66 6c 69 63 74 73  traint conflicts
d5c0: 20 69 73 20 77 61 79 73 20 6f 74 68 65 72 20 74   is ways other t
d5d0: 68 61 6e 0a 20 20 20 20 61 6e 20 61 62 6f 72 74  han.    an abort
d5e0: 20 61 6e 64 20 72 6f 6c 6c 62 61 63 6b 2e 20 20   and rollback.  
d5f0: 53 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74  See the document
d600: 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 22 4f 4e  ation on the "ON
d610: 20 43 4f 4e 46 4c 49 43 54 22 0a 20 20 20 20 63   CONFLICT".    c
d620: 6c 61 75 73 65 20 66 6f 72 20 64 65 74 61 69 6c  lause for detail
d630: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 65 6d 70  s.</li>.<li>Temp
d640: 6f 72 61 72 79 20 66 69 6c 65 73 20 61 72 65 20  orary files are 
d650: 6e 6f 77 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  now automaticall
d660: 79 20 64 65 6c 65 74 65 64 20 62 79 20 74 68 65  y deleted by the
d670: 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65   operating syste
d680: 6d 0a 20 20 20 20 77 68 65 6e 20 63 6c 6f 73 65  m.    when close
d690: 64 2e 20 20 54 68 65 72 65 20 61 72 65 20 6e 6f  d.  There are no
d6a0: 20 6d 6f 72 65 20 64 61 6e 67 6c 69 6e 67 20 74   more dangling t
d6b0: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 6f  emporary files o
d6c0: 6e 20 61 20 70 72 6f 67 72 61 6d 0a 20 20 20 20  n a program.    
d6d0: 63 72 61 73 68 2e 20 20 28 49 66 20 74 68 65 20  crash.  (If the 
d6e0: 4f 53 20 63 72 61 73 68 65 73 2c 20 66 73 63 6b  OS crashes, fsck
d6f0: 20 77 69 6c 6c 20 64 65 6c 65 74 65 20 74 68 65   will delete the
d700: 20 66 69 6c 65 20 61 66 74 65 72 20 72 65 62 6f   file after rebo
d710: 6f 74 20 0a 20 20 20 20 75 6e 64 65 72 20 55 6e  ot .    under Un
d720: 69 78 2e 20 20 49 20 64 6f 20 6e 6f 74 20 6b 6e  ix.  I do not kn
d730: 6f 77 20 77 68 61 74 20 68 61 70 70 65 6e 73 20  ow what happens 
d740: 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e 29 3c  under Windows.)<
d750: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 4f 54 20 4e 55 4c  /li>.<li>NOT NUL
d760: 4c 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72  L constraints ar
d770: 65 20 68 6f 6e 6f 72 65 64 2e 3c 2f 6c 69 3e 0a  e honored.</li>.
d780: 3c 6c 69 3e 54 68 65 20 43 4f 50 59 20 63 6f 6d  <li>The COPY com
d790: 6d 61 6e 64 20 70 75 74 73 20 4e 55 4c 4c 73 20  mand puts NULLs 
d7a0: 69 6e 20 63 6f 6c 75 6d 6e 73 20 77 68 6f 73 65  in columns whose
d7b0: 20 64 61 74 61 20 69 73 20 27 5c 4e 27 2e 3c 2f   data is '\N'.</
d7c0: 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 43  li>.<li>In the C
d7d0: 4f 50 59 20 63 6f 6d 6d 61 6e 64 2c 20 62 61 63  OPY command, bac
d7e0: 6b 73 6c 61 73 68 20 63 61 6e 20 6e 6f 77 20 62  kslash can now b
d7f0: 65 20 75 73 65 64 20 74 6f 20 65 73 63 61 70 65  e used to escape
d800: 20 61 20 6e 65 77 6c 69 6e 65 2e 3c 2f 6c 69 3e   a newline.</li>
d810: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 53  .<li>Added the S
d820: 41 4e 49 54 59 5f 43 48 45 43 4b 20 70 72 61 67  ANITY_CHECK prag
d830: 6d 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ma.</li>.}..chng
d840: 20 7b 32 30 30 32 20 4a 61 6e 20 32 38 20 28 32   {2002 Jan 28 (2
d850: 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 49 6d 70  .2.5)} {.<li>Imp
d860: 6f 72 74 61 6e 74 20 62 75 67 20 66 69 78 3a 20  ortant bug fix: 
d870: 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20  the IN operator 
d880: 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20  was not working 
d890: 69 66 20 65 69 74 68 65 72 20 74 68 65 0a 20 20  if either the.  
d8a0: 20 20 6c 65 66 74 2d 68 61 6e 64 20 6f 72 20 72    left-hand or r
d8b0: 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20 77  ight-hand side w
d8c0: 61 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20  as derived from 
d8d0: 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41  an INTEGER PRIMA
d8e0: 52 59 20 4b 45 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69  RY KEY.</li>.<li
d8f0: 3e 44 6f 20 6e 6f 74 20 65 73 63 61 70 65 20 74  >Do not escape t
d900: 68 65 20 62 61 63 6b 73 6c 61 73 68 20 27 5c 27  he backslash '\'
d910: 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 68   character in th
d920: 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 0a  e output of the.
d930: 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62      <b>sqlite</b
d940: 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61  > command-line a
d950: 63 63 65 73 73 20 70 72 6f 67 72 61 6d 2e 3c 2f  ccess program.</
d960: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
d970: 32 20 4a 61 6e 20 32 32 20 28 32 2e 32 2e 34 29  2 Jan 22 (2.2.4)
d980: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c 61 62 65  } {.<li>The labe
d990: 6c 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 6f  l to the right o
d9a0: 66 20 61 6e 20 41 53 20 69 6e 20 74 68 65 20 63  f an AS in the c
d9b0: 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61 20  olumn list of a 
d9c0: 53 45 4c 45 43 54 20 63 61 6e 20 6e 6f 77 0a 20  SELECT can now. 
d9d0: 20 20 20 62 65 20 75 73 65 64 20 61 73 20 70 61     be used as pa
d9e0: 72 74 20 6f 66 20 61 6e 20 65 78 70 72 65 73 73  rt of an express
d9f0: 69 6f 6e 20 69 6e 20 74 68 65 20 57 48 45 52 45  ion in the WHERE
da00: 2c 20 4f 52 44 45 52 20 42 59 2c 20 47 52 4f 55  , ORDER BY, GROU
da10: 50 20 42 59 2c 20 61 6e 64 2f 6f 72 0a 20 20 20  P BY, and/or.   
da20: 20 48 41 56 49 4e 47 20 63 6c 61 75 73 65 73 2e   HAVING clauses.
da30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
da40: 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 2d 73  bug in the <b>-s
da50: 65 70 61 72 61 74 6f 72 3c 2f 62 3e 20 63 6f 6d  eparator</b> com
da60: 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e  mand-line option
da70: 20 74 6f 20 74 68 65 20 3c 62 3e 73 71 6c 69 74   to the <b>sqlit
da80: 65 3c 2f 62 3e 0a 20 20 20 20 63 6f 6d 6d 61 6e  e</b>.    comman
da90: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  d.</li>.<li>Fix 
daa0: 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 74  a problem with t
dab0: 68 65 20 73 6f 72 74 20 6f 72 64 65 72 20 77 68  he sort order wh
dac0: 65 6e 20 63 6f 6d 70 61 72 69 6e 67 20 75 70 70  en comparing upp
dad0: 65 72 2d 63 61 73 65 20 73 74 72 69 6e 67 73 20  er-case strings 
dae0: 61 67 61 69 6e 73 74 0a 20 20 20 20 63 68 61 72  against.    char
daf0: 61 63 74 65 72 73 20 67 72 65 61 74 65 72 20 74  acters greater t
db00: 68 61 6e 20 27 5a 27 20 62 75 74 20 6c 65 73 73  han 'Z' but less
db10: 20 74 68 61 6e 20 27 61 27 2e 3c 2f 6c 69 3e 0a   than 'a'.</li>.
db20: 3c 6c 69 3e 52 65 70 6f 72 74 20 61 6e 20 65 72  <li>Report an er
db30: 72 6f 72 20 69 66 20 61 6e 20 4f 52 44 45 52 20  ror if an ORDER 
db40: 42 59 20 6f 72 20 47 52 4f 55 50 20 42 59 20 65  BY or GROUP BY e
db50: 78 70 72 65 73 73 69 6f 6e 20 69 73 20 63 6f 6e  xpression is con
db60: 73 74 61 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  stant.</li>.}..c
db70: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 31 36  hng {2002 Jan 16
db80: 20 28 32 2e 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.3)} {.<li>
db90: 46 69 78 20 77 61 72 6e 69 6e 67 20 6d 65 73 73  Fix warning mess
dba0: 61 67 65 73 20 69 6e 20 56 43 2b 2b 20 37 2e 30  ages in VC++ 7.0
dbb0: 2e 20 20 28 50 61 74 63 68 65 73 20 66 72 6f 6d  .  (Patches from
dbc0: 20 6e 69 63 6f 6c 61 73 33 35 32 30 30 31 29 3c   nicolas352001)<
dbd0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68  /li>.<li>Make th
dbe0: 65 20 6c 69 62 72 61 72 79 20 74 68 72 65 61 64  e library thread
dbf0: 2d 73 61 66 65 2e 20 20 28 54 68 65 20 63 6f 64  -safe.  (The cod
dc00: 65 20 69 73 20 74 68 65 72 65 20 61 6e 64 20 61  e is there and a
dc10: 70 70 65 61 72 73 20 74 6f 20 77 6f 72 6b 0a 20  ppears to work. 
dc20: 20 20 20 62 75 74 20 68 61 73 20 6e 6f 74 20 62     but has not b
dc30: 65 65 6e 20 73 74 72 65 73 73 65 64 2e 29 3c 2f  een stressed.)</
dc40: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
dc50: 65 20 6e 65 77 20 3c 62 3e 73 71 6c 69 74 65 5f  e new <b>sqlite_
dc60: 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69  last_insert_rowi
dc70: 64 28 29 3c 2f 62 3e 20 41 50 49 20 66 75 6e 63  d()</b> API func
dc80: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tion.</li>.}..ch
dc90: 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 31 33 20  ng {2002 Jan 13 
dca0: 28 32 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.2.2)} {.<li>B
dcb0: 75 67 20 66 69 78 3a 20 41 6e 20 61 73 73 65 72  ug fix: An asser
dcc0: 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67  tion was failing
dcd0: 20 77 68 65 6e 20 61 20 74 65 6d 70 6f 72 61 72   when a temporar
dce0: 79 20 74 61 62 6c 65 20 77 69 74 68 20 61 6e 20  y table with an 
dcf0: 69 6e 64 65 78 0a 20 20 20 20 68 61 64 20 74 68  index.    had th
dd00: 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 61  e same name as a
dd10: 20 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c 65   permanent table
dd20: 20 63 72 65 61 74 65 64 20 62 79 20 61 20 73 65   created by a se
dd30: 70 61 72 61 74 65 20 70 72 6f 63 65 73 73 2e 3c  parate process.<
dd40: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
dd50: 3a 20 55 70 64 61 74 65 73 20 74 6f 20 74 61 62  : Updates to tab
dd60: 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61  les containing a
dd70: 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  n INTEGER PRIMAR
dd80: 59 20 4b 45 59 20 61 6e 64 20 61 6e 0a 20 20 20  Y KEY and an.   
dd90: 20 69 6e 64 65 78 20 63 6f 75 6c 64 20 66 61 69   index could fai
dda0: 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  l.</li>.}..chng 
ddb0: 7b 32 30 30 32 20 4a 61 6e 20 39 20 28 32 2e 32  {2002 Jan 9 (2.2
ddc0: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .1)} {.<li>Bug f
ddd0: 69 78 3a 20 41 6e 20 61 74 74 65 6d 70 74 20 74  ix: An attempt t
dde0: 6f 20 64 65 6c 65 74 65 20 61 20 73 69 6e 67 6c  o delete a singl
ddf0: 65 20 72 6f 77 20 6f 66 20 61 20 74 61 62 6c 65  e row of a table
de00: 20 77 69 74 68 20 61 20 57 48 45 52 45 0a 20 20   with a WHERE.  
de10: 20 20 63 6c 61 75 73 65 20 6f 66 20 22 52 4f 57    clause of "ROW
de20: 49 44 3d 78 22 20 77 68 65 6e 20 6e 6f 20 73 75  ID=x" when no su
de30: 63 68 20 72 6f 77 69 64 20 65 78 69 73 74 73 20  ch rowid exists 
de40: 77 61 73 20 63 61 75 73 69 6e 67 20 61 6e 20 65  was causing an e
de50: 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  rror.</li>.<li>B
de60: 75 67 20 66 69 78 3a 20 50 61 73 73 69 6e 67 20  ug fix: Passing 
de70: 69 6e 20 61 20 4e 55 4c 4c 20 61 73 20 74 68 65  in a NULL as the
de80: 20 33 72 64 20 70 61 72 61 6d 65 74 65 72 20 74   3rd parameter t
de90: 6f 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e  o <b>sqlite_open
dea0: 28 29 3c 2f 62 3e 0a 20 20 20 20 77 6f 75 6c 64  ()</b>.    would
deb0: 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65   sometimes cause
dec0: 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69   a coredump.</li
ded0: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 44  >.<li>Bug fix: D
dee0: 52 4f 50 20 54 41 42 4c 45 20 66 6f 6c 6c 6f 77  ROP TABLE follow
def0: 65 64 20 62 79 20 61 20 43 52 45 41 54 45 20 54  ed by a CREATE T
df00: 41 42 4c 45 20 77 69 74 68 20 74 68 65 20 73 61  ABLE with the sa
df10: 6d 65 20 6e 61 6d 65 20 61 6c 6c 0a 20 20 20 20  me name all.    
df20: 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 20  within a single 
df30: 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61 73 20  transaction was 
df40: 63 61 75 73 69 6e 67 20 61 20 63 6f 72 65 64 75  causing a coredu
df50: 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  mp.</li>.<li>Mak
df60: 65 66 69 6c 65 20 75 70 64 61 74 65 73 20 66 72  efile updates fr
df70: 6f 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e 3c 2f  om A. Rottmann</
df80: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
df90: 31 20 44 65 63 20 32 32 20 28 32 2e 32 2e 30 29  1 Dec 22 (2.2.0)
dfa0: 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 73 20  } {.<li>Columns 
dfb0: 6f 66 20 74 79 70 65 20 49 4e 54 45 47 45 52 20  of type INTEGER 
dfc0: 50 52 49 4d 41 52 59 20 4b 45 59 20 61 72 65 20  PRIMARY KEY are 
dfd0: 61 63 74 75 61 6c 6c 79 20 75 73 65 64 20 61 73  actually used as
dfe0: 20 74 68 65 20 70 72 69 6d 61 72 79 0a 20 20 20   the primary.   
dff0: 20 6b 65 79 20 69 6e 20 75 6e 64 65 72 6c 79 69   key in underlyi
e000: 6e 67 20 42 2d 54 72 65 65 20 72 65 70 72 65 73  ng B-Tree repres
e010: 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20  entation of the 
e020: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  table.</li>.<li>
e030: 53 65 76 65 72 61 6c 20 6f 62 73 63 75 72 65 2c  Several obscure,
e040: 20 75 6e 72 65 6c 61 74 65 64 20 62 75 67 73 20   unrelated bugs 
e050: 77 65 72 65 20 66 6f 75 6e 64 20 61 6e 64 20 66  were found and f
e060: 69 78 65 64 20 77 68 69 6c 65 20 0a 20 20 20 20  ixed while .    
e070: 69 6d 70 6c 65 6d 65 6e 74 65 64 20 74 68 65 20  implemented the 
e080: 69 6e 74 65 67 65 72 20 70 72 69 6d 61 72 79 20  integer primary 
e090: 6b 65 79 20 63 68 61 6e 67 65 20 6f 66 20 74 68  key change of th
e0a0: 65 20 70 72 65 76 69 6f 75 73 20 62 75 6c 6c 65  e previous bulle
e0b0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  t.</li>.<li>Adde
e0c0: 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f  d the ability to
e0d0: 20 73 70 65 63 69 66 79 20 22 2a 22 20 61 73 20   specify "*" as 
e0e0: 70 61 72 74 20 6f 66 20 61 20 6c 61 72 67 65 72  part of a larger
e0f0: 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 69 6e 0a   column list in.
e100: 20 20 20 20 74 68 65 20 72 65 73 75 6c 74 20 73      the result s
e110: 65 63 74 69 6f 6e 20 6f 66 20 61 20 53 45 4c 45  ection of a SELE
e120: 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 46  CT statement.  F
e130: 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20  or example:.    
e140: 3c 6e 6f 62 72 3e 22 3c 62 3e 53 45 4c 45 43 54  <nobr>"<b>SELECT
e150: 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20 74   rowid, * FROM t
e160: 61 62 6c 65 31 3b 3c 2f 62 3e 22 3c 2f 6e 6f 62  able1;</b>"</nob
e170: 72 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64  r>.</li>.<li>Upd
e180: 61 74 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74 73  ates to comments
e190: 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69   and documentati
e1a0: 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  on.</li>.}..chng
e1b0: 20 7b 32 30 30 31 20 44 65 63 20 31 34 20 28 32   {2001 Dec 14 (2
e1c0: 2e 31 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.7)} {.<li>Fix
e1d0: 20 61 20 62 75 67 20 69 6e 20 3c 62 3e 43 52 45   a bug in <b>CRE
e1e0: 41 54 45 20 54 45 4d 50 4f 52 41 52 59 20 54 41  ATE TEMPORARY TA
e1f0: 42 4c 45 3c 2f 62 3e 20 77 68 69 63 68 20 77 61  BLE</b> which wa
e200: 73 20 63 61 75 73 69 6e 67 20 74 68 65 0a 20 20  s causing the.  
e210: 20 20 74 61 62 6c 65 20 74 6f 20 62 65 20 69 6e    table to be in
e220: 69 74 69 61 6c 6c 79 20 61 6c 6c 6f 63 61 74 65  itially allocate
e230: 64 20 69 6e 20 74 68 65 20 6d 61 69 6e 20 64 61  d in the main da
e240: 74 61 62 61 73 65 20 66 69 6c 65 20 69 6e 73 74  tabase file inst
e250: 65 61 64 0a 20 20 20 20 6f 66 20 69 6e 20 74 68  ead.    of in th
e260: 65 20 73 65 70 61 72 61 74 65 20 74 65 6d 70 6f  e separate tempo
e270: 72 61 72 79 20 66 69 6c 65 2e 20 20 54 68 69 73  rary file.  This
e280: 20 62 75 67 20 63 6f 75 6c 64 20 63 61 75 73 65   bug could cause
e290: 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20   the library.   
e2a0: 20 74 6f 20 73 75 66 66 65 72 20 61 6e 20 61 73   to suffer an as
e2b0: 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20  sertion failure 
e2c0: 61 6e 64 20 69 74 20 63 6f 75 6c 64 20 63 61 75  and it could cau
e2d0: 73 65 20 22 70 61 67 65 20 6c 65 61 6b 73 22 20  se "page leaks" 
e2e0: 69 6e 20 74 68 65 0a 20 20 20 20 6d 61 69 6e 20  in the.    main 
e2f0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 0a 3c  database file..<
e300: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
e310: 74 68 65 20 62 2d 74 72 65 65 20 73 75 62 73 79  the b-tree subsy
e320: 73 74 65 6d 20 74 68 61 74 20 63 6f 75 6c 64 20  stem that could 
e330: 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 20  sometimes cause 
e340: 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 72 6f  the first.    ro
e350: 77 20 6f 66 20 61 20 74 61 62 6c 65 20 74 6f 20  w of a table to 
e360: 62 65 20 72 65 70 65 61 74 65 64 20 64 75 72 69  be repeated duri
e370: 6e 67 20 61 20 64 61 74 61 62 61 73 65 20 73 63  ng a database sc
e380: 61 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  an.</li>.}..chng
e390: 20 7b 32 30 30 31 20 44 65 63 20 31 34 20 28 32   {2001 Dec 14 (2
e3a0: 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.6)} {.<li>Fix
e3b0: 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 6d 65 63   the locking mec
e3c0: 68 61 6e 69 73 6d 20 79 65 74 20 61 67 61 69 6e  hanism yet again
e3d0: 20 74 6f 20 70 72 65 76 65 6e 74 0a 20 20 20 20   to prevent.    
e3e0: 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29  <b>sqlite_exec()
e3f0: 3c 2f 62 3e 20 66 72 6f 6d 20 72 65 74 75 72 6e  </b> from return
e400: 69 6e 67 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f  ing SQLITE_PROTO
e410: 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73 73  COL.    unnecess
e420: 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69 6d  arily.  This tim
e430: 65 20 74 68 65 20 62 75 67 20 77 61 73 20 61 20  e the bug was a 
e440: 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69  race condition i
e450: 6e 0a 20 20 20 20 74 68 65 20 6c 6f 63 6b 69 6e  n.    the lockin
e460: 67 20 63 6f 64 65 2e 20 20 54 68 69 73 20 63 68  g code.  This ch
e470: 61 6e 67 65 20 65 66 66 65 63 74 73 20 62 6f 74  ange effects bot
e480: 68 20 50 4f 53 49 58 20 61 6e 64 20 57 69 6e 64  h POSIX and Wind
e490: 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a  ows users.</li>.
e4a0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65  }..chng {2001 De
e4b0: 63 20 36 20 28 32 2e 31 2e 35 29 7d 20 7b 0a 3c  c 6 (2.1.5)} {.<
e4c0: 6c 69 3e 46 69 78 20 66 6f 72 20 61 6e 6f 74 68  li>Fix for anoth
e4d0: 65 72 20 70 72 6f 62 6c 65 6d 20 28 75 6e 72 65  er problem (unre
e4e0: 6c 61 74 65 64 20 74 6f 20 74 68 65 20 6f 6e 65  lated to the one
e4f0: 20 66 69 78 65 64 20 69 6e 20 32 2e 31 2e 34 29   fixed in 2.1.4)
e500: 20 0a 20 20 20 20 74 68 61 74 20 73 6f 6d 65 74   .    that somet
e510: 69 6d 65 73 20 63 61 75 73 65 73 20 3c 62 3e 73  imes causes <b>s
e520: 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e  qlite_exec()</b>
e530: 20 74 6f 20 72 65 74 75 72 6e 20 53 51 4c 49 54   to return SQLIT
e540: 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20 75  E_PROTOCOL.    u
e550: 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e 20 20 54  nnecessarily.  T
e560: 68 69 73 20 74 69 6d 65 20 74 68 65 20 62 75 67  his time the bug
e570: 20 77 61 73 0a 20 20 20 20 69 6e 20 74 68 65 20   was.    in the 
e580: 50 4f 53 49 58 20 6c 6f 63 6b 69 6e 67 20 63 6f  POSIX locking co
e590: 64 65 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f  de and should no
e5a0: 74 20 65 66 66 65 63 74 20 77 69 6e 64 6f 77 73  t effect windows
e5b0: 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   users.</li>.}..
e5c0: 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 34  chng {2001 Dec 4
e5d0: 20 28 32 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.4)} {.<li>
e5e0: 53 6f 6d 65 74 69 6d 65 73 20 3c 62 3e 73 71 6c  Sometimes <b>sql
e5f0: 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77  ite_exec()</b> w
e600: 6f 75 6c 64 20 72 65 74 75 72 6e 20 53 51 4c 49  ould return SQLI
e610: 54 45 5f 50 52 4f 54 4f 43 4f 4c 20 77 68 65 6e  TE_PROTOCOL when
e620: 20 69 74 0a 20 20 20 20 73 68 6f 75 6c 64 20 68   it.    should h
e630: 61 76 65 20 72 65 74 75 72 6e 65 64 20 53 51 4c  ave returned SQL
e640: 49 54 45 5f 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c  ITE_BUSY.</li>.<
e650: 6c 69 3e 54 68 65 20 66 69 78 20 74 6f 20 74 68  li>The fix to th
e660: 65 20 70 72 65 76 69 6f 75 73 20 62 75 67 20 75  e previous bug u
e670: 6e 63 6f 76 65 72 65 64 20 61 20 64 65 61 64 6c  ncovered a deadl
e680: 6f 63 6b 20 77 68 69 63 68 20 77 61 73 20 61 6c  ock which was al
e690: 73 6f 0a 20 20 20 20 66 69 78 65 64 2e 3c 2f 6c  so.    fixed.</l
e6a0: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61  i>.<li>Add the a
e6b0: 62 69 6c 69 74 79 20 74 6f 20 70 75 74 20 61 20  bility to put a 
e6c0: 73 69 6e 67 6c 65 20 2e 63 6f 6d 6d 61 6e 64 20  single .command 
e6d0: 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72  in the second ar
e6e0: 67 75 6d 65 6e 74 0a 20 20 20 20 6f 66 20 74 68  gument.    of th
e6f0: 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 3c 2f  e sqlite shell</
e700: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20  li>.<li>Updates 
e710: 74 6f 20 74 68 65 20 46 41 51 3c 2f 6c 69 3e 0a  to the FAQ</li>.
e720: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f  }..chng {2001 No
e730: 76 20 32 33 20 28 32 2e 31 2e 33 29 7d 20 7b 0a  v 23 (2.1.3)} {.
e740: 3c 6c 69 3e 46 69 78 20 74 68 65 20 62 65 68 61  <li>Fix the beha
e750: 76 69 6f 72 20 6f 66 20 63 6f 6d 70 61 72 69 73  vior of comparis
e760: 6f 6e 20 6f 70 65 72 61 74 6f 72 73 20 0a 20 20  on operators .  
e770: 20 20 28 65 78 3a 20 22 3c 62 3e 26 6c 74 3c 2f    (ex: "<b>&lt</
e780: 62 3e 22 2c 20 22 3c 62 3e 3d 3d 3c 2f 62 3e 22  b>", "<b>==</b>"
e790: 2c 20 65 74 63 2e 29 0a 20 20 20 20 73 6f 20 74  , etc.).    so t
e7a0: 68 61 74 20 74 68 65 79 20 61 72 65 20 63 6f 6e  hat they are con
e7b0: 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65  sistent with the
e7c0: 20 6f 72 64 65 72 20 6f 66 20 65 6e 74 72 69 65   order of entrie
e7d0: 73 20 69 6e 20 61 6e 20 69 6e 64 65 78 2e 3c 2f  s in an index.</
e7e0: 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 20  li>.<li>Correct 
e7f0: 68 61 6e 64 6c 69 6e 67 20 6f 66 20 69 6e 74 65  handling of inte
e800: 67 65 72 73 20 69 6e 20 53 51 4c 20 65 78 70 72  gers in SQL expr
e810: 65 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65  essions that are
e820: 20 6c 61 72 67 65 72 20 74 68 61 6e 0a 20 20 20   larger than.   
e830: 20 77 68 61 74 20 63 61 6e 20 62 65 20 72 65 70   what can be rep
e840: 72 65 73 65 6e 74 65 64 20 62 79 20 74 68 65 20  resented by the 
e850: 6d 61 63 68 69 6e 65 20 69 6e 74 65 67 65 72 2e  machine integer.
e860: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
e870: 30 30 31 20 4e 6f 76 20 32 32 20 28 32 2e 31 2e  001 Nov 22 (2.1.
e880: 32 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65  2)} {.<li>Change
e890: 73 20 74 6f 20 73 75 70 70 6f 72 74 20 36 34 2d  s to support 64-
e8a0: 62 69 74 20 61 72 63 68 69 74 65 63 74 75 72 65  bit architecture
e8b0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
e8c0: 61 20 62 75 67 20 69 6e 20 74 68 65 20 6c 6f 63  a bug in the loc
e8d0: 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 3c 2f  king protocol.</
e8e0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
e8f0: 67 20 74 68 61 74 20 63 6f 75 6c 64 20 28 72 61  g that could (ra
e900: 72 65 6c 79 29 20 63 61 75 73 65 20 74 68 65 20  rely) cause the 
e910: 64 61 74 61 62 61 73 65 20 74 6f 20 62 65 63 6f  database to beco
e920: 6d 65 20 0a 20 20 20 20 75 6e 72 65 61 64 61 62  me .    unreadab
e930: 6c 65 20 61 66 74 65 72 20 61 20 44 52 4f 50 20  le after a DROP 
e940: 54 41 42 4c 45 20 64 75 65 20 74 6f 20 63 6f 72  TABLE due to cor
e950: 72 75 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 53  ruption to the S
e960: 51 4c 49 54 45 5f 4d 41 53 54 45 52 0a 20 20 20  QLITE_MASTER.   
e970: 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69   table.</li>.<li
e980: 3e 43 68 61 6e 67 65 20 74 68 65 20 63 6f 64 65  >Change the code
e990: 20 73 6f 20 74 68 61 74 20 76 65 72 73 69 6f 6e   so that version
e9a0: 20 32 2e 31 2e 31 20 64 61 74 61 62 61 73 65 73   2.1.1 databases
e9b0: 20 74 68 61 74 20 77 65 72 65 20 72 65 6e 64 65   that were rende
e9c0: 72 65 64 20 0a 20 20 20 20 75 6e 72 65 61 64 61  red .    unreada
e9d0: 62 6c 65 20 62 79 20 74 68 65 20 61 62 6f 76 65  ble by the above
e9e0: 20 62 75 67 20 63 61 6e 20 62 65 20 72 65 61 64   bug can be read
e9f0: 20 62 79 20 74 68 69 73 20 76 65 72 73 69 6f 6e   by this version
ea00: 20 6f 66 0a 20 20 20 20 74 68 65 20 6c 69 62 72   of.    the libr
ea10: 61 72 79 20 65 76 65 6e 20 74 68 6f 75 67 68 20  ary even though 
ea20: 74 68 65 20 53 51 4c 49 54 45 5f 4d 41 53 54 45  the SQLITE_MASTE
ea30: 52 20 74 61 62 6c 65 20 69 73 20 28 73 6c 69 67  R table is (slig
ea40: 68 74 6c 79 29 0a 20 20 20 20 63 6f 72 72 75 70  htly).    corrup
ea50: 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ted.</li>.}..chn
ea60: 67 20 7b 32 30 30 31 20 4e 6f 76 20 31 33 20 28  g {2001 Nov 13 (
ea70: 32 2e 31 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.1.1)} {.<li>Bu
ea80: 67 20 66 69 78 3a 20 53 6f 6d 65 74 69 6d 65 73  g fix: Sometimes
ea90: 20 61 72 62 69 74 72 61 72 79 20 73 74 72 69 6e   arbitrary strin
eaa0: 67 73 20 77 65 72 65 20 70 61 73 73 65 64 20 74  gs were passed t
eab0: 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 0a 20  o the callback. 
eac0: 20 20 20 66 75 6e 63 74 69 6f 6e 20 77 68 65 6e     function when
ead0: 20 74 68 65 20 61 63 74 75 61 6c 20 76 61 6c 75   the actual valu
eae0: 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 77 61  e of a column wa
eaf0: 73 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  s NULL.</li>.}..
eb00: 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 31  chng {2001 Nov 1
eb10: 32 20 28 32 2e 31 2e 30 29 7d 20 7b 0a 3c 6c 69  2 (2.1.0)} {.<li
eb20: 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d  >Change the form
eb30: 61 74 20 6f 66 20 64 61 74 61 20 72 65 63 6f 72  at of data recor
eb40: 64 73 20 73 6f 20 74 68 61 74 20 72 65 63 6f 72  ds so that recor
eb50: 64 73 20 75 70 20 74 6f 20 31 36 4d 42 20 69 6e  ds up to 16MB in
eb60: 20 73 69 7a 65 0a 20 20 20 20 63 61 6e 20 62 65   size.    can be
eb70: 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c   stored.</li>.<l
eb80: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72  i>Change the for
eb90: 6d 61 74 20 6f 66 20 69 6e 64 69 63 65 73 20 74  mat of indices t
eba0: 6f 20 61 6c 6c 6f 77 20 66 6f 72 20 62 65 74 74  o allow for bett
ebb0: 65 72 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a  er query optimiz
ebc0: 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ation.</li>.<li>
ebd0: 49 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 22 4c  Implement the "L
ebe0: 49 4d 49 54 20 2e 2e 2e 20 4f 46 46 53 45 54 20  IMIT ... OFFSET 
ebf0: 2e 2e 2e 22 20 63 6c 61 75 73 65 20 6f 6e 20 53  ..." clause on S
ec00: 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 73  ELECT statements
ec10: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
ec20: 32 30 30 31 20 4e 6f 76 20 33 20 28 32 2e 30 2e  2001 Nov 3 (2.0.
ec30: 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 64 65 20 73  8)} {.<li>Made s
ec40: 65 6c 65 63 74 65 64 20 70 61 72 61 6d 65 74 65  elected paramete
ec50: 72 73 20 69 6e 20 41 50 49 20 66 75 6e 63 74 69  rs in API functi
ec60: 6f 6e 73 20 3c 62 3e 63 6f 6e 73 74 3c 2f 62 3e  ons <b>const</b>
ec70: 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 0a 20 20  . This should.  
ec80: 20 20 62 65 20 66 75 6c 6c 79 20 62 61 63 6b 77    be fully backw
ec90: 61 72 64 73 20 63 6f 6d 70 61 74 69 62 6c 65 2e  ards compatible.
eca0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
ecb0: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
ecc0: 2f 6c 69 3e 0a 3c 6c 69 3e 53 69 6d 70 6c 69 66  /li>.<li>Simplif
ecd0: 79 20 74 68 65 20 64 65 73 69 67 6e 20 6f 66 20  y the design of 
ece0: 74 68 65 20 56 44 42 45 20 62 79 20 72 65 73 74  the VDBE by rest
ecf0: 72 69 63 74 69 6e 67 20 74 68 65 20 6e 75 6d 62  ricting the numb
ed00: 65 72 20 6f 66 20 73 6f 72 74 65 72 73 0a 20 20  er of sorters.  
ed10: 20 20 61 6e 64 20 6c 69 73 74 73 20 74 6f 20 31    and lists to 1
ed20: 2e 0a 20 20 20 20 49 6e 20 70 72 61 63 74 69 63  ..    In practic
ed30: 65 2c 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20  e, no more than 
ed40: 6f 6e 65 20 73 6f 72 74 65 72 20 61 6e 64 20 6f  one sorter and o
ed50: 6e 65 20 6c 69 73 74 20 77 61 73 20 65 76 65 72  ne list was ever
ed60: 20 75 73 65 64 20 61 6e 79 68 6f 77 2e 0a 20 20   used anyhow..  
ed70: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
ed80: 7b 32 30 30 31 20 4f 63 74 20 32 31 20 28 32 2e  {2001 Oct 21 (2.
ed90: 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 79 20  0.7)} {.<li>Any 
eda0: 55 54 46 2d 38 20 63 68 61 72 61 63 74 65 72 20  UTF-8 character 
edb0: 6f 72 20 49 53 4f 38 38 35 39 20 63 68 61 72 61  or ISO8859 chara
edc0: 63 74 65 72 20 63 61 6e 20 62 65 20 75 73 65 64  cter can be used
edd0: 20 61 73 20 70 61 72 74 20 6f 66 0a 20 20 20 20   as part of.    
ede0: 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2e 3c 2f  an identifier.</
edf0: 6c 69 3e 0a 3c 6c 69 3e 50 61 74 63 68 65 73 20  li>.<li>Patches 
ee00: 66 72 6f 6d 20 43 68 72 69 73 74 69 61 6e 20 57  from Christian W
ee10: 65 72 6e 65 72 20 74 6f 20 69 6d 70 72 6f 76 65  erner to improve
ee20: 20 4f 44 42 43 20 63 6f 6d 70 61 74 69 62 69 6c   ODBC compatibil
ee30: 69 74 79 20 61 6e 64 20 74 6f 0a 20 20 20 20 66  ity and to.    f
ee40: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
ee50: 72 6f 75 6e 64 28 29 20 66 75 6e 63 74 69 6f 6e  round() function
ee60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 6c 75 67 20  .</li>.<li>Plug 
ee70: 73 6f 6d 65 20 6d 65 6d 6f 72 79 20 6c 65 61 6b  some memory leak
ee80: 73 20 74 68 61 74 20 75 73 65 20 74 6f 20 6f 63  s that use to oc
ee90: 63 75 72 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20  cur if malloc() 
eea0: 66 61 69 6c 65 64 2e 0a 20 20 20 20 57 65 20 68  failed..    We h
eeb0: 61 76 65 20 62 65 65 6e 20 61 6e 64 20 63 6f 6e  ave been and con
eec0: 74 69 6e 75 65 20 74 6f 20 62 65 20 6d 65 6d 6f  tinue to be memo
eed0: 72 79 20 6c 65 61 6b 20 66 72 65 65 20 61 73 20  ry leak free as 
eee0: 6c 6f 6e 67 20 61 73 0a 20 20 20 20 6d 61 6c 6c  long as.    mall
eef0: 6f 63 28 29 20 77 6f 72 6b 73 2e 3c 2f 6c 69 3e  oc() works.</li>
ef00: 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20  .<li>Changes to 
ef10: 73 6f 6d 65 20 74 65 73 74 20 73 63 72 69 70 74  some test script
ef20: 73 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 77  s so that they w
ef30: 6f 72 6b 20 6f 6e 20 57 69 6e 64 6f 77 73 20 69  ork on Windows i
ef40: 6e 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 20 74  n.    addition t
ef50: 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  o Unix.</li>.}..
ef60: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
ef70: 39 20 28 32 2e 30 2e 36 29 7d 20 7b 0a 3c 6c 69  9 (2.0.6)} {.<li
ef80: 3e 41 64 64 65 64 20 74 68 65 20 45 4d 50 54 59  >Added the EMPTY
ef90: 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b  _RESULT_CALLBACK
efa0: 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c  S pragma</li>.<l
efb0: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 55 54  i>Support for UT
efc0: 46 2d 38 20 61 6e 64 20 49 53 4f 38 38 35 39 20  F-8 and ISO8859 
efd0: 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 63 6f  characters in co
efe0: 6c 75 6d 6e 20 61 6e 64 20 74 61 62 6c 65 20 6e  lumn and table n
eff0: 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ames.</li>.<li>B
f000: 75 67 20 66 69 78 3a 20 43 6f 6d 70 75 74 65 20  ug fix: Compute 
f010: 63 6f 72 72 65 63 74 20 74 61 62 6c 65 20 6e 61  correct table na
f020: 6d 65 73 20 77 69 74 68 20 74 68 65 20 46 55 4c  mes with the FUL
f030: 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70  L_COLUMN_NAMES p
f040: 72 61 67 6d 61 0a 20 20 20 20 69 73 20 74 75 72  ragma.    is tur
f050: 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ned on.</li>.}..
f060: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
f070: 34 20 28 32 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69  4 (2.0.5)} {.<li
f080: 3e 41 64 64 65 64 20 74 68 65 20 43 4f 55 4e 54  >Added the COUNT
f090: 5f 43 48 41 4e 47 45 53 20 70 72 61 67 6d 61 2e  _CHANGES pragma.
f0a0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
f0b0: 73 20 74 6f 20 74 68 65 20 46 55 4c 4c 5f 43 4f  s to the FULL_CO
f0c0: 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d  LUMN_NAMES pragm
f0d0: 61 20 74 6f 20 68 65 6c 70 20 6f 75 74 20 74 68  a to help out th
f0e0: 65 20 4f 44 42 43 20 64 72 69 76 65 72 2e 3c 2f  e ODBC driver.</
f0f0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
f100: 20 22 53 45 4c 45 43 54 20 63 6f 75 6e 74 28 2a   "SELECT count(*
f110: 29 22 20 77 61 73 20 72 65 74 75 72 6e 69 6e 67  )" was returning
f120: 20 4e 55 4c 4c 20 66 6f 72 20 65 6d 70 74 79 20   NULL for empty 
f130: 74 61 62 6c 65 73 2e 0a 20 20 20 20 4e 6f 77 20  tables..    Now 
f140: 69 74 20 72 65 74 75 72 6e 73 20 30 2e 3c 2f 6c  it returns 0.</l
f150: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
f160: 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 34 29 7d   Oct 13 (2.0.4)}
f170: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
f180: 61 6e 20 6f 62 73 63 75 72 65 20 61 6e 64 20 72  an obscure and r
f190: 65 6c 61 74 69 76 65 6c 79 20 68 61 72 6d 6c 65  elatively harmle
f1a0: 73 73 20 62 75 67 20 77 61 73 20 63 61 75 73 69  ss bug was causi
f1b0: 6e 67 20 6f 6e 65 20 6f 66 0a 20 20 20 20 74 68  ng one of.    th
f1c0: 65 20 74 65 73 74 73 20 74 6f 20 66 61 69 6c 20  e tests to fail 
f1d0: 77 68 65 6e 20 67 63 63 20 6f 70 74 69 6d 69 7a  when gcc optimiz
f1e0: 61 74 69 6f 6e 73 20 61 72 65 20 74 75 72 6e 65  ations are turne
f1f0: 64 20 6f 6e 2e 20 20 54 68 69 73 20 72 65 6c 65  d on.  This rele
f200: 61 73 65 0a 20 20 20 20 66 69 78 65 73 20 74 68  ase.    fixes th
f210: 65 20 70 72 6f 62 6c 65 6d 2e 3c 2f 6c 69 3e 0a  e problem.</li>.
f220: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
f230: 74 20 31 33 20 28 32 2e 30 2e 33 29 7d 20 7b 0a  t 13 (2.0.3)} {.
f240: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 74 68 65  <li>Bug fix: the
f250: 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f   <b>sqlite_busy_
f260: 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 66 75  timeout()</b> fu
f270: 6e 63 74 69 6f 6e 20 77 61 73 20 64 65 6c 61 79  nction was delay
f280: 69 6e 67 20 31 30 30 30 0a 20 20 20 20 74 69 6d  ing 1000.    tim
f290: 65 73 20 74 6f 6f 20 6c 6f 6e 67 20 62 65 66 6f  es too long befo
f2a0: 72 65 20 66 61 69 6c 69 6e 67 2e 3c 2f 6c 69 3e  re failing.</li>
f2b0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61 6e  .<li>Bug fix: an
f2c0: 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66   assertion was f
f2d0: 61 69 6c 69 6e 67 20 69 66 20 74 68 65 20 64 69  ailing if the di
f2e0: 73 6b 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 64  sk holding the d
f2f0: 61 74 61 62 61 73 65 0a 20 20 20 20 66 69 6c 65  atabase.    file
f300: 20 62 65 63 61 6d 65 20 66 75 6c 6c 20 6f 72 20   became full or 
f310: 73 74 6f 70 70 65 64 20 61 63 63 65 70 74 69 6e  stopped acceptin
f320: 67 20 77 72 69 74 65 73 20 66 6f 72 20 73 6f 6d  g writes for som
f330: 65 20 6f 74 68 65 72 20 72 65 61 73 6f 6e 2e 0a  e other reason..
f340: 20 20 20 20 4e 65 77 20 74 65 73 74 73 20 77 65      New tests we
f350: 72 65 20 61 64 64 65 64 20 74 6f 20 64 65 74 65  re added to dete
f360: 63 74 20 73 69 6d 69 6c 61 72 20 70 72 6f 62 6c  ct similar probl
f370: 65 6d 73 20 69 6e 20 74 68 65 20 66 75 74 75 72  ems in the futur
f380: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  e.</li>.<li>Adde
f390: 64 20 6e 65 77 20 6f 70 65 72 61 74 6f 72 73 3a  d new operators:
f3a0: 20 3c 62 3e 26 61 6d 70 3b 3c 2f 62 3e 20 28 62   <b>&amp;</b> (b
f3b0: 69 74 77 69 73 65 2d 61 6e 64 29 0a 20 20 20 20  itwise-and).    
f3c0: 3c 62 3e 7c 3c 2f 62 3e 20 28 62 69 74 77 69 73  <b>|</b> (bitwis
f3d0: 65 2d 6f 72 29 2c 20 3c 62 3e 7e 3c 2f 62 3e 20  e-or), <b>~</b> 
f3e0: 28 6f 6e 65 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74  (ones-complement
f3f0: 29 2c 0a 20 20 20 20 3c 62 3e 26 6c 74 3b 26 6c  ),.    <b>&lt;&l
f400: 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20 6c 65  t;</b> (shift le
f410: 66 74 29 2c 20 3c 62 3e 26 67 74 3b 26 67 74 3b  ft), <b>&gt;&gt;
f420: 3c 2f 62 3e 20 28 73 68 69 66 74 20 72 69 67 68  </b> (shift righ
f430: 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  t).</li>.<li>Add
f440: 65 64 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73  ed new functions
f450: 3a 20 3c 62 3e 72 6f 75 6e 64 28 29 3c 2f 62 3e  : <b>round()</b>
f460: 20 61 6e 64 20 3c 62 3e 61 62 73 28 29 3c 2f 62   and <b>abs()</b
f470: 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  >.</li>.}..chng 
f480: 7b 32 30 30 31 20 4f 63 74 20 39 20 28 32 2e 30  {2001 Oct 9 (2.0
f490: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74  .2)} {.<li>Fix t
f4a0: 77 6f 20 62 75 67 73 20 69 6e 20 74 68 65 20 6c  wo bugs in the l
f4b0: 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e  ocking protocol.
f4c0: 20 20 28 4f 6e 65 20 77 61 73 20 6d 61 73 6b 69    (One was maski
f4d0: 6e 67 20 74 68 65 20 6f 74 68 65 72 2e 29 3c 2f  ng the other.)</
f4e0: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20  li>.<li>Removed 
f4f0: 73 6f 6d 65 20 75 6e 75 73 65 64 20 22 23 69 6e  some unused "#in
f500: 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e  clude <unistd.h>
f510: 22 20 74 68 61 74 20 77 65 72 65 20 63 61 75 73  " that were caus
f520: 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20 20  ing problems.   
f530: 20 66 6f 72 20 56 43 2b 2b 2e 3c 2f 6c 69 3e 0a   for VC++.</li>.
f540: 3c 6c 69 3e 46 69 78 65 64 20 3c 62 3e 73 71 6c  <li>Fixed <b>sql
f550: 69 74 65 2e 68 3c 2f 62 3e 20 73 6f 20 74 68 61  ite.h</b> so tha
f560: 74 20 69 74 20 69 73 20 75 73 61 62 6c 65 20 66  t it is usable f
f570: 72 6f 6d 20 43 2b 2b 3c 2f 6c 69 3e 0a 3c 6c 69  rom C++</li>.<li
f580: 3e 41 64 64 65 64 20 74 68 65 20 46 55 4c 4c 5f  >Added the FULL_
f590: 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61  COLUMN_NAMES pra
f5a0: 67 6d 61 2e 20 20 57 68 65 6e 20 73 65 74 20 74  gma.  When set t
f5b0: 6f 20 22 4f 4e 22 2c 20 74 68 65 20 6e 61 6d 65  o "ON", the name
f5c0: 73 20 6f 66 0a 20 20 20 20 63 6f 6c 75 6d 6e 73  s of.    columns
f5d0: 20 61 72 65 20 72 65 70 6f 72 74 65 64 20 62 61   are reported ba
f5e0: 63 6b 20 61 73 20 54 41 42 4c 45 2e 43 4f 4c 55  ck as TABLE.COLU
f5f0: 4d 4e 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75  MN instead of ju
f600: 73 74 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a  st COLUMN.</li>.
f610: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 54 41  <li>Added the TA
f620: 42 4c 45 5f 49 4e 46 4f 28 29 20 61 6e 64 20 49  BLE_INFO() and I
f630: 4e 44 45 58 5f 49 4e 46 4f 28 29 20 70 72 61 67  NDEX_INFO() prag
f640: 6d 61 73 20 74 6f 20 68 65 6c 70 20 73 75 70 70  mas to help supp
f650: 6f 72 74 20 74 68 65 0a 20 20 20 20 4f 44 42 43  ort the.    ODBC
f660: 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e   interface.</li>
f670: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
f680: 72 74 20 66 6f 72 20 54 45 4d 50 4f 52 41 52 59  rt for TEMPORARY
f690: 20 74 61 62 6c 65 73 20 61 6e 64 20 69 6e 64 69   tables and indi
f6a0: 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ces.</li>.}..chn
f6b0: 67 20 7b 32 30 30 31 20 4f 63 74 20 32 20 28 32  g {2001 Oct 2 (2
f6c0: 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d  .0.1)} {.<li>Rem
f6d0: 6f 76 65 20 73 6f 6d 65 20 43 2b 2b 20 73 74 79  ove some C++ sty
f6e0: 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d  le comments from
f6f0: 20 62 74 72 65 65 2e 63 20 73 6f 20 74 68 61 74   btree.c so that
f700: 20 69 74 20 77 69 6c 6c 20 63 6f 6d 70 69 6c 65   it will compile
f710: 0a 20 20 20 20 75 73 69 6e 67 20 63 6f 6d 70 69  .    using compi
f720: 6c 65 72 73 20 6f 74 68 65 72 20 74 68 61 6e 20  lers other than 
f730: 67 63 63 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  gcc.</li>.<li>Th
f740: 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70 75 74  e ".dump" output
f750: 20 66 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c 20   from the shell 
f760: 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b 20 69 66  does not work if
f770: 20 74 68 65 72 65 20 61 72 65 20 65 6d 62 65 64   there are embed
f780: 64 65 64 0a 20 20 20 20 6e 65 77 6c 69 6e 65 73  ded.    newlines
f790: 20 61 6e 79 77 68 65 72 65 20 69 6e 20 74 68 65   anywhere in the
f7a0: 20 64 61 74 61 2e 20 20 54 68 69 73 20 69 73 20   data.  This is 
f7b0: 61 6e 20 6f 6c 64 20 62 75 67 20 74 68 61 74 20  an old bug that 
f7c0: 77 61 73 20 63 61 72 72 69 65 64 0a 20 20 20 20  was carried.    
f7d0: 66 6f 72 77 61 72 64 20 66 72 6f 6d 20 76 65 72  forward from ver
f7e0: 73 69 6f 6e 20 31 2e 30 2e 20 20 54 6f 20 66 69  sion 1.0.  To fi
f7f0: 78 20 69 74 2c 20 74 68 65 20 22 2e 64 75 6d 70  x it, the ".dump
f800: 22 20 6f 75 74 70 75 74 20 6e 6f 20 6c 6f 6e 67  " output no long
f810: 65 72 0a 20 20 20 20 75 73 65 73 20 74 68 65 20  er.    uses the 
f820: 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2e 20 20 49  COPY command.  I
f830: 74 20 69 6e 73 74 65 61 64 20 67 65 6e 65 72 61  t instead genera
f840: 74 65 73 20 49 4e 53 45 52 54 20 73 74 61 74 65  tes INSERT state
f850: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ments.</li>.<li>
f860: 45 78 74 65 6e 64 20 74 68 65 20 65 78 70 72 65  Extend the expre
f870: 73 73 69 6f 6e 20 73 79 6e 74 61 78 20 74 6f 20  ssion syntax to 
f880: 73 75 70 70 6f 72 74 20 22 65 78 70 72 20 4e 4f  support "expr NO
f890: 54 20 4e 55 4c 4c 22 20 28 77 69 74 68 20 61 0a  T NULL" (with a.
f8a0: 20 20 20 20 73 70 61 63 65 20 62 65 74 77 65 65      space betwee
f8b0: 6e 20 74 68 65 20 22 4e 4f 54 22 20 61 6e 64 20  n the "NOT" and 
f8c0: 74 68 65 20 22 4e 55 4c 4c 22 29 20 69 6e 20 61  the "NULL") in a
f8d0: 64 64 69 74 69 6f 6e 20 74 6f 20 22 65 78 70 72  ddition to "expr
f8e0: 20 4e 4f 54 4e 55 4c 4c 22 0a 20 20 20 20 28 77   NOTNULL".    (w
f8f0: 69 74 68 20 6e 6f 20 73 70 61 63 65 29 2e 3c 2f  ith no space).</
f900: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
f910: 31 20 53 65 70 20 32 38 20 28 32 2e 30 2e 30 29  1 Sep 28 (2.0.0)
f920: 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69  } {.<li>Automati
f930: 63 61 6c 6c 79 20 62 75 69 6c 64 20 62 69 6e 61  cally build bina
f940: 72 69 65 73 20 66 6f 72 20 4c 69 6e 75 78 20 61  ries for Linux a
f950: 6e 64 20 57 69 6e 64 6f 77 73 20 61 6e 64 20 70  nd Windows and p
f960: 75 74 20 74 68 65 6d 20 6f 6e 0a 20 20 20 20 74  ut them on.    t
f970: 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e  he website.</li>
f980: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53  .}..chng {2001 S
f990: 65 70 20 32 38 20 28 32 2e 30 2d 61 6c 70 68 61  ep 28 (2.0-alpha
f9a0: 2d 34 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6f 72  -4)} {.<li>Incor
f9b0: 70 6f 72 61 74 65 20 6d 61 6b 65 66 69 6c 65 20  porate makefile 
f9c0: 70 61 74 63 68 65 73 20 66 6f 72 6d 20 41 2e 20  patches form A. 
f9d0: 52 6f 74 74 6d 61 6e 6e 20 74 6f 20 75 73 65 20  Rottmann to use 
f9e0: 4c 49 42 54 4f 4f 4c 3c 2f 6c 69 3e 0a 7d 0a 0a  LIBTOOL</li>.}..
f9f0: 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32  chng {2001 Sep 2
fa00: 37 20 28 32 2e 30 2d 61 6c 70 68 61 2d 33 29 7d  7 (2.0-alpha-3)}
fa10: 20 7b 0a 3c 6c 69 3e 53 51 4c 69 74 65 20 6e 6f   {.<li>SQLite no
fa20: 77 20 68 6f 6e 6f 72 73 20 74 68 65 20 55 4e 49  w honors the UNI
fa30: 51 55 45 20 6b 65 79 77 6f 72 64 20 69 6e 20 43  QUE keyword in C
fa40: 52 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44  REATE UNIQUE IND
fa50: 45 58 2e 20 20 50 72 69 6d 61 72 79 0a 20 20 20  EX.  Primary.   
fa60: 20 6b 65 79 73 20 61 72 65 20 72 65 71 75 69 72   keys are requir
fa70: 65 64 20 74 6f 20 62 65 20 75 6e 69 71 75 65 2e  ed to be unique.
fa80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 6c 65 20 66  </li>.<li>File f
fa90: 6f 72 6d 61 74 20 63 68 61 6e 67 65 64 20 62 61  ormat changed ba
faa0: 63 6b 20 74 6f 20 77 68 61 74 20 69 74 20 77 61  ck to what it wa
fab0: 73 20 66 6f 72 20 61 6c 70 68 61 2d 31 3c 2f 6c  s for alpha-1</l
fac0: 69 3e 0a 3c 6c 69 3e 46 69 78 65 73 20 74 6f 20  i>.<li>Fixes to 
fad0: 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 61 6e 64  the rollback and
fae0: 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f   locking behavio
faf0: 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  r</li>.}..chng {
fb00: 32 30 30 31 20 53 65 70 20 32 30 20 28 32 2e 30  2001 Sep 20 (2.0
fb10: 2d 61 6c 70 68 61 2d 32 29 7d 20 7b 0a 3c 6c 69  -alpha-2)} {.<li
fb20: 3e 49 6e 69 74 69 61 6c 20 72 65 6c 65 61 73 65  >Initial release
fb30: 20 6f 66 20 76 65 72 73 69 6f 6e 20 32 2e 30 2e   of version 2.0.
fb40: 20 20 54 68 65 20 69 64 65 61 20 6f 66 20 72 65    The idea of re
fb50: 6e 61 6d 69 6e 67 20 74 68 65 20 6c 69 62 72 61  naming the libra
fb60: 72 79 0a 20 20 20 20 74 6f 20 22 53 51 4c 75 73  ry.    to "SQLus
fb70: 22 20 77 61 73 20 61 62 61 6e 64 6f 6e 65 64 20  " was abandoned 
fb80: 69 6e 20 66 61 76 6f 72 20 6f 66 20 6b 65 65 70  in favor of keep
fb90: 69 6e 67 20 74 68 65 20 22 53 51 4c 69 74 65 22  ing the "SQLite"
fba0: 20 6e 61 6d 65 20 61 6e 64 0a 20 20 20 20 62 75   name and.    bu
fbb0: 6d 70 69 6e 67 20 74 68 65 20 6d 61 6a 6f 72 20  mping the major 
fbc0: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c  version number.<
fbd0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 67  /li>.<li>The pag
fbe0: 65 72 20 61 6e 64 20 62 74 72 65 65 20 73 75 62  er and btree sub
fbf0: 73 79 73 74 65 6d 73 20 61 64 64 65 64 20 62 61  systems added ba
fc00: 63 6b 2e 20 54 68 65 79 20 61 72 65 20 6e 6f 77  ck. They are now
fc10: 20 74 68 65 20 6f 6e 6c 79 0a 20 20 20 20 61 76   the only.    av
fc20: 61 69 6c 61 62 6c 65 20 62 61 63 6b 65 6e 64 2e  ailable backend.
fc30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 44 62  </li>.<li>The Db
fc40: 62 65 20 61 62 73 74 72 61 63 74 69 6f 6e 20 61  be abstraction a
fc50: 6e 64 20 74 68 65 20 47 44 42 4d 20 61 6e 64 20  nd the GDBM and 
fc60: 6d 65 6d 6f 72 79 20 64 72 69 76 65 72 73 20 77  memory drivers w
fc70: 65 72 65 20 72 65 6d 6f 76 65 64 2e 3c 2f 6c 69  ere removed.</li
fc80: 3e 0a 3c 6c 69 3e 43 6f 70 79 72 69 67 68 74 20  >.<li>Copyright 
fc90: 6f 6e 20 61 6c 6c 20 63 6f 64 65 20 77 61 73 20  on all code was 
fca0: 64 69 73 63 6c 61 69 6d 65 64 2e 20 20 54 68 65  disclaimed.  The
fcb0: 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 77 20   library is now 
fcc0: 69 6e 20 74 68 65 0a 20 20 20 20 70 75 62 6c 69  in the.    publi
fcd0: 63 20 64 6f 6d 61 69 6e 2e 3c 2f 6c 69 3e 0a 7d  c domain.</li>.}
fce0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 75 6c  ..chng {2001 Jul
fcf0: 20 32 33 20 28 31 2e 30 2e 33 32 29 7d 20 7b 0a   23 (1.0.32)} {.
fd00: 3c 6c 69 3e 50 61 67 65 72 20 61 6e 64 20 62 74  <li>Pager and bt
fd10: 72 65 65 20 73 75 62 73 79 73 74 65 6d 73 20 72  ree subsystems r
fd20: 65 6d 6f 76 65 64 2e 20 20 54 68 65 73 65 20 77  emoved.  These w
fd30: 69 6c 6c 20 62 65 20 75 73 65 64 20 69 6e 20 61  ill be used in a
fd40: 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a 20 20 20 20 53   follow-on.    S
fd50: 51 4c 20 73 65 72 76 65 72 20 6c 69 62 72 61 72  QL server librar
fd60: 79 20 6e 61 6d 65 64 20 22 53 51 4c 75 73 22 2e  y named "SQLus".
fd70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68  </li>.<li>Add th
fd80: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 75 73 65  e ability to use
fd90: 20 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73 20   quoted strings 
fda0: 61 73 20 74 61 62 6c 65 20 61 6e 64 20 63 6f 6c  as table and col
fdb0: 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 0a 20 20 20  umn names in.   
fdc0: 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c   expressions.</l
fdd0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
fde0: 20 41 70 72 20 31 34 20 28 31 2e 30 2e 33 31 29   Apr 14 (1.0.31)
fdf0: 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 73 75  } {.<li>Pager su
fe00: 62 73 79 73 74 65 6d 20 61 64 64 65 64 20 62 75  bsystem added bu
fe10: 74 20 6e 6f 74 20 79 65 74 20 75 73 65 64 2e 3c  t not yet used.<
fe20: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 72 6f  /li>.<li>More ro
fe30: 62 75 73 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66  bust handling of
fe40: 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 65   out-of-memory e
fe50: 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rrors.</li>.<li>
fe60: 4e 65 77 20 74 65 73 74 73 20 61 64 64 65 64 20  New tests added 
fe70: 74 6f 20 74 68 65 20 74 65 73 74 20 73 75 69 74  to the test suit
fe80: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
fe90: 7b 32 30 30 31 20 41 70 72 20 36 20 28 31 2e 30  {2001 Apr 6 (1.0
fea0: 2e 33 30 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f  .30)} {.<li>Remo
feb0: 76 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ve the <b>sqlite
fec0: 5f 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 54 43  _encoding</b> TC
fed0: 4c 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20  L variable that 
fee0: 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 0a 20  was introduced. 
fef0: 20 20 20 69 6e 20 74 68 65 20 70 72 65 76 69 6f     in the previo
ff00: 75 73 20 76 65 72 73 69 6f 6e 2e 3c 2f 6c 69 3e  us version.</li>
ff10: 0a 3c 6c 69 3e 41 64 64 20 6f 70 74 69 6f 6e 73  .<li>Add options
ff20: 20 3c 62 3e 2d 65 6e 63 6f 64 69 6e 67 3c 2f 62   <b>-encoding</b
ff30: 3e 20 61 6e 64 20 3c 62 3e 2d 74 63 6c 2d 75 73  > and <b>-tcl-us
ff40: 65 73 2d 75 74 66 3c 2f 62 3e 20 74 6f 20 74 68  es-utf</b> to th
ff50: 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c  e.    <b>sqlite<
ff60: 2f 62 3e 20 54 43 4c 20 63 6f 6d 6d 61 6e 64 2e  /b> TCL command.
ff70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 65  </li>.<li>Add te
ff80: 73 74 73 20 74 6f 20 6d 61 6b 65 20 73 75 72 65  sts to make sure
ff90: 20 74 68 61 74 20 74 63 6c 73 71 6c 69 74 65 20   that tclsqlite 
ffa0: 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 75 73 69  was compiled usi
ffb0: 6e 67 20 54 63 6c 20 68 65 61 64 65 72 0a 20 20  ng Tcl header.  
ffc0: 20 20 66 69 6c 65 73 20 61 6e 64 20 6c 69 62 72    files and libr
ffd0: 61 72 69 65 73 20 74 68 61 74 20 6d 61 74 63 68  aries that match
ffe0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
fff0: 32 30 30 31 20 41 70 72 20 35 20 28 31 2e 30 2e  2001 Apr 5 (1.0.
10000 32 39 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c  29)} {.<li>The l
10010 69 62 72 61 72 79 20 6e 6f 77 20 61 73 73 75 6d  ibrary now assum
10020 65 73 20 64 61 74 61 20 69 73 20 73 74 6f 72 65  es data is store
10030 64 20 61 73 20 55 54 46 2d 38 20 69 66 20 74 68  d as UTF-8 if th
10040 65 20 2d 2d 65 6e 61 62 6c 65 2d 75 74 66 38 0a  e --enable-utf8.
10050 20 20 20 20 6f 70 74 69 6f 6e 20 69 73 20 67 69      option is gi
10060 76 65 6e 20 74 6f 20 63 6f 6e 66 69 67 75 72 65  ven to configure
10070 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 62  .  The default b
10080 65 68 61 76 69 6f 72 20 69 73 20 74 6f 20 61 73  ehavior is to as
10090 73 75 6d 65 0a 20 20 20 20 69 73 6f 38 38 35 39  sume.    iso8859
100a0 2d 78 2c 20 61 73 20 69 74 20 68 61 73 20 61 6c  -x, as it has al
100b0 77 61 79 73 20 64 6f 6e 65 2e 20 20 54 68 69 73  ways done.  This
100c0 20 6f 6e 6c 79 20 6d 61 6b 65 73 20 61 20 64 69   only makes a di
100d0 66 66 65 72 65 6e 63 65 20 66 6f 72 0a 20 20 20  fference for.   
100e0 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f 42 20 6f   LIKE and GLOB o
100f0 70 65 72 61 74 6f 72 73 20 61 6e 64 20 74 68 65  perators and the
10100 20 4c 45 4e 47 54 48 20 61 6e 64 20 53 55 42 53   LENGTH and SUBS
10110 54 52 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c  TR functions.</l
10120 69 3e 0a 3c 6c 69 3e 49 66 20 74 68 65 20 6c 69  i>.<li>If the li
10130 62 72 61 72 79 20 69 73 20 6e 6f 74 20 63 6f 6e  brary is not con
10140 66 69 67 75 72 65 64 20 66 6f 72 20 55 54 46 2d  figured for UTF-
10150 38 20 61 6e 64 20 74 68 65 20 54 63 6c 20 6c 69  8 and the Tcl li
10160 62 72 61 72 79 0a 20 20 20 20 69 73 20 6f 6e 65  brary.    is one
10170 20 6f 66 20 74 68 65 20 6e 65 77 65 72 20 6f 6e   of the newer on
10180 65 73 20 74 68 61 74 20 75 73 65 73 20 55 54 46  es that uses UTF
10190 2d 38 20 69 6e 74 65 72 6e 61 6c 6c 79 2c 0a 20  -8 internally,. 
101a0 20 20 20 74 68 65 6e 20 61 20 63 6f 6e 76 65 72     then a conver
101b0 73 69 6f 6e 20 66 72 6f 6d 20 55 54 46 2d 38 20  sion from UTF-8 
101c0 74 6f 20 69 73 6f 38 38 35 39 20 61 6e 64 0a 20  to iso8859 and. 
101d0 20 20 20 62 61 63 6b 20 61 67 61 69 6e 20 69 73     back again is
101e0 20 64 6f 6e 65 20 69 6e 73 69 64 65 20 74 68 65   done inside the
101f0 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c   TCL interface.<
10200 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
10210 30 31 20 41 70 72 20 34 20 28 31 2e 30 2e 32 38  01 Apr 4 (1.0.28
10220 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c  )} {.<li>Added l
10230 69 6d 69 74 65 64 20 73 75 70 70 6f 72 74 20 66  imited support f
10240 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e  or transactions.
10250 20 20 41 74 20 74 68 69 73 20 70 6f 69 6e 74 2c    At this point,
10260 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 0a 20 20   transactions.  
10270 20 20 77 69 6c 6c 20 64 6f 20 74 61 62 6c 65 20    will do table 
10280 6c 6f 63 6b 69 6e 67 20 6f 6e 20 74 68 65 20 47  locking on the G
10290 44 42 4d 20 62 61 63 6b 65 6e 64 2e 20 20 54 68  DBM backend.  Th
102a0 65 72 65 20 69 73 20 6e 6f 20 73 75 70 70 6f 72  ere is no suppor
102b0 74 20 28 79 65 74 29 0a 20 20 20 20 66 6f 72 20  t (yet).    for 
102c0 72 6f 6c 6c 62 61 63 6b 20 6f 72 20 61 74 6f 6d  rollback or atom
102d0 69 63 20 63 6f 6d 6d 69 74 2e 3c 2f 6c 69 3e 0a  ic commit.</li>.
102e0 3c 6c 69 3e 41 64 64 65 64 20 73 70 65 63 69 61  <li>Added specia
102f0 6c 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 52  l column names R
10300 4f 57 49 44 2c 20 4f 49 44 2c 20 61 6e 64 20 5f  OWID, OID, and _
10310 52 4f 57 49 44 5f 20 74 68 61 74 20 72 65 66 65  ROWID_ that refe
10320 72 20 74 6f 20 74 68 65 0a 20 20 20 20 75 6e 69  r to the.    uni
10330 71 75 65 20 72 61 6e 64 6f 6d 20 69 6e 74 65 67  que random integ
10340 65 72 20 6b 65 79 20 61 73 73 6f 63 69 61 74 65  er key associate
10350 64 20 77 69 74 68 20 65 76 65 72 79 20 72 6f 77  d with every row
10360 20 6f 66 20 65 76 65 72 79 20 74 61 62 6c 65 2e   of every table.
10370 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 69 74 69  </li>.<li>Additi
10380 6f 6e 61 6c 20 74 65 73 74 73 20 61 64 64 65 64  onal tests added
10390 20 74 6f 20 74 68 65 20 72 65 67 72 65 73 73 69   to the regressi
103a0 6f 6e 20 73 75 69 74 65 20 74 6f 20 63 6f 76 65  on suite to cove
103b0 72 20 74 68 65 20 6e 65 77 20 52 4f 57 49 44 0a  r the new ROWID.
103c0 20 20 20 20 66 65 61 74 75 72 65 20 61 6e 64 20      feature and 
103d0 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
103e0 65 20 62 75 67 73 20 6d 65 6e 74 69 6f 6e 65 64  e bugs mentioned
103f0 20 62 65 6c 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69   below.</li>.<li
10400 3e 43 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20  >Changes to the 
10410 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67  "lemon" parser g
10420 65 6e 65 72 61 74 6f 72 20 74 6f 20 68 65 6c 70  enerator to help
10430 20 69 74 20 77 6f 72 6b 20 62 65 74 74 65 72 20   it work better 
10440 77 68 65 6e 0a 20 20 20 20 63 6f 6d 70 69 6c 65  when.    compile
10450 64 20 75 73 69 6e 67 20 4d 53 56 43 2e 3c 2f 6c  d using MSVC.</l
10460 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73  i>.<li>Bug fixes
10470 20 69 6e 20 74 68 65 20 54 43 4c 20 69 6e 74 65   in the TCL inte
10480 72 66 61 63 65 20 69 64 65 6e 74 69 66 69 65 64  rface identified
10490 20 62 79 20 4f 6c 65 67 20 4f 6c 65 69 6e 69 63   by Oleg Oleinic
104a0 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  k.</li>.}..chng 
104b0 7b 32 30 30 31 20 4d 61 72 20 32 30 20 28 31 2e  {2001 Mar 20 (1.
104c0 30 2e 32 37 29 7d 20 7b 0a 3c 6c 69 3e 57 68 65  0.27)} {.<li>Whe
104d0 6e 20 64 6f 69 6e 67 20 44 45 4c 45 54 45 20 61  n doing DELETE a
104e0 6e 64 20 55 50 44 41 54 45 2c 20 74 68 65 20 6c  nd UPDATE, the l
104f0 69 62 72 61 72 79 20 75 73 65 64 20 74 6f 20 77  ibrary used to w
10500 72 69 74 65 20 74 68 65 20 72 65 63 6f 72 64 0a  rite the record.
10510 20 20 20 20 6e 75 6d 62 65 72 73 20 6f 66 20 72      numbers of r
10520 65 63 6f 72 64 73 20 74 6f 20 62 65 20 64 65 6c  ecords to be del
10530 65 74 65 64 20 6f 72 20 75 70 64 61 74 65 64 20  eted or updated 
10540 69 6e 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79  into a temporary
10550 20 66 69 6c 65 2e 0a 20 20 20 20 54 68 69 73 20   file..    This 
10560 69 73 20 63 68 61 6e 67 65 64 20 73 6f 20 74 68  is changed so th
10570 61 74 20 74 68 65 20 72 65 63 6f 72 64 20 6e 75  at the record nu
10580 6d 62 65 72 73 20 61 72 65 20 68 65 6c 64 20 69  mbers are held i
10590 6e 20 6d 65 6d 6f 72 79 2e 3c 2f 6c 69 3e 0a 3c  n memory.</li>.<
105a0 6c 69 3e 54 68 65 20 44 45 4c 45 54 45 20 63 6f  li>The DELETE co
105b0 6d 6d 61 6e 64 20 77 69 74 68 6f 75 74 20 61 20  mmand without a 
105c0 57 48 49 4c 45 20 63 6c 61 75 73 65 20 6a 75 73  WHILE clause jus
105d0 74 20 72 65 6d 6f 76 65 73 20 74 68 65 20 64 61  t removes the da
105e0 74 61 62 61 73 65 0a 20 20 20 20 66 69 6c 65 73  tabase.    files
105f0 20 66 72 6f 6d 20 74 68 65 20 64 69 73 6b 2c 20   from the disk, 
10600 72 61 74 68 65 72 20 74 68 61 6e 20 67 6f 69 6e  rather than goin
10610 67 20 74 68 72 6f 75 67 68 20 61 6e 64 20 64 65  g through and de
10620 6c 65 74 69 6e 67 20 72 65 63 6f 72 64 0a 20 20  leting record.  
10630 20 20 62 79 20 72 65 63 6f 72 64 2e 3c 2f 6c 69    by record.</li
10640 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
10650 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 36 29 7d  Mar 20 (1.0.26)}
10660 20 7b 0a 3c 6c 69 3e 41 20 73 65 72 69 6f 75 73   {.<li>A serious
10670 20 62 75 67 20 66 69 78 65 64 20 6f 6e 20 57 69   bug fixed on Wi
10680 6e 64 6f 77 73 2e 20 20 57 69 6e 64 6f 77 73 20  ndows.  Windows 
10690 75 73 65 72 73 20 73 68 6f 75 6c 64 20 75 70 67  users should upg
106a0 72 61 64 65 2e 0a 20 20 20 20 4e 6f 20 69 6d 70  rade..    No imp
106b0 61 63 74 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69  act to Unix.</li
106c0 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
106d0 4d 61 72 20 31 35 20 28 31 2e 30 2e 32 35 29 7d  Mar 15 (1.0.25)}
106e0 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 79 20 74 68   {.<li>Modify th
106f0 65 20 74 65 73 74 20 73 63 72 69 70 74 73 20 74  e test scripts t
10700 6f 20 69 64 65 6e 74 69 66 79 20 74 65 73 74 73  o identify tests
10710 20 74 68 61 74 20 64 65 70 65 6e 64 20 6f 6e 20   that depend on 
10720 73 79 73 74 65 6d 0a 20 20 20 20 6c 6f 61 64 20  system.    load 
10730 61 6e 64 20 70 72 6f 63 65 73 73 6f 72 20 73 70  and processor sp
10740 65 65 64 20 61 6e 64 0a 20 20 20 20 74 6f 20 77  eed and.    to w
10750 61 72 6e 20 74 68 65 20 75 73 65 72 20 74 68 61  arn the user tha
10760 74 20 61 20 66 61 69 6c 75 72 65 20 6f 66 20 6f  t a failure of o
10770 6e 65 20 6f 66 20 74 68 6f 73 65 20 28 72 61 72  ne of those (rar
10780 65 29 20 74 65 73 74 73 20 64 6f 65 73 0a 20 20  e) tests does.  
10790 20 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c    not necessaril
107a0 79 20 6d 65 61 6e 20 74 68 65 20 6c 69 62 72 61  y mean the libra
107b0 72 79 20 69 73 20 6d 61 6c 66 75 6e 63 74 69 6f  ry is malfunctio
107c0 6e 69 6e 67 2e 20 20 4e 6f 20 63 68 61 6e 67 65  ning.  No change
107d0 73 20 74 6f 0a 20 20 20 20 63 6f 64 65 2e 0a 20  s to.    code.. 
107e0 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
107f0 20 7b 32 30 30 31 20 4d 61 72 20 31 34 20 28 31   {2001 Mar 14 (1
10800 2e 30 2e 32 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .0.24)} {.<li>Fi
10810 78 20 61 20 62 75 67 20 77 68 69 63 68 20 77 61  x a bug which wa
10820 73 20 63 61 75 73 69 6e 67 0a 20 20 20 20 74 68  s causing.    th
10830 65 20 55 50 44 41 54 45 20 63 6f 6d 6d 61 6e 64  e UPDATE command
10840 20 74 6f 20 66 61 69 6c 20 6f 6e 20 73 79 73 74   to fail on syst
10850 65 6d 73 20 77 68 65 72 65 20 22 6d 61 6c 6c 6f  ems where "mallo
10860 63 28 30 29 22 20 72 65 74 75 72 6e 73 0a 20 20  c(0)" returns.  
10870 20 20 4e 55 4c 4c 2e 20 20 54 68 65 20 70 72 6f    NULL.  The pro
10880 62 6c 65 6d 20 64 6f 65 73 20 6e 6f 74 20 61 70  blem does not ap
10890 70 65 61 72 20 57 69 6e 64 6f 77 73 2c 20 4c 69  pear Windows, Li
108a0 6e 75 78 2c 20 6f 72 20 48 50 55 58 20 62 75 74  nux, or HPUX but
108b0 20 64 6f 65 73 20 0a 20 20 20 20 63 61 75 73 65   does .    cause
108c0 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f 20   the library to 
108d0 66 61 69 6c 20 6f 6e 20 51 4e 58 2e 0a 20 20 20  fail on QNX..   
108e0 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b   </li>.}..chng {
108f0 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e 30  2001 Feb 19 (1.0
10900 2e 32 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 20 75  .23)} {.<li>An u
10910 6e 72 65 6c 61 74 65 64 20 28 61 6e 64 20 6d 69  nrelated (and mi
10920 6e 6f 72 29 20 62 75 67 20 66 72 6f 6d 20 4d 61  nor) bug from Ma
10930 72 6b 20 4d 75 72 61 6e 77 73 6b 69 20 66 69 78  rk Muranwski fix
10940 65 64 2e 20 20 54 68 65 20 61 6c 67 6f 72 69 74  ed.  The algorit
10950 68 6d 0a 20 20 20 20 66 6f 72 20 66 69 67 75 72  hm.    for figur
10960 69 6e 67 20 6f 75 74 20 77 68 65 72 65 20 74 6f  ing out where to
10970 20 70 75 74 20 74 65 6d 70 6f 72 61 72 79 20 66   put temporary f
10980 69 6c 65 73 20 66 6f 72 20 61 20 22 6d 65 6d 6f  iles for a "memo
10990 72 79 3a 22 20 64 61 74 61 62 61 73 65 0a 20 20  ry:" database.  
109a0 20 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e    was not workin
109b0 67 20 71 75 69 74 65 20 72 69 67 68 74 2e 0a 20  g quite right.. 
109c0 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
109d0 20 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31   {2001 Feb 19 (1
109e0 2e 30 2e 32 32 29 7d 20 7b 0a 3c 6c 69 3e 54 68  .0.22)} {.<li>Th
109f0 65 20 70 72 65 76 69 6f 75 73 20 66 69 78 20 77  e previous fix w
10a00 61 73 20 6e 6f 74 20 71 75 69 74 65 20 72 69 67  as not quite rig
10a10 68 74 2e 20 20 54 68 69 73 20 6f 6e 65 20 73 65  ht.  This one se
10a20 65 6d 73 20 74 6f 20 77 6f 72 6b 20 62 65 74 74  ems to work bett
10a30 65 72 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a  er..    </li>.}.
10a40 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20  .chng {2001 Feb 
10a50 31 39 20 28 31 2e 30 2e 32 31 29 7d 20 7b 0a 3c  19 (1.0.21)} {.<
10a60 6c 69 3e 54 68 65 20 55 50 44 41 54 45 20 73 74  li>The UPDATE st
10a70 61 74 65 6d 65 6e 74 20 77 61 73 20 6e 6f 74 20  atement was not 
10a80 77 6f 72 6b 69 6e 67 20 77 68 65 6e 20 74 68 65  working when the
10a90 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 63 6f   WHERE clause co
10aa0 6e 74 61 69 6e 65 64 0a 20 20 20 20 73 6f 6d 65  ntained.    some
10ab0 20 74 65 72 6d 73 20 74 68 61 74 20 63 6f 75 6c   terms that coul
10ac0 64 20 62 65 20 73 61 74 69 73 66 69 65 64 20 75  d be satisfied u
10ad0 73 69 6e 67 20 69 6e 64 69 63 65 73 20 61 6e 64  sing indices and
10ae0 20 6f 74 68 65 72 20 74 65 72 6d 73 20 74 68 61   other terms tha
10af0 74 0a 20 20 20 20 63 6f 75 6c 64 20 6e 6f 74 2e  t.    could not.
10b00 20 20 46 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a    Fixed.</li>.}.
10b10 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20  .chng {2001 Feb 
10b20 31 31 20 28 31 2e 30 2e 32 30 29 7d 20 7b 0a 3c  11 (1.0.20)} {.<
10b30 6c 69 3e 4d 65 72 67 65 20 64 65 76 65 6c 6f 70  li>Merge develop
10b40 6d 65 6e 74 20 63 68 61 6e 67 65 73 20 69 6e 74  ment changes int
10b50 6f 20 74 68 65 20 6d 61 69 6e 20 74 72 75 6e 6b  o the main trunk
10b60 2e 20 20 46 75 74 75 72 65 20 77 6f 72 6b 20 74  .  Future work t
10b70 6f 77 61 72 64 0a 20 20 20 20 75 73 69 6e 67 20  oward.    using 
10b80 61 20 42 54 72 65 65 20 66 69 6c 65 20 73 74 72  a BTree file str
10b90 75 63 74 75 72 65 20 77 69 6c 6c 20 75 73 65 20  ucture will use 
10ba0 61 20 73 65 70 61 72 61 74 65 20 43 56 53 20 73  a separate CVS s
10bb0 6f 75 72 63 65 20 74 72 65 65 2e 20 20 54 68 69  ource tree.  Thi
10bc0 73 0a 20 20 20 20 43 56 53 20 74 72 65 65 20 77  s.    CVS tree w
10bd0 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20  ill continue to 
10be0 73 75 70 70 6f 72 74 20 74 68 65 20 47 44 42 4d  support the GDBM
10bf0 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 51 4c 69   version of SQLi
10c00 74 65 20 6f 6e 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a  te only.</li>.}.
10c10 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20  .chng {2001 Feb 
10c20 36 20 28 31 2e 30 2e 31 39 29 7d 20 7b 0a 3c 6c  6 (1.0.19)} {.<l
10c30 69 3e 46 69 78 20 61 20 73 74 72 61 6e 67 65 20  i>Fix a strange 
10c40 28 62 75 74 20 76 61 6c 69 64 29 20 43 20 64 65  (but valid) C de
10c50 63 6c 61 72 61 74 69 6f 6e 20 74 68 61 74 20 77  claration that w
10c60 61 73 20 63 61 75 73 69 6e 67 20 70 72 6f 62 6c  as causing probl
10c70 65 6d 73 0a 20 20 20 20 66 6f 72 20 51 4e 58 2e  ems.    for QNX.
10c80 20 20 4e 6f 20 6c 6f 67 69 63 61 6c 20 63 68 61    No logical cha
10c90 6e 67 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  nges.</li>.}..ch
10ca0 6e 67 20 7b 32 30 30 31 20 4a 61 6e 20 34 20 28  ng {2001 Jan 4 (
10cb0 31 2e 30 2e 31 38 29 7d 20 7b 0a 3c 6c 69 3e 50  1.0.18)} {.<li>P
10cc0 72 69 6e 74 20 74 68 65 20 6f 66 66 65 6e 64 69  rint the offendi
10cd0 6e 67 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74  ng SQL statement
10ce0 20 77 68 65 6e 20 61 6e 20 65 72 72 6f 72 20 6f   when an error o
10cf0 63 63 75 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ccurs.</li>.<li>
10d00 44 6f 20 6e 6f 74 20 72 65 71 75 69 72 65 20 63  Do not require c
10d10 6f 6d 6d 61 73 20 62 65 74 77 65 65 6e 20 63 6f  ommas between co
10d20 6e 73 74 72 61 69 6e 74 73 20 69 6e 20 43 52 45  nstraints in CRE
10d30 41 54 45 20 54 41 42 4c 45 20 73 74 61 74 65 6d  ATE TABLE statem
10d40 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ents.</li>.<li>A
10d50 64 64 65 64 20 74 68 65 20 22 2d 65 63 68 6f 22  dded the "-echo"
10d60 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 73   option to the s
10d70 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  hell.</li>.<li>C
10d80 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d 6d 65 6e  hanges to commen
10d90 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
10da0 20 7b 32 30 30 30 20 44 65 63 20 31 30 20 28 31   {2000 Dec 10 (1
10db0 2e 30 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e 52 65  .0.17)} {.<li>Re
10dc0 77 72 6f 74 65 20 3c 62 3e 73 71 6c 69 74 65 5f  wrote <b>sqlite_
10dd0 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20 74  complete()</b> t
10de0 6f 20 6d 61 6b 65 20 69 74 20 66 61 73 74 65 72  o make it faster
10df0 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72  .</li>.<li>Minor
10e00 20 74 77 65 61 6b 73 20 74 6f 20 6f 74 68 65 72   tweaks to other
10e10 20 63 6f 64 65 20 74 6f 20 6d 61 6b 65 20 69 74   code to make it
10e20 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61   run a little fa
10e30 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ster.</li>.<li>A
10e40 64 64 65 64 20 6e 65 77 20 74 65 73 74 73 20 66  dded new tests f
10e50 6f 72 20 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d  or <b>sqlite_com
10e60 70 6c 65 74 65 28 29 3c 2f 62 3e 20 61 6e 64 20  plete()</b> and 
10e70 66 6f 72 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73  for memory leaks
10e80 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
10e90 32 30 30 30 20 44 65 63 20 34 20 28 31 2e 30 2e  2000 Dec 4 (1.0.
10ea0 31 36 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d  16)} {.<li>Docum
10eb0 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
10ec0 2e 20 20 4d 6f 73 74 6c 79 20 66 69 78 69 6e 67  .  Mostly fixing
10ed0 20 6f 66 20 74 79 70 6f 73 20 61 6e 64 20 73 70   of typos and sp
10ee0 65 6c 6c 69 6e 67 20 65 72 72 6f 72 73 2e 3c 2f  elling errors.</
10ef0 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
10f00 30 20 4f 63 74 20 32 33 20 28 31 2e 30 2e 31 35  0 Oct 23 (1.0.15
10f10 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  )} {.<li>Documen
10f20 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
10f30 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d 65 20 73 61 6e  li>.<li>Some san
10f40 69 74 79 20 63 68 65 63 6b 69 6e 67 20 63 6f 64  ity checking cod
10f50 65 20 77 61 73 20 72 65 6d 6f 76 65 64 20 66 72  e was removed fr
10f60 6f 6d 20 74 68 65 20 69 6e 6e 65 72 20 6c 6f 6f  om the inner loo
10f70 70 20 6f 66 20 76 64 62 65 2e 63 0a 20 20 20 20  p of vdbe.c.    
10f80 74 6f 20 68 65 6c 70 20 74 68 65 20 6c 69 62 72  to help the libr
10f90 61 72 79 20 74 6f 20 72 75 6e 20 61 20 6c 69 74  ary to run a lit
10fa0 74 6c 65 20 66 61 73 74 65 72 2e 20 20 54 68 65  tle faster.  The
10fb0 20 63 6f 64 65 20 69 73 20 6f 6e 6c 79 0a 20 20   code is only.  
10fc0 20 20 72 65 6d 6f 76 65 64 20 69 66 20 79 6f 75    removed if you
10fd0 20 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d 44   compile with -D
10fe0 4e 44 45 42 55 47 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  NDEBUG.</li>.}..
10ff0 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31  chng {2000 Oct 1
11000 39 20 28 31 2e 30 2e 31 34 29 7d 20 7b 0a 3c 6c  9 (1.0.14)} {.<l
11010 69 3e 41 64 64 65 64 20 61 20 22 6d 65 6d 6f 72  i>Added a "memor
11020 79 3a 22 20 62 61 63 6b 65 6e 64 20 64 72 69 76  y:" backend driv
11030 65 72 20 74 68 61 74 20 73 74 6f 72 65 73 20 69  er that stores i
11040 74 73 20 64 61 74 61 62 61 73 65 20 69 6e 20 61  ts database in a
11050 6e 0a 20 20 20 20 69 6e 2d 6d 65 6d 6f 72 79 20  n.    in-memory 
11060 68 61 73 68 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e  hash table.</li>
11070 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f  .}..chng {2000 O
11080 63 74 20 31 38 20 28 31 2e 30 2e 31 33 29 7d 20  ct 18 (1.0.13)} 
11090 7b 0a 3c 6c 69 3e 42 72 65 61 6b 20 6f 75 74 20  {.<li>Break out 
110a0 74 68 65 20 47 44 42 4d 20 64 72 69 76 65 72 20  the GDBM driver 
110b0 69 6e 74 6f 20 61 20 73 65 70 61 72 61 74 65 20  into a separate 
110c0 66 69 6c 65 20 69 6e 20 61 6e 74 69 63 69 70 61  file in anticipa
110d0 74 69 6f 6e 0a 20 20 20 20 74 6f 20 61 64 64 65  tion.    to adde
110e0 64 20 6e 65 77 20 64 72 69 76 65 72 73 2e 3c 2f  d new drivers.</
110f0 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68  li>.<li>Allow th
11100 65 20 6e 61 6d 65 20 6f 66 20 61 20 64 61 74 61  e name of a data
11110 62 61 73 65 20 74 6f 20 62 65 20 70 72 65 66 69  base to be prefi
11120 78 65 64 20 62 79 20 74 68 65 20 64 72 69 76 65  xed by the drive
11130 72 20 74 79 70 65 2e 0a 20 20 20 20 46 6f 72 20  r type..    For 
11140 6e 6f 77 2c 20 74 68 65 20 6f 6e 6c 79 20 64 72  now, the only dr
11150 69 76 65 72 20 74 79 70 65 20 69 73 20 22 67 64  iver type is "gd
11160 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  bm:".</li>.}..ch
11170 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 36 20  ng {2000 Oct 16 
11180 28 31 2e 30 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.12)} {.<li>
11190 46 69 78 65 64 20 61 6e 20 6f 66 66 2d 62 79 2d  Fixed an off-by-
111a0 6f 6e 65 20 65 72 72 6f 72 20 74 68 61 74 20 77  one error that w
111b0 61 73 20 63 61 75 73 69 6e 67 20 61 20 63 6f 72  as causing a cor
111c0 65 64 75 6d 70 20 69 6e 20 0a 20 20 20 20 74 68  edump in .    th
111d0 65 20 27 25 71 27 20 66 6f 72 6d 61 74 20 64 69  e '%q' format di
111e0 72 65 63 74 69 76 65 20 6f 66 20 74 68 65 20 6e  rective of the n
111f0 65 77 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65  ew.    <b>sqlite
11200 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62  _..._printf()</b
11210 3e 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e  > routines.</li>
11220 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c  .<li>Added the <
11230 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75  b>sqlite_interru
11240 70 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61  pt()</b> interfa
11250 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20  ce.</li>.<li>In 
11260 74 68 65 20 73 68 65 6c 6c 2c 20 3c 62 3e 73 71  the shell, <b>sq
11270 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29  lite_interrupt()
11280 3c 2f 62 3e 20 69 73 20 69 6e 76 6f 6b 65 64 20  </b> is invoked 
11290 77 68 65 6e 20 74 68 65 0a 20 20 20 20 75 73 65  when the.    use
112a0 72 20 70 72 65 73 73 65 73 20 43 6f 6e 74 72 6f  r presses Contro
112b0 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  l-C</li>.<li>Fix
112c0 65 64 20 73 6f 6d 65 20 69 6e 73 74 61 6e 63 65  ed some instance
112d0 73 20 77 68 65 72 65 20 3c 62 3e 73 71 6c 69 74  s where <b>sqlit
112e0 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77 61 73  e_exec()</b> was
112f0 0a 20 20 20 20 72 65 74 75 72 6e 69 6e 67 20 74  .    returning t
11300 68 65 20 77 72 6f 6e 67 20 65 72 72 6f 72 20 63  he wrong error c
11310 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ode.</li>.}..chn
11320 67 20 7b 32 30 30 30 20 4f 63 74 20 31 31 20 28  g {2000 Oct 11 (
11330 31 2e 30 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 41  1.0.10)} {.<li>A
11340 64 64 65 64 20 6e 6f 74 65 73 20 6f 6e 20 68 6f  dded notes on ho
11350 77 20 74 6f 20 63 6f 6d 70 69 6c 65 20 66 6f 72  w to compile for
11360 20 57 69 6e 64 6f 77 73 39 35 2f 39 38 2e 3c 2f   Windows95/98.</
11370 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20  li>.<li>Removed 
11380 61 20 66 65 77 20 76 61 72 69 61 62 6c 65 73 20  a few variables 
11390 74 68 61 74 20 77 65 72 65 20 6e 6f 74 20 62 65  that were not be
113a0 69 6e 67 20 75 73 65 64 2e 20 20 45 74 63 2e 3c  ing used.  Etc.<
113b0 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
113c0 30 30 20 4f 63 74 20 38 20 28 31 2e 30 2e 39 29  00 Oct 8 (1.0.9)
113d0 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
113e0 65 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f  e <b>sqlite_..._
113f0 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20 69 6e 74  printf()</b> int
11400 65 72 66 61 63 65 20 72 6f 75 74 69 6e 65 73 2e  erface routines.
11410 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
11420 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
11430 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72  </b> shell progr
11440 61 6d 20 74 6f 20 75 73 65 20 74 68 65 20 6e 65  am to use the ne
11450 77 20 69 6e 74 65 72 66 61 63 65 20 0a 20 20 20  w interface .   
11460 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a   routines.</li>.
11470 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
11480 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
11490 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20  hell program to 
114a0 70 72 69 6e 74 20 74 68 65 20 73 63 68 65 6d 61  print the schema
114b0 20 66 6f 72 0a 20 20 20 20 74 68 65 20 62 75 69   for.    the bui
114c0 6c 74 2d 69 6e 20 53 51 4c 49 54 45 5f 4d 41 53  lt-in SQLITE_MAS
114d0 54 45 52 20 74 61 62 6c 65 2c 20 69 66 20 65 78  TER table, if ex
114e0 70 6c 69 63 69 74 6c 79 20 72 65 71 75 65 73 74  plicitly request
114f0 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
11500 20 7b 32 30 30 30 20 53 65 70 20 33 30 20 28 31   {2000 Sep 30 (1
11510 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 42 65 67  .0.8)} {.<li>Beg
11520 69 6e 20 77 72 69 74 69 6e 67 20 64 6f 63 75 6d  in writing docum
11530 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20  entation on the 
11540 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  TCL interface.</
11550 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
11560 30 20 53 65 70 20 32 39 20 28 4e 6f 74 20 52 65  0 Sep 29 (Not Re
11570 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e 41  leased)} {.<li>A
11580 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
11590 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f  te_get_table()</
115a0 62 3e 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e  b> API</li>.<li>
115b0 55 70 64 61 74 65 64 20 74 68 65 20 64 6f 63 75  Updated the docu
115c0 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 64 75  mentation for du
115d0 65 20 74 6f 20 74 68 65 20 61 62 6f 76 65 20 63  e to the above c
115e0 68 61 6e 67 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  hange.</li>.<li>
115f0 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e  Modified the <b>
11600 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c  sqlite</b> shell
11610 20 74 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20   to make use of 
11620 74 68 65 20 6e 65 77 0a 20 20 20 20 73 71 6c 69  the new.    sqli
11630 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 20 41  te_get_table() A
11640 50 49 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70  PI in order to p
11650 72 69 6e 74 20 61 20 6c 69 73 74 20 6f 66 20 74  rint a list of t
11660 61 62 6c 65 73 0a 20 20 20 20 69 6e 20 6d 75 6c  ables.    in mul
11670 74 69 70 6c 65 20 63 6f 6c 75 6d 6e 73 2c 20 73  tiple columns, s
11680 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 77 61  imilar to the wa
11690 79 20 22 6c 73 22 20 70 72 69 6e 74 73 20 66 69  y "ls" prints fi
116a0 6c 65 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  lenames.</li>.<l
116b0 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c  i>Modified the <
116c0 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65  b>sqlite</b> she
116d0 6c 6c 20 74 6f 20 70 72 69 6e 74 20 61 20 73 65  ll to print a se
116e0 6d 69 63 6f 6c 6f 6e 20 61 74 20 74 68 65 0a 20  micolon at the. 
116f0 20 20 20 65 6e 64 20 6f 66 20 65 61 63 68 20 43     end of each C
11700 52 45 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20  REATE statement 
11710 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66  in the output of
11720 20 74 68 65 20 22 2e 73 63 68 65 6d 61 22 20 63   the ".schema" c
11730 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ommand.</li>.}..
11740 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 32  chng {2000 Sep 2
11750 31 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64 29  1 (Not Released)
11760 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74  } {.<li>Change t
11770 68 65 20 74 63 6c 73 71 6c 69 74 65 20 22 65 76  he tclsqlite "ev
11780 61 6c 22 20 6d 65 74 68 6f 64 20 74 6f 20 72 65  al" method to re
11790 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 72  turn a list of r
117a0 65 73 75 6c 74 73 20 69 66 0a 20 20 20 20 6e 6f  esults if.    no
117b0 20 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 70 74   callback script
117c0 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 3c 2f   is specified.</
117d0 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74  li>.<li>Change t
117e0 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 75 73  clsqlite.c to us
117f0 65 20 74 68 65 20 54 63 6c 5f 4f 62 6a 20 69 6e  e the Tcl_Obj in
11800 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69  terface</li>.<li
11810 3e 41 64 64 20 74 63 6c 73 71 6c 69 74 65 2e 63  >Add tclsqlite.c
11820 20 74 6f 20 74 68 65 20 6c 69 62 73 71 6c 69 74   to the libsqlit
11830 65 2e 61 20 6c 69 62 72 61 72 79 3c 2f 6c 69 3e  e.a library</li>
11840 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53  .}..chng {2000 S
11850 65 70 20 31 33 20 28 56 65 72 73 69 6f 6e 20 31  ep 13 (Version 1
11860 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  .0.5)} {.<li>Cha
11870 6e 67 65 64 20 74 68 65 20 70 72 69 6e 74 20 66  nged the print f
11880 6f 72 6d 61 74 20 66 6f 72 20 66 6c 6f 61 74 69  ormat for floati
11890 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75 65 73 20  ng point values 
118a0 66 72 6f 6d 20 22 25 67 22 20 74 6f 20 22 25 2e  from "%g" to "%.
118b0 31 35 67 22 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  15g"..    </li>.
118c0 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74 68 65 20  <li>Changed the 
118d0 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74  comparison funct
118e0 69 6f 6e 20 73 6f 20 74 68 61 74 20 6e 75 6d 62  ion so that numb
118f0 65 72 73 20 69 6e 20 65 78 70 6f 6e 65 6e 74 69  ers in exponenti
11900 61 6c 20 6e 6f 74 61 74 69 6f 6e 0a 20 20 20 20  al notation.    
11910 28 65 78 3a 20 31 2e 32 33 34 65 2b 30 35 29 20  (ex: 1.234e+05) 
11920 73 6f 72 74 20 69 6e 20 6e 75 6d 65 72 69 63 61  sort in numerica
11930 6c 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a  l order.</li>.}.
11940 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
11950 32 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e  28 (Version 1.0.
11960 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  4)} {.<li>Added 
11970 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 6c 65 6e  functions <b>len
11980 67 74 68 28 29 3c 2f 62 3e 20 61 6e 64 20 3c 62  gth()</b> and <b
11990 3e 73 75 62 73 74 72 28 29 3c 2f 62 3e 2e 3c 2f  >substr()</b>.</
119a0 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
119b0 67 20 69 6e 20 74 68 65 20 3c 62 3e 73 71 6c 69  g in the <b>sqli
119c0 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f  te</b> shell pro
119d0 67 72 61 6d 20 74 68 61 74 20 77 61 73 20 63 61  gram that was ca
119e0 75 73 69 6e 67 0a 20 20 20 20 61 20 63 6f 72 65  using.    a core
119f0 64 75 6d 70 20 77 68 65 6e 20 74 68 65 20 6f 75  dump when the ou
11a00 74 70 75 74 20 6d 6f 64 65 20 77 61 73 20 22 63  tput mode was "c
11a10 6f 6c 75 6d 6e 22 20 61 6e 64 20 74 68 65 20 66  olumn" and the f
11a20 69 72 73 74 20 72 6f 77 0a 20 20 20 20 6f 66 20  irst row.    of 
11a30 64 61 74 61 20 63 6f 6e 74 61 69 6e 65 64 20 61  data contained a
11a40 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   NULL.</li>.}..c
11a50 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 32 32  hng {2000 Aug 22
11a60 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 33 29   (Version 1.0.3)
11a70 7d 20 7b 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73  } {.<li>In the s
11a80 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 70 72 69  qlite shell, pri
11a90 6e 74 20 74 68 65 20 22 44 61 74 61 62 61 73 65  nt the "Database
11aa0 20 6f 70 65 6e 65 64 20 52 45 41 44 20 4f 4e 4c   opened READ ONL
11ab0 59 22 20 6d 65 73 73 61 67 65 0a 20 20 20 20 74  Y" message.    t
11ac0 6f 20 73 74 64 65 72 72 20 69 6e 73 74 65 61 64  o stderr instead
11ad0 20 6f 66 20 73 74 64 6f 75 74 2e 3c 2f 6c 69 3e   of stdout.</li>
11ae0 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 71 6c 69  .<li>In the sqli
11af0 74 65 20 73 68 65 6c 6c 2c 20 6e 6f 77 20 70 72  te shell, now pr
11b00 69 6e 74 20 74 68 65 20 76 65 72 73 69 6f 6e 20  int the version 
11b10 6e 75 6d 62 65 72 20 6f 6e 20 69 6e 69 74 69 61  number on initia
11b20 6c 20 73 74 61 72 74 75 70 2e 3c 2f 6c 69 3e 0a  l startup.</li>.
11b30 3c 6c 69 3e 41 64 64 20 74 68 65 20 3c 62 3e 73  <li>Add the <b>s
11b40 71 6c 69 74 65 5f 76 65 72 73 69 6f 6e 5b 5d 3c  qlite_version[]<
11b50 2f 62 3e 20 73 74 72 69 6e 67 20 63 6f 6e 73 74  /b> string const
11b60 61 6e 74 20 74 6f 20 74 68 65 20 6c 69 62 72 61  ant to the libra
11b70 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  ry</li>.<li>Make
11b80 66 69 6c 65 20 75 70 64 61 74 65 73 3c 2f 6c 69  file updates</li
11b90 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 69  >.<li>Bug fix: i
11ba0 6e 63 6f 72 72 65 63 74 20 56 44 42 45 20 63 6f  ncorrect VDBE co
11bb0 64 65 20 77 61 73 20 62 65 69 6e 67 20 67 65 6e  de was being gen
11bc0 65 72 61 74 65 64 20 66 6f 72 20 74 68 65 20 66  erated for the f
11bd0 6f 6c 6c 6f 77 69 6e 67 0a 20 20 20 20 63 69 72  ollowing.    cir
11be0 63 75 6d 73 74 61 6e 63 65 3a 20 61 20 71 75 65  cumstance: a que
11bf0 72 79 20 6f 6e 20 61 6e 20 69 6e 64 65 78 65 64  ry on an indexed
11c00 20 74 61 62 6c 65 20 63 6f 6e 74 61 69 6e 69 6e   table containin
11c10 67 20 61 20 57 48 45 52 45 20 63 6c 61 75 73 65  g a WHERE clause
11c20 20 77 69 74 68 0a 20 20 20 20 61 6e 20 49 4e 20   with.    an IN 
11c30 6f 70 65 72 61 74 6f 72 20 74 68 61 74 20 68 61  operator that ha
11c40 64 20 61 20 73 75 62 71 75 65 72 79 20 6f 6e 20  d a subquery on 
11c50 69 74 73 20 72 69 67 68 74 2d 68 61 6e 64 20 73  its right-hand s
11c60 69 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ide.</li>.}..chn
11c70 67 20 7b 32 30 30 30 20 41 75 67 20 31 38 20 28  g {2000 Aug 18 (
11c80 56 65 72 73 69 6f 6e 20 31 2e 30 2e 31 29 7d 20  Version 1.0.1)} 
11c90 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
11ca0 69 6e 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65  in the configure
11cb0 20 73 63 72 69 70 74 2e 3c 2f 6c 69 3e 0a 3c 6c   script.</li>.<l
11cc0 69 3e 4d 69 6e 6f 72 20 72 65 76 69 73 69 6f 6e  i>Minor revision
11cd0 73 20 74 6f 20 74 68 65 20 77 65 62 73 69 74 65  s to the website
11ce0 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
11cf0 32 30 30 30 20 41 75 67 20 31 37 20 28 56 65 72  2000 Aug 17 (Ver
11d00 73 69 6f 6e 20 31 2e 30 29 7d 20 7b 0a 3c 6c 69  sion 1.0)} {.<li
11d10 3e 43 68 61 6e 67 65 20 74 68 65 20 3c 62 3e 73  >Change the <b>s
11d20 71 6c 69 74 65 3c 2f 62 3e 20 70 72 6f 67 72 61  qlite</b> progra
11d30 6d 20 73 6f 20 74 68 61 74 20 69 74 20 63 61 6e  m so that it can
11d40 20 72 65 61 64 0a 20 20 20 20 64 61 74 61 62 61   read.    databa
11d50 73 65 73 20 66 6f 72 20 77 68 69 63 68 20 69 74  ses for which it
11d60 20 6c 61 63 6b 73 20 77 72 69 74 65 20 70 65 72   lacks write per
11d70 6d 69 73 73 69 6f 6e 2e 20 20 28 49 74 20 75 73  mission.  (It us
11d80 65 64 20 74 6f 0a 20 20 20 20 72 65 66 75 73 65  ed to.    refuse
11d90 20 61 6c 6c 20 61 63 63 65 73 73 20 69 66 20 69   all access if i
11da0 74 20 63 6f 75 6c 64 20 6e 6f 74 20 77 72 69 74  t could not writ
11db0 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  e.)</li>.}..chng
11dc0 20 7b 32 30 30 30 20 41 75 67 20 39 7d 20 7b 0a   {2000 Aug 9} {.
11dd0 3c 6c 69 3e 54 72 65 61 74 20 63 61 72 72 69 61  <li>Treat carria
11de0 67 65 20 72 65 74 75 72 6e 73 20 61 73 20 77 68  ge returns as wh
11df0 69 74 65 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a  ite space.</li>.
11e00 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
11e10 67 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  g 8} {.<li>Added
11e20 20 70 61 74 74 65 72 6e 20 6d 61 74 63 68 69 6e   pattern matchin
11e30 67 20 74 6f 20 74 68 65 20 22 2e 74 61 62 6c 65  g to the ".table
11e40 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65  " command in the
11e50 20 22 73 71 6c 69 74 65 22 0a 63 6f 6d 6d 61 6e   "sqlite".comman
11e60 64 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a  d shell.</li>.}.
11e70 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
11e80 34 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  4} {.<li>Documen
11e90 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
11ea0 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 22 62  li>.<li>Added "b
11eb0 75 73 79 22 20 61 6e 64 20 22 74 69 6d 65 6f 75  usy" and "timeou
11ec0 74 22 20 6d 65 74 68 6f 64 73 20 74 6f 20 74 68  t" methods to th
11ed0 65 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65 3c  e Tcl interface<
11ee0 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
11ef0 30 30 20 41 75 67 20 33 7d 20 7b 0a 3c 6c 69 3e  00 Aug 3} {.<li>
11f00 46 69 6c 65 20 66 6f 72 6d 61 74 20 76 65 72 73  File format vers
11f10 69 6f 6e 20 6e 75 6d 62 65 72 20 77 61 73 20 62  ion number was b
11f20 65 69 6e 67 20 73 74 6f 72 65 64 20 69 6e 20 73  eing stored in s
11f30 71 6c 69 74 65 5f 6d 61 73 74 65 72 2e 74 63 6c  qlite_master.tcl
11f40 0a 20 20 20 20 6d 75 6c 74 69 70 6c 65 20 74 69  .    multiple ti
11f50 6d 65 73 2e 20 54 68 69 73 20 77 61 73 20 68 61  mes. This was ha
11f60 72 6d 6c 65 73 73 2c 20 62 75 74 20 75 6e 6e 65  rmless, but unne
11f70 63 65 73 73 61 72 79 2e 20 49 74 20 69 73 20 6e  cessary. It is n
11f80 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d  ow fixed.</li>.}
11f90 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
11fa0 20 32 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 66 69   2} {.<li>The fi
11fb0 6c 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 69 6e  le format for in
11fc0 64 69 63 65 73 20 77 61 73 20 63 68 61 6e 67 65  dices was change
11fd0 64 20 73 6c 69 67 68 74 6c 79 20 69 6e 20 6f 72  d slightly in or
11fe0 64 65 72 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20  der to work.    
11ff0 61 72 6f 75 6e 64 20 61 6e 20 69 6e 65 66 66 69  around an ineffi
12000 63 69 65 6e 63 79 20 74 68 61 74 20 63 61 6e 20  ciency that can 
12010 73 6f 6d 65 74 69 6d 65 73 20 63 6f 6d 65 20 75  sometimes come u
12020 70 20 77 69 74 68 20 47 44 42 4d 20 77 68 65 6e  p with GDBM when
12030 0a 20 20 20 20 74 68 65 72 65 20 61 72 65 20 6c  .    there are l
12040 61 72 67 65 20 69 6e 64 69 63 65 73 20 68 61 76  arge indices hav
12050 69 6e 67 20 6d 61 6e 79 20 65 6e 74 72 69 65 73  ing many entries
12060 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6b   with the same k
12070 65 79 2e 0a 20 20 20 20 3c 66 6f 6e 74 20 63 6f  ey..    <font co
12080 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 20 49 6e 63  lor="red">** Inc
12090 6f 6d 70 61 74 69 62 6c 65 20 43 68 61 6e 67 65  ompatible Change
120a0 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f 6c 69 3e 0a   **</font></li>.
120b0 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
120c0 67 20 31 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70  g 1} {.<li>The p
120d0 61 72 73 65 72 27 73 20 73 74 61 63 6b 20 77 61  arser's stack wa
120e0 73 20 6f 76 65 72 66 6c 6f 77 69 6e 67 20 6f 6e  s overflowing on
120f0 20 61 20 76 65 72 79 20 6c 6f 6e 67 20 55 50 44   a very long UPD
12100 41 54 45 20 73 74 61 74 65 6d 65 6e 74 2e 0a 20  ATE statement.. 
12110 20 20 20 54 68 69 73 20 69 73 20 6e 6f 77 20 66     This is now f
12120 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixed.</li>.}..ch
12130 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 33 31  ng {2000 July 31
12140 7d 20 7b 0a 3c 6c 69 3e 46 69 6e 69 73 68 20 74  } {.<li>Finish t
12150 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64 62 65  he <a href="vdbe
12160 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75 74 6f  .html">VDBE tuto
12170 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 3c  rial</a>.</li>.<
12180 6c 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65 6e  li>Added documen
12190 74 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d 70 69 6c  tation on compil
121a0 69 6e 67 20 74 6f 20 57 69 6e 64 6f 77 73 4e 54  ing to WindowsNT
121b0 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
121c0 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70   configuration p
121d0 72 6f 67 72 61 6d 20 66 6f 72 20 57 69 6e 64 6f  rogram for Windo
121e0 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  wsNT.</li>.<li>F
121f0 69 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69  ix a configurati
12200 6f 6e 20 70 72 6f 62 6c 65 6d 20 66 6f 72 20 48  on problem for H
12210 50 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  PUX.</li>.}..chn
12220 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32 39 7d  g {2000 July 29}
12230 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 6c 61   {.<li>Better la
12240 62 65 6c 73 20 6f 6e 20 63 6f 6c 75 6d 6e 20 6e  bels on column n
12250 61 6d 65 73 20 6f 66 20 74 68 65 20 72 65 73 75  ames of the resu
12260 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  lt.</li>.}..chng
12270 20 7b 32 30 30 30 20 4a 75 6c 79 20 32 38 7d 20   {2000 July 28} 
12280 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
12290 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 68  <b>sqlite_busy_h
122a0 61 6e 64 6c 65 72 28 29 3c 2f 62 3e 20 0a 20 20  andler()</b> .  
122b0 20 20 61 6e 64 20 3c 62 3e 73 71 6c 69 74 65 5f    and <b>sqlite_
122c0 62 75 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f  busy_timeout()</
122d0 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  b> interface.</l
122e0 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
122f0 20 4a 75 6e 65 20 32 33 7d 20 7b 0a 3c 6c 69 3e   June 23} {.<li>
12300 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20 74 68  Begin writing th
12310 65 20 3c 61 20 68 72 65 66 3d 22 76 64 62 65 2e  e <a href="vdbe.
12320 68 74 6d 6c 22 3e 56 44 42 45 20 74 75 74 6f 72  html">VDBE tutor
12330 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 7d 0a  ial</a>.</li>.}.
12340 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
12350 20 32 31 7d 20 7b 0a 3c 6c 69 3e 43 6c 65 61 6e   21} {.<li>Clean
12360 20 75 70 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64   up comments and
12370 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 2e   variable names.
12380 20 20 43 68 61 6e 67 65 73 20 74 6f 20 64 6f 63    Changes to doc
12390 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20  umentation..    
123a0 4e 6f 20 66 75 6e 63 74 69 6f 6e 61 6c 20 63 68  No functional ch
123b0 61 6e 67 65 73 20 74 6f 20 74 68 65 20 63 6f 64  anges to the cod
123c0 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
123d0 7b 32 30 30 30 20 4a 75 6e 65 20 31 39 7d 20 7b  {2000 June 19} {
123e0 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 20 6e 61 6d 65  .<li>Column name
123f0 73 20 69 6e 20 55 50 44 41 54 45 20 73 74 61 74  s in UPDATE stat
12400 65 6d 65 6e 74 73 20 77 65 72 65 20 63 61 73 65  ements were case
12410 20 73 65 6e 73 69 74 69 76 65 2e 0a 20 20 20 20   sensitive..    
12420 54 68 69 73 20 6d 69 73 74 61 6b 65 20 68 61 73  This mistake has
12430 20 6e 6f 77 20 62 65 65 6e 20 66 69 78 65 64 2e   now been fixed.
12440 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
12450 30 30 30 20 4a 75 6e 65 20 31 36 7d 20 7b 0a 3c  000 June 16} {.<
12460 6c 69 3e 41 64 64 65 64 20 74 68 65 20 63 6f 6e  li>Added the con
12470 63 61 74 65 6e 61 74 65 20 73 74 72 69 6e 67 20  catenate string 
12480 6f 70 65 72 61 74 6f 72 20 28 7c 7c 29 3c 2f 6c  operator (||)</l
12490 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
124a0 20 4a 75 6e 65 20 31 32 7d 20 7b 0a 3c 6c 69 3e   June 12} {.<li>
124b0 41 64 64 65 64 20 74 68 65 20 66 63 6e 74 28 29  Added the fcnt()
124c0 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74 68 65   function to the
124d0 20 53 51 4c 20 69 6e 74 65 72 70 72 65 74 65 72   SQL interpreter
124e0 2e 20 20 54 68 65 20 66 63 6e 74 28 29 20 66 75  .  The fcnt() fu
124f0 6e 63 74 69 6f 6e 0a 20 20 20 20 72 65 74 75 72  nction.    retur
12500 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66  ns the number of
12510 20 64 61 74 61 62 61 73 65 20 22 46 65 74 63 68   database "Fetch
12520 22 20 6f 70 65 72 61 74 69 6f 6e 73 20 74 68 61  " operations tha
12530 74 20 68 61 76 65 20 6f 63 63 75 72 72 65 64 2e  t have occurred.
12540 0a 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69  .    This functi
12550 6f 6e 20 69 73 20 64 65 73 69 67 6e 65 64 20 66  on is designed f
12560 6f 72 20 75 73 65 20 69 6e 20 74 65 73 74 20 73  or use in test s
12570 63 72 69 70 74 73 20 74 6f 20 76 65 72 69 66 79  cripts to verify
12580 20 74 68 61 74 0a 20 20 20 20 71 75 65 72 69 65   that.    querie
12590 73 20 61 72 65 20 65 66 66 69 63 69 65 6e 74 20  s are efficient 
125a0 61 6e 64 20 61 70 70 72 6f 70 72 69 61 74 65 6c  and appropriatel
125b0 79 20 6f 70 74 69 6d 69 7a 65 64 2e 20 20 46 63  y optimized.  Fc
125c0 6e 74 28 29 20 68 61 73 20 6e 6f 20 6f 74 68 65  nt() has no othe
125d0 72 0a 20 20 20 20 75 73 65 66 75 6c 20 70 75 72  r.    useful pur
125e0 70 6f 73 65 2c 20 61 73 20 66 61 72 20 61 73 20  pose, as far as 
125f0 49 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69  I know.</li>.<li
12600 3e 41 64 64 65 64 20 61 20 62 75 6e 63 68 20 6d  >Added a bunch m
12610 6f 72 65 20 74 65 73 74 73 20 74 68 61 74 20 74  ore tests that t
12620 61 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f 66  ake advantage of
12630 20 74 68 65 20 6e 65 77 20 66 63 6e 74 28 29 20   the new fcnt() 
12640 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 54 68  function..    Th
12650 65 20 6e 65 77 20 74 65 73 74 73 20 64 69 64 20  e new tests did 
12660 6e 6f 74 20 75 6e 63 6f 76 65 72 20 61 6e 79 20  not uncover any 
12670 6e 65 77 20 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c  new problems.</l
12680 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
12690 20 4a 75 6e 65 20 38 7d 20 7b 0a 3c 6c 69 3e 41   June 8} {.<li>A
126a0 64 64 65 64 20 6c 6f 74 73 20 6f 66 20 6e 65 77  dded lots of new
126b0 20 74 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e   test cases</li>
126c0 0a 3c 6c 69 3e 46 69 78 20 61 20 66 65 77 20 62  .<li>Fix a few b
126d0 75 67 73 20 64 69 73 63 6f 76 65 72 65 64 20 77  ugs discovered w
126e0 68 69 6c 65 20 61 64 64 69 6e 67 20 74 65 73 74  hile adding test
126f0 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e   cases</li>.<li>
12700 42 65 67 69 6e 20 61 64 64 69 6e 67 20 6c 6f 74  Begin adding lot
12710 73 20 6f 66 20 6e 65 77 20 64 6f 63 75 6d 65 6e  s of new documen
12720 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tation</li>.}..c
12730 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 36  hng {2000 June 6
12740 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 63 6f  } {.<li>Added co
12750 6d 70 6f 75 6e 64 20 73 65 6c 65 63 74 20 6f 70  mpound select op
12760 65 72 61 74 6f 72 73 3a 20 3c 42 3e 55 4e 49 4f  erators: <B>UNIO
12770 4e 3c 2f 62 3e 2c 20 3c 62 3e 55 4e 49 4f 4e 20  N</b>, <b>UNION 
12780 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e 49 4e 54 45  ALL</B>,.<b>INTE
12790 52 53 45 43 54 3c 2f 62 3e 2c 20 61 6e 64 20 3c  RSECT</b>, and <
127a0 62 3e 45 58 43 45 50 54 3c 2f 62 3e 3c 2f 6c 69  b>EXCEPT</b></li
127b0 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
127c0 6f 72 74 20 66 6f 72 20 75 73 69 6e 67 20 3c 62  ort for using <b
127d0 3e 28 53 45 4c 45 43 54 20 2e 2e 2e 29 3c 2f 62  >(SELECT ...)</b
127e0 3e 20 77 69 74 68 69 6e 20 65 78 70 72 65 73 73  > within express
127f0 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ions</li>.<li>Ad
12800 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
12810 3c 62 3e 49 4e 3c 2f 62 3e 20 61 6e 64 20 3c 62  <b>IN</b> and <b
12820 3e 42 45 54 57 45 45 4e 3c 2f 62 3e 20 6f 70 65  >BETWEEN</b> ope
12830 72 61 74 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rators</li>.<li>
12840 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
12850 72 20 3c 62 3e 47 52 4f 55 50 20 42 59 3c 2f 62  r <b>GROUP BY</b
12860 3e 20 61 6e 64 20 3c 62 3e 48 41 56 49 4e 47 3c  > and <b>HAVING<
12870 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 55 4c  /b></li>.<li>NUL
12880 4c 20 76 61 6c 75 65 73 20 61 72 65 20 6e 6f 77  L values are now
12890 20 72 65 70 6f 72 74 65 64 20 74 6f 20 74 68 65   reported to the
128a0 20 63 61 6c 6c 62 61 63 6b 20 61 73 20 61 20 4e   callback as a N
128b0 55 4c 4c 20 70 6f 69 6e 74 65 72 0a 20 20 20 20  ULL pointer.    
128c0 72 61 74 68 65 72 20 74 68 61 6e 20 61 6e 20 65  rather than an e
128d0 6d 70 74 79 20 73 74 72 69 6e 67 2e 3c 2f 6c 69  mpty string.</li
128e0 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
128f0 4a 75 6e 65 20 33 7d 20 7b 0a 3c 6c 69 3e 41 64  June 3} {.<li>Ad
12900 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
12910 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 6f  default values o
12920 6e 20 63 6f 6c 75 6d 6e 73 20 6f 66 20 61 20 74  n columns of a t
12930 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  able.</li>.<li>I
12940 6d 70 72 6f 76 65 64 20 74 65 73 74 20 63 6f 76  mproved test cov
12950 65 72 61 67 65 2e 20 20 46 69 78 65 64 20 61 20  erage.  Fixed a 
12960 66 65 77 20 6f 62 73 63 75 72 65 20 62 75 67 73  few obscure bugs
12970 20 66 6f 75 6e 64 20 62 79 20 74 68 65 0a 69 6d   found by the.im
12980 70 72 6f 76 65 64 20 74 65 73 74 73 2e 3c 2f 6c  proved tests.</l
12990 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
129a0 20 4a 75 6e 65 20 32 7d 20 7b 0a 3c 6c 69 3e 41   June 2} {.<li>A
129b0 6c 6c 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  ll database file
129c0 73 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 65 64  s to be modified
129d0 20 62 79 20 61 6e 20 55 50 44 41 54 45 2c 20 49   by an UPDATE, I
129e0 4e 53 45 52 54 20 6f 72 20 44 45 4c 45 54 45 20  NSERT or DELETE 
129f0 61 72 65 20 0a 6e 6f 77 20 6c 6f 63 6b 65 64 20  are .now locked 
12a00 62 65 66 6f 72 65 20 61 6e 79 20 63 68 61 6e 67  before any chang
12a10 65 73 20 61 72 65 20 6d 61 64 65 20 74 6f 20 61  es are made to a
12a20 6e 79 20 66 69 6c 65 73 2e 20 20 0a 54 68 69 73  ny files.  .This
12a30 20 6d 61 6b 65 73 20 69 74 20 73 61 66 65 20 28   makes it safe (
12a40 49 20 74 68 69 6e 6b 29 20 74 6f 20 61 63 63 65  I think) to acce
12a50 73 73 0a 74 68 65 20 73 61 6d 65 20 64 61 74 61  ss.the same data
12a60 62 61 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75  base simultaneou
12a70 73 6c 79 20 66 72 6f 6d 20 6d 75 6c 74 69 70 6c  sly from multipl
12a80 65 20 70 72 6f 63 65 73 73 65 73 2e 3c 2f 6c 69  e processes.</li
12a90 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f 64 65 20 61  >.<li>The code a
12aa0 70 70 65 61 72 73 20 73 74 61 62 6c 65 20 73 6f  ppears stable so
12ab0 20 77 65 20 61 72 65 20 6e 6f 77 20 63 61 6c 6c   we are now call
12ac0 69 6e 67 20 69 74 20 22 62 65 74 61 22 2e 3c 2f  ing it "beta".</
12ad0 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
12ae0 30 20 4a 75 6e 65 20 31 7d 20 7b 0a 3c 6c 69 3e  0 June 1} {.<li>
12af0 42 65 74 74 65 72 20 73 75 70 70 6f 72 74 20 66  Better support f
12b00 6f 72 20 66 69 6c 65 20 6c 6f 63 6b 69 6e 67 20  or file locking 
12b10 73 6f 20 74 68 61 74 20 74 77 6f 20 6f 72 20 6d  so that two or m
12b20 6f 72 65 20 70 72 6f 63 65 73 73 65 73 20 0a 28  ore processes .(
12b30 6f 72 20 74 68 72 65 61 64 73 29 0a 63 61 6e 20  or threads).can 
12b40 61 63 63 65 73 73 20 74 68 65 20 73 61 6d 65 20  access the same 
12b50 64 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74 61  database simulta
12b60 6e 65 6f 75 73 6c 79 2e 20 20 4d 6f 72 65 20 77  neously.  More w
12b70 6f 72 6b 20 6e 65 65 64 65 64 20 69 6e 0a 74 68  ork needed in.th
12b80 69 73 20 61 72 65 61 2c 20 74 68 6f 75 67 68 2e  is area, though.
12b90 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
12ba0 30 30 30 20 4d 61 79 20 33 31 7d 20 7b 0a 3c 6c  000 May 31} {.<l
12bb0 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
12bc0 66 6f 72 20 61 67 67 72 65 67 61 74 65 20 66 75  for aggregate fu
12bd0 6e 63 74 69 6f 6e 73 20 28 45 78 3a 20 3c 62 3e  nctions (Ex: <b>
12be0 43 4f 55 4e 54 28 2a 29 3c 2f 62 3e 2c 20 3c 62  COUNT(*)</b>, <b
12bf0 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f 62 3e 29 0a 74  >MIN(...)</b>).t
12c00 6f 20 74 68 65 20 53 45 4c 45 43 54 20 73 74 61  o the SELECT sta
12c10 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tement.</li>.<li
12c20 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
12c30 6f 72 20 3c 42 3e 53 45 4c 45 43 54 20 44 49 53  or <B>SELECT DIS
12c40 54 49 4e 43 54 20 2e 2e 2e 3c 2f 42 3e 3c 2f 6c  TINCT ...</B></l
12c50 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
12c60 20 4d 61 79 20 33 30 7d 20 7b 0a 3c 6c 69 3e 41   May 30} {.<li>A
12c70 64 64 65 64 20 74 68 65 20 3c 62 3e 4c 49 4b 45  dded the <b>LIKE
12c80 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 2e 3c 2f  </b> operator.</
12c90 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20  li>.<li>Added a 
12ca0 3c 62 3e 47 4c 4f 42 3c 2f 62 3e 20 6f 70 65 72  <b>GLOB</b> oper
12cb0 61 74 6f 72 3a 20 73 69 6d 69 6c 61 72 20 74 6f  ator: similar to
12cc0 20 3c 42 3e 4c 49 4b 45 3c 2f 42 3e 20 0a 62 75   <B>LIKE</B> .bu
12cd0 74 20 69 74 20 75 73 65 73 20 55 6e 69 78 20 73  t it uses Unix s
12ce0 68 65 6c 6c 20 67 6c 6f 62 62 69 6e 67 20 77 69  hell globbing wi
12cf0 6c 64 63 61 72 64 73 20 69 6e 73 74 65 61 64 20  ldcards instead 
12d00 6f 66 20 74 68 65 20 27 25 27 20 0a 61 6e 64 20  of the '%' .and 
12d10 27 5f 27 20 77 69 6c 64 63 61 72 64 73 20 6f 66  '_' wildcards of
12d20 20 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41   SQL.</li>.<li>A
12d30 64 64 65 64 20 74 68 65 20 3c 42 3e 43 4f 50 59  dded the <B>COPY
12d40 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 70 61 74  </b> command pat
12d50 74 65 72 6e 65 64 20 61 66 74 65 72 20 0a 3c 61  terned after .<a
12d60 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77   href="http://ww
12d70 77 2e 70 6f 73 74 67 72 65 73 71 6c 2e 6f 72 67  w.postgresql.org
12d80 2f 22 3e 50 6f 73 74 67 72 65 53 51 4c 3c 2f 61  /">PostgreSQL</a
12d90 3e 20 73 6f 20 74 68 61 74 20 53 51 4c 69 74 65  > so that SQLite
12da0 0a 63 61 6e 20 6e 6f 77 20 72 65 61 64 20 74 68  .can now read th
12db0 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20  e output of the 
12dc0 3c 62 3e 70 67 5f 64 75 6d 70 3c 2f 62 3e 20 64  <b>pg_dump</b> d
12dd0 61 74 61 62 61 73 65 20 64 75 6d 70 20 75 74 69  atabase dump uti
12de0 6c 69 74 79 0a 6f 66 20 50 6f 73 74 67 72 65 53  lity.of PostgreS
12df0 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  QL.</li>.<li>Add
12e00 65 64 20 61 20 3c 42 3e 56 41 43 55 55 4d 3c 2f  ed a <B>VACUUM</
12e10 42 3e 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20  B> command that 
12e20 74 68 61 74 20 63 61 6c 6c 73 20 74 68 65 20 0a  that calls the .
12e30 3c 62 3e 67 64 62 6d 5f 72 65 6f 72 67 61 6e 69  <b>gdbm_reorgani
12e40 7a 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f  ze()</b> functio
12e50 6e 20 6f 6e 20 74 68 65 20 75 6e 64 65 72 6c 79  n on the underly
12e60 69 6e 67 20 64 61 74 61 62 61 73 65 0a 66 69 6c  ing database.fil
12e70 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 64  es.</li>.<li>And
12e80 20 6d 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20   many, many bug 
12e90 66 69 78 65 73 2e 2e 2e 3c 2f 6c 69 3e 0a 7d 0a  fixes...</li>.}.
12ea0 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20  .chng {2000 May 
12eb0 32 39 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61  29} {.<li>Initia
12ec0 6c 20 50 75 62 6c 69 63 20 52 65 6c 65 61 73 65  l Public Release
12ed0 20 6f 66 20 41 6c 70 68 61 20 63 6f 64 65 3c 2f   of Alpha code</
12ee0 6c 69 3e 0a 7d 0a 0a 70 75 74 73 20 7b 0a 3c 2f  li>.}..puts {.</
12ef0 44 4c 3e 0a 7d 0a 66 6f 6f 74 65 72 20 7b 24 49  DL>.}.footer {$I
12f00 64 3a 7d 0a                                      d:}.