Documentation Source Text

Hex Artifact Content
Login

Artifact 55d7c2c6845d59080a19284cdbc3c87622c1747f:


0000: 3c 74 69 74 6c 65 3e 52 65 63 65 6e 74 20 53 51  <title>Recent SQ
0010: 4c 69 74 65 20 4e 65 77 73 3c 2f 74 69 74 6c 65  Lite News</title
0020: 3e 0a 0a 3c 68 32 3e 52 65 63 65 6e 74 20 4e 65  >..<h2>Recent Ne
0030: 77 73 3c 2f 68 32 3e 0a 0a 3c 74 63 6c 3e 0a 70  ws</h2>..<tcl>.p
0040: 72 6f 63 20 6e 65 77 73 69 74 65 6d 20 7b 64 61  roc newsitem {da
0050: 74 65 20 74 69 74 6c 65 20 74 65 78 74 7d 20 7b  te title text} {
0060: 0a 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b  .  regsub -all {
0070: 5b 5e 61 2d 7a 30 2d 39 5d 7d 20 5b 73 74 72 69  [^a-z0-9]} [stri
0080: 6e 67 20 74 6f 6c 6f 77 65 72 20 24 64 61 74 65  ng tolower $date
0090: 5d 20 5f 20 74 61 67 0a 20 20 68 64 5f 70 75 74  ] _ tag.  hd_put
00a0: 73 20 22 3c 61 20 6e 61 6d 65 3d 5c 22 24 74 61  s "<a name=\"$ta
00b0: 67 5c 22 3e 3c 2f 61 3e 22 0a 20 20 69 66 20 7b  g\"></a>".  if {
00c0: 21 5b 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 28  ![regsub -all {(
00d0: 56 65 72 73 69 6f 6e 29 20 28 5c 64 2b 29 5c 2e  Version) (\d+)\.
00e0: 28 5c 64 2b 29 5c 2e 28 5c 64 2b 29 5c 2e 28 5c  (\d+)\.(\d+)\.(\
00f0: 64 2b 29 7d 20 24 74 69 74 6c 65 20 5c 0a 20 20  d+)} $title \.  
0100: 20 20 20 20 20 20 7b 3c 61 20 68 72 65 66 3d 22        {<a href="
0110: 72 65 6c 65 61 73 65 6c 6f 67 2f 5c 32 5f 5c 33  releaselog/\2_\3
0120: 5f 5c 34 5f 5c 35 2e 68 74 6d 6c 22 3e 5c 30 3c  _\4_\5.html">\0<
0130: 2f 61 3e 7d 20 74 69 74 6c 65 5d 7d 20 7b 0a 20  /a>} title]} {. 
0140: 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b     regsub -all {
0150: 28 56 65 72 73 69 6f 6e 29 20 28 5c 64 2b 29 5c  (Version) (\d+)\
0160: 2e 28 5c 64 2b 29 5c 2e 28 5c 64 2b 29 7d 20 24  .(\d+)\.(\d+)} $
0170: 74 69 74 6c 65 20 5c 0a 20 20 20 20 20 20 7b 3c  title \.      {<
0180: 61 20 68 72 65 66 3d 22 72 65 6c 65 61 73 65 6c  a href="releasel
0190: 6f 67 2f 5c 32 5f 5c 33 5f 5c 34 2e 68 74 6d 6c  og/\2_\3_\4.html
01a0: 22 3e 5c 30 3c 2f 61 3e 7d 20 74 69 74 6c 65 0a  ">\0</a>} title.
01b0: 20 20 7d 0a 20 20 68 64 5f 70 75 74 73 20 22 3c    }.  hd_puts "<
01c0: 68 33 3e 24 64 61 74 65 20 2d 20 24 74 69 74 6c  h3>$date - $titl
01d0: 65 3c 2f 68 33 3e 22 0a 20 20 72 65 67 73 75 62  e</h3>".  regsub
01e0: 20 2d 61 6c 6c 20 22 5c 6e 28 20 2a 5c 6e 29 2b   -all "\n( *\n)+
01f0: 22 20 24 74 65 78 74 20 22 3c 2f 70 3e 5c 6e 5c  " $text "</p>\n\
0200: 6e 3c 70 3e 22 20 74 78 74 0a 20 20 72 65 67 73  n<p>" txt.  regs
0210: 75 62 20 2d 61 6c 6c 20 7b 5b 54 74 5d 69 63 6b  ub -all {[Tt]ick
0220: 65 74 20 23 28 5c 64 2b 29 7d 20 24 74 78 74 20  et #(\d+)} $txt 
0230: 5c 0a 20 20 20 20 20 20 7b 3c 61 20 68 72 65 66  \.      {<a href
0240: 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c  ="http://www.sql
0250: 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f  ite.org/cvstrac/
0260: 74 6b 74 76 69 65 77 3f 74 6e 3d 5c 31 22 3e 5c  tktview?tn=\1">\
0270: 30 3c 2f 61 3e 7d 20 74 78 74 0a 20 20 68 64 5f  0</a>} txt.  hd_
0280: 72 65 73 6f 6c 76 65 20 22 3c 62 6c 6f 63 6b 71  resolve "<blockq
0290: 75 6f 74 65 3e 24 74 78 74 3c 2f 62 6c 6f 63 6b  uote>$txt</block
02a0: 71 75 6f 74 65 3e 22 0a 20 20 68 64 5f 70 75 74  quote>".  hd_put
02b0: 73 20 22 3c 68 72 20 77 69 64 74 68 3d 5c 22 35  s "<hr width=\"5
02c0: 30 25 5c 22 3e 22 0a 7d 0a 0a 6e 65 77 73 69 74  0%\">".}..newsit
02d0: 65 6d 20 7b 32 30 31 34 2d 30 34 2d 30 33 7d 20  em {2014-04-03} 
02e0: 7b 52 65 6c 65 61 73 65 20 33 2e 38 2e 34 2e 33  {Release 3.8.4.3
02f0: 7d 20 7b 0a 3c 70 3e 54 68 65 20 6f 70 74 69 6d  } {.<p>The optim
0300: 69 7a 61 74 69 6f 6e 73 20 61 64 64 65 64 20 69  izations added i
0310: 6e 20 5b 76 65 72 73 69 6f 6e 20 33 2e 38 2e 34  n [version 3.8.4
0320: 5d 20 63 61 75 73 65 64 20 73 6f 6d 65 20 71 75  ] caused some qu
0330: 65 72 69 65 73 20 74 68 61 74 20 69 6e 76 6f 6c  eries that invol
0340: 76 65 0a 20 20 20 73 75 62 71 75 65 72 69 65 73  ve.   subqueries
0350: 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 63 6c 61   in the FROM cla
0360: 75 73 65 2c 20 44 49 53 54 49 4e 43 54 2c 20 61  use, DISTINCT, a
0370: 6e 64 20 4f 52 44 45 52 20 42 59 20 63 6c 61 75  nd ORDER BY clau
0380: 73 65 73 2c 20 74 6f 20 67 69 76 65 20 61 6e 20  ses, to give an 
0390: 69 6e 63 6f 72 72 65 63 74 0a 20 20 20 72 65 73  incorrect.   res
03a0: 75 6c 74 2e 20 20 53 65 65 0a 20 20 20 5b 68 74  ult.  See.   [ht
03b0: 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e  tp://www.sqlite.
03c0: 6f 72 67 2f 73 72 63 2f 69 6e 66 6f 2f 39 38 38  org/src/info/988
03d0: 32 35 61 37 39 63 65 31 34 35 36 38 36 33 39 32  25a79ce145686392
03e0: 64 38 30 37 34 30 33 32 61 65 35 34 38 36 33 61  d8074032ae54863a
03f0: 61 32 31 61 33 7c 20 74 69 63 6b 65 74 20 39 38  a21a3| ticket 98
0400: 38 32 35 61 37 39 63 65 31 34 35 5d 0a 20 20 20  825a79ce145].   
0410: 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 20 20 20  for details..   
0420: 54 68 69 73 20 72 65 6c 65 61 73 65 20 61 64 64  This release add
0430: 73 20 61 20 0a 20 20 20 5b 68 74 74 70 3a 2f 2f  s a .   [http://
0440: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 73  www.sqlite.org/s
0450: 72 63 2f 66 64 69 66 66 3f 73 62 73 3d 31 26 76  rc/fdiff?sbs=1&v
0460: 31 3d 37 64 35 33 39 63 65 64 62 31 63 26 76 32  1=7d539cedb1c&v2
0470: 3d 65 62 61 64 38 39 31 62 37 34 39 34 64 26 73  =ebad891b7494d&s
0480: 6d 68 64 72 7c 6f 6e 65 2d 63 68 61 72 61 63 74  mhdr|one-charact
0490: 65 72 20 63 68 61 6e 67 65 5d 0a 20 20 20 74 6f  er change].   to
04a0: 20 61 20 73 69 6e 67 6c 65 20 6c 69 6e 65 20 6f   a single line o
04b0: 66 20 63 6f 64 65 20 74 6f 20 66 69 78 20 74 68  f code to fix th
04c0: 65 20 70 72 6f 62 6c 65 6d 2e 0a 7d 0a 0a 6e 65  e problem..}..ne
04d0: 77 73 69 74 65 6d 20 7b 32 30 31 34 2d 30 33 2d  wsitem {2014-03-
04e0: 32 36 7d 20 7b 52 65 6c 65 61 73 65 20 33 2e 38  26} {Release 3.8
04f0: 2e 34 2e 32 7d 20 7b 0a 3c 70 3e 54 68 65 20 63  .4.2} {.<p>The c
0500: 6f 64 65 20 63 68 61 6e 67 65 73 20 74 68 61 74  ode changes that
0510: 20 72 65 73 75 6c 74 65 64 20 69 6e 20 74 68 65   resulted in the
0520: 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d 70   performance imp
0530: 72 6f 76 65 6d 65 6e 74 73 0a 20 20 20 69 6e 20  rovements.   in 
0540: 5b 76 65 72 73 69 6f 6e 20 33 2e 38 2e 34 5d 20  [version 3.8.4] 
0550: 6d 69 73 73 65 64 20 61 20 73 69 6e 67 6c 65 20  missed a single 
0560: 62 75 66 66 65 72 20 6f 76 65 72 66 6c 6f 77 20  buffer overflow 
0570: 74 65 73 74 2c 20 77 68 69 63 68 20 63 6f 75 6c  test, which coul
0580: 64 0a 20 20 20 72 65 73 75 6c 74 20 69 6e 20 61  d.   result in a
0590: 20 72 65 61 64 20 70 61 73 74 20 74 68 65 20 65   read past the e
05a0: 6e 64 20 6f 66 20 61 20 62 75 66 66 65 72 20 77  nd of a buffer w
05b0: 68 69 6c 65 20 73 65 61 72 63 68 69 6e 67 20 61  hile searching a
05c0: 20 64 61 74 61 62 61 73 65 0a 20 20 20 74 68 61   database.   tha
05d0: 74 20 69 73 20 63 6f 72 72 75 70 74 65 64 20 69  t is corrupted i
05e0: 6e 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 77  n a particular w
05f0: 61 79 2e 20 20 5b 56 65 72 73 69 6f 6e 20 33 2e  ay.  [Version 3.
0600: 38 2e 34 2e 32 5d 20 66 69 78 65 73 20 74 68 61  8.4.2] fixes tha
0610: 74 0a 20 20 20 70 72 6f 62 6c 65 6d 20 75 73 69  t.   problem usi
0620: 6e 67 20 61 0a 20 20 20 5b 68 74 74 70 3a 2f 2f  ng a.   [http://
0630: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 73  www.sqlite.org/s
0640: 72 63 2f 66 64 69 66 66 3f 76 31 3d 65 34 35 65  rc/fdiff?v1=e45e
0650: 33 66 39 64 61 66 33 38 63 35 62 65 26 76 32 3d  3f9daf38c5be&v2=
0660: 37 31 34 64 66 34 65 31 63 38 32 66 36 32 39 64  714df4e1c82f629d
0670: 26 73 62 73 3d 31 7c 6f 6e 65 2d 6c 69 6e 65 20  &sbs=1|one-line 
0680: 70 61 74 63 68 5d 2e 0a 0a 3c 70 3e 57 65 20 61  patch]...<p>We a
0690: 72 65 20 6e 6f 74 20 61 77 61 72 65 20 6f 66 20  re not aware of 
06a0: 61 6e 79 20 70 72 6f 62 6c 65 6d 73 20 69 6e 20  any problems in 
06b0: 5b 76 65 72 73 69 6f 6e 20 33 2e 38 2e 34 5d 0a  [version 3.8.4].
06c0: 20 20 20 77 68 65 6e 20 77 6f 72 6b 69 6e 67 20     when working 
06d0: 77 69 74 68 20 77 65 6c 6c 2d 66 6f 72 6d 65 64  with well-formed
06e0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 2e   database files.
06f0: 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 66 69    The problem fi
0700: 78 65 64 20 62 79 20 74 68 69 73 0a 20 20 20 72  xed by this.   r
0710: 65 6c 65 61 73 65 20 6f 6e 6c 79 20 63 6f 6d 65  elease only come
0720: 73 20 75 70 20 77 68 65 6e 20 72 65 61 64 69 6e  s up when readin
0730: 67 20 63 6f 72 72 75 70 74 20 64 61 74 61 62 61  g corrupt databa
0740: 73 65 20 66 69 6c 65 73 2e 0a 7d 0a 0a 6e 65 77  se files..}..new
0750: 73 69 74 65 6d 20 7b 32 30 31 34 2d 30 33 2d 31  sitem {2014-03-1
0760: 31 7d 20 7b 52 65 6c 65 61 73 65 20 33 2e 38 2e  1} {Release 3.8.
0770: 34 2e 31 7d 20 7b 0a 3c 70 3e 53 51 4c 69 74 65  4.1} {.<p>SQLite
0780: 20 5b 76 65 72 73 69 6f 6e 20 33 2e 38 2e 34 2e   [version 3.8.4.
0790: 31 5d 20 69 73 20 61 20 70 61 74 63 68 20 61 67  1] is a patch ag
07a0: 61 69 6e 73 74 20 5b 76 65 72 73 69 6f 6e 20 33  ainst [version 3
07b0: 2e 38 2e 34 5d 20 74 68 61 74 20 66 69 78 65 73  .8.4] that fixes
07c0: 0a 20 20 20 74 77 6f 20 6d 69 6e 6f 72 20 69 73  .   two minor is
07d0: 73 75 65 73 3a 0a 3c 6f 6c 3e 0a 3c 6c 69 3e 20  sues:.<ol>.<li> 
07e0: 57 6f 72 6b 20 61 72 6f 75 6e 64 20 61 20 43 2d  Work around a C-
07f0: 70 72 65 70 72 6f 63 65 73 73 6f 72 20 6d 61 63  preprocessor mac
0800: 72 6f 20 63 6f 6e 66 6c 69 63 74 20 74 68 61 74  ro conflict that
0810: 20 63 61 75 73 65 73 20 63 6f 6d 70 69 6c 61 74   causes compilat
0820: 69 6f 6e 0a 20 20 20 20 20 70 72 6f 62 6c 65 6d  ion.     problem
0830: 73 20 66 6f 72 20 73 6f 6d 65 20 63 6f 6e 66 69  s for some confi
0840: 67 75 72 61 74 69 6f 6e 73 20 6f 66 20 56 69 73  gurations of Vis
0850: 75 61 6c 20 53 74 75 64 69 6f 2e 0a 3c 6c 69 3e  ual Studio..<li>
0860: 20 41 64 6a 75 73 74 20 74 68 65 20 63 6f 73 74   Adjust the cost
0870: 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 66 6f 72   computation for
0880: 20 74 68 65 20 5b 73 6b 69 70 2d 73 63 61 6e 20   the [skip-scan 
0890: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 5d 20 66 6f  optimization] fo
08a0: 72 0a 20 20 20 20 20 69 6d 70 72 6f 76 65 64 20  r.     improved 
08b0: 70 65 72 66 6f 72 6d 61 6e 63 65 2e 0a 3c 2f 6f  performance..</o
08c0: 6c 3e 0a 42 6f 74 68 20 6f 66 20 74 68 65 73 65  l>.Both of these
08d0: 20 69 73 73 75 65 73 20 63 61 6d 65 20 74 6f 20   issues came to 
08e0: 6c 69 67 68 74 20 77 69 74 68 69 6e 20 6d 69 6e  light within min
08f0: 75 74 65 73 20 6f 66 20 74 61 67 67 69 6e 67 20  utes of tagging 
0900: 74 68 65 20 70 72 65 76 69 6f 75 73 0a 72 65 6c  the previous.rel
0910: 65 61 73 65 2e 20 20 4e 65 69 74 68 65 72 20 69  ease.  Neither i
0920: 73 73 75 65 20 69 73 20 73 65 72 69 6f 75 73 20  ssue is serious 
0930: 62 75 74 20 74 68 65 79 20 63 61 6e 20 62 65 20  but they can be 
0940: 61 6e 6e 6f 79 69 6e 67 2e 20 20 48 65 6e 63 65  annoying.  Hence
0950: 2c 20 74 68 65 0a 64 65 63 69 73 69 6f 6e 20 77  , the.decision w
0960: 61 73 20 6d 61 64 65 20 74 6f 20 64 6f 20 61 20  as made to do a 
0970: 71 75 69 63 6b 20 70 61 74 63 68 20 72 65 6c 65  quick patch rele
0980: 61 73 65 20 74 6f 20 61 64 64 72 65 73 73 20 62  ase to address b
0990: 6f 74 68 20 69 73 73 75 65 73 2e 0a 7d 0a 0a 6e  oth issues..}..n
09a0: 65 77 73 69 74 65 6d 20 7b 32 30 31 34 2d 30 33  ewsitem {2014-03
09b0: 2d 31 30 7d 20 7b 52 65 6c 65 61 73 65 20 33 2e  -10} {Release 3.
09c0: 38 2e 34 7d 20 7b 0a 3c 70 3e 53 51 4c 69 74 65  8.4} {.<p>SQLite
09d0: 20 5b 76 65 72 73 69 6f 6e 20 33 2e 38 2e 34 5d   [version 3.8.4]
09e0: 20 69 73 20 61 20 6d 61 69 6e 74 65 6e 61 6e 63   is a maintenanc
09f0: 65 20 72 65 6c 65 61 73 65 20 66 65 61 74 75 72  e release featur
0a00: 69 6e 67 20 70 65 72 66 6f 72 6d 61 6e 63 65 0a  ing performance.
0a10: 20 20 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20     enhancements 
0a20: 61 6e 64 20 66 69 78 65 73 20 66 6f 72 20 61 20  and fixes for a 
0a30: 6e 75 6d 62 65 72 20 6f 66 20 6f 62 73 63 75 72  number of obscur
0a40: 65 20 62 75 67 73 2e 0a 20 20 20 54 68 65 72 65  e bugs..   There
0a50: 20 61 72 65 20 6e 6f 20 73 69 67 6e 69 66 69 63   are no signific
0a60: 61 6e 74 20 6e 65 77 20 66 65 61 74 75 72 65 73  ant new features
0a70: 20 69 6e 20 53 51 4c 69 74 65 20 76 65 72 73 69   in SQLite versi
0a80: 6f 6e 20 33 2e 38 2e 34 2e 0a 20 20 20 48 6f 77  on 3.8.4..   How
0a90: 65 76 65 72 2c 20 74 68 65 20 6e 75 6d 62 65 72  ever, the number
0aa0: 20 6f 66 20 43 50 55 20 63 79 63 6c 65 73 20 28   of CPU cycles (
0ab0: 6d 65 61 73 75 72 65 64 20 62 79 20 76 61 6c 67  measured by valg
0ac0: 72 69 6e 64 29 20 6e 65 65 64 65 64 20 74 6f 20  rind) needed to 
0ad0: 0a 20 20 20 64 6f 20 6d 61 6e 79 20 63 6f 6d 6d  .   do many comm
0ae0: 6f 6e 20 6f 70 65 72 61 74 69 6f 6e 73 20 68 61  on operations ha
0af0: 73 20 62 65 20 72 65 64 75 63 65 64 20 62 79 20  s be reduced by 
0b00: 61 62 6f 75 74 20 31 32 25 20 72 65 6c 61 74 69  about 12% relati
0b10: 76 65 20 74 6f 20 74 68 65 0a 20 20 20 70 72 65  ve to the.   pre
0b20: 76 69 6f 75 73 20 72 65 6c 65 61 73 65 2c 20 61  vious release, a
0b30: 6e 64 20 62 79 20 61 62 6f 75 74 20 32 35 25 20  nd by about 25% 
0b40: 72 65 6c 61 74 69 76 65 20 74 6f 20 5b 76 65 72  relative to [ver
0b50: 73 69 6f 6e 20 33 2e 37 2e 31 36 5d 0a 20 20 20  sion 3.7.16].   
0b60: 66 72 6f 6d 20 61 70 70 72 6f 78 69 6d 61 74 65  from approximate
0b70: 6c 79 20 6f 6e 65 20 79 65 61 72 20 61 67 6f 2e  ly one year ago.
0b80: 0a 0a 3c 70 3e 56 65 72 73 69 6f 6e 20 33 2e 38  ..<p>Version 3.8
0b90: 2e 34 20 6f 66 20 53 51 4c 69 74 65 20 66 69 78  .4 of SQLite fix
0ba0: 65 73 20 73 65 76 65 72 61 6c 20 63 6f 72 6e 65  es several corne
0bb0: 72 2d 63 61 73 65 20 62 75 67 73 20 74 68 61 74  r-case bugs that
0bc0: 20 77 65 72 65 0a 20 20 20 66 6f 75 6e 64 20 73   were.   found s
0bd0: 69 6e 63 65 20 74 68 65 20 70 72 65 76 69 6f 75  ince the previou
0be0: 73 20 72 65 6c 65 61 73 65 2e 20 20 54 68 65 73  s release.  Thes
0bf0: 65 20 62 75 67 73 20 77 65 72 65 20 75 6e 6c 69  e bugs were unli
0c00: 6b 65 6c 79 20 74 6f 20 61 70 70 65 61 72 0a 20  kely to appear. 
0c10: 20 20 69 6e 20 70 72 61 63 74 69 63 65 2c 20 61    in practice, a
0c20: 6e 64 20 6e 6f 6e 65 20 72 65 70 72 65 73 65 6e  nd none represen
0c30: 74 20 61 20 73 65 63 75 72 69 74 79 20 76 75 6c  t a security vul
0c40: 6e 65 72 61 62 69 6c 69 74 79 2e 20 0a 20 20 20  nerability. .   
0c50: 4e 65 76 65 72 74 68 65 6c 65 73 73 2c 20 64 65  Nevertheless, de
0c60: 76 65 6c 6f 70 65 72 73 20 61 72 65 20 65 6e 63  velopers are enc
0c70: 6f 75 72 61 67 65 64 20 74 6f 20 75 70 67 72 61  ouraged to upgra
0c80: 64 65 20 66 72 6f 6d 20 61 6c 6c 20 70 72 69 6f  de from all prio
0c90: 72 20 72 65 6c 65 61 73 65 73 2e 0a 7d 0a 0a 6e  r releases..}..n
0ca0: 65 77 73 69 74 65 6d 20 7b 32 30 31 34 2d 30 32  ewsitem {2014-02
0cb0: 2d 31 31 7d 20 7b 52 65 6c 65 61 73 65 20 33 2e  -11} {Release 3.
0cc0: 38 2e 33 2e 31 7d 20 7b 0a 3c 70 3e 53 51 4c 69  8.3.1} {.<p>SQLi
0cd0: 74 65 20 5b 76 65 72 73 69 6f 6e 20 33 2e 38 2e  te [version 3.8.
0ce0: 33 2e 31 5d 20 66 69 78 65 73 20 61 20 62 75 67  3.1] fixes a bug
0cf0: 20 70 72 65 73 65 6e 74 20 69 6e 20 76 65 72 73   present in vers
0d00: 69 6f 6e 73 20 33 2e 38 2e 31 2c 0a 20 20 20 33  ions 3.8.1,.   3
0d10: 2e 38 2e 32 20 61 6e 64 20 33 2e 38 2e 33 20 74  .8.2 and 3.8.3 t
0d20: 68 61 74 20 63 61 6e 20 63 61 75 73 65 20 71 75  hat can cause qu
0d30: 65 72 69 65 73 20 74 6f 20 6f 6d 69 74 20 76 61  eries to omit va
0d40: 6c 69 64 20 6f 75 74 70 75 74 20 72 6f 77 73 2e  lid output rows.
0d50: 0a 20 20 20 55 70 67 72 61 64 69 6e 67 20 66 72  .   Upgrading fr
0d60: 6f 6d 20 74 68 6f 73 65 20 76 65 72 73 69 6f 6e  om those version
0d70: 73 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64  s is recommended
0d80: 2e 0a 20 20 20 0a 3c 70 3e 54 68 65 20 70 72 6f  ..   .<p>The pro
0d90: 62 6c 65 6d 20 6f 6e 6c 79 20 63 6f 6d 65 73 20  blem only comes 
0da0: 75 70 20 69 66 20 53 51 4c 69 74 65 20 69 73 20  up if SQLite is 
0db0: 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 65 69  compiled with ei
0dc0: 74 68 65 72 20 74 68 65 0a 20 20 20 5b 53 51 4c  ther the.   [SQL
0dd0: 49 54 45 5f 45 4e 41 42 4c 45 5f 53 54 41 54 33  ITE_ENABLE_STAT3
0de0: 5d 20 6f 72 20 5b 53 51 4c 49 54 45 5f 45 4e 41  ] or [SQLITE_ENA
0df0: 42 4c 45 5f 53 54 41 54 34 5d 20 63 6f 6d 70 69  BLE_STAT4] compi
0e00: 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 73 2e  le-time options.
0e10: 0a 20 20 20 49 6e 20 74 68 61 74 20 63 61 73 65  .   In that case
0e20: 2c 20 69 66 20 61 20 71 75 65 72 79 20 68 61 73  , if a query has
0e30: 20 61 20 57 48 45 52 45 20 63 6c 61 75 73 65 20   a WHERE clause 
0e40: 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 65 78  that contains ex
0e50: 70 72 65 73 73 69 6f 6e 73 0a 20 20 20 6c 69 6b  pressions.   lik
0e60: 65 20 74 68 69 73 3a 0a 20 20 20 3c 62 6c 6f 63  e this:.   <bloc
0e70: 6b 71 75 6f 74 65 3e 0a 57 48 45 52 45 20 28 65  kquote>.WHERE (e
0e80: 78 70 72 31 20 4f 52 20 65 78 70 72 32 20 4f 52  xpr1 OR expr2 OR
0e90: 20 2e 2e 2e 20 4f 52 20 65 78 70 72 4e 29 20 41   ... OR exprN) A
0ea0: 4e 44 20 63 6f 6c 75 6d 6e 20 49 53 20 4e 4f 54  ND column IS NOT
0eb0: 20 4e 55 4c 4c 0a 20 20 20 3c 2f 62 6c 6f 63 6b   NULL.   </block
0ec0: 71 75 6f 74 65 3e 0a 20 20 20 57 68 65 72 65 20  quote>.   Where 
0ed0: 61 6c 6c 20 6f 66 20 65 78 70 72 31 20 74 68 72  all of expr1 thr
0ee0: 6f 75 67 68 20 65 78 70 72 4e 20 61 72 65 20 73  ough exprN are s
0ef0: 75 69 74 61 62 6c 65 20 66 6f 72 20 75 73 65 20  uitable for use 
0f00: 62 79 20 69 6e 64 65 78 65 73 2c 0a 20 20 20 74  by indexes,.   t
0f10: 68 65 6e 20 64 75 72 69 6e 67 20 71 75 65 72 79  hen during query
0f20: 20 70 6c 61 6e 6e 69 6e 67 20 53 51 4c 69 74 65   planning SQLite
0f30: 20 6d 69 67 68 74 20 6d 69 73 74 61 6b 65 6e 6c   might mistakenl
0f40: 79 20 63 6f 6e 76 65 72 74 65 64 0a 20 20 20 74  y converted.   t
0f50: 68 65 20 22 63 6f 6c 75 6d 6e 20 49 53 20 4e 4f  he "column IS NO
0f60: 54 20 4e 55 4c 4c 22 20 74 65 72 6d 20 69 6e 74  T NULL" term int
0f70: 6f 20 22 63 6f 6c 75 6d 6e 3e 4e 55 4c 4c 22 2e  o "column>NULL".
0f80: 20 20 42 75 74 20 74 68 65 20 6c 61 74 74 65 72    But the latter
0f90: 0a 20 20 20 74 65 72 6d 20 69 73 20 6e 65 76 65  .   term is neve
0fa0: 72 20 74 72 75 65 2c 20 61 6e 64 20 73 6f 20 74  r true, and so t
0fb0: 68 65 20 71 75 65 72 79 20 77 6f 75 6c 64 20 72  he query would r
0fc0: 65 74 75 72 6e 20 6e 6f 20 72 6f 77 73 2e 0a 0a  eturn no rows...
0fd0: 3c 70 3e 54 68 65 20 74 72 6f 75 62 6c 65 20 74  <p>The trouble t
0fe0: 69 63 6b 65 74 20 66 6f 72 20 74 68 69 73 20 62  icket for this b
0ff0: 75 67 20 69 73 0a 20 20 20 26 23 39 31 3b 5b 68  ug is.   &#91;[h
1000: 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65  ttp://www.sqlite
1010: 2e 6f 72 67 2f 73 72 63 2f 69 6e 66 6f 2f 34 63  .org/src/info/4c
1020: 38 36 62 31 32 36 66 32 7c 34 63 38 36 62 31 32  86b126f2|4c86b12
1030: 36 66 32 5d 26 23 39 33 3b 2e 0a 20 20 20 49 74  6f2]&#93;..   It
1040: 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20   is recommended 
1050: 74 68 61 74 20 61 6c 6c 20 75 73 65 72 73 20 75  that all users u
1060: 70 67 72 61 64 65 20 74 6f 20 61 76 6f 69 64 20  pgrade to avoid 
1070: 74 68 69 73 20 70 72 6f 62 6c 65 6d 2e 0a 7d 0a  this problem..}.
1080: 0a 6e 65 77 73 69 74 65 6d 20 7b 32 30 31 34 2d  .newsitem {2014-
1090: 30 32 2d 30 33 7d 20 7b 52 65 6c 65 61 73 65 20  02-03} {Release 
10a0: 33 2e 38 2e 33 7d 20 7b 0a 20 20 3c 70 3e 53 51  3.8.3} {.  <p>SQ
10b0: 4c 69 74 65 20 5b 76 65 72 73 69 6f 6e 20 33 2e  Lite [version 3.
10c0: 38 2e 33 5d 20 69 73 20 61 20 72 65 67 75 6c 61  8.3] is a regula
10d0: 72 6c 79 20 73 63 68 65 64 75 6c 65 64 20 6d 61  rly scheduled ma
10e0: 69 6e 74 65 6e 61 6e 63 65 20 72 65 6c 65 61 73  intenance releas
10f0: 65 2e 0a 20 20 55 70 67 72 61 64 69 6e 67 20 66  e..  Upgrading f
1100: 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73  rom the previous
1110: 20 72 65 6c 65 61 73 65 20 69 73 20 6f 70 74 69   release is opti
1120: 6f 6e 61 6c 2e 0a 0a 20 20 3c 70 3e 54 68 65 20  onal...  <p>The 
1130: 6d 6f 73 74 20 76 69 73 69 62 6c 65 20 63 68 61  most visible cha
1140: 6e 67 65 20 69 6e 20 76 65 72 73 69 6f 6e 20 33  nge in version 3
1150: 2e 38 2e 33 20 69 73 20 74 68 65 20 61 64 64 69  .8.3 is the addi
1160: 74 69 6f 6e 20 6f 66 0a 20 20 73 75 70 70 6f 72  tion of.  suppor
1170: 74 20 66 6f 72 20 5b 63 6f 6d 6d 6f 6e 20 74 61  t for [common ta
1180: 62 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 73 5d  ble expressions]
1190: 2e 20 20 49 74 20 69 73 20 6e 6f 77 20 70 6f 73  .  It is now pos
11a0: 73 69 62 6c 65 20 74 6f 20 77 72 69 74 65 20 61  sible to write a
11b0: 0a 20 20 73 69 6e 67 6c 65 20 5b 53 45 4c 45 43  .  single [SELEC
11c0: 54 5d 20 73 74 61 74 65 6d 65 6e 74 20 74 68 61  T] statement tha
11d0: 74 20 77 69 6c 6c 20 71 75 65 72 79 20 61 20 74  t will query a t
11e0: 72 65 65 20 6f 72 20 67 72 61 70 68 2c 20 75 73  ree or graph, us
11f0: 69 6e 67 20 65 69 74 68 65 72 0a 20 20 61 20 64  ing either.  a d
1200: 65 70 74 68 2d 66 69 72 73 74 20 6f 72 20 61 20  epth-first or a 
1210: 62 72 65 61 64 74 68 2d 66 69 72 73 74 20 73 65  breadth-first se
1220: 61 72 63 68 2e 20 20 41 20 73 69 6e 67 6c 65 20  arch.  A single 
1230: 53 51 4c 69 74 65 20 71 75 65 72 79 20 77 69 6c  SQLite query wil
1240: 6c 20 0a 20 20 65 76 65 6e 20 5b 73 6f 6c 76 65  l .  even [solve
1250: 20 53 75 64 6f 6b 75 20 70 75 7a 7a 6c 65 73 5d   Sudoku puzzles]
1260: 20 6f 72 20 5b 63 6f 6d 70 75 74 65 20 74 68 65   or [compute the
1270: 20 4d 61 6e 64 65 6c 62 72 6f 74 20 73 65 74 5d   Mandelbrot set]
1280: 2e 20 20 41 73 20 70 61 72 74 0a 20 20 6f 66 20  .  As part.  of 
1290: 74 68 69 73 20 63 68 61 6e 67 65 2c 20 53 51 4c  this change, SQL
12a0: 69 74 65 20 6e 6f 77 20 61 63 63 65 70 74 73 20  ite now accepts 
12b0: 61 20 5b 56 41 4c 55 45 53 20 63 6c 61 75 73 65  a [VALUES clause
12c0: 5d 20 61 6e 79 70 6c 61 63 65 20 74 68 61 74 0a  ] anyplace that.
12d0: 20 20 61 20 5b 53 45 4c 45 43 54 5d 20 73 74 61    a [SELECT] sta
12e0: 74 65 6d 65 6e 74 20 69 73 20 76 61 6c 69 64 2e  tement is valid.
12f0: 0a 0a 20 20 3c 70 3e 54 68 69 73 20 72 65 6c 65  ..  <p>This rele
1300: 61 73 65 20 61 6c 73 6f 20 69 6e 63 6c 75 64 65  ase also include
1310: 73 20 6d 61 6e 79 20 73 6d 61 6c 6c 20 70 65 72  s many small per
1320: 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65  formance enhance
1330: 6d 65 6e 74 73 20 77 68 69 63 68 0a 20 20 73 68  ments which.  sh
1340: 6f 75 6c 64 20 67 69 76 65 20 61 20 73 6d 61 6c  ould give a smal
1350: 6c 20 73 70 65 65 64 20 62 6f 6f 73 74 20 74 6f  l speed boost to
1360: 20 6c 65 67 61 63 79 20 61 70 70 6c 69 63 61 74   legacy applicat
1370: 69 6f 6e 73 2e 20 20 41 6e 64 20 74 68 65 72 65  ions.  And there
1380: 20 61 72 65 0a 20 20 6f 74 68 65 72 20 6d 69 6e   are.  other min
1390: 6f 72 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20  or enhancements 
13a0: 73 75 63 68 20 61 73 20 74 68 65 20 61 64 64 69  such as the addi
13b0: 74 69 6f 6e 20 6f 66 20 74 68 65 20 5b 70 72 69  tion of the [pri
13c0: 6e 74 66 28 29 5d 20 53 51 4c 0a 20 20 66 75 6e  ntf()] SQL.  fun
13d0: 63 74 69 6f 6e 2e 20 20 53 65 65 20 74 68 65 20  ction.  See the 
13e0: 5b 76 65 72 73 69 6f 6e 20 33 2e 38 2e 33 7c 63  [version 3.8.3|c
13f0: 68 61 6e 67 65 20 6c 6f 67 5d 20 66 6f 72 20 64  hange log] for d
1400: 65 74 61 69 6c 73 2e 0a 7d 0a 0a 6e 65 77 73 69  etails..}..newsi
1410: 74 65 6d 20 7b 32 30 31 33 2d 31 32 2d 30 36 7d  tem {2013-12-06}
1420: 20 7b 52 65 6c 65 61 73 65 20 33 2e 38 2e 32 7d   {Release 3.8.2}
1430: 20 7b 0a 20 20 3c 70 3e 53 51 4c 69 74 65 20 5b   {.  <p>SQLite [
1440: 76 65 72 73 69 6f 6e 20 33 2e 38 2e 32 5d 20 69  version 3.8.2] i
1450: 73 20 61 20 72 65 67 75 6c 61 72 6c 79 20 73 63  s a regularly sc
1460: 68 65 64 75 6c 65 64 20 6d 61 69 6e 74 65 6e 61  heduled maintena
1470: 6e 63 65 20 72 65 6c 65 61 73 65 2e 0a 20 20 55  nce release..  U
1480: 70 67 72 61 64 69 6e 67 20 66 72 6f 6d 20 74 68  pgrading from th
1490: 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65 61  e previous relea
14a0: 73 65 20 69 73 20 6f 70 74 69 6f 6e 61 6c 2e 0a  se is optional..
14b0: 0a 20 20 3c 70 3e 56 65 72 73 69 6f 6e 20 33 2e  .  <p>Version 3.
14c0: 38 2e 32 20 61 64 64 73 20 73 75 70 70 6f 72 74  8.2 adds support
14d0: 20 66 6f 72 20 5b 57 49 54 48 4f 55 54 20 52 4f   for [WITHOUT RO
14e0: 57 49 44 5d 20 74 61 62 6c 65 73 2e 20 20 54 68  WID] tables.  Th
14f0: 69 73 20 69 73 20 61 0a 20 20 73 69 67 6e 69 66  is is a.  signif
1500: 69 63 61 6e 74 20 65 78 74 65 6e 73 69 6f 6e 20  icant extension 
1510: 74 6f 20 53 51 4c 69 74 65 2e 20 20 44 61 74 61  to SQLite.  Data
1520: 62 61 73 65 20 66 69 6c 65 73 20 74 68 61 74 20  base files that 
1530: 63 6f 6e 74 61 69 6e 20 57 49 54 48 4f 55 54 20  contain WITHOUT 
1540: 52 4f 57 49 44 0a 20 20 74 61 62 6c 65 73 20 61  ROWID.  tables a
1550: 72 65 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 20  re not readable 
1560: 6f 72 20 77 72 69 74 61 62 6c 65 20 62 79 20 70  or writable by p
1570: 72 69 6f 72 20 76 65 72 73 69 6f 6e 73 20 6f 66  rior versions of
1580: 20 53 51 4c 69 74 65 2c 20 68 6f 77 65 76 65 72   SQLite, however
1590: 0a 20 20 64 61 74 61 62 61 73 65 73 20 74 68 61  .  databases tha
15a0: 74 20 64 6f 20 6e 6f 74 20 75 73 65 20 57 49 54  t do not use WIT
15b0: 48 4f 55 54 20 52 4f 57 49 44 20 74 61 62 6c 65  HOUT ROWID table
15c0: 73 20 61 72 65 20 66 75 6c 6c 79 20 62 61 63 6b  s are fully back
15d0: 77 61 72 64 73 20 0a 20 20 61 6e 64 20 66 6f 72  wards .  and for
15e0: 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 6c 65  wards compatible
15f0: 2e 0a 0a 20 20 3c 70 3e 54 68 65 20 33 2e 38 2e  ...  <p>The 3.8.
1600: 32 20 72 65 6c 65 61 73 65 20 63 6f 6e 74 61 69  2 release contai
1610: 6e 73 20 61 20 70 6f 74 65 6e 74 69 61 6c 6c 79  ns a potentially
1620: 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 63 68   incompatible ch
1630: 61 6e 67 65 2e 20 20 49 6e 0a 20 20 61 6c 6c 20  ange.  In.  all 
1640: 70 72 69 6f 72 20 76 65 72 73 69 6f 6e 73 20 6f  prior versions o
1650: 66 20 53 51 4c 69 74 65 2c 20 61 20 5b 63 61 73  f SQLite, a [cas
1660: 74 5d 20 66 72 6f 6d 20 61 20 76 65 72 79 20 6c  t] from a very l
1670: 61 72 67 65 20 70 6f 73 69 74 69 76 65 20 0a 20  arge positive . 
1680: 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20   floating point 
1690: 6e 75 6d 62 65 72 20 69 6e 74 6f 20 61 6e 20 69  number into an i
16a0: 6e 74 65 67 65 72 20 72 65 73 75 6c 74 65 64 20  nteger resulted 
16b0: 69 6e 20 74 68 65 20 6d 6f 73 74 20 6e 65 67 61  in the most nega
16c0: 74 69 76 65 20 69 6e 74 65 67 65 72 2e 0a 20 20  tive integer..  
16d0: 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20  In other words, 
16e0: 43 41 53 54 28 2b 39 39 2e 39 65 39 39 20 74 6f  CAST(+99.9e99 to
16f0: 20 49 4e 54 29 20 77 6f 75 6c 64 20 79 69 65 6c   INT) would yiel
1700: 64 20 2d 39 32 32 33 33 37 32 30 33 36 38 35 34  d -9223372036854
1710: 37 37 35 38 30 38 2e 0a 20 20 54 68 69 73 20 62  775808..  This b
1720: 65 68 61 76 69 6f 72 20 63 61 6d 65 20 61 62 6f  ehavior came abo
1730: 75 74 20 62 65 63 61 75 73 65 20 69 74 20 69 73  ut because it is
1740: 20 77 68 61 74 20 78 38 36 2f 78 36 34 20 68 61   what x86/x64 ha
1750: 72 64 77 61 72 65 20 64 6f 65 73 20 0a 20 20 66  rdware does .  f
1760: 6f 72 20 74 68 65 20 65 71 75 69 76 61 6c 65 6e  or the equivalen
1770: 74 20 63 61 73 74 20 69 6e 20 74 68 65 20 43 20  t cast in the C 
1780: 6c 61 6e 67 75 61 67 65 2e 20 20 42 75 74 20 74  language.  But t
1790: 68 65 20 62 65 68 61 76 69 6f 72 20 69 73 0a 20  he behavior is. 
17a0: 20 62 69 7a 61 72 72 65 2e 20 20 41 6e 64 20 73   bizarre.  And s
17b0: 6f 20 69 74 20 68 61 73 20 62 65 65 6e 20 63 68  o it has been ch
17c0: 61 6e 67 65 64 20 65 66 66 65 63 74 69 76 65 20  anged effective 
17d0: 77 69 74 68 20 74 68 69 73 20 72 65 6c 65 61 73  with this releas
17e0: 65 20 73 6f 20 74 68 61 74 0a 20 20 61 20 63 61  e so that.  a ca
17f0: 73 74 20 66 72 6f 6d 20 61 20 66 6c 6f 61 74 69  st from a floati
1800: 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20  ng point number 
1810: 69 6e 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 20  into an integer 
1820: 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 74 65  returns the inte
1830: 67 65 72 0a 20 20 62 65 74 77 65 65 6e 20 74 68  ger.  between th
1840: 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  e floating point
1850: 20 76 61 6c 75 65 20 61 6e 64 20 7a 65 72 6f 20   value and zero 
1860: 74 68 61 74 20 69 73 20 63 6c 6f 73 65 73 74 20  that is closest 
1870: 74 6f 20 74 68 65 20 66 6c 6f 61 74 69 6e 67 0a  to the floating.
1880: 20 20 70 6f 69 6e 74 20 76 61 6c 75 65 2e 20 20    point value.  
1890: 48 65 6e 63 65 2c 20 43 41 53 54 28 2b 39 39 2e  Hence, CAST(+99.
18a0: 39 65 39 39 20 74 6f 20 49 4e 54 29 20 6e 6f 77  9e99 to INT) now
18b0: 20 72 65 74 75 72 6e 73 20 2b 39 32 32 33 33 37   returns +922337
18c0: 32 30 33 36 38 35 34 37 37 35 38 30 37 2e 0a 20  2036854775807.. 
18d0: 20 53 69 6e 63 65 20 72 6f 75 74 69 6e 65 73 20   Since routines 
18e0: 6c 69 6b 65 20 5b 73 71 6c 69 74 65 33 5f 63 6f  like [sqlite3_co
18f0: 6c 75 6d 6e 5f 69 6e 74 36 34 28 29 5d 20 64 6f  lumn_int64()] do
1900: 20 61 6e 20 69 6d 70 6c 69 63 69 74 20 63 61 73   an implicit cas
1910: 74 20 69 66 20 74 68 65 0a 20 20 76 61 6c 75 65  t if the.  value
1920: 20 62 65 69 6e 67 20 61 63 63 65 73 73 65 64 20   being accessed 
1930: 69 73 20 72 65 61 6c 6c 79 20 61 20 66 6c 6f 61  is really a floa
1940: 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65  ting point numbe
1950: 72 2c 20 74 68 65 79 20 61 72 65 20 61 6c 73 6f  r, they are also
1960: 0a 20 20 61 66 66 65 63 74 65 64 20 62 79 20 74  .  affected by t
1970: 68 69 73 20 63 68 61 6e 67 65 2e 0a 0a 20 20 3c  his change...  <
1980: 70 3e 42 65 73 69 64 65 73 20 74 68 65 20 74 77  p>Besides the tw
1990: 6f 20 63 68 61 6e 67 65 73 20 6d 65 6e 74 69 6f  o changes mentio
19a0: 6e 65 64 20 61 62 6f 76 65 2c 20 74 68 65 20 33  ned above, the 3
19b0: 2e 38 2e 32 20 72 65 6c 65 61 73 65 20 61 6c 73  .8.2 release als
19c0: 6f 20 0a 20 20 69 6e 63 6c 75 64 65 73 20 61 20  o .  includes a 
19d0: 6e 75 6d 62 65 72 20 6f 66 20 70 65 72 66 6f 72  number of perfor
19e0: 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e  mance enhancemen
19f0: 74 73 2e 20 20 54 68 65 0a 20 20 5b 73 6b 69 70  ts.  The.  [skip
1a00: 2d 73 63 61 6e 20 6f 70 74 69 6d 69 7a 61 74 69  -scan optimizati
1a10: 6f 6e 5d 20 69 73 20 6e 6f 77 20 61 76 61 69 6c  on] is now avail
1a20: 61 62 6c 65 20 66 6f 72 20 64 61 74 61 62 61 73  able for databas
1a30: 65 73 20 74 68 61 74 20 68 61 76 65 20 62 65 65  es that have bee
1a40: 6e 0a 20 20 70 72 6f 63 65 73 73 65 64 20 62 79  n.  processed by
1a50: 20 5b 41 4e 41 4c 59 5a 45 5d 2e 20 20 43 6f 6e   [ANALYZE].  Con
1a60: 73 74 61 6e 74 20 53 51 4c 20 66 75 6e 63 74 69  stant SQL functi
1a70: 6f 6e 73 20 61 72 65 20 6e 6f 77 20 66 61 63 74  ons are now fact
1a80: 6f 72 65 64 20 6f 75 74 20 6f 66 0a 20 20 69 6e  ored out of.  in
1a90: 6e 65 72 20 6c 6f 6f 70 73 2c 20 77 68 69 63 68  ner loops, which
1aa0: 20 63 61 6e 20 72 65 73 75 6c 74 20 69 6e 20 61   can result in a
1ab0: 20 73 69 67 6e 69 66 69 63 61 6e 74 20 73 70 65   significant spe
1ac0: 65 64 75 70 20 66 6f 72 20 71 75 65 72 69 65 73  edup for queries
1ad0: 20 74 68 61 74 0a 20 20 63 6f 6e 74 61 69 6e 20   that.  contain 
1ae0: 57 48 45 52 45 20 63 6c 61 75 73 65 20 74 65 72  WHERE clause ter
1af0: 6d 73 20 6c 69 6b 65 20 22 64 61 74 65 3e 64 61  ms like "date>da
1b00: 74 65 74 69 6d 65 28 27 6e 6f 77 27 2c 27 2d 32  tetime('now','-2
1b10: 20 64 61 79 73 27 29 22 2e 20 20 41 6e 64 0a 20   days')".  And. 
1b20: 20 76 61 72 69 6f 75 73 20 68 69 67 68 2d 72 75   various high-ru
1b30: 6e 6e 65 72 20 69 6e 74 65 72 6e 61 6c 20 72 6f  nner internal ro
1b40: 75 74 69 6e 65 73 20 68 61 76 65 20 62 65 65 6e  utines have been
1b50: 20 72 65 66 61 63 74 6f 72 65 64 20 66 6f 72 20   refactored for 
1b60: 72 65 64 75 63 65 64 0a 20 20 43 50 55 20 6c 6f  reduced.  CPU lo
1b70: 61 64 2e 0a 7d 0a 0a 6e 65 77 73 69 74 65 6d 20  ad..}..newsitem 
1b80: 7b 32 30 31 33 2d 31 30 2d 31 37 7d 20 7b 52 65  {2013-10-17} {Re
1b90: 6c 65 61 73 65 20 33 2e 38 2e 31 7d 20 7b 0a 20  lease 3.8.1} {. 
1ba0: 20 3c 70 3e 53 51 4c 69 74 65 20 5b 76 65 72 73   <p>SQLite [vers
1bb0: 69 6f 6e 20 33 2e 38 2e 31 5d 20 69 73 20 61 20  ion 3.8.1] is a 
1bc0: 72 65 67 75 6c 61 72 6c 79 20 73 63 68 65 64 75  regularly schedu
1bd0: 6c 65 64 20 6d 61 69 6e 74 65 6e 61 6e 63 65 20  led maintenance 
1be0: 72 65 6c 65 61 73 65 2e 0a 20 20 55 70 67 72 61  release..  Upgra
1bf0: 64 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 70 72  ding from the pr
1c00: 65 76 69 6f 75 73 20 72 65 6c 65 61 73 65 20 69  evious release i
1c10: 73 20 6f 70 74 69 6f 6e 61 6c 2c 20 74 68 6f 75  s optional, thou
1c20: 67 68 20 79 6f 75 20 73 68 6f 75 6c 64 20 75 70  gh you should up
1c30: 67 72 61 64 65 0a 20 20 69 66 20 79 6f 75 20 61  grade.  if you a
1c40: 72 65 20 75 73 69 6e 67 20 5b 70 61 72 74 69 61  re using [partia
1c50: 6c 20 69 6e 64 69 63 65 73 5d 20 61 73 20 74 68  l indices] as th
1c60: 65 72 65 20 77 61 73 20 61 20 0a 20 20 5b 68 74  ere was a .  [ht
1c70: 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e  tp://www.sqlite.
1c80: 6f 72 67 2f 73 72 63 2f 69 6e 66 6f 2f 61 35 63  org/src/info/a5c
1c90: 38 65 64 36 36 63 61 7c 62 75 67 5d 20 72 65 6c  8ed66ca|bug] rel
1ca0: 61 74 65 64 20 74 6f 20 70 61 72 74 69 61 6c 0a  ated to partial.
1cb0: 20 20 69 6e 64 69 63 65 73 20 69 6e 20 74 68 65    indices in the
1cc0: 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65 61 73   previous releas
1cd0: 65 20 74 68 61 74 20 63 6f 75 6c 64 20 72 65 73  e that could res
1ce0: 75 6c 74 20 69 6e 20 61 6e 20 69 6e 63 6f 72 72  ult in an incorr
1cf0: 65 63 74 20 61 6e 73 77 65 72 0a 20 20 66 6f 72  ect answer.  for
1d00: 20 63 6f 75 6e 74 28 2a 29 20 71 75 65 72 69 65   count(*) querie
1d10: 73 2e 0a 0a 20 20 3c 70 3e 54 68 65 20 5b 6e 65  s...  <p>The [ne
1d20: 78 74 20 67 65 6e 65 72 61 74 69 6f 6e 20 71 75  xt generation qu
1d30: 65 72 79 20 70 6c 61 6e 6e 65 72 5d 20 74 68 61  ery planner] tha
1d40: 74 20 77 61 73 20 70 72 65 6d 69 65 72 65 64 20  t was premiered 
1d50: 69 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 0a  in the previous.
1d60: 20 20 72 65 6c 65 61 73 65 20 63 6f 6e 74 69 6e    release contin
1d70: 75 65 73 20 74 6f 20 77 6f 72 6b 20 77 65 6c 6c  ues to work well
1d80: 2e 20 20 0a 20 20 54 68 65 20 6e 65 77 20 71 75  .  .  The new qu
1d90: 65 72 79 20 70 6c 61 6e 6e 65 72 20 68 61 73 20  ery planner has 
1da0: 62 65 65 6e 20 74 77 65 61 6b 65 64 20 73 6c 69  been tweaked sli
1db0: 67 68 74 6c 79 0a 20 20 69 6e 20 74 68 65 20 63  ghtly.  in the c
1dc0: 75 72 72 65 6e 74 20 72 65 6c 65 61 73 65 20 74  urrent release t
1dd0: 6f 20 68 65 6c 70 20 69 74 20 6d 61 6b 65 20 62  o help it make b
1de0: 65 74 74 65 72 20 64 65 63 69 73 69 6f 6e 73 20  etter decisions 
1df0: 69 6e 20 73 6f 6d 65 0a 20 20 63 61 73 65 73 2c  in some.  cases,
1e00: 20 62 75 74 20 69 73 20 6c 61 72 67 65 6c 79 20   but is largely 
1e10: 75 6e 63 68 61 6e 67 65 64 2e 20 20 54 77 6f 20  unchanged.  Two 
1e20: 6e 65 77 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e  new SQL function
1e30: 73 2c 20 5b 6c 69 6b 65 6c 69 68 6f 6f 64 28 29  s, [likelihood()
1e40: 5d 20 61 6e 64 0a 20 20 5b 75 6e 6c 69 6b 65 6c  ] and.  [unlikel
1e50: 79 28 29 5d 2c 20 68 61 76 65 20 62 65 65 6e 20  y()], have been 
1e60: 61 64 64 65 64 20 74 6f 20 61 6c 6c 6f 77 20 64  added to allow d
1e70: 65 76 65 6c 6f 70 65 72 73 20 74 6f 20 67 69 76  evelopers to giv
1e80: 65 20 68 69 6e 74 73 20 74 6f 20 74 68 65 0a 20  e hints to the. 
1e90: 20 71 75 65 72 79 20 70 6c 61 6e 6e 65 72 20 77   query planner w
1ea0: 69 74 68 6f 75 74 20 66 6f 72 63 69 6e 67 20 74  ithout forcing t
1eb0: 68 65 20 71 75 65 72 79 20 70 6c 61 6e 6e 65 72  he query planner
1ec0: 20 69 6e 74 6f 20 61 20 70 61 72 74 69 63 75 6c   into a particul
1ed0: 61 72 20 64 65 63 69 73 69 6f 6e 2e 0a 0a 20 20  ar decision...  
1ee0: 3c 70 3e 56 65 72 73 69 6f 6e 20 33 2e 38 2e 31  <p>Version 3.8.1
1ef0: 20 69 73 20 74 68 65 20 66 69 72 73 74 20 53 51   is the first SQ
1f00: 4c 69 74 65 20 72 65 6c 65 61 73 65 20 74 6f 20  Lite release to 
1f10: 74 61 6b 65 20 69 6e 74 6f 20 61 63 63 6f 75 6e  take into accoun
1f20: 74 20 74 68 65 0a 20 20 65 73 74 69 6d 61 74 65  t the.  estimate
1f30: 64 20 73 69 7a 65 20 6f 66 20 74 61 62 6c 65 20  d size of table 
1f40: 61 6e 64 20 69 6e 64 65 78 20 72 6f 77 73 20 77  and index rows w
1f50: 68 65 6e 20 63 68 6f 6f 73 69 6e 67 20 61 20 71  hen choosing a q
1f60: 75 65 72 79 20 70 6c 61 6e 2e 0a 20 20 52 6f 77  uery plan..  Row
1f70: 20 73 69 7a 65 20 65 73 74 69 6d 61 74 65 73 20   size estimates 
1f80: 61 72 65 20 62 61 73 65 64 20 6f 6e 20 74 68 65  are based on the
1f90: 20 64 65 63 6c 61 72 65 64 20 64 61 74 61 74 79   declared dataty
1fa0: 70 65 73 20 6f 66 20 63 6f 6c 75 6d 6e 73 2e 0a  pes of columns..
1fb0: 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61    For example, a
1fc0: 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 79 70 65 20   column of type 
1fd0: 56 41 52 43 48 41 52 28 31 30 30 30 29 20 69 73  VARCHAR(1000) is
1fe0: 20 61 73 73 75 6d 65 64 0a 20 20 74 6f 20 75 73   assumed.  to us
1ff0: 65 20 6d 75 63 68 20 6d 6f 72 65 20 73 70 61 63  e much more spac
2000: 65 20 74 68 61 6e 20 61 20 63 6f 6c 75 6d 6e 20  e than a column 
2010: 6f 66 20 74 79 70 65 20 49 4e 54 2e 20 20 54 68  of type INT.  Th
2020: 65 20 64 61 74 61 74 79 70 65 2d 62 61 73 65 64  e datatype-based
2030: 0a 20 20 72 6f 77 20 73 69 7a 65 20 65 73 74 69  .  row size esti
2040: 6d 61 74 65 20 63 61 6e 20 62 65 0a 20 20 6f 76  mate can be.  ov
2050: 65 72 72 69 64 64 65 6e 20 62 79 20 61 70 70 65  erridden by appe
2060: 6e 64 69 6e 67 20 61 20 74 65 72 6d 20 6f 66 20  nding a term of 
2070: 74 68 65 20 66 6f 72 6d 20 22 73 7a 3d 4e 4e 4e  the form "sz=NNN
2080: 22 20 28 77 68 65 72 65 20 4e 4e 4e 20 69 73 20  " (where NNN is 
2090: 74 68 65 0a 20 20 61 76 65 72 61 67 65 20 72 6f  the.  average ro
20a0: 77 20 73 69 7a 65 20 69 6e 20 62 79 74 65 73 29  w size in bytes)
20b0: 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74   to the end of t
20c0: 68 65 20 5b 73 71 6c 69 74 65 5f 73 74 61 74 31  he [sqlite_stat1
20d0: 7c 73 71 6c 69 74 65 5f 73 74 61 74 31 2e 73 74  |sqlite_stat1.st
20e0: 61 74 5d 0a 20 20 72 65 63 6f 72 64 20 66 6f 72  at].  record for
20f0: 20 61 20 74 61 62 6c 65 20 6f 72 20 69 6e 64 65   a table or inde
2100: 78 2e 20 20 43 75 72 72 65 6e 74 6c 79 2c 20 72  x.  Currently, r
2110: 6f 77 20 73 69 7a 65 73 20 61 72 65 20 6f 6e 6c  ow sizes are onl
2120: 79 20 75 73 65 64 20 74 6f 20 68 65 6c 70 20 74  y used to help t
2130: 68 65 0a 20 20 71 75 65 72 79 20 70 6c 61 6e 6e  he.  query plann
2140: 65 72 20 63 68 6f 6f 73 65 20 62 65 74 77 65 65  er choose betwee
2150: 6e 20 61 20 74 61 62 6c 65 20 6f 72 20 6f 6e 65  n a table or one
2160: 20 6f 66 20 69 74 73 20 69 6e 64 69 63 65 73 20   of its indices 
2170: 77 68 65 6e 20 64 6f 69 6e 67 20 61 0a 20 20 74  when doing a.  t
2180: 61 62 6c 65 20 73 63 61 6e 20 6f 72 20 61 20 63  able scan or a c
2190: 6f 75 6e 74 28 2a 29 20 6f 70 65 72 61 74 69 6f  ount(*) operatio
21a0: 6e 2c 20 74 68 6f 75 67 68 20 66 75 74 75 72 65  n, though future
21b0: 20 72 65 6c 65 61 73 65 73 20 61 72 65 20 6c 69   releases are li
21c0: 6b 65 6c 79 0a 20 20 74 6f 20 75 73 65 20 74 68  kely.  to use th
21d0: 65 20 65 73 74 69 6d 61 74 65 64 20 72 6f 77 20  e estimated row 
21e0: 73 69 7a 65 20 69 6e 20 6f 74 68 65 72 20 63 6f  size in other co
21f0: 6e 74 65 78 74 73 20 61 73 20 77 65 6c 6c 2e 20  ntexts as well. 
2200: 20 54 68 65 20 6e 65 77 0a 20 20 5b 50 52 41 47   The new.  [PRAG
2210: 4d 41 20 73 74 61 74 73 5d 20 73 74 61 74 65 6d  MA stats] statem
2220: 65 6e 74 20 63 61 6e 20 62 65 20 75 73 65 64 20  ent can be used 
2230: 74 6f 20 76 69 65 77 20 72 6f 77 20 73 69 7a 65  to view row size
2240: 20 65 73 74 69 6d 61 74 65 73 2e 0a 0a 20 20 3c   estimates...  <
2250: 70 3e 56 65 72 73 69 6f 6e 20 33 2e 38 2e 31 20  p>Version 3.8.1 
2260: 61 64 64 73 20 74 68 65 20 5b 53 51 4c 49 54 45  adds the [SQLITE
2270: 5f 45 4e 41 42 4c 45 5f 53 54 41 54 34 5d 20 63  _ENABLE_STAT4] c
2280: 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69  ompile-time opti
2290: 6f 6e 2e 0a 20 20 53 54 41 54 34 20 69 73 20 76  on..  STAT4 is v
22a0: 65 72 79 20 73 69 6d 69 6c 61 72 20 74 6f 20 53  ery similar to S
22b0: 54 41 54 33 20 69 6e 20 74 68 61 74 20 69 74 20  TAT3 in that it 
22c0: 75 73 65 73 20 73 61 6d 70 6c 65 73 20 66 72 6f  uses samples fro
22d0: 6d 20 69 6e 64 69 63 65 73 20 74 6f 20 0a 20 20  m indices to .  
22e0: 74 72 79 20 74 6f 20 67 75 65 73 73 20 68 6f 77  try to guess how
22f0: 20 6d 61 6e 79 20 72 6f 77 73 20 6f 66 20 74 68   many rows of th
2300: 65 20 69 6e 64 65 78 20 77 69 6c 6c 20 62 65 20  e index will be 
2310: 73 61 74 69 73 66 79 20 62 79 20 57 48 45 52 45  satisfy by WHERE
2320: 20 63 6c 61 75 73 65 0a 20 20 63 6f 6e 73 74 72   clause.  constr
2330: 61 69 6e 74 73 2e 20 20 54 68 65 20 64 69 66 66  aints.  The diff
2340: 65 72 65 6e 63 65 20 69 73 20 74 68 61 74 20 53  erence is that S
2350: 54 41 54 34 20 73 61 6d 70 6c 65 73 20 61 6c 6c  TAT4 samples all
2360: 20 63 6f 6c 75 6d 6e 73 20 6f 66 20 74 68 65 0a   columns of the.
2370: 20 20 69 6e 64 65 78 20 77 68 65 72 65 61 73 20    index whereas 
2380: 74 68 65 20 6f 6c 64 65 72 20 53 54 41 54 33 20  the older STAT3 
2390: 6f 6e 6c 79 20 73 61 6d 70 6c 65 64 20 74 68 65  only sampled the
23a0: 20 6c 65 66 74 2d 6d 6f 73 74 20 63 6f 6c 75 6d   left-most colum
23b0: 6e 2e 20 20 55 73 65 72 73 0a 20 20 6f 66 20 53  n.  Users.  of S
23c0: 54 41 54 33 20 61 72 65 20 65 6e 63 6f 75 72 61  TAT3 are encoura
23d0: 67 65 64 20 74 6f 20 75 70 67 72 61 64 65 20 74  ged to upgrade t
23e0: 6f 20 53 54 41 54 34 2e 20 20 41 70 70 6c 69 63  o STAT4.  Applic
23f0: 61 74 69 6f 6e 20 64 65 76 65 6c 6f 70 65 72 73  ation developers
2400: 20 73 68 6f 75 6c 64 0a 20 20 75 73 65 20 53 54   should.  use ST
2410: 41 54 33 20 61 6e 64 20 53 54 41 54 34 20 77 69  AT3 and STAT4 wi
2420: 74 68 20 63 61 75 74 69 6f 6e 20 73 69 6e 63 65  th caution since
2430: 20 62 6f 74 68 20 6f 70 74 69 6f 6e 73 2c 20 62   both options, b
2440: 79 20 64 65 73 69 67 6e 2c 20 76 69 6f 6c 61 74  y design, violat
2450: 65 20 0a 20 20 74 68 65 20 5b 71 75 65 72 79 20  e .  the [query 
2460: 70 6c 61 6e 6e 65 72 20 73 74 61 62 69 6c 69 74  planner stabilit
2470: 79 20 67 75 61 72 61 6e 74 65 65 5d 2c 20 6d 61  y guarantee], ma
2480: 6b 69 6e 67 20 69 74 20 6d 6f 72 65 20 64 69 66  king it more dif
2490: 66 69 63 75 6c 74 20 74 6f 20 65 6e 73 75 72 65  ficult to ensure
24a0: 0a 20 20 75 6e 69 66 6f 72 6d 20 70 65 72 66 6f  .  uniform perfo
24b0: 72 6d 61 6e 63 65 20 69 73 20 77 69 64 65 6c 79  rmance is widely
24c0: 2d 64 65 70 6c 6f 79 65 64 20 61 6e 64 20 6d 61  -deployed and ma
24d0: 73 73 2d 70 72 6f 64 75 63 65 64 20 65 6d 62 65  ss-produced embe
24e0: 64 64 65 64 0a 20 20 61 70 70 6c 69 63 61 74 69  dded.  applicati
24f0: 6f 6e 73 2e 0a 7d 0a 0a 6e 65 77 73 69 74 65 6d  ons..}..newsitem
2500: 20 7b 32 30 31 33 2d 30 39 2d 30 33 7d 20 7b 52   {2013-09-03} {R
2510: 65 6c 65 61 73 65 20 33 2e 38 2e 30 2e 32 7d 20  elease 3.8.0.2} 
2520: 7b 0a 20 20 3c 70 3e 53 51 4c 69 74 65 20 5b 76  {.  <p>SQLite [v
2530: 65 72 73 69 6f 6e 20 33 2e 38 2e 30 2e 32 5d 20  ersion 3.8.0.2] 
2540: 63 6f 6e 74 61 69 6e 73 20 61 20 6f 6e 65 2d 6c  contains a one-l
2550: 69 6e 65 20 66 69 78 20 74 6f 20 61 20 62 75 67  ine fix to a bug
2560: 20 69 6e 20 74 68 65 0a 20 20 6e 65 77 20 6f 70   in the.  new op
2570: 74 69 6d 69 7a 61 74 69 6f 6e 20 74 68 61 74 20  timization that 
2580: 74 72 69 65 73 20 74 6f 20 6f 6d 69 74 20 75 6e  tries to omit un
2590: 75 73 65 64 20 4c 45 46 54 20 4a 4f 49 4e 73 20  used LEFT JOINs 
25a0: 66 72 6f 6d 20 61 20 71 75 65 72 79 2e 0a 7d 0a  from a query..}.
25b0: 0a 6e 65 77 73 69 74 65 6d 20 7b 32 30 31 33 2d  .newsitem {2013-
25c0: 30 38 2d 32 39 7d 20 7b 52 65 6c 65 61 73 65 20  08-29} {Release 
25d0: 33 2e 38 2e 30 2e 31 7d 20 7b 0a 20 20 3c 70 3e  3.8.0.1} {.  <p>
25e0: 53 51 4c 69 74 65 20 5b 76 65 72 73 69 6f 6e 20  SQLite [version 
25f0: 33 2e 38 2e 30 2e 31 5d 20 66 69 78 65 73 20 73  3.8.0.1] fixes s
2600: 6f 6d 65 20 6f 62 73 63 75 72 65 20 62 75 67 73  ome obscure bugs
2610: 20 74 68 61 74 20 77 65 72 65 20 75 6e 63 6f 76   that were uncov
2620: 65 72 65 64 20 62 79 0a 20 20 75 73 65 72 73 20  ered by.  users 
2630: 69 6e 20 74 68 65 20 33 2e 38 2e 30 20 72 65 6c  in the 3.8.0 rel
2640: 65 61 73 65 2e 20 20 43 68 61 6e 67 65 73 20 66  ease.  Changes f
2650: 72 6f 6d 20 33 2e 38 2e 30 20 61 72 65 20 6d 69  rom 3.8.0 are mi
2660: 6e 69 6d 61 6c 2e 0a 7d 0a 0a 6e 65 77 73 69 74  nimal..}..newsit
2670: 65 6d 20 7b 32 30 31 33 2d 30 38 2d 32 36 7d 20  em {2013-08-26} 
2680: 7b 52 65 6c 65 61 73 65 20 33 2e 38 2e 30 7d 20  {Release 3.8.0} 
2690: 7b 0a 20 20 3c 62 3e 44 6f 20 6e 6f 74 20 66 65  {.  <b>Do not fe
26a0: 61 72 20 74 68 65 20 7a 65 72 6f 21 3c 2f 62 3e  ar the zero!</b>
26b0: 0a 0a 20 20 3c 70 3e 53 51 4c 69 74 65 20 5b 76  ..  <p>SQLite [v
26c0: 65 72 73 69 6f 6e 20 33 2e 38 2e 30 5d 20 6d 69  ersion 3.8.0] mi
26d0: 67 68 74 20 65 61 73 69 6c 79 20 68 61 76 65 20  ght easily have 
26e0: 62 65 65 6e 20 63 61 6c 6c 65 64 20 22 33 2e 37  been called "3.7
26f0: 2e 31 38 22 20 69 6e 73 74 65 61 64 2e 0a 20 20  .18" instead..  
2700: 48 6f 77 65 76 65 72 2c 20 74 68 69 73 20 72 65  However, this re
2710: 6c 65 61 73 65 20 66 65 61 74 75 72 65 73 20 74  lease features t
2720: 68 65 20 63 75 74 6f 76 65 72 20 6f 66 20 74 68  he cutover of th
2730: 65 0a 20 20 5b 6e 65 78 74 20 67 65 6e 65 72 61  e.  [next genera
2740: 74 69 6f 6e 20 71 75 65 72 79 20 70 6c 61 6e 6e  tion query plann
2750: 65 72 5d 20 6f 72 20 5b 4e 47 51 50 5d 2c 20 61  er] or [NGQP], a
2760: 6e 64 20 74 68 65 72 65 20 69 73 20 61 20 73 6d  nd there is a sm
2770: 61 6c 6c 20 63 68 61 6e 63 65 20 6f 66 0a 20 20  all chance of.  
2780: 5b 68 61 7a 61 72 64 73 20 6f 66 20 75 70 67 72  [hazards of upgr
2790: 61 64 69 6e 67 20 74 6f 20 74 68 65 20 4e 47 51  ading to the NGQ
27a0: 50 20 7c 20 62 72 65 61 6b 69 6e 67 20 6c 65 67  P | breaking leg
27b0: 61 63 79 20 70 72 6f 67 72 61 6d 73 5d 20 74 68  acy programs] th
27c0: 61 74 0a 20 20 72 65 6c 79 20 6f 6e 20 75 6e 64  at.  rely on und
27d0: 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20  efined behavior 
27e0: 69 6e 20 70 72 65 76 69 6f 75 73 20 53 51 4c 69  in previous SQLi
27f0: 74 65 20 72 65 6c 65 61 73 65 73 2c 20 61 6e 64  te releases, and
2800: 20 73 6f 20 74 68 65 0a 20 20 6d 69 6e 6f 72 20   so the.  minor 
2810: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 77  version number w
2820: 61 73 20 69 6e 63 72 65 6d 65 6e 74 65 64 20 66  as incremented f
2830: 6f 72 20 74 68 61 74 20 72 65 61 73 6f 6e 2e 0a  or that reason..
2840: 20 20 42 75 74 20 74 68 65 20 72 69 73 6b 73 20    But the risks 
2850: 61 72 65 20 6c 6f 77 20 61 6e 64 20 74 68 65 72  are low and ther
2860: 65 20 69 73 20 61 20 5b 71 75 65 72 79 20 70 6c  e is a [query pl
2870: 61 6e 6e 65 72 20 63 68 65 63 6b 6c 69 73 74 5d  anner checklist]
2880: 20 69 73 20 0a 20 20 61 76 61 69 6c 61 62 6c 65   is .  available
2890: 20 74 6f 20 61 70 70 6c 69 63 61 74 69 6f 6e 20   to application 
28a0: 64 65 76 65 6c 6f 70 65 72 73 20 74 6f 20 61 69  developers to ai
28b0: 64 20 69 6e 20 61 76 6f 69 64 69 6e 67 20 70 72  d in avoiding pr
28c0: 6f 62 6c 65 6d 73 2e 0a 0a 20 20 3c 70 3e 53 51  oblems...  <p>SQ
28d0: 4c 69 74 65 20 5b 76 65 72 73 69 6f 6e 20 33 2e  Lite [version 3.
28e0: 38 2e 30 5d 20 69 73 20 61 63 74 75 61 6c 6c 79  8.0] is actually
28f0: 20 6f 6e 65 20 6f 66 20 74 68 65 20 6d 6f 73 74   one of the most
2900: 20 68 65 61 76 69 6c 79 20 74 65 73 74 65 64 0a   heavily tested.
2910: 20 20 53 51 4c 69 74 65 20 72 65 6c 65 61 73 65    SQLite release
2920: 73 20 65 76 65 72 2e 20 20 54 68 6f 75 73 61 6e  s ever.  Thousan
2930: 64 73 20 61 6e 64 20 74 68 6f 75 73 61 6e 64 73  ds and thousands
2940: 20 6f 66 20 62 65 74 61 20 63 6f 70 69 65 73 20   of beta copies 
2950: 68 61 76 65 0a 20 20 62 65 20 64 6f 77 6e 6c 6f  have.  be downlo
2960: 61 64 65 64 2c 20 61 6e 64 20 70 72 65 73 75 6d  aded, and presum
2970: 61 62 6c 79 20 74 65 73 74 65 64 2c 20 61 6e 64  ably tested, and
2980: 20 74 68 65 72 65 20 68 61 76 65 20 62 65 65 6e   there have been
2990: 20 6e 6f 20 70 72 6f 62 6c 65 6d 0a 20 20 72 65   no problem.  re
29a0: 70 6f 72 74 73 2e 0a 0a 20 20 3c 70 3e 49 6e 20  ports...  <p>In 
29b0: 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 20  addition to the 
29c0: 5b 6e 65 78 74 20 67 65 6e 65 72 61 74 69 6f 6e  [next generation
29d0: 20 71 75 65 72 79 20 70 6c 61 6e 6e 65 72 5d 2c   query planner],
29e0: 20 74 68 65 20 33 2e 38 2e 30 20 72 65 6c 65 61   the 3.8.0 relea
29f0: 73 65 0a 20 20 61 64 64 73 20 73 75 70 70 6f 72  se.  adds suppor
2a00: 74 20 66 6f 72 20 5b 70 61 72 74 69 61 6c 20 69  t for [partial i
2a10: 6e 64 69 63 65 73 5d 2c 20 61 73 20 77 65 6c 6c  ndices], as well
2a20: 20 61 73 20 73 65 76 65 72 61 6c 20 6f 74 68 65   as several othe
2a30: 72 20 6e 65 77 20 66 65 61 74 75 72 65 73 2e 0a  r new features..
2a40: 20 20 53 65 65 20 74 68 65 20 5b 76 65 72 73 69    See the [versi
2a50: 6f 6e 20 33 2e 38 2e 30 20 7c 20 63 68 61 6e 67  on 3.8.0 | chang
2a60: 65 20 6c 6f 67 5d 20 66 6f 72 20 66 75 72 74 68  e log] for furth
2a70: 65 72 20 64 65 74 61 69 6c 2e 0a 7d 0a 0a 6e 65  er detail..}..ne
2a80: 77 73 69 74 65 6d 20 7b 32 30 31 33 2d 30 35 2d  wsitem {2013-05-
2a90: 32 30 7d 20 7b 52 65 6c 65 61 73 65 20 33 2e 37  20} {Release 3.7
2aa0: 2e 31 37 7d 20 7b 0a 20 20 53 51 4c 69 74 65 20  .17} {.  SQLite 
2ab0: 5b 76 65 72 73 69 6f 6e 20 33 2e 37 2e 31 37 5d  [version 3.7.17]
2ac0: 20 69 73 20 61 20 72 65 67 75 6c 61 72 6c 79 20   is a regularly 
2ad0: 73 63 68 65 64 75 6c 65 20 6d 61 69 6e 74 65 6e  schedule mainten
2ae0: 61 6e 63 65 20 72 65 6c 65 61 73 65 2e 0a 20 20  ance release..  
2af0: 56 69 73 69 74 20 74 68 65 20 5b 76 65 72 73 69  Visit the [versi
2b00: 6f 6e 20 33 2e 37 2e 31 37 20 7c 20 63 68 61 6e  on 3.7.17 | chan
2b10: 67 65 20 6c 6f 67 5d 20 66 6f 72 20 61 20 66 75  ge log] for a fu
2b20: 6c 6c 20 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f  ll explanation o
2b30: 66 20 74 68 65 0a 20 20 63 68 61 6e 67 65 73 20  f the.  changes 
2b40: 69 6e 20 74 68 69 73 20 72 65 6c 65 61 73 65 2e  in this release.
2b50: 0a 0a 20 20 54 68 65 72 65 20 61 72 65 20 6d 61  ..  There are ma
2b60: 6e 79 20 62 75 67 20 66 69 78 65 73 20 69 6e 20  ny bug fixes in 
2b70: 76 65 72 73 69 6f 6e 20 33 2e 37 2e 31 37 2e 20  version 3.7.17. 
2b80: 20 42 75 74 20 74 68 69 73 20 64 6f 65 73 20 6e   But this does n
2b90: 6f 74 20 69 6e 64 69 63 61 74 65 0a 20 20 74 68  ot indicate.  th
2ba0: 61 74 20 33 2e 37 2e 31 36 20 77 61 73 20 61 20  at 3.7.16 was a 
2bb0: 70 72 6f 62 6c 65 6d 61 74 69 63 20 72 65 6c 65  problematic rele
2bc0: 61 73 65 2e 20 20 41 6c 6c 20 6f 66 20 74 68 65  ase.  All of the
2bd0: 20 62 75 67 73 20 69 6e 20 33 2e 37 2e 31 37 20   bugs in 3.7.17 
2be0: 61 72 65 20 0a 20 20 6f 62 73 63 75 72 65 20 61  are .  obscure a
2bf0: 6e 64 20 61 72 65 20 75 6e 6c 69 6b 65 6c 79 20  nd are unlikely 
2c00: 74 6f 20 69 6d 70 61 63 74 20 61 6e 79 20 70 61  to impact any pa
2c10: 72 74 69 63 75 6c 61 72 20 61 70 70 6c 69 63 61  rticular applica
2c20: 74 69 6f 6e 2e 20 20 41 6e 64 20 6d 6f 73 74 20  tion.  And most 
2c30: 0a 20 20 6f 66 20 74 68 65 20 62 75 67 73 20 74  .  of the bugs t
2c40: 68 61 74 20 61 72 65 20 66 69 78 65 64 20 69 6e  hat are fixed in
2c50: 20 33 2e 37 2e 31 37 20 70 72 65 64 61 74 65 20   3.7.17 predate 
2c60: 33 2e 37 2e 31 36 20 61 6e 64 20 68 61 76 65 20  3.7.16 and have 
2c70: 62 65 65 6e 20 69 6e 20 0a 20 20 74 68 65 20 63  been in .  the c
2c80: 6f 64 65 20 66 6f 72 20 79 65 61 72 73 20 77 69  ode for years wi
2c90: 74 68 6f 75 74 20 65 76 65 72 20 62 65 66 6f 72  thout ever befor
2ca0: 65 20 62 65 69 6e 67 20 6e 6f 74 69 63 65 64 2e  e being noticed.
2cb0: 0a 20 20 4e 65 76 65 72 74 68 65 6c 65 73 73 2c  .  Nevertheless,
2cc0: 20 64 75 65 20 74 6f 20 74 68 65 20 6c 61 72 67   due to the larg
2cd0: 65 20 6e 75 6d 62 65 72 20 6f 66 20 66 69 78 65  e number of fixe
2ce0: 73 2c 0a 20 20 61 6c 6c 20 75 73 65 72 73 20 61  s,.  all users a
2cf0: 72 65 20 65 6e 63 6f 75 72 61 67 65 64 20 74 6f  re encouraged to
2d00: 20 75 70 67 72 61 64 65 20 77 68 65 6e 20 70 6f   upgrade when po
2d10: 73 73 69 62 6c 65 2e 0a 7d 0a 0a 6e 65 77 73 69  ssible..}..newsi
2d20: 74 65 6d 20 7b 32 30 31 33 2d 30 34 2d 31 32 7d  tem {2013-04-12}
2d30: 20 7b 52 65 6c 65 61 73 65 20 33 2e 37 2e 31 36   {Release 3.7.16
2d40: 2e 32 7d 20 7b 0a 20 20 53 51 4c 69 74 65 20 5b  .2} {.  SQLite [
2d50: 76 65 72 73 69 6f 6e 20 33 2e 37 2e 31 36 2e 32  version 3.7.16.2
2d60: 5d 20 66 69 78 65 73 20 61 20 6c 6f 6e 67 2d 73  ] fixes a long-s
2d70: 74 61 6e 64 69 6e 67 20 66 6c 61 77 20 69 6e 20  tanding flaw in 
2d80: 74 68 65 20 57 69 6e 64 6f 77 73 0a 20 20 4f 53  the Windows.  OS
2d90: 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74 0a   interface that.
2da0: 20 20 63 61 6e 20 72 65 73 75 6c 74 20 69 6e 20    can result in 
2db0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
2dc0: 69 6f 6e 20 75 6e 64 65 72 20 61 20 72 61 72 65  ion under a rare
2dd0: 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 2e   race condition.
2de0: 0a 20 20 53 65 65 20 5b 68 74 74 70 3a 2f 2f 77  .  See [http://w
2df0: 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 73 72  ww.sqlite.org/sr
2e00: 63 2f 69 6e 66 6f 2f 37 66 66 33 31 32 30 65 34  c/info/7ff3120e4
2e10: 66 5d 20 66 6f 72 20 61 20 66 75 6c 6c 20 64 65  f] for a full de
2e20: 73 63 72 69 70 74 69 6f 6e 0a 20 20 6f 66 20 74  scription.  of t
2e30: 68 65 20 70 72 6f 62 6c 65 6d 2e 0a 0a 20 20 41  he problem...  A
2e40: 73 20 66 61 72 20 61 73 20 77 65 20 6b 6e 6f 77  s far as we know
2e50: 2c 20 74 68 69 73 20 62 75 67 20 68 61 73 20 6e  , this bug has n
2e60: 65 76 65 72 20 62 65 65 6e 20 73 65 65 6e 20 69  ever been seen i
2e70: 6e 20 74 68 65 20 77 69 6c 64 2e 20 20 54 68 65  n the wild.  The
2e80: 0a 20 20 70 72 6f 62 6c 65 6d 20 77 61 73 20 64  .  problem was d
2e90: 69 73 63 6f 76 65 72 65 64 20 62 79 20 74 68 65  iscovered by the
2ea0: 20 53 51 4c 69 74 65 20 64 65 76 65 6c 6f 70 65   SQLite develope
2eb0: 72 73 20 77 68 69 6c 65 20 77 72 69 74 69 6e 67  rs while writing
2ec0: 20 73 74 72 65 73 73 20 74 65 73 74 73 0a 20 20   stress tests.  
2ed0: 66 6f 72 20 61 20 73 65 70 61 72 61 74 65 20 63  for a separate c
2ee0: 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 53 51 4c 69  omponent of SQLi
2ef0: 74 65 2e 20 20 54 68 6f 73 65 20 73 74 72 65 73  te.  Those stres
2f00: 73 20 74 65 73 74 73 20 68 61 76 65 20 6e 6f 74  s tests have not
2f10: 20 79 65 74 0a 20 20 66 6f 75 6e 64 20 61 6e 79   yet.  found any
2f20: 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 74   problems with t
2f30: 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 68 65  he component the
2f40: 79 20 77 65 72 65 20 69 6e 74 65 6e 64 65 64 20  y were intended 
2f50: 74 6f 20 76 65 72 69 66 79 2c 20 62 75 74 20 0a  to verify, but .
2f60: 20 20 74 68 65 79 20 64 69 64 20 66 69 6e 64 20    they did find 
2f70: 74 68 65 20 62 75 67 20 77 68 69 63 68 20 69 73  the bug which is
2f80: 20 74 68 65 20 73 75 62 6a 65 63 74 20 6f 66 20   the subject of 
2f90: 74 68 69 73 20 70 61 74 63 68 20 72 65 6c 65 61  this patch relea
2fa0: 73 65 2e 0a 0a 20 20 4f 74 68 65 72 20 74 68 61  se...  Other tha
2fb0: 6e 20 75 70 64 61 74 65 73 20 74 6f 20 76 65 72  n updates to ver
2fc0: 73 69 6f 6e 20 6e 75 6d 62 65 72 73 2c 20 74 68  sion numbers, th
2fd0: 65 20 6f 6e 6c 79 20 64 69 66 66 65 72 65 6e 63  e only differenc
2fe0: 65 20 62 65 74 77 65 65 6e 20 74 68 69 73 0a 20  e between this. 
2ff0: 20 72 65 6c 65 61 73 65 20 61 6e 64 20 33 2e 37   release and 3.7
3000: 2e 31 36 2e 31 20 69 73 20 61 20 74 77 6f 2d 63  .16.1 is a two-c
3010: 68 61 72 61 63 74 65 72 20 63 68 61 6e 67 65 20  haracter change 
3020: 69 6e 20 61 20 73 69 6e 67 6c 65 20 69 64 65 6e  in a single iden
3030: 74 69 66 69 65 72 2c 0a 20 20 77 68 69 63 68 20  tifier,.  which 
3040: 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20  is contained in 
3050: 74 68 65 20 77 69 6e 64 6f 77 73 2d 73 70 65 63  the windows-spec
3060: 69 66 69 63 20 4f 53 20 69 6e 74 65 72 66 61 63  ific OS interfac
3070: 65 20 6c 6f 67 69 63 2e 20 20 54 68 65 72 65 20  e logic.  There 
3080: 0a 20 20 61 72 65 20 6e 6f 20 63 68 61 6e 67 65  .  are no change
3090: 73 20 69 6e 20 74 68 69 73 20 72 65 6c 65 61 73  s in this releas
30a0: 65 20 28 6f 74 68 65 72 20 74 68 61 6e 20 76 65  e (other than ve
30b0: 72 73 69 6f 6e 20 6e 75 6d 62 65 72 73 29 20 66  rsion numbers) f
30c0: 6f 72 20 70 6c 61 74 66 6f 72 6d 73 0a 20 20 6f  or platforms.  o
30d0: 74 68 65 72 20 74 68 61 6e 20 57 69 6e 64 6f 77  ther than Window
30e0: 73 2e 0a 7d 0a 0a 6e 65 77 73 69 74 65 6d 20 7b  s..}..newsitem {
30f0: 32 30 31 33 2d 30 33 2d 32 39 7d 20 7b 52 65 6c  2013-03-29} {Rel
3100: 65 61 73 65 20 33 2e 37 2e 31 36 2e 31 7d 20 7b  ease 3.7.16.1} {
3110: 0a 20 20 53 51 4c 69 74 65 20 5b 76 65 72 73 69  .  SQLite [versi
3120: 6f 6e 20 33 2e 37 2e 31 36 2e 31 5d 20 69 73 20  on 3.7.16.1] is 
3130: 61 20 62 75 67 20 66 69 78 20 72 65 6c 65 61 73  a bug fix releas
3140: 65 20 74 68 61 74 20 66 69 78 65 73 20 61 20 66  e that fixes a f
3150: 65 77 20 70 72 6f 62 6c 65 6d 73 0a 20 20 74 68  ew problems.  th
3160: 61 74 20 77 65 72 65 20 70 72 65 73 65 6e 74 20  at were present 
3170: 69 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  in the previous 
3180: 72 65 6c 65 61 73 65 73 2e 0a 0a 20 20 54 68 65  releases...  The
3190: 20 70 72 69 6d 61 72 79 20 6d 6f 74 69 76 61 74   primary motivat
31a0: 69 6f 6e 20 66 6f 72 20 76 65 72 73 69 6f 6e 20  ion for version 
31b0: 33 2e 37 2e 31 36 2e 31 20 69 73 20 74 6f 20 66  3.7.16.1 is to f
31c0: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 0a  ix a bug in the.
31d0: 20 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 65    query optimize
31e0: 72 20 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f  r that was intro
31f0: 64 75 63 65 64 20 61 73 20 70 61 72 74 20 6f 66  duced as part of
3200: 20 5b 76 65 72 73 69 6f 6e 20 33 2e 37 2e 31 35   [version 3.7.15
3210: 5d 2e 20 20 54 68 65 0a 20 20 71 75 65 72 79 20  ].  The.  query 
3220: 6f 70 74 69 6d 69 7a 65 72 20 77 61 73 20 62 65  optimizer was be
3230: 69 6e 67 20 61 20 6c 69 74 74 6c 65 20 6f 76 65  ing a little ove
3240: 72 7a 65 61 6c 6f 75 73 20 69 6e 20 6f 70 74 69  rzealous in opti
3250: 6d 69 7a 69 6e 67 20 6f 75 74 20 73 6f 6d 65 0a  mizing out some.
3260: 20 20 4f 52 44 45 52 20 42 59 20 63 6c 61 75 73    ORDER BY claus
3270: 65 73 2c 20 77 68 69 63 68 20 72 65 73 75 6c 74  es, which result
3280: 65 64 20 69 6e 20 73 6f 72 74 69 6e 67 20 62 65  ed in sorting be
3290: 69 6e 67 20 6f 6d 69 74 74 65 64 20 6f 6e 20 6f  ing omitted on o
32a0: 63 63 61 73 69 6f 6e 73 0a 20 20 77 68 65 72 65  ccasions.  where
32b0: 20 73 6f 72 74 69 6e 67 20 69 73 20 72 65 71 75   sorting is requ
32c0: 69 72 65 64 20 74 6f 20 67 65 74 20 74 68 65 20  ired to get the 
32d0: 63 6f 72 72 65 63 74 20 61 6e 73 77 65 72 2e 20  correct answer. 
32e0: 20 53 65 65 0a 20 20 74 69 63 6b 65 74 20 5b 68   See.  ticket [h
32f0: 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65  ttp://www.sqlite
3300: 2e 6f 72 67 2f 73 72 63 2f 69 6e 66 6f 2f 61 31  .org/src/info/a1
3310: 37 39 66 65 37 34 36 35 20 7c 20 61 31 37 39 66  79fe7465 | a179f
3320: 65 37 34 36 35 5d 20 66 6f 72 0a 20 20 64 65 74  e7465] for.  det
3330: 61 69 6c 73 2e 0a 0a 20 20 49 6e 20 61 64 64 69  ails...  In addi
3340: 74 69 6f 6e 20 74 6f 20 74 68 65 20 4f 52 44 45  tion to the ORDE
3350: 52 20 42 59 20 66 69 78 2c 20 73 65 76 65 72 61  R BY fix, severa
3360: 6c 20 6f 74 68 65 72 20 70 61 74 63 68 65 73 20  l other patches 
3370: 74 6f 20 66 69 78 20 6f 62 73 63 75 72 65 0a 20  to fix obscure. 
3380: 20 28 61 6e 64 20 6d 6f 73 74 6c 79 20 68 61 72   (and mostly har
3390: 6d 6c 65 73 73 29 20 62 75 67 73 20 61 6e 64 20  mless) bugs and 
33a0: 74 6f 20 66 69 78 20 73 70 65 6c 6c 69 6e 67 20  to fix spelling 
33b0: 65 72 72 6f 72 73 20 69 6e 20 73 6f 75 72 63 65  errors in source
33c0: 20 63 6f 64 65 0a 20 20 63 6f 6d 6d 65 6e 74 73   code.  comments
33d0: 20 61 72 65 20 61 6c 73 6f 20 69 6e 63 6c 75 64   are also includ
33e0: 65 64 20 69 6e 20 74 68 69 73 20 72 65 6c 65 61  ed in this relea
33f0: 73 65 2e 0a 7d 0a 0a 6e 65 77 73 69 74 65 6d 20  se..}..newsitem 
3400: 7b 32 30 31 33 2d 30 33 2d 31 38 7d 20 7b 52 65  {2013-03-18} {Re
3410: 6c 65 61 73 65 20 33 2e 37 2e 31 36 7d 20 7b 0a  lease 3.7.16} {.
3420: 20 20 53 51 4c 69 74 65 20 5b 76 65 72 73 69 6f    SQLite [versio
3430: 6e 20 33 2e 37 2e 31 36 5d 20 69 73 20 61 20 72  n 3.7.16] is a r
3440: 65 67 75 6c 61 72 6c 79 20 73 63 68 65 64 75 6c  egularly schedul
3450: 65 64 20 72 65 6c 65 61 73 65 20 6f 66 20 53 51  ed release of SQ
3460: 4c 69 74 65 2e 0a 20 20 54 68 69 73 20 72 65 6c  Lite..  This rel
3470: 65 61 73 65 20 63 6f 6e 74 61 69 6e 73 20 73 65  ease contains se
3480: 76 65 72 61 6c 20 6c 61 6e 67 75 61 67 65 20 65  veral language e
3490: 6e 68 61 6e 63 65 6d 65 6e 74 73 20 61 6e 64 20  nhancements and 
34a0: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 0a 20 20 74  improvements.  t
34b0: 6f 20 74 68 65 20 71 75 65 72 79 20 6f 70 74 69  o the query opti
34c0: 6d 69 7a 65 72 2e 20 20 41 20 6c 69 73 74 20 6f  mizer.  A list o
34d0: 66 20 74 68 65 20 6d 61 6a 6f 72 20 65 6e 68 61  f the major enha
34e0: 6e 63 65 6d 65 6e 74 73 20 61 6e 64 20 6f 70 74  ncements and opt
34f0: 69 6d 69 7a 61 74 69 6f 6e 73 0a 20 20 63 61 6e  imizations.  can
3500: 20 62 65 20 73 65 65 20 6f 6e 20 74 68 65 20 5b   be see on the [
3510: 76 65 72 73 69 6f 6e 20 33 2e 37 2e 31 36 20 7c  version 3.7.16 |
3520: 20 63 68 61 6e 67 65 20 6c 6f 67 5d 2e 0a 0a 20   change log]... 
3530: 20 54 68 65 72 65 20 77 61 73 20 6f 6e 65 20 69   There was one i
3540: 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66 69 78  mportant bug fix
3550: 0a 20 20 28 73 65 65 20 5b 68 74 74 70 3a 2f 2f  .  (see [http://
3560: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 73  www.sqlite.org/s
3570: 72 63 2f 69 6e 66 6f 2f 66 63 37 62 64 36 33 35  rc/info/fc7bd635
3580: 38 66 20 7c 20 54 69 63 6b 65 74 20 66 63 37 62  8f | Ticket fc7b
3590: 64 36 33 35 38 66 5d 29 0a 20 20 74 68 61 74 20  d6358f]).  that 
35a0: 61 64 64 72 65 73 73 65 73 20 61 6e 20 69 6e 63  addresses an inc
35b0: 6f 72 72 65 63 74 20 71 75 65 72 79 20 72 65 73  orrect query res
35c0: 75 6c 74 20 74 68 61 74 20 63 6f 75 6c 64 20 68  ult that could h
35d0: 61 76 65 20 6f 63 63 75 72 72 65 64 20 69 6e 0a  ave occurred in.
35e0: 20 20 61 20 74 68 72 65 65 2d 77 61 79 20 6a 6f    a three-way jo
35f0: 69 6e 20 77 68 65 72 65 20 74 68 65 20 6a 6f 69  in where the joi
3600: 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 63 6f  n constraints co
3610: 6d 70 61 72 65 64 20 49 4e 54 45 47 45 52 20 63  mpared INTEGER c
3620: 6f 6c 75 6d 6e 73 0a 20 20 74 6f 20 54 45 58 54  olumns.  to TEXT
3630: 20 63 6f 6c 75 6d 6e 73 2e 20 20 54 68 69 73 20   columns.  This 
3640: 69 73 73 75 65 20 68 61 64 20 62 65 65 6e 20 69  issue had been i
3650: 6e 20 74 68 65 20 63 6f 64 65 20 66 6f 72 20 74  n the code for t
3660: 69 6d 65 20 6f 75 74 20 6f 66 20 6d 69 6e 64 0a  ime out of mind.
3670: 20 20 61 6e 64 20 68 61 64 20 6e 65 76 65 72 20    and had never 
3680: 62 65 66 6f 72 65 20 62 65 65 6e 20 72 65 70 6f  before been repo
3690: 72 74 65 64 2c 20 73 6f 20 77 65 20 73 75 72 6d  rted, so we surm
36a0: 69 73 65 20 74 68 61 74 20 69 74 20 69 73 20 76  ise that it is v
36b0: 65 72 79 20 6f 62 73 63 75 72 65 2e 0a 20 20 4e  ery obscure..  N
36c0: 65 76 65 72 74 68 65 6c 65 73 73 2c 20 61 6c 6c  evertheless, all
36d0: 20 75 73 65 72 73 20 61 72 65 20 61 64 76 69 73   users are advis
36e0: 65 64 20 74 6f 20 75 70 67 72 61 64 65 20 74 6f  ed to upgrade to
36f0: 20 61 76 6f 69 64 20 61 6e 79 20 66 75 74 75 72   avoid any futur
3700: 65 20 70 72 6f 62 6c 65 6d 73 0a 20 20 61 73 73  e problems.  ass
3710: 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 69  ociated with thi
3720: 73 20 69 73 73 75 65 2e 0a 7d 0a 0a 6e 65 77 73  s issue..}..news
3730: 69 74 65 6d 20 7b 32 30 31 33 2d 30 31 2d 30 39  item {2013-01-09
3740: 7d 20 7b 52 65 6c 65 61 73 65 20 33 2e 37 2e 31  } {Release 3.7.1
3750: 35 2e 32 7d 20 7b 0a 20 20 53 51 4c 69 74 65 20  5.2} {.  SQLite 
3760: 5b 76 65 72 73 69 6f 6e 20 33 2e 37 2e 31 35 2e  [version 3.7.15.
3770: 32 5d 20 69 73 20 61 20 70 61 74 63 68 20 72 65  2] is a patch re
3780: 6c 65 61 73 65 20 74 68 61 74 20 66 69 78 65 73  lease that fixes
3790: 20 61 20 73 69 6e 67 6c 65 20 62 75 67 0a 20 20   a single bug.  
37a0: 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75  that was introdu
37b0: 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 5b  ced in version [
37c0: 76 65 72 73 69 6f 6e 20 33 2e 37 2e 31 35 5d 2e  version 3.7.15].
37d0: 20 20 54 68 65 20 66 69 78 20 69 73 20 61 20 34    The fix is a 4
37e0: 2d 63 68 61 72 61 63 74 65 72 0a 20 20 65 64 69  -character.  edi
37f0: 74 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 6c 69  t to a single li
3800: 6e 65 20 6f 66 20 63 6f 64 65 2e 20 20 4f 74 68  ne of code.  Oth
3810: 65 72 20 74 68 61 6e 20 74 68 69 73 20 34 2d 63  er than this 4-c
3820: 68 61 72 61 63 74 65 72 20 63 68 61 6e 67 65 20  haracter change 
3830: 61 6e 64 0a 20 20 74 68 65 20 75 70 64 61 74 65  and.  the update
3840: 20 6f 66 20 74 68 65 20 76 65 72 73 69 6f 6e 20   of the version 
3850: 6e 75 6d 62 65 72 2c 20 6e 6f 74 68 69 6e 67 20  number, nothing 
3860: 68 61 73 20 63 68 61 6e 67 65 64 20 66 72 6f 6d  has changed from
3870: 0a 20 20 5b 76 65 72 73 69 6f 6e 20 33 2e 37 2e  .  [version 3.7.
3880: 31 35 2e 31 5d 2e 0a 7d 0a 0a 0a 3c 2f 74 63 6c  15.1]..}...</tcl
3890: 3e 0a 0a 3c 61 20 68 72 65 66 3d 22 6f 6c 64 6e  >..<a href="oldn
38a0: 65 77 73 2e 68 74 6d 6c 22 3e 4f 6c 64 20 6e 65  ews.html">Old ne
38b0: 77 73 2e 2e 2e 3c 2f 61 3e 0a                    ws...</a>.