/ Hex Artifact Content
Login

Artifact 06318d864d7667972bb2c2f47a335e6463e6989a:


0000: 23 0a 23 20 52 75 6e 20 74 68 69 73 20 73 63 72  #.# Run this scr
0010: 69 70 74 20 74 6f 20 67 65 6e 65 72 61 74 65 64  ipt to generated
0020: 20 61 20 63 68 61 6e 67 65 73 2e 68 74 6d 6c 20   a changes.html 
0030: 6f 75 74 70 75 74 20 66 69 6c 65 0a 23 0a 73 6f  output file.#.so
0040: 75 72 63 65 20 63 6f 6d 6d 6f 6e 2e 74 63 6c 0a  urce common.tcl.
0050: 68 65 61 64 65 72 20 7b 53 51 4c 69 74 65 20 63  header {SQLite c
0060: 68 61 6e 67 65 73 7d 0a 70 75 74 73 20 7b 0a 3c  hanges}.puts {.<
0070: 70 3e 0a 54 68 69 73 20 70 61 67 65 20 70 72 6f  p>.This page pro
0080: 76 69 64 65 73 20 61 20 68 69 67 68 2d 6c 65 76  vides a high-lev
0090: 65 6c 20 73 75 6d 6d 61 72 79 20 6f 66 20 63 68  el summary of ch
00a0: 61 6e 67 65 73 20 74 6f 20 53 51 4c 69 74 65 2e  anges to SQLite.
00b0: 0a 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c  .For more detail
00c0: 2c 20 72 65 66 65 72 20 74 68 65 20 74 68 65 20  , refer the the 
00d0: 63 68 65 63 6b 69 6e 20 6c 6f 67 73 20 67 65 6e  checkin logs gen
00e0: 65 72 61 74 65 64 20 62 79 0a 43 56 53 20 61 74  erated by.CVS at
00f0: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
0100: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
0110: 63 76 73 74 72 61 63 2f 74 69 6d 65 6c 69 6e 65  cvstrac/timeline
0120: 22 3e 0a 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  ">.http://www.sq
0130: 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63  lite.org/cvstrac
0140: 2f 74 69 6d 65 6c 69 6e 65 3c 2f 61 3e 2e 0a 3c  /timeline</a>..<
0150: 2f 70 3e 0a 0a 3c 44 4c 3e 0a 7d 0a 0a 0a 70 72  /p>..<DL>.}...pr
0160: 6f 63 20 63 68 6e 67 20 7b 64 61 74 65 20 64 65  oc chng {date de
0170: 73 63 7d 20 7b 0a 20 20 69 66 20 7b 5b 72 65 67  sc} {.  if {[reg
0180: 65 78 70 20 7b 5c 28 28 5b 30 2d 39 2e 5d 2b 29  exp {\(([0-9.]+)
0190: 5c 29 7d 20 24 64 61 74 65 20 61 6c 6c 20 76 65  \)} $date all ve
01a0: 72 73 5d 7d 20 7b 0a 20 20 20 20 73 65 74 20 6c  rs]} {.    set l
01b0: 61 62 65 6c 20 5b 73 74 72 69 6e 67 20 6d 61 70  abel [string map
01c0: 20 7b 2e 20 5f 7d 20 24 76 65 72 73 5d 0a 20 20   {. _} $vers].  
01d0: 20 20 70 75 74 73 20 22 3c 41 20 4e 41 4d 45 3d    puts "<A NAME=
01e0: 5c 22 76 65 72 73 69 6f 6e 5f 24 6c 61 62 65 6c  \"version_$label
01f0: 5c 22 3e 22 0a 20 20 7d 0a 20 20 70 75 74 73 20  \">".  }.  puts 
0200: 22 3c 44 54 3e 3c 42 3e 24 64 61 74 65 3c 2f 42  "<DT><B>$date</B
0210: 3e 3c 2f 44 54 3e 22 0a 20 20 70 75 74 73 20 22  ></DT>".  puts "
0220: 3c 44 44 3e 3c 50 3e 3c 55 4c 3e 24 64 65 73 63  <DD><P><UL>$desc
0230: 3c 2f 55 4c 3e 3c 2f 50 3e 3c 2f 44 44 3e 22 0a  </UL></P></DD>".
0240: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 41 75  }..chng {2005 Au
0250: 67 75 73 74 20 32 34 20 28 33 2e 32 2e 34 29 7d  gust 24 (3.2.4)}
0260: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
0270: 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 74   introduced in t
0280: 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65  he previous rele
0290: 61 73 65 0a 74 68 61 74 20 63 61 6e 20 63 61 75  ase.that can cau
02a0: 73 65 20 61 20 73 65 67 66 61 75 6c 74 20 77 68  se a segfault wh
02b0: 69 6c 65 20 67 65 6e 65 72 61 74 69 6e 67 20 63  ile generating c
02c0: 6f 64 65 0a 66 6f 72 20 63 6f 6d 70 6c 65 78 20  ode.for complex 
02d0: 57 48 45 52 45 20 63 6c 61 75 73 65 73 2e 3c 2f  WHERE clauses.</
02e0: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 66 6c  li>.<li>Allow fl
02f0: 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6c 69 74  oating point lit
0300: 65 72 61 6c 73 20 74 6f 20 62 65 67 69 6e 20 6f  erals to begin o
0310: 72 20 65 6e 64 20 77 69 74 68 20 61 20 64 65 63  r end with a dec
0320: 69 6d 61 6c 20 70 6f 69 6e 74 2e 3c 2f 6c 69 3e  imal point.</li>
0330: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 41  .}..chng {2005 A
0340: 75 67 75 73 74 20 32 31 20 28 33 2e 32 2e 33 29  ugust 21 (3.2.3)
0350: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  } {.<li>Added su
0360: 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 43 41  pport for the CA
0370: 53 54 20 6f 70 65 72 61 74 6f 72 3c 2f 6c 69 3e  ST operator</li>
0380: 0a 3c 6c 69 3e 54 63 6c 20 69 6e 74 65 72 66 61  .<li>Tcl interfa
0390: 63 65 20 61 6c 6c 6f 77 73 20 42 4c 4f 42 20 76  ce allows BLOB v
03a0: 61 6c 75 65 73 20 74 6f 20 62 65 20 74 72 61 6e  alues to be tran
03b0: 73 66 65 72 72 65 64 20 74 6f 20 75 73 65 72 2d  sferred to user-
03c0: 64 65 66 69 6e 65 64 0a 66 75 6e 63 74 69 6f 6e  defined.function
03d0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
03e0: 20 74 68 65 20 22 74 72 61 6e 73 61 63 74 69 6f   the "transactio
03f0: 6e 22 20 6d 65 74 68 6f 64 20 74 6f 20 74 68 65  n" method to the
0400: 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65 3c 2f   Tcl interface</
0410: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68  li>.<li>Allow th
0420: 65 20 44 45 46 41 55 4c 54 20 76 61 6c 75 65 20  e DEFAULT value 
0430: 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 74 6f 20 63  of a column to c
0440: 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 73 20 74 68  all functions th
0450: 61 74 20 68 61 76 65 20 63 6f 6e 73 74 61 6e 74  at have constant
0460: 0a 6f 70 65 72 61 6e 64 73 3c 2f 6c 69 3e 0a 3c  .operands</li>.<
0470: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 41 4e 41  li>Added the ANA
0480: 4c 59 5a 45 20 63 6f 6d 6d 61 6e 64 20 66 6f 72  LYZE command for
0490: 20 67 61 74 68 65 72 69 6e 67 20 73 74 61 74 69   gathering stati
04a0: 73 74 69 63 73 20 6f 6e 20 69 6e 64 69 63 65 73  stics on indices
04b0: 20 61 6e 64 0a 75 73 69 6e 67 20 74 68 6f 73 65   and.using those
04c0: 20 73 74 61 74 69 73 74 69 63 73 20 77 68 65 6e   statistics when
04d0: 20 70 69 63 6b 69 6e 67 20 61 6e 20 69 6e 64 65   picking an inde
04e0: 78 20 69 6e 20 74 68 65 20 6f 70 74 69 6d 69 7a  x in the optimiz
04f0: 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  er</li>.<li>Remo
0500: 76 65 20 74 68 65 20 6c 69 6d 69 74 20 28 66 6f  ve the limit (fo
0510: 72 6d 65 72 6c 79 20 31 30 30 29 20 6f 6e 20 74  rmerly 100) on t
0520: 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 65 72  he number of ter
0530: 6d 73 20 69 6e 20 74 68 65 0a 57 48 45 52 45 20  ms in the.WHERE 
0540: 63 6c 61 75 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  clause</li>.<li>
0550: 54 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20 73  The right-hand s
0560: 69 64 65 20 6f 66 20 74 68 65 20 49 4e 20 6f 70  ide of the IN op
0570: 65 72 61 74 6f 72 20 63 61 6e 20 6e 6f 77 20 62  erator can now b
0580: 65 20 61 20 6c 69 73 74 20 6f 66 20 65 78 70 72  e a list of expr
0590: 65 73 73 69 6f 6e 73 0a 69 6e 73 74 65 61 64 20  essions.instead 
05a0: 6f 66 20 6a 75 73 74 20 61 20 6c 69 73 74 20 6f  of just a list o
05b0: 66 20 63 6f 6e 73 74 61 6e 74 73 3c 2f 6c 69 3e  f constants</li>
05c0: 0a 3c 6c 69 3e 52 65 77 6f 72 6b 20 74 68 65 20  .<li>Rework the 
05d0: 6f 70 74 69 6d 69 7a 65 72 20 73 6f 20 74 68 61  optimizer so tha
05e0: 74 20 69 74 20 69 73 20 61 62 6c 65 20 74 6f 20  t it is able to 
05f0: 6d 61 6b 65 20 62 65 74 74 65 72 20 75 73 65 20  make better use 
0600: 6f 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a  of indices</li>.
0610: 3c 6c 69 3e 54 68 65 20 6f 72 64 65 72 20 6f 66  <li>The order of
0620: 20 74 61 62 6c 65 73 20 69 6e 20 61 20 6a 6f 69   tables in a joi
0630: 6e 20 69 73 20 61 64 6a 75 73 74 65 64 20 61 75  n is adjusted au
0640: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 6f 20 6d  tomatically to m
0650: 61 6b 65 0a 62 65 74 74 65 72 20 75 73 65 20 6f  ake.better use o
0660: 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c  f indices</li>.<
0670: 6c 69 3e 54 68 65 20 49 4e 20 6f 70 65 72 61 74  li>The IN operat
0680: 6f 72 20 69 73 20 6e 6f 77 20 61 20 63 61 6e 64  or is now a cand
0690: 69 64 61 74 65 20 66 6f 72 20 6f 70 74 69 6d 69  idate for optimi
06a0: 7a 61 74 69 6f 6e 20 65 76 65 6e 20 69 66 20 74  zation even if t
06b0: 68 65 20 6c 65 66 74 2d 68 61 6e 64 0a 73 69 64  he left-hand.sid
06c0: 65 20 69 73 20 6e 6f 74 20 74 68 65 20 6c 65 66  e is not the lef
06d0: 74 2d 6d 6f 73 74 20 74 65 72 6d 20 6f 66 20 74  t-most term of t
06e0: 68 65 20 69 6e 64 65 78 2e 20 20 4d 75 6c 74 69  he index.  Multi
06f0: 70 6c 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 73  ple IN operators
0700: 20 63 61 6e 20 62 65 0a 75 73 65 64 20 77 69 74   can be.used wit
0710: 68 20 74 68 65 20 73 61 6d 65 20 69 6e 64 65 78  h the same index
0720: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 48 45 52 45  .</li>.<li>WHERE
0730: 20 63 6c 61 75 73 65 20 65 78 70 72 65 73 73 69   clause expressi
0740: 6f 6e 73 20 75 73 69 6e 67 20 42 45 54 57 45 45  ons using BETWEE
0750: 4e 20 61 6e 64 20 4f 52 20 61 72 65 20 6e 6f 77  N and OR are now
0760: 20 63 61 6e 64 69 64 61 74 65 73 0a 66 6f 72 20   candidates.for 
0770: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f 6c 69  optimization</li
0780: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
0790: 22 63 61 73 65 5f 73 65 6e 73 69 74 69 76 65 5f  "case_sensitive_
07a0: 6c 69 6b 65 22 20 70 72 61 67 6d 61 20 61 6e 64  like" pragma and
07b0: 20 74 68 65 20 53 51 4c 49 54 45 5f 43 41 53 45   the SQLITE_CASE
07c0: 5f 53 45 4e 53 49 54 49 56 45 5f 4c 49 4b 45 0a  _SENSITIVE_LIKE.
07d0: 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74  compile-time opt
07e0: 69 6f 6e 20 74 6f 20 73 65 74 20 69 74 73 20 64  ion to set its d
07f0: 65 66 61 75 6c 74 20 76 61 6c 75 65 20 74 6f 20  efault value to 
0800: 22 6f 6e 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  "on".</li>.<li>U
0810: 73 65 20 69 6e 64 69 63 65 73 20 74 6f 20 68 65  se indices to he
0820: 6c 70 20 77 69 74 68 20 47 4c 4f 42 20 65 78 70  lp with GLOB exp
0830: 72 65 73 73 69 6f 6e 73 20 61 6e 64 20 4c 49 4b  ressions and LIK
0840: 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f  E expressions to
0850: 6f 0a 77 68 65 6e 20 74 68 65 20 63 61 73 65 5f  o.when the case_
0860: 73 65 6e 73 69 74 69 76 65 5f 6c 69 6b 65 20 70  sensitive_like p
0870: 72 61 67 6d 61 20 69 73 20 65 6e 61 62 6c 65 64  ragma is enabled
0880: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
0890: 73 75 70 70 6f 72 74 20 66 6f 72 20 67 72 61 76  support for grav
08a0: 65 2d 61 63 63 65 6e 74 20 71 75 6f 74 69 6e 67  e-accent quoting
08b0: 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69   for compatibili
08c0: 74 79 20 77 69 74 68 20 4d 79 53 51 4c 3c 2f 6c  ty with MySQL</l
08d0: 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20  i>.<li>Improved 
08e0: 74 65 73 74 20 63 6f 76 65 72 61 67 65 3c 2f 6c  test coverage</l
08f0: 69 3e 0a 3c 6c 69 3e 44 6f 7a 65 6e 73 20 6f 66  i>.<li>Dozens of
0900: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
0910: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0920: 30 30 35 20 4a 75 6e 65 20 31 33 20 28 33 2e 32  005 June 13 (3.2
0930: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .2)} {.<li>Added
0940: 20 74 68 65 20 73 71 6c 69 74 65 33 5f 64 62 5f   the sqlite3_db_
0950: 68 61 6e 64 6c 65 28 29 20 41 50 49 3c 2f 6c 69  handle() API</li
0960: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
0970: 73 71 6c 69 74 65 33 5f 67 65 74 5f 61 75 74 6f  sqlite3_get_auto
0980: 63 6f 6d 6d 69 74 28 29 20 41 50 49 3c 2f 6c 69  commit() API</li
0990: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 52 45  >.<li>Added a RE
09a0: 47 45 58 50 20 6f 70 65 72 61 74 6f 72 20 74 6f  GEXP operator to
09b0: 20 74 68 65 20 70 61 72 73 65 72 2e 20 20 54 68   the parser.  Th
09c0: 65 72 65 20 69 73 20 6e 6f 20 66 75 6e 63 74 69  ere is no functi
09d0: 6f 6e 20 74 6f 20 62 61 63 6b 0a 75 70 20 74 68  on to back.up th
09e0: 69 73 20 6f 70 65 72 61 74 6f 72 20 69 6e 20 74  is operator in t
09f0: 68 65 20 73 74 61 6e 64 61 72 64 20 62 75 69 6c  he standard buil
0a00: 64 20 62 75 74 20 75 73 65 72 73 20 63 61 6e 20  d but users can 
0a10: 61 64 64 20 74 68 65 69 72 20 6f 77 6e 20 75 73  add their own us
0a20: 69 6e 67 0a 73 71 6c 69 74 65 33 5f 63 72 65 61  ing.sqlite3_crea
0a30: 74 65 5f 66 75 6e 63 74 69 6f 6e 28 29 3c 2f 6c  te_function()</l
0a40: 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70  i>.<li>Speed imp
0a50: 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20 6c 69  rovements and li
0a60: 62 72 61 72 79 20 66 6f 6f 74 70 72 69 6e 74 20  brary footprint 
0a70: 72 65 64 75 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e  reductions.</li>
0a80: 0a 3c 6c 69 3e 46 69 78 20 62 79 74 65 20 61 6c  .<li>Fix byte al
0a90: 69 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 73  ignment problems
0aa0: 20 6f 6e 20 36 34 2d 62 69 74 20 61 72 63 68 69   on 64-bit archi
0ab0: 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c  tectures.</li>.<
0ac0: 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20 6d 69  li>Many, many mi
0ad0: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 61 6e  nor bug fixes an
0ae0: 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  d documentation 
0af0: 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  updates.</li>.}.
0b00: 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63  .chng {2005 Marc
0b10: 68 20 32 39 20 28 33 2e 32 2e 31 29 7d 20 7b 0a  h 29 (3.2.1)} {.
0b20: 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72 79  <li>Fix a memory
0b30: 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 65 72 72 6f   allocation erro
0b40: 72 20 69 6e 20 74 68 65 20 6e 65 77 20 41 44 44  r in the new ADD
0b50: 20 43 4f 4c 55 4d 4e 20 63 6f 6d 6d 65 6e 74 2e   COLUMN comment.
0b60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
0b70: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
0b80: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
0b90: 30 35 20 4d 61 72 63 68 20 32 31 20 28 33 2e 32  05 March 21 (3.2
0ba0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .0)} {.<li>Added
0bb0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 4c 54   support for ALT
0bc0: 45 52 20 54 41 42 4c 45 20 41 44 44 20 43 4f 4c  ER TABLE ADD COL
0bd0: 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  UMN.</li>.<li>Ad
0be0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
0bf0: 74 68 65 20 22 54 22 20 73 65 70 61 72 61 74 6f  the "T" separato
0c00: 72 20 69 6e 20 49 53 4f 2d 38 36 30 31 20 64 61  r in ISO-8601 da
0c10: 74 65 2f 74 69 6d 65 20 73 74 72 69 6e 67 73 2e  te/time strings.
0c20: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76  </li>.<li>Improv
0c30: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43  ed support for C
0c40: 79 67 77 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ygwin.</li>.<li>
0c50: 4e 75 6d 65 72 6f 75 73 20 62 75 67 20 66 69 78  Numerous bug fix
0c60: 65 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61  es and documenta
0c70: 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c  tion updates.</l
0c80: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
0c90: 20 4d 61 72 63 68 20 31 36 20 28 33 2e 31 2e 36   March 16 (3.1.6
0ca0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
0cb0: 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20 63 61  ug that could ca
0cc0: 75 73 65 20 64 61 74 61 62 61 73 65 20 63 6f 72  use database cor
0cd0: 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 69 6e 73  ruption when ins
0ce0: 65 72 74 69 6e 67 0a 20 20 20 20 72 65 63 6f 72  erting.    recor
0cf0: 64 20 69 6e 74 6f 20 74 61 62 6c 65 73 20 77 69  d into tables wi
0d00: 74 68 20 61 72 6f 75 6e 64 20 31 32 35 20 63 6f  th around 125 co
0d10: 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lumns.</li>.<li>
0d20: 73 71 6c 69 74 65 33 5f 73 74 65 70 28 29 20 69  sqlite3_step() i
0d30: 73 20 6e 6f 77 20 6d 75 63 68 20 6d 6f 72 65 20  s now much more 
0d40: 6c 69 6b 65 6c 79 20 74 6f 20 69 6e 76 6f 6b 65  likely to invoke
0d50: 20 74 68 65 20 62 75 73 79 20 68 61 6e 64 6c 65   the busy handle
0d60: 72 0a 20 20 20 20 61 6e 64 20 6c 65 73 73 20 6c  r.    and less l
0d70: 69 6b 65 6c 79 20 74 6f 20 72 65 74 75 72 6e 20  ikely to return 
0d80: 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c 69  SQLITE_BUSY.</li
0d90: 3e 0a 3c 6c 69 3e 46 69 78 20 6d 65 6d 6f 72 79  >.<li>Fix memory
0da0: 20 6c 65 61 6b 73 20 74 68 61 74 20 75 73 65 64   leaks that used
0db0: 20 74 6f 20 6f 63 63 75 72 20 61 66 74 65 72 20   to occur after 
0dc0: 61 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 75  a malloc() failu
0dd0: 72 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  re.</li>.}..chng
0de0: 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31 31 20   {2005 March 11 
0df0: 28 33 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 54  (3.1.5)} {.<li>T
0e00: 68 65 20 69 6f 63 74 6c 20 6f 6e 20 4f 53 2d 58  he ioctl on OS-X
0e10: 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 73 79 6e 63   to control sync
0e20: 69 6e 67 20 74 6f 20 64 69 73 6b 20 69 73 20 46  ing to disk is F
0e30: 5f 46 55 4c 4c 46 53 59 4e 43 2c 0a 20 20 20 20  _FULLFSYNC,.    
0e40: 6e 6f 74 20 46 5f 46 55 4c 4c 53 59 4e 43 2e 20  not F_FULLSYNC. 
0e50: 20 54 68 65 20 70 72 65 76 69 6f 75 73 20 72 65   The previous re
0e60: 6c 65 61 73 65 20 68 61 64 20 69 74 20 77 72 6f  lease had it wro
0e70: 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ng.</li>.}..chng
0e80: 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31 30 20   {2005 March 10 
0e90: 28 33 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46  (3.1.4)} {.<li>F
0ea0: 69 78 20 61 20 62 75 67 20 69 6e 20 61 75 74 6f  ix a bug in auto
0eb0: 76 61 63 75 75 6d 20 74 68 61 74 20 63 6f 75 6c  vacuum that coul
0ec0: 64 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65  d cause database
0ed0: 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 0a 61   corruption if.a
0ee0: 20 43 52 45 41 54 45 20 55 4e 49 51 55 45 20 49   CREATE UNIQUE I
0ef0: 4e 44 45 58 20 66 61 69 6c 73 20 62 65 63 61 75  NDEX fails becau
0f00: 73 65 20 6f 66 20 61 20 63 6f 6e 73 74 72 61 69  se of a constrai
0f10: 6e 74 20 76 69 6f 6c 61 74 69 6f 6e 2e 0a 54 68  nt violation..Th
0f20: 69 73 20 70 72 6f 62 6c 65 6d 20 6f 6e 6c 79 20  is problem only 
0f30: 6f 63 63 75 72 73 20 69 66 20 74 68 65 20 6e 65  occurs if the ne
0f40: 77 20 61 75 74 6f 76 61 63 75 75 6d 20 66 65 61  w autovacuum fea
0f50: 74 75 72 65 20 69 6e 74 72 6f 64 75 63 65 64 20  ture introduced 
0f60: 69 6e 0a 76 65 72 73 69 6f 6e 20 33 2e 31 20 69  in.version 3.1 i
0f70: 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69  s turned on.</li
0f80: 3e 0a 3c 6c 69 3e 54 68 65 20 46 5f 46 55 4c 4c  >.<li>The F_FULL
0f90: 53 59 4e 43 20 69 6f 63 74 6c 20 28 63 75 72 72  SYNC ioctl (curr
0fa0: 65 6e 74 6c 79 20 6f 6e 6c 79 20 73 75 70 70 6f  ently only suppo
0fb0: 72 74 65 64 20 6f 6e 20 4f 53 2d 58 29 20 69 73  rted on OS-X) is
0fc0: 20 64 69 73 61 62 6c 65 64 0a 69 66 20 74 68 65   disabled.if the
0fd0: 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 70 72 61   synchronous pra
0fe0: 67 6d 61 20 69 73 20 73 65 74 20 74 6f 20 73 6f  gma is set to so
0ff0: 6d 65 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68  mething other th
1000: 61 6e 20 22 66 75 6c 6c 22 2e 3c 2f 6c 69 3e 0a  an "full".</li>.
1010: 3c 6c 69 3e 41 64 64 20 61 64 64 69 74 69 6f 6e  <li>Add addition
1020: 61 6c 20 66 6f 72 77 61 72 64 20 63 6f 6d 70 61  al forward compa
1030: 74 69 62 69 6c 69 74 79 20 74 6f 20 74 68 65 20  tibility to the 
1040: 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 33  future version 3
1050: 2e 32 20 64 61 74 61 62 61 73 65 20 0a 66 69 6c  .2 database .fil
1060: 65 20 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c  e format.</li>.<
1070: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
1080: 57 48 45 52 45 20 63 6c 61 75 73 65 73 20 6f 66  WHERE clauses of
1090: 20 74 68 65 20 66 6f 72 6d 20 28 72 6f 77 69 64   the form (rowid
10a0: 3c 27 32 27 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  <'2')</li>.<li>N
10b0: 65 77 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 2e  ew SQLITE_OMIT_.
10c0: 2e 2e 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20  .. compile-time 
10d0: 6f 70 74 69 6f 6e 73 20 61 64 64 65 64 3c 2f 6c  options added</l
10e0: 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74  i>.<li>Updates t
10f0: 6f 20 74 68 65 20 6d 61 6e 20 70 61 67 65 3c 2f  o the man page</
1100: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74  li>.<li>Remove t
1110: 68 65 20 75 73 65 20 6f 66 20 73 74 72 63 61 73  he use of strcas
1120: 65 63 6d 70 28 29 20 66 72 6f 6d 20 74 68 65 20  ecmp() from the 
1130: 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57  shell</li>.<li>W
1140: 69 6e 64 6f 77 73 20 44 4c 4c 20 65 78 70 6f 72  indows DLL expor
1150: 74 73 20 73 79 6d 62 6f 6c 73 20 54 63 6c 73 71  ts symbols Tclsq
1160: 6c 69 74 65 5f 49 6e 69 74 20 61 6e 64 20 53 71  lite_Init and Sq
1170: 6c 69 74 65 5f 49 6e 69 74 3c 2f 6c 69 3e 0a 7d  lite_Init</li>.}
1180: 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62  ..chng {2005 Feb
1190: 72 75 61 72 79 20 31 39 20 28 33 2e 31 2e 33 29  ruary 19 (3.1.3)
11a0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  } {.<li>Fix a pr
11b0: 6f 62 6c 65 6d 20 77 69 74 68 20 56 41 43 55 55  oblem with VACUU
11c0: 4d 20 6f 6e 20 64 61 74 61 62 61 73 65 73 20 66  M on databases f
11d0: 72 6f 6d 20 77 68 69 63 68 20 74 61 62 6c 65 73  rom which tables
11e0: 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 41 55 54 4f   containing.AUTO
11f0: 49 4e 43 52 45 4d 45 4e 54 20 68 61 76 65 20 62  INCREMENT have b
1200: 65 65 6e 20 64 72 6f 70 70 65 64 2e 3c 2f 6c 69  een dropped.</li
1210: 3e 0a 3c 6c 69 3e 41 64 64 20 66 6f 72 77 61 72  >.<li>Add forwar
1220: 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20  d compatibility 
1230: 74 6f 20 74 68 65 20 66 75 74 75 72 65 20 76 65  to the future ve
1240: 72 73 69 6f 6e 20 33 2e 32 20 64 61 74 61 62 61  rsion 3.2 databa
1250: 73 65 20 66 69 6c 65 0a 66 6f 72 6d 61 74 2e 3c  se file.format.<
1260: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  /li>.<li>Documen
1270: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
1280: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
1290: 35 20 46 65 62 72 75 61 72 79 20 31 35 20 28 33  5 February 15 (3
12a0: 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.2)} {.<li>Fix
12b0: 20 61 20 62 75 67 20 74 68 61 74 20 63 61 6e 20   a bug that can 
12c0: 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65  lead to database
12d0: 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 74   corruption if t
12e0: 68 65 72 65 20 61 72 65 20 74 77 6f 0a 6f 70 65  here are two.ope
12f0: 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f  n connections to
1300: 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61   the same databa
1310: 73 65 20 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65  se and one conne
1320: 63 74 69 6f 6e 20 64 6f 65 73 20 61 20 56 41 43  ction does a VAC
1330: 55 55 4d 0a 61 6e 64 20 74 68 65 20 73 65 63 6f  UUM.and the seco
1340: 6e 64 20 6d 61 6b 65 73 20 73 6f 6d 65 20 63 68  nd makes some ch
1350: 61 6e 67 65 20 74 6f 20 74 68 65 20 64 61 74 61  ange to the data
1360: 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  base.</li>.<li>A
1370: 6c 6c 6f 77 20 22 3f 22 20 70 61 72 61 6d 65 74  llow "?" paramet
1380: 65 72 73 20 69 6e 20 74 68 65 20 4c 49 4d 49 54  ers in the LIMIT
1390: 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c   clause.</li>.<l
13a0: 69 3e 46 69 78 20 56 41 43 55 55 4d 20 73 6f 20  i>Fix VACUUM so 
13b0: 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77 69  that it works wi
13c0: 74 68 20 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54  th AUTOINCREMENT
13d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
13e0: 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20   race condition 
13f0: 69 6e 20 41 55 54 4f 56 41 43 55 55 4d 20 74 68  in AUTOVACUUM th
1400: 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 63  at can lead to c
1410: 6f 72 72 75 70 74 20 64 61 74 61 62 61 73 65 73  orrupt databases
1420: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 61 20  </li>.<li>Add a 
1430: 6e 75 6d 65 72 69 63 20 76 65 72 73 69 6f 6e 20  numeric version 
1440: 6e 75 6d 62 65 72 20 74 6f 20 74 68 65 20 73 71  number to the sq
1450: 6c 69 74 65 33 2e 68 20 69 6e 63 6c 75 64 65 20  lite3.h include 
1460: 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  file.</li>.<li>O
1470: 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66  ther minor bug f
1480: 69 78 65 73 20 61 6e 64 20 70 65 72 66 6f 72 6d  ixes and perform
1490: 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74  ance enhancement
14a0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
14b0: 7b 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31  {2005 February 1
14c0: 35 20 28 32 2e 38 2e 31 36 29 7d 20 7b 0a 3c 6c  5 (2.8.16)} {.<l
14d0: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
14e0: 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74   can lead to dat
14f0: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
1500: 20 69 66 20 74 68 65 72 65 20 61 72 65 20 74 77   if there are tw
1510: 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63 74 69 6f  o.open connectio
1520: 6e 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20 64  ns to the same d
1530: 61 74 61 62 61 73 65 20 61 6e 64 20 6f 6e 65 20  atabase and one 
1540: 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f 65 73 20  connection does 
1550: 61 20 56 41 43 55 55 4d 0a 61 6e 64 20 74 68 65  a VACUUM.and the
1560: 20 73 65 63 6f 6e 64 20 6d 61 6b 65 73 20 73 6f   second makes so
1570: 6d 65 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65  me change to the
1580: 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a   database.</li>.
1590: 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61  <li>Correctly ha
15a0: 6e 64 6c 65 20 71 75 6f 74 65 64 20 6e 61 6d 65  ndle quoted name
15b0: 73 20 69 6e 20 43 52 45 41 54 45 20 49 4e 44 45  s in CREATE INDE
15c0: 58 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c  X statements.</l
15d0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6e 61 6d  i>.<li>Fix a nam
15e0: 69 6e 67 20 63 6f 6e 66 6c 69 63 74 20 62 65 74  ing conflict bet
15f0: 77 65 65 6e 20 73 71 6c 69 74 65 2e 68 20 61 6e  ween sqlite.h an
1600: 64 20 73 71 6c 69 74 65 33 2e 68 2e 3c 2f 6c 69  d sqlite3.h.</li
1610: 3e 0a 3c 6c 69 3e 41 76 6f 69 64 20 65 78 63 65  >.<li>Avoid exce
1620: 73 73 20 68 65 61 70 20 75 73 61 67 65 20 77 68  ss heap usage wh
1630: 65 6e 20 63 6f 70 79 69 6e 67 20 65 78 70 72 65  en copying expre
1640: 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ssions.</li>.<li
1650: 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67  >Other minor bug
1660: 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   fixes.</li>.}..
1670: 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75  chng {2005 Febru
1680: 61 72 79 20 31 20 28 33 2e 31 2e 31 20 42 45 54  ary 1 (3.1.1 BET
1690: 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61  A)} {.<li>Automa
16a0: 74 69 63 20 63 61 63 68 69 6e 67 20 6f 66 20 70  tic caching of p
16b0: 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e  repared statemen
16c0: 74 73 20 69 6e 20 74 68 65 20 54 43 4c 20 69 6e  ts in the TCL in
16d0: 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69  terface</li>.<li
16e0: 3e 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41  >ATTACH and DETA
16f0: 43 48 20 61 73 20 77 65 6c 6c 20 61 73 20 73 6f  CH as well as so
1700: 6d 65 20 6f 74 68 65 72 20 6f 70 65 72 61 74 69  me other operati
1710: 6f 6e 73 20 63 61 75 73 65 20 65 78 69 73 74 69  ons cause existi
1720: 6e 67 0a 20 20 20 20 70 72 65 70 61 72 65 64 20  ng.    prepared 
1730: 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 65 78  statements to ex
1740: 70 69 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  pire.</li>.<li>N
1750: 75 6d 65 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62  umerious minor b
1760: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
1770: 0a 63 68 6e 67 20 7b 32 30 30 35 20 4a 61 6e 75  .chng {2005 Janu
1780: 61 72 79 20 32 31 20 28 33 2e 31 2e 30 20 41 4c  ary 21 (3.1.0 AL
1790: 50 48 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f  PHA)} {.<li>Auto
17a0: 76 61 63 75 75 6d 20 73 75 70 70 6f 72 74 20 61  vacuum support a
17b0: 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 55  dded</li>.<li>CU
17c0: 52 52 45 4e 54 5f 54 49 4d 45 2c 20 43 55 52 52  RRENT_TIME, CURR
17d0: 45 4e 54 5f 44 41 54 45 2c 20 61 6e 64 20 43 55  ENT_DATE, and CU
17e0: 52 52 45 4e 54 5f 54 49 4d 45 53 54 41 4d 50 20  RRENT_TIMESTAMP 
17f0: 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  added</li>.<li>S
1800: 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 45  upport for the E
1810: 58 49 53 54 53 20 63 6c 61 75 73 65 20 61 64 64  XISTS clause add
1820: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70  ed.</li>.<li>Sup
1830: 70 6f 72 74 20 66 6f 72 20 63 6f 72 72 65 6c 61  port for correla
1840: 74 65 64 20 73 75 62 71 75 65 72 69 65 73 20 61  ted subqueries a
1850: 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  dded.</li>.<li>A
1860: 64 64 65 64 20 74 68 65 20 45 53 43 41 50 45 20  dded the ESCAPE 
1870: 63 6c 61 75 73 65 20 6f 6e 20 74 68 65 20 4c 49  clause on the LI
1880: 4b 45 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69  KE operator.</li
1890: 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  >.<li>Support fo
18a0: 72 20 41 4c 54 45 52 20 54 41 42 4c 45 20 2e 2e  r ALTER TABLE ..
18b0: 2e 20 52 45 4e 41 4d 45 20 54 41 42 4c 45 20 2e  . RENAME TABLE .
18c0: 2e 2e 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c  .. added</li>.<l
18d0: 69 3e 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 20  i>AUTOINCREMENT 
18e0: 6b 65 79 77 6f 72 64 20 73 75 70 70 6f 72 74 65  keyword supporte
18f0: 64 20 6f 6e 20 49 4e 54 45 47 45 52 20 50 52 49  d on INTEGER PRI
1900: 4d 41 52 59 20 4b 45 59 3c 2f 6c 69 3e 0a 3c 6c  MARY KEY</li>.<l
1910: 69 3e 4d 61 6e 79 20 53 51 4c 49 54 45 5f 4f 4d  i>Many SQLITE_OM
1920: 49 54 5f 20 6d 61 63 72 6f 73 20 69 6e 73 65 72  IT_ macros inser
1930: 74 73 20 74 6f 20 6f 6d 69 74 20 66 65 61 74 75  ts to omit featu
1940: 72 65 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74  res at compile-t
1950: 69 6d 65 0a 20 20 20 20 61 6e 64 20 72 65 64 75  ime.    and redu
1960: 63 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 66  ce the library f
1970: 6f 6f 74 70 72 69 6e 74 2e 3c 2f 6c 69 3e 0a 3c  ootprint.</li>.<
1980: 6c 69 3e 54 68 65 20 52 45 49 4e 44 45 58 20 63  li>The REINDEX c
1990: 6f 6d 6d 61 6e 64 20 77 61 73 20 61 64 64 65 64  ommand was added
19a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 65  .</li>.<li>The e
19b0: 6e 67 69 6e 65 20 6e 6f 20 6c 6f 6e 67 65 72 20  ngine no longer 
19c0: 63 6f 6e 73 75 6c 74 73 20 74 68 65 20 6d 61 69  consults the mai
19d0: 6e 20 74 61 62 6c 65 20 69 66 20 69 74 20 63 61  n table if it ca
19e0: 6e 20 67 65 74 0a 20 20 20 20 61 6c 6c 20 74 68  n get.    all th
19f0: 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 74  e information it
1a00: 20 6e 65 65 64 73 20 66 72 6f 6d 20 61 6e 20 69   needs from an i
1a10: 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ndex.</li>.<li>M
1a20: 61 6e 79 20 6e 75 69 73 61 6e 63 65 20 62 75 67  any nuisance bug
1a30: 73 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  s fixed.</li>.}.
1a40: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4f 63 74 6f  .chng {2004 Octo
1a50: 62 65 72 20 31 31 20 28 33 2e 30 2e 38 29 7d 20  ber 11 (3.0.8)} 
1a60: 7b 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72  {.<li>Add suppor
1a70: 74 20 66 6f 72 20 44 45 46 45 52 52 45 44 2c 20  t for DEFERRED, 
1a80: 49 4d 4d 45 44 49 41 54 45 2c 20 61 6e 64 20 45  IMMEDIATE, and E
1a90: 58 43 4c 55 53 49 56 45 20 74 72 61 6e 73 61 63  XCLUSIVE transac
1aa0: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
1ab0: 41 6c 6c 6f 77 20 6e 65 77 20 75 73 65 72 2d 64  Allow new user-d
1ac0: 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73  efined functions
1ad0: 20 74 6f 20 62 65 20 63 72 65 61 74 65 64 20 77   to be created w
1ae0: 68 65 6e 20 74 68 65 72 65 20 61 72 65 0a 61 6c  hen there are.al
1af0: 72 65 61 64 79 20 6f 6e 65 20 6f 72 20 6d 6f 72  ready one or mor
1b00: 65 20 70 72 65 63 6f 6d 70 69 6c 65 64 20 53 51  e precompiled SQ
1b10: 4c 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 6c 69  L statements.<li
1b20: 3e 0a 3c 6c 69 3e 46 69 78 20 70 6f 72 74 61 62  >.<li>Fix portab
1b30: 69 6c 69 74 79 20 70 72 6f 62 6c 65 6d 73 20 66  ility problems f
1b40: 6f 72 20 4d 69 6e 67 77 2f 4d 53 59 53 2e 3c 2f  or Mingw/MSYS.</
1b50: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 79  li>.<li>Fix a by
1b60: 74 65 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f  te alignment pro
1b70: 62 6c 65 6d 20 6f 6e 20 36 34 2d 62 69 74 20 53  blem on 64-bit S
1b80: 70 61 72 63 20 6d 61 63 68 69 6e 65 73 2e 3c 2f  parc machines.</
1b90: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20  li>.<li>Fix the 
1ba0: 22 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d 61 6e  ".import" comman
1bb0: 64 20 6f 66 20 74 68 65 20 73 68 65 6c 6c 20 73  d of the shell s
1bc0: 6f 20 74 68 61 74 20 69 74 20 69 67 6e 6f 72 65  o that it ignore
1bd0: 73 20 5c 72 0a 63 68 61 72 61 63 74 65 72 73 20  s \r.characters 
1be0: 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6c 69  at the end of li
1bf0: 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  nes.</li>.<li>Th
1c00: 65 20 22 63 73 76 22 20 6d 6f 64 65 20 6f 70 74  e "csv" mode opt
1c10: 69 6f 6e 20 69 6e 20 74 68 65 20 73 68 65 6c 6c  ion in the shell
1c20: 20 70 75 74 73 20 73 74 72 69 6e 67 73 20 69 6e   puts strings in
1c30: 73 69 64 65 20 64 6f 75 62 6c 65 2d 71 75 6f 74  side double-quot
1c40: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
1c50: 20 74 79 70 6f 73 20 69 6e 20 64 6f 63 75 6d 65   typos in docume
1c60: 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  ntation.</li>.<l
1c70: 69 3e 43 6f 6e 76 65 72 74 20 61 72 72 61 79 20  i>Convert array 
1c80: 63 6f 6e 73 74 61 6e 74 73 20 69 6e 20 74 68 65  constants in the
1c90: 20 63 6f 64 65 20 74 6f 20 68 61 76 65 20 74 79   code to have ty
1ca0: 70 65 20 22 63 6f 6e 73 74 22 2e 3c 2f 6c 69 3e  pe "const".</li>
1cb0: 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73 20 63 6f  .<li>Numerous co
1cc0: 64 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  de optimizations
1cd0: 2c 20 73 70 65 63 69 61 6c 6c 79 20 6f 70 74 69  , specially opti
1ce0: 6d 69 7a 61 74 69 6f 6e 73 20 64 65 73 69 67 6e  mizations design
1cf0: 65 64 20 74 6f 0a 6d 61 6b 65 20 74 68 65 20 63  ed to.make the c
1d00: 6f 64 65 20 66 6f 6f 74 70 72 69 6e 74 20 73 6d  ode footprint sm
1d10: 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  aller.</li>.}..c
1d20: 68 6e 67 20 7b 32 30 30 34 20 53 65 70 74 65 6d  hng {2004 Septem
1d30: 62 65 72 20 31 38 20 28 33 2e 30 2e 37 29 7d 20  ber 18 (3.0.7)} 
1d40: 7b 0a 3c 6c 69 3e 54 68 65 20 42 54 72 65 65 20  {.<li>The BTree 
1d50: 6d 6f 64 75 6c 65 20 61 6c 6c 6f 63 61 74 65 73  module allocates
1d60: 20 6c 61 72 67 65 20 62 75 66 66 65 72 73 20 75   large buffers u
1d70: 73 69 6e 67 20 6d 61 6c 6c 6f 63 28 29 20 69 6e  sing malloc() in
1d80: 73 74 65 61 64 20 6f 66 0a 20 20 20 20 6f 66 66  stead of.    off
1d90: 20 6f 66 20 74 68 65 20 73 74 61 63 6b 2c 20 69   of the stack, i
1da0: 6e 20 6f 72 64 65 72 20 74 6f 20 70 6c 61 79 20  n order to play 
1db0: 62 65 74 74 65 72 20 6f 6e 20 6d 61 63 68 69 6e  better on machin
1dc0: 65 73 20 77 69 74 68 20 6c 69 6d 69 74 65 64 0a  es with limited.
1dd0: 20 20 20 20 73 74 61 63 6b 20 73 70 61 63 65 2e      stack space.
1de0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20  </li>.<li>Fixed 
1df0: 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63 74 73  naming conflicts
1e00: 20 73 6f 20 74 68 61 74 20 76 65 72 73 69 6f 6e   so that version
1e10: 73 20 32 2e 38 20 61 6e 64 20 33 2e 30 20 63 61  s 2.8 and 3.0 ca
1e20: 6e 20 62 65 0a 20 20 20 20 6c 69 6e 6b 65 64 20  n be.    linked 
1e30: 61 6e 64 20 75 73 65 64 20 74 6f 67 65 74 68 65  and used togethe
1e40: 72 20 69 6e 20 74 68 65 20 73 61 6d 65 20 41 4e  r in the same AN
1e50: 53 49 2d 43 20 73 6f 75 72 63 65 20 66 69 6c 65  SI-C source file
1e60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 69  .</li>.<li>New i
1e70: 6e 74 65 72 66 61 63 65 3a 20 73 71 6c 69 74 65  nterface: sqlite
1e80: 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72  3_bind_parameter
1e90: 5f 69 6e 64 65 78 28 29 3c 2f 6c 69 3e 0a 3c 6c  _index()</li>.<l
1ea0: 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f  i>Add support fo
1eb0: 72 20 77 69 6c 64 63 61 72 64 20 70 61 72 61 6d  r wildcard param
1ec0: 65 74 65 72 73 20 6f 66 20 74 68 65 20 66 6f 72  eters of the for
1ed0: 6d 3a 20 22 3f 6e 6e 6e 22 3c 2f 6c 69 3e 0a 3c  m: "?nnn"</li>.<
1ee0: 6c 69 3e 46 69 78 20 70 72 6f 62 6c 65 6d 73 20  li>Fix problems 
1ef0: 66 6f 75 6e 64 20 6f 6e 20 36 34 2d 62 69 74 20  found on 64-bit 
1f00: 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c  systems.</li>.<l
1f10: 69 3e 52 65 6d 6f 76 65 64 20 65 6e 63 6f 64 65  i>Removed encode
1f20: 2e 63 20 66 69 6c 65 20 28 63 6f 6e 74 61 69 6e  .c file (contain
1f30: 69 6e 67 20 75 6e 75 73 65 64 20 72 6f 75 74 69  ing unused routi
1f40: 6e 65 73 29 20 66 72 6f 6d 20 74 68 65 20 0a 20  nes) from the . 
1f50: 20 20 20 76 65 72 73 69 6f 6e 20 33 2e 30 20 73     version 3.0 s
1f60: 6f 75 72 63 65 20 74 72 65 65 2e 3c 2f 6c 69 3e  ource tree.</li>
1f70: 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33  .<li>The sqlite3
1f80: 5f 74 72 61 63 65 28 29 20 63 61 6c 6c 62 61 63  _trace() callbac
1f90: 6b 73 20 6f 63 63 75 72 20 62 65 66 6f 72 65 20  ks occur before 
1fa0: 65 61 63 68 20 73 74 61 74 65 6d 65 6e 74 0a 20  each statement. 
1fb0: 20 20 20 69 73 20 65 78 65 63 75 74 65 64 2c 20     is executed, 
1fc0: 6e 6f 74 20 77 68 65 6e 20 74 68 65 20 73 74 61  not when the sta
1fd0: 74 65 6d 65 6e 74 20 69 73 20 63 6f 6d 70 69 6c  tement is compil
1fe0: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  ed.</li>.<li>Mak
1ff0: 65 66 69 6c 65 20 75 70 64 61 74 65 73 20 61 6e  efile updates an
2000: 64 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20  d miscellaneous 
2010: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
2020: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 53 65  }..chng {2004 Se
2030: 70 74 65 6d 62 65 72 20 30 32 20 28 33 2e 30 2e  ptember 02 (3.0.
2040: 36 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 42  6 beta)} {.<li>B
2050: 65 74 74 65 72 20 64 65 74 65 63 74 69 6f 6e 20  etter detection 
2060: 61 6e 64 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  and handling of 
2070: 63 6f 72 72 75 70 74 20 64 61 74 61 62 61 73 65  corrupt database
2080: 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   files.</li>.<li
2090: 3e 54 68 65 20 73 71 6c 69 74 65 33 5f 73 74 65  >The sqlite3_ste
20a0: 70 28 29 20 69 6e 74 65 72 66 61 63 65 20 72 65  p() interface re
20b0: 74 75 72 6e 73 20 53 51 4c 49 54 45 5f 42 55 53  turns SQLITE_BUS
20c0: 59 20 69 66 20 69 74 20 69 73 20 75 6e 61 62 6c  Y if it is unabl
20d0: 65 0a 20 20 20 20 74 6f 20 63 6f 6d 6d 69 74 20  e.    to commit 
20e0: 61 20 63 68 61 6e 67 65 20 62 65 63 61 75 73 65  a change because
20f0: 20 6f 66 20 61 20 6c 6f 63 6b 3c 2f 6c 69 3e 0a   of a lock</li>.
2100: 3c 6c 69 3e 43 6f 6d 62 69 6e 65 20 74 68 65 20  <li>Combine the 
2110: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20  implementations 
2120: 6f 66 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f 42  of LIKE and GLOB
2130: 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 20   into a single. 
2140: 20 20 20 70 61 74 74 65 72 6e 2d 6d 61 74 63 68     pattern-match
2150: 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 2e 3c  ing subroutine.<
2160: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 73 63 65 6c 6c  /li>.<li>Miscell
2170: 61 6e 65 6f 75 73 20 63 6f 64 65 20 73 69 7a 65  aneous code size
2180: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61   optimizations a
2190: 6e 64 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69  nd bug fixes</li
21a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
21b0: 41 75 67 75 73 74 20 32 39 20 28 33 2e 30 2e 35  August 29 (3.0.5
21c0: 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 53 75   beta)} {.<li>Su
21d0: 70 70 6f 72 74 20 66 6f 72 20 22 3a 41 41 41 22  pport for ":AAA"
21e0: 20 73 74 79 6c 65 20 62 69 6e 64 20 70 61 72 61   style bind para
21f0: 6d 65 74 65 72 20 6e 61 6d 65 73 2e 3c 2f 6c 69  meter names.</li
2200: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
2210: 6e 65 77 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  new sqlite3_bind
2220: 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65 28  _parameter_name(
2230: 29 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69  ) interface.</li
2240: 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  >.<li>Support fo
2250: 72 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20 6e  r TCL variable n
2260: 61 6d 65 73 20 65 6d 62 65 64 64 65 64 20 69 6e  ames embedded in
2270: 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 20   SQL statements 
2280: 69 6e 20 74 68 65 0a 20 20 20 20 54 43 4c 20 62  in the.    TCL b
2290: 69 6e 64 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 3c 6c  indings.</li>.<l
22a0: 69 3e 54 68 65 20 54 43 4c 20 62 69 6e 64 69 6e  i>The TCL bindin
22b0: 67 73 20 74 72 61 6e 73 66 65 72 20 64 61 74 61  gs transfer data
22c0: 20 77 69 74 68 6f 75 74 20 6e 65 63 65 73 73 61   without necessa
22d0: 72 69 6c 79 20 64 6f 69 6e 67 20 61 20 63 6f 6e  rily doing a con
22e0: 76 65 72 73 69 6f 6e 0a 20 20 20 20 74 6f 20 61  version.    to a
22f0: 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c   string.</li>.<l
2300: 69 3e 54 68 65 20 64 61 74 61 62 61 73 65 20 66  i>The database f
2310: 6f 72 20 54 45 4d 50 20 74 61 62 6c 65 73 20 69  or TEMP tables i
2320: 73 20 6e 6f 74 20 63 72 65 61 74 65 64 20 75 6e  s not created un
2330: 74 69 6c 20 69 74 20 69 73 20 6e 65 65 64 65 64  til it is needed
2340: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
2350: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70  he ability to sp
2360: 65 63 69 66 79 20 61 6e 20 61 6c 74 65 72 6e 61  ecify an alterna
2370: 74 69 76 65 20 74 65 6d 70 6f 72 61 72 79 20 66  tive temporary f
2380: 69 6c 65 20 64 69 72 65 63 74 6f 72 79 0a 20 20  ile directory.  
2390: 20 20 75 73 69 6e 67 20 74 68 65 20 22 73 71 6c    using the "sql
23a0: 69 74 65 5f 74 65 6d 70 5f 64 69 72 65 63 74 6f  ite_temp_directo
23b0: 72 79 22 20 67 6c 6f 62 61 6c 20 76 61 72 69 61  ry" global varia
23c0: 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20  ble.</li>.<li>A 
23d0: 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74  compile-time opt
23e0: 69 6f 6e 20 28 53 51 4c 49 54 45 5f 42 55 53 59  ion (SQLITE_BUSY
23f0: 5f 52 45 53 45 52 56 45 44 5f 4c 4f 43 4b 29 20  _RESERVED_LOCK) 
2400: 63 61 75 73 65 73 20 74 68 65 20 62 75 73 79 0a  causes the busy.
2410: 20 20 20 20 68 61 6e 64 6c 65 72 20 74 6f 20 62      handler to b
2420: 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68  e called when th
2430: 65 72 65 20 69 73 20 63 6f 6e 74 65 6e 74 69 6f  ere is contentio
2440: 6e 20 66 6f 72 20 61 20 52 45 53 45 52 56 45 44  n for a RESERVED
2450: 20 6c 6f 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   lock.</li>.<li>
2460: 56 61 72 69 6f 75 73 20 62 75 67 20 66 69 78 65  Various bug fixe
2470: 73 20 61 6e 64 20 6f 70 74 69 6d 69 7a 61 74 69  s and optimizati
2480: 6f 6e 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ons</li>.}..chng
2490: 20 7b 32 30 30 34 20 41 75 67 75 73 74 20 38 20   {2004 August 8 
24a0: 28 33 2e 30 2e 34 20 62 65 74 61 29 7d 20 7b 0a  (3.0.4 beta)} {.
24b0: 3c 6c 69 3e 43 52 45 41 54 45 20 54 41 42 4c 45  <li>CREATE TABLE
24c0: 20 61 6e 64 20 44 52 4f 50 20 54 41 42 4c 45 20   and DROP TABLE 
24d0: 6e 6f 77 20 77 6f 72 6b 20 63 6f 72 72 65 63 74  now work correct
24e0: 6c 79 20 61 73 20 70 72 65 70 61 72 65 64 20 73  ly as prepared s
24f0: 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  tatements.</li>.
2500: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
2510: 20 56 41 43 55 55 4d 20 61 6e 64 20 55 4e 49 51   VACUUM and UNIQ
2520: 55 45 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e  UE indices.</li>
2530: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 22 2e 69  .<li>Add the ".i
2540: 6d 70 6f 72 74 22 20 63 6f 6d 6d 61 6e 64 20 74  mport" command t
2550: 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69  o the command-li
2560: 6e 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c  ne shell.</li>.<
2570: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
2580: 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 69 6e  t could cause in
2590: 64 65 78 20 63 6f 72 72 75 70 74 69 6f 6e 20 77  dex corruption w
25a0: 68 65 6e 20 61 6e 20 61 74 74 65 6d 70 74 20 74  hen an attempt t
25b0: 6f 0a 20 20 20 20 64 65 6c 65 74 65 20 72 6f 77  o.    delete row
25c0: 73 20 6f 66 20 61 20 74 61 62 6c 65 20 69 73 20  s of a table is 
25d0: 62 6c 6f 63 6b 65 64 20 62 79 20 61 20 70 65 6e  blocked by a pen
25e0: 64 69 6e 67 20 71 75 65 72 79 2e 3c 2f 6c 69 3e  ding query.</li>
25f0: 0a 3c 6c 69 3e 4c 69 62 72 61 72 79 20 73 69 7a  .<li>Library siz
2600: 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e  e optimizations.
2610: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
2620: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e  minor bug fixes.
2630: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
2640: 30 30 34 20 4a 75 6c 79 20 32 32 20 28 32 2e 38  004 July 22 (2.8
2650: 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 54 68 69 73  .15)} {.<li>This
2660: 20 69 73 20 61 20 6d 61 69 6e 74 65 6e 61 6e 63   is a maintenanc
2670: 65 20 72 65 6c 65 61 73 65 20 6f 6e 6c 79 2e 20  e release only. 
2680: 20 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62   Various minor b
2690: 75 67 73 20 68 61 76 65 20 62 65 65 6e 0a 66 69  ugs have been.fi
26a0: 78 65 64 20 61 6e 64 20 73 6f 6d 65 20 70 6f 72  xed and some por
26b0: 74 61 62 69 6c 69 74 79 20 65 6e 68 61 6e 63 65  tability enhance
26c0: 6d 65 6e 74 73 20 61 72 65 20 61 64 64 65 64 2e  ments are added.
26d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
26e0: 30 30 34 20 4a 75 6c 79 20 32 32 20 28 33 2e 30  004 July 22 (3.0
26f0: 2e 33 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e  .3 beta)} {.<li>
2700: 54 68 65 20 73 65 63 6f 6e 64 20 62 65 74 61 20  The second beta 
2710: 72 65 6c 65 61 73 65 20 66 6f 72 20 53 51 4c 69  release for SQLi
2720: 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 3c 6c 69  te 3.0.</li>.<li
2730: 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72  >Add support for
2740: 20 22 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69   "PRAGMA page_si
2750: 7a 65 22 20 74 6f 20 61 64 6a 75 73 74 20 74 68  ze" to adjust th
2760: 65 20 70 61 67 65 20 73 69 7a 65 20 6f 66 0a 74  e page size of.t
2770: 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69  he database.</li
2780: 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 62 75  >.<li>Various bu
2790: 67 20 66 69 78 65 73 20 61 6e 64 20 64 6f 63 75  g fixes and docu
27a0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
27b0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
27c0: 7b 32 30 30 34 20 4a 75 6e 65 20 33 30 20 28 33  {2004 June 30 (3
27d0: 2e 30 2e 32 20 62 65 74 61 29 7d 20 7b 0a 3c 6c  .0.2 beta)} {.<l
27e0: 69 3e 54 68 65 20 66 69 72 73 74 20 62 65 74 61  i>The first beta
27f0: 20 72 65 6c 65 61 73 65 20 66 6f 72 20 53 51 4c   release for SQL
2800: 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 7d 0a  ite 3.0.</li>.}.
2810: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65  .chng {2004 June
2820: 20 32 32 20 28 33 2e 30 2e 31 20 61 6c 70 68 61   22 (3.0.1 alpha
2830: 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74 20 63  )} {.<li><font c
2840: 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e 0a 20  olor="red"><b>. 
2850: 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52 65 6c     *** Alpha Rel
2860: 65 61 73 65 20 2d 20 52 65 73 65 61 72 63 68 20  ease - Research 
2870: 41 6e 64 20 54 65 73 74 69 6e 67 20 55 73 65 20  And Testing Use 
2880: 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f  Only ***</b></fo
2890: 6e 74 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20  nt>.<li>Lots of 
28a0: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
28b0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
28c0: 6e 65 20 31 38 20 28 33 2e 30 2e 30 20 61 6c 70  ne 18 (3.0.0 alp
28d0: 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74  ha)} {.<li><font
28e0: 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e   color="red"><b>
28f0: 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52  .    *** Alpha R
2900: 65 6c 65 61 73 65 20 2d 20 52 65 73 65 61 72 63  elease - Researc
2910: 68 20 41 6e 64 20 54 65 73 74 69 6e 67 20 55 73  h And Testing Us
2920: 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f  e Only ***</b></
2930: 66 6f 6e 74 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72  font>.<li>Suppor
2940: 74 20 66 6f 72 20 69 6e 74 65 72 6e 61 74 69 6f  t for internatio
2950: 6e 61 6c 69 7a 61 74 69 6f 6e 20 69 6e 63 6c 75  nalization inclu
2960: 64 69 6e 67 20 55 54 46 2d 38 2c 20 55 54 46 2d  ding UTF-8, UTF-
2970: 31 36 2c 20 61 6e 64 0a 20 20 20 20 75 73 65 72  16, and.    user
2980: 20 64 65 66 69 6e 65 64 20 63 6f 6c 6c 61 74 69   defined collati
2990: 6e 67 20 73 65 71 75 65 6e 63 65 73 2e 3c 2f 6c  ng sequences.</l
29a0: 69 3e 0a 3c 6c 69 3e 4e 65 77 20 66 69 6c 65 20  i>.<li>New file 
29b0: 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20 32  format that is 2
29c0: 35 25 20 74 6f 20 33 35 25 20 73 6d 61 6c 6c 65  5% to 35% smalle
29d0: 72 20 66 6f 72 20 74 79 70 69 63 61 6c 20 75 73  r for typical us
29e0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72  e.</li>.<li>Impr
29f0: 6f 76 65 64 20 63 6f 6e 63 75 72 72 65 6e 63 79  oved concurrency
2a00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 74 6f 6d 69  .</li>.<li>Atomi
2a10: 63 20 63 6f 6d 6d 69 74 73 20 66 6f 72 20 41 54  c commits for AT
2a20: 54 41 43 48 65 64 20 64 61 74 61 62 61 73 65 73  TACHed databases
2a30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  .</li>.<li>Remov
2a40: 65 20 63 72 75 66 74 20 66 72 6f 6d 20 74 68 65  e cruft from the
2a50: 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   APIs.</li>.<li>
2a60: 42 4c 4f 42 20 73 75 70 70 6f 72 74 2e 3c 2f 6c  BLOB support.</l
2a70: 69 3e 0a 3c 6c 69 3e 36 34 2d 62 69 74 20 72 6f  i>.<li>64-bit ro
2a80: 77 69 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c  wids.</li>.<li><
2a90: 61 20 68 72 65 66 3d 22 76 65 72 73 69 6f 6e 33  a href="version3
2aa0: 2e 68 74 6d 6c 22 3e 4d 6f 72 65 20 69 6e 66 6f  .html">More info
2ab0: 72 6d 61 74 69 6f 6e 3c 2f 61 3e 2e 0a 7d 0a 0a  rmation</a>..}..
2ac0: 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65 20  chng {2004 June 
2ad0: 39 20 28 32 2e 38 2e 31 34 29 7d 20 7b 0a 3c 6c  9 (2.8.14)} {.<l
2ae0: 69 3e 46 69 78 20 74 68 65 20 6d 69 6e 28 29 20  i>Fix the min() 
2af0: 61 6e 64 20 6d 61 78 28 29 20 6f 70 74 69 6d 69  and max() optimi
2b00: 7a 65 72 20 73 6f 20 74 68 61 74 20 69 74 20 77  zer so that it w
2b10: 6f 72 6b 73 20 77 68 65 6e 20 74 68 65 20 46 52  orks when the FR
2b20: 4f 4d 0a 20 20 20 20 63 6c 61 75 73 65 20 63 6f  OM.    clause co
2b30: 6e 73 69 73 74 73 20 6f 66 20 61 20 73 75 62 71  nsists of a subq
2b40: 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  uery.</li>.<li>I
2b50: 67 6e 6f 72 65 20 65 78 74 72 61 20 77 68 69 74  gnore extra whit
2b60: 65 73 70 61 63 65 20 61 74 20 74 68 65 20 65 6e  espace at the en
2b70: 64 20 6f 66 20 6f 66 20 22 2e 22 20 63 6f 6d 6d  d of of "." comm
2b80: 61 6e 64 73 20 69 6e 20 74 68 65 20 73 68 65 6c  ands in the shel
2b90: 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 6e 64  l.</li>.<li>Bund
2ba0: 6c 65 20 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65  le sqlite_encode
2bb0: 5f 62 69 6e 61 72 79 28 29 20 61 6e 64 20 73 71  _binary() and sq
2bc0: 6c 69 74 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61  lite_decode_bina
2bd0: 72 79 28 29 20 77 69 74 68 20 74 68 65 20 0a 20  ry() with the . 
2be0: 20 20 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e     library.</li>
2bf0: 0a 3c 6c 69 3e 54 68 65 20 54 45 4d 50 5f 53 54  .<li>The TEMP_ST
2c00: 4f 52 45 20 61 6e 64 20 44 45 46 41 55 4c 54 5f  ORE and DEFAULT_
2c10: 54 45 4d 50 5f 53 54 4f 52 45 20 70 72 61 67 6d  TEMP_STORE pragm
2c20: 61 73 20 6e 6f 77 20 77 6f 72 6b 2e 3c 2f 6c 69  as now work.</li
2c30: 3e 0a 3c 6c 69 3e 43 6f 64 65 20 63 68 61 6e 67  >.<li>Code chang
2c40: 65 73 20 74 6f 20 63 6f 6d 70 69 6c 65 20 63 6c  es to compile cl
2c50: 65 61 6e 6c 79 20 75 73 69 6e 67 20 4f 70 65 6e  eanly using Open
2c60: 57 61 74 63 6f 6d 2e 3c 2f 6c 69 3e 0a 3c 6c 69  Watcom.</li>.<li
2c70: 3e 46 69 78 20 56 44 42 45 20 73 74 61 63 6b 20  >Fix VDBE stack 
2c80: 6f 76 65 72 66 6c 6f 77 20 70 72 6f 62 6c 65 6d  overflow problem
2c90: 73 20 77 69 74 68 20 49 4e 53 54 45 41 44 20 4f  s with INSTEAD O
2ca0: 46 20 74 72 69 67 67 65 72 73 20 61 6e 64 0a 20  F triggers and. 
2cb0: 20 20 20 4e 55 4c 4c 73 20 69 6e 20 49 4e 20 6f     NULLs in IN o
2cc0: 70 65 72 61 74 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c  perators.</li>.<
2cd0: 6c 69 3e 41 64 64 20 74 68 65 20 67 6c 6f 62 61  li>Add the globa
2ce0: 6c 20 76 61 72 69 61 62 6c 65 20 73 71 6c 69 74  l variable sqlit
2cf0: 65 5f 74 65 6d 70 5f 64 69 72 65 63 74 6f 72 79  e_temp_directory
2d00: 20 77 68 69 63 68 20 69 66 20 73 65 74 20 64 65   which if set de
2d10: 66 69 6e 65 73 20 74 68 65 0a 20 20 20 20 64 69  fines the.    di
2d20: 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63 68  rectory in which
2d30: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73   temporary files
2d40: 20 61 72 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69   are stored.</li
2d50: 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 69 6e 74  >.<li>sqlite_int
2d60: 65 72 72 75 70 74 28 29 20 70 6c 61 79 73 20 77  errupt() plays w
2d70: 65 6c 6c 20 77 69 74 68 20 56 41 43 55 55 4d 2e  ell with VACUUM.
2d80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
2d90: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e  minor bug fixes.
2da0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
2db0: 30 30 34 20 4d 61 72 63 68 20 38 20 28 32 2e 38  004 March 8 (2.8
2dc0: 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e 52 65 66 61  .13)} {.<li>Refa
2dd0: 63 74 6f 72 20 70 61 72 74 73 20 6f 66 20 74 68  ctor parts of th
2de0: 65 20 63 6f 64 65 20 69 6e 20 6f 72 64 65 72 20  e code in order 
2df0: 74 6f 20 6d 61 6b 65 20 74 68 65 20 63 6f 64 65  to make the code
2e00: 20 66 6f 6f 74 70 72 69 6e 74 0a 20 20 20 20 73   footprint.    s
2e10: 6d 61 6c 6c 65 72 2e 20 20 54 68 65 20 63 6f 64  maller.  The cod
2e20: 65 20 69 73 20 6e 6f 77 20 61 6c 73 6f 20 61 20  e is now also a 
2e30: 6c 69 74 74 6c 65 20 62 69 74 20 66 61 73 74 65  little bit faste
2e40: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69  r.</li>.<li>sqli
2e50: 74 65 5f 65 78 65 63 28 29 20 69 73 20 6e 6f 77  te_exec() is now
2e60: 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 73 20   implemented as 
2e70: 61 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64  a wrapper around
2e80: 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c 65 28   sqlite_compile(
2e90: 29 0a 20 20 20 20 61 6e 64 20 73 71 6c 69 74 65  ).    and sqlite
2ea0: 5f 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c  _step().</li>.<l
2eb0: 69 3e 54 68 65 20 62 75 69 6c 74 2d 69 6e 20 6d  i>The built-in m
2ec0: 69 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20 66  in() and max() f
2ed0: 75 6e 63 74 69 6f 6e 73 20 6e 6f 77 20 68 6f 6e  unctions now hon
2ee0: 6f 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 63  or the differenc
2ef0: 65 20 62 65 74 77 65 65 6e 0a 20 20 20 20 4e 55  e between.    NU
2f00: 4d 45 52 49 43 20 61 6e 64 20 54 45 58 54 20 64  MERIC and TEXT d
2f10: 61 74 61 74 79 70 65 73 2e 20 20 46 6f 72 6d 65  atatypes.  Forme
2f20: 72 6c 79 2c 20 6d 69 6e 28 29 20 61 6e 64 20 6d  rly, min() and m
2f30: 61 78 28 29 20 61 6c 77 61 79 73 20 61 73 73 75  ax() always assu
2f40: 6d 65 64 0a 20 20 20 20 74 68 65 69 72 20 61 72  med.    their ar
2f50: 67 75 6d 65 6e 74 73 20 77 65 72 65 20 6f 66 20  guments were of 
2f60: 74 79 70 65 20 4e 55 4d 45 52 49 43 2e 3c 2f 6c  type NUMERIC.</l
2f70: 69 3e 0a 3c 6c 69 3e 4e 65 77 20 48 48 3a 4d 4d  i>.<li>New HH:MM
2f80: 3a 53 53 20 6d 6f 64 69 66 69 65 72 20 74 6f 20  :SS modifier to 
2f90: 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 64 61 74  the built-in dat
2fa0: 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73  e/time functions
2fb0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72  .</li>.<li>Exper
2fc0: 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 6c  imental sqlite_l
2fd0: 61 73 74 5f 73 74 61 74 65 6d 65 6e 74 5f 63 68  ast_statement_ch
2fe0: 61 6e 67 65 73 28 29 20 41 50 49 20 61 64 64 65  anges() API adde
2ff0: 64 2e 20 20 46 69 78 65 64 20 74 68 65 0a 20 20  d.  Fixed the.  
3000: 20 20 74 68 65 20 6c 61 73 74 5f 69 6e 73 65 72    the last_inser
3010: 74 5f 72 6f 77 69 64 28 29 20 66 75 6e 63 74 69  t_rowid() functi
3020: 6f 6e 20 73 6f 20 74 68 61 74 20 69 74 20 77 6f  on so that it wo
3030: 72 6b 73 20 63 6f 72 72 65 63 74 6c 79 20 77 69  rks correctly wi
3040: 74 68 0a 20 20 20 20 74 72 69 67 67 65 72 73 2e  th.    triggers.
3050: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 66 75  </li>.<li>Add fu
3060: 6e 63 74 69 6f 6e 73 20 70 72 6f 74 6f 74 79 70  nctions prototyp
3070: 65 73 20 66 6f 72 20 74 68 65 20 64 61 74 61 62  es for the datab
3080: 61 73 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 41  ase encryption A
3090: 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  PI.</li>.<li>Fix
30a0: 20 73 65 76 65 72 61 6c 20 6e 75 69 73 61 6e 63   several nuisanc
30b0: 65 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e bugs.</li>.}..
30c0: 63 68 6e 67 20 7b 32 30 30 34 20 46 65 62 72 75  chng {2004 Febru
30d0: 61 72 79 20 38 20 28 32 2e 38 2e 31 32 29 7d 20  ary 8 (2.8.12)} 
30e0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
30f0: 74 68 61 74 20 77 69 6c 6c 20 6d 69 67 68 74 20  that will might 
3100: 63 6f 72 72 75 70 74 20 74 68 65 20 72 6f 6c 6c  corrupt the roll
3110: 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 20 69 66 20  back journal if 
3120: 61 20 70 6f 77 65 72 20 66 61 69 6c 75 72 65 0a  a power failure.
3130: 20 20 20 20 6f 72 20 65 78 74 65 72 6e 61 6c 20      or external 
3140: 70 72 6f 67 72 61 6d 20 68 61 6c 74 20 6f 63 63  program halt occ
3150: 75 72 73 20 69 6e 20 74 68 65 20 6d 69 64 64 6c  urs in the middl
3160: 65 20 6f 66 20 61 20 43 4f 4d 4d 49 54 2e 20 20  e of a COMMIT.  
3170: 54 68 65 20 63 6f 72 72 75 70 74 0a 20 20 20 20  The corrupt.    
3180: 6a 6f 75 72 6e 61 6c 20 63 61 6e 20 6c 65 61 64  journal can lead
3190: 20 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72   to database cor
31a0: 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 69 74 20  ruption when it 
31b0: 69 73 20 72 6f 6c 6c 65 64 20 62 61 63 6b 2e 3c  is rolled back.<
31c0: 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 64 75 63 65 20  /li>.<li>Reduce 
31d0: 74 68 65 20 73 69 7a 65 20 61 6e 64 20 69 6e 63  the size and inc
31e0: 72 65 61 73 65 20 74 68 65 20 73 70 65 65 64 20  rease the speed 
31f0: 6f 66 20 76 61 72 69 6f 75 73 20 6d 6f 64 75 6c  of various modul
3200: 65 73 2c 20 65 73 70 65 63 69 61 6c 6c 79 0a 20  es, especially. 
3210: 20 20 20 74 68 65 20 76 69 72 74 75 61 6c 20 6d     the virtual m
3220: 61 63 68 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  achine.</li>.<li
3230: 3e 41 6c 6c 6f 77 20 22 26 6c 74 3b 65 78 70 72  >Allow "&lt;expr
3240: 26 67 74 3b 20 49 4e 20 26 6c 74 3b 74 61 62 6c  &gt; IN &lt;tabl
3250: 65 26 67 74 3b 22 20 61 73 20 61 20 73 68 6f 72  e&gt;" as a shor
3260: 74 68 61 6e 64 20 66 6f 72 0a 20 20 20 20 22 26  thand for.    "&
3270: 6c 74 3b 65 78 70 72 26 67 74 3b 20 49 4e 20 28  lt;expr&gt; IN (
3280: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 26 6c  SELECT * FROM &l
3290: 74 3b 74 61 62 6c 65 26 67 74 3b 22 2e 3c 2f 6c  t;table&gt;".</l
32a0: 69 3e 0a 3c 6c 69 3e 4f 70 74 69 6d 69 7a 61 74  i>.<li>Optimizat
32b0: 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 71 6c 69  ions to the sqli
32c0: 74 65 5f 6d 70 72 69 6e 74 66 28 29 20 72 6f 75  te_mprintf() rou
32d0: 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  tine.</li>.<li>M
32e0: 61 6b 65 20 73 75 72 65 20 74 68 65 20 4d 49 4e  ake sure the MIN
32f0: 28 29 20 61 6e 64 20 4d 41 58 28 29 20 6f 70 74  () and MAX() opt
3300: 69 6d 69 7a 61 74 69 6f 6e 73 20 77 6f 72 6b 20  imizations work 
3310: 77 69 74 68 69 6e 20 73 75 62 71 75 65 72 69 65  within subquerie
3320: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
3330: 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 31 34  {2004 January 14
3340: 20 28 32 2e 38 2e 31 31 29 7d 20 7b 0a 3c 6c 69   (2.8.11)} {.<li
3350: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 68 6f  >Fix a bug in ho
3360: 77 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f  w the IN operato
3370: 72 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 20  r handles NULLs 
3380: 69 6e 20 73 75 62 71 75 65 72 69 65 73 2e 20 20  in subqueries.  
3390: 54 68 65 20 62 75 67 0a 20 20 20 20 77 61 73 20  The bug.    was 
33a0: 69 6e 74 72 6f 64 75 63 65 64 20 62 79 20 74 68  introduced by th
33b0: 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65 61  e previous relea
33c0: 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  se.</li>.}..chng
33d0: 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 31   {2004 January 1
33e0: 33 20 28 32 2e 38 2e 31 30 29 7d 20 7b 0a 3c 6c  3 (2.8.10)} {.<l
33f0: 69 3e 46 69 78 20 61 20 70 6f 74 65 6e 74 69 61  i>Fix a potentia
3400: 6c 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  l database corru
3410: 70 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 6f 6e  ption problem on
3420: 20 55 6e 69 78 20 63 61 75 73 65 64 20 62 79 20   Unix caused by 
3430: 74 68 65 20 66 61 63 74 0a 20 20 20 20 74 68 61  the fact.    tha
3440: 74 20 61 6c 6c 20 70 6f 73 69 78 20 61 64 76 69  t all posix advi
3450: 73 6f 72 79 20 6c 6f 63 6b 73 20 61 72 65 20 63  sory locks are c
3460: 6c 65 61 72 65 64 20 77 68 65 6e 65 76 65 72 20  leared whenever 
3470: 79 6f 75 20 63 6c 6f 73 65 28 29 20 61 20 66 69  you close() a fi
3480: 6c 65 2e 0a 20 20 20 20 54 68 65 20 77 6f 72 6b  le..    The work
3490: 20 61 72 6f 75 6e 64 20 69 74 20 74 6f 20 65 6d   around it to em
34a0: 62 61 72 67 6f 20 61 6c 6c 20 63 6c 6f 73 65 28  bargo all close(
34b0: 29 20 63 61 6c 6c 73 20 77 68 69 6c 65 20 6c 6f  ) calls while lo
34c0: 63 6b 73 20 61 72 65 20 0a 20 20 20 20 6f 75 74  cks are .    out
34d0: 73 74 61 6e 64 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c  standing.</li>.<
34e0: 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 65  li>Performance e
34f0: 6e 68 61 6e 63 65 6d 65 6e 74 73 20 6f 6e 20 73  nhancements on s
3500: 6f 6d 65 20 63 6f 72 6e 65 72 20 63 61 73 65 73  ome corner cases
3510: 20 6f 66 20 43 4f 55 4e 54 28 2a 29 2e 3c 2f 6c   of COUNT(*).</l
3520: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65  i>.<li>Make sure
3530: 20 74 68 65 20 69 6e 2d 6d 65 6d 6f 72 79 20 62   the in-memory b
3540: 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73 65 20  ackend response 
3550: 73 61 6e 65 6c 79 20 69 66 20 6d 61 6c 6c 6f 63  sanely if malloc
3560: 28 29 20 66 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c  () fails.</li>.<
3570: 6c 69 3e 41 6c 6c 6f 77 20 73 71 6c 69 74 65 5f  li>Allow sqlite_
3580: 65 78 65 63 28 29 20 74 6f 20 62 65 20 63 61 6c  exec() to be cal
3590: 6c 65 64 20 66 72 6f 6d 20 77 69 74 68 69 6e 20  led from within 
35a0: 75 73 65 72 2d 64 65 66 69 6e 65 64 20 53 51 4c  user-defined SQL
35b0: 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2e 3c  .    functions.<
35c0: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
35d0: 64 20 61 63 63 75 72 61 63 79 20 6f 66 20 66 6c  d accuracy of fl
35e0: 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63 6f 6e  oating-point con
35f0: 76 65 72 73 69 6f 6e 73 20 75 73 69 6e 67 20 22  versions using "
3600: 6c 6f 6e 67 20 64 6f 75 62 6c 65 22 2e 3c 2f 6c  long double".</l
3610: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73  i>.<li>Bug fixes
3620: 20 69 6e 20 74 68 65 20 65 78 70 65 72 69 6d 65   in the experime
3630: 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66  ntal date/time f
3640: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d  unctions.</li>.}
3650: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e  ..chng {2004 Jan
3660: 75 61 72 79 20 35 20 28 32 2e 38 2e 39 29 7d 20  uary 5 (2.8.9)} 
3670: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 33 32 2d 62  {.<li>Fix a 32-b
3680: 69 74 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66  it integer overf
3690: 6c 6f 77 20 70 72 6f 62 6c 65 6d 20 74 68 61 74  low problem that
36a0: 20 63 6f 75 6c 64 20 72 65 73 75 6c 74 20 69 6e   could result in
36b0: 20 63 6f 72 72 75 70 74 0a 20 20 20 20 69 6e 64   corrupt.    ind
36c0: 69 63 65 73 20 69 6e 20 61 20 64 61 74 61 62 61  ices in a databa
36d0: 73 65 20 69 66 20 6c 61 72 67 65 20 6e 65 67 61  se if large nega
36e0: 74 69 76 65 20 6e 75 6d 62 65 72 73 20 28 6c 65  tive numbers (le
36f0: 73 73 20 74 68 61 6e 20 2d 32 31 34 37 34 38 33  ss than -2147483
3700: 36 34 38 29 0a 20 20 20 20 77 65 72 65 20 69 6e  648).    were in
3710: 73 65 72 74 65 64 20 69 6e 74 6f 20 61 20 69 6e  serted into a in
3720: 64 65 78 65 64 20 6e 75 6d 65 72 69 63 20 63 6f  dexed numeric co
3730: 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  lumn.</li>.<li>F
3740: 69 78 20 61 20 6c 6f 63 6b 69 6e 67 20 70 72 6f  ix a locking pro
3750: 62 6c 65 6d 20 6f 6e 20 6d 75 6c 74 69 2d 74 68  blem on multi-th
3760: 72 65 61 64 65 64 20 4c 69 6e 75 78 20 69 6d 70  readed Linux imp
3770: 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2e 3c 2f 6c  lementations.</l
3780: 69 3e 0a 3c 6c 69 3e 41 6c 77 61 79 73 20 75 73  i>.<li>Always us
3790: 65 20 22 2e 22 20 69 6e 73 74 65 61 64 20 6f 66  e "." instead of
37a0: 20 22 2c 22 20 61 73 20 74 68 65 20 64 65 63 69   "," as the deci
37b0: 6d 61 6c 20 70 6f 69 6e 74 20 65 76 65 6e 20 69  mal point even i
37c0: 66 20 74 68 65 20 6c 6f 63 61 6c 65 0a 20 20 20  f the locale.   
37d0: 20 72 65 71 75 65 73 74 73 20 22 2c 22 2e 3c 2f   requests ",".</
37e0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 55 54  li>.<li>Added UT
37f0: 43 20 74 6f 20 6c 6f 63 61 6c 74 69 6d 65 20 63  C to localtime c
3800: 6f 6e 76 65 72 73 69 6f 6e 73 20 74 6f 20 74 68  onversions to th
3810: 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64  e experimental d
3820: 61 74 65 2f 74 69 6d 65 0a 20 20 20 20 66 75 6e  ate/time.    fun
3830: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
3840: 3e 42 75 67 20 66 69 78 65 73 20 74 6f 20 64 61  >Bug fixes to da
3850: 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e  te/time function
3860: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
3870: 7b 32 30 30 33 20 44 65 63 65 6d 62 65 72 20 31  {2003 December 1
3880: 37 20 28 32 2e 38 2e 38 29 7d 20 7b 0a 3c 6c 69  7 (2.8.8)} {.<li
3890: 3e 46 69 78 20 61 20 63 72 69 74 69 63 61 6c 20  >Fix a critical 
38a0: 62 75 67 20 69 6e 74 72 6f 64 75 63 65 64 20 69  bug introduced i
38b0: 6e 74 6f 20 32 2e 38 2e 30 20 77 68 69 63 68 20  nto 2.8.0 which 
38c0: 63 6f 75 6c 64 20 63 61 75 73 65 0a 20 20 20 20  could cause.    
38d0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
38e0: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ion.</li>.<li>Fi
38f0: 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68  x a problem with
3900: 20 33 2d 77 61 79 20 6a 6f 69 6e 73 20 74 68 61   3-way joins tha
3910: 74 20 64 6f 20 6e 6f 74 20 75 73 65 20 69 6e 64  t do not use ind
3920: 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ices</li>.<li>Th
3930: 65 20 56 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64  e VACUUM command
3940: 20 6e 6f 77 20 77 6f 72 6b 73 20 77 69 74 68 20   now works with 
3950: 74 68 65 20 6e 6f 6e 2d 63 61 6c 6c 62 61 63 6b  the non-callback
3960: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d   API</li>.<li>Im
3970: 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74 68  provements to th
3980: 65 20 22 50 52 41 47 4d 41 20 69 6e 74 65 67 72  e "PRAGMA integr
3990: 69 74 79 5f 63 68 65 63 6b 22 20 63 6f 6d 6d 61  ity_check" comma
39a0: 6e 64 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  nd</li>.}..chng 
39b0: 7b 32 30 30 33 20 44 65 63 65 6d 62 65 72 20 34  {2003 December 4
39c0: 20 28 32 2e 38 2e 37 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.7)} {.<li>
39d0: 41 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e 74  Added experiment
39e0: 61 6c 20 73 71 6c 69 74 65 5f 62 69 6e 64 28 29  al sqlite_bind()
39f0: 20 61 6e 64 20 73 71 6c 69 74 65 5f 72 65 73 65   and sqlite_rese
3a00: 74 28 29 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c  t() APIs.</li>.<
3a10: 6c 69 3e 49 66 20 74 68 65 20 6e 61 6d 65 20 6f  li>If the name o
3a20: 66 20 74 68 65 20 64 61 74 61 62 61 73 65 20 69  f the database i
3a30: 73 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e  s an empty strin
3a40: 67 2c 20 6f 70 65 6e 20 61 20 6e 65 77 20 64 61  g, open a new da
3a50: 74 61 62 61 73 65 0a 20 20 20 20 69 6e 20 61 20  tabase.    in a 
3a60: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 74  temporary file t
3a70: 68 61 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63  hat is automatic
3a80: 61 6c 6c 79 20 64 65 6c 65 74 65 64 20 77 68 65  ally deleted whe
3a90: 6e 20 74 68 65 20 64 61 74 61 62 61 73 65 0a 20  n the database. 
3aa0: 20 20 20 69 73 20 63 6c 6f 73 65 64 2e 3c 2f 6c     is closed.</l
3ab0: 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e  i>.<li>Performan
3ac0: 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20  ce enhancements 
3ad0: 69 6e 20 74 68 65 20 6c 65 6d 6f 6e 2d 67 65 6e  in the lemon-gen
3ae0: 65 72 61 74 65 64 20 70 61 72 73 65 72 3c 2f 6c  erated parser</l
3af0: 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e  i>.<li>Experimen
3b00: 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75  tal date/time fu
3b10: 6e 63 74 69 6f 6e 73 20 72 65 76 69 73 65 64 2e  nctions revised.
3b20: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 69 73 61 6c 6c  </li>.<li>Disall
3b30: 6f 77 20 74 65 6d 70 6f 72 61 72 79 20 69 6e 64  ow temporary ind
3b40: 69 63 65 73 20 6f 6e 20 70 65 72 6d 61 6e 65 6e  ices on permanen
3b50: 74 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c  t tables.</li>.<
3b60: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
3b70: 20 75 70 64 61 74 65 73 20 61 6e 64 20 74 79 70   updates and typ
3b80: 6f 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  o fixes</li>.<li
3b90: 3e 41 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e  >Added experimen
3ba0: 74 61 6c 20 73 71 6c 69 74 65 5f 70 72 6f 67 72  tal sqlite_progr
3bb0: 65 73 73 5f 68 61 6e 64 6c 65 72 28 29 20 63 61  ess_handler() ca
3bc0: 6c 6c 62 61 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a  llback API</li>.
3bd0: 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 75 70 70  <li>Removed supp
3be0: 6f 72 74 20 66 6f 72 20 74 68 65 20 4f 72 61 63  ort for the Orac
3bf0: 6c 65 38 20 6f 75 74 65 72 20 6a 6f 69 6e 20 73  le8 outer join s
3c00: 79 6e 74 61 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  yntax.</li>.<li>
3c10: 41 6c 6c 6f 77 20 47 4c 4f 42 20 61 6e 64 20 4c  Allow GLOB and L
3c20: 49 4b 45 20 6f 70 65 72 61 74 6f 72 73 20 74 6f  IKE operators to
3c30: 20 77 6f 72 6b 20 61 73 20 66 75 6e 63 74 69 6f   work as functio
3c40: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  ns.</li>.<li>Oth
3c50: 65 72 20 6d 69 6e 6f 72 20 64 6f 63 75 6d 65 6e  er minor documen
3c60: 74 61 74 69 6f 6e 20 61 6e 64 20 6d 61 6b 65 66  tation and makef
3c70: 69 6c 65 20 63 68 61 6e 67 65 73 20 61 6e 64 20  ile changes and 
3c80: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
3c90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 41 75  }..chng {2003 Au
3ca0: 67 75 73 74 20 32 31 20 28 32 2e 38 2e 36 29 7d  gust 21 (2.8.6)}
3cb0: 20 7b 0a 3c 6c 69 3e 4d 6f 76 65 64 20 74 68 65   {.<li>Moved the
3cc0: 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72 79 20   CVS repository 
3cd0: 74 6f 20 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72  to www.sqlite.or
3ce0: 67 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74  g</li>.<li>Updat
3cf0: 65 20 74 68 65 20 4e 55 4c 4c 2d 68 61 6e 64 6c  e the NULL-handl
3d00: 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  ing documentatio
3d10: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65  n.</li>.<li>Expe
3d20: 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69  rimental date/ti
3d30: 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 64 64  me functions add
3d40: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ed.</li>.<li>Bug
3d50: 20 66 69 78 3a 20 63 6f 72 72 65 63 74 6c 79 20   fix: correctly 
3d60: 65 76 61 6c 75 61 74 65 20 61 20 76 69 65 77 20  evaluate a view 
3d70: 6f 66 20 61 20 76 69 65 77 20 77 69 74 68 6f 75  of a view withou
3d80: 74 20 73 65 67 66 61 75 6c 74 69 6e 67 2e 3c 2f  t segfaulting.</
3d90: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
3da0: 20 70 72 65 76 65 6e 74 20 64 61 74 61 62 61 73   prevent databas
3db0: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20  e corruption if 
3dc0: 79 6f 75 20 64 72 6f 70 70 65 64 20 61 0a 20 20  you dropped a.  
3dd0: 20 20 74 72 69 67 67 65 72 20 74 68 61 74 20 68    trigger that h
3de0: 61 64 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65  ad the same name
3df0: 20 61 73 20 61 20 74 61 62 6c 65 2e 3c 2f 6c 69   as a table.</li
3e00: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61  >.<li>Bug fix: a
3e10: 6c 6c 6f 77 20 61 20 56 41 43 55 55 4d 20 28 77  llow a VACUUM (w
3e20: 69 74 68 6f 75 74 20 73 65 67 66 61 75 6c 74 69  ithout segfaulti
3e30: 6e 67 29 20 6f 6e 20 61 6e 20 65 6d 70 74 79 0a  ng) on an empty.
3e40: 20 20 20 20 64 61 74 61 62 61 73 65 20 61 66 74      database aft
3e50: 65 72 20 73 65 74 74 69 6e 67 20 74 68 65 20 45  er setting the E
3e60: 4d 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c  MPTY_RESULT_CALL
3e70: 42 41 43 4b 53 20 70 72 61 67 6d 61 2e 3c 2f 6c  BACKS pragma.</l
3e80: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
3e90: 69 66 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61  if an integer va
3ea0: 6c 75 65 20 77 69 6c 6c 20 6e 6f 74 20 66 69 74  lue will not fit
3eb0: 20 69 6e 20 61 20 33 32 2d 62 69 74 20 69 6e 74   in a 32-bit int
3ec0: 2c 20 73 74 6f 72 65 20 69 74 20 69 6e 0a 20 20  , store it in.  
3ed0: 20 20 61 20 64 6f 75 62 6c 65 20 69 6e 73 74 65    a double inste
3ee0: 61 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ad.</li>.<li>Bug
3ef0: 20 66 69 78 3a 20 4d 61 6b 65 20 73 75 72 65 20   fix: Make sure 
3f00: 74 68 65 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65  the journal file
3f10: 20 64 69 72 65 63 74 6f 72 79 20 65 6e 74 72 79   directory entry
3f20: 20 69 73 20 63 6f 6d 6d 69 74 74 65 64 20 74 6f   is committed to
3f30: 20 64 69 73 6b 0a 20 20 20 20 62 65 66 6f 72 65   disk.    before
3f40: 20 77 72 69 74 69 6e 67 20 74 68 65 20 64 61 74   writing the dat
3f50: 61 62 61 73 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e  abase file.</li>
3f60: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a  .}..chng {2003 J
3f70: 75 6c 79 20 32 32 20 28 32 2e 38 2e 35 29 7d 20  uly 22 (2.8.5)} 
3f80: 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 4c 49 4d 49 54  {.<li>Make LIMIT
3f90: 20 77 6f 72 6b 20 6f 6e 20 61 20 63 6f 6d 70 6f   work on a compo
3fa0: 75 6e 64 20 53 45 4c 45 43 54 20 73 74 61 74 65  und SELECT state
3fb0: 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c  ment.</li>.<li>L
3fc0: 49 4d 49 54 20 30 20 6e 6f 77 20 73 68 6f 77 73  IMIT 0 now shows
3fd0: 20 6e 6f 20 72 6f 77 73 2e 20 20 55 73 65 20 4c   no rows.  Use L
3fe0: 49 4d 49 54 20 2d 31 20 74 6f 20 73 65 65 20 61  IMIT -1 to see a
3ff0: 6c 6c 20 72 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ll rows.</li>.<l
4000: 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64  i>Correctly hand
4010: 6c 65 20 63 6f 6d 70 61 72 69 73 6f 6e 73 20 62  le comparisons b
4020: 65 74 77 65 65 6e 20 61 6e 20 49 4e 54 45 47 45  etween an INTEGE
4030: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61 6e  R PRIMARY KEY an
4040: 64 0a 20 20 20 20 61 20 66 6c 6f 61 74 69 6e 67  d.    a floating
4050: 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 3c 2f   point number.</
4060: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65  li>.<li>Fix seve
4070: 72 61 6c 20 69 6d 70 6f 72 74 61 6e 74 20 62 75  ral important bu
4080: 67 73 20 69 6e 20 74 68 65 20 6e 65 77 20 41 54  gs in the new AT
4090: 54 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20  TACH and DETACH 
40a0: 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c  commands.</li>.<
40b0: 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65 20 3c  li>Updated the <
40c0: 61 20 68 72 65 66 3d 22 6e 75 6c 6c 73 2e 68 74  a href="nulls.ht
40d0: 6d 6c 22 3e 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e  ml">NULL-handlin
40e0: 67 20 64 6f 63 75 6d 65 6e 74 3c 2f 61 3e 2e 3c  g document</a>.<
40f0: 2f 6c 69 3e 20 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  /li> .<li>Allow 
4100: 4e 55 4c 4c 20 61 72 67 75 6d 65 6e 74 73 20 69  NULL arguments i
4110: 6e 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c 65  n sqlite_compile
4120: 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 73 74  () and sqlite_st
4130: 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ep().</li>.<li>M
4140: 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20 66 69  any minor bug fi
4150: 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  xes</li>.}..chng
4160: 20 7b 32 30 30 33 20 4a 75 6e 65 20 32 39 20 28   {2003 June 29 (
4170: 32 2e 38 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 45 6e  2.8.4)} {.<li>En
4180: 68 61 6e 63 65 64 20 74 68 65 20 22 50 52 41 47  hanced the "PRAG
4190: 4d 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68 65  MA integrity_che
41a0: 63 6b 22 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 76  ck" command to v
41b0: 65 72 69 66 79 20 69 6e 64 69 63 65 73 2e 3c 2f  erify indices.</
41c0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 75  li>.<li>Added au
41d0: 74 68 6f 72 69 7a 61 74 69 6f 6e 20 68 6f 6f 6b  thorization hook
41e0: 73 20 66 6f 72 20 74 68 65 20 6e 65 77 20 41 54  s for the new AT
41f0: 54 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20  TACH and DETACH 
4200: 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c  commands.</li>.<
4210: 6c 69 3e 4d 61 6e 79 20 64 6f 63 75 6d 65 6e 74  li>Many document
4220: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c  ation updates</l
4230: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f  i>.<li>Many mino
4240: 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e  r bug fixes</li>
4250: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a  .}..chng {2003 J
4260: 75 6e 65 20 34 20 28 32 2e 38 2e 33 29 7d 20 7b  une 4 (2.8.3)} {
4270: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c  .<li>Fix a probl
4280: 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63 6f 72  em that will cor
4290: 72 75 70 74 20 74 68 65 20 69 6e 64 69 63 65 73  rupt the indices
42a0: 20 6f 6e 20 61 20 74 61 62 6c 65 20 69 66 20 79   on a table if y
42b0: 6f 75 0a 20 20 20 20 64 6f 20 61 6e 20 49 4e 53  ou.    do an INS
42c0: 45 52 54 20 4f 52 20 52 45 50 4c 41 43 45 20 6f  ERT OR REPLACE o
42d0: 72 20 61 6e 20 55 50 44 41 54 45 20 4f 52 20 52  r an UPDATE OR R
42e0: 45 50 4c 41 43 45 20 6f 6e 20 61 20 74 61 62 6c  EPLACE on a tabl
42f0: 65 20 74 68 61 74 0a 20 20 20 20 63 6f 6e 74 61  e that.    conta
4300: 69 6e 73 20 61 6e 20 49 4e 54 45 47 45 52 20 50  ins an INTEGER P
4310: 52 49 4d 41 52 59 20 4b 45 59 20 70 6c 75 73 20  RIMARY KEY plus 
4320: 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 6e 64 69  one or more indi
4330: 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ces.</li>.<li>Fi
4340: 78 20 61 20 62 75 67 20 69 6e 20 77 69 6e 64 6f  x a bug in windo
4350: 77 73 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20  ws locking code 
4360: 73 6f 20 74 68 61 74 20 6c 6f 63 6b 73 20 77 6f  so that locks wo
4370: 72 6b 20 63 6f 72 72 65 63 74 6c 79 0a 20 20 20  rk correctly.   
4380: 20 77 68 65 6e 20 73 69 6d 75 6c 74 61 6e 65 6f   when simultaneo
4390: 75 73 6c 79 20 61 63 63 65 73 73 65 64 20 62 79  usly accessed by
43a0: 20 57 69 6e 39 35 20 61 6e 64 20 57 69 6e 4e 54   Win95 and WinNT
43b0: 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c   systems.</li>.<
43c0: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
43d0: 74 79 20 66 6f 72 20 49 4e 53 45 52 54 20 61 6e  ty for INSERT an
43e0: 64 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65  d UPDATE stateme
43f0: 6e 74 73 20 74 6f 20 72 65 66 65 72 20 74 6f 20  nts to refer to 
4400: 74 68 65 0a 20 20 20 20 22 72 6f 77 69 64 22 20  the.    "rowid" 
4410: 28 6f 72 20 22 5f 72 6f 77 69 64 5f 22 20 6f 72  (or "_rowid_" or
4420: 20 22 6f 69 64 22 29 20 63 6f 6c 75 6d 6e 73 2e   "oid") columns.
4430: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
4440: 69 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66 69  important bug fi
4450: 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  xes</li>.}..chng
4460: 20 7b 32 30 30 33 20 4d 61 79 20 31 37 20 28 32   {2003 May 17 (2
4470: 2e 38 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .8.2)} {.<li>Fix
4480: 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20   a problem that 
4490: 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74 68 65  will corrupt the
44a0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 69   database file i
44b0: 66 20 79 6f 75 20 64 72 6f 70 20 61 0a 20 20 20  f you drop a.   
44c0: 20 74 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20   table from the 
44d0: 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20 74 68  main database th
44e0: 61 74 20 68 61 73 20 61 20 54 45 4d 50 20 69 6e  at has a TEMP in
44f0: 64 65 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  dex.</li>.}..chn
4500: 67 20 7b 32 30 30 33 20 4d 61 79 20 31 36 20 28  g {2003 May 16 (
4510: 32 2e 38 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65  2.8.1)} {.<li>Re
4520: 61 63 74 69 76 61 74 65 64 20 74 68 65 20 56 41  activated the VA
4530: 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20 74 68 61  CUUM command tha
4540: 74 20 72 65 63 6c 61 69 6d 73 20 75 6e 75 73 65  t reclaims unuse
4550: 64 20 64 69 73 6b 20 73 70 61 63 65 20 69 6e 20  d disk space in 
4560: 0a 20 20 20 20 61 20 64 61 74 61 62 61 73 65 20  .    a database 
4570: 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  file.</li>.<li>A
4580: 64 64 65 64 20 74 68 65 20 41 54 54 41 43 48 20  dded the ATTACH 
4590: 61 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61  and DETACH comma
45a0: 6e 64 73 20 74 6f 20 61 6c 6c 6f 77 20 69 6e 74  nds to allow int
45b0: 65 72 61 63 74 69 6e 67 20 77 69 74 68 20 6d 75  eracting with mu
45c0: 6c 74 69 70 6c 65 0a 20 20 20 20 64 61 74 61 62  ltiple.    datab
45d0: 61 73 65 20 66 69 6c 65 73 20 61 74 20 74 68 65  ase files at the
45e0: 20 73 61 6d 65 20 74 69 6d 65 2e 3c 2f 6c 69 3e   same time.</li>
45f0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
4600: 72 74 20 66 6f 72 20 54 45 4d 50 20 74 72 69 67  rt for TEMP trig
4610: 67 65 72 73 20 61 6e 64 20 69 6e 64 69 63 65 73  gers and indices
4620: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
4630: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 69 6e 2d   support for in-
4640: 6d 65 6d 6f 72 79 20 64 61 74 61 62 61 73 65 73  memory databases
4650: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  .</li>.<li>Remov
4660: 65 64 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e  ed the experimen
4670: 74 61 6c 20 73 71 6c 69 74 65 5f 6f 70 65 6e 5f  tal sqlite_open_
4680: 61 75 78 5f 66 69 6c 65 28 29 2e 20 20 49 74 73  aux_file().  Its
4690: 20 66 75 6e 63 74 69 6f 6e 20 69 73 0a 20 20 20   function is.   
46a0: 20 73 75 62 73 75 6d 65 64 20 69 6e 20 74 68 65   subsumed in the
46b0: 20 6e 65 77 20 41 54 54 41 43 48 20 63 6f 6d 6d   new ATTACH comm
46c0: 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  and.</li>.<li>Th
46d0: 65 20 70 72 65 63 65 64 65 6e 63 65 20 6f 72 64  e precedence ord
46e0: 65 72 20 66 6f 72 20 4f 4e 20 43 4f 4e 46 4c 49  er for ON CONFLI
46f0: 43 54 20 63 6c 61 75 73 65 73 20 77 61 73 20 63  CT clauses was c
4700: 68 61 6e 67 65 64 20 73 6f 20 74 68 61 74 0a 20  hanged so that. 
4710: 20 20 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63     ON CONFLICT c
4720: 6c 61 75 73 65 73 20 6f 6e 20 42 45 47 49 4e 20  lauses on BEGIN 
4730: 73 74 61 74 65 6d 65 6e 74 73 20 68 61 76 65 20  statements have 
4740: 61 20 68 69 67 68 65 72 20 70 72 65 63 65 64 65  a higher precede
4750: 6e 63 65 20 74 68 61 6e 0a 20 20 20 20 4f 4e 20  nce than.    ON 
4760: 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73  CONFLICT clauses
4770: 20 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 2e   on constraints.
4780: 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20  .<li>Many, many 
4790: 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 63 6f  bug fixes and co
47a0: 6d 70 61 74 69 62 69 6c 69 74 79 20 65 6e 68 61  mpatibility enha
47b0: 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d  ncements.</li>.}
47c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 46 65 62  ..chng {2003 Feb
47d0: 20 31 36 20 28 32 2e 38 2e 30 29 7d 20 7b 0a 3c   16 (2.8.0)} {.<
47e0: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
47f0: 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 66 6f 72  journal file for
4800: 6d 61 74 20 74 6f 20 6d 61 6b 65 20 69 74 20 6d  mat to make it m
4810: 6f 72 65 20 72 65 73 69 73 74 61 6e 74 20 74 6f  ore resistant to
4820: 20 63 6f 72 72 75 70 74 69 6f 6e 0a 20 20 20 20   corruption.    
4830: 74 68 61 74 20 63 61 6e 20 6f 63 63 75 72 20 61  that can occur a
4840: 66 74 65 72 20 61 6e 20 4f 53 20 63 72 61 73 68  fter an OS crash
4850: 20 6f 72 20 70 6f 77 65 72 20 66 61 69 6c 75 72   or power failur
4860: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  e.</li>.<li>Adde
4870: 64 20 61 20 6e 65 77 20 43 2f 43 2b 2b 20 41 50  d a new C/C++ AP
4880: 49 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20  I that does not 
4890: 75 73 65 20 63 61 6c 6c 62 61 63 6b 20 66 6f 72  use callback for
48a0: 20 72 65 74 75 72 6e 69 6e 67 20 64 61 74 61 2e   returning data.
48b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
48c0: 30 30 33 20 4a 61 6e 20 32 35 20 28 32 2e 37 2e  003 Jan 25 (2.7.
48d0: 36 29 7d 20 7b 0a 3c 6c 69 3e 50 65 72 66 6f 72  6)} {.<li>Perfor
48e0: 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e  mance improvemen
48f0: 74 73 2e 20 20 54 68 65 20 6c 69 62 72 61 72 79  ts.  The library
4900: 20 69 73 20 6e 6f 77 20 6d 75 63 68 20 66 61 73   is now much fas
4910: 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ter.</li>.<li>Ad
4920: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
4930: 65 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72  e_set_authorizer
4940: 28 29 3c 2f 62 3e 20 41 50 49 2e 20 20 46 6f 72  ()</b> API.  For
4950: 6d 61 6c 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  mal documentatio
4960: 6e 20 68 61 73 0a 20 20 20 20 6e 6f 74 20 62 65  n has.    not be
4970: 65 6e 20 77 72 69 74 74 65 6e 20 2d 20 73 65 65  en written - see
4980: 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65   the source code
4990: 20 63 6f 6d 6d 65 6e 74 73 20 66 6f 72 20 69 6e   comments for in
49a0: 73 74 72 75 63 74 69 6f 6e 73 20 6f 6e 0a 20 20  structions on.  
49b0: 20 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68 69    how to use thi
49c0: 73 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e  s function.</li>
49d0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
49e0: 6e 20 74 68 65 20 47 4c 4f 42 20 6f 70 65 72 61  n the GLOB opera
49f0: 74 6f 72 20 74 68 61 74 20 77 61 73 20 70 72 65  tor that was pre
4a00: 76 65 6e 74 69 6e 67 20 69 74 20 66 72 6f 6d 20  venting it from 
4a10: 77 6f 72 6b 69 6e 67 0a 20 20 20 20 77 69 74 68  working.    with
4a20: 20 75 70 70 65 72 2d 63 61 73 65 20 6c 65 74 74   upper-case lett
4a30: 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61  ers.</li>.<li>Va
4a40: 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75 67 20  rious minor bug 
4a50: 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixes.</li>.}..c
4a60: 68 6e 67 20 7b 32 30 30 32 20 44 65 63 20 32 37  hng {2002 Dec 27
4a70: 20 28 32 2e 37 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.7.5)} {.<li>
4a80: 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61 6c  Fix an uninitial
4a90: 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69 6e  ized variable in
4aa0: 20 70 61 67 65 72 2e 63 20 77 68 69 63 68 20 63   pager.c which c
4ab0: 6f 75 6c 64 20 28 77 69 74 68 20 61 20 70 72 6f  ould (with a pro
4ac0: 62 61 62 69 6c 69 74 79 0a 20 20 20 20 6f 66 20  bability.    of 
4ad0: 61 62 6f 75 74 20 31 20 69 6e 20 34 20 62 69 6c  about 1 in 4 bil
4ae0: 6c 69 6f 6e 29 20 72 65 73 75 6c 74 20 69 6e 20  lion) result in 
4af0: 61 20 63 6f 72 72 75 70 74 65 64 20 64 61 74 61  a corrupted data
4b00: 62 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  base.</li>.}..ch
4b10: 6e 67 20 7b 32 30 30 32 20 44 65 63 20 31 37 20  ng {2002 Dec 17 
4b20: 28 32 2e 37 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 44  (2.7.4)} {.<li>D
4b30: 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 63 61  atabase files ca
4b40: 6e 20 6e 6f 77 20 67 72 6f 77 20 74 6f 20 62 65  n now grow to be
4b50: 20 75 70 20 74 6f 20 32 5e 34 31 20 62 79 74 65   up to 2^41 byte
4b60: 73 2e 20 20 54 68 65 20 6f 6c 64 20 6c 69 6d 69  s.  The old limi
4b70: 74 0a 20 20 20 20 77 61 73 20 32 5e 33 31 20 62  t.    was 2^31 b
4b80: 79 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ytes.</li>.<li>T
4b90: 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 77 69 6c  he optimizer wil
4ba0: 6c 20 6e 6f 77 20 73 63 61 6e 20 74 61 62 6c 65  l now scan table
4bb0: 73 20 69 6e 20 74 68 65 20 72 65 76 65 72 73 65  s in the reverse
4bc0: 20 69 66 20 64 6f 69 6e 67 20 73 6f 20 77 69 6c   if doing so wil
4bd0: 6c 0a 20 20 20 20 73 61 74 69 73 66 79 20 61 6e  l.    satisfy an
4be0: 20 4f 52 44 45 52 20 42 59 20 2e 2e 2e 20 44 45   ORDER BY ... DE
4bf0: 53 43 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a  SC clause.</li>.
4c00: 3c 6c 69 3e 54 68 65 20 66 75 6c 6c 20 70 61 74  <li>The full pat
4c10: 68 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 61 74  hname of the dat
4c20: 61 62 61 73 65 20 66 69 6c 65 20 69 73 20 6e 6f  abase file is no
4c30: 77 20 72 65 6d 65 6d 62 65 72 65 64 20 65 76 65  w remembered eve
4c40: 6e 20 69 66 0a 20 20 20 20 61 20 72 65 6c 61 74  n if.    a relat
4c50: 69 76 65 20 70 61 74 68 20 69 73 20 70 61 73 73  ive path is pass
4c60: 65 64 20 69 6e 74 6f 20 73 71 6c 69 74 65 5f 6f  ed into sqlite_o
4c70: 70 65 6e 28 29 2e 20 20 54 68 69 73 20 61 6c 6c  pen().  This all
4c80: 6f 77 73 20 0a 20 20 20 20 74 68 65 20 6c 69 62  ows .    the lib
4c90: 72 61 72 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65  rary to continue
4ca0: 20 6f 70 65 72 61 74 69 6e 67 20 63 6f 72 72 65   operating corre
4cb0: 63 74 6c 79 20 61 66 74 65 72 20 61 20 63 68 64  ctly after a chd
4cc0: 69 72 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  ir().</li>.<li>S
4cd0: 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74  peed improvement
4ce0: 73 20 69 6e 20 74 68 65 20 56 44 42 45 2e 3c 2f  s in the VDBE.</
4cf0: 6c 69 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20  li>.<li>Lots of 
4d00: 6c 69 74 74 6c 65 20 62 75 67 20 66 69 78 65 73  little bug fixes
4d10: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
4d20: 32 30 30 32 20 4f 63 74 20 33 30 20 28 32 2e 37  2002 Oct 30 (2.7
4d30: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 56 61 72 69 6f  .3)} {.<li>Vario
4d40: 75 73 20 63 6f 6d 70 69 6c 65 72 20 63 6f 6d 70  us compiler comp
4d50: 61 74 69 62 69 6c 69 74 79 20 66 69 78 65 73 2e  atibility fixes.
4d60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
4d70: 62 75 67 20 69 6e 20 74 68 65 20 22 65 78 70 72  bug in the "expr
4d80: 20 49 4e 20 28 29 22 20 6f 70 65 72 61 74 6f 72   IN ()" operator
4d90: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 63 63 65 70  .</li>.<li>Accep
4da0: 74 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69  t column names i
4db0: 6e 20 70 61 72 65 6e 74 68 65 73 65 73 2e 3c 2f  n parentheses.</
4dc0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  li>.<li>Fix a pr
4dd0: 6f 62 6c 65 6d 20 77 69 74 68 20 73 74 72 69 6e  oblem with strin
4de0: 67 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d  g memory managem
4df0: 65 6e 74 20 69 6e 20 74 68 65 20 56 44 42 45 3c  ent in the VDBE<
4e00: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
4e10: 75 67 20 69 6e 20 74 68 65 20 22 74 61 62 6c 65  ug in the "table
4e20: 5f 69 6e 66 6f 22 20 70 72 61 67 6d 61 22 3c 2f  _info" pragma"</
4e30: 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74 20 74  li>.<li>Export t
4e40: 68 65 20 73 71 6c 69 74 65 5f 66 75 6e 63 74 69  he sqlite_functi
4e50: 6f 6e 5f 74 79 70 65 28 29 20 41 50 49 20 66 75  on_type() API fu
4e60: 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 57 69  nction in the Wi
4e70: 6e 64 6f 77 73 20 44 4c 4c 3c 2f 6c 69 3e 0a 3c  ndows DLL</li>.<
4e80: 6c 69 3e 46 69 78 20 6c 6f 63 6b 69 6e 67 20 62  li>Fix locking b
4e90: 65 68 61 76 69 6f 72 20 75 6e 64 65 72 20 77 69  ehavior under wi
4ea0: 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ndows</li>.<li>F
4eb0: 69 78 20 61 20 62 75 67 20 69 6e 20 4c 45 46 54  ix a bug in LEFT
4ec0: 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e   OUTER JOIN</li>
4ed0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 53  .}..chng {2002 S
4ee0: 65 70 20 32 35 20 28 32 2e 37 2e 32 29 7d 20 7b  ep 25 (2.7.2)} {
4ef0: 0a 3c 6c 69 3e 50 72 65 76 65 6e 74 20 6a 6f 75  .<li>Prevent jou
4f00: 72 6e 61 6c 20 66 69 6c 65 20 6f 76 65 72 66 6c  rnal file overfl
4f10: 6f 77 73 20 6f 6e 20 68 75 67 65 20 74 72 61 6e  ows on huge tran
4f20: 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  sactions.</li>.<
4f30: 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72 79 20  li>Fix a memory 
4f40: 6c 65 61 6b 20 74 68 61 74 20 6f 63 63 75 72 72  leak that occurr
4f50: 65 64 20 77 68 65 6e 20 73 71 6c 69 74 65 5f 6f  ed when sqlite_o
4f60: 70 65 6e 28 29 20 66 61 69 6c 65 64 2e 3c 2f 6c  pen() failed.</l
4f70: 69 3e 0a 3c 6c 69 3e 48 6f 6e 6f 72 20 74 68 65  i>.<li>Honor the
4f80: 20 4f 52 44 45 52 20 42 59 20 61 6e 64 20 4c 49   ORDER BY and LI
4f90: 4d 49 54 20 63 6c 61 75 73 65 20 6f 66 20 61 20  MIT clause of a 
4fa0: 53 45 4c 45 43 54 20 65 76 65 6e 20 69 66 20 74  SELECT even if t
4fb0: 68 65 0a 20 20 20 20 72 65 73 75 6c 74 20 73 65  he.    result se
4fc0: 74 20 69 73 20 75 73 65 64 20 66 6f 72 20 61 6e  t is used for an
4fd0: 20 49 4e 53 45 52 54 2e 3c 2f 6c 69 3e 0a 3c 6c   INSERT.</li>.<l
4fe0: 69 3e 44 6f 20 6e 6f 74 20 70 75 74 20 77 72 69  i>Do not put wri
4ff0: 74 65 20 6c 6f 63 6b 73 20 6f 6e 20 74 68 65 20  te locks on the 
5000: 66 69 6c 65 20 75 73 65 64 20 74 6f 20 68 6f 6c  file used to hol
5010: 64 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f  d TEMP tables.</
5020: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f  li>.<li>Added do
5030: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 53  cumentation on S
5040: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 61  ELECT DISTINCT a
5050: 6e 64 20 6f 6e 20 68 6f 77 20 53 51 4c 69 74 65  nd on how SQLite
5060: 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 2e 3c   handles NULLs.<
5070: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70  /li>.<li>Fix a p
5080: 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 61 73 20  roblem that was 
5090: 63 61 75 73 69 6e 67 20 70 6f 6f 72 20 70 65 72  causing poor per
50a0: 66 6f 72 6d 61 6e 63 65 20 77 68 65 6e 20 6d 61  formance when ma
50b0: 6e 79 20 74 68 6f 75 73 61 6e 64 73 0a 20 20 20  ny thousands.   
50c0: 20 6f 66 20 53 51 4c 20 73 74 61 74 65 6d 65 6e   of SQL statemen
50d0: 74 73 20 77 65 72 65 20 65 78 65 63 75 74 65 64  ts were executed
50e0: 20 62 79 20 61 20 73 69 6e 67 6c 65 20 73 71 6c   by a single sql
50f0: 69 74 65 5f 65 78 65 63 28 29 20 63 61 6c 6c 2e  ite_exec() call.
5100: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5110: 30 30 32 20 41 75 67 20 33 31 20 28 32 2e 37 2e  002 Aug 31 (2.7.
5120: 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  1)} {.<li>Fix a 
5130: 62 75 67 20 69 6e 20 74 68 65 20 4f 52 44 45 52  bug in the ORDER
5140: 20 42 59 20 6c 6f 67 69 63 20 74 68 61 74 20 77   BY logic that w
5150: 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e  as introduced in
5160: 20 76 65 72 73 69 6f 6e 20 32 2e 37 2e 30 3c 2f   version 2.7.0</
5170: 6c 69 3e 0a 3c 6c 69 3e 43 2d 73 74 79 6c 65 20  li>.<li>C-style 
5180: 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 6e 6f 77  comments are now
5190: 20 61 63 63 65 70 74 65 64 20 62 79 20 74 68 65   accepted by the
51a0: 20 74 6f 6b 65 6e 69 7a 65 72 2e 3c 2f 6c 69 3e   tokenizer.</li>
51b0: 0a 3c 6c 69 3e 49 4e 53 45 52 54 20 72 75 6e 73  .<li>INSERT runs
51c0: 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72   a little faster
51d0: 20 77 68 65 6e 20 74 68 65 20 73 6f 75 72 63 65   when the source
51e0: 20 69 73 20 61 20 53 45 4c 45 43 54 20 73 74 61   is a SELECT sta
51f0: 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  tement.</li>.}..
5200: 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20 32  chng {2002 Aug 2
5210: 35 20 28 32 2e 37 2e 30 29 7d 20 7b 0a 3c 6c 69  5 (2.7.0)} {.<li
5220: 3e 4d 61 6b 65 20 61 20 64 69 73 74 69 6e 63 74  >Make a distinct
5230: 69 6f 6e 20 62 65 74 77 65 65 6e 20 6e 75 6d 65  ion between nume
5240: 72 69 63 20 61 6e 64 20 74 65 78 74 20 76 61 6c  ric and text val
5250: 75 65 73 20 77 68 65 6e 20 73 6f 72 74 69 6e 67  ues when sorting
5260: 2e 0a 20 20 20 20 54 65 78 74 20 76 61 6c 75 65  ..    Text value
5270: 73 20 73 6f 72 74 20 61 63 63 6f 72 64 69 6e 67  s sort according
5280: 20 74 6f 20 6d 65 6d 63 6d 70 28 29 2e 20 20 4e   to memcmp().  N
5290: 75 6d 65 72 69 63 20 76 61 6c 75 65 73 20 73 6f  umeric values so
52a0: 72 74 20 69 6e 0a 20 20 20 20 6e 75 6d 65 72 69  rt in.    numeri
52b0: 63 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  c order.</li>.<l
52c0: 69 3e 41 6c 6c 6f 77 20 6d 75 6c 74 69 70 6c 65  i>Allow multiple
52d0: 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 72 65   simultaneous re
52e0: 61 64 65 72 73 20 75 6e 64 65 72 20 77 69 6e 64  aders under wind
52f0: 6f 77 73 20 62 79 20 73 69 6d 75 6c 61 74 69 6e  ows by simulatin
5300: 67 0a 20 20 20 20 74 68 65 20 72 65 61 64 65 72  g.    the reader
5310: 2f 77 72 69 74 65 72 73 20 6c 6f 63 6b 73 20 74  /writers locks t
5320: 68 61 74 20 61 72 65 20 6d 69 73 73 69 6e 67 20  hat are missing 
5330: 66 72 6f 6d 20 57 69 6e 39 35 2f 39 38 2f 4d 45  from Win95/98/ME
5340: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 20 65 72  .</li>.<li>An er
5350: 72 6f 72 20 69 73 20 6e 6f 77 20 72 65 74 75 72  ror is now retur
5360: 6e 65 64 20 77 68 65 6e 20 74 72 79 69 6e 67 20  ned when trying 
5370: 74 6f 20 73 74 61 72 74 20 61 20 74 72 61 6e 73  to start a trans
5380: 61 63 74 69 6f 6e 20 69 66 0a 20 20 20 20 61 6e  action if.    an
5390: 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f  other transactio
53a0: 6e 20 69 73 20 61 6c 72 65 61 64 79 20 61 63 74  n is already act
53b0: 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ive.</li>.}..chn
53c0: 67 20 7b 32 30 30 32 20 41 75 67 20 31 32 20 28  g {2002 Aug 12 (
53d0: 32 2e 36 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64  2.6.3)} {.<li>Ad
53e0: 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f  d the ability to
53f0: 20 72 65 61 64 20 62 6f 74 68 20 6c 69 74 74 6c   read both littl
5400: 65 2d 65 6e 64 69 61 6e 20 61 6e 64 20 62 69 67  e-endian and big
5410: 2d 65 6e 64 69 61 6e 20 64 61 74 61 62 61 73 65  -endian database
5420: 73 2e 0a 20 20 20 20 53 6f 20 64 61 74 61 62 61  s..    So databa
5430: 73 65 20 63 72 65 61 74 65 64 20 75 6e 64 65 72  se created under
5440: 20 53 75 6e 4f 53 20 6f 72 20 4d 61 63 4f 53 58   SunOS or MacOSX
5450: 20 63 61 6e 20 62 65 20 72 65 61 64 20 61 6e 64   can be read and
5460: 20 77 72 69 74 74 65 6e 0a 20 20 20 20 75 6e 64   written.    und
5470: 65 72 20 4c 69 6e 75 78 20 6f 72 20 57 69 6e 64  er Linux or Wind
5480: 6f 77 73 20 61 6e 64 20 76 69 63 65 20 76 65 72  ows and vice ver
5490: 73 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e  sa.</li>.<li>Con
54a0: 76 65 72 74 20 74 6f 20 74 68 65 20 6e 65 77 20  vert to the new 
54b0: 77 65 62 73 69 74 65 3a 20 68 74 74 70 3a 2f 2f  website: http://
54c0: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 3c  www.sqlite.org/<
54d0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74  /li>.<li>Allow t
54e0: 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20 73  ransactions to s
54f0: 70 61 6e 20 4c 69 6e 75 78 20 54 68 72 65 61 64  pan Linux Thread
5500: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  s</li>.<li>Bug f
5510: 69 78 20 69 6e 20 74 68 65 20 70 72 6f 63 65 73  ix in the proces
5520: 73 69 6e 67 20 6f 66 20 74 68 65 20 4f 52 44 45  sing of the ORDE
5530: 52 20 42 59 20 63 6c 61 75 73 65 20 66 6f 72 20  R BY clause for 
5540: 47 52 4f 55 50 20 42 59 20 71 75 65 72 69 65 73  GROUP BY queries
5550: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5560: 30 30 32 20 4a 6c 79 20 33 30 20 28 32 2e 36 2e  002 Jly 30 (2.6.
5570: 32 29 7d 20 7b 0a 3c 6c 69 3e 54 65 78 74 20 66  2)} {.<li>Text f
5580: 69 6c 65 73 20 72 65 61 64 20 62 79 20 74 68 65  iles read by the
5590: 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 63 61   COPY command ca
55a0: 6e 20 6e 6f 77 20 68 61 76 65 20 6c 69 6e 65 20  n now have line 
55b0: 74 65 72 6d 69 6e 61 74 6f 72 73 0a 20 20 20 20  terminators.    
55c0: 6f 66 20 4c 46 2c 20 20 43 52 4c 46 2c 20 6f 72  of LF,  CRLF, or
55d0: 20 43 52 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 51   CR.</li>.<li>SQ
55e0: 4c 49 54 45 5f 42 55 53 59 20 69 73 20 68 61 6e  LITE_BUSY is han
55f0: 64 6c 65 64 20 63 6f 72 72 65 63 74 6c 79 20 69  dled correctly i
5600: 66 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 64 75  f encountered du
5610: 72 69 6e 67 20 64 61 74 61 62 61 73 65 0a 20 20  ring database.  
5620: 20 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e    initialization
5630: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74  .</li>.<li>Fix t
5640: 6f 20 55 50 44 41 54 45 20 74 72 69 67 67 65 72  o UPDATE trigger
5650: 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c 65 73  s on TEMP tables
5660: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d  .</li>.<li>Docum
5670: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
5680: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5690: 32 30 30 32 20 4a 6c 79 20 31 39 20 28 32 2e 36  2002 Jly 19 (2.6
56a0: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6c 75  .1)} {.<li>Inclu
56b0: 64 65 20 61 20 73 74 61 74 69 63 20 73 74 72 69  de a static stri
56c0: 6e 67 20 69 6e 20 74 68 65 20 6c 69 62 72 61 72  ng in the librar
56d0: 79 20 74 68 61 74 20 72 65 73 70 6f 6e 64 73 20  y that responds 
56e0: 74 6f 20 74 68 65 20 52 43 53 0a 20 20 20 20 22  to the RCS.    "
56f0: 69 64 65 6e 74 22 20 63 6f 6d 6d 61 6e 64 20 61  ident" command a
5700: 6e 64 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e  nd which contain
5710: 73 20 74 68 65 20 6c 69 62 72 61 72 79 20 76 65  s the library ve
5720: 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c  rsion number.</l
5730: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 61 73  i>.<li>Fix an as
5740: 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20  sertion failure 
5750: 74 68 61 74 20 6f 63 63 75 72 72 65 64 20 77 68  that occurred wh
5760: 65 6e 20 64 65 6c 65 74 69 6e 67 20 61 6c 6c 20  en deleting all 
5770: 72 6f 77 73 20 6f 66 0a 20 20 20 20 61 20 74 61  rows of.    a ta
5780: 62 6c 65 20 77 69 74 68 20 74 68 65 20 22 63 6f  ble with the "co
5790: 75 6e 74 5f 63 68 61 6e 67 65 73 22 20 70 72 61  unt_changes" pra
57a0: 67 6d 61 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f  gma turned on.</
57b0: 6c 69 3e 0a 3c 6c 69 3e 42 65 74 74 65 72 20 65  li>.<li>Better e
57c0: 72 72 6f 72 20 72 65 70 6f 72 74 69 6e 67 20 77  rror reporting w
57d0: 68 65 6e 20 70 72 6f 62 6c 65 6d 73 20 6f 63 63  hen problems occ
57e0: 75 72 20 64 75 72 69 6e 67 20 74 68 65 20 61 75  ur during the au
57f0: 74 6f 6d 61 74 69 63 0a 20 20 20 20 32 2e 35 2e  tomatic.    2.5.
5800: 36 20 74 6f 20 32 2e 36 2e 30 20 64 61 74 61 62  6 to 2.6.0 datab
5810: 61 73 65 20 66 6f 72 6d 61 74 20 75 70 67 72 61  ase format upgra
5820: 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  de.</li>.}..chng
5830: 20 7b 32 30 30 32 20 4a 6c 79 20 31 37 20 28 32   {2002 Jly 17 (2
5840: 2e 36 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  .6.0)} {.<li>Cha
5850: 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f  nge the format o
5860: 66 20 69 6e 64 69 63 65 73 20 74 6f 20 63 6f 72  f indices to cor
5870: 72 65 63 74 20 61 20 64 65 73 69 67 6e 20 66 6c  rect a design fl
5880: 61 77 20 74 68 65 20 6f 72 69 67 69 6e 61 74 65  aw the originate
5890: 64 0a 20 20 20 20 77 69 74 68 20 76 65 72 73 69  d.    with versi
58a0: 6f 6e 20 32 2e 31 2e 30 2e 20 20 3c 66 6f 6e 74  on 2.1.0.  <font
58b0: 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 2a   color="red">***
58c0: 20 54 68 69 73 20 69 73 20 61 6e 20 69 6e 63 6f   This is an inco
58d0: 6d 70 61 74 69 62 6c 65 0a 20 20 20 20 66 69 6c  mpatible.    fil
58e0: 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67 65 20  e format change 
58f0: 2a 2a 2a 3c 2f 66 6f 6e 74 3e 20 20 57 68 65 6e  ***</font>  When
5900: 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30 20 6f   version 2.6.0 o
5910: 72 20 6c 61 74 65 72 20 6f 66 20 74 68 65 0a 20  r later of the. 
5920: 20 20 20 6c 69 62 72 61 72 79 20 61 74 74 65 6d     library attem
5930: 70 74 73 20 74 6f 20 6f 70 65 6e 20 61 20 64 61  pts to open a da
5940: 74 61 62 61 73 65 20 66 69 6c 65 20 63 72 65 61  tabase file crea
5950: 74 65 64 20 62 79 20 76 65 72 73 69 6f 6e 20 32  ted by version 2
5960: 2e 35 2e 36 20 6f 72 0a 20 20 20 20 65 61 72 6c  .5.6 or.    earl
5970: 69 65 72 2c 20 69 74 20 77 69 6c 6c 20 61 75 74  ier, it will aut
5980: 6f 6d 61 74 69 63 61 6c 6c 79 20 61 6e 64 20 69  omatically and i
5990: 72 72 65 76 65 72 73 69 62 6c 79 20 63 6f 6e 76  rreversibly conv
59a0: 65 72 74 20 74 68 65 20 66 69 6c 65 20 66 6f 72  ert the file for
59b0: 6d 61 74 2e 0a 20 20 20 20 3c 62 3e 4d 61 6b 65  mat..    <b>Make
59c0: 20 62 61 63 6b 75 70 20 63 6f 70 69 65 73 20 6f   backup copies o
59d0: 66 20 6f 6c 64 65 72 20 64 61 74 61 62 61 73 65  f older database
59e0: 20 66 69 6c 65 73 20 62 65 66 6f 72 65 20 6f 70   files before op
59f0: 65 6e 69 6e 67 20 74 68 65 6d 20 77 69 74 68 0a  ening them with.
5a00: 20 20 20 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e      version 2.6.
5a10: 30 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79  0 of the library
5a20: 2e 3c 2f 62 3e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  .</b>.    </li>.
5a30: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
5a40: 79 20 37 20 28 32 2e 35 2e 36 29 7d 20 7b 0a 3c  y 7 (2.5.6)} {.<
5a50: 6c 69 3e 46 69 78 20 6d 6f 72 65 20 70 72 6f 62  li>Fix more prob
5a60: 6c 65 6d 73 20 77 69 74 68 20 72 6f 6c 6c 62 61  lems with rollba
5a70: 63 6b 2e 20 20 45 6e 68 61 6e 63 65 20 74 68 65  ck.  Enhance the
5a80: 20 74 65 73 74 20 73 75 69 74 65 20 74 6f 20 65   test suite to e
5a90: 78 65 72 63 69 73 65 0a 20 20 20 20 74 68 65 20  xercise.    the 
5aa0: 72 6f 6c 6c 62 61 63 6b 20 6c 6f 67 69 63 20 65  rollback logic e
5ab0: 78 74 65 6e 73 69 76 65 6c 79 20 69 6e 20 6f 72  xtensively in or
5ac0: 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 61  der to prevent a
5ad0: 6e 79 20 66 75 74 75 72 65 20 70 72 6f 62 6c 65  ny future proble
5ae0: 6d 73 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a  ms..    </li>.}.
5af0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20  .chng {2002 Jly 
5b00: 36 20 28 32 2e 35 2e 35 29 7d 20 7b 0a 3c 6c 69  6 (2.5.5)} {.<li
5b10: 3e 46 69 78 20 61 20 62 75 67 20 77 68 69 63 68  >Fix a bug which
5b20: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61 74   could cause dat
5b30: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
5b40: 20 64 75 72 69 6e 67 20 61 20 72 6f 6c 6c 62 61   during a rollba
5b50: 63 6b 2e 0a 20 20 20 20 54 68 69 73 20 62 75 67  ck..    This bug
5b60: 73 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64  s was introduced
5b70: 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 2e   in version 2.4.
5b80: 30 20 62 79 20 74 68 65 20 66 72 65 65 6c 69 73  0 by the freelis
5b90: 74 0a 20 20 20 20 6f 70 74 69 6d 69 7a 61 74 69  t.    optimizati
5ba0: 6f 6e 20 6f 66 20 63 68 65 63 6b 69 6e 67 20 5b  on of checking [
5bb0: 34 31 30 5d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  410].</li>.<li>F
5bc0: 69 78 20 61 20 62 75 67 20 69 6e 20 61 67 67 72  ix a bug in aggr
5bd0: 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e 73 20  egate functions 
5be0: 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a  for VIEWs.</li>.
5bf0: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
5c00: 63 68 61 6e 67 65 73 20 61 6e 64 20 65 6e 68 61  changes and enha
5c10: 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d  ncements.</li>.}
5c20: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79  ..chng {2002 Jly
5c30: 20 31 20 28 32 2e 35 2e 34 29 7d 20 7b 0a 3c 6c   1 (2.5.4)} {.<l
5c40: 69 3e 4d 61 6b 65 20 74 68 65 20 22 41 53 22 20  i>Make the "AS" 
5c50: 6b 65 79 77 6f 72 64 20 6f 70 74 69 6f 6e 61 6c  keyword optional
5c60: 20 61 67 61 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69   again.</li>.<li
5c70: 3e 54 68 65 20 64 61 74 61 74 79 70 65 20 6f 66  >The datatype of
5c80: 20 63 6f 6c 75 6d 6e 73 20 6e 6f 77 20 61 70 70   columns now app
5c90: 65 61 72 20 69 6e 20 74 68 65 20 34 74 68 20 61  ear in the 4th a
5ca0: 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65 0a 20  rgument to the. 
5cb0: 20 20 20 63 61 6c 6c 62 61 63 6b 2e 3c 2f 6c 69     callback.</li
5cc0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
5cd0: 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 5f 61  <b>sqlite_open_a
5ce0: 75 78 5f 66 69 6c 65 28 29 3c 2f 62 3e 20 41 50  ux_file()</b> AP
5cf0: 49 2c 20 74 68 6f 75 67 68 20 69 74 20 69 73 20  I, though it is 
5d00: 73 74 69 6c 6c 0a 20 20 20 20 6d 6f 73 74 6c 79  still.    mostly
5d10: 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20 61 6e   undocumented an
5d20: 64 20 75 6e 74 65 73 74 65 64 2e 3c 2f 6c 69 3e  d untested.</li>
5d30: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 64 64 69 74  .<li>Added addit
5d40: 69 6f 6e 61 6c 20 74 65 73 74 20 63 61 73 65 73  ional test cases
5d50: 20 61 6e 64 20 66 69 78 65 64 20 61 20 66 65 77   and fixed a few
5d60: 20 62 75 67 73 20 74 68 61 74 20 74 68 6f 73 65   bugs that those
5d70: 0a 20 20 20 20 74 65 73 74 20 63 61 73 65 73 20  .    test cases 
5d80: 66 6f 75 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  found.</li>.}..c
5d90: 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 32 34  hng {2002 Jun 24
5da0: 20 28 32 2e 35 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.5.3)} {.<li>
5db0: 42 75 67 20 66 69 78 3a 20 20 44 61 74 61 62 61  Bug fix:  Databa
5dc0: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 63 61  se corruption ca
5dd0: 6e 20 6f 63 63 75 72 20 64 75 65 20 74 6f 20 74  n occur due to t
5de0: 68 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 0a  he optimization.
5df0: 20 20 20 20 74 68 61 74 20 77 61 73 20 69 6e 74      that was int
5e00: 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73 69  roduced in versi
5e10: 6f 6e 20 32 2e 34 2e 30 20 28 63 68 65 63 6b 2d  on 2.4.0 (check-
5e20: 69 6e 20 5b 34 31 30 5d 29 2e 20 20 54 68 65 20  in [410]).  The 
5e30: 70 72 6f 62 6c 65 6d 0a 20 20 20 20 73 68 6f 75  problem.    shou
5e40: 6c 64 20 6e 6f 77 20 62 65 20 66 69 78 65 64 2e  ld now be fixed.
5e50: 20 20 54 68 65 20 75 73 65 20 6f 66 20 76 65 72    The use of ver
5e60: 73 69 6f 6e 73 20 32 2e 34 2e 30 20 74 68 72 6f  sions 2.4.0 thro
5e70: 75 67 68 20 32 2e 35 2e 32 20 69 73 0a 20 20 20  ugh 2.5.2 is.   
5e80: 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64   not recommended
5e90: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5ea0: 32 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e 35  2002 Jun 24 (2.5
5eb0: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .2)} {.<li>Added
5ec0: 20 74 68 65 20 6e 65 77 20 3c 62 3e 53 51 4c 49   the new <b>SQLI
5ed0: 54 45 5f 54 45 4d 50 5f 4d 41 53 54 45 52 3c 2f  TE_TEMP_MASTER</
5ee0: 62 3e 20 74 61 62 6c 65 20 77 68 69 63 68 20 72  b> table which r
5ef0: 65 63 6f 72 64 73 20 74 68 65 20 73 63 68 65 6d  ecords the schem
5f00: 61 0a 20 20 20 20 66 6f 72 20 74 65 6d 70 6f 72  a.    for tempor
5f10: 61 72 79 20 74 61 62 6c 65 73 20 69 6e 20 74 68  ary tables in th
5f20: 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20  e same way that 
5f30: 3c 62 3e 53 51 4c 49 54 45 5f 4d 41 53 54 45 52  <b>SQLITE_MASTER
5f40: 3c 2f 62 3e 20 64 6f 65 73 20 66 6f 72 0a 20 20  </b> does for.  
5f50: 20 20 70 65 72 73 69 73 74 65 6e 74 20 74 61 62    persistent tab
5f60: 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  les.</li>.<li>Ad
5f70: 64 65 64 20 61 6e 20 6f 70 74 69 6d 69 7a 61 74  ded an optimizat
5f80: 69 6f 6e 20 74 6f 20 55 4e 49 4f 4e 20 41 4c 4c  ion to UNION ALL
5f90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20  </li>.<li>Fixed 
5fa0: 61 20 62 75 67 20 69 6e 20 74 68 65 20 70 72 6f  a bug in the pro
5fb0: 63 65 73 73 69 6e 67 20 6f 66 20 4c 45 46 54 20  cessing of LEFT 
5fc0: 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a  OUTER JOIN</li>.
5fd0: 3c 6c 69 3e 54 68 65 20 4c 49 4d 49 54 20 63 6c  <li>The LIMIT cl
5fe0: 61 75 73 65 20 6e 6f 77 20 77 6f 72 6b 73 20 6f  ause now works o
5ff0: 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69  n subselects</li
6000: 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20 42 59 20 77  >.<li>ORDER BY w
6010: 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c 65 63  orks on subselec
6020: 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 72  ts</li>.<li>Ther
6030: 65 20 69 73 20 61 20 6e 65 77 20 54 79 70 65 4f  e is a new TypeO
6040: 66 28 29 20 66 75 6e 63 74 69 6f 6e 20 75 73 65  f() function use
6050: 64 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69  d to determine i
6060: 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 0a  f an expression.
6070: 20 20 20 20 69 73 20 6e 75 6d 65 72 69 63 20 6f      is numeric o
6080: 72 20 74 65 78 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  r text.</li>.<li
6090: 3e 41 75 74 6f 69 6e 63 72 65 6d 65 6e 74 20 6e  >Autoincrement n
60a0: 6f 77 20 77 6f 72 6b 73 20 66 6f 72 20 49 4e 53  ow works for INS
60b0: 45 52 54 20 66 72 6f 6d 20 61 20 53 45 4c 45 43  ERT from a SELEC
60c0: 54 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  T.</li>.}..chng 
60d0: 7b 32 30 30 32 20 4a 75 6e 20 31 39 20 28 32 2e  {2002 Jun 19 (2.
60e0: 35 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  5.1)} {.<li>The 
60f0: 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 65 72 20  query optimizer 
6100: 6e 6f 77 20 61 74 74 65 6d 70 74 73 20 74 6f 20  now attempts to 
6110: 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 4f 52  implement the OR
6120: 44 45 52 20 42 59 20 63 6c 61 75 73 65 0a 20 20  DER BY clause.  
6130: 20 20 75 73 69 6e 67 20 61 6e 20 69 6e 64 65 78    using an index
6140: 2e 20 20 53 6f 72 74 69 6e 67 20 69 73 20 73 74  .  Sorting is st
6150: 69 6c 6c 20 75 73 65 64 20 69 66 20 6e 6f 74 20  ill used if not 
6160: 73 75 69 74 61 62 6c 65 20 69 6e 64 65 78 20 69  suitable index i
6170: 73 0a 20 20 20 20 61 76 61 69 6c 61 62 6c 65 2e  s.    available.
6180: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
6190: 30 30 32 20 4a 75 6e 20 31 37 20 28 32 2e 35 2e  002 Jun 17 (2.5.
61a0: 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  0)} {.<li>Added 
61b0: 73 75 70 70 6f 72 74 20 66 6f 72 20 72 6f 77 20  support for row 
61c0: 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c  triggers.</li>.<
61d0: 6c 69 3e 41 64 64 65 64 20 53 51 4c 2d 39 32 20  li>Added SQL-92 
61e0: 63 6f 6d 70 6c 69 61 6e 74 20 68 61 6e 64 6c 69  compliant handli
61f0: 6e 67 20 6f 66 20 4e 55 4c 4c 73 2e 3c 2f 6c 69  ng of NULLs.</li
6200: 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72  >.<li>Add suppor
6210: 74 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20 53  t for the full S
6220: 51 4c 2d 39 32 20 6a 6f 69 6e 20 73 79 6e 74 61  QL-92 join synta
6230: 78 20 61 6e 64 20 4c 45 46 54 20 4f 55 54 45 52  x and LEFT OUTER
6240: 20 4a 4f 49 4e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   JOINs.</li>.<li
6250: 3e 44 6f 75 62 6c 65 2d 71 75 6f 74 65 64 20 73  >Double-quoted s
6260: 74 72 69 6e 67 73 20 69 6e 74 65 72 70 72 65 74  trings interpret
6270: 65 64 20 61 73 20 63 6f 6c 75 6d 6e 20 6e 61 6d  ed as column nam
6280: 65 73 20 6e 6f 74 20 74 65 78 74 20 6c 69 74 65  es not text lite
6290: 72 61 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  rals.</li>.<li>P
62a0: 61 72 73 65 20 28 62 75 74 20 64 6f 20 6e 6f 74  arse (but do not
62b0: 20 69 6d 70 6c 65 6d 65 6e 74 29 20 66 6f 72 65   implement) fore
62c0: 69 67 6e 20 6b 65 79 73 2e 3c 2f 6c 69 3e 0a 3c  ign keys.</li>.<
62d0: 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 69  li>Performance i
62e0: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74  mprovements in t
62f0: 68 65 20 70 61 72 73 65 72 2c 20 70 61 67 65 72  he parser, pager
6300: 2c 20 61 6e 64 20 57 48 45 52 45 20 63 6c 61 75  , and WHERE clau
6310: 73 65 20 63 6f 64 65 0a 20 20 20 20 67 65 6e 65  se code.    gene
6320: 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rator.</li>.<li>
6330: 4d 61 6b 65 20 74 68 65 20 4c 49 4d 49 54 20 63  Make the LIMIT c
6340: 6c 61 75 73 65 20 77 6f 72 6b 20 6f 6e 20 73 75  lause work on su
6350: 62 71 75 65 72 69 65 73 2e 20 20 28 4f 52 44 45  bqueries.  (ORDE
6360: 52 20 42 59 20 73 74 69 6c 6c 20 64 6f 65 73 20  R BY still does 
6370: 6e 6f 74 0a 20 20 20 20 77 6f 72 6b 2c 20 74 68  not.    work, th
6380: 6f 75 67 68 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ough.)</li>.<li>
6390: 41 64 64 65 64 20 74 68 65 20 22 25 51 22 20 65  Added the "%Q" e
63a0: 78 70 61 6e 73 69 6f 6e 20 74 6f 20 73 71 6c 69  xpansion to sqli
63b0: 74 65 5f 2a 5f 70 72 69 6e 74 66 28 29 2e 3c 2f  te_*_printf().</
63c0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65  li>.<li>Bug fixe
63d0: 73 20 74 6f 6f 20 6e 75 6d 65 72 6f 75 73 20 74  s too numerous t
63e0: 6f 20 6d 65 6e 74 69 6f 6e 20 28 73 65 65 20 74  o mention (see t
63f0: 68 65 20 63 68 61 6e 67 65 20 6c 6f 67 29 2e 3c  he change log).<
6400: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6410: 30 32 20 4d 61 79 20 30 39 20 28 32 2e 34 2e 31  02 May 09 (2.4.1
6420: 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  2)} {.<li>Added 
6430: 6c 6f 67 69 63 20 74 6f 20 64 65 74 65 63 74 20  logic to detect 
6440: 77 68 65 6e 20 74 68 65 20 6c 69 62 72 61 72 79  when the library
6450: 20 41 50 49 20 72 6f 75 74 69 6e 65 73 20 61 72   API routines ar
6460: 65 20 63 61 6c 6c 65 64 20 6f 75 74 0a 20 20 20  e called out.   
6470: 20 6f 66 20 73 65 71 75 65 6e 63 65 2e 3c 2f 6c   of sequence.</l
6480: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
6490: 20 4d 61 79 20 30 38 20 28 32 2e 34 2e 31 31 29   May 08 (2.4.11)
64a0: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
64b0: 20 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e   Column names in
64c0: 20 74 68 65 20 72 65 73 75 6c 74 20 73 65 74 20   the result set 
64d0: 77 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 67  were not being g
64e0: 65 6e 65 72 61 74 65 64 0a 20 20 20 20 63 6f 72  enerated.    cor
64f0: 72 65 63 74 6c 79 20 66 6f 72 20 73 6f 6d 65 20  rectly for some 
6500: 28 72 61 74 68 65 72 20 63 6f 6d 70 6c 65 78 29  (rather complex)
6510: 20 56 49 45 57 73 2e 20 20 54 68 69 73 20 63 6f   VIEWs.  This co
6520: 75 6c 64 20 63 61 75 73 65 20 61 0a 20 20 20 20  uld cause a.    
6530: 73 65 67 66 61 75 6c 74 20 75 6e 64 65 72 20 63  segfault under c
6540: 65 72 74 61 69 6e 20 63 69 72 63 75 6d 73 74 61  ertain circumsta
6550: 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  nces.</li>.}..ch
6560: 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30 32 20  ng {2002 May 02 
6570: 28 32 2e 34 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e  (2.4.10)} {.<li>
6580: 42 75 67 20 66 69 78 3a 20 47 65 6e 65 72 61 74  Bug fix: Generat
6590: 65 20 63 6f 72 72 65 63 74 20 63 6f 6c 75 6d 6e  e correct column
65a0: 20 68 65 61 64 65 72 73 20 77 68 65 6e 20 61 20   headers when a 
65b0: 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20  compound SELECT 
65c0: 69 73 20 75 73 65 64 0a 20 20 20 20 61 73 20 61  is used.    as a
65d0: 20 73 75 62 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a   subquery.</li>.
65e0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73 71  <li>Added the sq
65f0: 6c 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61  lite_encode_bina
6600: 72 79 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f  ry() and sqlite_
6610: 64 65 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20  decode_binary() 
6620: 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20 20  functions to.   
6630: 20 74 68 65 20 73 6f 75 72 63 65 20 74 72 65 65   the source tree
6640: 2e 20 20 42 75 74 20 74 68 65 79 20 61 72 65 20  .  But they are 
6650: 6e 6f 74 20 79 65 74 20 6c 69 6e 6b 65 64 20 69  not yet linked i
6660: 6e 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79 2e  nto the library.
6670: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
6680: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e  ntation updates.
6690: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74  </li>.<li>Export
66a0: 20 74 68 65 20 73 71 6c 69 74 65 5f 63 68 61 6e   the sqlite_chan
66b0: 67 65 73 28 29 20 66 75 6e 63 74 69 6f 6e 20 66  ges() function f
66c0: 72 6f 6d 20 77 69 6e 64 6f 77 73 20 44 4c 4c 73  rom windows DLLs
66d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
66e0: 69 78 3a 20 44 6f 20 6e 6f 74 20 61 74 74 65 6d  ix: Do not attem
66f0: 70 74 20 74 68 65 20 73 75 62 71 75 65 72 79 20  pt the subquery 
6700: 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74 69 6d  flattening optim
6710: 69 7a 61 74 69 6f 6e 20 6f 6e 20 71 75 65 72 69  ization on queri
6720: 65 73 0a 20 20 20 20 74 68 61 74 20 6c 61 63 6b  es.    that lack
6730: 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 20   a FROM clause. 
6740: 20 54 6f 20 64 6f 20 73 6f 20 63 61 75 73 65 73   To do so causes
6750: 20 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c 69   a segfault.</li
6760: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
6770: 41 70 72 20 32 31 20 28 32 2e 34 2e 39 29 7d 20  Apr 21 (2.4.9)} 
6780: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
6790: 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67  that was causing
67a0: 20 74 68 65 20 70 72 65 63 6f 6d 70 69 6c 65 64   the precompiled
67b0: 20 62 69 6e 61 72 79 20 6f 66 20 53 51 4c 49 54   binary of SQLIT
67c0: 45 2e 45 58 45 20 74 6f 0a 20 20 20 20 72 65 70  E.EXE to.    rep
67d0: 6f 72 74 20 22 6f 75 74 20 6f 66 20 6d 65 6d 6f  ort "out of memo
67e0: 72 79 22 20 75 6e 64 65 72 20 57 69 6e 64 6f 77  ry" under Window
67f0: 73 20 39 38 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  s 98.</li>.}..ch
6800: 6e 67 20 7b 32 30 30 32 20 41 70 72 20 32 30 20  ng {2002 Apr 20 
6810: 28 32 2e 34 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d  (2.4.8)} {.<li>M
6820: 61 6b 65 20 73 75 72 65 20 56 49 45 57 73 20 61  ake sure VIEWs a
6830: 72 65 20 63 72 65 61 74 65 64 20 61 66 74 65 72  re created after
6840: 20 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e   their correspon
6850: 64 69 6e 67 20 54 41 42 4c 45 73 20 69 6e 20 74  ding TABLEs in t
6860: 68 65 0a 20 20 20 20 6f 75 74 70 75 74 20 6f 66  he.    output of
6870: 20 74 68 65 20 3c 62 3e 2e 64 75 6d 70 3c 2f 62   the <b>.dump</b
6880: 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65  > command in the
6890: 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69   shell.</li>.<li
68a0: 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65  >Speed improveme
68b0: 6e 74 73 3a 20 44 6f 20 6e 6f 74 20 64 6f 20 73  nts: Do not do s
68c0: 79 6e 63 68 72 6f 6e 6f 75 73 20 75 70 64 61 74  ynchronous updat
68d0: 65 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c 65  es on TEMP table
68e0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79  s.</li>.<li>Many
68f0: 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61 6e   improvements an
6900: 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74  d enhancements t
6910: 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69  o the shell.</li
6920: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 47  >.<li>Make the G
6930: 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70 65  LOB and LIKE ope
6940: 72 61 74 6f 72 73 20 66 75 6e 63 74 69 6f 6e 73  rators functions
6950: 20 74 68 61 74 20 63 61 6e 20 62 65 20 6f 76 65   that can be ove
6960: 72 72 69 64 64 65 6e 0a 20 20 20 20 62 79 20 61  rridden.    by a
6970: 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 20 54 68   programmer.  Th
6980: 69 73 20 61 6c 6c 6f 77 73 2c 20 66 6f 72 20 65  is allows, for e
6990: 78 61 6d 70 6c 65 2c 20 74 68 65 20 4c 49 4b 45  xample, the LIKE
69a0: 20 6f 70 65 72 61 74 6f 72 20 74 6f 0a 20 20 20   operator to.   
69b0: 20 62 65 20 63 68 61 6e 67 65 64 20 74 6f 20 62   be changed to b
69c0: 65 20 63 61 73 65 20 73 65 6e 73 69 74 69 76 65  e case sensitive
69d0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
69e0: 32 30 30 32 20 41 70 72 20 30 36 20 28 32 2e 34  2002 Apr 06 (2.4
69f0: 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74  .7)} {.<li>Add t
6a00: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75  he ability to pu
6a10: 74 20 54 41 42 4c 45 2e 2a 20 69 6e 20 74 68 65  t TABLE.* in the
6a20: 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20   column list of 
6a30: 61 0a 20 20 20 20 53 45 4c 45 43 54 20 73 74 61  a.    SELECT sta
6a40: 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tement.</li>.<li
6a50: 3e 50 65 72 6d 69 74 20 53 45 4c 45 43 54 20 73  >Permit SELECT s
6a60: 74 61 74 65 6d 65 6e 74 73 20 77 69 74 68 6f 75  tatements withou
6a70: 74 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e  t a FROM clause.
6a80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
6a90: 74 68 65 20 3c 62 3e 6c 61 73 74 5f 69 6e 73 65  the <b>last_inse
6aa0: 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20 53  rt_rowid()</b> S
6ab0: 51 4c 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69  QL function.</li
6ac0: 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 63 6f 75  >.<li>Do not cou
6ad0: 6e 74 20 72 6f 77 73 20 77 68 65 72 65 20 74 68  nt rows where th
6ae0: 65 20 49 47 4e 4f 52 45 20 63 6f 6e 66 6c 69 63  e IGNORE conflic
6af0: 74 20 72 65 73 6f 6c 75 74 69 6f 6e 20 6f 63 63  t resolution occ
6b00: 75 72 73 20 69 6e 0a 20 20 20 20 74 68 65 20 72  urs in.    the r
6b10: 6f 77 20 63 6f 75 6e 74 2e 3c 2f 6c 69 3e 0a 3c  ow count.</li>.<
6b20: 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 66 75 6e  li>Make sure fun
6b30: 63 74 69 6f 6e 73 20 65 78 70 72 65 73 73 69 6f  ctions expressio
6b40: 6e 73 20 69 6e 20 74 68 65 20 56 41 4c 55 45 53  ns in the VALUES
6b50: 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20 49 4e   clause of an IN
6b60: 53 45 52 54 0a 20 20 20 20 61 72 65 20 63 6f 72  SERT.    are cor
6b70: 72 65 63 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  rect.</li>.<li>A
6b80: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
6b90: 74 65 5f 63 68 61 6e 67 65 73 28 29 3c 2f 62 3e  te_changes()</b>
6ba0: 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 20 74 6f   API function to
6bb0: 20 72 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62   return the numb
6bc0: 65 72 0a 20 20 20 20 6f 66 20 72 6f 77 20 74 68  er.    of row th
6bd0: 61 74 20 63 68 61 6e 67 65 64 20 69 6e 20 74 68  at changed in th
6be0: 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 6f 70  e most recent op
6bf0: 65 72 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a  eration.</li>.}.
6c00: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20  .chng {2002 Apr 
6c10: 30 32 20 28 32 2e 34 2e 36 29 7d 20 7b 0a 3c 6c  02 (2.4.6)} {.<l
6c20: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65  i>Bug fix: Corre
6c30: 63 74 6c 79 20 68 61 6e 64 6c 65 20 74 65 72 6d  ctly handle term
6c40: 73 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63  s in the WHERE c
6c50: 6c 61 75 73 65 20 6f 66 20 61 20 6a 6f 69 6e 20  lause of a join 
6c60: 74 68 61 74 0a 20 20 20 20 64 6f 20 6e 6f 74 20  that.    do not 
6c70: 63 6f 6e 74 61 69 6e 20 61 20 63 6f 6d 70 61 72  contain a compar
6c80: 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 2e 3c 2f  ison operator.</
6c90: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6ca0: 32 20 41 70 72 20 30 31 20 28 32 2e 34 2e 35 29  2 Apr 01 (2.4.5)
6cb0: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
6cc0: 20 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c   Correctly handl
6cd0: 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74  e functions that
6ce0: 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 57   appear in the W
6cf0: 48 45 52 45 20 63 6c 61 75 73 65 0a 20 20 20 20  HERE clause.    
6d00: 6f 66 20 61 20 6a 6f 69 6e 2e 3c 2f 6c 69 3e 0a  of a join.</li>.
6d10: 3c 6c 69 3e 57 68 65 6e 20 74 68 65 20 50 52 41  <li>When the PRA
6d20: 47 4d 41 20 76 64 62 65 5f 74 72 61 63 65 3d 4f  GMA vdbe_trace=O
6d30: 4e 20 69 73 20 73 65 74 2c 20 63 6f 72 72 65 63  N is set, correc
6d40: 74 6c 79 20 70 72 69 6e 74 20 74 68 65 20 50 33  tly print the P3
6d50: 20 6f 70 65 72 61 6e 64 0a 20 20 20 20 76 61 6c   operand.    val
6d60: 75 65 20 77 68 65 6e 20 69 74 20 69 73 20 61 20  ue when it is a 
6d70: 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 73 74 72  pointer to a str
6d80: 75 63 74 75 72 65 20 72 61 74 68 65 72 20 74 68  ucture rather th
6d90: 61 6e 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 0a  an a pointer to.
6da0: 20 20 20 20 61 20 73 74 72 69 6e 67 2e 3c 2f 6c      a string.</l
6db0: 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 69 6e 73 65  i>.<li>When inse
6dc0: 72 74 69 6e 67 20 61 6e 20 65 78 70 6c 69 63 69  rting an explici
6dd0: 74 20 4e 55 4c 4c 20 69 6e 74 6f 20 61 6e 20 49  t NULL into an I
6de0: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
6df0: 45 59 2c 20 63 6f 6e 76 65 72 74 0a 20 20 20 20  EY, convert.    
6e00: 74 68 65 20 4e 55 4c 4c 20 76 61 6c 75 65 20 69  the NULL value i
6e10: 6e 74 6f 20 61 20 75 6e 69 71 75 65 20 6b 65 79  nto a unique key
6e20: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 3c   automatically.<
6e30: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6e40: 30 32 20 4d 61 72 20 32 34 20 28 32 2e 34 2e 34  02 Mar 24 (2.4.4
6e50: 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22  )} {.<li>Allow "
6e60: 56 49 45 57 22 20 74 6f 20 62 65 20 61 20 63 6f  VIEW" to be a co
6e70: 6c 75 6d 6e 20 6e 61 6d 65 3c 2f 6c 69 3e 0a 3c  lumn name</li>.<
6e80: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
6e90: 20 66 6f 72 20 43 41 53 45 20 65 78 70 72 65 73   for CASE expres
6ea0: 73 69 6f 6e 73 20 28 70 61 74 63 68 20 66 72 6f  sions (patch fro
6eb0: 6d 20 44 61 6e 20 4b 65 6e 6e 65 64 79 29 3c 2f  m Dan Kennedy)</
6ec0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 52 50  li>.<li>Added RP
6ed0: 4d 53 20 74 6f 20 74 68 65 20 64 65 6c 69 76 65  MS to the delive
6ee0: 72 79 20 28 70 61 74 63 68 65 73 20 66 72 6f 6d  ry (patches from
6ef0: 20 44 6f 75 67 20 48 65 6e 72 79 29 3c 2f 6c 69   Doug Henry)</li
6f00: 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73 20  >.<li>Fix typos 
6f10: 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61  in the documenta
6f20: 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 75  tion</li>.<li>Cu
6f30: 74 20 6f 76 65 72 20 63 6f 6e 66 69 67 75 72 61  t over configura
6f40: 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e 74 20  tion management 
6f50: 74 6f 20 61 20 6e 65 77 20 43 56 53 20 72 65 70  to a new CVS rep
6f60: 6f 73 69 74 6f 72 79 20 77 69 74 68 0a 20 20 20  ository with.   
6f70: 20 69 74 73 20 6f 77 6e 20 43 56 53 54 72 61 63   its own CVSTrac
6f80: 20 62 75 67 20 74 72 61 63 6b 69 6e 67 20 73 79   bug tracking sy
6f90: 73 74 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  stem.</li>.}..ch
6fa0: 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 32 32 20  ng {2002 Mar 22 
6fb0: 28 32 2e 34 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.4.3)} {.<li>F
6fc0: 69 78 20 61 20 62 75 67 20 69 6e 20 53 45 4c 45  ix a bug in SELE
6fd0: 43 54 20 74 68 61 74 20 6f 63 63 75 72 73 20 77  CT that occurs w
6fe0: 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53  hen a compound S
6ff0: 45 4c 45 43 54 20 69 73 20 75 73 65 64 20 61 73  ELECT is used as
7000: 20 61 0a 20 20 20 20 73 75 62 71 75 65 72 79 20   a.    subquery 
7010: 69 6e 20 74 68 65 20 46 52 4f 4d 20 6f 66 20 61  in the FROM of a
7020: 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c   SELECT.</li>.<l
7030: 69 3e 54 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  i>The <b>sqlite_
7040: 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20  get_table()</b> 
7050: 66 75 6e 63 74 69 6f 6e 20 6e 6f 77 20 72 65 74  function now ret
7060: 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 20 69 66  urns an error if
7070: 20 79 6f 75 0a 20 20 20 20 67 69 76 65 20 69 74   you.    give it
7080: 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 53 45 4c   two or more SEL
7090: 45 43 54 73 20 74 68 61 74 20 72 65 74 75 72 6e  ECTs that return
70a0: 20 64 69 66 66 65 72 65 6e 74 20 6e 75 6d 62 65   different numbe
70b0: 72 73 20 6f 66 20 63 6f 6c 75 6d 6e 73 2e 3c 2f  rs of columns.</
70c0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
70d0: 32 20 4d 61 72 20 31 34 20 28 32 2e 34 2e 32 29  2 Mar 14 (2.4.2)
70e0: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
70f0: 20 46 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f   Fix an assertio
7100: 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f  n failure that o
7110: 63 63 75 72 72 65 64 20 77 68 65 6e 20 52 4f 57  ccurred when ROW
7120: 49 44 20 77 61 73 20 61 20 63 6f 6c 75 6d 6e 0a  ID was a column.
7130: 20 20 20 20 69 6e 20 61 20 53 45 4c 45 43 54 20      in a SELECT 
7140: 73 74 61 74 65 6d 65 6e 74 20 6f 6e 20 61 20 76  statement on a v
7150: 69 65 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  iew.</li>.<li>Bu
7160: 67 20 66 69 78 3a 20 46 69 78 20 61 6e 20 75 6e  g fix: Fix an un
7170: 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72 69  initialized vari
7180: 61 62 6c 65 20 69 6e 20 74 68 65 20 56 44 42 45  able in the VDBE
7190: 20 74 68 61 74 20 77 6f 75 6c 64 20 63 6f 75 6c   that would coul
71a0: 64 20 61 6e 0a 20 20 20 20 61 73 73 65 72 74 20  d an.    assert 
71b0: 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c  failure.</li>.<l
71c0: 69 3e 4d 61 6b 65 20 74 68 65 20 6f 73 2e 68 20  i>Make the os.h 
71d0: 68 65 61 64 65 72 20 66 69 6c 65 20 6d 6f 72 65  header file more
71e0: 20 72 6f 62 75 73 74 20 69 6e 20 64 65 74 65 63   robust in detec
71f0: 74 69 6e 67 20 77 68 65 6e 20 74 68 65 20 63 6f  ting when the co
7200: 6d 70 69 6c 65 20 69 73 0a 20 20 20 20 66 6f 72  mpile is.    for
7210: 20 77 69 6e 64 6f 77 73 20 61 6e 64 20 77 68 65   windows and whe
7220: 6e 20 69 74 20 69 73 20 66 6f 72 20 75 6e 69 78  n it is for unix
7230: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
7240: 32 30 30 32 20 4d 61 72 20 31 33 20 28 32 2e 34  2002 Mar 13 (2.4
7250: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 55 73 69 6e 67  .1)} {.<li>Using
7260: 20 61 6e 20 75 6e 6e 61 6d 65 64 20 73 75 62 71   an unnamed subq
7270: 75 65 72 79 20 69 6e 20 61 20 46 52 4f 4d 20 63  uery in a FROM c
7280: 6c 61 75 73 65 20 77 6f 75 6c 64 20 63 61 75 73  lause would caus
7290: 65 20 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c  e a segfault.</l
72a0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65  i>.<li>The parse
72b0: 72 20 6e 6f 77 20 69 6e 73 69 73 74 73 20 6f 6e  r now insists on
72c0: 20 73 65 65 69 6e 67 20 61 20 73 65 6d 69 63 6f   seeing a semico
72d0: 6c 6f 6e 20 6f 72 20 74 68 65 20 65 6e 64 20 6f  lon or the end o
72e0: 66 20 69 6e 70 75 74 20 62 65 66 6f 72 65 0a 20  f input before. 
72f0: 20 20 20 65 78 65 63 75 74 69 6e 67 20 61 20 73     executing a s
7300: 74 61 74 65 6d 65 6e 74 2e 20 20 54 68 69 73 20  tatement.  This 
7310: 61 76 6f 69 64 73 20 61 6e 20 61 63 63 69 64 65  avoids an accide
7320: 6e 74 61 6c 20 64 69 73 61 73 74 65 72 20 69 66  ntal disaster if
7330: 20 74 68 65 0a 20 20 20 20 57 48 45 52 45 20 6b   the.    WHERE k
7340: 65 79 77 6f 72 64 20 69 73 20 6d 69 73 73 70 65  eyword is misspe
7350: 6c 6c 65 64 20 69 6e 20 61 6e 20 55 50 44 41 54  lled in an UPDAT
7360: 45 20 6f 72 20 44 45 4c 45 54 45 20 73 74 61 74  E or DELETE stat
7370: 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 0a  ement.</li>.}...
7380: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 31  chng {2002 Mar 1
7390: 30 20 28 32 2e 34 2e 30 29 7d 20 7b 0a 3c 6c 69  0 (2.4.0)} {.<li
73a0: 3e 43 68 61 6e 67 65 20 74 68 65 20 6e 61 6d 65  >Change the name
73b0: 20 6f 66 20 74 68 65 20 73 61 6e 69 74 79 5f 63   of the sanity_c
73c0: 68 65 63 6b 20 50 52 41 47 4d 41 20 74 6f 20 3c  heck PRAGMA to <
73d0: 62 3e 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63  b>integrity_chec
73e0: 6b 3c 2f 62 3e 0a 20 20 20 20 61 6e 64 20 6d 61  k</b>.    and ma
73f0: 6b 65 20 69 74 20 61 76 61 69 6c 61 62 6c 65 20  ke it available 
7400: 69 6e 20 61 6c 6c 20 63 6f 6d 70 69 6c 65 73 2e  in all compiles.
7410: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 45 4c 45 43 54  </li>.<li>SELECT
7420: 20 6d 69 6e 28 29 20 6f 72 20 6d 61 78 28 29 20   min() or max() 
7430: 6f 66 20 61 6e 20 69 6e 64 65 78 65 64 20 63 6f  of an indexed co
7440: 6c 75 6d 6e 20 77 69 74 68 20 6e 6f 20 57 48 45  lumn with no WHE
7450: 52 45 20 6f 72 20 47 52 4f 55 50 20 42 59 0a 20  RE or GROUP BY. 
7460: 20 20 20 63 6c 61 75 73 65 20 69 73 20 68 61 6e     clause is han
7470: 64 6c 65 64 20 61 73 20 61 20 73 70 65 63 69 61  dled as a specia
7480: 6c 20 63 61 73 65 20 77 68 69 63 68 20 61 76 6f  l case which avo
7490: 69 64 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 74  ids a complete t
74a0: 61 62 6c 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a  able scan.</li>.
74b0: 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c  <li>Automaticall
74c0: 79 20 67 65 6e 65 72 61 74 65 64 20 52 4f 57 49  y generated ROWI
74d0: 44 73 20 61 72 65 20 6e 6f 77 20 73 65 71 75 65  Ds are now seque
74e0: 6e 74 69 61 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ntial.</li>.<li>
74f0: 44 6f 20 6e 6f 74 20 61 6c 6c 6f 77 20 64 6f 74  Do not allow dot
7500: 2d 63 6f 6d 6d 61 6e 64 73 20 6f 66 20 74 68 65  -commands of the
7510: 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68   command-line sh
7520: 65 6c 6c 20 74 6f 20 6f 63 63 75 72 20 69 6e 20  ell to occur in 
7530: 74 68 65 0a 20 20 20 20 6d 69 64 64 6c 65 20 6f  the.    middle o
7540: 66 20 61 20 72 65 61 6c 20 53 51 4c 20 63 6f 6d  f a real SQL com
7550: 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  mand.</li>.<li>M
7560: 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 20  odifications to 
7570: 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73  the "lemon" pars
7580: 65 72 20 67 65 6e 65 72 61 74 6f 72 20 73 6f 20  er generator so 
7590: 74 68 61 74 20 74 68 65 20 70 61 72 73 65 72 20  that the parser 
75a0: 74 61 62 6c 65 73 0a 20 20 20 20 61 72 65 20 34  tables.    are 4
75b0: 20 74 69 6d 65 73 20 73 6d 61 6c 6c 65 72 2e 3c   times smaller.<
75c0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
75d0: 75 70 70 6f 72 74 20 66 6f 72 20 75 73 65 72 2d  upport for user-
75e0: 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e  defined function
75f0: 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 69 6e  s implemented in
7600: 20 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64   C.</li>.<li>Add
7610: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6e  ed support for n
7620: 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62  ew functions: <b
7630: 3e 63 6f 61 6c 65 73 63 65 28 29 3c 2f 62 3e 2c  >coalesce()</b>,
7640: 20 3c 62 3e 6c 6f 77 65 72 28 29 3c 2f 62 3e 2c   <b>lower()</b>,
7650: 0a 20 20 20 20 3c 62 3e 75 70 70 65 72 28 29 3c  .    <b>upper()<
7660: 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 72 61 6e 64  /b>, and <b>rand
7670: 6f 6d 28 29 3c 2f 62 3e 0a 3c 6c 69 3e 41 64 64  om()</b>.<li>Add
7680: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 56  ed support for V
7690: 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  IEWs.</li>.<li>A
76a0: 64 64 65 64 20 74 68 65 20 73 75 62 71 75 65 72  dded the subquer
76b0: 79 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74  y flattening opt
76c0: 69 6d 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  imizer.</li>.<li
76d0: 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 42 2d  >Modified the B-
76e0: 54 72 65 65 20 61 6e 64 20 50 61 67 65 72 20 6d  Tree and Pager m
76f0: 6f 64 75 6c 65 73 20 73 6f 20 74 68 61 74 20 64  odules so that d
7700: 69 73 6b 20 70 61 67 65 73 20 74 68 61 74 20 64  isk pages that d
7710: 6f 20 6e 6f 74 0a 20 20 20 20 63 6f 6e 74 61 69  o not.    contai
7720: 6e 20 72 65 61 6c 20 64 61 74 61 20 28 66 72 65  n real data (fre
7730: 65 20 70 61 67 65 73 29 20 61 72 65 20 6e 6f 74  e pages) are not
7740: 20 6a 6f 75 72 6e 61 6c 65 64 20 61 6e 64 20 61   journaled and a
7750: 72 65 20 6e 6f 74 0a 20 20 20 20 77 72 69 74 74  re not.    writt
7760: 65 6e 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 20 62  en from memory b
7770: 61 63 6b 20 74 6f 20 74 68 65 20 64 69 73 6b 20  ack to the disk 
7780: 77 68 65 6e 20 74 68 65 79 20 63 68 61 6e 67 65  when they change
7790: 2e 20 20 54 68 69 73 20 64 6f 65 73 20 6e 6f 74  .  This does not
77a0: 20 0a 20 20 20 20 69 6d 70 61 63 74 20 64 61 74   .    impact dat
77b0: 61 62 61 73 65 20 69 6e 74 65 67 72 69 74 79 2c  abase integrity,
77c0: 20 73 69 6e 63 65 20 74 68 65 0a 20 20 20 20 70   since the.    p
77d0: 61 67 65 73 20 63 6f 6e 74 61 69 6e 20 6e 6f 20  ages contain no 
77e0: 72 65 61 6c 20 64 61 74 61 2c 20 62 75 74 20 69  real data, but i
77f0: 74 20 64 6f 65 73 20 6d 61 6b 65 20 6c 61 72 67  t does make larg
7800: 65 20 49 4e 53 45 52 54 20 6f 70 65 72 61 74 69  e INSERT operati
7810: 6f 6e 73 0a 20 20 20 20 61 62 6f 75 74 20 32 2e  ons.    about 2.
7820: 35 20 74 69 6d 65 73 20 66 61 73 74 65 72 20 61  5 times faster a
7830: 6e 64 20 6c 61 72 67 65 20 44 45 4c 45 54 45 73  nd large DELETEs
7840: 20 61 62 6f 75 74 20 35 20 74 69 6d 65 73 20 66   about 5 times f
7850: 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  aster.</li>.<li>
7860: 4d 61 64 65 20 74 68 65 20 43 41 43 48 45 5f 53  Made the CACHE_S
7870: 49 5a 45 20 70 72 61 67 6d 61 20 70 65 72 73 69  IZE pragma persi
7880: 73 74 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  stent</li>.<li>A
7890: 64 64 65 64 20 74 68 65 20 53 59 4e 43 48 52 4f  dded the SYNCHRO
78a0: 4e 4f 55 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e  NOUS pragma</li>
78b0: 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67  .<li>Fixed a bug
78c0: 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e   that was causin
78d0: 67 20 75 70 64 61 74 65 73 20 74 6f 20 66 61 69  g updates to fai
78e0: 6c 20 69 6e 73 69 64 65 20 6f 66 20 74 72 61 6e  l inside of tran
78f0: 73 61 63 74 69 6f 6e 73 20 77 68 65 6e 0a 20 20  sactions when.  
7900: 20 20 74 68 65 20 64 61 74 61 62 61 73 65 20 63    the database c
7910: 6f 6e 74 61 69 6e 65 64 20 61 20 74 65 6d 70 6f  ontained a tempo
7920: 72 61 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e  rary table.</li>
7930: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46  .}..chng {2002 F
7940: 65 62 20 31 38 20 28 32 2e 33 2e 33 29 7d 20 7b  eb 18 (2.3.3)} {
7950: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 69 64 65 6e 74  .<li>Allow ident
7960: 69 66 69 65 72 73 20 74 6f 20 62 65 20 71 75 6f  ifiers to be quo
7970: 74 65 64 20 69 6e 20 73 71 75 61 72 65 20 62 72  ted in square br
7980: 61 63 6b 65 74 73 2c 20 66 6f 72 20 63 6f 6d 70  ackets, for comp
7990: 61 74 69 62 69 6c 69 74 79 0a 20 20 20 20 77 69  atibility.    wi
79a0: 74 68 20 4d 53 2d 41 63 63 65 73 73 2e 3c 2f 6c  th MS-Access.</l
79b0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
79c0: 70 6f 72 74 20 66 6f 72 20 73 75 62 2d 71 75 65  port for sub-que
79d0: 72 69 65 73 20 69 6e 20 74 68 65 20 46 52 4f 4d  ries in the FROM
79e0: 20 63 6c 61 75 73 65 20 6f 66 20 61 20 53 45 4c   clause of a SEL
79f0: 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  ECT.</li>.<li>Mo
7a00: 72 65 20 65 66 66 69 63 69 65 6e 74 20 69 6d 70  re efficient imp
7a10: 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 73  lementation of s
7a20: 71 6c 69 74 65 46 69 6c 65 45 78 69 73 74 73 28  qliteFileExists(
7a30: 29 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e  ) under Windows.
7a40: 0a 20 20 20 20 28 62 79 20 4a 6f 65 6c 20 4c 75  .    (by Joel Lu
7a50: 73 63 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  scy)</li>.<li>Th
7a60: 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73 65 20  e VALUES clause 
7a70: 6f 66 20 61 6e 20 49 4e 53 45 52 54 20 63 61 6e  of an INSERT can
7a80: 20 6e 6f 77 20 63 6f 6e 74 61 69 6e 20 65 78 70   now contain exp
7a90: 72 65 73 73 69 6f 6e 73 2c 20 69 6e 63 6c 75 64  ressions, includ
7aa0: 69 6e 67 0a 20 20 20 20 73 63 61 6c 61 72 20 53  ing.    scalar S
7ab0: 45 4c 45 43 54 20 63 6c 61 75 73 65 73 2e 3c 2f  ELECT clauses.</
7ac0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
7ad0: 70 70 6f 72 74 20 66 6f 72 20 43 52 45 41 54 45  pport for CREATE
7ae0: 20 54 41 42 4c 45 20 41 53 20 53 45 4c 45 43 54   TABLE AS SELECT
7af0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
7b00: 78 3a 20 43 72 65 61 74 69 6e 67 20 61 6e 64 20  x: Creating and 
7b10: 64 72 6f 70 70 69 6e 67 20 61 20 74 61 62 6c 65  dropping a table
7b20: 20 61 6c 6c 20 77 69 74 68 69 6e 20 61 20 73 69   all within a si
7b30: 6e 67 6c 65 0a 20 20 20 20 74 72 61 6e 73 61 63  ngle.    transac
7b40: 74 69 6f 6e 20 77 61 73 20 6e 6f 74 20 77 6f 72  tion was not wor
7b50: 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  king.</li>.}..ch
7b60: 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31 34 20  ng {2002 Feb 14 
7b70: 28 32 2e 33 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.3.2)} {.<li>B
7b80: 75 67 20 66 69 78 3a 20 54 68 65 72 65 20 77 61  ug fix: There wa
7b90: 73 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 61  s an incorrect a
7ba0: 73 73 65 72 74 28 29 20 69 6e 20 70 61 67 65 72  ssert() in pager
7bb0: 2e 63 2e 20 20 54 68 65 20 72 65 61 6c 20 63 6f  .c.  The real co
7bc0: 64 65 20 77 61 73 0a 20 20 20 20 61 6c 6c 20 63  de was.    all c
7bd0: 6f 72 72 65 63 74 20 28 61 73 20 66 61 72 20 61  orrect (as far a
7be0: 73 20 69 73 20 6b 6e 6f 77 6e 29 20 73 6f 20 65  s is known) so e
7bf0: 76 65 72 79 74 68 69 6e 67 20 73 68 6f 75 6c 64  verything should
7c00: 20 77 6f 72 6b 20 4f 4b 20 69 66 20 79 6f 75 0a   work OK if you.
7c10: 20 20 20 20 63 6f 6d 70 69 6c 65 20 77 69 74 68      compile with
7c20: 20 2d 44 4e 44 45 42 55 47 3d 31 2e 20 20 57 68   -DNDEBUG=1.  Wh
7c30: 65 6e 20 61 73 73 65 72 74 73 20 61 72 65 20 6e  en asserts are n
7c40: 6f 74 20 64 69 73 61 62 6c 65 64 2c 20 74 68 65  ot disabled, the
7c50: 72 65 0a 20 20 20 20 63 6f 75 6c 64 20 62 65 20  re.    could be 
7c60: 61 20 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a  a fault.</li>.}.
7c70: 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20  .chng {2002 Feb 
7c80: 31 33 20 28 32 2e 33 2e 31 29 7d 20 7b 0a 3c 6c  13 (2.3.1)} {.<l
7c90: 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61 73  i>Bug fix: An as
7ca0: 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c  sertion was fail
7cb0: 69 6e 67 20 69 66 20 22 50 52 41 47 4d 41 20 66  ing if "PRAGMA f
7cc0: 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73  ull_column_names
7cd0: 3d 4f 4e 3b 22 20 77 61 73 0a 20 20 20 20 73 65  =ON;" was.    se
7ce0: 74 20 61 6e 64 20 79 6f 75 20 64 69 64 20 61 20  t and you did a 
7cf0: 71 75 65 72 79 20 74 68 61 74 20 75 73 65 64 20  query that used 
7d00: 61 20 72 6f 77 69 64 2c 20 6c 69 6b 65 20 74 68  a rowid, like th
7d10: 69 73 3a 20 20 0a 20 20 20 20 22 53 45 4c 45 43  is:  .    "SELEC
7d20: 54 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20  T rowid, * FROM 
7d30: 2e 2e 2e 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ...".</li>.}..ch
7d40: 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 33 30 20  ng {2002 Jan 30 
7d50: 28 32 2e 33 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.3.0)} {.<li>F
7d60: 69 78 20 61 20 73 65 72 69 6f 75 73 20 62 75 67  ix a serious bug
7d70: 20 69 6e 20 74 68 65 20 49 4e 53 45 52 54 20 63   in the INSERT c
7d80: 6f 6d 6d 61 6e 64 20 77 68 69 63 68 20 77 61 73  ommand which was
7d90: 20 63 61 75 73 69 6e 67 20 64 61 74 61 20 74 6f   causing data to
7da0: 20 67 6f 0a 20 20 20 20 69 6e 74 6f 20 74 68 65   go.    into the
7db0: 20 77 72 6f 6e 67 20 63 6f 6c 75 6d 6e 73 20 69   wrong columns i
7dc0: 66 20 74 68 65 20 64 61 74 61 20 73 6f 75 72 63  f the data sourc
7dd0: 65 20 77 61 73 20 61 20 53 45 4c 45 43 54 20 61  e was a SELECT a
7de0: 6e 64 20 74 68 65 20 49 4e 53 45 52 54 0a 20 20  nd the INSERT.  
7df0: 20 20 63 6c 61 75 73 65 73 20 73 70 65 63 69 66    clauses specif
7e00: 69 65 64 20 69 74 73 20 63 6f 6c 75 6d 6e 73 20  ied its columns 
7e10: 69 6e 20 73 6f 6d 65 20 6f 72 64 65 72 20 6f 74  in some order ot
7e20: 68 65 72 20 74 68 61 6e 20 74 68 65 20 64 65 66  her than the def
7e30: 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ault.</li>.<li>A
7e40: 64 64 65 64 20 74 68 65 20 61 62 69 6c 69 74 79  dded the ability
7e50: 20 74 6f 20 72 65 73 6f 6c 76 65 20 63 6f 6e 73   to resolve cons
7e60: 74 72 61 69 6e 74 20 63 6f 6e 66 6c 69 63 74 73  traint conflicts
7e70: 20 69 73 20 77 61 79 73 20 6f 74 68 65 72 20 74   is ways other t
7e80: 68 61 6e 0a 20 20 20 20 61 6e 20 61 62 6f 72 74  han.    an abort
7e90: 20 61 6e 64 20 72 6f 6c 6c 62 61 63 6b 2e 20 20   and rollback.  
7ea0: 53 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74  See the document
7eb0: 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 22 4f 4e  ation on the "ON
7ec0: 20 43 4f 4e 46 4c 49 43 54 22 0a 20 20 20 20 63   CONFLICT".    c
7ed0: 6c 61 75 73 65 20 66 6f 72 20 64 65 74 61 69 6c  lause for detail
7ee0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 65 6d 70  s.</li>.<li>Temp
7ef0: 6f 72 61 72 79 20 66 69 6c 65 73 20 61 72 65 20  orary files are 
7f00: 6e 6f 77 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  now automaticall
7f10: 79 20 64 65 6c 65 74 65 64 20 62 79 20 74 68 65  y deleted by the
7f20: 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65   operating syste
7f30: 6d 0a 20 20 20 20 77 68 65 6e 20 63 6c 6f 73 65  m.    when close
7f40: 64 2e 20 20 54 68 65 72 65 20 61 72 65 20 6e 6f  d.  There are no
7f50: 20 6d 6f 72 65 20 64 61 6e 67 6c 69 6e 67 20 74   more dangling t
7f60: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 6f  emporary files o
7f70: 6e 20 61 20 70 72 6f 67 72 61 6d 0a 20 20 20 20  n a program.    
7f80: 63 72 61 73 68 2e 20 20 28 49 66 20 74 68 65 20  crash.  (If the 
7f90: 4f 53 20 63 72 61 73 68 65 73 2c 20 66 73 63 6b  OS crashes, fsck
7fa0: 20 77 69 6c 6c 20 64 65 6c 65 74 65 20 74 68 65   will delete the
7fb0: 20 66 69 6c 65 20 61 66 74 65 72 20 72 65 62 6f   file after rebo
7fc0: 6f 74 20 0a 20 20 20 20 75 6e 64 65 72 20 55 6e  ot .    under Un
7fd0: 69 78 2e 20 20 49 20 64 6f 20 6e 6f 74 20 6b 6e  ix.  I do not kn
7fe0: 6f 77 20 77 68 61 74 20 68 61 70 70 65 6e 73 20  ow what happens 
7ff0: 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e 29 3c  under Windows.)<
8000: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 4f 54 20 4e 55 4c  /li>.<li>NOT NUL
8010: 4c 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72  L constraints ar
8020: 65 20 68 6f 6e 6f 72 65 64 2e 3c 2f 6c 69 3e 0a  e honored.</li>.
8030: 3c 6c 69 3e 54 68 65 20 43 4f 50 59 20 63 6f 6d  <li>The COPY com
8040: 6d 61 6e 64 20 70 75 74 73 20 4e 55 4c 4c 73 20  mand puts NULLs 
8050: 69 6e 20 63 6f 6c 75 6d 6e 73 20 77 68 6f 73 65  in columns whose
8060: 20 64 61 74 61 20 69 73 20 27 5c 4e 27 2e 3c 2f   data is '\N'.</
8070: 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 43  li>.<li>In the C
8080: 4f 50 59 20 63 6f 6d 6d 61 6e 64 2c 20 62 61 63  OPY command, bac
8090: 6b 73 6c 61 73 68 20 63 61 6e 20 6e 6f 77 20 62  kslash can now b
80a0: 65 20 75 73 65 64 20 74 6f 20 65 73 63 61 70 65  e used to escape
80b0: 20 61 20 6e 65 77 6c 69 6e 65 2e 3c 2f 6c 69 3e   a newline.</li>
80c0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 53  .<li>Added the S
80d0: 41 4e 49 54 59 5f 43 48 45 43 4b 20 70 72 61 67  ANITY_CHECK prag
80e0: 6d 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ma.</li>.}..chng
80f0: 20 7b 32 30 30 32 20 4a 61 6e 20 32 38 20 28 32   {2002 Jan 28 (2
8100: 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 49 6d 70  .2.5)} {.<li>Imp
8110: 6f 72 74 61 6e 74 20 62 75 67 20 66 69 78 3a 20  ortant bug fix: 
8120: 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20  the IN operator 
8130: 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20  was not working 
8140: 69 66 20 65 69 74 68 65 72 20 74 68 65 0a 20 20  if either the.  
8150: 20 20 6c 65 66 74 2d 68 61 6e 64 20 6f 72 20 72    left-hand or r
8160: 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20 77  ight-hand side w
8170: 61 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20  as derived from 
8180: 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41  an INTEGER PRIMA
8190: 52 59 20 4b 45 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69  RY KEY.</li>.<li
81a0: 3e 44 6f 20 6e 6f 74 20 65 73 63 61 70 65 20 74  >Do not escape t
81b0: 68 65 20 62 61 63 6b 73 6c 61 73 68 20 27 5c 27  he backslash '\'
81c0: 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 68   character in th
81d0: 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 0a  e output of the.
81e0: 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62      <b>sqlite</b
81f0: 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61  > command-line a
8200: 63 63 65 73 73 20 70 72 6f 67 72 61 6d 2e 3c 2f  ccess program.</
8210: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8220: 32 20 4a 61 6e 20 32 32 20 28 32 2e 32 2e 34 29  2 Jan 22 (2.2.4)
8230: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c 61 62 65  } {.<li>The labe
8240: 6c 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 6f  l to the right o
8250: 66 20 61 6e 20 41 53 20 69 6e 20 74 68 65 20 63  f an AS in the c
8260: 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61 20  olumn list of a 
8270: 53 45 4c 45 43 54 20 63 61 6e 20 6e 6f 77 0a 20  SELECT can now. 
8280: 20 20 20 62 65 20 75 73 65 64 20 61 73 20 70 61     be used as pa
8290: 72 74 20 6f 66 20 61 6e 20 65 78 70 72 65 73 73  rt of an express
82a0: 69 6f 6e 20 69 6e 20 74 68 65 20 57 48 45 52 45  ion in the WHERE
82b0: 2c 20 4f 52 44 45 52 20 42 59 2c 20 47 52 4f 55  , ORDER BY, GROU
82c0: 50 20 42 59 2c 20 61 6e 64 2f 6f 72 0a 20 20 20  P BY, and/or.   
82d0: 20 48 41 56 49 4e 47 20 63 6c 61 75 73 65 73 2e   HAVING clauses.
82e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
82f0: 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 2d 73  bug in the <b>-s
8300: 65 70 61 72 61 74 6f 72 3c 2f 62 3e 20 63 6f 6d  eparator</b> com
8310: 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e  mand-line option
8320: 20 74 6f 20 74 68 65 20 3c 62 3e 73 71 6c 69 74   to the <b>sqlit
8330: 65 3c 2f 62 3e 0a 20 20 20 20 63 6f 6d 6d 61 6e  e</b>.    comman
8340: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  d.</li>.<li>Fix 
8350: 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 74  a problem with t
8360: 68 65 20 73 6f 72 74 20 6f 72 64 65 72 20 77 68  he sort order wh
8370: 65 6e 20 63 6f 6d 70 61 72 69 6e 67 20 75 70 70  en comparing upp
8380: 65 72 2d 63 61 73 65 20 73 74 72 69 6e 67 73 20  er-case strings 
8390: 61 67 61 69 6e 73 74 0a 20 20 20 20 63 68 61 72  against.    char
83a0: 61 63 74 65 72 73 20 67 72 65 61 74 65 72 20 74  acters greater t
83b0: 68 61 6e 20 27 5a 27 20 62 75 74 20 6c 65 73 73  han 'Z' but less
83c0: 20 74 68 61 6e 20 27 61 27 2e 3c 2f 6c 69 3e 0a   than 'a'.</li>.
83d0: 3c 6c 69 3e 52 65 70 6f 72 74 20 61 6e 20 65 72  <li>Report an er
83e0: 72 6f 72 20 69 66 20 61 6e 20 4f 52 44 45 52 20  ror if an ORDER 
83f0: 42 59 20 6f 72 20 47 52 4f 55 50 20 42 59 20 65  BY or GROUP BY e
8400: 78 70 72 65 73 73 69 6f 6e 20 69 73 20 63 6f 6e  xpression is con
8410: 73 74 61 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  stant.</li>.}..c
8420: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 31 36  hng {2002 Jan 16
8430: 20 28 32 2e 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.3)} {.<li>
8440: 46 69 78 20 77 61 72 6e 69 6e 67 20 6d 65 73 73  Fix warning mess
8450: 61 67 65 73 20 69 6e 20 56 43 2b 2b 20 37 2e 30  ages in VC++ 7.0
8460: 2e 20 20 28 50 61 74 63 68 65 73 20 66 72 6f 6d  .  (Patches from
8470: 20 6e 69 63 6f 6c 61 73 33 35 32 30 30 31 29 3c   nicolas352001)<
8480: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68  /li>.<li>Make th
8490: 65 20 6c 69 62 72 61 72 79 20 74 68 72 65 61 64  e library thread
84a0: 2d 73 61 66 65 2e 20 20 28 54 68 65 20 63 6f 64  -safe.  (The cod
84b0: 65 20 69 73 20 74 68 65 72 65 20 61 6e 64 20 61  e is there and a
84c0: 70 70 65 61 72 73 20 74 6f 20 77 6f 72 6b 0a 20  ppears to work. 
84d0: 20 20 20 62 75 74 20 68 61 73 20 6e 6f 74 20 62     but has not b
84e0: 65 65 6e 20 73 74 72 65 73 73 65 64 2e 29 3c 2f  een stressed.)</
84f0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
8500: 65 20 6e 65 77 20 3c 62 3e 73 71 6c 69 74 65 5f  e new <b>sqlite_
8510: 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69  last_insert_rowi
8520: 64 28 29 3c 2f 62 3e 20 41 50 49 20 66 75 6e 63  d()</b> API func
8530: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tion.</li>.}..ch
8540: 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 31 33 20  ng {2002 Jan 13 
8550: 28 32 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.2.2)} {.<li>B
8560: 75 67 20 66 69 78 3a 20 41 6e 20 61 73 73 65 72  ug fix: An asser
8570: 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67  tion was failing
8580: 20 77 68 65 6e 20 61 20 74 65 6d 70 6f 72 61 72   when a temporar
8590: 79 20 74 61 62 6c 65 20 77 69 74 68 20 61 6e 20  y table with an 
85a0: 69 6e 64 65 78 0a 20 20 20 20 68 61 64 20 74 68  index.    had th
85b0: 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 61  e same name as a
85c0: 20 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c 65   permanent table
85d0: 20 63 72 65 61 74 65 64 20 62 79 20 61 20 73 65   created by a se
85e0: 70 61 72 61 74 65 20 70 72 6f 63 65 73 73 2e 3c  parate process.<
85f0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
8600: 3a 20 55 70 64 61 74 65 73 20 74 6f 20 74 61 62  : Updates to tab
8610: 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61  les containing a
8620: 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  n INTEGER PRIMAR
8630: 59 20 4b 45 59 20 61 6e 64 20 61 6e 0a 20 20 20  Y KEY and an.   
8640: 20 69 6e 64 65 78 20 63 6f 75 6c 64 20 66 61 69   index could fai
8650: 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  l.</li>.}..chng 
8660: 7b 32 30 30 32 20 4a 61 6e 20 39 20 28 32 2e 32  {2002 Jan 9 (2.2
8670: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .1)} {.<li>Bug f
8680: 69 78 3a 20 41 6e 20 61 74 74 65 6d 70 74 20 74  ix: An attempt t
8690: 6f 20 64 65 6c 65 74 65 20 61 20 73 69 6e 67 6c  o delete a singl
86a0: 65 20 72 6f 77 20 6f 66 20 61 20 74 61 62 6c 65  e row of a table
86b0: 20 77 69 74 68 20 61 20 57 48 45 52 45 0a 20 20   with a WHERE.  
86c0: 20 20 63 6c 61 75 73 65 20 6f 66 20 22 52 4f 57    clause of "ROW
86d0: 49 44 3d 78 22 20 77 68 65 6e 20 6e 6f 20 73 75  ID=x" when no su
86e0: 63 68 20 72 6f 77 69 64 20 65 78 69 73 74 73 20  ch rowid exists 
86f0: 77 61 73 20 63 61 75 73 69 6e 67 20 61 6e 20 65  was causing an e
8700: 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  rror.</li>.<li>B
8710: 75 67 20 66 69 78 3a 20 50 61 73 73 69 6e 67 20  ug fix: Passing 
8720: 69 6e 20 61 20 4e 55 4c 4c 20 61 73 20 74 68 65  in a NULL as the
8730: 20 33 72 64 20 70 61 72 61 6d 65 74 65 72 20 74   3rd parameter t
8740: 6f 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e  o <b>sqlite_open
8750: 28 29 3c 2f 62 3e 0a 20 20 20 20 77 6f 75 6c 64  ()</b>.    would
8760: 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65   sometimes cause
8770: 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69   a coredump.</li
8780: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 44  >.<li>Bug fix: D
8790: 52 4f 50 20 54 41 42 4c 45 20 66 6f 6c 6c 6f 77  ROP TABLE follow
87a0: 65 64 20 62 79 20 61 20 43 52 45 41 54 45 20 54  ed by a CREATE T
87b0: 41 42 4c 45 20 77 69 74 68 20 74 68 65 20 73 61  ABLE with the sa
87c0: 6d 65 20 6e 61 6d 65 20 61 6c 6c 0a 20 20 20 20  me name all.    
87d0: 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 20  within a single 
87e0: 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61 73 20  transaction was 
87f0: 63 61 75 73 69 6e 67 20 61 20 63 6f 72 65 64 75  causing a coredu
8800: 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  mp.</li>.<li>Mak
8810: 65 66 69 6c 65 20 75 70 64 61 74 65 73 20 66 72  efile updates fr
8820: 6f 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e 3c 2f  om A. Rottmann</
8830: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8840: 31 20 44 65 63 20 32 32 20 28 32 2e 32 2e 30 29  1 Dec 22 (2.2.0)
8850: 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 73 20  } {.<li>Columns 
8860: 6f 66 20 74 79 70 65 20 49 4e 54 45 47 45 52 20  of type INTEGER 
8870: 50 52 49 4d 41 52 59 20 4b 45 59 20 61 72 65 20  PRIMARY KEY are 
8880: 61 63 74 75 61 6c 6c 79 20 75 73 65 64 20 61 73  actually used as
8890: 20 74 68 65 20 70 72 69 6d 61 72 79 0a 20 20 20   the primary.   
88a0: 20 6b 65 79 20 69 6e 20 75 6e 64 65 72 6c 79 69   key in underlyi
88b0: 6e 67 20 42 2d 54 72 65 65 20 72 65 70 72 65 73  ng B-Tree repres
88c0: 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20  entation of the 
88d0: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  table.</li>.<li>
88e0: 53 65 76 65 72 61 6c 20 6f 62 73 63 75 72 65 2c  Several obscure,
88f0: 20 75 6e 72 65 6c 61 74 65 64 20 62 75 67 73 20   unrelated bugs 
8900: 77 65 72 65 20 66 6f 75 6e 64 20 61 6e 64 20 66  were found and f
8910: 69 78 65 64 20 77 68 69 6c 65 20 0a 20 20 20 20  ixed while .    
8920: 69 6d 70 6c 65 6d 65 6e 74 65 64 20 74 68 65 20  implemented the 
8930: 69 6e 74 65 67 65 72 20 70 72 69 6d 61 72 79 20  integer primary 
8940: 6b 65 79 20 63 68 61 6e 67 65 20 6f 66 20 74 68  key change of th
8950: 65 20 70 72 65 76 69 6f 75 73 20 62 75 6c 6c 65  e previous bulle
8960: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  t.</li>.<li>Adde
8970: 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f  d the ability to
8980: 20 73 70 65 63 69 66 79 20 22 2a 22 20 61 73 20   specify "*" as 
8990: 70 61 72 74 20 6f 66 20 61 20 6c 61 72 67 65 72  part of a larger
89a0: 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 69 6e 0a   column list in.
89b0: 20 20 20 20 74 68 65 20 72 65 73 75 6c 74 20 73      the result s
89c0: 65 63 74 69 6f 6e 20 6f 66 20 61 20 53 45 4c 45  ection of a SELE
89d0: 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 46  CT statement.  F
89e0: 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20  or example:.    
89f0: 3c 6e 6f 62 72 3e 22 3c 62 3e 53 45 4c 45 43 54  <nobr>"<b>SELECT
8a00: 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20 74   rowid, * FROM t
8a10: 61 62 6c 65 31 3b 3c 2f 62 3e 22 3c 2f 6e 6f 62  able1;</b>"</nob
8a20: 72 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64  r>.</li>.<li>Upd
8a30: 61 74 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74 73  ates to comments
8a40: 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69   and documentati
8a50: 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  on.</li>.}..chng
8a60: 20 7b 32 30 30 31 20 44 65 63 20 31 34 20 28 32   {2001 Dec 14 (2
8a70: 2e 31 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.7)} {.<li>Fix
8a80: 20 61 20 62 75 67 20 69 6e 20 3c 62 3e 43 52 45   a bug in <b>CRE
8a90: 41 54 45 20 54 45 4d 50 4f 52 41 52 59 20 54 41  ATE TEMPORARY TA
8aa0: 42 4c 45 3c 2f 62 3e 20 77 68 69 63 68 20 77 61  BLE</b> which wa
8ab0: 73 20 63 61 75 73 69 6e 67 20 74 68 65 0a 20 20  s causing the.  
8ac0: 20 20 74 61 62 6c 65 20 74 6f 20 62 65 20 69 6e    table to be in
8ad0: 69 74 69 61 6c 6c 79 20 61 6c 6c 6f 63 61 74 65  itially allocate
8ae0: 64 20 69 6e 20 74 68 65 20 6d 61 69 6e 20 64 61  d in the main da
8af0: 74 61 62 61 73 65 20 66 69 6c 65 20 69 6e 73 74  tabase file inst
8b00: 65 61 64 0a 20 20 20 20 6f 66 20 69 6e 20 74 68  ead.    of in th
8b10: 65 20 73 65 70 61 72 61 74 65 20 74 65 6d 70 6f  e separate tempo
8b20: 72 61 72 79 20 66 69 6c 65 2e 20 20 54 68 69 73  rary file.  This
8b30: 20 62 75 67 20 63 6f 75 6c 64 20 63 61 75 73 65   bug could cause
8b40: 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20   the library.   
8b50: 20 74 6f 20 73 75 66 66 65 72 20 61 6e 20 61 73   to suffer an as
8b60: 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20  sertion failure 
8b70: 61 6e 64 20 69 74 20 63 6f 75 6c 64 20 63 61 75  and it could cau
8b80: 73 65 20 22 70 61 67 65 20 6c 65 61 6b 73 22 20  se "page leaks" 
8b90: 69 6e 20 74 68 65 0a 20 20 20 20 6d 61 69 6e 20  in the.    main 
8ba0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 0a 3c  database file..<
8bb0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
8bc0: 74 68 65 20 62 2d 74 72 65 65 20 73 75 62 73 79  the b-tree subsy
8bd0: 73 74 65 6d 20 74 68 61 74 20 63 6f 75 6c 64 20  stem that could 
8be0: 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 20  sometimes cause 
8bf0: 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 72 6f  the first.    ro
8c00: 77 20 6f 66 20 61 20 74 61 62 6c 65 20 74 6f 20  w of a table to 
8c10: 62 65 20 72 65 70 65 61 74 65 64 20 64 75 72 69  be repeated duri
8c20: 6e 67 20 61 20 64 61 74 61 62 61 73 65 20 73 63  ng a database sc
8c30: 61 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  an.</li>.}..chng
8c40: 20 7b 32 30 30 31 20 44 65 63 20 31 34 20 28 32   {2001 Dec 14 (2
8c50: 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.6)} {.<li>Fix
8c60: 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 6d 65 63   the locking mec
8c70: 68 61 6e 69 73 6d 20 79 65 74 20 61 67 61 69 6e  hanism yet again
8c80: 20 74 6f 20 70 72 65 76 65 6e 74 0a 20 20 20 20   to prevent.    
8c90: 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29  <b>sqlite_exec()
8ca0: 3c 2f 62 3e 20 66 72 6f 6d 20 72 65 74 75 72 6e  </b> from return
8cb0: 69 6e 67 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f  ing SQLITE_PROTO
8cc0: 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73 73  COL.    unnecess
8cd0: 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69 6d  arily.  This tim
8ce0: 65 20 74 68 65 20 62 75 67 20 77 61 73 20 61 20  e the bug was a 
8cf0: 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69  race condition i
8d00: 6e 0a 20 20 20 20 74 68 65 20 6c 6f 63 6b 69 6e  n.    the lockin
8d10: 67 20 63 6f 64 65 2e 20 20 54 68 69 73 20 63 68  g code.  This ch
8d20: 61 6e 67 65 20 65 66 66 65 63 74 73 20 62 6f 74  ange effects bot
8d30: 68 20 50 4f 53 49 58 20 61 6e 64 20 57 69 6e 64  h POSIX and Wind
8d40: 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a  ows users.</li>.
8d50: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65  }..chng {2001 De
8d60: 63 20 36 20 28 32 2e 31 2e 35 29 7d 20 7b 0a 3c  c 6 (2.1.5)} {.<
8d70: 6c 69 3e 46 69 78 20 66 6f 72 20 61 6e 6f 74 68  li>Fix for anoth
8d80: 65 72 20 70 72 6f 62 6c 65 6d 20 28 75 6e 72 65  er problem (unre
8d90: 6c 61 74 65 64 20 74 6f 20 74 68 65 20 6f 6e 65  lated to the one
8da0: 20 66 69 78 65 64 20 69 6e 20 32 2e 31 2e 34 29   fixed in 2.1.4)
8db0: 20 0a 20 20 20 20 74 68 61 74 20 73 6f 6d 65 74   .    that somet
8dc0: 69 6d 65 73 20 63 61 75 73 65 73 20 3c 62 3e 73  imes causes <b>s
8dd0: 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e  qlite_exec()</b>
8de0: 20 74 6f 20 72 65 74 75 72 6e 20 53 51 4c 49 54   to return SQLIT
8df0: 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20 75  E_PROTOCOL.    u
8e00: 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e 20 20 54  nnecessarily.  T
8e10: 68 69 73 20 74 69 6d 65 20 74 68 65 20 62 75 67  his time the bug
8e20: 20 77 61 73 0a 20 20 20 20 69 6e 20 74 68 65 20   was.    in the 
8e30: 50 4f 53 49 58 20 6c 6f 63 6b 69 6e 67 20 63 6f  POSIX locking co
8e40: 64 65 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f  de and should no
8e50: 74 20 65 66 66 65 63 74 20 77 69 6e 64 6f 77 73  t effect windows
8e60: 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   users.</li>.}..
8e70: 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 34  chng {2001 Dec 4
8e80: 20 28 32 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.4)} {.<li>
8e90: 53 6f 6d 65 74 69 6d 65 73 20 3c 62 3e 73 71 6c  Sometimes <b>sql
8ea0: 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77  ite_exec()</b> w
8eb0: 6f 75 6c 64 20 72 65 74 75 72 6e 20 53 51 4c 49  ould return SQLI
8ec0: 54 45 5f 50 52 4f 54 4f 43 4f 4c 20 77 68 65 6e  TE_PROTOCOL when
8ed0: 20 69 74 0a 20 20 20 20 73 68 6f 75 6c 64 20 68   it.    should h
8ee0: 61 76 65 20 72 65 74 75 72 6e 65 64 20 53 51 4c  ave returned SQL
8ef0: 49 54 45 5f 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c  ITE_BUSY.</li>.<
8f00: 6c 69 3e 54 68 65 20 66 69 78 20 74 6f 20 74 68  li>The fix to th
8f10: 65 20 70 72 65 76 69 6f 75 73 20 62 75 67 20 75  e previous bug u
8f20: 6e 63 6f 76 65 72 65 64 20 61 20 64 65 61 64 6c  ncovered a deadl
8f30: 6f 63 6b 20 77 68 69 63 68 20 77 61 73 20 61 6c  ock which was al
8f40: 73 6f 0a 20 20 20 20 66 69 78 65 64 2e 3c 2f 6c  so.    fixed.</l
8f50: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61  i>.<li>Add the a
8f60: 62 69 6c 69 74 79 20 74 6f 20 70 75 74 20 61 20  bility to put a 
8f70: 73 69 6e 67 6c 65 20 2e 63 6f 6d 6d 61 6e 64 20  single .command 
8f80: 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72  in the second ar
8f90: 67 75 6d 65 6e 74 0a 20 20 20 20 6f 66 20 74 68  gument.    of th
8fa0: 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 3c 2f  e sqlite shell</
8fb0: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20  li>.<li>Updates 
8fc0: 74 6f 20 74 68 65 20 46 41 51 3c 2f 6c 69 3e 0a  to the FAQ</li>.
8fd0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f  }..chng {2001 No
8fe0: 76 20 32 33 20 28 32 2e 31 2e 33 29 7d 20 7b 0a  v 23 (2.1.3)} {.
8ff0: 3c 6c 69 3e 46 69 78 20 74 68 65 20 62 65 68 61  <li>Fix the beha
9000: 76 69 6f 72 20 6f 66 20 63 6f 6d 70 61 72 69 73  vior of comparis
9010: 6f 6e 20 6f 70 65 72 61 74 6f 72 73 20 0a 20 20  on operators .  
9020: 20 20 28 65 78 3a 20 22 3c 62 3e 26 6c 74 3c 2f    (ex: "<b>&lt</
9030: 62 3e 22 2c 20 22 3c 62 3e 3d 3d 3c 2f 62 3e 22  b>", "<b>==</b>"
9040: 2c 20 65 74 63 2e 29 0a 20 20 20 20 73 6f 20 74  , etc.).    so t
9050: 68 61 74 20 74 68 65 79 20 61 72 65 20 63 6f 6e  hat they are con
9060: 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65  sistent with the
9070: 20 6f 72 64 65 72 20 6f 66 20 65 6e 74 72 69 65   order of entrie
9080: 73 20 69 6e 20 61 6e 20 69 6e 64 65 78 2e 3c 2f  s in an index.</
9090: 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 20  li>.<li>Correct 
90a0: 68 61 6e 64 6c 69 6e 67 20 6f 66 20 69 6e 74 65  handling of inte
90b0: 67 65 72 73 20 69 6e 20 53 51 4c 20 65 78 70 72  gers in SQL expr
90c0: 65 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65  essions that are
90d0: 20 6c 61 72 67 65 72 20 74 68 61 6e 0a 20 20 20   larger than.   
90e0: 20 77 68 61 74 20 63 61 6e 20 62 65 20 72 65 70   what can be rep
90f0: 72 65 73 65 6e 74 65 64 20 62 79 20 74 68 65 20  resented by the 
9100: 6d 61 63 68 69 6e 65 20 69 6e 74 65 67 65 72 2e  machine integer.
9110: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
9120: 30 30 31 20 4e 6f 76 20 32 32 20 28 32 2e 31 2e  001 Nov 22 (2.1.
9130: 32 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65  2)} {.<li>Change
9140: 73 20 74 6f 20 73 75 70 70 6f 72 74 20 36 34 2d  s to support 64-
9150: 62 69 74 20 61 72 63 68 69 74 65 63 74 75 72 65  bit architecture
9160: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
9170: 61 20 62 75 67 20 69 6e 20 74 68 65 20 6c 6f 63  a bug in the loc
9180: 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 3c 2f  king protocol.</
9190: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
91a0: 67 20 74 68 61 74 20 63 6f 75 6c 64 20 28 72 61  g that could (ra
91b0: 72 65 6c 79 29 20 63 61 75 73 65 20 74 68 65 20  rely) cause the 
91c0: 64 61 74 61 62 61 73 65 20 74 6f 20 62 65 63 6f  database to beco
91d0: 6d 65 20 0a 20 20 20 20 75 6e 72 65 61 64 61 62  me .    unreadab
91e0: 6c 65 20 61 66 74 65 72 20 61 20 44 52 4f 50 20  le after a DROP 
91f0: 54 41 42 4c 45 20 64 75 65 20 74 6f 20 63 6f 72  TABLE due to cor
9200: 72 75 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 53  ruption to the S
9210: 51 4c 49 54 45 5f 4d 41 53 54 45 52 0a 20 20 20  QLITE_MASTER.   
9220: 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69   table.</li>.<li
9230: 3e 43 68 61 6e 67 65 20 74 68 65 20 63 6f 64 65  >Change the code
9240: 20 73 6f 20 74 68 61 74 20 76 65 72 73 69 6f 6e   so that version
9250: 20 32 2e 31 2e 31 20 64 61 74 61 62 61 73 65 73   2.1.1 databases
9260: 20 74 68 61 74 20 77 65 72 65 20 72 65 6e 64 65   that were rende
9270: 72 65 64 20 0a 20 20 20 20 75 6e 72 65 61 64 61  red .    unreada
9280: 62 6c 65 20 62 79 20 74 68 65 20 61 62 6f 76 65  ble by the above
9290: 20 62 75 67 20 63 61 6e 20 62 65 20 72 65 61 64   bug can be read
92a0: 20 62 79 20 74 68 69 73 20 76 65 72 73 69 6f 6e   by this version
92b0: 20 6f 66 0a 20 20 20 20 74 68 65 20 6c 69 62 72   of.    the libr
92c0: 61 72 79 20 65 76 65 6e 20 74 68 6f 75 67 68 20  ary even though 
92d0: 74 68 65 20 53 51 4c 49 54 45 5f 4d 41 53 54 45  the SQLITE_MASTE
92e0: 52 20 74 61 62 6c 65 20 69 73 20 28 73 6c 69 67  R table is (slig
92f0: 68 74 6c 79 29 0a 20 20 20 20 63 6f 72 72 75 70  htly).    corrup
9300: 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ted.</li>.}..chn
9310: 67 20 7b 32 30 30 31 20 4e 6f 76 20 31 33 20 28  g {2001 Nov 13 (
9320: 32 2e 31 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.1.1)} {.<li>Bu
9330: 67 20 66 69 78 3a 20 53 6f 6d 65 74 69 6d 65 73  g fix: Sometimes
9340: 20 61 72 62 69 74 72 61 72 79 20 73 74 72 69 6e   arbitrary strin
9350: 67 73 20 77 65 72 65 20 70 61 73 73 65 64 20 74  gs were passed t
9360: 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 0a 20  o the callback. 
9370: 20 20 20 66 75 6e 63 74 69 6f 6e 20 77 68 65 6e     function when
9380: 20 74 68 65 20 61 63 74 75 61 6c 20 76 61 6c 75   the actual valu
9390: 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 77 61  e of a column wa
93a0: 73 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  s NULL.</li>.}..
93b0: 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 31  chng {2001 Nov 1
93c0: 32 20 28 32 2e 31 2e 30 29 7d 20 7b 0a 3c 6c 69  2 (2.1.0)} {.<li
93d0: 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d  >Change the form
93e0: 61 74 20 6f 66 20 64 61 74 61 20 72 65 63 6f 72  at of data recor
93f0: 64 73 20 73 6f 20 74 68 61 74 20 72 65 63 6f 72  ds so that recor
9400: 64 73 20 75 70 20 74 6f 20 31 36 4d 42 20 69 6e  ds up to 16MB in
9410: 20 73 69 7a 65 0a 20 20 20 20 63 61 6e 20 62 65   size.    can be
9420: 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c   stored.</li>.<l
9430: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72  i>Change the for
9440: 6d 61 74 20 6f 66 20 69 6e 64 69 63 65 73 20 74  mat of indices t
9450: 6f 20 61 6c 6c 6f 77 20 66 6f 72 20 62 65 74 74  o allow for bett
9460: 65 72 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a  er query optimiz
9470: 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ation.</li>.<li>
9480: 49 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 22 4c  Implement the "L
9490: 49 4d 49 54 20 2e 2e 2e 20 4f 46 46 53 45 54 20  IMIT ... OFFSET 
94a0: 2e 2e 2e 22 20 63 6c 61 75 73 65 20 6f 6e 20 53  ..." clause on S
94b0: 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 73  ELECT statements
94c0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
94d0: 32 30 30 31 20 4e 6f 76 20 33 20 28 32 2e 30 2e  2001 Nov 3 (2.0.
94e0: 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 64 65 20 73  8)} {.<li>Made s
94f0: 65 6c 65 63 74 65 64 20 70 61 72 61 6d 65 74 65  elected paramete
9500: 72 73 20 69 6e 20 41 50 49 20 66 75 6e 63 74 69  rs in API functi
9510: 6f 6e 73 20 3c 62 3e 63 6f 6e 73 74 3c 2f 62 3e  ons <b>const</b>
9520: 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 0a 20 20  . This should.  
9530: 20 20 62 65 20 66 75 6c 6c 79 20 62 61 63 6b 77    be fully backw
9540: 61 72 64 73 20 63 6f 6d 70 61 74 69 62 6c 65 2e  ards compatible.
9550: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
9560: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
9570: 2f 6c 69 3e 0a 3c 6c 69 3e 53 69 6d 70 6c 69 66  /li>.<li>Simplif
9580: 79 20 74 68 65 20 64 65 73 69 67 6e 20 6f 66 20  y the design of 
9590: 74 68 65 20 56 44 42 45 20 62 79 20 72 65 73 74  the VDBE by rest
95a0: 72 69 63 74 69 6e 67 20 74 68 65 20 6e 75 6d 62  ricting the numb
95b0: 65 72 20 6f 66 20 73 6f 72 74 65 72 73 0a 20 20  er of sorters.  
95c0: 20 20 61 6e 64 20 6c 69 73 74 73 20 74 6f 20 31    and lists to 1
95d0: 2e 0a 20 20 20 20 49 6e 20 70 72 61 63 74 69 63  ..    In practic
95e0: 65 2c 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20  e, no more than 
95f0: 6f 6e 65 20 73 6f 72 74 65 72 20 61 6e 64 20 6f  one sorter and o
9600: 6e 65 20 6c 69 73 74 20 77 61 73 20 65 76 65 72  ne list was ever
9610: 20 75 73 65 64 20 61 6e 79 68 6f 77 2e 0a 20 20   used anyhow..  
9620: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
9630: 7b 32 30 30 31 20 4f 63 74 20 32 31 20 28 32 2e  {2001 Oct 21 (2.
9640: 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 79 20  0.7)} {.<li>Any 
9650: 55 54 46 2d 38 20 63 68 61 72 61 63 74 65 72 20  UTF-8 character 
9660: 6f 72 20 49 53 4f 38 38 35 39 20 63 68 61 72 61  or ISO8859 chara
9670: 63 74 65 72 20 63 61 6e 20 62 65 20 75 73 65 64  cter can be used
9680: 20 61 73 20 70 61 72 74 20 6f 66 0a 20 20 20 20   as part of.    
9690: 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2e 3c 2f  an identifier.</
96a0: 6c 69 3e 0a 3c 6c 69 3e 50 61 74 63 68 65 73 20  li>.<li>Patches 
96b0: 66 72 6f 6d 20 43 68 72 69 73 74 69 61 6e 20 57  from Christian W
96c0: 65 72 6e 65 72 20 74 6f 20 69 6d 70 72 6f 76 65  erner to improve
96d0: 20 4f 44 42 43 20 63 6f 6d 70 61 74 69 62 69 6c   ODBC compatibil
96e0: 69 74 79 20 61 6e 64 20 74 6f 0a 20 20 20 20 66  ity and to.    f
96f0: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
9700: 72 6f 75 6e 64 28 29 20 66 75 6e 63 74 69 6f 6e  round() function
9710: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 6c 75 67 20  .</li>.<li>Plug 
9720: 73 6f 6d 65 20 6d 65 6d 6f 72 79 20 6c 65 61 6b  some memory leak
9730: 73 20 74 68 61 74 20 75 73 65 20 74 6f 20 6f 63  s that use to oc
9740: 63 75 72 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20  cur if malloc() 
9750: 66 61 69 6c 65 64 2e 0a 20 20 20 20 57 65 20 68  failed..    We h
9760: 61 76 65 20 62 65 65 6e 20 61 6e 64 20 63 6f 6e  ave been and con
9770: 74 69 6e 75 65 20 74 6f 20 62 65 20 6d 65 6d 6f  tinue to be memo
9780: 72 79 20 6c 65 61 6b 20 66 72 65 65 20 61 73 20  ry leak free as 
9790: 6c 6f 6e 67 20 61 73 0a 20 20 20 20 6d 61 6c 6c  long as.    mall
97a0: 6f 63 28 29 20 77 6f 72 6b 73 2e 3c 2f 6c 69 3e  oc() works.</li>
97b0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20  .<li>Changes to 
97c0: 73 6f 6d 65 20 74 65 73 74 20 73 63 72 69 70 74  some test script
97d0: 73 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 77  s so that they w
97e0: 6f 72 6b 20 6f 6e 20 57 69 6e 64 6f 77 73 20 69  ork on Windows i
97f0: 6e 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 20 74  n.    addition t
9800: 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  o Unix.</li>.}..
9810: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
9820: 39 20 28 32 2e 30 2e 36 29 7d 20 7b 0a 3c 6c 69  9 (2.0.6)} {.<li
9830: 3e 41 64 64 65 64 20 74 68 65 20 45 4d 50 54 59  >Added the EMPTY
9840: 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b  _RESULT_CALLBACK
9850: 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c  S pragma</li>.<l
9860: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 55 54  i>Support for UT
9870: 46 2d 38 20 61 6e 64 20 49 53 4f 38 38 35 39 20  F-8 and ISO8859 
9880: 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 63 6f  characters in co
9890: 6c 75 6d 6e 20 61 6e 64 20 74 61 62 6c 65 20 6e  lumn and table n
98a0: 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ames.</li>.<li>B
98b0: 75 67 20 66 69 78 3a 20 43 6f 6d 70 75 74 65 20  ug fix: Compute 
98c0: 63 6f 72 72 65 63 74 20 74 61 62 6c 65 20 6e 61  correct table na
98d0: 6d 65 73 20 77 69 74 68 20 74 68 65 20 46 55 4c  mes with the FUL
98e0: 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70  L_COLUMN_NAMES p
98f0: 72 61 67 6d 61 0a 20 20 20 20 69 73 20 74 75 72  ragma.    is tur
9900: 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ned on.</li>.}..
9910: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
9920: 34 20 28 32 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69  4 (2.0.5)} {.<li
9930: 3e 41 64 64 65 64 20 74 68 65 20 43 4f 55 4e 54  >Added the COUNT
9940: 5f 43 48 41 4e 47 45 53 20 70 72 61 67 6d 61 2e  _CHANGES pragma.
9950: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
9960: 73 20 74 6f 20 74 68 65 20 46 55 4c 4c 5f 43 4f  s to the FULL_CO
9970: 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d  LUMN_NAMES pragm
9980: 61 20 74 6f 20 68 65 6c 70 20 6f 75 74 20 74 68  a to help out th
9990: 65 20 4f 44 42 43 20 64 72 69 76 65 72 2e 3c 2f  e ODBC driver.</
99a0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
99b0: 20 22 53 45 4c 45 43 54 20 63 6f 75 6e 74 28 2a   "SELECT count(*
99c0: 29 22 20 77 61 73 20 72 65 74 75 72 6e 69 6e 67  )" was returning
99d0: 20 4e 55 4c 4c 20 66 6f 72 20 65 6d 70 74 79 20   NULL for empty 
99e0: 74 61 62 6c 65 73 2e 0a 20 20 20 20 4e 6f 77 20  tables..    Now 
99f0: 69 74 20 72 65 74 75 72 6e 73 20 30 2e 3c 2f 6c  it returns 0.</l
9a00: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
9a10: 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 34 29 7d   Oct 13 (2.0.4)}
9a20: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
9a30: 61 6e 20 6f 62 73 63 75 72 65 20 61 6e 64 20 72  an obscure and r
9a40: 65 6c 61 74 69 76 65 6c 79 20 68 61 72 6d 6c 65  elatively harmle
9a50: 73 73 20 62 75 67 20 77 61 73 20 63 61 75 73 69  ss bug was causi
9a60: 6e 67 20 6f 6e 65 20 6f 66 0a 20 20 20 20 74 68  ng one of.    th
9a70: 65 20 74 65 73 74 73 20 74 6f 20 66 61 69 6c 20  e tests to fail 
9a80: 77 68 65 6e 20 67 63 63 20 6f 70 74 69 6d 69 7a  when gcc optimiz
9a90: 61 74 69 6f 6e 73 20 61 72 65 20 74 75 72 6e 65  ations are turne
9aa0: 64 20 6f 6e 2e 20 20 54 68 69 73 20 72 65 6c 65  d on.  This rele
9ab0: 61 73 65 0a 20 20 20 20 66 69 78 65 73 20 74 68  ase.    fixes th
9ac0: 65 20 70 72 6f 62 6c 65 6d 2e 3c 2f 6c 69 3e 0a  e problem.</li>.
9ad0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
9ae0: 74 20 31 33 20 28 32 2e 30 2e 33 29 7d 20 7b 0a  t 13 (2.0.3)} {.
9af0: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 74 68 65  <li>Bug fix: the
9b00: 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f   <b>sqlite_busy_
9b10: 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 66 75  timeout()</b> fu
9b20: 6e 63 74 69 6f 6e 20 77 61 73 20 64 65 6c 61 79  nction was delay
9b30: 69 6e 67 20 31 30 30 30 0a 20 20 20 20 74 69 6d  ing 1000.    tim
9b40: 65 73 20 74 6f 6f 20 6c 6f 6e 67 20 62 65 66 6f  es too long befo
9b50: 72 65 20 66 61 69 6c 69 6e 67 2e 3c 2f 6c 69 3e  re failing.</li>
9b60: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61 6e  .<li>Bug fix: an
9b70: 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66   assertion was f
9b80: 61 69 6c 69 6e 67 20 69 66 20 74 68 65 20 64 69  ailing if the di
9b90: 73 6b 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 64  sk holding the d
9ba0: 61 74 61 62 61 73 65 0a 20 20 20 20 66 69 6c 65  atabase.    file
9bb0: 20 62 65 63 61 6d 65 20 66 75 6c 6c 20 6f 72 20   became full or 
9bc0: 73 74 6f 70 70 65 64 20 61 63 63 65 70 74 69 6e  stopped acceptin
9bd0: 67 20 77 72 69 74 65 73 20 66 6f 72 20 73 6f 6d  g writes for som
9be0: 65 20 6f 74 68 65 72 20 72 65 61 73 6f 6e 2e 0a  e other reason..
9bf0: 20 20 20 20 4e 65 77 20 74 65 73 74 73 20 77 65      New tests we
9c00: 72 65 20 61 64 64 65 64 20 74 6f 20 64 65 74 65  re added to dete
9c10: 63 74 20 73 69 6d 69 6c 61 72 20 70 72 6f 62 6c  ct similar probl
9c20: 65 6d 73 20 69 6e 20 74 68 65 20 66 75 74 75 72  ems in the futur
9c30: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  e.</li>.<li>Adde
9c40: 64 20 6e 65 77 20 6f 70 65 72 61 74 6f 72 73 3a  d new operators:
9c50: 20 3c 62 3e 26 61 6d 70 3b 3c 2f 62 3e 20 28 62   <b>&amp;</b> (b
9c60: 69 74 77 69 73 65 2d 61 6e 64 29 0a 20 20 20 20  itwise-and).    
9c70: 3c 62 3e 7c 3c 2f 62 3e 20 28 62 69 74 77 69 73  <b>|</b> (bitwis
9c80: 65 2d 6f 72 29 2c 20 3c 62 3e 7e 3c 2f 62 3e 20  e-or), <b>~</b> 
9c90: 28 6f 6e 65 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74  (ones-complement
9ca0: 29 2c 0a 20 20 20 20 3c 62 3e 26 6c 74 3b 26 6c  ),.    <b>&lt;&l
9cb0: 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20 6c 65  t;</b> (shift le
9cc0: 66 74 29 2c 20 3c 62 3e 26 67 74 3b 26 67 74 3b  ft), <b>&gt;&gt;
9cd0: 3c 2f 62 3e 20 28 73 68 69 66 74 20 72 69 67 68  </b> (shift righ
9ce0: 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  t).</li>.<li>Add
9cf0: 65 64 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73  ed new functions
9d00: 3a 20 3c 62 3e 72 6f 75 6e 64 28 29 3c 2f 62 3e  : <b>round()</b>
9d10: 20 61 6e 64 20 3c 62 3e 61 62 73 28 29 3c 2f 62   and <b>abs()</b
9d20: 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  >.</li>.}..chng 
9d30: 7b 32 30 30 31 20 4f 63 74 20 39 20 28 32 2e 30  {2001 Oct 9 (2.0
9d40: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74  .2)} {.<li>Fix t
9d50: 77 6f 20 62 75 67 73 20 69 6e 20 74 68 65 20 6c  wo bugs in the l
9d60: 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e  ocking protocol.
9d70: 20 20 28 4f 6e 65 20 77 61 73 20 6d 61 73 6b 69    (One was maski
9d80: 6e 67 20 74 68 65 20 6f 74 68 65 72 2e 29 3c 2f  ng the other.)</
9d90: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20  li>.<li>Removed 
9da0: 73 6f 6d 65 20 75 6e 75 73 65 64 20 22 23 69 6e  some unused "#in
9db0: 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e  clude <unistd.h>
9dc0: 22 20 74 68 61 74 20 77 65 72 65 20 63 61 75 73  " that were caus
9dd0: 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20 20  ing problems.   
9de0: 20 66 6f 72 20 56 43 2b 2b 2e 3c 2f 6c 69 3e 0a   for VC++.</li>.
9df0: 3c 6c 69 3e 46 69 78 65 64 20 3c 62 3e 73 71 6c  <li>Fixed <b>sql
9e00: 69 74 65 2e 68 3c 2f 62 3e 20 73 6f 20 74 68 61  ite.h</b> so tha
9e10: 74 20 69 74 20 69 73 20 75 73 61 62 6c 65 20 66  t it is usable f
9e20: 72 6f 6d 20 43 2b 2b 3c 2f 6c 69 3e 0a 3c 6c 69  rom C++</li>.<li
9e30: 3e 41 64 64 65 64 20 74 68 65 20 46 55 4c 4c 5f  >Added the FULL_
9e40: 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61  COLUMN_NAMES pra
9e50: 67 6d 61 2e 20 20 57 68 65 6e 20 73 65 74 20 74  gma.  When set t
9e60: 6f 20 22 4f 4e 22 2c 20 74 68 65 20 6e 61 6d 65  o "ON", the name
9e70: 73 20 6f 66 0a 20 20 20 20 63 6f 6c 75 6d 6e 73  s of.    columns
9e80: 20 61 72 65 20 72 65 70 6f 72 74 65 64 20 62 61   are reported ba
9e90: 63 6b 20 61 73 20 54 41 42 4c 45 2e 43 4f 4c 55  ck as TABLE.COLU
9ea0: 4d 4e 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75  MN instead of ju
9eb0: 73 74 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a  st COLUMN.</li>.
9ec0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 54 41  <li>Added the TA
9ed0: 42 4c 45 5f 49 4e 46 4f 28 29 20 61 6e 64 20 49  BLE_INFO() and I
9ee0: 4e 44 45 58 5f 49 4e 46 4f 28 29 20 70 72 61 67  NDEX_INFO() prag
9ef0: 6d 61 73 20 74 6f 20 68 65 6c 70 20 73 75 70 70  mas to help supp
9f00: 6f 72 74 20 74 68 65 0a 20 20 20 20 4f 44 42 43  ort the.    ODBC
9f10: 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e   interface.</li>
9f20: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
9f30: 72 74 20 66 6f 72 20 54 45 4d 50 4f 52 41 52 59  rt for TEMPORARY
9f40: 20 74 61 62 6c 65 73 20 61 6e 64 20 69 6e 64 69   tables and indi
9f50: 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ces.</li>.}..chn
9f60: 67 20 7b 32 30 30 31 20 4f 63 74 20 32 20 28 32  g {2001 Oct 2 (2
9f70: 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d  .0.1)} {.<li>Rem
9f80: 6f 76 65 20 73 6f 6d 65 20 43 2b 2b 20 73 74 79  ove some C++ sty
9f90: 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d  le comments from
9fa0: 20 62 74 72 65 65 2e 63 20 73 6f 20 74 68 61 74   btree.c so that
9fb0: 20 69 74 20 77 69 6c 6c 20 63 6f 6d 70 69 6c 65   it will compile
9fc0: 0a 20 20 20 20 75 73 69 6e 67 20 63 6f 6d 70 69  .    using compi
9fd0: 6c 65 72 73 20 6f 74 68 65 72 20 74 68 61 6e 20  lers other than 
9fe0: 67 63 63 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  gcc.</li>.<li>Th
9ff0: 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70 75 74  e ".dump" output
a000: 20 66 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c 20   from the shell 
a010: 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b 20 69 66  does not work if
a020: 20 74 68 65 72 65 20 61 72 65 20 65 6d 62 65 64   there are embed
a030: 64 65 64 0a 20 20 20 20 6e 65 77 6c 69 6e 65 73  ded.    newlines
a040: 20 61 6e 79 77 68 65 72 65 20 69 6e 20 74 68 65   anywhere in the
a050: 20 64 61 74 61 2e 20 20 54 68 69 73 20 69 73 20   data.  This is 
a060: 61 6e 20 6f 6c 64 20 62 75 67 20 74 68 61 74 20  an old bug that 
a070: 77 61 73 20 63 61 72 72 69 65 64 0a 20 20 20 20  was carried.    
a080: 66 6f 72 77 61 72 64 20 66 72 6f 6d 20 76 65 72  forward from ver
a090: 73 69 6f 6e 20 31 2e 30 2e 20 20 54 6f 20 66 69  sion 1.0.  To fi
a0a0: 78 20 69 74 2c 20 74 68 65 20 22 2e 64 75 6d 70  x it, the ".dump
a0b0: 22 20 6f 75 74 70 75 74 20 6e 6f 20 6c 6f 6e 67  " output no long
a0c0: 65 72 0a 20 20 20 20 75 73 65 73 20 74 68 65 20  er.    uses the 
a0d0: 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2e 20 20 49  COPY command.  I
a0e0: 74 20 69 6e 73 74 65 61 64 20 67 65 6e 65 72 61  t instead genera
a0f0: 74 65 73 20 49 4e 53 45 52 54 20 73 74 61 74 65  tes INSERT state
a100: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ments.</li>.<li>
a110: 45 78 74 65 6e 64 20 74 68 65 20 65 78 70 72 65  Extend the expre
a120: 73 73 69 6f 6e 20 73 79 6e 74 61 78 20 74 6f 20  ssion syntax to 
a130: 73 75 70 70 6f 72 74 20 22 65 78 70 72 20 4e 4f  support "expr NO
a140: 54 20 4e 55 4c 4c 22 20 28 77 69 74 68 20 61 0a  T NULL" (with a.
a150: 20 20 20 20 73 70 61 63 65 20 62 65 74 77 65 65      space betwee
a160: 6e 20 74 68 65 20 22 4e 4f 54 22 20 61 6e 64 20  n the "NOT" and 
a170: 74 68 65 20 22 4e 55 4c 4c 22 29 20 69 6e 20 61  the "NULL") in a
a180: 64 64 69 74 69 6f 6e 20 74 6f 20 22 65 78 70 72  ddition to "expr
a190: 20 4e 4f 54 4e 55 4c 4c 22 0a 20 20 20 20 28 77   NOTNULL".    (w
a1a0: 69 74 68 20 6e 6f 20 73 70 61 63 65 29 2e 3c 2f  ith no space).</
a1b0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
a1c0: 31 20 53 65 70 20 32 38 20 28 32 2e 30 2e 30 29  1 Sep 28 (2.0.0)
a1d0: 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69  } {.<li>Automati
a1e0: 63 61 6c 6c 79 20 62 75 69 6c 64 20 62 69 6e 61  cally build bina
a1f0: 72 69 65 73 20 66 6f 72 20 4c 69 6e 75 78 20 61  ries for Linux a
a200: 6e 64 20 57 69 6e 64 6f 77 73 20 61 6e 64 20 70  nd Windows and p
a210: 75 74 20 74 68 65 6d 20 6f 6e 0a 20 20 20 20 74  ut them on.    t
a220: 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e  he website.</li>
a230: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53  .}..chng {2001 S
a240: 65 70 20 32 38 20 28 32 2e 30 2d 61 6c 70 68 61  ep 28 (2.0-alpha
a250: 2d 34 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6f 72  -4)} {.<li>Incor
a260: 70 6f 72 61 74 65 20 6d 61 6b 65 66 69 6c 65 20  porate makefile 
a270: 70 61 74 63 68 65 73 20 66 6f 72 6d 20 41 2e 20  patches form A. 
a280: 52 6f 74 74 6d 61 6e 6e 20 74 6f 20 75 73 65 20  Rottmann to use 
a290: 4c 49 42 54 4f 4f 4c 3c 2f 6c 69 3e 0a 7d 0a 0a  LIBTOOL</li>.}..
a2a0: 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32  chng {2001 Sep 2
a2b0: 37 20 28 32 2e 30 2d 61 6c 70 68 61 2d 33 29 7d  7 (2.0-alpha-3)}
a2c0: 20 7b 0a 3c 6c 69 3e 53 51 4c 69 74 65 20 6e 6f   {.<li>SQLite no
a2d0: 77 20 68 6f 6e 6f 72 73 20 74 68 65 20 55 4e 49  w honors the UNI
a2e0: 51 55 45 20 6b 65 79 77 6f 72 64 20 69 6e 20 43  QUE keyword in C
a2f0: 52 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44  REATE UNIQUE IND
a300: 45 58 2e 20 20 50 72 69 6d 61 72 79 0a 20 20 20  EX.  Primary.   
a310: 20 6b 65 79 73 20 61 72 65 20 72 65 71 75 69 72   keys are requir
a320: 65 64 20 74 6f 20 62 65 20 75 6e 69 71 75 65 2e  ed to be unique.
a330: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 6c 65 20 66  </li>.<li>File f
a340: 6f 72 6d 61 74 20 63 68 61 6e 67 65 64 20 62 61  ormat changed ba
a350: 63 6b 20 74 6f 20 77 68 61 74 20 69 74 20 77 61  ck to what it wa
a360: 73 20 66 6f 72 20 61 6c 70 68 61 2d 31 3c 2f 6c  s for alpha-1</l
a370: 69 3e 0a 3c 6c 69 3e 46 69 78 65 73 20 74 6f 20  i>.<li>Fixes to 
a380: 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 61 6e 64  the rollback and
a390: 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f   locking behavio
a3a0: 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  r</li>.}..chng {
a3b0: 32 30 30 31 20 53 65 70 20 32 30 20 28 32 2e 30  2001 Sep 20 (2.0
a3c0: 2d 61 6c 70 68 61 2d 32 29 7d 20 7b 0a 3c 6c 69  -alpha-2)} {.<li
a3d0: 3e 49 6e 69 74 69 61 6c 20 72 65 6c 65 61 73 65  >Initial release
a3e0: 20 6f 66 20 76 65 72 73 69 6f 6e 20 32 2e 30 2e   of version 2.0.
a3f0: 20 20 54 68 65 20 69 64 65 61 20 6f 66 20 72 65    The idea of re
a400: 6e 61 6d 69 6e 67 20 74 68 65 20 6c 69 62 72 61  naming the libra
a410: 72 79 0a 20 20 20 20 74 6f 20 22 53 51 4c 75 73  ry.    to "SQLus
a420: 22 20 77 61 73 20 61 62 61 6e 64 6f 6e 65 64 20  " was abandoned 
a430: 69 6e 20 66 61 76 6f 72 20 6f 66 20 6b 65 65 70  in favor of keep
a440: 69 6e 67 20 74 68 65 20 22 53 51 4c 69 74 65 22  ing the "SQLite"
a450: 20 6e 61 6d 65 20 61 6e 64 0a 20 20 20 20 62 75   name and.    bu
a460: 6d 70 69 6e 67 20 74 68 65 20 6d 61 6a 6f 72 20  mping the major 
a470: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c  version number.<
a480: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 67  /li>.<li>The pag
a490: 65 72 20 61 6e 64 20 62 74 72 65 65 20 73 75 62  er and btree sub
a4a0: 73 79 73 74 65 6d 73 20 61 64 64 65 64 20 62 61  systems added ba
a4b0: 63 6b 2e 20 54 68 65 79 20 61 72 65 20 6e 6f 77  ck. They are now
a4c0: 20 74 68 65 20 6f 6e 6c 79 0a 20 20 20 20 61 76   the only.    av
a4d0: 61 69 6c 61 62 6c 65 20 62 61 63 6b 65 6e 64 2e  ailable backend.
a4e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 44 62  </li>.<li>The Db
a4f0: 62 65 20 61 62 73 74 72 61 63 74 69 6f 6e 20 61  be abstraction a
a500: 6e 64 20 74 68 65 20 47 44 42 4d 20 61 6e 64 20  nd the GDBM and 
a510: 6d 65 6d 6f 72 79 20 64 72 69 76 65 72 73 20 77  memory drivers w
a520: 65 72 65 20 72 65 6d 6f 76 65 64 2e 3c 2f 6c 69  ere removed.</li
a530: 3e 0a 3c 6c 69 3e 43 6f 70 79 72 69 67 68 74 20  >.<li>Copyright 
a540: 6f 6e 20 61 6c 6c 20 63 6f 64 65 20 77 61 73 20  on all code was 
a550: 64 69 73 63 6c 61 69 6d 65 64 2e 20 20 54 68 65  disclaimed.  The
a560: 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 77 20   library is now 
a570: 69 6e 20 74 68 65 0a 20 20 20 20 70 75 62 6c 69  in the.    publi
a580: 63 20 64 6f 6d 61 69 6e 2e 3c 2f 6c 69 3e 0a 7d  c domain.</li>.}
a590: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 75 6c  ..chng {2001 Jul
a5a0: 20 32 33 20 28 31 2e 30 2e 33 32 29 7d 20 7b 0a   23 (1.0.32)} {.
a5b0: 3c 6c 69 3e 50 61 67 65 72 20 61 6e 64 20 62 74  <li>Pager and bt
a5c0: 72 65 65 20 73 75 62 73 79 73 74 65 6d 73 20 72  ree subsystems r
a5d0: 65 6d 6f 76 65 64 2e 20 20 54 68 65 73 65 20 77  emoved.  These w
a5e0: 69 6c 6c 20 62 65 20 75 73 65 64 20 69 6e 20 61  ill be used in a
a5f0: 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a 20 20 20 20 53   follow-on.    S
a600: 51 4c 20 73 65 72 76 65 72 20 6c 69 62 72 61 72  QL server librar
a610: 79 20 6e 61 6d 65 64 20 22 53 51 4c 75 73 22 2e  y named "SQLus".
a620: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68  </li>.<li>Add th
a630: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 75 73 65  e ability to use
a640: 20 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73 20   quoted strings 
a650: 61 73 20 74 61 62 6c 65 20 61 6e 64 20 63 6f 6c  as table and col
a660: 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 0a 20 20 20  umn names in.   
a670: 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c   expressions.</l
a680: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
a690: 20 41 70 72 20 31 34 20 28 31 2e 30 2e 33 31 29   Apr 14 (1.0.31)
a6a0: 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 73 75  } {.<li>Pager su
a6b0: 62 73 79 73 74 65 6d 20 61 64 64 65 64 20 62 75  bsystem added bu
a6c0: 74 20 6e 6f 74 20 79 65 74 20 75 73 65 64 2e 3c  t not yet used.<
a6d0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 72 6f  /li>.<li>More ro
a6e0: 62 75 73 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66  bust handling of
a6f0: 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 65   out-of-memory e
a700: 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rrors.</li>.<li>
a710: 4e 65 77 20 74 65 73 74 73 20 61 64 64 65 64 20  New tests added 
a720: 74 6f 20 74 68 65 20 74 65 73 74 20 73 75 69 74  to the test suit
a730: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
a740: 7b 32 30 30 31 20 41 70 72 20 36 20 28 31 2e 30  {2001 Apr 6 (1.0
a750: 2e 33 30 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f  .30)} {.<li>Remo
a760: 76 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ve the <b>sqlite
a770: 5f 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 54 43  _encoding</b> TC
a780: 4c 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20  L variable that 
a790: 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 0a 20  was introduced. 
a7a0: 20 20 20 69 6e 20 74 68 65 20 70 72 65 76 69 6f     in the previo
a7b0: 75 73 20 76 65 72 73 69 6f 6e 2e 3c 2f 6c 69 3e  us version.</li>
a7c0: 0a 3c 6c 69 3e 41 64 64 20 6f 70 74 69 6f 6e 73  .<li>Add options
a7d0: 20 3c 62 3e 2d 65 6e 63 6f 64 69 6e 67 3c 2f 62   <b>-encoding</b
a7e0: 3e 20 61 6e 64 20 3c 62 3e 2d 74 63 6c 2d 75 73  > and <b>-tcl-us
a7f0: 65 73 2d 75 74 66 3c 2f 62 3e 20 74 6f 20 74 68  es-utf</b> to th
a800: 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c  e.    <b>sqlite<
a810: 2f 62 3e 20 54 43 4c 20 63 6f 6d 6d 61 6e 64 2e  /b> TCL command.
a820: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 65  </li>.<li>Add te
a830: 73 74 73 20 74 6f 20 6d 61 6b 65 20 73 75 72 65  sts to make sure
a840: 20 74 68 61 74 20 74 63 6c 73 71 6c 69 74 65 20   that tclsqlite 
a850: 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 75 73 69  was compiled usi
a860: 6e 67 20 54 63 6c 20 68 65 61 64 65 72 0a 20 20  ng Tcl header.  
a870: 20 20 66 69 6c 65 73 20 61 6e 64 20 6c 69 62 72    files and libr
a880: 61 72 69 65 73 20 74 68 61 74 20 6d 61 74 63 68  aries that match
a890: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
a8a0: 32 30 30 31 20 41 70 72 20 35 20 28 31 2e 30 2e  2001 Apr 5 (1.0.
a8b0: 32 39 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c  29)} {.<li>The l
a8c0: 69 62 72 61 72 79 20 6e 6f 77 20 61 73 73 75 6d  ibrary now assum
a8d0: 65 73 20 64 61 74 61 20 69 73 20 73 74 6f 72 65  es data is store
a8e0: 64 20 61 73 20 55 54 46 2d 38 20 69 66 20 74 68  d as UTF-8 if th
a8f0: 65 20 2d 2d 65 6e 61 62 6c 65 2d 75 74 66 38 0a  e --enable-utf8.
a900: 20 20 20 20 6f 70 74 69 6f 6e 20 69 73 20 67 69      option is gi
a910: 76 65 6e 20 74 6f 20 63 6f 6e 66 69 67 75 72 65  ven to configure
a920: 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 62  .  The default b
a930: 65 68 61 76 69 6f 72 20 69 73 20 74 6f 20 61 73  ehavior is to as
a940: 73 75 6d 65 0a 20 20 20 20 69 73 6f 38 38 35 39  sume.    iso8859
a950: 2d 78 2c 20 61 73 20 69 74 20 68 61 73 20 61 6c  -x, as it has al
a960: 77 61 79 73 20 64 6f 6e 65 2e 20 20 54 68 69 73  ways done.  This
a970: 20 6f 6e 6c 79 20 6d 61 6b 65 73 20 61 20 64 69   only makes a di
a980: 66 66 65 72 65 6e 63 65 20 66 6f 72 0a 20 20 20  fference for.   
a990: 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f 42 20 6f   LIKE and GLOB o
a9a0: 70 65 72 61 74 6f 72 73 20 61 6e 64 20 74 68 65  perators and the
a9b0: 20 4c 45 4e 47 54 48 20 61 6e 64 20 53 55 42 53   LENGTH and SUBS
a9c0: 54 52 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c  TR functions.</l
a9d0: 69 3e 0a 3c 6c 69 3e 49 66 20 74 68 65 20 6c 69  i>.<li>If the li
a9e0: 62 72 61 72 79 20 69 73 20 6e 6f 74 20 63 6f 6e  brary is not con
a9f0: 66 69 67 75 72 65 64 20 66 6f 72 20 55 54 46 2d  figured for UTF-
aa00: 38 20 61 6e 64 20 74 68 65 20 54 63 6c 20 6c 69  8 and the Tcl li
aa10: 62 72 61 72 79 0a 20 20 20 20 69 73 20 6f 6e 65  brary.    is one
aa20: 20 6f 66 20 74 68 65 20 6e 65 77 65 72 20 6f 6e   of the newer on
aa30: 65 73 20 74 68 61 74 20 75 73 65 73 20 55 54 46  es that uses UTF
aa40: 2d 38 20 69 6e 74 65 72 6e 61 6c 6c 79 2c 0a 20  -8 internally,. 
aa50: 20 20 20 74 68 65 6e 20 61 20 63 6f 6e 76 65 72     then a conver
aa60: 73 69 6f 6e 20 66 72 6f 6d 20 55 54 46 2d 38 20  sion from UTF-8 
aa70: 74 6f 20 69 73 6f 38 38 35 39 20 61 6e 64 0a 20  to iso8859 and. 
aa80: 20 20 20 62 61 63 6b 20 61 67 61 69 6e 20 69 73     back again is
aa90: 20 64 6f 6e 65 20 69 6e 73 69 64 65 20 74 68 65   done inside the
aaa0: 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c   TCL interface.<
aab0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
aac0: 30 31 20 41 70 72 20 34 20 28 31 2e 30 2e 32 38  01 Apr 4 (1.0.28
aad0: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c  )} {.<li>Added l
aae0: 69 6d 69 74 65 64 20 73 75 70 70 6f 72 74 20 66  imited support f
aaf0: 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e  or transactions.
ab00: 20 20 41 74 20 74 68 69 73 20 70 6f 69 6e 74 2c    At this point,
ab10: 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 0a 20 20   transactions.  
ab20: 20 20 77 69 6c 6c 20 64 6f 20 74 61 62 6c 65 20    will do table 
ab30: 6c 6f 63 6b 69 6e 67 20 6f 6e 20 74 68 65 20 47  locking on the G
ab40: 44 42 4d 20 62 61 63 6b 65 6e 64 2e 20 20 54 68  DBM backend.  Th
ab50: 65 72 65 20 69 73 20 6e 6f 20 73 75 70 70 6f 72  ere is no suppor
ab60: 74 20 28 79 65 74 29 0a 20 20 20 20 66 6f 72 20  t (yet).    for 
ab70: 72 6f 6c 6c 62 61 63 6b 20 6f 72 20 61 74 6f 6d  rollback or atom
ab80: 69 63 20 63 6f 6d 6d 69 74 2e 3c 2f 6c 69 3e 0a  ic commit.</li>.
ab90: 3c 6c 69 3e 41 64 64 65 64 20 73 70 65 63 69 61  <li>Added specia
aba0: 6c 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 52  l column names R
abb0: 4f 57 49 44 2c 20 4f 49 44 2c 20 61 6e 64 20 5f  OWID, OID, and _
abc0: 52 4f 57 49 44 5f 20 74 68 61 74 20 72 65 66 65  ROWID_ that refe
abd0: 72 20 74 6f 20 74 68 65 0a 20 20 20 20 75 6e 69  r to the.    uni
abe0: 71 75 65 20 72 61 6e 64 6f 6d 20 69 6e 74 65 67  que random integ
abf0: 65 72 20 6b 65 79 20 61 73 73 6f 63 69 61 74 65  er key associate
ac00: 64 20 77 69 74 68 20 65 76 65 72 79 20 72 6f 77  d with every row
ac10: 20 6f 66 20 65 76 65 72 79 20 74 61 62 6c 65 2e   of every table.
ac20: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 69 74 69  </li>.<li>Additi
ac30: 6f 6e 61 6c 20 74 65 73 74 73 20 61 64 64 65 64  onal tests added
ac40: 20 74 6f 20 74 68 65 20 72 65 67 72 65 73 73 69   to the regressi
ac50: 6f 6e 20 73 75 69 74 65 20 74 6f 20 63 6f 76 65  on suite to cove
ac60: 72 20 74 68 65 20 6e 65 77 20 52 4f 57 49 44 0a  r the new ROWID.
ac70: 20 20 20 20 66 65 61 74 75 72 65 20 61 6e 64 20      feature and 
ac80: 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
ac90: 65 20 62 75 67 73 20 6d 65 6e 74 69 6f 6e 65 64  e bugs mentioned
aca0: 20 62 65 6c 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69   below.</li>.<li
acb0: 3e 43 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20  >Changes to the 
acc0: 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67  "lemon" parser g
acd0: 65 6e 65 72 61 74 6f 72 20 74 6f 20 68 65 6c 70  enerator to help
ace0: 20 69 74 20 77 6f 72 6b 20 62 65 74 74 65 72 20   it work better 
acf0: 77 68 65 6e 0a 20 20 20 20 63 6f 6d 70 69 6c 65  when.    compile
ad00: 64 20 75 73 69 6e 67 20 4d 53 56 43 2e 3c 2f 6c  d using MSVC.</l
ad10: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73  i>.<li>Bug fixes
ad20: 20 69 6e 20 74 68 65 20 54 43 4c 20 69 6e 74 65   in the TCL inte
ad30: 72 66 61 63 65 20 69 64 65 6e 74 69 66 69 65 64  rface identified
ad40: 20 62 79 20 4f 6c 65 67 20 4f 6c 65 69 6e 69 63   by Oleg Oleinic
ad50: 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  k.</li>.}..chng 
ad60: 7b 32 30 30 31 20 4d 61 72 20 32 30 20 28 31 2e  {2001 Mar 20 (1.
ad70: 30 2e 32 37 29 7d 20 7b 0a 3c 6c 69 3e 57 68 65  0.27)} {.<li>Whe
ad80: 6e 20 64 6f 69 6e 67 20 44 45 4c 45 54 45 20 61  n doing DELETE a
ad90: 6e 64 20 55 50 44 41 54 45 2c 20 74 68 65 20 6c  nd UPDATE, the l
ada0: 69 62 72 61 72 79 20 75 73 65 64 20 74 6f 20 77  ibrary used to w
adb0: 72 69 74 65 20 74 68 65 20 72 65 63 6f 72 64 0a  rite the record.
adc0: 20 20 20 20 6e 75 6d 62 65 72 73 20 6f 66 20 72      numbers of r
add0: 65 63 6f 72 64 73 20 74 6f 20 62 65 20 64 65 6c  ecords to be del
ade0: 65 74 65 64 20 6f 72 20 75 70 64 61 74 65 64 20  eted or updated 
adf0: 69 6e 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79  into a temporary
ae00: 20 66 69 6c 65 2e 0a 20 20 20 20 54 68 69 73 20   file..    This 
ae10: 69 73 20 63 68 61 6e 67 65 64 20 73 6f 20 74 68  is changed so th
ae20: 61 74 20 74 68 65 20 72 65 63 6f 72 64 20 6e 75  at the record nu
ae30: 6d 62 65 72 73 20 61 72 65 20 68 65 6c 64 20 69  mbers are held i
ae40: 6e 20 6d 65 6d 6f 72 79 2e 3c 2f 6c 69 3e 0a 3c  n memory.</li>.<
ae50: 6c 69 3e 54 68 65 20 44 45 4c 45 54 45 20 63 6f  li>The DELETE co
ae60: 6d 6d 61 6e 64 20 77 69 74 68 6f 75 74 20 61 20  mmand without a 
ae70: 57 48 49 4c 45 20 63 6c 61 75 73 65 20 6a 75 73  WHILE clause jus
ae80: 74 20 72 65 6d 6f 76 65 73 20 74 68 65 20 64 61  t removes the da
ae90: 74 61 62 61 73 65 0a 20 20 20 20 66 69 6c 65 73  tabase.    files
aea0: 20 66 72 6f 6d 20 74 68 65 20 64 69 73 6b 2c 20   from the disk, 
aeb0: 72 61 74 68 65 72 20 74 68 61 6e 20 67 6f 69 6e  rather than goin
aec0: 67 20 74 68 72 6f 75 67 68 20 61 6e 64 20 64 65  g through and de
aed0: 6c 65 74 69 6e 67 20 72 65 63 6f 72 64 0a 20 20  leting record.  
aee0: 20 20 62 79 20 72 65 63 6f 72 64 2e 3c 2f 6c 69    by record.</li
aef0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
af00: 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 36 29 7d  Mar 20 (1.0.26)}
af10: 20 7b 0a 3c 6c 69 3e 41 20 73 65 72 69 6f 75 73   {.<li>A serious
af20: 20 62 75 67 20 66 69 78 65 64 20 6f 6e 20 57 69   bug fixed on Wi
af30: 6e 64 6f 77 73 2e 20 20 57 69 6e 64 6f 77 73 20  ndows.  Windows 
af40: 75 73 65 72 73 20 73 68 6f 75 6c 64 20 75 70 67  users should upg
af50: 72 61 64 65 2e 0a 20 20 20 20 4e 6f 20 69 6d 70  rade..    No imp
af60: 61 63 74 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69  act to Unix.</li
af70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
af80: 4d 61 72 20 31 35 20 28 31 2e 30 2e 32 35 29 7d  Mar 15 (1.0.25)}
af90: 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 79 20 74 68   {.<li>Modify th
afa0: 65 20 74 65 73 74 20 73 63 72 69 70 74 73 20 74  e test scripts t
afb0: 6f 20 69 64 65 6e 74 69 66 79 20 74 65 73 74 73  o identify tests
afc0: 20 74 68 61 74 20 64 65 70 65 6e 64 20 6f 6e 20   that depend on 
afd0: 73 79 73 74 65 6d 0a 20 20 20 20 6c 6f 61 64 20  system.    load 
afe0: 61 6e 64 20 70 72 6f 63 65 73 73 6f 72 20 73 70  and processor sp
aff0: 65 65 64 20 61 6e 64 0a 20 20 20 20 74 6f 20 77  eed and.    to w
b000: 61 72 6e 20 74 68 65 20 75 73 65 72 20 74 68 61  arn the user tha
b010: 74 20 61 20 66 61 69 6c 75 72 65 20 6f 66 20 6f  t a failure of o
b020: 6e 65 20 6f 66 20 74 68 6f 73 65 20 28 72 61 72  ne of those (rar
b030: 65 29 20 74 65 73 74 73 20 64 6f 65 73 0a 20 20  e) tests does.  
b040: 20 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c    not necessaril
b050: 79 20 6d 65 61 6e 20 74 68 65 20 6c 69 62 72 61  y mean the libra
b060: 72 79 20 69 73 20 6d 61 6c 66 75 6e 63 74 69 6f  ry is malfunctio
b070: 6e 69 6e 67 2e 20 20 4e 6f 20 63 68 61 6e 67 65  ning.  No change
b080: 73 20 74 6f 0a 20 20 20 20 63 6f 64 65 2e 0a 20  s to.    code.. 
b090: 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
b0a0: 20 7b 32 30 30 31 20 4d 61 72 20 31 34 20 28 31   {2001 Mar 14 (1
b0b0: 2e 30 2e 32 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .0.24)} {.<li>Fi
b0c0: 78 20 61 20 62 75 67 20 77 68 69 63 68 20 77 61  x a bug which wa
b0d0: 73 20 63 61 75 73 69 6e 67 0a 20 20 20 20 74 68  s causing.    th
b0e0: 65 20 55 50 44 41 54 45 20 63 6f 6d 6d 61 6e 64  e UPDATE command
b0f0: 20 74 6f 20 66 61 69 6c 20 6f 6e 20 73 79 73 74   to fail on syst
b100: 65 6d 73 20 77 68 65 72 65 20 22 6d 61 6c 6c 6f  ems where "mallo
b110: 63 28 30 29 22 20 72 65 74 75 72 6e 73 0a 20 20  c(0)" returns.  
b120: 20 20 4e 55 4c 4c 2e 20 20 54 68 65 20 70 72 6f    NULL.  The pro
b130: 62 6c 65 6d 20 64 6f 65 73 20 6e 6f 74 20 61 70  blem does not ap
b140: 70 65 61 72 20 57 69 6e 64 6f 77 73 2c 20 4c 69  pear Windows, Li
b150: 6e 75 78 2c 20 6f 72 20 48 50 55 58 20 62 75 74  nux, or HPUX but
b160: 20 64 6f 65 73 20 0a 20 20 20 20 63 61 75 73 65   does .    cause
b170: 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f 20   the library to 
b180: 66 61 69 6c 20 6f 6e 20 51 4e 58 2e 0a 20 20 20  fail on QNX..   
b190: 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b   </li>.}..chng {
b1a0: 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e 30  2001 Feb 19 (1.0
b1b0: 2e 32 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 20 75  .23)} {.<li>An u
b1c0: 6e 72 65 6c 61 74 65 64 20 28 61 6e 64 20 6d 69  nrelated (and mi
b1d0: 6e 6f 72 29 20 62 75 67 20 66 72 6f 6d 20 4d 61  nor) bug from Ma
b1e0: 72 6b 20 4d 75 72 61 6e 77 73 6b 69 20 66 69 78  rk Muranwski fix
b1f0: 65 64 2e 20 20 54 68 65 20 61 6c 67 6f 72 69 74  ed.  The algorit
b200: 68 6d 0a 20 20 20 20 66 6f 72 20 66 69 67 75 72  hm.    for figur
b210: 69 6e 67 20 6f 75 74 20 77 68 65 72 65 20 74 6f  ing out where to
b220: 20 70 75 74 20 74 65 6d 70 6f 72 61 72 79 20 66   put temporary f
b230: 69 6c 65 73 20 66 6f 72 20 61 20 22 6d 65 6d 6f  iles for a "memo
b240: 72 79 3a 22 20 64 61 74 61 62 61 73 65 0a 20 20  ry:" database.  
b250: 20 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e    was not workin
b260: 67 20 71 75 69 74 65 20 72 69 67 68 74 2e 0a 20  g quite right.. 
b270: 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
b280: 20 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31   {2001 Feb 19 (1
b290: 2e 30 2e 32 32 29 7d 20 7b 0a 3c 6c 69 3e 54 68  .0.22)} {.<li>Th
b2a0: 65 20 70 72 65 76 69 6f 75 73 20 66 69 78 20 77  e previous fix w
b2b0: 61 73 20 6e 6f 74 20 71 75 69 74 65 20 72 69 67  as not quite rig
b2c0: 68 74 2e 20 20 54 68 69 73 20 6f 6e 65 20 73 65  ht.  This one se
b2d0: 65 6d 73 20 74 6f 20 77 6f 72 6b 20 62 65 74 74  ems to work bett
b2e0: 65 72 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a  er..    </li>.}.
b2f0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20  .chng {2001 Feb 
b300: 31 39 20 28 31 2e 30 2e 32 31 29 7d 20 7b 0a 3c  19 (1.0.21)} {.<
b310: 6c 69 3e 54 68 65 20 55 50 44 41 54 45 20 73 74  li>The UPDATE st
b320: 61 74 65 6d 65 6e 74 20 77 61 73 20 6e 6f 74 20  atement was not 
b330: 77 6f 72 6b 69 6e 67 20 77 68 65 6e 20 74 68 65  working when the
b340: 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 63 6f   WHERE clause co
b350: 6e 74 61 69 6e 65 64 0a 20 20 20 20 73 6f 6d 65  ntained.    some
b360: 20 74 65 72 6d 73 20 74 68 61 74 20 63 6f 75 6c   terms that coul
b370: 64 20 62 65 20 73 61 74 69 73 66 69 65 64 20 75  d be satisfied u
b380: 73 69 6e 67 20 69 6e 64 69 63 65 73 20 61 6e 64  sing indices and
b390: 20 6f 74 68 65 72 20 74 65 72 6d 73 20 74 68 61   other terms tha
b3a0: 74 0a 20 20 20 20 63 6f 75 6c 64 20 6e 6f 74 2e  t.    could not.
b3b0: 20 20 46 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a    Fixed.</li>.}.
b3c0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20  .chng {2001 Feb 
b3d0: 31 31 20 28 31 2e 30 2e 32 30 29 7d 20 7b 0a 3c  11 (1.0.20)} {.<
b3e0: 6c 69 3e 4d 65 72 67 65 20 64 65 76 65 6c 6f 70  li>Merge develop
b3f0: 6d 65 6e 74 20 63 68 61 6e 67 65 73 20 69 6e 74  ment changes int
b400: 6f 20 74 68 65 20 6d 61 69 6e 20 74 72 75 6e 6b  o the main trunk
b410: 2e 20 20 46 75 74 75 72 65 20 77 6f 72 6b 20 74  .  Future work t
b420: 6f 77 61 72 64 0a 20 20 20 20 75 73 69 6e 67 20  oward.    using 
b430: 61 20 42 54 72 65 65 20 66 69 6c 65 20 73 74 72  a BTree file str
b440: 75 63 74 75 72 65 20 77 69 6c 6c 20 75 73 65 20  ucture will use 
b450: 61 20 73 65 70 61 72 61 74 65 20 43 56 53 20 73  a separate CVS s
b460: 6f 75 72 63 65 20 74 72 65 65 2e 20 20 54 68 69  ource tree.  Thi
b470: 73 0a 20 20 20 20 43 56 53 20 74 72 65 65 20 77  s.    CVS tree w
b480: 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20  ill continue to 
b490: 73 75 70 70 6f 72 74 20 74 68 65 20 47 44 42 4d  support the GDBM
b4a0: 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 51 4c 69   version of SQLi
b4b0: 74 65 20 6f 6e 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a  te only.</li>.}.
b4c0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20  .chng {2001 Feb 
b4d0: 36 20 28 31 2e 30 2e 31 39 29 7d 20 7b 0a 3c 6c  6 (1.0.19)} {.<l
b4e0: 69 3e 46 69 78 20 61 20 73 74 72 61 6e 67 65 20  i>Fix a strange 
b4f0: 28 62 75 74 20 76 61 6c 69 64 29 20 43 20 64 65  (but valid) C de
b500: 63 6c 61 72 61 74 69 6f 6e 20 74 68 61 74 20 77  claration that w
b510: 61 73 20 63 61 75 73 69 6e 67 20 70 72 6f 62 6c  as causing probl
b520: 65 6d 73 0a 20 20 20 20 66 6f 72 20 51 4e 58 2e  ems.    for QNX.
b530: 20 20 4e 6f 20 6c 6f 67 69 63 61 6c 20 63 68 61    No logical cha
b540: 6e 67 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  nges.</li>.}..ch
b550: 6e 67 20 7b 32 30 30 31 20 4a 61 6e 20 34 20 28  ng {2001 Jan 4 (
b560: 31 2e 30 2e 31 38 29 7d 20 7b 0a 3c 6c 69 3e 50  1.0.18)} {.<li>P
b570: 72 69 6e 74 20 74 68 65 20 6f 66 66 65 6e 64 69  rint the offendi
b580: 6e 67 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74  ng SQL statement
b590: 20 77 68 65 6e 20 61 6e 20 65 72 72 6f 72 20 6f   when an error o
b5a0: 63 63 75 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ccurs.</li>.<li>
b5b0: 44 6f 20 6e 6f 74 20 72 65 71 75 69 72 65 20 63  Do not require c
b5c0: 6f 6d 6d 61 73 20 62 65 74 77 65 65 6e 20 63 6f  ommas between co
b5d0: 6e 73 74 72 61 69 6e 74 73 20 69 6e 20 43 52 45  nstraints in CRE
b5e0: 41 54 45 20 54 41 42 4c 45 20 73 74 61 74 65 6d  ATE TABLE statem
b5f0: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ents.</li>.<li>A
b600: 64 64 65 64 20 74 68 65 20 22 2d 65 63 68 6f 22  dded the "-echo"
b610: 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 73   option to the s
b620: 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  hell.</li>.<li>C
b630: 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d 6d 65 6e  hanges to commen
b640: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
b650: 20 7b 32 30 30 30 20 44 65 63 20 31 30 20 28 31   {2000 Dec 10 (1
b660: 2e 30 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e 52 65  .0.17)} {.<li>Re
b670: 77 72 6f 74 65 20 3c 62 3e 73 71 6c 69 74 65 5f  wrote <b>sqlite_
b680: 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20 74  complete()</b> t
b690: 6f 20 6d 61 6b 65 20 69 74 20 66 61 73 74 65 72  o make it faster
b6a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72  .</li>.<li>Minor
b6b0: 20 74 77 65 61 6b 73 20 74 6f 20 6f 74 68 65 72   tweaks to other
b6c0: 20 63 6f 64 65 20 74 6f 20 6d 61 6b 65 20 69 74   code to make it
b6d0: 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61   run a little fa
b6e0: 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ster.</li>.<li>A
b6f0: 64 64 65 64 20 6e 65 77 20 74 65 73 74 73 20 66  dded new tests f
b700: 6f 72 20 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d  or <b>sqlite_com
b710: 70 6c 65 74 65 28 29 3c 2f 62 3e 20 61 6e 64 20  plete()</b> and 
b720: 66 6f 72 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73  for memory leaks
b730: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
b740: 32 30 30 30 20 44 65 63 20 34 20 28 31 2e 30 2e  2000 Dec 4 (1.0.
b750: 31 36 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d  16)} {.<li>Docum
b760: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
b770: 2e 20 20 4d 6f 73 74 6c 79 20 66 69 78 69 6e 67  .  Mostly fixing
b780: 20 6f 66 20 74 79 70 6f 73 20 61 6e 64 20 73 70   of typos and sp
b790: 65 6c 6c 69 6e 67 20 65 72 72 6f 72 73 2e 3c 2f  elling errors.</
b7a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
b7b0: 30 20 4f 63 74 20 32 33 20 28 31 2e 30 2e 31 35  0 Oct 23 (1.0.15
b7c0: 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  )} {.<li>Documen
b7d0: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
b7e0: 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d 65 20 73 61 6e  li>.<li>Some san
b7f0: 69 74 79 20 63 68 65 63 6b 69 6e 67 20 63 6f 64  ity checking cod
b800: 65 20 77 61 73 20 72 65 6d 6f 76 65 64 20 66 72  e was removed fr
b810: 6f 6d 20 74 68 65 20 69 6e 6e 65 72 20 6c 6f 6f  om the inner loo
b820: 70 20 6f 66 20 76 64 62 65 2e 63 0a 20 20 20 20  p of vdbe.c.    
b830: 74 6f 20 68 65 6c 70 20 74 68 65 20 6c 69 62 72  to help the libr
b840: 61 72 79 20 74 6f 20 72 75 6e 20 61 20 6c 69 74  ary to run a lit
b850: 74 6c 65 20 66 61 73 74 65 72 2e 20 20 54 68 65  tle faster.  The
b860: 20 63 6f 64 65 20 69 73 20 6f 6e 6c 79 0a 20 20   code is only.  
b870: 20 20 72 65 6d 6f 76 65 64 20 69 66 20 79 6f 75    removed if you
b880: 20 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d 44   compile with -D
b890: 4e 44 45 42 55 47 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  NDEBUG.</li>.}..
b8a0: 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31  chng {2000 Oct 1
b8b0: 39 20 28 31 2e 30 2e 31 34 29 7d 20 7b 0a 3c 6c  9 (1.0.14)} {.<l
b8c0: 69 3e 41 64 64 65 64 20 61 20 22 6d 65 6d 6f 72  i>Added a "memor
b8d0: 79 3a 22 20 62 61 63 6b 65 6e 64 20 64 72 69 76  y:" backend driv
b8e0: 65 72 20 74 68 61 74 20 73 74 6f 72 65 73 20 69  er that stores i
b8f0: 74 73 20 64 61 74 61 62 61 73 65 20 69 6e 20 61  ts database in a
b900: 6e 0a 20 20 20 20 69 6e 2d 6d 65 6d 6f 72 79 20  n.    in-memory 
b910: 68 61 73 68 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e  hash table.</li>
b920: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f  .}..chng {2000 O
b930: 63 74 20 31 38 20 28 31 2e 30 2e 31 33 29 7d 20  ct 18 (1.0.13)} 
b940: 7b 0a 3c 6c 69 3e 42 72 65 61 6b 20 6f 75 74 20  {.<li>Break out 
b950: 74 68 65 20 47 44 42 4d 20 64 72 69 76 65 72 20  the GDBM driver 
b960: 69 6e 74 6f 20 61 20 73 65 70 61 72 61 74 65 20  into a separate 
b970: 66 69 6c 65 20 69 6e 20 61 6e 74 69 63 69 70 61  file in anticipa
b980: 74 69 6f 6e 0a 20 20 20 20 74 6f 20 61 64 64 65  tion.    to adde
b990: 64 20 6e 65 77 20 64 72 69 76 65 72 73 2e 3c 2f  d new drivers.</
b9a0: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68  li>.<li>Allow th
b9b0: 65 20 6e 61 6d 65 20 6f 66 20 61 20 64 61 74 61  e name of a data
b9c0: 62 61 73 65 20 74 6f 20 62 65 20 70 72 65 66 69  base to be prefi
b9d0: 78 65 64 20 62 79 20 74 68 65 20 64 72 69 76 65  xed by the drive
b9e0: 72 20 74 79 70 65 2e 0a 20 20 20 20 46 6f 72 20  r type..    For 
b9f0: 6e 6f 77 2c 20 74 68 65 20 6f 6e 6c 79 20 64 72  now, the only dr
ba00: 69 76 65 72 20 74 79 70 65 20 69 73 20 22 67 64  iver type is "gd
ba10: 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  bm:".</li>.}..ch
ba20: 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 36 20  ng {2000 Oct 16 
ba30: 28 31 2e 30 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.12)} {.<li>
ba40: 46 69 78 65 64 20 61 6e 20 6f 66 66 2d 62 79 2d  Fixed an off-by-
ba50: 6f 6e 65 20 65 72 72 6f 72 20 74 68 61 74 20 77  one error that w
ba60: 61 73 20 63 61 75 73 69 6e 67 20 61 20 63 6f 72  as causing a cor
ba70: 65 64 75 6d 70 20 69 6e 20 0a 20 20 20 20 74 68  edump in .    th
ba80: 65 20 27 25 71 27 20 66 6f 72 6d 61 74 20 64 69  e '%q' format di
ba90: 72 65 63 74 69 76 65 20 6f 66 20 74 68 65 20 6e  rective of the n
baa0: 65 77 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65  ew.    <b>sqlite
bab0: 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62  _..._printf()</b
bac0: 3e 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e  > routines.</li>
bad0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c  .<li>Added the <
bae0: 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75  b>sqlite_interru
baf0: 70 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61  pt()</b> interfa
bb00: 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20  ce.</li>.<li>In 
bb10: 74 68 65 20 73 68 65 6c 6c 2c 20 3c 62 3e 73 71  the shell, <b>sq
bb20: 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29  lite_interrupt()
bb30: 3c 2f 62 3e 20 69 73 20 69 6e 76 6f 6b 65 64 20  </b> is invoked 
bb40: 77 68 65 6e 20 74 68 65 0a 20 20 20 20 75 73 65  when the.    use
bb50: 72 20 70 72 65 73 73 65 73 20 43 6f 6e 74 72 6f  r presses Contro
bb60: 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  l-C</li>.<li>Fix
bb70: 65 64 20 73 6f 6d 65 20 69 6e 73 74 61 6e 63 65  ed some instance
bb80: 73 20 77 68 65 72 65 20 3c 62 3e 73 71 6c 69 74  s where <b>sqlit
bb90: 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77 61 73  e_exec()</b> was
bba0: 0a 20 20 20 20 72 65 74 75 72 6e 69 6e 67 20 74  .    returning t
bbb0: 68 65 20 77 72 6f 6e 67 20 65 72 72 6f 72 20 63  he wrong error c
bbc0: 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ode.</li>.}..chn
bbd0: 67 20 7b 32 30 30 30 20 4f 63 74 20 31 31 20 28  g {2000 Oct 11 (
bbe0: 31 2e 30 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 41  1.0.10)} {.<li>A
bbf0: 64 64 65 64 20 6e 6f 74 65 73 20 6f 6e 20 68 6f  dded notes on ho
bc00: 77 20 74 6f 20 63 6f 6d 70 69 6c 65 20 66 6f 72  w to compile for
bc10: 20 57 69 6e 64 6f 77 73 39 35 2f 39 38 2e 3c 2f   Windows95/98.</
bc20: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20  li>.<li>Removed 
bc30: 61 20 66 65 77 20 76 61 72 69 61 62 6c 65 73 20  a few variables 
bc40: 74 68 61 74 20 77 65 72 65 20 6e 6f 74 20 62 65  that were not be
bc50: 69 6e 67 20 75 73 65 64 2e 20 20 45 74 63 2e 3c  ing used.  Etc.<
bc60: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
bc70: 30 30 20 4f 63 74 20 38 20 28 31 2e 30 2e 39 29  00 Oct 8 (1.0.9)
bc80: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
bc90: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f  e <b>sqlite_..._
bca0: 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20 69 6e 74  printf()</b> int
bcb0: 65 72 66 61 63 65 20 72 6f 75 74 69 6e 65 73 2e  erface routines.
bcc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
bcd0: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
bce0: 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72  </b> shell progr
bcf0: 61 6d 20 74 6f 20 75 73 65 20 74 68 65 20 6e 65  am to use the ne
bd00: 77 20 69 6e 74 65 72 66 61 63 65 20 0a 20 20 20  w interface .   
bd10: 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a   routines.</li>.
bd20: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
bd30: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
bd40: 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20  hell program to 
bd50: 70 72 69 6e 74 20 74 68 65 20 73 63 68 65 6d 61  print the schema
bd60: 20 66 6f 72 0a 20 20 20 20 74 68 65 20 62 75 69   for.    the bui
bd70: 6c 74 2d 69 6e 20 53 51 4c 49 54 45 5f 4d 41 53  lt-in SQLITE_MAS
bd80: 54 45 52 20 74 61 62 6c 65 2c 20 69 66 20 65 78  TER table, if ex
bd90: 70 6c 69 63 69 74 6c 79 20 72 65 71 75 65 73 74  plicitly request
bda0: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
bdb0: 20 7b 32 30 30 30 20 53 65 70 20 33 30 20 28 31   {2000 Sep 30 (1
bdc0: 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 42 65 67  .0.8)} {.<li>Beg
bdd0: 69 6e 20 77 72 69 74 69 6e 67 20 64 6f 63 75 6d  in writing docum
bde0: 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20  entation on the 
bdf0: 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  TCL interface.</
be00: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
be10: 30 20 53 65 70 20 32 39 20 28 4e 6f 74 20 52 65  0 Sep 29 (Not Re
be20: 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e 41  leased)} {.<li>A
be30: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
be40: 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f  te_get_table()</
be50: 62 3e 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e  b> API</li>.<li>
be60: 55 70 64 61 74 65 64 20 74 68 65 20 64 6f 63 75  Updated the docu
be70: 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 64 75  mentation for du
be80: 65 20 74 6f 20 74 68 65 20 61 62 6f 76 65 20 63  e to the above c
be90: 68 61 6e 67 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  hange.</li>.<li>
bea0: 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e  Modified the <b>
beb0: 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c  sqlite</b> shell
bec0: 20 74 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20   to make use of 
bed0: 74 68 65 20 6e 65 77 0a 20 20 20 20 73 71 6c 69  the new.    sqli
bee0: 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 20 41  te_get_table() A
bef0: 50 49 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70  PI in order to p
bf00: 72 69 6e 74 20 61 20 6c 69 73 74 20 6f 66 20 74  rint a list of t
bf10: 61 62 6c 65 73 0a 20 20 20 20 69 6e 20 6d 75 6c  ables.    in mul
bf20: 74 69 70 6c 65 20 63 6f 6c 75 6d 6e 73 2c 20 73  tiple columns, s
bf30: 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 77 61  imilar to the wa
bf40: 79 20 22 6c 73 22 20 70 72 69 6e 74 73 20 66 69  y "ls" prints fi
bf50: 6c 65 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  lenames.</li>.<l
bf60: 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c  i>Modified the <
bf70: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65  b>sqlite</b> she
bf80: 6c 6c 20 74 6f 20 70 72 69 6e 74 20 61 20 73 65  ll to print a se
bf90: 6d 69 63 6f 6c 6f 6e 20 61 74 20 74 68 65 0a 20  micolon at the. 
bfa0: 20 20 20 65 6e 64 20 6f 66 20 65 61 63 68 20 43     end of each C
bfb0: 52 45 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20  REATE statement 
bfc0: 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66  in the output of
bfd0: 20 74 68 65 20 22 2e 73 63 68 65 6d 61 22 20 63   the ".schema" c
bfe0: 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ommand.</li>.}..
bff0: 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 32  chng {2000 Sep 2
c000: 31 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64 29  1 (Not Released)
c010: 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74  } {.<li>Change t
c020: 68 65 20 74 63 6c 73 71 6c 69 74 65 20 22 65 76  he tclsqlite "ev
c030: 61 6c 22 20 6d 65 74 68 6f 64 20 74 6f 20 72 65  al" method to re
c040: 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 72  turn a list of r
c050: 65 73 75 6c 74 73 20 69 66 0a 20 20 20 20 6e 6f  esults if.    no
c060: 20 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 70 74   callback script
c070: 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 3c 2f   is specified.</
c080: 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74  li>.<li>Change t
c090: 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 75 73  clsqlite.c to us
c0a0: 65 20 74 68 65 20 54 63 6c 5f 4f 62 6a 20 69 6e  e the Tcl_Obj in
c0b0: 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69  terface</li>.<li
c0c0: 3e 41 64 64 20 74 63 6c 73 71 6c 69 74 65 2e 63  >Add tclsqlite.c
c0d0: 20 74 6f 20 74 68 65 20 6c 69 62 73 71 6c 69 74   to the libsqlit
c0e0: 65 2e 61 20 6c 69 62 72 61 72 79 3c 2f 6c 69 3e  e.a library</li>
c0f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53  .}..chng {2000 S
c100: 65 70 20 31 33 20 28 56 65 72 73 69 6f 6e 20 31  ep 13 (Version 1
c110: 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  .0.5)} {.<li>Cha
c120: 6e 67 65 64 20 74 68 65 20 70 72 69 6e 74 20 66  nged the print f
c130: 6f 72 6d 61 74 20 66 6f 72 20 66 6c 6f 61 74 69  ormat for floati
c140: 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75 65 73 20  ng point values 
c150: 66 72 6f 6d 20 22 25 67 22 20 74 6f 20 22 25 2e  from "%g" to "%.
c160: 31 35 67 22 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  15g"..    </li>.
c170: 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74 68 65 20  <li>Changed the 
c180: 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74  comparison funct
c190: 69 6f 6e 20 73 6f 20 74 68 61 74 20 6e 75 6d 62  ion so that numb
c1a0: 65 72 73 20 69 6e 20 65 78 70 6f 6e 65 6e 74 69  ers in exponenti
c1b0: 61 6c 20 6e 6f 74 61 74 69 6f 6e 0a 20 20 20 20  al notation.    
c1c0: 28 65 78 3a 20 31 2e 32 33 34 65 2b 30 35 29 20  (ex: 1.234e+05) 
c1d0: 73 6f 72 74 20 69 6e 20 6e 75 6d 65 72 69 63 61  sort in numerica
c1e0: 6c 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a  l order.</li>.}.
c1f0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
c200: 32 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e  28 (Version 1.0.
c210: 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  4)} {.<li>Added 
c220: 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 6c 65 6e  functions <b>len
c230: 67 74 68 28 29 3c 2f 62 3e 20 61 6e 64 20 3c 62  gth()</b> and <b
c240: 3e 73 75 62 73 74 72 28 29 3c 2f 62 3e 2e 3c 2f  >substr()</b>.</
c250: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
c260: 67 20 69 6e 20 74 68 65 20 3c 62 3e 73 71 6c 69  g in the <b>sqli
c270: 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f  te</b> shell pro
c280: 67 72 61 6d 20 74 68 61 74 20 77 61 73 20 63 61  gram that was ca
c290: 75 73 69 6e 67 0a 20 20 20 20 61 20 63 6f 72 65  using.    a core
c2a0: 64 75 6d 70 20 77 68 65 6e 20 74 68 65 20 6f 75  dump when the ou
c2b0: 74 70 75 74 20 6d 6f 64 65 20 77 61 73 20 22 63  tput mode was "c
c2c0: 6f 6c 75 6d 6e 22 20 61 6e 64 20 74 68 65 20 66  olumn" and the f
c2d0: 69 72 73 74 20 72 6f 77 0a 20 20 20 20 6f 66 20  irst row.    of 
c2e0: 64 61 74 61 20 63 6f 6e 74 61 69 6e 65 64 20 61  data contained a
c2f0: 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   NULL.</li>.}..c
c300: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 32 32  hng {2000 Aug 22
c310: 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 33 29   (Version 1.0.3)
c320: 7d 20 7b 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73  } {.<li>In the s
c330: 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 70 72 69  qlite shell, pri
c340: 6e 74 20 74 68 65 20 22 44 61 74 61 62 61 73 65  nt the "Database
c350: 20 6f 70 65 6e 65 64 20 52 45 41 44 20 4f 4e 4c   opened READ ONL
c360: 59 22 20 6d 65 73 73 61 67 65 0a 20 20 20 20 74  Y" message.    t
c370: 6f 20 73 74 64 65 72 72 20 69 6e 73 74 65 61 64  o stderr instead
c380: 20 6f 66 20 73 74 64 6f 75 74 2e 3c 2f 6c 69 3e   of stdout.</li>
c390: 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 71 6c 69  .<li>In the sqli
c3a0: 74 65 20 73 68 65 6c 6c 2c 20 6e 6f 77 20 70 72  te shell, now pr
c3b0: 69 6e 74 20 74 68 65 20 76 65 72 73 69 6f 6e 20  int the version 
c3c0: 6e 75 6d 62 65 72 20 6f 6e 20 69 6e 69 74 69 61  number on initia
c3d0: 6c 20 73 74 61 72 74 75 70 2e 3c 2f 6c 69 3e 0a  l startup.</li>.
c3e0: 3c 6c 69 3e 41 64 64 20 74 68 65 20 3c 62 3e 73  <li>Add the <b>s
c3f0: 71 6c 69 74 65 5f 76 65 72 73 69 6f 6e 5b 5d 3c  qlite_version[]<
c400: 2f 62 3e 20 73 74 72 69 6e 67 20 63 6f 6e 73 74  /b> string const
c410: 61 6e 74 20 74 6f 20 74 68 65 20 6c 69 62 72 61  ant to the libra
c420: 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  ry</li>.<li>Make
c430: 66 69 6c 65 20 75 70 64 61 74 65 73 3c 2f 6c 69  file updates</li
c440: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 69  >.<li>Bug fix: i
c450: 6e 63 6f 72 72 65 63 74 20 56 44 42 45 20 63 6f  ncorrect VDBE co
c460: 64 65 20 77 61 73 20 62 65 69 6e 67 20 67 65 6e  de was being gen
c470: 65 72 61 74 65 64 20 66 6f 72 20 74 68 65 20 66  erated for the f
c480: 6f 6c 6c 6f 77 69 6e 67 0a 20 20 20 20 63 69 72  ollowing.    cir
c490: 63 75 6d 73 74 61 6e 63 65 3a 20 61 20 71 75 65  cumstance: a que
c4a0: 72 79 20 6f 6e 20 61 6e 20 69 6e 64 65 78 65 64  ry on an indexed
c4b0: 20 74 61 62 6c 65 20 63 6f 6e 74 61 69 6e 69 6e   table containin
c4c0: 67 20 61 20 57 48 45 52 45 20 63 6c 61 75 73 65  g a WHERE clause
c4d0: 20 77 69 74 68 0a 20 20 20 20 61 6e 20 49 4e 20   with.    an IN 
c4e0: 6f 70 65 72 61 74 6f 72 20 74 68 61 74 20 68 61  operator that ha
c4f0: 64 20 61 20 73 75 62 71 75 65 72 79 20 6f 6e 20  d a subquery on 
c500: 69 74 73 20 72 69 67 68 74 2d 68 61 6e 64 20 73  its right-hand s
c510: 69 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ide.</li>.}..chn
c520: 67 20 7b 32 30 30 30 20 41 75 67 20 31 38 20 28  g {2000 Aug 18 (
c530: 56 65 72 73 69 6f 6e 20 31 2e 30 2e 31 29 7d 20  Version 1.0.1)} 
c540: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
c550: 69 6e 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65  in the configure
c560: 20 73 63 72 69 70 74 2e 3c 2f 6c 69 3e 0a 3c 6c   script.</li>.<l
c570: 69 3e 4d 69 6e 6f 72 20 72 65 76 69 73 69 6f 6e  i>Minor revision
c580: 73 20 74 6f 20 74 68 65 20 77 65 62 73 69 74 65  s to the website
c590: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c5a0: 32 30 30 30 20 41 75 67 20 31 37 20 28 56 65 72  2000 Aug 17 (Ver
c5b0: 73 69 6f 6e 20 31 2e 30 29 7d 20 7b 0a 3c 6c 69  sion 1.0)} {.<li
c5c0: 3e 43 68 61 6e 67 65 20 74 68 65 20 3c 62 3e 73  >Change the <b>s
c5d0: 71 6c 69 74 65 3c 2f 62 3e 20 70 72 6f 67 72 61  qlite</b> progra
c5e0: 6d 20 73 6f 20 74 68 61 74 20 69 74 20 63 61 6e  m so that it can
c5f0: 20 72 65 61 64 0a 20 20 20 20 64 61 74 61 62 61   read.    databa
c600: 73 65 73 20 66 6f 72 20 77 68 69 63 68 20 69 74  ses for which it
c610: 20 6c 61 63 6b 73 20 77 72 69 74 65 20 70 65 72   lacks write per
c620: 6d 69 73 73 69 6f 6e 2e 20 20 28 49 74 20 75 73  mission.  (It us
c630: 65 64 20 74 6f 0a 20 20 20 20 72 65 66 75 73 65  ed to.    refuse
c640: 20 61 6c 6c 20 61 63 63 65 73 73 20 69 66 20 69   all access if i
c650: 74 20 63 6f 75 6c 64 20 6e 6f 74 20 77 72 69 74  t could not writ
c660: 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  e.)</li>.}..chng
c670: 20 7b 32 30 30 30 20 41 75 67 20 39 7d 20 7b 0a   {2000 Aug 9} {.
c680: 3c 6c 69 3e 54 72 65 61 74 20 63 61 72 72 69 61  <li>Treat carria
c690: 67 65 20 72 65 74 75 72 6e 73 20 61 73 20 77 68  ge returns as wh
c6a0: 69 74 65 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a  ite space.</li>.
c6b0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
c6c0: 67 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  g 8} {.<li>Added
c6d0: 20 70 61 74 74 65 72 6e 20 6d 61 74 63 68 69 6e   pattern matchin
c6e0: 67 20 74 6f 20 74 68 65 20 22 2e 74 61 62 6c 65  g to the ".table
c6f0: 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65  " command in the
c700: 20 22 73 71 6c 69 74 65 22 0a 63 6f 6d 6d 61 6e   "sqlite".comman
c710: 64 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a  d shell.</li>.}.
c720: 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
c730: 34 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  4} {.<li>Documen
c740: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
c750: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 22 62  li>.<li>Added "b
c760: 75 73 79 22 20 61 6e 64 20 22 74 69 6d 65 6f 75  usy" and "timeou
c770: 74 22 20 6d 65 74 68 6f 64 73 20 74 6f 20 74 68  t" methods to th
c780: 65 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65 3c  e Tcl interface<
c790: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c7a0: 30 30 20 41 75 67 20 33 7d 20 7b 0a 3c 6c 69 3e  00 Aug 3} {.<li>
c7b0: 46 69 6c 65 20 66 6f 72 6d 61 74 20 76 65 72 73  File format vers
c7c0: 69 6f 6e 20 6e 75 6d 62 65 72 20 77 61 73 20 62  ion number was b
c7d0: 65 69 6e 67 20 73 74 6f 72 65 64 20 69 6e 20 73  eing stored in s
c7e0: 71 6c 69 74 65 5f 6d 61 73 74 65 72 2e 74 63 6c  qlite_master.tcl
c7f0: 0a 20 20 20 20 6d 75 6c 74 69 70 6c 65 20 74 69  .    multiple ti
c800: 6d 65 73 2e 20 54 68 69 73 20 77 61 73 20 68 61  mes. This was ha
c810: 72 6d 6c 65 73 73 2c 20 62 75 74 20 75 6e 6e 65  rmless, but unne
c820: 63 65 73 73 61 72 79 2e 20 49 74 20 69 73 20 6e  cessary. It is n
c830: 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d  ow fixed.</li>.}
c840: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
c850: 20 32 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 66 69   2} {.<li>The fi
c860: 6c 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 69 6e  le format for in
c870: 64 69 63 65 73 20 77 61 73 20 63 68 61 6e 67 65  dices was change
c880: 64 20 73 6c 69 67 68 74 6c 79 20 69 6e 20 6f 72  d slightly in or
c890: 64 65 72 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20  der to work.    
c8a0: 61 72 6f 75 6e 64 20 61 6e 20 69 6e 65 66 66 69  around an ineffi
c8b0: 63 69 65 6e 63 79 20 74 68 61 74 20 63 61 6e 20  ciency that can 
c8c0: 73 6f 6d 65 74 69 6d 65 73 20 63 6f 6d 65 20 75  sometimes come u
c8d0: 70 20 77 69 74 68 20 47 44 42 4d 20 77 68 65 6e  p with GDBM when
c8e0: 0a 20 20 20 20 74 68 65 72 65 20 61 72 65 20 6c  .    there are l
c8f0: 61 72 67 65 20 69 6e 64 69 63 65 73 20 68 61 76  arge indices hav
c900: 69 6e 67 20 6d 61 6e 79 20 65 6e 74 72 69 65 73  ing many entries
c910: 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6b   with the same k
c920: 65 79 2e 0a 20 20 20 20 3c 66 6f 6e 74 20 63 6f  ey..    <font co
c930: 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 20 49 6e 63  lor="red">** Inc
c940: 6f 6d 70 61 74 69 62 6c 65 20 43 68 61 6e 67 65  ompatible Change
c950: 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f 6c 69 3e 0a   **</font></li>.
c960: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
c970: 67 20 31 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70  g 1} {.<li>The p
c980: 61 72 73 65 72 27 73 20 73 74 61 63 6b 20 77 61  arser's stack wa
c990: 73 20 6f 76 65 72 66 6c 6f 77 69 6e 67 20 6f 6e  s overflowing on
c9a0: 20 61 20 76 65 72 79 20 6c 6f 6e 67 20 55 50 44   a very long UPD
c9b0: 41 54 45 20 73 74 61 74 65 6d 65 6e 74 2e 0a 20  ATE statement.. 
c9c0: 20 20 20 54 68 69 73 20 69 73 20 6e 6f 77 20 66     This is now f
c9d0: 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixed.</li>.}..ch
c9e0: 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 33 31  ng {2000 July 31
c9f0: 7d 20 7b 0a 3c 6c 69 3e 46 69 6e 69 73 68 20 74  } {.<li>Finish t
ca00: 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64 62 65  he <a href="vdbe
ca10: 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75 74 6f  .html">VDBE tuto
ca20: 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 3c  rial</a>.</li>.<
ca30: 6c 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65 6e  li>Added documen
ca40: 74 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d 70 69 6c  tation on compil
ca50: 69 6e 67 20 74 6f 20 57 69 6e 64 6f 77 73 4e 54  ing to WindowsNT
ca60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
ca70: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70   configuration p
ca80: 72 6f 67 72 61 6d 20 66 6f 72 20 57 69 6e 64 6f  rogram for Windo
ca90: 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  wsNT.</li>.<li>F
caa0: 69 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69  ix a configurati
cab0: 6f 6e 20 70 72 6f 62 6c 65 6d 20 66 6f 72 20 48  on problem for H
cac0: 50 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  PUX.</li>.}..chn
cad0: 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32 39 7d  g {2000 July 29}
cae0: 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 6c 61   {.<li>Better la
caf0: 62 65 6c 73 20 6f 6e 20 63 6f 6c 75 6d 6e 20 6e  bels on column n
cb00: 61 6d 65 73 20 6f 66 20 74 68 65 20 72 65 73 75  ames of the resu
cb10: 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  lt.</li>.}..chng
cb20: 20 7b 32 30 30 30 20 4a 75 6c 79 20 32 38 7d 20   {2000 July 28} 
cb30: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
cb40: 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 68  <b>sqlite_busy_h
cb50: 61 6e 64 6c 65 72 28 29 3c 2f 62 3e 20 0a 20 20  andler()</b> .  
cb60: 20 20 61 6e 64 20 3c 62 3e 73 71 6c 69 74 65 5f    and <b>sqlite_
cb70: 62 75 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f  busy_timeout()</
cb80: 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  b> interface.</l
cb90: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
cba0: 20 4a 75 6e 65 20 32 33 7d 20 7b 0a 3c 6c 69 3e   June 23} {.<li>
cbb0: 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20 74 68  Begin writing th
cbc0: 65 20 3c 61 20 68 72 65 66 3d 22 76 64 62 65 2e  e <a href="vdbe.
cbd0: 68 74 6d 6c 22 3e 56 44 42 45 20 74 75 74 6f 72  html">VDBE tutor
cbe0: 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 7d 0a  ial</a>.</li>.}.
cbf0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
cc00: 20 32 31 7d 20 7b 0a 3c 6c 69 3e 43 6c 65 61 6e   21} {.<li>Clean
cc10: 20 75 70 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64   up comments and
cc20: 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 2e   variable names.
cc30: 20 20 43 68 61 6e 67 65 73 20 74 6f 20 64 6f 63    Changes to doc
cc40: 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20  umentation..    
cc50: 4e 6f 20 66 75 6e 63 74 69 6f 6e 61 6c 20 63 68  No functional ch
cc60: 61 6e 67 65 73 20 74 6f 20 74 68 65 20 63 6f 64  anges to the cod
cc70: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
cc80: 7b 32 30 30 30 20 4a 75 6e 65 20 31 39 7d 20 7b  {2000 June 19} {
cc90: 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 20 6e 61 6d 65  .<li>Column name
cca0: 73 20 69 6e 20 55 50 44 41 54 45 20 73 74 61 74  s in UPDATE stat
ccb0: 65 6d 65 6e 74 73 20 77 65 72 65 20 63 61 73 65  ements were case
ccc0: 20 73 65 6e 73 69 74 69 76 65 2e 0a 20 20 20 20   sensitive..    
ccd0: 54 68 69 73 20 6d 69 73 74 61 6b 65 20 68 61 73  This mistake has
cce0: 20 6e 6f 77 20 62 65 65 6e 20 66 69 78 65 64 2e   now been fixed.
ccf0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
cd00: 30 30 30 20 4a 75 6e 65 20 31 36 7d 20 7b 0a 3c  000 June 16} {.<
cd10: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 63 6f 6e  li>Added the con
cd20: 63 61 74 65 6e 61 74 65 20 73 74 72 69 6e 67 20  catenate string 
cd30: 6f 70 65 72 61 74 6f 72 20 28 7c 7c 29 3c 2f 6c  operator (||)</l
cd40: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
cd50: 20 4a 75 6e 65 20 31 32 7d 20 7b 0a 3c 6c 69 3e   June 12} {.<li>
cd60: 41 64 64 65 64 20 74 68 65 20 66 63 6e 74 28 29  Added the fcnt()
cd70: 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74 68 65   function to the
cd80: 20 53 51 4c 20 69 6e 74 65 72 70 72 65 74 65 72   SQL interpreter
cd90: 2e 20 20 54 68 65 20 66 63 6e 74 28 29 20 66 75  .  The fcnt() fu
cda0: 6e 63 74 69 6f 6e 0a 20 20 20 20 72 65 74 75 72  nction.    retur
cdb0: 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66  ns the number of
cdc0: 20 64 61 74 61 62 61 73 65 20 22 46 65 74 63 68   database "Fetch
cdd0: 22 20 6f 70 65 72 61 74 69 6f 6e 73 20 74 68 61  " operations tha
cde0: 74 20 68 61 76 65 20 6f 63 63 75 72 72 65 64 2e  t have occurred.
cdf0: 0a 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69  .    This functi
ce00: 6f 6e 20 69 73 20 64 65 73 69 67 6e 65 64 20 66  on is designed f
ce10: 6f 72 20 75 73 65 20 69 6e 20 74 65 73 74 20 73  or use in test s
ce20: 63 72 69 70 74 73 20 74 6f 20 76 65 72 69 66 79  cripts to verify
ce30: 20 74 68 61 74 0a 20 20 20 20 71 75 65 72 69 65   that.    querie
ce40: 73 20 61 72 65 20 65 66 66 69 63 69 65 6e 74 20  s are efficient 
ce50: 61 6e 64 20 61 70 70 72 6f 70 72 69 61 74 65 6c  and appropriatel
ce60: 79 20 6f 70 74 69 6d 69 7a 65 64 2e 20 20 46 63  y optimized.  Fc
ce70: 6e 74 28 29 20 68 61 73 20 6e 6f 20 6f 74 68 65  nt() has no othe
ce80: 72 0a 20 20 20 20 75 73 65 66 75 6c 20 70 75 72  r.    useful pur
ce90: 70 6f 73 65 2c 20 61 73 20 66 61 72 20 61 73 20  pose, as far as 
cea0: 49 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69  I know.</li>.<li
ceb0: 3e 41 64 64 65 64 20 61 20 62 75 6e 63 68 20 6d  >Added a bunch m
cec0: 6f 72 65 20 74 65 73 74 73 20 74 68 61 74 20 74  ore tests that t
ced0: 61 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f 66  ake advantage of
cee0: 20 74 68 65 20 6e 65 77 20 66 63 6e 74 28 29 20   the new fcnt() 
cef0: 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 54 68  function..    Th
cf00: 65 20 6e 65 77 20 74 65 73 74 73 20 64 69 64 20  e new tests did 
cf10: 6e 6f 74 20 75 6e 63 6f 76 65 72 20 61 6e 79 20  not uncover any 
cf20: 6e 65 77 20 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c  new problems.</l
cf30: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
cf40: 20 4a 75 6e 65 20 38 7d 20 7b 0a 3c 6c 69 3e 41   June 8} {.<li>A
cf50: 64 64 65 64 20 6c 6f 74 73 20 6f 66 20 6e 65 77  dded lots of new
cf60: 20 74 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e   test cases</li>
cf70: 0a 3c 6c 69 3e 46 69 78 20 61 20 66 65 77 20 62  .<li>Fix a few b
cf80: 75 67 73 20 64 69 73 63 6f 76 65 72 65 64 20 77  ugs discovered w
cf90: 68 69 6c 65 20 61 64 64 69 6e 67 20 74 65 73 74  hile adding test
cfa0: 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e   cases</li>.<li>
cfb0: 42 65 67 69 6e 20 61 64 64 69 6e 67 20 6c 6f 74  Begin adding lot
cfc0: 73 20 6f 66 20 6e 65 77 20 64 6f 63 75 6d 65 6e  s of new documen
cfd0: 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tation</li>.}..c
cfe0: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 36  hng {2000 June 6
cff0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 63 6f  } {.<li>Added co
d000: 6d 70 6f 75 6e 64 20 73 65 6c 65 63 74 20 6f 70  mpound select op
d010: 65 72 61 74 6f 72 73 3a 20 3c 42 3e 55 4e 49 4f  erators: <B>UNIO
d020: 4e 3c 2f 62 3e 2c 20 3c 62 3e 55 4e 49 4f 4e 20  N</b>, <b>UNION 
d030: 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e 49 4e 54 45  ALL</B>,.<b>INTE
d040: 52 53 45 43 54 3c 2f 62 3e 2c 20 61 6e 64 20 3c  RSECT</b>, and <
d050: 62 3e 45 58 43 45 50 54 3c 2f 62 3e 3c 2f 6c 69  b>EXCEPT</b></li
d060: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
d070: 6f 72 74 20 66 6f 72 20 75 73 69 6e 67 20 3c 62  ort for using <b
d080: 3e 28 53 45 4c 45 43 54 20 2e 2e 2e 29 3c 2f 62  >(SELECT ...)</b
d090: 3e 20 77 69 74 68 69 6e 20 65 78 70 72 65 73 73  > within express
d0a0: 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ions</li>.<li>Ad
d0b0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
d0c0: 3c 62 3e 49 4e 3c 2f 62 3e 20 61 6e 64 20 3c 62  <b>IN</b> and <b
d0d0: 3e 42 45 54 57 45 45 4e 3c 2f 62 3e 20 6f 70 65  >BETWEEN</b> ope
d0e0: 72 61 74 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rators</li>.<li>
d0f0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
d100: 72 20 3c 62 3e 47 52 4f 55 50 20 42 59 3c 2f 62  r <b>GROUP BY</b
d110: 3e 20 61 6e 64 20 3c 62 3e 48 41 56 49 4e 47 3c  > and <b>HAVING<
d120: 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 55 4c  /b></li>.<li>NUL
d130: 4c 20 76 61 6c 75 65 73 20 61 72 65 20 6e 6f 77  L values are now
d140: 20 72 65 70 6f 72 74 65 64 20 74 6f 20 74 68 65   reported to the
d150: 20 63 61 6c 6c 62 61 63 6b 20 61 73 20 61 20 4e   callback as a N
d160: 55 4c 4c 20 70 6f 69 6e 74 65 72 0a 20 20 20 20  ULL pointer.    
d170: 72 61 74 68 65 72 20 74 68 61 6e 20 61 6e 20 65  rather than an e
d180: 6d 70 74 79 20 73 74 72 69 6e 67 2e 3c 2f 6c 69  mpty string.</li
d190: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
d1a0: 4a 75 6e 65 20 33 7d 20 7b 0a 3c 6c 69 3e 41 64  June 3} {.<li>Ad
d1b0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
d1c0: 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 6f  default values o
d1d0: 6e 20 63 6f 6c 75 6d 6e 73 20 6f 66 20 61 20 74  n columns of a t
d1e0: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  able.</li>.<li>I
d1f0: 6d 70 72 6f 76 65 64 20 74 65 73 74 20 63 6f 76  mproved test cov
d200: 65 72 61 67 65 2e 20 20 46 69 78 65 64 20 61 20  erage.  Fixed a 
d210: 66 65 77 20 6f 62 73 63 75 72 65 20 62 75 67 73  few obscure bugs
d220: 20 66 6f 75 6e 64 20 62 79 20 74 68 65 0a 69 6d   found by the.im
d230: 70 72 6f 76 65 64 20 74 65 73 74 73 2e 3c 2f 6c  proved tests.</l
d240: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
d250: 20 4a 75 6e 65 20 32 7d 20 7b 0a 3c 6c 69 3e 41   June 2} {.<li>A
d260: 6c 6c 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  ll database file
d270: 73 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 65 64  s to be modified
d280: 20 62 79 20 61 6e 20 55 50 44 41 54 45 2c 20 49   by an UPDATE, I
d290: 4e 53 45 52 54 20 6f 72 20 44 45 4c 45 54 45 20  NSERT or DELETE 
d2a0: 61 72 65 20 0a 6e 6f 77 20 6c 6f 63 6b 65 64 20  are .now locked 
d2b0: 62 65 66 6f 72 65 20 61 6e 79 20 63 68 61 6e 67  before any chang
d2c0: 65 73 20 61 72 65 20 6d 61 64 65 20 74 6f 20 61  es are made to a
d2d0: 6e 79 20 66 69 6c 65 73 2e 20 20 0a 54 68 69 73  ny files.  .This
d2e0: 20 6d 61 6b 65 73 20 69 74 20 73 61 66 65 20 28   makes it safe (
d2f0: 49 20 74 68 69 6e 6b 29 20 74 6f 20 61 63 63 65  I think) to acce
d300: 73 73 0a 74 68 65 20 73 61 6d 65 20 64 61 74 61  ss.the same data
d310: 62 61 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75  base simultaneou
d320: 73 6c 79 20 66 72 6f 6d 20 6d 75 6c 74 69 70 6c  sly from multipl
d330: 65 20 70 72 6f 63 65 73 73 65 73 2e 3c 2f 6c 69  e processes.</li
d340: 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f 64 65 20 61  >.<li>The code a
d350: 70 70 65 61 72 73 20 73 74 61 62 6c 65 20 73 6f  ppears stable so
d360: 20 77 65 20 61 72 65 20 6e 6f 77 20 63 61 6c 6c   we are now call
d370: 69 6e 67 20 69 74 20 22 62 65 74 61 22 2e 3c 2f  ing it "beta".</
d380: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
d390: 30 20 4a 75 6e 65 20 31 7d 20 7b 0a 3c 6c 69 3e  0 June 1} {.<li>
d3a0: 42 65 74 74 65 72 20 73 75 70 70 6f 72 74 20 66  Better support f
d3b0: 6f 72 20 66 69 6c 65 20 6c 6f 63 6b 69 6e 67 20  or file locking 
d3c0: 73 6f 20 74 68 61 74 20 74 77 6f 20 6f 72 20 6d  so that two or m
d3d0: 6f 72 65 20 70 72 6f 63 65 73 73 65 73 20 0a 28  ore processes .(
d3e0: 6f 72 20 74 68 72 65 61 64 73 29 0a 63 61 6e 20  or threads).can 
d3f0: 61 63 63 65 73 73 20 74 68 65 20 73 61 6d 65 20  access the same 
d400: 64 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74 61  database simulta
d410: 6e 65 6f 75 73 6c 79 2e 20 20 4d 6f 72 65 20 77  neously.  More w
d420: 6f 72 6b 20 6e 65 65 64 65 64 20 69 6e 0a 74 68  ork needed in.th
d430: 69 73 20 61 72 65 61 2c 20 74 68 6f 75 67 68 2e  is area, though.
d440: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
d450: 30 30 30 20 4d 61 79 20 33 31 7d 20 7b 0a 3c 6c  000 May 31} {.<l
d460: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
d470: 66 6f 72 20 61 67 67 72 65 67 61 74 65 20 66 75  for aggregate fu
d480: 6e 63 74 69 6f 6e 73 20 28 45 78 3a 20 3c 62 3e  nctions (Ex: <b>
d490: 43 4f 55 4e 54 28 2a 29 3c 2f 62 3e 2c 20 3c 62  COUNT(*)</b>, <b
d4a0: 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f 62 3e 29 0a 74  >MIN(...)</b>).t
d4b0: 6f 20 74 68 65 20 53 45 4c 45 43 54 20 73 74 61  o the SELECT sta
d4c0: 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tement.</li>.<li
d4d0: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
d4e0: 6f 72 20 3c 42 3e 53 45 4c 45 43 54 20 44 49 53  or <B>SELECT DIS
d4f0: 54 49 4e 43 54 20 2e 2e 2e 3c 2f 42 3e 3c 2f 6c  TINCT ...</B></l
d500: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
d510: 20 4d 61 79 20 33 30 7d 20 7b 0a 3c 6c 69 3e 41   May 30} {.<li>A
d520: 64 64 65 64 20 74 68 65 20 3c 62 3e 4c 49 4b 45  dded the <b>LIKE
d530: 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 2e 3c 2f  </b> operator.</
d540: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20  li>.<li>Added a 
d550: 3c 62 3e 47 4c 4f 42 3c 2f 62 3e 20 6f 70 65 72  <b>GLOB</b> oper
d560: 61 74 6f 72 3a 20 73 69 6d 69 6c 61 72 20 74 6f  ator: similar to
d570: 20 3c 42 3e 4c 49 4b 45 3c 2f 42 3e 20 0a 62 75   <B>LIKE</B> .bu
d580: 74 20 69 74 20 75 73 65 73 20 55 6e 69 78 20 73  t it uses Unix s
d590: 68 65 6c 6c 20 67 6c 6f 62 62 69 6e 67 20 77 69  hell globbing wi
d5a0: 6c 64 63 61 72 64 73 20 69 6e 73 74 65 61 64 20  ldcards instead 
d5b0: 6f 66 20 74 68 65 20 27 25 27 20 0a 61 6e 64 20  of the '%' .and 
d5c0: 27 5f 27 20 77 69 6c 64 63 61 72 64 73 20 6f 66  '_' wildcards of
d5d0: 20 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41   SQL.</li>.<li>A
d5e0: 64 64 65 64 20 74 68 65 20 3c 42 3e 43 4f 50 59  dded the <B>COPY
d5f0: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 70 61 74  </b> command pat
d600: 74 65 72 6e 65 64 20 61 66 74 65 72 20 0a 3c 61  terned after .<a
d610: 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77   href="http://ww
d620: 77 2e 70 6f 73 74 67 72 65 73 71 6c 2e 6f 72 67  w.postgresql.org
d630: 2f 22 3e 50 6f 73 74 67 72 65 53 51 4c 3c 2f 61  /">PostgreSQL</a
d640: 3e 20 73 6f 20 74 68 61 74 20 53 51 4c 69 74 65  > so that SQLite
d650: 0a 63 61 6e 20 6e 6f 77 20 72 65 61 64 20 74 68  .can now read th
d660: 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20  e output of the 
d670: 3c 62 3e 70 67 5f 64 75 6d 70 3c 2f 62 3e 20 64  <b>pg_dump</b> d
d680: 61 74 61 62 61 73 65 20 64 75 6d 70 20 75 74 69  atabase dump uti
d690: 6c 69 74 79 0a 6f 66 20 50 6f 73 74 67 72 65 53  lity.of PostgreS
d6a0: 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  QL.</li>.<li>Add
d6b0: 65 64 20 61 20 3c 42 3e 56 41 43 55 55 4d 3c 2f  ed a <B>VACUUM</
d6c0: 42 3e 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20  B> command that 
d6d0: 74 68 61 74 20 63 61 6c 6c 73 20 74 68 65 20 0a  that calls the .
d6e0: 3c 62 3e 67 64 62 6d 5f 72 65 6f 72 67 61 6e 69  <b>gdbm_reorgani
d6f0: 7a 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f  ze()</b> functio
d700: 6e 20 6f 6e 20 74 68 65 20 75 6e 64 65 72 6c 79  n on the underly
d710: 69 6e 67 20 64 61 74 61 62 61 73 65 0a 66 69 6c  ing database.fil
d720: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 64  es.</li>.<li>And
d730: 20 6d 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20   many, many bug 
d740: 66 69 78 65 73 2e 2e 2e 3c 2f 6c 69 3e 0a 7d 0a  fixes...</li>.}.
d750: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20  .chng {2000 May 
d760: 32 39 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61  29} {.<li>Initia
d770: 6c 20 50 75 62 6c 69 63 20 52 65 6c 65 61 73 65  l Public Release
d780: 20 6f 66 20 41 6c 70 68 61 20 63 6f 64 65 3c 2f   of Alpha code</
d790: 6c 69 3e 0a 7d 0a 0a 70 75 74 73 20 7b 0a 3c 2f  li>.}..puts {.</
d7a0: 44 4c 3e 0a 7d 0a 66 6f 6f 74 65 72 20 7b 24 49  DL>.}.footer {$I
d7b0: 64 3a 7d 0a                                      d:}.