/ Hex Artifact Content
Login

Artifact b7c98ed1e76aeb852295e9d2800f3586a5e090e9:


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 31 20 28 33 2e 32 2e 33 29 7d  gust 21 (3.2.3)}
0260: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70   {.<li>Added sup
0270: 70 6f 72 74 20 66 6f 72 20 74 68 65 20 43 41 53  port for the CAS
0280: 54 20 6f 70 65 72 61 74 6f 72 3c 2f 6c 69 3e 0a  T operator</li>.
0290: 3c 6c 69 3e 54 63 6c 20 69 6e 74 65 72 66 61 63  <li>Tcl interfac
02a0: 65 20 61 6c 6c 6f 77 73 20 42 4c 4f 42 20 76 61  e allows BLOB va
02b0: 6c 75 65 73 20 74 6f 20 62 65 20 74 72 61 6e 73  lues to be trans
02c0: 66 65 72 72 65 64 20 74 6f 20 75 73 65 72 2d 64  ferred to user-d
02d0: 65 66 69 6e 65 64 0a 66 75 6e 63 74 69 6f 6e 73  efined.functions
02e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
02f0: 74 68 65 20 22 74 72 61 6e 73 61 63 74 69 6f 6e  the "transaction
0300: 22 20 6d 65 74 68 6f 64 20 74 6f 20 74 68 65 20  " method to the 
0310: 54 63 6c 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c  Tcl interface</l
0320: 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68 65  i>.<li>Allow the
0330: 20 44 45 46 41 55 4c 54 20 76 61 6c 75 65 20 6f   DEFAULT value o
0340: 66 20 61 20 63 6f 6c 75 6d 6e 20 74 6f 20 63 61  f a column to ca
0350: 6c 6c 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61  ll functions tha
0360: 74 20 68 61 76 65 20 63 6f 6e 73 74 61 6e 74 0a  t have constant.
0370: 6f 70 65 72 61 6e 64 73 3c 2f 6c 69 3e 0a 3c 6c  operands</li>.<l
0380: 69 3e 41 64 64 65 64 20 74 68 65 20 41 4e 41 4c  i>Added the ANAL
0390: 59 5a 45 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20  YZE command for 
03a0: 67 61 74 68 65 72 69 6e 67 20 73 74 61 74 69 73  gathering statis
03b0: 74 69 63 73 20 6f 6e 20 69 6e 64 69 63 65 73 20  tics on indices 
03c0: 61 6e 64 0a 75 73 69 6e 67 20 74 68 6f 73 65 20  and.using those 
03d0: 73 74 61 74 69 73 74 69 63 73 20 77 68 65 6e 20  statistics when 
03e0: 70 69 63 6b 69 6e 67 20 61 6e 20 69 6e 64 65 78  picking an index
03f0: 20 69 6e 20 74 68 65 20 6f 70 74 69 6d 69 7a 65   in the optimize
0400: 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  r</li>.<li>Remov
0410: 65 20 74 68 65 20 6c 69 6d 69 74 20 28 66 6f 72  e the limit (for
0420: 6d 65 72 6c 79 20 31 30 30 29 20 6f 6e 20 74 68  merly 100) on th
0430: 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 65 72 6d  e number of term
0440: 73 20 69 6e 20 74 68 65 0a 57 48 45 52 45 20 63  s in the.WHERE c
0450: 6c 61 75 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  lause</li>.<li>T
0460: 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69  he right-hand si
0470: 64 65 20 6f 66 20 74 68 65 20 49 4e 20 6f 70 65  de of the IN ope
0480: 72 61 74 6f 72 20 63 61 6e 20 6e 6f 77 20 62 65  rator can now be
0490: 20 61 20 6c 69 73 74 20 6f 66 20 65 78 70 72 65   a list of expre
04a0: 73 73 69 6f 6e 73 0a 69 6e 73 74 65 61 64 20 6f  ssions.instead o
04b0: 66 20 6a 75 73 74 20 61 20 6c 69 73 74 20 6f 66  f just a list of
04c0: 20 63 6f 6e 73 74 61 6e 74 73 3c 2f 6c 69 3e 0a   constants</li>.
04d0: 3c 6c 69 3e 52 65 77 6f 72 6b 20 74 68 65 20 6f  <li>Rework the o
04e0: 70 74 69 6d 69 7a 65 72 20 73 6f 20 74 68 61 74  ptimizer so that
04f0: 20 69 74 20 69 73 20 61 62 6c 65 20 74 6f 20 6d   it is able to m
0500: 61 6b 65 20 62 65 74 74 65 72 20 75 73 65 20 6f  ake better use o
0510: 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c  f indices</li>.<
0520: 6c 69 3e 54 68 65 20 6f 72 64 65 72 20 6f 66 20  li>The order of 
0530: 74 61 62 6c 65 73 20 69 6e 20 61 20 6a 6f 69 6e  tables in a join
0540: 20 69 73 20 61 64 6a 75 73 74 65 64 20 61 75 74   is adjusted aut
0550: 6f 6d 61 74 69 63 61 6c 6c 79 20 74 6f 20 6d 61  omatically to ma
0560: 6b 65 0a 62 65 74 74 65 72 20 75 73 65 20 6f 66  ke.better use of
0570: 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c   indices</li>.<l
0580: 69 3e 54 68 65 20 49 4e 20 6f 70 65 72 61 74 6f  i>The IN operato
0590: 72 20 69 73 20 6e 6f 77 20 61 20 63 61 6e 64 69  r is now a candi
05a0: 64 61 74 65 20 66 6f 72 20 6f 70 74 69 6d 69 7a  date for optimiz
05b0: 61 74 69 6f 6e 20 65 76 65 6e 20 69 66 20 74 68  ation even if th
05c0: 65 20 6c 65 66 74 2d 68 61 6e 64 0a 73 69 64 65  e left-hand.side
05d0: 20 69 73 20 6e 6f 74 20 74 68 65 20 6c 65 66 74   is not the left
05e0: 2d 6d 6f 73 74 20 74 65 72 6d 20 6f 66 20 74 68  -most term of th
05f0: 65 20 69 6e 64 65 78 2e 20 20 4d 75 6c 74 69 70  e index.  Multip
0600: 6c 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 73 20  le IN operators 
0610: 63 61 6e 20 62 65 0a 75 73 65 64 20 77 69 74 68  can be.used with
0620: 20 74 68 65 20 73 61 6d 65 20 69 6e 64 65 78 2e   the same index.
0630: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 48 45 52 45 20  </li>.<li>WHERE 
0640: 63 6c 61 75 73 65 20 65 78 70 72 65 73 73 69 6f  clause expressio
0650: 6e 73 20 75 73 69 6e 67 20 42 45 54 57 45 45 4e  ns using BETWEEN
0660: 20 61 6e 64 20 4f 52 20 61 72 65 20 6e 6f 77 20   and OR are now 
0670: 63 61 6e 64 69 64 61 74 65 73 0a 66 6f 72 20 6f  candidates.for o
0680: 70 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f 6c 69 3e  ptimization</li>
0690: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22  .<li>Added the "
06a0: 63 61 73 65 5f 73 65 6e 73 69 74 69 76 65 5f 6c  case_sensitive_l
06b0: 69 6b 65 22 20 70 72 61 67 6d 61 20 61 6e 64 20  ike" pragma and 
06c0: 74 68 65 20 53 51 4c 49 54 45 5f 43 41 53 45 5f  the SQLITE_CASE_
06d0: 53 45 4e 53 49 54 49 56 45 5f 4c 49 4b 45 0a 63  SENSITIVE_LIKE.c
06e0: 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69  ompile-time opti
06f0: 6f 6e 20 74 6f 20 73 65 74 20 69 74 73 20 64 65  on to set its de
0700: 66 61 75 6c 74 20 76 61 6c 75 65 20 74 6f 20 22  fault value to "
0710: 6f 6e 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73  on".</li>.<li>Us
0720: 65 20 69 6e 64 69 63 65 73 20 74 6f 20 68 65 6c  e indices to hel
0730: 70 20 77 69 74 68 20 47 4c 4f 42 20 65 78 70 72  p with GLOB expr
0740: 65 73 73 69 6f 6e 73 20 61 6e 64 20 4c 49 4b 45  essions and LIKE
0750: 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 6f   expressions too
0760: 0a 77 68 65 6e 20 74 68 65 20 63 61 73 65 5f 73  .when the case_s
0770: 65 6e 73 69 74 69 76 65 5f 6c 69 6b 65 20 70 72  ensitive_like pr
0780: 61 67 6d 61 20 69 73 20 65 6e 61 62 6c 65 64 3c  agma is enabled<
0790: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
07a0: 75 70 70 6f 72 74 20 66 6f 72 20 67 72 61 76 65  upport for grave
07b0: 2d 61 63 63 65 6e 74 20 71 75 6f 74 69 6e 67 20  -accent quoting 
07c0: 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74  for compatibilit
07d0: 79 20 77 69 74 68 20 4d 79 53 51 4c 3c 2f 6c 69  y with MySQL</li
07e0: 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 74  >.<li>Improved t
07f0: 65 73 74 20 63 6f 76 65 72 61 67 65 3c 2f 6c 69  est coverage</li
0800: 3e 0a 3c 6c 69 3e 44 6f 7a 65 6e 73 20 6f 66 20  >.<li>Dozens of 
0810: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c  minor bug fixes<
0820: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
0830: 30 35 20 4a 75 6e 65 20 31 33 20 28 33 2e 32 2e  05 June 13 (3.2.
0840: 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  2)} {.<li>Added 
0850: 74 68 65 20 73 71 6c 69 74 65 33 5f 64 62 5f 68  the sqlite3_db_h
0860: 61 6e 64 6c 65 28 29 20 41 50 49 3c 2f 6c 69 3e  andle() API</li>
0870: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73  .<li>Added the s
0880: 71 6c 69 74 65 33 5f 67 65 74 5f 61 75 74 6f 63  qlite3_get_autoc
0890: 6f 6d 6d 69 74 28 29 20 41 50 49 3c 2f 6c 69 3e  ommit() API</li>
08a0: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 52 45 47  .<li>Added a REG
08b0: 45 58 50 20 6f 70 65 72 61 74 6f 72 20 74 6f 20  EXP operator to 
08c0: 74 68 65 20 70 61 72 73 65 72 2e 20 20 54 68 65  the parser.  The
08d0: 72 65 20 69 73 20 6e 6f 20 66 75 6e 63 74 69 6f  re is no functio
08e0: 6e 20 74 6f 20 62 61 63 6b 0a 75 70 20 74 68 69  n to back.up thi
08f0: 73 20 6f 70 65 72 61 74 6f 72 20 69 6e 20 74 68  s operator in th
0900: 65 20 73 74 61 6e 64 61 72 64 20 62 75 69 6c 64  e standard build
0910: 20 62 75 74 20 75 73 65 72 73 20 63 61 6e 20 61   but users can a
0920: 64 64 20 74 68 65 69 72 20 6f 77 6e 20 75 73 69  dd their own usi
0930: 6e 67 0a 73 71 6c 69 74 65 33 5f 63 72 65 61 74  ng.sqlite3_creat
0940: 65 5f 66 75 6e 63 74 69 6f 6e 28 29 3c 2f 6c 69  e_function()</li
0950: 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70 72  >.<li>Speed impr
0960: 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20 6c 69 62  ovements and lib
0970: 72 61 72 79 20 66 6f 6f 74 70 72 69 6e 74 20 72  rary footprint r
0980: 65 64 75 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  eductions.</li>.
0990: 3c 6c 69 3e 46 69 78 20 62 79 74 65 20 61 6c 69  <li>Fix byte ali
09a0: 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 73 20  gnment problems 
09b0: 6f 6e 20 36 34 2d 62 69 74 20 61 72 63 68 69 74  on 64-bit archit
09c0: 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ectures.</li>.<l
09d0: 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20 6d 69 6e  i>Many, many min
09e0: 6f 72 20 62 75 67 20 66 69 78 65 73 20 61 6e 64  or bug fixes and
09f0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75   documentation u
0a00: 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  pdates.</li>.}..
0a10: 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68  chng {2005 March
0a20: 20 32 39 20 28 33 2e 32 2e 31 29 7d 20 7b 0a 3c   29 (3.2.1)} {.<
0a30: 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72 79 20  li>Fix a memory 
0a40: 61 6c 6c 6f 63 61 74 69 6f 6e 20 65 72 72 6f 72  allocation error
0a50: 20 69 6e 20 74 68 65 20 6e 65 77 20 41 44 44 20   in the new ADD 
0a60: 43 4f 4c 55 4d 4e 20 63 6f 6d 6d 65 6e 74 2e 3c  COLUMN comment.<
0a70: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  /li>.<li>Documen
0a80: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
0a90: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
0aa0: 35 20 4d 61 72 63 68 20 32 31 20 28 33 2e 32 2e  5 March 21 (3.2.
0ab0: 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  0)} {.<li>Added 
0ac0: 73 75 70 70 6f 72 74 20 66 6f 72 20 41 4c 54 45  support for ALTE
0ad0: 52 20 54 41 42 4c 45 20 41 44 44 20 43 4f 4c 55  R TABLE ADD COLU
0ae0: 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  MN.</li>.<li>Add
0af0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74  ed support for t
0b00: 68 65 20 22 54 22 20 73 65 70 61 72 61 74 6f 72  he "T" separator
0b10: 20 69 6e 20 49 53 4f 2d 38 36 30 31 20 64 61 74   in ISO-8601 dat
0b20: 65 2f 74 69 6d 65 20 73 74 72 69 6e 67 73 2e 3c  e/time strings.<
0b30: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
0b40: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 79  d support for Cy
0b50: 67 77 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  gwin.</li>.<li>N
0b60: 75 6d 65 72 6f 75 73 20 62 75 67 20 66 69 78 65  umerous bug fixe
0b70: 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74  s and documentat
0b80: 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69  ion updates.</li
0b90: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
0ba0: 4d 61 72 63 68 20 31 36 20 28 33 2e 31 2e 36 29  March 16 (3.1.6)
0bb0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
0bc0: 67 20 74 68 61 74 20 63 6f 75 6c 64 20 63 61 75  g that could cau
0bd0: 73 65 20 64 61 74 61 62 61 73 65 20 63 6f 72 72  se database corr
0be0: 75 70 74 69 6f 6e 20 77 68 65 6e 20 69 6e 73 65  uption when inse
0bf0: 72 74 69 6e 67 0a 20 20 20 20 72 65 63 6f 72 64  rting.    record
0c00: 20 69 6e 74 6f 20 74 61 62 6c 65 73 20 77 69 74   into tables wit
0c10: 68 20 61 72 6f 75 6e 64 20 31 32 35 20 63 6f 6c  h around 125 col
0c20: 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73  umns.</li>.<li>s
0c30: 71 6c 69 74 65 33 5f 73 74 65 70 28 29 20 69 73  qlite3_step() is
0c40: 20 6e 6f 77 20 6d 75 63 68 20 6d 6f 72 65 20 6c   now much more l
0c50: 69 6b 65 6c 79 20 74 6f 20 69 6e 76 6f 6b 65 20  ikely to invoke 
0c60: 74 68 65 20 62 75 73 79 20 68 61 6e 64 6c 65 72  the busy handler
0c70: 0a 20 20 20 20 61 6e 64 20 6c 65 73 73 20 6c 69  .    and less li
0c80: 6b 65 6c 79 20 74 6f 20 72 65 74 75 72 6e 20 53  kely to return S
0c90: 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c 69 3e  QLITE_BUSY.</li>
0ca0: 0a 3c 6c 69 3e 46 69 78 20 6d 65 6d 6f 72 79 20  .<li>Fix memory 
0cb0: 6c 65 61 6b 73 20 74 68 61 74 20 75 73 65 64 20  leaks that used 
0cc0: 74 6f 20 6f 63 63 75 72 20 61 66 74 65 72 20 61  to occur after a
0cd0: 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 75 72   malloc() failur
0ce0: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
0cf0: 7b 32 30 30 35 20 4d 61 72 63 68 20 31 31 20 28  {2005 March 11 (
0d00: 33 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 54 68  3.1.5)} {.<li>Th
0d10: 65 20 69 6f 63 74 6c 20 6f 6e 20 4f 53 2d 58 20  e ioctl on OS-X 
0d20: 74 6f 20 63 6f 6e 74 72 6f 6c 20 73 79 6e 63 69  to control synci
0d30: 6e 67 20 74 6f 20 64 69 73 6b 20 69 73 20 46 5f  ng to disk is F_
0d40: 46 55 4c 4c 46 53 59 4e 43 2c 0a 20 20 20 20 6e  FULLFSYNC,.    n
0d50: 6f 74 20 46 5f 46 55 4c 4c 53 59 4e 43 2e 20 20  ot F_FULLSYNC.  
0d60: 54 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c  The previous rel
0d70: 65 61 73 65 20 68 61 64 20 69 74 20 77 72 6f 6e  ease had it wron
0d80: 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  g.</li>.}..chng 
0d90: 7b 32 30 30 35 20 4d 61 72 63 68 20 31 30 20 28  {2005 March 10 (
0da0: 33 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69  3.1.4)} {.<li>Fi
0db0: 78 20 61 20 62 75 67 20 69 6e 20 61 75 74 6f 76  x a bug in autov
0dc0: 61 63 75 75 6d 20 74 68 61 74 20 63 6f 75 6c 64  acuum that could
0dd0: 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20   cause database 
0de0: 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 0a 61 20  corruption if.a 
0df0: 43 52 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e  CREATE UNIQUE IN
0e00: 44 45 58 20 66 61 69 6c 73 20 62 65 63 61 75 73  DEX fails becaus
0e10: 65 20 6f 66 20 61 20 63 6f 6e 73 74 72 61 69 6e  e of a constrain
0e20: 74 20 76 69 6f 6c 61 74 69 6f 6e 2e 0a 54 68 69  t violation..Thi
0e30: 73 20 70 72 6f 62 6c 65 6d 20 6f 6e 6c 79 20 6f  s problem only o
0e40: 63 63 75 72 73 20 69 66 20 74 68 65 20 6e 65 77  ccurs if the new
0e50: 20 61 75 74 6f 76 61 63 75 75 6d 20 66 65 61 74   autovacuum feat
0e60: 75 72 65 20 69 6e 74 72 6f 64 75 63 65 64 20 69  ure introduced i
0e70: 6e 0a 76 65 72 73 69 6f 6e 20 33 2e 31 20 69 73  n.version 3.1 is
0e80: 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e   turned on.</li>
0e90: 0a 3c 6c 69 3e 54 68 65 20 46 5f 46 55 4c 4c 53  .<li>The F_FULLS
0ea0: 59 4e 43 20 69 6f 63 74 6c 20 28 63 75 72 72 65  YNC ioctl (curre
0eb0: 6e 74 6c 79 20 6f 6e 6c 79 20 73 75 70 70 6f 72  ntly only suppor
0ec0: 74 65 64 20 6f 6e 20 4f 53 2d 58 29 20 69 73 20  ted on OS-X) is 
0ed0: 64 69 73 61 62 6c 65 64 0a 69 66 20 74 68 65 20  disabled.if the 
0ee0: 73 79 6e 63 68 72 6f 6e 6f 75 73 20 70 72 61 67  synchronous prag
0ef0: 6d 61 20 69 73 20 73 65 74 20 74 6f 20 73 6f 6d  ma is set to som
0f00: 65 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61  ething other tha
0f10: 6e 20 22 66 75 6c 6c 22 2e 3c 2f 6c 69 3e 0a 3c  n "full".</li>.<
0f20: 6c 69 3e 41 64 64 20 61 64 64 69 74 69 6f 6e 61  li>Add additiona
0f30: 6c 20 66 6f 72 77 61 72 64 20 63 6f 6d 70 61 74  l forward compat
0f40: 69 62 69 6c 69 74 79 20 74 6f 20 74 68 65 20 66  ibility to the f
0f50: 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 33 2e  uture version 3.
0f60: 32 20 64 61 74 61 62 61 73 65 20 0a 66 69 6c 65  2 database .file
0f70: 20 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c 6c   format.</li>.<l
0f80: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 57  i>Fix a bug in W
0f90: 48 45 52 45 20 63 6c 61 75 73 65 73 20 6f 66 20  HERE clauses of 
0fa0: 74 68 65 20 66 6f 72 6d 20 28 72 6f 77 69 64 3c  the form (rowid<
0fb0: 27 32 27 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65  '2')</li>.<li>Ne
0fc0: 77 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 2e 2e  w SQLITE_OMIT_..
0fd0: 2e 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f  . compile-time o
0fe0: 70 74 69 6f 6e 73 20 61 64 64 65 64 3c 2f 6c 69  ptions added</li
0ff0: 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74 6f  >.<li>Updates to
1000: 20 74 68 65 20 6d 61 6e 20 70 61 67 65 3c 2f 6c   the man page</l
1010: 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68  i>.<li>Remove th
1020: 65 20 75 73 65 20 6f 66 20 73 74 72 63 61 73 65  e use of strcase
1030: 63 6d 70 28 29 20 66 72 6f 6d 20 74 68 65 20 73  cmp() from the s
1040: 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 69  hell</li>.<li>Wi
1050: 6e 64 6f 77 73 20 44 4c 4c 20 65 78 70 6f 72 74  ndows DLL export
1060: 73 20 73 79 6d 62 6f 6c 73 20 54 63 6c 73 71 6c  s symbols Tclsql
1070: 69 74 65 5f 49 6e 69 74 20 61 6e 64 20 53 71 6c  ite_Init and Sql
1080: 69 74 65 5f 49 6e 69 74 3c 2f 6c 69 3e 0a 7d 0a  ite_Init</li>.}.
1090: 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72  .chng {2005 Febr
10a0: 75 61 72 79 20 31 39 20 28 33 2e 31 2e 33 29 7d  uary 19 (3.1.3)}
10b0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f   {.<li>Fix a pro
10c0: 62 6c 65 6d 20 77 69 74 68 20 56 41 43 55 55 4d  blem with VACUUM
10d0: 20 6f 6e 20 64 61 74 61 62 61 73 65 73 20 66 72   on databases fr
10e0: 6f 6d 20 77 68 69 63 68 20 74 61 62 6c 65 73 20  om which tables 
10f0: 63 6f 6e 74 61 69 6e 69 6e 67 0a 41 55 54 4f 49  containing.AUTOI
1100: 4e 43 52 45 4d 45 4e 54 20 68 61 76 65 20 62 65  NCREMENT have be
1110: 65 6e 20 64 72 6f 70 70 65 64 2e 3c 2f 6c 69 3e  en dropped.</li>
1120: 0a 3c 6c 69 3e 41 64 64 20 66 6f 72 77 61 72 64  .<li>Add forward
1130: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 74   compatibility t
1140: 6f 20 74 68 65 20 66 75 74 75 72 65 20 76 65 72  o the future ver
1150: 73 69 6f 6e 20 33 2e 32 20 64 61 74 61 62 61 73  sion 3.2 databas
1160: 65 20 66 69 6c 65 0a 66 6f 72 6d 61 74 2e 3c 2f  e file.format.</
1170: 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74  li>.<li>Document
1180: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c  ation updates</l
1190: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
11a0: 20 46 65 62 72 75 61 72 79 20 31 35 20 28 33 2e   February 15 (3.
11b0: 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  1.2)} {.<li>Fix 
11c0: 61 20 62 75 67 20 74 68 61 74 20 63 61 6e 20 6c  a bug that can l
11d0: 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65 20  ead to database 
11e0: 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 74 68  corruption if th
11f0: 65 72 65 20 61 72 65 20 74 77 6f 0a 6f 70 65 6e  ere are two.open
1200: 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f 20   connections to 
1210: 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73  the same databas
1220: 65 20 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65 63  e and one connec
1230: 74 69 6f 6e 20 64 6f 65 73 20 61 20 56 41 43 55  tion does a VACU
1240: 55 4d 0a 61 6e 64 20 74 68 65 20 73 65 63 6f 6e  UM.and the secon
1250: 64 20 6d 61 6b 65 73 20 73 6f 6d 65 20 63 68 61  d makes some cha
1260: 6e 67 65 20 74 6f 20 74 68 65 20 64 61 74 61 62  nge to the datab
1270: 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c  ase.</li>.<li>Al
1280: 6c 6f 77 20 22 3f 22 20 70 61 72 61 6d 65 74 65  low "?" paramete
1290: 72 73 20 69 6e 20 74 68 65 20 4c 49 4d 49 54 20  rs in the LIMIT 
12a0: 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  clause.</li>.<li
12b0: 3e 46 69 78 20 56 41 43 55 55 4d 20 73 6f 20 74  >Fix VACUUM so t
12c0: 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77 69 74  hat it works wit
12d0: 68 20 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2e  h AUTOINCREMENT.
12e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
12f0: 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69  race condition i
1300: 6e 20 41 55 54 4f 56 41 43 55 55 4d 20 74 68 61  n AUTOVACUUM tha
1310: 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 63 6f  t can lead to co
1320: 72 72 75 70 74 20 64 61 74 61 62 61 73 65 73 3c  rrupt databases<
1330: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 61 20 6e  /li>.<li>Add a n
1340: 75 6d 65 72 69 63 20 76 65 72 73 69 6f 6e 20 6e  umeric version n
1350: 75 6d 62 65 72 20 74 6f 20 74 68 65 20 73 71 6c  umber to the sql
1360: 69 74 65 33 2e 68 20 69 6e 63 6c 75 64 65 20 66  ite3.h include f
1370: 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  ile.</li>.<li>Ot
1380: 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69  her minor bug fi
1390: 78 65 73 20 61 6e 64 20 70 65 72 66 6f 72 6d 61  xes and performa
13a0: 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  nce enhancements
13b0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
13c0: 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31 35  2005 February 15
13d0: 20 28 32 2e 38 2e 31 36 29 7d 20 7b 0a 3c 6c 69   (2.8.16)} {.<li
13e0: 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20  >Fix a bug that 
13f0: 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74 61  can lead to data
1400: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
1410: 69 66 20 74 68 65 72 65 20 61 72 65 20 74 77 6f  if there are two
1420: 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e  .open connection
1430: 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20 64 61  s to the same da
1440: 74 61 62 61 73 65 20 61 6e 64 20 6f 6e 65 20 63  tabase and one c
1450: 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f 65 73 20 61  onnection does a
1460: 20 56 41 43 55 55 4d 0a 61 6e 64 20 74 68 65 20   VACUUM.and the 
1470: 73 65 63 6f 6e 64 20 6d 61 6b 65 73 20 73 6f 6d  second makes som
1480: 65 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65 20  e change to the 
1490: 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c  database.</li>.<
14a0: 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61 6e  li>Correctly han
14b0: 64 6c 65 20 71 75 6f 74 65 64 20 6e 61 6d 65 73  dle quoted names
14c0: 20 69 6e 20 43 52 45 41 54 45 20 49 4e 44 45 58   in CREATE INDEX
14d0: 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69   statements.</li
14e0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6e 61 6d 69  >.<li>Fix a nami
14f0: 6e 67 20 63 6f 6e 66 6c 69 63 74 20 62 65 74 77  ng conflict betw
1500: 65 65 6e 20 73 71 6c 69 74 65 2e 68 20 61 6e 64  een sqlite.h and
1510: 20 73 71 6c 69 74 65 33 2e 68 2e 3c 2f 6c 69 3e   sqlite3.h.</li>
1520: 0a 3c 6c 69 3e 41 76 6f 69 64 20 65 78 63 65 73  .<li>Avoid exces
1530: 73 20 68 65 61 70 20 75 73 61 67 65 20 77 68 65  s heap usage whe
1540: 6e 20 63 6f 70 79 69 6e 67 20 65 78 70 72 65 73  n copying expres
1550: 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  sions.</li>.<li>
1560: 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20  Other minor bug 
1570: 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixes.</li>.}..c
1580: 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75 61  hng {2005 Februa
1590: 72 79 20 31 20 28 33 2e 31 2e 31 20 42 45 54 41  ry 1 (3.1.1 BETA
15a0: 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74  )} {.<li>Automat
15b0: 69 63 20 63 61 63 68 69 6e 67 20 6f 66 20 70 72  ic caching of pr
15c0: 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e 74  epared statement
15d0: 73 20 69 6e 20 74 68 65 20 54 43 4c 20 69 6e 74  s in the TCL int
15e0: 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  erface</li>.<li>
15f0: 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41 43  ATTACH and DETAC
1600: 48 20 61 73 20 77 65 6c 6c 20 61 73 20 73 6f 6d  H as well as som
1610: 65 20 6f 74 68 65 72 20 6f 70 65 72 61 74 69 6f  e other operatio
1620: 6e 73 20 63 61 75 73 65 20 65 78 69 73 74 69 6e  ns cause existin
1630: 67 0a 20 20 20 20 70 72 65 70 61 72 65 64 20 73  g.    prepared s
1640: 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 65 78 70  tatements to exp
1650: 69 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75  ire.</li>.<li>Nu
1660: 6d 65 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75  merious minor bu
1670: 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a  g fixes</li>.}..
1680: 63 68 6e 67 20 7b 32 30 30 35 20 4a 61 6e 75 61  chng {2005 Janua
1690: 72 79 20 32 31 20 28 33 2e 31 2e 30 20 41 4c 50  ry 21 (3.1.0 ALP
16a0: 48 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 76  HA)} {.<li>Autov
16b0: 61 63 75 75 6d 20 73 75 70 70 6f 72 74 20 61 64  acuum support ad
16c0: 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 55 52  ded</li>.<li>CUR
16d0: 52 45 4e 54 5f 54 49 4d 45 2c 20 43 55 52 52 45  RENT_TIME, CURRE
16e0: 4e 54 5f 44 41 54 45 2c 20 61 6e 64 20 43 55 52  NT_DATE, and CUR
16f0: 52 45 4e 54 5f 54 49 4d 45 53 54 41 4d 50 20 61  RENT_TIMESTAMP a
1700: 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75  dded</li>.<li>Su
1710: 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 45 58  pport for the EX
1720: 49 53 54 53 20 63 6c 61 75 73 65 20 61 64 64 65  ISTS clause adde
1730: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70  d.</li>.<li>Supp
1740: 6f 72 74 20 66 6f 72 20 63 6f 72 72 65 6c 61 74  ort for correlat
1750: 65 64 20 73 75 62 71 75 65 72 69 65 73 20 61 64  ed subqueries ad
1760: 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ded.</li>.<li>Ad
1770: 64 65 64 20 74 68 65 20 45 53 43 41 50 45 20 63  ded the ESCAPE c
1780: 6c 61 75 73 65 20 6f 6e 20 74 68 65 20 4c 49 4b  lause on the LIK
1790: 45 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e  E operator.</li>
17a0: 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72  .<li>Support for
17b0: 20 41 4c 54 45 52 20 54 41 42 4c 45 20 2e 2e 2e   ALTER TABLE ...
17c0: 20 52 45 4e 41 4d 45 20 54 41 42 4c 45 20 2e 2e   RENAME TABLE ..
17d0: 2e 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69  . added</li>.<li
17e0: 3e 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 20 6b  >AUTOINCREMENT k
17f0: 65 79 77 6f 72 64 20 73 75 70 70 6f 72 74 65 64  eyword supported
1800: 20 6f 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d   on INTEGER PRIM
1810: 41 52 59 20 4b 45 59 3c 2f 6c 69 3e 0a 3c 6c 69  ARY KEY</li>.<li
1820: 3e 4d 61 6e 79 20 53 51 4c 49 54 45 5f 4f 4d 49  >Many SQLITE_OMI
1830: 54 5f 20 6d 61 63 72 6f 73 20 69 6e 73 65 72 74  T_ macros insert
1840: 73 20 74 6f 20 6f 6d 69 74 20 66 65 61 74 75 72  s to omit featur
1850: 65 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69  es at compile-ti
1860: 6d 65 0a 20 20 20 20 61 6e 64 20 72 65 64 75 63  me.    and reduc
1870: 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 66 6f  e the library fo
1880: 6f 74 70 72 69 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c  otprint.</li>.<l
1890: 69 3e 54 68 65 20 52 45 49 4e 44 45 58 20 63 6f  i>The REINDEX co
18a0: 6d 6d 61 6e 64 20 77 61 73 20 61 64 64 65 64 2e  mmand was added.
18b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 65 6e  </li>.<li>The en
18c0: 67 69 6e 65 20 6e 6f 20 6c 6f 6e 67 65 72 20 63  gine no longer c
18d0: 6f 6e 73 75 6c 74 73 20 74 68 65 20 6d 61 69 6e  onsults the main
18e0: 20 74 61 62 6c 65 20 69 66 20 69 74 20 63 61 6e   table if it can
18f0: 20 67 65 74 0a 20 20 20 20 61 6c 6c 20 74 68 65   get.    all the
1900: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 74 20   information it 
1910: 6e 65 65 64 73 20 66 72 6f 6d 20 61 6e 20 69 6e  needs from an in
1920: 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  dex.</li>.<li>Ma
1930: 6e 79 20 6e 75 69 73 61 6e 63 65 20 62 75 67 73  ny nuisance bugs
1940: 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   fixed.</li>.}..
1950: 63 68 6e 67 20 7b 32 30 30 34 20 4f 63 74 6f 62  chng {2004 Octob
1960: 65 72 20 31 31 20 28 33 2e 30 2e 38 29 7d 20 7b  er 11 (3.0.8)} {
1970: 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72 74  .<li>Add support
1980: 20 66 6f 72 20 44 45 46 45 52 52 45 44 2c 20 49   for DEFERRED, I
1990: 4d 4d 45 44 49 41 54 45 2c 20 61 6e 64 20 45 58  MMEDIATE, and EX
19a0: 43 4c 55 53 49 56 45 20 74 72 61 6e 73 61 63 74  CLUSIVE transact
19b0: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ions.</li>.<li>A
19c0: 6c 6c 6f 77 20 6e 65 77 20 75 73 65 72 2d 64 65  llow new user-de
19d0: 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 20  fined functions 
19e0: 74 6f 20 62 65 20 63 72 65 61 74 65 64 20 77 68  to be created wh
19f0: 65 6e 20 74 68 65 72 65 20 61 72 65 0a 61 6c 72  en there are.alr
1a00: 65 61 64 79 20 6f 6e 65 20 6f 72 20 6d 6f 72 65  eady one or more
1a10: 20 70 72 65 63 6f 6d 70 69 6c 65 64 20 53 51 4c   precompiled SQL
1a20: 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 6c 69 3e   statements.<li>
1a30: 0a 3c 6c 69 3e 46 69 78 20 70 6f 72 74 61 62 69  .<li>Fix portabi
1a40: 6c 69 74 79 20 70 72 6f 62 6c 65 6d 73 20 66 6f  lity problems fo
1a50: 72 20 4d 69 6e 67 77 2f 4d 53 59 53 2e 3c 2f 6c  r Mingw/MSYS.</l
1a60: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 79 74  i>.<li>Fix a byt
1a70: 65 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f 62  e alignment prob
1a80: 6c 65 6d 20 6f 6e 20 36 34 2d 62 69 74 20 53 70  lem on 64-bit Sp
1a90: 61 72 63 20 6d 61 63 68 69 6e 65 73 2e 3c 2f 6c  arc machines.</l
1aa0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 22  i>.<li>Fix the "
1ab0: 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d 61 6e 64  .import" command
1ac0: 20 6f 66 20 74 68 65 20 73 68 65 6c 6c 20 73 6f   of the shell so
1ad0: 20 74 68 61 74 20 69 74 20 69 67 6e 6f 72 65 73   that it ignores
1ae0: 20 5c 72 0a 63 68 61 72 61 63 74 65 72 73 20 61   \r.characters a
1af0: 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6c 69 6e  t the end of lin
1b00: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  es.</li>.<li>The
1b10: 20 22 63 73 76 22 20 6d 6f 64 65 20 6f 70 74 69   "csv" mode opti
1b20: 6f 6e 20 69 6e 20 74 68 65 20 73 68 65 6c 6c 20  on in the shell 
1b30: 70 75 74 73 20 73 74 72 69 6e 67 73 20 69 6e 73  puts strings ins
1b40: 69 64 65 20 64 6f 75 62 6c 65 2d 71 75 6f 74 65  ide double-quote
1b50: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
1b60: 74 79 70 6f 73 20 69 6e 20 64 6f 63 75 6d 65 6e  typos in documen
1b70: 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tation.</li>.<li
1b80: 3e 43 6f 6e 76 65 72 74 20 61 72 72 61 79 20 63  >Convert array c
1b90: 6f 6e 73 74 61 6e 74 73 20 69 6e 20 74 68 65 20  onstants in the 
1ba0: 63 6f 64 65 20 74 6f 20 68 61 76 65 20 74 79 70  code to have typ
1bb0: 65 20 22 63 6f 6e 73 74 22 2e 3c 2f 6c 69 3e 0a  e "const".</li>.
1bc0: 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73 20 63 6f 64  <li>Numerous cod
1bd0: 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2c  e optimizations,
1be0: 20 73 70 65 63 69 61 6c 6c 79 20 6f 70 74 69 6d   specially optim
1bf0: 69 7a 61 74 69 6f 6e 73 20 64 65 73 69 67 6e 65  izations designe
1c00: 64 20 74 6f 0a 6d 61 6b 65 20 74 68 65 20 63 6f  d to.make the co
1c10: 64 65 20 66 6f 6f 74 70 72 69 6e 74 20 73 6d 61  de footprint sma
1c20: 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ller.</li>.}..ch
1c30: 6e 67 20 7b 32 30 30 34 20 53 65 70 74 65 6d 62  ng {2004 Septemb
1c40: 65 72 20 31 38 20 28 33 2e 30 2e 37 29 7d 20 7b  er 18 (3.0.7)} {
1c50: 0a 3c 6c 69 3e 54 68 65 20 42 54 72 65 65 20 6d  .<li>The BTree m
1c60: 6f 64 75 6c 65 20 61 6c 6c 6f 63 61 74 65 73 20  odule allocates 
1c70: 6c 61 72 67 65 20 62 75 66 66 65 72 73 20 75 73  large buffers us
1c80: 69 6e 67 20 6d 61 6c 6c 6f 63 28 29 20 69 6e 73  ing malloc() ins
1c90: 74 65 61 64 20 6f 66 0a 20 20 20 20 6f 66 66 20  tead of.    off 
1ca0: 6f 66 20 74 68 65 20 73 74 61 63 6b 2c 20 69 6e  of the stack, in
1cb0: 20 6f 72 64 65 72 20 74 6f 20 70 6c 61 79 20 62   order to play b
1cc0: 65 74 74 65 72 20 6f 6e 20 6d 61 63 68 69 6e 65  etter on machine
1cd0: 73 20 77 69 74 68 20 6c 69 6d 69 74 65 64 0a 20  s with limited. 
1ce0: 20 20 20 73 74 61 63 6b 20 73 70 61 63 65 2e 3c     stack space.<
1cf0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 6e  /li>.<li>Fixed n
1d00: 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63 74 73 20  aming conflicts 
1d10: 73 6f 20 74 68 61 74 20 76 65 72 73 69 6f 6e 73  so that versions
1d20: 20 32 2e 38 20 61 6e 64 20 33 2e 30 20 63 61 6e   2.8 and 3.0 can
1d30: 20 62 65 0a 20 20 20 20 6c 69 6e 6b 65 64 20 61   be.    linked a
1d40: 6e 64 20 75 73 65 64 20 74 6f 67 65 74 68 65 72  nd used together
1d50: 20 69 6e 20 74 68 65 20 73 61 6d 65 20 41 4e 53   in the same ANS
1d60: 49 2d 43 20 73 6f 75 72 63 65 20 66 69 6c 65 2e  I-C source file.
1d70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 69 6e  </li>.<li>New in
1d80: 74 65 72 66 61 63 65 3a 20 73 71 6c 69 74 65 33  terface: sqlite3
1d90: 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f  _bind_parameter_
1da0: 69 6e 64 65 78 28 29 3c 2f 6c 69 3e 0a 3c 6c 69  index()</li>.<li
1db0: 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72  >Add support for
1dc0: 20 77 69 6c 64 63 61 72 64 20 70 61 72 61 6d 65   wildcard parame
1dd0: 74 65 72 73 20 6f 66 20 74 68 65 20 66 6f 72 6d  ters of the form
1de0: 3a 20 22 3f 6e 6e 6e 22 3c 2f 6c 69 3e 0a 3c 6c  : "?nnn"</li>.<l
1df0: 69 3e 46 69 78 20 70 72 6f 62 6c 65 6d 73 20 66  i>Fix problems f
1e00: 6f 75 6e 64 20 6f 6e 20 36 34 2d 62 69 74 20 73  ound on 64-bit s
1e10: 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ystems.</li>.<li
1e20: 3e 52 65 6d 6f 76 65 64 20 65 6e 63 6f 64 65 2e  >Removed encode.
1e30: 63 20 66 69 6c 65 20 28 63 6f 6e 74 61 69 6e 69  c file (containi
1e40: 6e 67 20 75 6e 75 73 65 64 20 72 6f 75 74 69 6e  ng unused routin
1e50: 65 73 29 20 66 72 6f 6d 20 74 68 65 20 0a 20 20  es) from the .  
1e60: 20 20 76 65 72 73 69 6f 6e 20 33 2e 30 20 73 6f    version 3.0 so
1e70: 75 72 63 65 20 74 72 65 65 2e 3c 2f 6c 69 3e 0a  urce tree.</li>.
1e80: 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33 5f  <li>The sqlite3_
1e90: 74 72 61 63 65 28 29 20 63 61 6c 6c 62 61 63 6b  trace() callback
1ea0: 73 20 6f 63 63 75 72 20 62 65 66 6f 72 65 20 65  s occur before e
1eb0: 61 63 68 20 73 74 61 74 65 6d 65 6e 74 0a 20 20  ach statement.  
1ec0: 20 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 6e    is executed, n
1ed0: 6f 74 20 77 68 65 6e 20 74 68 65 20 73 74 61 74  ot when the stat
1ee0: 65 6d 65 6e 74 20 69 73 20 63 6f 6d 70 69 6c 65  ement is compile
1ef0: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  d.</li>.<li>Make
1f00: 66 69 6c 65 20 75 70 64 61 74 65 73 20 61 6e 64  file updates and
1f10: 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 62   miscellaneous b
1f20: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
1f30: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 53 65 70  ..chng {2004 Sep
1f40: 74 65 6d 62 65 72 20 30 32 20 28 33 2e 30 2e 36  tember 02 (3.0.6
1f50: 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 42 65   beta)} {.<li>Be
1f60: 74 74 65 72 20 64 65 74 65 63 74 69 6f 6e 20 61  tter detection a
1f70: 6e 64 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 63  nd handling of c
1f80: 6f 72 72 75 70 74 20 64 61 74 61 62 61 73 65 20  orrupt database 
1f90: 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  files.</li>.<li>
1fa0: 54 68 65 20 73 71 6c 69 74 65 33 5f 73 74 65 70  The sqlite3_step
1fb0: 28 29 20 69 6e 74 65 72 66 61 63 65 20 72 65 74  () interface ret
1fc0: 75 72 6e 73 20 53 51 4c 49 54 45 5f 42 55 53 59  urns SQLITE_BUSY
1fd0: 20 69 66 20 69 74 20 69 73 20 75 6e 61 62 6c 65   if it is unable
1fe0: 0a 20 20 20 20 74 6f 20 63 6f 6d 6d 69 74 20 61  .    to commit a
1ff0: 20 63 68 61 6e 67 65 20 62 65 63 61 75 73 65 20   change because 
2000: 6f 66 20 61 20 6c 6f 63 6b 3c 2f 6c 69 3e 0a 3c  of a lock</li>.<
2010: 6c 69 3e 43 6f 6d 62 69 6e 65 20 74 68 65 20 69  li>Combine the i
2020: 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 6f  mplementations o
2030: 66 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f 42 20  f LIKE and GLOB 
2040: 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 20 20  into a single.  
2050: 20 20 70 61 74 74 65 72 6e 2d 6d 61 74 63 68 69    pattern-matchi
2060: 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 2e 3c 2f  ng subroutine.</
2070: 6c 69 3e 0a 3c 6c 69 3e 4d 69 73 63 65 6c 6c 61  li>.<li>Miscella
2080: 6e 65 6f 75 73 20 63 6f 64 65 20 73 69 7a 65 20  neous code size 
2090: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 6e  optimizations an
20a0: 64 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e  d bug fixes</li>
20b0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 41  .}..chng {2004 A
20c0: 75 67 75 73 74 20 32 39 20 28 33 2e 30 2e 35 20  ugust 29 (3.0.5 
20d0: 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 53 75 70  beta)} {.<li>Sup
20e0: 70 6f 72 74 20 66 6f 72 20 22 3a 41 41 41 22 20  port for ":AAA" 
20f0: 73 74 79 6c 65 20 62 69 6e 64 20 70 61 72 61 6d  style bind param
2100: 65 74 65 72 20 6e 61 6d 65 73 2e 3c 2f 6c 69 3e  eter names.</li>
2110: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e  .<li>Added the n
2120: 65 77 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f  ew sqlite3_bind_
2130: 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65 28 29  parameter_name()
2140: 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e   interface.</li>
2150: 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72  .<li>Support for
2160: 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20 6e 61   TCL variable na
2170: 6d 65 73 20 65 6d 62 65 64 64 65 64 20 69 6e 20  mes embedded in 
2180: 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 20 69  SQL statements i
2190: 6e 20 74 68 65 0a 20 20 20 20 54 43 4c 20 62 69  n the.    TCL bi
21a0: 6e 64 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ndings.</li>.<li
21b0: 3e 54 68 65 20 54 43 4c 20 62 69 6e 64 69 6e 67  >The TCL binding
21c0: 73 20 74 72 61 6e 73 66 65 72 20 64 61 74 61 20  s transfer data 
21d0: 77 69 74 68 6f 75 74 20 6e 65 63 65 73 73 61 72  without necessar
21e0: 69 6c 79 20 64 6f 69 6e 67 20 61 20 63 6f 6e 76  ily doing a conv
21f0: 65 72 73 69 6f 6e 0a 20 20 20 20 74 6f 20 61 20  ersion.    to a 
2200: 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69  string.</li>.<li
2210: 3e 54 68 65 20 64 61 74 61 62 61 73 65 20 66 6f  >The database fo
2220: 72 20 54 45 4d 50 20 74 61 62 6c 65 73 20 69 73  r TEMP tables is
2230: 20 6e 6f 74 20 63 72 65 61 74 65 64 20 75 6e 74   not created unt
2240: 69 6c 20 69 74 20 69 73 20 6e 65 65 64 65 64 2e  il it is needed.
2250: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68  </li>.<li>Add th
2260: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65  e ability to spe
2270: 63 69 66 79 20 61 6e 20 61 6c 74 65 72 6e 61 74  cify an alternat
2280: 69 76 65 20 74 65 6d 70 6f 72 61 72 79 20 66 69  ive temporary fi
2290: 6c 65 20 64 69 72 65 63 74 6f 72 79 0a 20 20 20  le directory.   
22a0: 20 75 73 69 6e 67 20 74 68 65 20 22 73 71 6c 69   using the "sqli
22b0: 74 65 5f 74 65 6d 70 5f 64 69 72 65 63 74 6f 72  te_temp_director
22c0: 79 22 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62  y" global variab
22d0: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20 63  le.</li>.<li>A c
22e0: 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69  ompile-time opti
22f0: 6f 6e 20 28 53 51 4c 49 54 45 5f 42 55 53 59 5f  on (SQLITE_BUSY_
2300: 52 45 53 45 52 56 45 44 5f 4c 4f 43 4b 29 20 63  RESERVED_LOCK) c
2310: 61 75 73 65 73 20 74 68 65 20 62 75 73 79 0a 20  auses the busy. 
2320: 20 20 20 68 61 6e 64 6c 65 72 20 74 6f 20 62 65     handler to be
2330: 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65   called when the
2340: 72 65 20 69 73 20 63 6f 6e 74 65 6e 74 69 6f 6e  re is contention
2350: 20 66 6f 72 20 61 20 52 45 53 45 52 56 45 44 20   for a RESERVED 
2360: 6c 6f 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56  lock.</li>.<li>V
2370: 61 72 69 6f 75 73 20 62 75 67 20 66 69 78 65 73  arious bug fixes
2380: 20 61 6e 64 20 6f 70 74 69 6d 69 7a 61 74 69 6f   and optimizatio
2390: 6e 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ns</li>.}..chng 
23a0: 7b 32 30 30 34 20 41 75 67 75 73 74 20 38 20 28  {2004 August 8 (
23b0: 33 2e 30 2e 34 20 62 65 74 61 29 7d 20 7b 0a 3c  3.0.4 beta)} {.<
23c0: 6c 69 3e 43 52 45 41 54 45 20 54 41 42 4c 45 20  li>CREATE TABLE 
23d0: 61 6e 64 20 44 52 4f 50 20 54 41 42 4c 45 20 6e  and DROP TABLE n
23e0: 6f 77 20 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c  ow work correctl
23f0: 79 20 61 73 20 70 72 65 70 61 72 65 64 20 73 74  y as prepared st
2400: 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c  atements.</li>.<
2410: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
2420: 56 41 43 55 55 4d 20 61 6e 64 20 55 4e 49 51 55  VACUUM and UNIQU
2430: 45 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a  E indices.</li>.
2440: 3c 6c 69 3e 41 64 64 20 74 68 65 20 22 2e 69 6d  <li>Add the ".im
2450: 70 6f 72 74 22 20 63 6f 6d 6d 61 6e 64 20 74 6f  port" command to
2460: 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e   the command-lin
2470: 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  e shell.</li>.<l
2480: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
2490: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 69 6e 64   could cause ind
24a0: 65 78 20 63 6f 72 72 75 70 74 69 6f 6e 20 77 68  ex corruption wh
24b0: 65 6e 20 61 6e 20 61 74 74 65 6d 70 74 20 74 6f  en an attempt to
24c0: 0a 20 20 20 20 64 65 6c 65 74 65 20 72 6f 77 73  .    delete rows
24d0: 20 6f 66 20 61 20 74 61 62 6c 65 20 69 73 20 62   of a table is b
24e0: 6c 6f 63 6b 65 64 20 62 79 20 61 20 70 65 6e 64  locked by a pend
24f0: 69 6e 67 20 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a  ing query.</li>.
2500: 3c 6c 69 3e 4c 69 62 72 61 72 79 20 73 69 7a 65  <li>Library size
2510: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 3c   optimizations.<
2520: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
2530: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e 3c  inor bug fixes.<
2540: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2550: 30 34 20 4a 75 6c 79 20 32 32 20 28 32 2e 38 2e  04 July 22 (2.8.
2560: 31 35 29 7d 20 7b 0a 3c 6c 69 3e 54 68 69 73 20  15)} {.<li>This 
2570: 69 73 20 61 20 6d 61 69 6e 74 65 6e 61 6e 63 65  is a maintenance
2580: 20 72 65 6c 65 61 73 65 20 6f 6e 6c 79 2e 20 20   release only.  
2590: 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75  Various minor bu
25a0: 67 73 20 68 61 76 65 20 62 65 65 6e 0a 66 69 78  gs have been.fix
25b0: 65 64 20 61 6e 64 20 73 6f 6d 65 20 70 6f 72 74  ed and some port
25c0: 61 62 69 6c 69 74 79 20 65 6e 68 61 6e 63 65 6d  ability enhancem
25d0: 65 6e 74 73 20 61 72 65 20 61 64 64 65 64 2e 3c  ents are added.<
25e0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
25f0: 30 34 20 4a 75 6c 79 20 32 32 20 28 33 2e 30 2e  04 July 22 (3.0.
2600: 33 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 54  3 beta)} {.<li>T
2610: 68 65 20 73 65 63 6f 6e 64 20 62 65 74 61 20 72  he second beta r
2620: 65 6c 65 61 73 65 20 66 6f 72 20 53 51 4c 69 74  elease for SQLit
2630: 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  e 3.0.</li>.<li>
2640: 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  Add support for 
2650: 22 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69 7a  "PRAGMA page_siz
2660: 65 22 20 74 6f 20 61 64 6a 75 73 74 20 74 68 65  e" to adjust the
2670: 20 70 61 67 65 20 73 69 7a 65 20 6f 66 0a 74 68   page size of.th
2680: 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e  e database.</li>
2690: 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 62 75 67  .<li>Various bug
26a0: 20 66 69 78 65 73 20 61 6e 64 20 64 6f 63 75 6d   fixes and docum
26b0: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
26c0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
26d0: 32 30 30 34 20 4a 75 6e 65 20 33 30 20 28 33 2e  2004 June 30 (3.
26e0: 30 2e 32 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69  0.2 beta)} {.<li
26f0: 3e 54 68 65 20 66 69 72 73 74 20 62 65 74 61 20  >The first beta 
2700: 72 65 6c 65 61 73 65 20 66 6f 72 20 53 51 4c 69  release for SQLi
2710: 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  te 3.0.</li>.}..
2720: 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65 20  chng {2004 June 
2730: 32 32 20 28 33 2e 30 2e 31 20 61 6c 70 68 61 29  22 (3.0.1 alpha)
2740: 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74 20 63 6f  } {.<li><font co
2750: 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e 0a 20 20  lor="red"><b>.  
2760: 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52 65 6c 65    *** Alpha Rele
2770: 61 73 65 20 2d 20 52 65 73 65 61 72 63 68 20 41  ase - Research A
2780: 6e 64 20 54 65 73 74 69 6e 67 20 55 73 65 20 4f  nd Testing Use O
2790: 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e  nly ***</b></fon
27a0: 74 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20 62  t>.<li>Lots of b
27b0: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
27c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e  ..chng {2004 Jun
27d0: 65 20 31 38 20 28 33 2e 30 2e 30 20 61 6c 70 68  e 18 (3.0.0 alph
27e0: 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74 20  a)} {.<li><font 
27f0: 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e 0a  color="red"><b>.
2800: 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52 65      *** Alpha Re
2810: 6c 65 61 73 65 20 2d 20 52 65 73 65 61 72 63 68  lease - Research
2820: 20 41 6e 64 20 54 65 73 74 69 6e 67 20 55 73 65   And Testing Use
2830: 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66   Only ***</b></f
2840: 6f 6e 74 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74  ont>.<li>Support
2850: 20 66 6f 72 20 69 6e 74 65 72 6e 61 74 69 6f 6e   for internation
2860: 61 6c 69 7a 61 74 69 6f 6e 20 69 6e 63 6c 75 64  alization includ
2870: 69 6e 67 20 55 54 46 2d 38 2c 20 55 54 46 2d 31  ing UTF-8, UTF-1
2880: 36 2c 20 61 6e 64 0a 20 20 20 20 75 73 65 72 20  6, and.    user 
2890: 64 65 66 69 6e 65 64 20 63 6f 6c 6c 61 74 69 6e  defined collatin
28a0: 67 20 73 65 71 75 65 6e 63 65 73 2e 3c 2f 6c 69  g sequences.</li
28b0: 3e 0a 3c 6c 69 3e 4e 65 77 20 66 69 6c 65 20 66  >.<li>New file f
28c0: 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20 32 35  ormat that is 25
28d0: 25 20 74 6f 20 33 35 25 20 73 6d 61 6c 6c 65 72  % to 35% smaller
28e0: 20 66 6f 72 20 74 79 70 69 63 61 6c 20 75 73 65   for typical use
28f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f  .</li>.<li>Impro
2900: 76 65 64 20 63 6f 6e 63 75 72 72 65 6e 63 79 2e  ved concurrency.
2910: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 74 6f 6d 69 63  </li>.<li>Atomic
2920: 20 63 6f 6d 6d 69 74 73 20 66 6f 72 20 41 54 54   commits for ATT
2930: 41 43 48 65 64 20 64 61 74 61 62 61 73 65 73 2e  ACHed databases.
2940: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65  </li>.<li>Remove
2950: 20 63 72 75 66 74 20 66 72 6f 6d 20 74 68 65 20   cruft from the 
2960: 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  APIs.</li>.<li>B
2970: 4c 4f 42 20 73 75 70 70 6f 72 74 2e 3c 2f 6c 69  LOB support.</li
2980: 3e 0a 3c 6c 69 3e 36 34 2d 62 69 74 20 72 6f 77  >.<li>64-bit row
2990: 69 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61  ids.</li>.<li><a
29a0: 20 68 72 65 66 3d 22 76 65 72 73 69 6f 6e 33 2e   href="version3.
29b0: 68 74 6d 6c 22 3e 4d 6f 72 65 20 69 6e 66 6f 72  html">More infor
29c0: 6d 61 74 69 6f 6e 3c 2f 61 3e 2e 0a 7d 0a 0a 63  mation</a>..}..c
29d0: 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 39  hng {2004 June 9
29e0: 20 28 32 2e 38 2e 31 34 29 7d 20 7b 0a 3c 6c 69   (2.8.14)} {.<li
29f0: 3e 46 69 78 20 74 68 65 20 6d 69 6e 28 29 20 61  >Fix the min() a
2a00: 6e 64 20 6d 61 78 28 29 20 6f 70 74 69 6d 69 7a  nd max() optimiz
2a10: 65 72 20 73 6f 20 74 68 61 74 20 69 74 20 77 6f  er so that it wo
2a20: 72 6b 73 20 77 68 65 6e 20 74 68 65 20 46 52 4f  rks when the FRO
2a30: 4d 0a 20 20 20 20 63 6c 61 75 73 65 20 63 6f 6e  M.    clause con
2a40: 73 69 73 74 73 20 6f 66 20 61 20 73 75 62 71 75  sists of a subqu
2a50: 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 67  ery.</li>.<li>Ig
2a60: 6e 6f 72 65 20 65 78 74 72 61 20 77 68 69 74 65  nore extra white
2a70: 73 70 61 63 65 20 61 74 20 74 68 65 20 65 6e 64  space at the end
2a80: 20 6f 66 20 6f 66 20 22 2e 22 20 63 6f 6d 6d 61   of of "." comma
2a90: 6e 64 73 20 69 6e 20 74 68 65 20 73 68 65 6c 6c  nds in the shell
2aa0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 6e 64 6c  .</li>.<li>Bundl
2ab0: 65 20 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65 5f  e sqlite_encode_
2ac0: 62 69 6e 61 72 79 28 29 20 61 6e 64 20 73 71 6c  binary() and sql
2ad0: 69 74 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61 72  ite_decode_binar
2ae0: 79 28 29 20 77 69 74 68 20 74 68 65 20 0a 20 20  y() with the .  
2af0: 20 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a    library.</li>.
2b00: 3c 6c 69 3e 54 68 65 20 54 45 4d 50 5f 53 54 4f  <li>The TEMP_STO
2b10: 52 45 20 61 6e 64 20 44 45 46 41 55 4c 54 5f 54  RE and DEFAULT_T
2b20: 45 4d 50 5f 53 54 4f 52 45 20 70 72 61 67 6d 61  EMP_STORE pragma
2b30: 73 20 6e 6f 77 20 77 6f 72 6b 2e 3c 2f 6c 69 3e  s now work.</li>
2b40: 0a 3c 6c 69 3e 43 6f 64 65 20 63 68 61 6e 67 65  .<li>Code change
2b50: 73 20 74 6f 20 63 6f 6d 70 69 6c 65 20 63 6c 65  s to compile cle
2b60: 61 6e 6c 79 20 75 73 69 6e 67 20 4f 70 65 6e 57  anly using OpenW
2b70: 61 74 63 6f 6d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  atcom.</li>.<li>
2b80: 46 69 78 20 56 44 42 45 20 73 74 61 63 6b 20 6f  Fix VDBE stack o
2b90: 76 65 72 66 6c 6f 77 20 70 72 6f 62 6c 65 6d 73  verflow problems
2ba0: 20 77 69 74 68 20 49 4e 53 54 45 41 44 20 4f 46   with INSTEAD OF
2bb0: 20 74 72 69 67 67 65 72 73 20 61 6e 64 0a 20 20   triggers and.  
2bc0: 20 20 4e 55 4c 4c 73 20 69 6e 20 49 4e 20 6f 70    NULLs in IN op
2bd0: 65 72 61 74 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  erators.</li>.<l
2be0: 69 3e 41 64 64 20 74 68 65 20 67 6c 6f 62 61 6c  i>Add the global
2bf0: 20 76 61 72 69 61 62 6c 65 20 73 71 6c 69 74 65   variable sqlite
2c00: 5f 74 65 6d 70 5f 64 69 72 65 63 74 6f 72 79 20  _temp_directory 
2c10: 77 68 69 63 68 20 69 66 20 73 65 74 20 64 65 66  which if set def
2c20: 69 6e 65 73 20 74 68 65 0a 20 20 20 20 64 69 72  ines the.    dir
2c30: 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63 68 20  ectory in which 
2c40: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20  temporary files 
2c50: 61 72 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e  are stored.</li>
2c60: 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 69 6e 74 65  .<li>sqlite_inte
2c70: 72 72 75 70 74 28 29 20 70 6c 61 79 73 20 77 65  rrupt() plays we
2c80: 6c 6c 20 77 69 74 68 20 56 41 43 55 55 4d 2e 3c  ll with VACUUM.<
2c90: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
2ca0: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e 3c  inor bug fixes.<
2cb0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2cc0: 30 34 20 4d 61 72 63 68 20 38 20 28 32 2e 38 2e  04 March 8 (2.8.
2cd0: 31 33 29 7d 20 7b 0a 3c 6c 69 3e 52 65 66 61 63  13)} {.<li>Refac
2ce0: 74 6f 72 20 70 61 72 74 73 20 6f 66 20 74 68 65  tor parts of the
2cf0: 20 63 6f 64 65 20 69 6e 20 6f 72 64 65 72 20 74   code in order t
2d00: 6f 20 6d 61 6b 65 20 74 68 65 20 63 6f 64 65 20  o make the code 
2d10: 66 6f 6f 74 70 72 69 6e 74 0a 20 20 20 20 73 6d  footprint.    sm
2d20: 61 6c 6c 65 72 2e 20 20 54 68 65 20 63 6f 64 65  aller.  The code
2d30: 20 69 73 20 6e 6f 77 20 61 6c 73 6f 20 61 20 6c   is now also a l
2d40: 69 74 74 6c 65 20 62 69 74 20 66 61 73 74 65 72  ittle bit faster
2d50: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74  .</li>.<li>sqlit
2d60: 65 5f 65 78 65 63 28 29 20 69 73 20 6e 6f 77 20  e_exec() is now 
2d70: 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 73 20 61  implemented as a
2d80: 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20   wrapper around 
2d90: 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c 65 28 29  sqlite_compile()
2da0: 0a 20 20 20 20 61 6e 64 20 73 71 6c 69 74 65 5f  .    and sqlite_
2db0: 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69  step().</li>.<li
2dc0: 3e 54 68 65 20 62 75 69 6c 74 2d 69 6e 20 6d 69  >The built-in mi
2dd0: 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20 66 75  n() and max() fu
2de0: 6e 63 74 69 6f 6e 73 20 6e 6f 77 20 68 6f 6e 6f  nctions now hono
2df0: 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65  r the difference
2e00: 20 62 65 74 77 65 65 6e 0a 20 20 20 20 4e 55 4d   between.    NUM
2e10: 45 52 49 43 20 61 6e 64 20 54 45 58 54 20 64 61  ERIC and TEXT da
2e20: 74 61 74 79 70 65 73 2e 20 20 46 6f 72 6d 65 72  tatypes.  Former
2e30: 6c 79 2c 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61  ly, min() and ma
2e40: 78 28 29 20 61 6c 77 61 79 73 20 61 73 73 75 6d  x() always assum
2e50: 65 64 0a 20 20 20 20 74 68 65 69 72 20 61 72 67  ed.    their arg
2e60: 75 6d 65 6e 74 73 20 77 65 72 65 20 6f 66 20 74  uments were of t
2e70: 79 70 65 20 4e 55 4d 45 52 49 43 2e 3c 2f 6c 69  ype NUMERIC.</li
2e80: 3e 0a 3c 6c 69 3e 4e 65 77 20 48 48 3a 4d 4d 3a  >.<li>New HH:MM:
2e90: 53 53 20 6d 6f 64 69 66 69 65 72 20 74 6f 20 74  SS modifier to t
2ea0: 68 65 20 62 75 69 6c 74 2d 69 6e 20 64 61 74 65  he built-in date
2eb0: 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 2e  /time functions.
2ec0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69  </li>.<li>Experi
2ed0: 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 6c 61  mental sqlite_la
2ee0: 73 74 5f 73 74 61 74 65 6d 65 6e 74 5f 63 68 61  st_statement_cha
2ef0: 6e 67 65 73 28 29 20 41 50 49 20 61 64 64 65 64  nges() API added
2f00: 2e 20 20 46 69 78 65 64 20 74 68 65 0a 20 20 20  .  Fixed the.   
2f10: 20 74 68 65 20 6c 61 73 74 5f 69 6e 73 65 72 74   the last_insert
2f20: 5f 72 6f 77 69 64 28 29 20 66 75 6e 63 74 69 6f  _rowid() functio
2f30: 6e 20 73 6f 20 74 68 61 74 20 69 74 20 77 6f 72  n so that it wor
2f40: 6b 73 20 63 6f 72 72 65 63 74 6c 79 20 77 69 74  ks correctly wit
2f50: 68 0a 20 20 20 20 74 72 69 67 67 65 72 73 2e 3c  h.    triggers.<
2f60: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 66 75 6e  /li>.<li>Add fun
2f70: 63 74 69 6f 6e 73 20 70 72 6f 74 6f 74 79 70 65  ctions prototype
2f80: 73 20 66 6f 72 20 74 68 65 20 64 61 74 61 62 61  s for the databa
2f90: 73 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 41 50  se encryption AP
2fa0: 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  I.</li>.<li>Fix 
2fb0: 73 65 76 65 72 61 6c 20 6e 75 69 73 61 6e 63 65  several nuisance
2fc0: 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   bugs.</li>.}..c
2fd0: 68 6e 67 20 7b 32 30 30 34 20 46 65 62 72 75 61  hng {2004 Februa
2fe0: 72 79 20 38 20 28 32 2e 38 2e 31 32 29 7d 20 7b  ry 8 (2.8.12)} {
2ff0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
3000: 68 61 74 20 77 69 6c 6c 20 6d 69 67 68 74 20 63  hat will might c
3010: 6f 72 72 75 70 74 20 74 68 65 20 72 6f 6c 6c 62  orrupt the rollb
3020: 61 63 6b 20 6a 6f 75 72 6e 61 6c 20 69 66 20 61  ack journal if a
3030: 20 70 6f 77 65 72 20 66 61 69 6c 75 72 65 0a 20   power failure. 
3040: 20 20 20 6f 72 20 65 78 74 65 72 6e 61 6c 20 70     or external p
3050: 72 6f 67 72 61 6d 20 68 61 6c 74 20 6f 63 63 75  rogram halt occu
3060: 72 73 20 69 6e 20 74 68 65 20 6d 69 64 64 6c 65  rs in the middle
3070: 20 6f 66 20 61 20 43 4f 4d 4d 49 54 2e 20 20 54   of a COMMIT.  T
3080: 68 65 20 63 6f 72 72 75 70 74 0a 20 20 20 20 6a  he corrupt.    j
3090: 6f 75 72 6e 61 6c 20 63 61 6e 20 6c 65 61 64 20  ournal can lead 
30a0: 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72 72  to database corr
30b0: 75 70 74 69 6f 6e 20 77 68 65 6e 20 69 74 20 69  uption when it i
30c0: 73 20 72 6f 6c 6c 65 64 20 62 61 63 6b 2e 3c 2f  s rolled back.</
30d0: 6c 69 3e 0a 3c 6c 69 3e 52 65 64 75 63 65 20 74  li>.<li>Reduce t
30e0: 68 65 20 73 69 7a 65 20 61 6e 64 20 69 6e 63 72  he size and incr
30f0: 65 61 73 65 20 74 68 65 20 73 70 65 65 64 20 6f  ease the speed o
3100: 66 20 76 61 72 69 6f 75 73 20 6d 6f 64 75 6c 65  f various module
3110: 73 2c 20 65 73 70 65 63 69 61 6c 6c 79 0a 20 20  s, especially.  
3120: 20 20 74 68 65 20 76 69 72 74 75 61 6c 20 6d 61    the virtual ma
3130: 63 68 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  chine.</li>.<li>
3140: 41 6c 6c 6f 77 20 22 26 6c 74 3b 65 78 70 72 26  Allow "&lt;expr&
3150: 67 74 3b 20 49 4e 20 26 6c 74 3b 74 61 62 6c 65  gt; IN &lt;table
3160: 26 67 74 3b 22 20 61 73 20 61 20 73 68 6f 72 74  &gt;" as a short
3170: 68 61 6e 64 20 66 6f 72 0a 20 20 20 20 22 26 6c  hand for.    "&l
3180: 74 3b 65 78 70 72 26 67 74 3b 20 49 4e 20 28 53  t;expr&gt; IN (S
3190: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 26 6c 74  ELECT * FROM &lt
31a0: 3b 74 61 62 6c 65 26 67 74 3b 22 2e 3c 2f 6c 69  ;table&gt;".</li
31b0: 3e 0a 3c 6c 69 3e 4f 70 74 69 6d 69 7a 61 74 69  >.<li>Optimizati
31c0: 6f 6e 73 20 74 6f 20 74 68 65 20 73 71 6c 69 74  ons to the sqlit
31d0: 65 5f 6d 70 72 69 6e 74 66 28 29 20 72 6f 75 74  e_mprintf() rout
31e0: 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  ine.</li>.<li>Ma
31f0: 6b 65 20 73 75 72 65 20 74 68 65 20 4d 49 4e 28  ke sure the MIN(
3200: 29 20 61 6e 64 20 4d 41 58 28 29 20 6f 70 74 69  ) and MAX() opti
3210: 6d 69 7a 61 74 69 6f 6e 73 20 77 6f 72 6b 20 77  mizations work w
3220: 69 74 68 69 6e 20 73 75 62 71 75 65 72 69 65 73  ithin subqueries
3230: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
3240: 32 30 30 34 20 4a 61 6e 75 61 72 79 20 31 34 20  2004 January 14 
3250: 28 32 2e 38 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e  (2.8.11)} {.<li>
3260: 46 69 78 20 61 20 62 75 67 20 69 6e 20 68 6f 77  Fix a bug in how
3270: 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72   the IN operator
3280: 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 20 69   handles NULLs i
3290: 6e 20 73 75 62 71 75 65 72 69 65 73 2e 20 20 54  n subqueries.  T
32a0: 68 65 20 62 75 67 0a 20 20 20 20 77 61 73 20 69  he bug.    was i
32b0: 6e 74 72 6f 64 75 63 65 64 20 62 79 20 74 68 65  ntroduced by the
32c0: 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65 61 73   previous releas
32d0: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
32e0: 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 31 33  {2004 January 13
32f0: 20 28 32 2e 38 2e 31 30 29 7d 20 7b 0a 3c 6c 69   (2.8.10)} {.<li
3300: 3e 46 69 78 20 61 20 70 6f 74 65 6e 74 69 61 6c  >Fix a potential
3310: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
3320: 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 6f 6e 20  tion problem on 
3330: 55 6e 69 78 20 63 61 75 73 65 64 20 62 79 20 74  Unix caused by t
3340: 68 65 20 66 61 63 74 0a 20 20 20 20 74 68 61 74  he fact.    that
3350: 20 61 6c 6c 20 70 6f 73 69 78 20 61 64 76 69 73   all posix advis
3360: 6f 72 79 20 6c 6f 63 6b 73 20 61 72 65 20 63 6c  ory locks are cl
3370: 65 61 72 65 64 20 77 68 65 6e 65 76 65 72 20 79  eared whenever y
3380: 6f 75 20 63 6c 6f 73 65 28 29 20 61 20 66 69 6c  ou close() a fil
3390: 65 2e 0a 20 20 20 20 54 68 65 20 77 6f 72 6b 20  e..    The work 
33a0: 61 72 6f 75 6e 64 20 69 74 20 74 6f 20 65 6d 62  around it to emb
33b0: 61 72 67 6f 20 61 6c 6c 20 63 6c 6f 73 65 28 29  argo all close()
33c0: 20 63 61 6c 6c 73 20 77 68 69 6c 65 20 6c 6f 63   calls while loc
33d0: 6b 73 20 61 72 65 20 0a 20 20 20 20 6f 75 74 73  ks are .    outs
33e0: 74 61 6e 64 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c  tanding.</li>.<l
33f0: 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e  i>Performance en
3400: 68 61 6e 63 65 6d 65 6e 74 73 20 6f 6e 20 73 6f  hancements on so
3410: 6d 65 20 63 6f 72 6e 65 72 20 63 61 73 65 73 20  me corner cases 
3420: 6f 66 20 43 4f 55 4e 54 28 2a 29 2e 3c 2f 6c 69  of COUNT(*).</li
3430: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20  >.<li>Make sure 
3440: 74 68 65 20 69 6e 2d 6d 65 6d 6f 72 79 20 62 61  the in-memory ba
3450: 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73 65 20 73  ckend response s
3460: 61 6e 65 6c 79 20 69 66 20 6d 61 6c 6c 6f 63 28  anely if malloc(
3470: 29 20 66 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ) fails.</li>.<l
3480: 69 3e 41 6c 6c 6f 77 20 73 71 6c 69 74 65 5f 65  i>Allow sqlite_e
3490: 78 65 63 28 29 20 74 6f 20 62 65 20 63 61 6c 6c  xec() to be call
34a0: 65 64 20 66 72 6f 6d 20 77 69 74 68 69 6e 20 75  ed from within u
34b0: 73 65 72 2d 64 65 66 69 6e 65 64 20 53 51 4c 0a  ser-defined SQL.
34c0: 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f      functions.</
34d0: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64  li>.<li>Improved
34e0: 20 61 63 63 75 72 61 63 79 20 6f 66 20 66 6c 6f   accuracy of flo
34f0: 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63 6f 6e 76  ating-point conv
3500: 65 72 73 69 6f 6e 73 20 75 73 69 6e 67 20 22 6c  ersions using "l
3510: 6f 6e 67 20 64 6f 75 62 6c 65 22 2e 3c 2f 6c 69  ong double".</li
3520: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20  >.<li>Bug fixes 
3530: 69 6e 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e  in the experimen
3540: 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75  tal date/time fu
3550: 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a  nctions.</li>.}.
3560: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75  .chng {2004 Janu
3570: 61 72 79 20 35 20 28 32 2e 38 2e 39 29 7d 20 7b  ary 5 (2.8.9)} {
3580: 0a 3c 6c 69 3e 46 69 78 20 61 20 33 32 2d 62 69  .<li>Fix a 32-bi
3590: 74 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c  t integer overfl
35a0: 6f 77 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20  ow problem that 
35b0: 63 6f 75 6c 64 20 72 65 73 75 6c 74 20 69 6e 20  could result in 
35c0: 63 6f 72 72 75 70 74 0a 20 20 20 20 69 6e 64 69  corrupt.    indi
35d0: 63 65 73 20 69 6e 20 61 20 64 61 74 61 62 61 73  ces in a databas
35e0: 65 20 69 66 20 6c 61 72 67 65 20 6e 65 67 61 74  e if large negat
35f0: 69 76 65 20 6e 75 6d 62 65 72 73 20 28 6c 65 73  ive numbers (les
3600: 73 20 74 68 61 6e 20 2d 32 31 34 37 34 38 33 36  s than -21474836
3610: 34 38 29 0a 20 20 20 20 77 65 72 65 20 69 6e 73  48).    were ins
3620: 65 72 74 65 64 20 69 6e 74 6f 20 61 20 69 6e 64  erted into a ind
3630: 65 78 65 64 20 6e 75 6d 65 72 69 63 20 63 6f 6c  exed numeric col
3640: 75 6d 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  umn.</li>.<li>Fi
3650: 78 20 61 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 62  x a locking prob
3660: 6c 65 6d 20 6f 6e 20 6d 75 6c 74 69 2d 74 68 72  lem on multi-thr
3670: 65 61 64 65 64 20 4c 69 6e 75 78 20 69 6d 70 6c  eaded Linux impl
3680: 65 6d 65 6e 74 61 74 69 6f 6e 73 2e 3c 2f 6c 69  ementations.</li
3690: 3e 0a 3c 6c 69 3e 41 6c 77 61 79 73 20 75 73 65  >.<li>Always use
36a0: 20 22 2e 22 20 69 6e 73 74 65 61 64 20 6f 66 20   "." instead of 
36b0: 22 2c 22 20 61 73 20 74 68 65 20 64 65 63 69 6d  "," as the decim
36c0: 61 6c 20 70 6f 69 6e 74 20 65 76 65 6e 20 69 66  al point even if
36d0: 20 74 68 65 20 6c 6f 63 61 6c 65 0a 20 20 20 20   the locale.    
36e0: 72 65 71 75 65 73 74 73 20 22 2c 22 2e 3c 2f 6c  requests ",".</l
36f0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 55 54 43  i>.<li>Added UTC
3700: 20 74 6f 20 6c 6f 63 61 6c 74 69 6d 65 20 63 6f   to localtime co
3710: 6e 76 65 72 73 69 6f 6e 73 20 74 6f 20 74 68 65  nversions to the
3720: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61   experimental da
3730: 74 65 2f 74 69 6d 65 0a 20 20 20 20 66 75 6e 63  te/time.    func
3740: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
3750: 42 75 67 20 66 69 78 65 73 20 74 6f 20 64 61 74  Bug fixes to dat
3760: 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73  e/time functions
3770: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
3780: 32 30 30 33 20 44 65 63 65 6d 62 65 72 20 31 37  2003 December 17
3790: 20 28 32 2e 38 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.8)} {.<li>
37a0: 46 69 78 20 61 20 63 72 69 74 69 63 61 6c 20 62  Fix a critical b
37b0: 75 67 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e  ug introduced in
37c0: 74 6f 20 32 2e 38 2e 30 20 77 68 69 63 68 20 63  to 2.8.0 which c
37d0: 6f 75 6c 64 20 63 61 75 73 65 0a 20 20 20 20 64  ould cause.    d
37e0: 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69  atabase corrupti
37f0: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  on.</li>.<li>Fix
3800: 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20   a problem with 
3810: 33 2d 77 61 79 20 6a 6f 69 6e 73 20 74 68 61 74  3-way joins that
3820: 20 64 6f 20 6e 6f 74 20 75 73 65 20 69 6e 64 69   do not use indi
3830: 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ces</li>.<li>The
3840: 20 56 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20   VACUUM command 
3850: 6e 6f 77 20 77 6f 72 6b 73 20 77 69 74 68 20 74  now works with t
3860: 68 65 20 6e 6f 6e 2d 63 61 6c 6c 62 61 63 6b 20  he non-callback 
3870: 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70  API</li>.<li>Imp
3880: 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74 68 65  rovements to the
3890: 20 22 50 52 41 47 4d 41 20 69 6e 74 65 67 72 69   "PRAGMA integri
38a0: 74 79 5f 63 68 65 63 6b 22 20 63 6f 6d 6d 61 6e  ty_check" comman
38b0: 64 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  d</li>.}..chng {
38c0: 32 30 30 33 20 44 65 63 65 6d 62 65 72 20 34 20  2003 December 4 
38d0: 28 32 2e 38 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.8.7)} {.<li>A
38e0: 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e 74 61  dded experimenta
38f0: 6c 20 73 71 6c 69 74 65 5f 62 69 6e 64 28 29 20  l sqlite_bind() 
3900: 61 6e 64 20 73 71 6c 69 74 65 5f 72 65 73 65 74  and sqlite_reset
3910: 28 29 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c  () APIs.</li>.<l
3920: 69 3e 49 66 20 74 68 65 20 6e 61 6d 65 20 6f 66  i>If the name of
3930: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 69 73   the database is
3940: 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67   an empty string
3950: 2c 20 6f 70 65 6e 20 61 20 6e 65 77 20 64 61 74  , open a new dat
3960: 61 62 61 73 65 0a 20 20 20 20 69 6e 20 61 20 74  abase.    in a t
3970: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 74 68  emporary file th
3980: 61 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61  at is automatica
3990: 6c 6c 79 20 64 65 6c 65 74 65 64 20 77 68 65 6e  lly deleted when
39a0: 20 74 68 65 20 64 61 74 61 62 61 73 65 0a 20 20   the database.  
39b0: 20 20 69 73 20 63 6c 6f 73 65 64 2e 3c 2f 6c 69    is closed.</li
39c0: 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63  >.<li>Performanc
39d0: 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 69  e enhancements i
39e0: 6e 20 74 68 65 20 6c 65 6d 6f 6e 2d 67 65 6e 65  n the lemon-gene
39f0: 72 61 74 65 64 20 70 61 72 73 65 72 3c 2f 6c 69  rated parser</li
3a00: 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74  >.<li>Experiment
3a10: 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e  al date/time fun
3a20: 63 74 69 6f 6e 73 20 72 65 76 69 73 65 64 2e 3c  ctions revised.<
3a30: 2f 6c 69 3e 0a 3c 6c 69 3e 44 69 73 61 6c 6c 6f  /li>.<li>Disallo
3a40: 77 20 74 65 6d 70 6f 72 61 72 79 20 69 6e 64 69  w temporary indi
3a50: 63 65 73 20 6f 6e 20 70 65 72 6d 61 6e 65 6e 74  ces on permanent
3a60: 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c   tables.</li>.<l
3a70: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
3a80: 75 70 64 61 74 65 73 20 61 6e 64 20 74 79 70 6f  updates and typo
3a90: 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e   fixes</li>.<li>
3aa0: 41 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e 74  Added experiment
3ab0: 61 6c 20 73 71 6c 69 74 65 5f 70 72 6f 67 72 65  al sqlite_progre
3ac0: 73 73 5f 68 61 6e 64 6c 65 72 28 29 20 63 61 6c  ss_handler() cal
3ad0: 6c 62 61 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a 3c  lback API</li>.<
3ae0: 6c 69 3e 52 65 6d 6f 76 65 64 20 73 75 70 70 6f  li>Removed suppo
3af0: 72 74 20 66 6f 72 20 74 68 65 20 4f 72 61 63 6c  rt for the Oracl
3b00: 65 38 20 6f 75 74 65 72 20 6a 6f 69 6e 20 73 79  e8 outer join sy
3b10: 6e 74 61 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ntax.</li>.<li>A
3b20: 6c 6c 6f 77 20 47 4c 4f 42 20 61 6e 64 20 4c 49  llow GLOB and LI
3b30: 4b 45 20 6f 70 65 72 61 74 6f 72 73 20 74 6f 20  KE operators to 
3b40: 77 6f 72 6b 20 61 73 20 66 75 6e 63 74 69 6f 6e  work as function
3b50: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65  s.</li>.<li>Othe
3b60: 72 20 6d 69 6e 6f 72 20 64 6f 63 75 6d 65 6e 74  r minor document
3b70: 61 74 69 6f 6e 20 61 6e 64 20 6d 61 6b 65 66 69  ation and makefi
3b80: 6c 65 20 63 68 61 6e 67 65 73 20 61 6e 64 20 62  le changes and b
3b90: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
3ba0: 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 41 75 67  ..chng {2003 Aug
3bb0: 75 73 74 20 32 31 20 28 32 2e 38 2e 36 29 7d 20  ust 21 (2.8.6)} 
3bc0: 7b 0a 3c 6c 69 3e 4d 6f 76 65 64 20 74 68 65 20  {.<li>Moved the 
3bd0: 43 56 53 20 72 65 70 6f 73 69 74 6f 72 79 20 74  CVS repository t
3be0: 6f 20 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67  o www.sqlite.org
3bf0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65  </li>.<li>Update
3c00: 20 74 68 65 20 4e 55 4c 4c 2d 68 61 6e 64 6c 69   the NULL-handli
3c10: 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ng documentation
3c20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72  .</li>.<li>Exper
3c30: 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d  imental date/tim
3c40: 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 64 64 65  e functions adde
3c50: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  d.</li>.<li>Bug 
3c60: 66 69 78 3a 20 63 6f 72 72 65 63 74 6c 79 20 65  fix: correctly e
3c70: 76 61 6c 75 61 74 65 20 61 20 76 69 65 77 20 6f  valuate a view o
3c80: 66 20 61 20 76 69 65 77 20 77 69 74 68 6f 75 74  f a view without
3c90: 20 73 65 67 66 61 75 6c 74 69 6e 67 2e 3c 2f 6c   segfaulting.</l
3ca0: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
3cb0: 70 72 65 76 65 6e 74 20 64 61 74 61 62 61 73 65  prevent database
3cc0: 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 79   corruption if y
3cd0: 6f 75 20 64 72 6f 70 70 65 64 20 61 0a 20 20 20  ou dropped a.   
3ce0: 20 74 72 69 67 67 65 72 20 74 68 61 74 20 68 61   trigger that ha
3cf0: 64 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20  d the same name 
3d00: 61 73 20 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e  as a table.</li>
3d10: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61 6c  .<li>Bug fix: al
3d20: 6c 6f 77 20 61 20 56 41 43 55 55 4d 20 28 77 69  low a VACUUM (wi
3d30: 74 68 6f 75 74 20 73 65 67 66 61 75 6c 74 69 6e  thout segfaultin
3d40: 67 29 20 6f 6e 20 61 6e 20 65 6d 70 74 79 0a 20  g) on an empty. 
3d50: 20 20 20 64 61 74 61 62 61 73 65 20 61 66 74 65     database afte
3d60: 72 20 73 65 74 74 69 6e 67 20 74 68 65 20 45 4d  r setting the EM
3d70: 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42  PTY_RESULT_CALLB
3d80: 41 43 4b 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69  ACKS pragma.</li
3d90: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 69  >.<li>Bug fix: i
3da0: 66 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c  f an integer val
3db0: 75 65 20 77 69 6c 6c 20 6e 6f 74 20 66 69 74 20  ue will not fit 
3dc0: 69 6e 20 61 20 33 32 2d 62 69 74 20 69 6e 74 2c  in a 32-bit int,
3dd0: 20 73 74 6f 72 65 20 69 74 20 69 6e 0a 20 20 20   store it in.   
3de0: 20 61 20 64 6f 75 62 6c 65 20 69 6e 73 74 65 61   a double instea
3df0: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  d.</li>.<li>Bug 
3e00: 66 69 78 3a 20 4d 61 6b 65 20 73 75 72 65 20 74  fix: Make sure t
3e10: 68 65 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20  he journal file 
3e20: 64 69 72 65 63 74 6f 72 79 20 65 6e 74 72 79 20  directory entry 
3e30: 69 73 20 63 6f 6d 6d 69 74 74 65 64 20 74 6f 20  is committed to 
3e40: 64 69 73 6b 0a 20 20 20 20 62 65 66 6f 72 65 20  disk.    before 
3e50: 77 72 69 74 69 6e 67 20 74 68 65 20 64 61 74 61  writing the data
3e60: 62 61 73 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a  base file.</li>.
3e70: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 75  }..chng {2003 Ju
3e80: 6c 79 20 32 32 20 28 32 2e 38 2e 35 29 7d 20 7b  ly 22 (2.8.5)} {
3e90: 0a 3c 6c 69 3e 4d 61 6b 65 20 4c 49 4d 49 54 20  .<li>Make LIMIT 
3ea0: 77 6f 72 6b 20 6f 6e 20 61 20 63 6f 6d 70 6f 75  work on a compou
3eb0: 6e 64 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d  nd SELECT statem
3ec0: 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49  ent.</li>.<li>LI
3ed0: 4d 49 54 20 30 20 6e 6f 77 20 73 68 6f 77 73 20  MIT 0 now shows 
3ee0: 6e 6f 20 72 6f 77 73 2e 20 20 55 73 65 20 4c 49  no rows.  Use LI
3ef0: 4d 49 54 20 2d 31 20 74 6f 20 73 65 65 20 61 6c  MIT -1 to see al
3f00: 6c 20 72 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  l rows.</li>.<li
3f10: 3e 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c  >Correctly handl
3f20: 65 20 63 6f 6d 70 61 72 69 73 6f 6e 73 20 62 65  e comparisons be
3f30: 74 77 65 65 6e 20 61 6e 20 49 4e 54 45 47 45 52  tween an INTEGER
3f40: 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61 6e 64   PRIMARY KEY and
3f50: 0a 20 20 20 20 61 20 66 6c 6f 61 74 69 6e 67 20  .    a floating 
3f60: 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 3c 2f 6c  point number.</l
3f70: 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65 72  i>.<li>Fix sever
3f80: 61 6c 20 69 6d 70 6f 72 74 61 6e 74 20 62 75 67  al important bug
3f90: 73 20 69 6e 20 74 68 65 20 6e 65 77 20 41 54 54  s in the new ATT
3fa0: 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20 63  ACH and DETACH c
3fb0: 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ommands.</li>.<l
3fc0: 69 3e 55 70 64 61 74 65 64 20 74 68 65 20 3c 61  i>Updated the <a
3fd0: 20 68 72 65 66 3d 22 6e 75 6c 6c 73 2e 68 74 6d   href="nulls.htm
3fe0: 6c 22 3e 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67  l">NULL-handling
3ff0: 20 64 6f 63 75 6d 65 6e 74 3c 2f 61 3e 2e 3c 2f   document</a>.</
4000: 6c 69 3e 20 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 4e  li> .<li>Allow N
4010: 55 4c 4c 20 61 72 67 75 6d 65 6e 74 73 20 69 6e  ULL arguments in
4020: 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c 65 28   sqlite_compile(
4030: 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 73 74 65  ) and sqlite_ste
4040: 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  p().</li>.<li>Ma
4050: 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  ny minor bug fix
4060: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
4070: 7b 32 30 30 33 20 4a 75 6e 65 20 32 39 20 28 32  {2003 June 29 (2
4080: 2e 38 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 45 6e 68  .8.4)} {.<li>Enh
4090: 61 6e 63 65 64 20 74 68 65 20 22 50 52 41 47 4d  anced the "PRAGM
40a0: 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63  A integrity_chec
40b0: 6b 22 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 76 65  k" command to ve
40c0: 72 69 66 79 20 69 6e 64 69 63 65 73 2e 3c 2f 6c  rify indices.</l
40d0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 75 74  i>.<li>Added aut
40e0: 68 6f 72 69 7a 61 74 69 6f 6e 20 68 6f 6f 6b 73  horization hooks
40f0: 20 66 6f 72 20 74 68 65 20 6e 65 77 20 41 54 54   for the new ATT
4100: 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20 63  ACH and DETACH c
4110: 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ommands.</li>.<l
4120: 69 3e 4d 61 6e 79 20 64 6f 63 75 6d 65 6e 74 61  i>Many documenta
4130: 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69  tion updates</li
4140: 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f 72  >.<li>Many minor
4150: 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a   bug fixes</li>.
4160: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 75  }..chng {2003 Ju
4170: 6e 65 20 34 20 28 32 2e 38 2e 33 29 7d 20 7b 0a  ne 4 (2.8.3)} {.
4180: 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65  <li>Fix a proble
4190: 6d 20 74 68 61 74 20 77 69 6c 6c 20 63 6f 72 72  m that will corr
41a0: 75 70 74 20 74 68 65 20 69 6e 64 69 63 65 73 20  upt the indices 
41b0: 6f 6e 20 61 20 74 61 62 6c 65 20 69 66 20 79 6f  on a table if yo
41c0: 75 0a 20 20 20 20 64 6f 20 61 6e 20 49 4e 53 45  u.    do an INSE
41d0: 52 54 20 4f 52 20 52 45 50 4c 41 43 45 20 6f 72  RT OR REPLACE or
41e0: 20 61 6e 20 55 50 44 41 54 45 20 4f 52 20 52 45   an UPDATE OR RE
41f0: 50 4c 41 43 45 20 6f 6e 20 61 20 74 61 62 6c 65  PLACE on a table
4200: 20 74 68 61 74 0a 20 20 20 20 63 6f 6e 74 61 69   that.    contai
4210: 6e 73 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52  ns an INTEGER PR
4220: 49 4d 41 52 59 20 4b 45 59 20 70 6c 75 73 20 6f  IMARY KEY plus o
4230: 6e 65 20 6f 72 20 6d 6f 72 65 20 69 6e 64 69 63  ne or more indic
4240: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
4250: 20 61 20 62 75 67 20 69 6e 20 77 69 6e 64 6f 77   a bug in window
4260: 73 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 73  s locking code s
4270: 6f 20 74 68 61 74 20 6c 6f 63 6b 73 20 77 6f 72  o that locks wor
4280: 6b 20 63 6f 72 72 65 63 74 6c 79 0a 20 20 20 20  k correctly.    
4290: 77 68 65 6e 20 73 69 6d 75 6c 74 61 6e 65 6f 75  when simultaneou
42a0: 73 6c 79 20 61 63 63 65 73 73 65 64 20 62 79 20  sly accessed by 
42b0: 57 69 6e 39 35 20 61 6e 64 20 57 69 6e 4e 54 20  Win95 and WinNT 
42c0: 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c  systems.</li>.<l
42d0: 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74  i>Add the abilit
42e0: 79 20 66 6f 72 20 49 4e 53 45 52 54 20 61 6e 64  y for INSERT and
42f0: 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e   UPDATE statemen
4300: 74 73 20 74 6f 20 72 65 66 65 72 20 74 6f 20 74  ts to refer to t
4310: 68 65 0a 20 20 20 20 22 72 6f 77 69 64 22 20 28  he.    "rowid" (
4320: 6f 72 20 22 5f 72 6f 77 69 64 5f 22 20 6f 72 20  or "_rowid_" or 
4330: 22 6f 69 64 22 29 20 63 6f 6c 75 6d 6e 73 2e 3c  "oid") columns.<
4340: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 69  /li>.<li>Other i
4350: 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66 69 78  mportant bug fix
4360: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
4370: 7b 32 30 30 33 20 4d 61 79 20 31 37 20 28 32 2e  {2003 May 17 (2.
4380: 38 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  8.2)} {.<li>Fix 
4390: 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 77  a problem that w
43a0: 69 6c 6c 20 63 6f 72 72 75 70 74 20 74 68 65 20  ill corrupt the 
43b0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 69 66  database file if
43c0: 20 79 6f 75 20 64 72 6f 70 20 61 0a 20 20 20 20   you drop a.    
43d0: 74 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20 6d  table from the m
43e0: 61 69 6e 20 64 61 74 61 62 61 73 65 20 74 68 61  ain database tha
43f0: 74 20 68 61 73 20 61 20 54 45 4d 50 20 69 6e 64  t has a TEMP ind
4400: 65 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ex.</li>.}..chng
4410: 20 7b 32 30 30 33 20 4d 61 79 20 31 36 20 28 32   {2003 May 16 (2
4420: 2e 38 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65 61  .8.1)} {.<li>Rea
4430: 63 74 69 76 61 74 65 64 20 74 68 65 20 56 41 43  ctivated the VAC
4440: 55 55 4d 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74  UUM command that
4450: 20 72 65 63 6c 61 69 6d 73 20 75 6e 75 73 65 64   reclaims unused
4460: 20 64 69 73 6b 20 73 70 61 63 65 20 69 6e 20 0a   disk space in .
4470: 20 20 20 20 61 20 64 61 74 61 62 61 73 65 20 66      a database f
4480: 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ile.</li>.<li>Ad
4490: 64 65 64 20 74 68 65 20 41 54 54 41 43 48 20 61  ded the ATTACH a
44a0: 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e  nd DETACH comman
44b0: 64 73 20 74 6f 20 61 6c 6c 6f 77 20 69 6e 74 65  ds to allow inte
44c0: 72 61 63 74 69 6e 67 20 77 69 74 68 20 6d 75 6c  racting with mul
44d0: 74 69 70 6c 65 0a 20 20 20 20 64 61 74 61 62 61  tiple.    databa
44e0: 73 65 20 66 69 6c 65 73 20 61 74 20 74 68 65 20  se files at the 
44f0: 73 61 6d 65 20 74 69 6d 65 2e 3c 2f 6c 69 3e 0a  same time.</li>.
4500: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
4510: 74 20 66 6f 72 20 54 45 4d 50 20 74 72 69 67 67  t for TEMP trigg
4520: 65 72 73 20 61 6e 64 20 69 6e 64 69 63 65 73 2e  ers and indices.
4530: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
4540: 73 75 70 70 6f 72 74 20 66 6f 72 20 69 6e 2d 6d  support for in-m
4550: 65 6d 6f 72 79 20 64 61 74 61 62 61 73 65 73 2e  emory databases.
4560: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65  </li>.<li>Remove
4570: 64 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e 74  d the experiment
4580: 61 6c 20 73 71 6c 69 74 65 5f 6f 70 65 6e 5f 61  al sqlite_open_a
4590: 75 78 5f 66 69 6c 65 28 29 2e 20 20 49 74 73 20  ux_file().  Its 
45a0: 66 75 6e 63 74 69 6f 6e 20 69 73 0a 20 20 20 20  function is.    
45b0: 73 75 62 73 75 6d 65 64 20 69 6e 20 74 68 65 20  subsumed in the 
45c0: 6e 65 77 20 41 54 54 41 43 48 20 63 6f 6d 6d 61  new ATTACH comma
45d0: 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  nd.</li>.<li>The
45e0: 20 70 72 65 63 65 64 65 6e 63 65 20 6f 72 64 65   precedence orde
45f0: 72 20 66 6f 72 20 4f 4e 20 43 4f 4e 46 4c 49 43  r for ON CONFLIC
4600: 54 20 63 6c 61 75 73 65 73 20 77 61 73 20 63 68  T clauses was ch
4610: 61 6e 67 65 64 20 73 6f 20 74 68 61 74 0a 20 20  anged so that.  
4620: 20 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c    ON CONFLICT cl
4630: 61 75 73 65 73 20 6f 6e 20 42 45 47 49 4e 20 73  auses on BEGIN s
4640: 74 61 74 65 6d 65 6e 74 73 20 68 61 76 65 20 61  tatements have a
4650: 20 68 69 67 68 65 72 20 70 72 65 63 65 64 65 6e   higher preceden
4660: 63 65 20 74 68 61 6e 0a 20 20 20 20 4f 4e 20 43  ce than.    ON C
4670: 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73 20  ONFLICT clauses 
4680: 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 2e 0a  on constraints..
4690: 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20 62  <li>Many, many b
46a0: 75 67 20 66 69 78 65 73 20 61 6e 64 20 63 6f 6d  ug fixes and com
46b0: 70 61 74 69 62 69 6c 69 74 79 20 65 6e 68 61 6e  patibility enhan
46c0: 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a  cements.</li>.}.
46d0: 0a 63 68 6e 67 20 7b 32 30 30 33 20 46 65 62 20  .chng {2003 Feb 
46e0: 31 36 20 28 32 2e 38 2e 30 29 7d 20 7b 0a 3c 6c  16 (2.8.0)} {.<l
46f0: 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 6a  i>Modified the j
4700: 6f 75 72 6e 61 6c 20 66 69 6c 65 20 66 6f 72 6d  ournal file form
4710: 61 74 20 74 6f 20 6d 61 6b 65 20 69 74 20 6d 6f  at to make it mo
4720: 72 65 20 72 65 73 69 73 74 61 6e 74 20 74 6f 20  re resistant to 
4730: 63 6f 72 72 75 70 74 69 6f 6e 0a 20 20 20 20 74  corruption.    t
4740: 68 61 74 20 63 61 6e 20 6f 63 63 75 72 20 61 66  hat can occur af
4750: 74 65 72 20 61 6e 20 4f 53 20 63 72 61 73 68 20  ter an OS crash 
4760: 6f 72 20 70 6f 77 65 72 20 66 61 69 6c 75 72 65  or power failure
4770: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
4780: 20 61 20 6e 65 77 20 43 2f 43 2b 2b 20 41 50 49   a new C/C++ API
4790: 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 75   that does not u
47a0: 73 65 20 63 61 6c 6c 62 61 63 6b 20 66 6f 72 20  se callback for 
47b0: 72 65 74 75 72 6e 69 6e 67 20 64 61 74 61 2e 3c  returning data.<
47c0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
47d0: 30 33 20 4a 61 6e 20 32 35 20 28 32 2e 37 2e 36  03 Jan 25 (2.7.6
47e0: 29 7d 20 7b 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d  )} {.<li>Perform
47f0: 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74  ance improvement
4800: 73 2e 20 20 54 68 65 20 6c 69 62 72 61 72 79 20  s.  The library 
4810: 69 73 20 6e 6f 77 20 6d 75 63 68 20 66 61 73 74  is now much fast
4820: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  er.</li>.<li>Add
4830: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
4840: 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72 28  _set_authorizer(
4850: 29 3c 2f 62 3e 20 41 50 49 2e 20 20 46 6f 72 6d  )</b> API.  Form
4860: 61 6c 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  al documentation
4870: 20 68 61 73 0a 20 20 20 20 6e 6f 74 20 62 65 65   has.    not bee
4880: 6e 20 77 72 69 74 74 65 6e 20 2d 20 73 65 65 20  n written - see 
4890: 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20  the source code 
48a0: 63 6f 6d 6d 65 6e 74 73 20 66 6f 72 20 69 6e 73  comments for ins
48b0: 74 72 75 63 74 69 6f 6e 73 20 6f 6e 0a 20 20 20  tructions on.   
48c0: 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68 69 73   how to use this
48d0: 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a   function.</li>.
48e0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
48f0: 20 74 68 65 20 47 4c 4f 42 20 6f 70 65 72 61 74   the GLOB operat
4900: 6f 72 20 74 68 61 74 20 77 61 73 20 70 72 65 76  or that was prev
4910: 65 6e 74 69 6e 67 20 69 74 20 66 72 6f 6d 20 77  enting it from w
4920: 6f 72 6b 69 6e 67 0a 20 20 20 20 77 69 74 68 20  orking.    with 
4930: 75 70 70 65 72 2d 63 61 73 65 20 6c 65 74 74 65  upper-case lette
4940: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72  rs.</li>.<li>Var
4950: 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75 67 20 66  ious minor bug f
4960: 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixes.</li>.}..ch
4970: 6e 67 20 7b 32 30 30 32 20 44 65 63 20 32 37 20  ng {2002 Dec 27 
4980: 28 32 2e 37 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.7.5)} {.<li>F
4990: 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61 6c 69  ix an uninitiali
49a0: 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69 6e 20  zed variable in 
49b0: 70 61 67 65 72 2e 63 20 77 68 69 63 68 20 63 6f  pager.c which co
49c0: 75 6c 64 20 28 77 69 74 68 20 61 20 70 72 6f 62  uld (with a prob
49d0: 61 62 69 6c 69 74 79 0a 20 20 20 20 6f 66 20 61  ability.    of a
49e0: 62 6f 75 74 20 31 20 69 6e 20 34 20 62 69 6c 6c  bout 1 in 4 bill
49f0: 69 6f 6e 29 20 72 65 73 75 6c 74 20 69 6e 20 61  ion) result in a
4a00: 20 63 6f 72 72 75 70 74 65 64 20 64 61 74 61 62   corrupted datab
4a10: 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ase.</li>.}..chn
4a20: 67 20 7b 32 30 30 32 20 44 65 63 20 31 37 20 28  g {2002 Dec 17 (
4a30: 32 2e 37 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 44 61  2.7.4)} {.<li>Da
4a40: 74 61 62 61 73 65 20 66 69 6c 65 73 20 63 61 6e  tabase files can
4a50: 20 6e 6f 77 20 67 72 6f 77 20 74 6f 20 62 65 20   now grow to be 
4a60: 75 70 20 74 6f 20 32 5e 34 31 20 62 79 74 65 73  up to 2^41 bytes
4a70: 2e 20 20 54 68 65 20 6f 6c 64 20 6c 69 6d 69 74  .  The old limit
4a80: 0a 20 20 20 20 77 61 73 20 32 5e 33 31 20 62 79  .    was 2^31 by
4a90: 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  tes.</li>.<li>Th
4aa0: 65 20 6f 70 74 69 6d 69 7a 65 72 20 77 69 6c 6c  e optimizer will
4ab0: 20 6e 6f 77 20 73 63 61 6e 20 74 61 62 6c 65 73   now scan tables
4ac0: 20 69 6e 20 74 68 65 20 72 65 76 65 72 73 65 20   in the reverse 
4ad0: 69 66 20 64 6f 69 6e 67 20 73 6f 20 77 69 6c 6c  if doing so will
4ae0: 0a 20 20 20 20 73 61 74 69 73 66 79 20 61 6e 20  .    satisfy an 
4af0: 4f 52 44 45 52 20 42 59 20 2e 2e 2e 20 44 45 53  ORDER BY ... DES
4b00: 43 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c  C clause.</li>.<
4b10: 6c 69 3e 54 68 65 20 66 75 6c 6c 20 70 61 74 68  li>The full path
4b20: 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 61 74 61  name of the data
4b30: 62 61 73 65 20 66 69 6c 65 20 69 73 20 6e 6f 77  base file is now
4b40: 20 72 65 6d 65 6d 62 65 72 65 64 20 65 76 65 6e   remembered even
4b50: 20 69 66 0a 20 20 20 20 61 20 72 65 6c 61 74 69   if.    a relati
4b60: 76 65 20 70 61 74 68 20 69 73 20 70 61 73 73 65  ve path is passe
4b70: 64 20 69 6e 74 6f 20 73 71 6c 69 74 65 5f 6f 70  d into sqlite_op
4b80: 65 6e 28 29 2e 20 20 54 68 69 73 20 61 6c 6c 6f  en().  This allo
4b90: 77 73 20 0a 20 20 20 20 74 68 65 20 6c 69 62 72  ws .    the libr
4ba0: 61 72 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20  ary to continue 
4bb0: 6f 70 65 72 61 74 69 6e 67 20 63 6f 72 72 65 63  operating correc
4bc0: 74 6c 79 20 61 66 74 65 72 20 61 20 63 68 64 69  tly after a chdi
4bd0: 72 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70  r().</li>.<li>Sp
4be0: 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73  eed improvements
4bf0: 20 69 6e 20 74 68 65 20 56 44 42 45 2e 3c 2f 6c   in the VDBE.</l
4c00: 69 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20 6c  i>.<li>Lots of l
4c10: 69 74 74 6c 65 20 62 75 67 20 66 69 78 65 73 2e  ittle bug fixes.
4c20: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4c30: 30 30 32 20 4f 63 74 20 33 30 20 28 32 2e 37 2e  002 Oct 30 (2.7.
4c40: 33 29 7d 20 7b 0a 3c 6c 69 3e 56 61 72 69 6f 75  3)} {.<li>Variou
4c50: 73 20 63 6f 6d 70 69 6c 65 72 20 63 6f 6d 70 61  s compiler compa
4c60: 74 69 62 69 6c 69 74 79 20 66 69 78 65 73 2e 3c  tibility fixes.<
4c70: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
4c80: 75 67 20 69 6e 20 74 68 65 20 22 65 78 70 72 20  ug in the "expr 
4c90: 49 4e 20 28 29 22 20 6f 70 65 72 61 74 6f 72 2e  IN ()" operator.
4ca0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 63 63 65 70 74  </li>.<li>Accept
4cb0: 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e   column names in
4cc0: 20 70 61 72 65 6e 74 68 65 73 65 73 2e 3c 2f 6c   parentheses.</l
4cd0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f  i>.<li>Fix a pro
4ce0: 62 6c 65 6d 20 77 69 74 68 20 73 74 72 69 6e 67  blem with string
4cf0: 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65   memory manageme
4d00: 6e 74 20 69 6e 20 74 68 65 20 56 44 42 45 3c 2f  nt in the VDBE</
4d10: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
4d20: 67 20 69 6e 20 74 68 65 20 22 74 61 62 6c 65 5f  g in the "table_
4d30: 69 6e 66 6f 22 20 70 72 61 67 6d 61 22 3c 2f 6c  info" pragma"</l
4d40: 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74 20 74 68  i>.<li>Export th
4d50: 65 20 73 71 6c 69 74 65 5f 66 75 6e 63 74 69 6f  e sqlite_functio
4d60: 6e 5f 74 79 70 65 28 29 20 41 50 49 20 66 75 6e  n_type() API fun
4d70: 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 57 69 6e  ction in the Win
4d80: 64 6f 77 73 20 44 4c 4c 3c 2f 6c 69 3e 0a 3c 6c  dows DLL</li>.<l
4d90: 69 3e 46 69 78 20 6c 6f 63 6b 69 6e 67 20 62 65  i>Fix locking be
4da0: 68 61 76 69 6f 72 20 75 6e 64 65 72 20 77 69 6e  havior under win
4db0: 64 6f 77 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  dows</li>.<li>Fi
4dc0: 78 20 61 20 62 75 67 20 69 6e 20 4c 45 46 54 20  x a bug in LEFT 
4dd0: 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a  OUTER JOIN</li>.
4de0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 53 65  }..chng {2002 Se
4df0: 70 20 32 35 20 28 32 2e 37 2e 32 29 7d 20 7b 0a  p 25 (2.7.2)} {.
4e00: 3c 6c 69 3e 50 72 65 76 65 6e 74 20 6a 6f 75 72  <li>Prevent jour
4e10: 6e 61 6c 20 66 69 6c 65 20 6f 76 65 72 66 6c 6f  nal file overflo
4e20: 77 73 20 6f 6e 20 68 75 67 65 20 74 72 61 6e 73  ws on huge trans
4e30: 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  actions.</li>.<l
4e40: 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72 79 20 6c  i>Fix a memory l
4e50: 65 61 6b 20 74 68 61 74 20 6f 63 63 75 72 72 65  eak that occurre
4e60: 64 20 77 68 65 6e 20 73 71 6c 69 74 65 5f 6f 70  d when sqlite_op
4e70: 65 6e 28 29 20 66 61 69 6c 65 64 2e 3c 2f 6c 69  en() failed.</li
4e80: 3e 0a 3c 6c 69 3e 48 6f 6e 6f 72 20 74 68 65 20  >.<li>Honor the 
4e90: 4f 52 44 45 52 20 42 59 20 61 6e 64 20 4c 49 4d  ORDER BY and LIM
4ea0: 49 54 20 63 6c 61 75 73 65 20 6f 66 20 61 20 53  IT clause of a S
4eb0: 45 4c 45 43 54 20 65 76 65 6e 20 69 66 20 74 68  ELECT even if th
4ec0: 65 0a 20 20 20 20 72 65 73 75 6c 74 20 73 65 74  e.    result set
4ed0: 20 69 73 20 75 73 65 64 20 66 6f 72 20 61 6e 20   is used for an 
4ee0: 49 4e 53 45 52 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69  INSERT.</li>.<li
4ef0: 3e 44 6f 20 6e 6f 74 20 70 75 74 20 77 72 69 74  >Do not put writ
4f00: 65 20 6c 6f 63 6b 73 20 6f 6e 20 74 68 65 20 66  e locks on the f
4f10: 69 6c 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64  ile used to hold
4f20: 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c   TEMP tables.</l
4f30: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63  i>.<li>Added doc
4f40: 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 53 45  umentation on SE
4f50: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 61 6e  LECT DISTINCT an
4f60: 64 20 6f 6e 20 68 6f 77 20 53 51 4c 69 74 65 20  d on how SQLite 
4f70: 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 2e 3c 2f  handles NULLs.</
4f80: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  li>.<li>Fix a pr
4f90: 6f 62 6c 65 6d 20 74 68 61 74 20 77 61 73 20 63  oblem that was c
4fa0: 61 75 73 69 6e 67 20 70 6f 6f 72 20 70 65 72 66  ausing poor perf
4fb0: 6f 72 6d 61 6e 63 65 20 77 68 65 6e 20 6d 61 6e  ormance when man
4fc0: 79 20 74 68 6f 75 73 61 6e 64 73 0a 20 20 20 20  y thousands.    
4fd0: 6f 66 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74  of SQL statement
4fe0: 73 20 77 65 72 65 20 65 78 65 63 75 74 65 64 20  s were executed 
4ff0: 62 79 20 61 20 73 69 6e 67 6c 65 20 73 71 6c 69  by a single sqli
5000: 74 65 5f 65 78 65 63 28 29 20 63 61 6c 6c 2e 3c  te_exec() call.<
5010: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
5020: 30 32 20 41 75 67 20 33 31 20 28 32 2e 37 2e 31  02 Aug 31 (2.7.1
5030: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
5040: 75 67 20 69 6e 20 74 68 65 20 4f 52 44 45 52 20  ug in the ORDER 
5050: 42 59 20 6c 6f 67 69 63 20 74 68 61 74 20 77 61  BY logic that wa
5060: 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20  s introduced in 
5070: 76 65 72 73 69 6f 6e 20 32 2e 37 2e 30 3c 2f 6c  version 2.7.0</l
5080: 69 3e 0a 3c 6c 69 3e 43 2d 73 74 79 6c 65 20 63  i>.<li>C-style c
5090: 6f 6d 6d 65 6e 74 73 20 61 72 65 20 6e 6f 77 20  omments are now 
50a0: 61 63 63 65 70 74 65 64 20 62 79 20 74 68 65 20  accepted by the 
50b0: 74 6f 6b 65 6e 69 7a 65 72 2e 3c 2f 6c 69 3e 0a  tokenizer.</li>.
50c0: 3c 6c 69 3e 49 4e 53 45 52 54 20 72 75 6e 73 20  <li>INSERT runs 
50d0: 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 20  a little faster 
50e0: 77 68 65 6e 20 74 68 65 20 73 6f 75 72 63 65 20  when the source 
50f0: 69 73 20 61 20 53 45 4c 45 43 54 20 73 74 61 74  is a SELECT stat
5100: 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ement.</li>.}..c
5110: 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20 32 35  hng {2002 Aug 25
5120: 20 28 32 2e 37 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.7.0)} {.<li>
5130: 4d 61 6b 65 20 61 20 64 69 73 74 69 6e 63 74 69  Make a distincti
5140: 6f 6e 20 62 65 74 77 65 65 6e 20 6e 75 6d 65 72  on between numer
5150: 69 63 20 61 6e 64 20 74 65 78 74 20 76 61 6c 75  ic and text valu
5160: 65 73 20 77 68 65 6e 20 73 6f 72 74 69 6e 67 2e  es when sorting.
5170: 0a 20 20 20 20 54 65 78 74 20 76 61 6c 75 65 73  .    Text values
5180: 20 73 6f 72 74 20 61 63 63 6f 72 64 69 6e 67 20   sort according 
5190: 74 6f 20 6d 65 6d 63 6d 70 28 29 2e 20 20 4e 75  to memcmp().  Nu
51a0: 6d 65 72 69 63 20 76 61 6c 75 65 73 20 73 6f 72  meric values sor
51b0: 74 20 69 6e 0a 20 20 20 20 6e 75 6d 65 72 69 63  t in.    numeric
51c0: 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69   order.</li>.<li
51d0: 3e 41 6c 6c 6f 77 20 6d 75 6c 74 69 70 6c 65 20  >Allow multiple 
51e0: 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 72 65 61  simultaneous rea
51f0: 64 65 72 73 20 75 6e 64 65 72 20 77 69 6e 64 6f  ders under windo
5200: 77 73 20 62 79 20 73 69 6d 75 6c 61 74 69 6e 67  ws by simulating
5210: 0a 20 20 20 20 74 68 65 20 72 65 61 64 65 72 2f  .    the reader/
5220: 77 72 69 74 65 72 73 20 6c 6f 63 6b 73 20 74 68  writers locks th
5230: 61 74 20 61 72 65 20 6d 69 73 73 69 6e 67 20 66  at are missing f
5240: 72 6f 6d 20 57 69 6e 39 35 2f 39 38 2f 4d 45 2e  rom Win95/98/ME.
5250: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 20 65 72 72  </li>.<li>An err
5260: 6f 72 20 69 73 20 6e 6f 77 20 72 65 74 75 72 6e  or is now return
5270: 65 64 20 77 68 65 6e 20 74 72 79 69 6e 67 20 74  ed when trying t
5280: 6f 20 73 74 61 72 74 20 61 20 74 72 61 6e 73 61  o start a transa
5290: 63 74 69 6f 6e 20 69 66 0a 20 20 20 20 61 6e 6f  ction if.    ano
52a0: 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e  ther transaction
52b0: 20 69 73 20 61 6c 72 65 61 64 79 20 61 63 74 69   is already acti
52c0: 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ve.</li>.}..chng
52d0: 20 7b 32 30 30 32 20 41 75 67 20 31 32 20 28 32   {2002 Aug 12 (2
52e0: 2e 36 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .6.3)} {.<li>Add
52f0: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
5300: 72 65 61 64 20 62 6f 74 68 20 6c 69 74 74 6c 65  read both little
5310: 2d 65 6e 64 69 61 6e 20 61 6e 64 20 62 69 67 2d  -endian and big-
5320: 65 6e 64 69 61 6e 20 64 61 74 61 62 61 73 65 73  endian databases
5330: 2e 0a 20 20 20 20 53 6f 20 64 61 74 61 62 61 73  ..    So databas
5340: 65 20 63 72 65 61 74 65 64 20 75 6e 64 65 72 20  e created under 
5350: 53 75 6e 4f 53 20 6f 72 20 4d 61 63 4f 53 58 20  SunOS or MacOSX 
5360: 63 61 6e 20 62 65 20 72 65 61 64 20 61 6e 64 20  can be read and 
5370: 77 72 69 74 74 65 6e 0a 20 20 20 20 75 6e 64 65  written.    unde
5380: 72 20 4c 69 6e 75 78 20 6f 72 20 57 69 6e 64 6f  r Linux or Windo
5390: 77 73 20 61 6e 64 20 76 69 63 65 20 76 65 72 73  ws and vice vers
53a0: 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e 76  a.</li>.<li>Conv
53b0: 65 72 74 20 74 6f 20 74 68 65 20 6e 65 77 20 77  ert to the new w
53c0: 65 62 73 69 74 65 3a 20 68 74 74 70 3a 2f 2f 77  ebsite: http://w
53d0: 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 3c 2f  ww.sqlite.org/</
53e0: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 72  li>.<li>Allow tr
53f0: 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20 73 70  ansactions to sp
5400: 61 6e 20 4c 69 6e 75 78 20 54 68 72 65 61 64 73  an Linux Threads
5410: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
5420: 78 20 69 6e 20 74 68 65 20 70 72 6f 63 65 73 73  x in the process
5430: 69 6e 67 20 6f 66 20 74 68 65 20 4f 52 44 45 52  ing of the ORDER
5440: 20 42 59 20 63 6c 61 75 73 65 20 66 6f 72 20 47   BY clause for G
5450: 52 4f 55 50 20 42 59 20 71 75 65 72 69 65 73 3c  ROUP BY queries<
5460: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
5470: 30 32 20 4a 6c 79 20 33 30 20 28 32 2e 36 2e 32  02 Jly 30 (2.6.2
5480: 29 7d 20 7b 0a 3c 6c 69 3e 54 65 78 74 20 66 69  )} {.<li>Text fi
5490: 6c 65 73 20 72 65 61 64 20 62 79 20 74 68 65 20  les read by the 
54a0: 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 63 61 6e  COPY command can
54b0: 20 6e 6f 77 20 68 61 76 65 20 6c 69 6e 65 20 74   now have line t
54c0: 65 72 6d 69 6e 61 74 6f 72 73 0a 20 20 20 20 6f  erminators.    o
54d0: 66 20 4c 46 2c 20 20 43 52 4c 46 2c 20 6f 72 20  f LF,  CRLF, or 
54e0: 43 52 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 51 4c  CR.</li>.<li>SQL
54f0: 49 54 45 5f 42 55 53 59 20 69 73 20 68 61 6e 64  ITE_BUSY is hand
5500: 6c 65 64 20 63 6f 72 72 65 63 74 6c 79 20 69 66  led correctly if
5510: 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 64 75 72   encountered dur
5520: 69 6e 67 20 64 61 74 61 62 61 73 65 0a 20 20 20  ing database.   
5530: 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 2e   initialization.
5540: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 6f  </li>.<li>Fix to
5550: 20 55 50 44 41 54 45 20 74 72 69 67 67 65 72 73   UPDATE triggers
5560: 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c 65 73 2e   on TEMP tables.
5570: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
5580: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e  ntation updates.
5590: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
55a0: 30 30 32 20 4a 6c 79 20 31 39 20 28 32 2e 36 2e  002 Jly 19 (2.6.
55b0: 31 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6c 75 64  1)} {.<li>Includ
55c0: 65 20 61 20 73 74 61 74 69 63 20 73 74 72 69 6e  e a static strin
55d0: 67 20 69 6e 20 74 68 65 20 6c 69 62 72 61 72 79  g in the library
55e0: 20 74 68 61 74 20 72 65 73 70 6f 6e 64 73 20 74   that responds t
55f0: 6f 20 74 68 65 20 52 43 53 0a 20 20 20 20 22 69  o the RCS.    "i
5600: 64 65 6e 74 22 20 63 6f 6d 6d 61 6e 64 20 61 6e  dent" command an
5610: 64 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 73  d which contains
5620: 20 74 68 65 20 6c 69 62 72 61 72 79 20 76 65 72   the library ver
5630: 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69  sion number.</li
5640: 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 61 73 73  >.<li>Fix an ass
5650: 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 74  ertion failure t
5660: 68 61 74 20 6f 63 63 75 72 72 65 64 20 77 68 65  hat occurred whe
5670: 6e 20 64 65 6c 65 74 69 6e 67 20 61 6c 6c 20 72  n deleting all r
5680: 6f 77 73 20 6f 66 0a 20 20 20 20 61 20 74 61 62  ows of.    a tab
5690: 6c 65 20 77 69 74 68 20 74 68 65 20 22 63 6f 75  le with the "cou
56a0: 6e 74 5f 63 68 61 6e 67 65 73 22 20 70 72 61 67  nt_changes" prag
56b0: 6d 61 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c  ma turned on.</l
56c0: 69 3e 0a 3c 6c 69 3e 42 65 74 74 65 72 20 65 72  i>.<li>Better er
56d0: 72 6f 72 20 72 65 70 6f 72 74 69 6e 67 20 77 68  ror reporting wh
56e0: 65 6e 20 70 72 6f 62 6c 65 6d 73 20 6f 63 63 75  en problems occu
56f0: 72 20 64 75 72 69 6e 67 20 74 68 65 20 61 75 74  r during the aut
5700: 6f 6d 61 74 69 63 0a 20 20 20 20 32 2e 35 2e 36  omatic.    2.5.6
5710: 20 74 6f 20 32 2e 36 2e 30 20 64 61 74 61 62 61   to 2.6.0 databa
5720: 73 65 20 66 6f 72 6d 61 74 20 75 70 67 72 61 64  se format upgrad
5730: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
5740: 7b 32 30 30 32 20 4a 6c 79 20 31 37 20 28 32 2e  {2002 Jly 17 (2.
5750: 36 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e  6.0)} {.<li>Chan
5760: 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66  ge the format of
5770: 20 69 6e 64 69 63 65 73 20 74 6f 20 63 6f 72 72   indices to corr
5780: 65 63 74 20 61 20 64 65 73 69 67 6e 20 66 6c 61  ect a design fla
5790: 77 20 74 68 65 20 6f 72 69 67 69 6e 61 74 65 64  w the originated
57a0: 0a 20 20 20 20 77 69 74 68 20 76 65 72 73 69 6f  .    with versio
57b0: 6e 20 32 2e 31 2e 30 2e 20 20 3c 66 6f 6e 74 20  n 2.1.0.  <font 
57c0: 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 2a 20  color="red">*** 
57d0: 54 68 69 73 20 69 73 20 61 6e 20 69 6e 63 6f 6d  This is an incom
57e0: 70 61 74 69 62 6c 65 0a 20 20 20 20 66 69 6c 65  patible.    file
57f0: 20 66 6f 72 6d 61 74 20 63 68 61 6e 67 65 20 2a   format change *
5800: 2a 2a 3c 2f 66 6f 6e 74 3e 20 20 57 68 65 6e 20  **</font>  When 
5810: 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 72  version 2.6.0 or
5820: 20 6c 61 74 65 72 20 6f 66 20 74 68 65 0a 20 20   later of the.  
5830: 20 20 6c 69 62 72 61 72 79 20 61 74 74 65 6d 70    library attemp
5840: 74 73 20 74 6f 20 6f 70 65 6e 20 61 20 64 61 74  ts to open a dat
5850: 61 62 61 73 65 20 66 69 6c 65 20 63 72 65 61 74  abase file creat
5860: 65 64 20 62 79 20 76 65 72 73 69 6f 6e 20 32 2e  ed by version 2.
5870: 35 2e 36 20 6f 72 0a 20 20 20 20 65 61 72 6c 69  5.6 or.    earli
5880: 65 72 2c 20 69 74 20 77 69 6c 6c 20 61 75 74 6f  er, it will auto
5890: 6d 61 74 69 63 61 6c 6c 79 20 61 6e 64 20 69 72  matically and ir
58a0: 72 65 76 65 72 73 69 62 6c 79 20 63 6f 6e 76 65  reversibly conve
58b0: 72 74 20 74 68 65 20 66 69 6c 65 20 66 6f 72 6d  rt the file form
58c0: 61 74 2e 0a 20 20 20 20 3c 62 3e 4d 61 6b 65 20  at..    <b>Make 
58d0: 62 61 63 6b 75 70 20 63 6f 70 69 65 73 20 6f 66  backup copies of
58e0: 20 6f 6c 64 65 72 20 64 61 74 61 62 61 73 65 20   older database 
58f0: 66 69 6c 65 73 20 62 65 66 6f 72 65 20 6f 70 65  files before ope
5900: 6e 69 6e 67 20 74 68 65 6d 20 77 69 74 68 0a 20  ning them with. 
5910: 20 20 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30     version 2.6.0
5920: 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79 2e   of the library.
5930: 3c 2f 62 3e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d  </b>.    </li>.}
5940: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79  ..chng {2002 Jly
5950: 20 37 20 28 32 2e 35 2e 36 29 7d 20 7b 0a 3c 6c   7 (2.5.6)} {.<l
5960: 69 3e 46 69 78 20 6d 6f 72 65 20 70 72 6f 62 6c  i>Fix more probl
5970: 65 6d 73 20 77 69 74 68 20 72 6f 6c 6c 62 61 63  ems with rollbac
5980: 6b 2e 20 20 45 6e 68 61 6e 63 65 20 74 68 65 20  k.  Enhance the 
5990: 74 65 73 74 20 73 75 69 74 65 20 74 6f 20 65 78  test suite to ex
59a0: 65 72 63 69 73 65 0a 20 20 20 20 74 68 65 20 72  ercise.    the r
59b0: 6f 6c 6c 62 61 63 6b 20 6c 6f 67 69 63 20 65 78  ollback logic ex
59c0: 74 65 6e 73 69 76 65 6c 79 20 69 6e 20 6f 72 64  tensively in ord
59d0: 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 61 6e  er to prevent an
59e0: 79 20 66 75 74 75 72 65 20 70 72 6f 62 6c 65 6d  y future problem
59f0: 73 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a  s..    </li>.}..
5a00: 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 36  chng {2002 Jly 6
5a10: 20 28 32 2e 35 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.5.5)} {.<li>
5a20: 46 69 78 20 61 20 62 75 67 20 77 68 69 63 68 20  Fix a bug which 
5a30: 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61 74 61  could cause data
5a40: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
5a50: 64 75 72 69 6e 67 20 61 20 72 6f 6c 6c 62 61 63  during a rollbac
5a60: 6b 2e 0a 20 20 20 20 54 68 69 73 20 62 75 67 73  k..    This bugs
5a70: 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20   was introduced 
5a80: 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 2e 30  in version 2.4.0
5a90: 20 62 79 20 74 68 65 20 66 72 65 65 6c 69 73 74   by the freelist
5aa0: 0a 20 20 20 20 6f 70 74 69 6d 69 7a 61 74 69 6f  .    optimizatio
5ab0: 6e 20 6f 66 20 63 68 65 63 6b 69 6e 67 20 5b 34  n of checking [4
5ac0: 31 30 5d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  10].</li>.<li>Fi
5ad0: 78 20 61 20 62 75 67 20 69 6e 20 61 67 67 72 65  x a bug in aggre
5ae0: 67 61 74 65 20 66 75 6e 63 74 69 6f 6e 73 20 66  gate functions f
5af0: 6f 72 20 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c  or VIEWs.</li>.<
5b00: 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 63  li>Other minor c
5b10: 68 61 6e 67 65 73 20 61 6e 64 20 65 6e 68 61 6e  hanges and enhan
5b20: 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a  cements.</li>.}.
5b30: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20  .chng {2002 Jly 
5b40: 31 20 28 32 2e 35 2e 34 29 7d 20 7b 0a 3c 6c 69  1 (2.5.4)} {.<li
5b50: 3e 4d 61 6b 65 20 74 68 65 20 22 41 53 22 20 6b  >Make the "AS" k
5b60: 65 79 77 6f 72 64 20 6f 70 74 69 6f 6e 61 6c 20  eyword optional 
5b70: 61 67 61 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  again.</li>.<li>
5b80: 54 68 65 20 64 61 74 61 74 79 70 65 20 6f 66 20  The datatype of 
5b90: 63 6f 6c 75 6d 6e 73 20 6e 6f 77 20 61 70 70 65  columns now appe
5ba0: 61 72 20 69 6e 20 74 68 65 20 34 74 68 20 61 72  ar in the 4th ar
5bb0: 67 75 6d 65 6e 74 20 74 6f 20 74 68 65 0a 20 20  gument to the.  
5bc0: 20 20 63 61 6c 6c 62 61 63 6b 2e 3c 2f 6c 69 3e    callback.</li>
5bd0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c  .<li>Added the <
5be0: 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 5f 61 75  b>sqlite_open_au
5bf0: 78 5f 66 69 6c 65 28 29 3c 2f 62 3e 20 41 50 49  x_file()</b> API
5c00: 2c 20 74 68 6f 75 67 68 20 69 74 20 69 73 20 73  , though it is s
5c10: 74 69 6c 6c 0a 20 20 20 20 6d 6f 73 74 6c 79 20  till.    mostly 
5c20: 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20 61 6e 64  undocumented and
5c30: 20 75 6e 74 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a   untested.</li>.
5c40: 3c 6c 69 3e 41 64 64 65 64 20 61 64 64 69 74 69  <li>Added additi
5c50: 6f 6e 61 6c 20 74 65 73 74 20 63 61 73 65 73 20  onal test cases 
5c60: 61 6e 64 20 66 69 78 65 64 20 61 20 66 65 77 20  and fixed a few 
5c70: 62 75 67 73 20 74 68 61 74 20 74 68 6f 73 65 0a  bugs that those.
5c80: 20 20 20 20 74 65 73 74 20 63 61 73 65 73 20 66      test cases f
5c90: 6f 75 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ound.</li>.}..ch
5ca0: 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 32 34 20  ng {2002 Jun 24 
5cb0: 28 32 2e 35 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.5.3)} {.<li>B
5cc0: 75 67 20 66 69 78 3a 20 20 44 61 74 61 62 61 73  ug fix:  Databas
5cd0: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 63 61 6e  e corruption can
5ce0: 20 6f 63 63 75 72 20 64 75 65 20 74 6f 20 74 68   occur due to th
5cf0: 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 0a 20  e optimization. 
5d00: 20 20 20 74 68 61 74 20 77 61 73 20 69 6e 74 72     that was intr
5d10: 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73 69 6f  oduced in versio
5d20: 6e 20 32 2e 34 2e 30 20 28 63 68 65 63 6b 2d 69  n 2.4.0 (check-i
5d30: 6e 20 5b 34 31 30 5d 29 2e 20 20 54 68 65 20 70  n [410]).  The p
5d40: 72 6f 62 6c 65 6d 0a 20 20 20 20 73 68 6f 75 6c  roblem.    shoul
5d50: 64 20 6e 6f 77 20 62 65 20 66 69 78 65 64 2e 20  d now be fixed. 
5d60: 20 54 68 65 20 75 73 65 20 6f 66 20 76 65 72 73   The use of vers
5d70: 69 6f 6e 73 20 32 2e 34 2e 30 20 74 68 72 6f 75  ions 2.4.0 throu
5d80: 67 68 20 32 2e 35 2e 32 20 69 73 0a 20 20 20 20  gh 2.5.2 is.    
5d90: 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e  not recommended.
5da0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5db0: 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e  002 Jun 24 (2.5.
5dc0: 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  2)} {.<li>Added 
5dd0: 74 68 65 20 6e 65 77 20 3c 62 3e 53 51 4c 49 54  the new <b>SQLIT
5de0: 45 5f 54 45 4d 50 5f 4d 41 53 54 45 52 3c 2f 62  E_TEMP_MASTER</b
5df0: 3e 20 74 61 62 6c 65 20 77 68 69 63 68 20 72 65  > table which re
5e00: 63 6f 72 64 73 20 74 68 65 20 73 63 68 65 6d 61  cords the schema
5e10: 0a 20 20 20 20 66 6f 72 20 74 65 6d 70 6f 72 61  .    for tempora
5e20: 72 79 20 74 61 62 6c 65 73 20 69 6e 20 74 68 65  ry tables in the
5e30: 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 3c   same way that <
5e40: 62 3e 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 3c  b>SQLITE_MASTER<
5e50: 2f 62 3e 20 64 6f 65 73 20 66 6f 72 0a 20 20 20  /b> does for.   
5e60: 20 70 65 72 73 69 73 74 65 6e 74 20 74 61 62 6c   persistent tabl
5e70: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
5e80: 65 64 20 61 6e 20 6f 70 74 69 6d 69 7a 61 74 69  ed an optimizati
5e90: 6f 6e 20 74 6f 20 55 4e 49 4f 4e 20 41 4c 4c 3c  on to UNION ALL<
5ea0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61  /li>.<li>Fixed a
5eb0: 20 62 75 67 20 69 6e 20 74 68 65 20 70 72 6f 63   bug in the proc
5ec0: 65 73 73 69 6e 67 20 6f 66 20 4c 45 46 54 20 4f  essing of LEFT O
5ed0: 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 3c  UTER JOIN</li>.<
5ee0: 6c 69 3e 54 68 65 20 4c 49 4d 49 54 20 63 6c 61  li>The LIMIT cla
5ef0: 75 73 65 20 6e 6f 77 20 77 6f 72 6b 73 20 6f 6e  use now works on
5f00: 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69 3e   subselects</li>
5f10: 0a 3c 6c 69 3e 4f 52 44 45 52 20 42 59 20 77 6f  .<li>ORDER BY wo
5f20: 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c 65 63 74  rks on subselect
5f30: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 72 65  s</li>.<li>There
5f40: 20 69 73 20 61 20 6e 65 77 20 54 79 70 65 4f 66   is a new TypeOf
5f50: 28 29 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64  () function used
5f60: 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69 66   to determine if
5f70: 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 0a 20   an expression. 
5f80: 20 20 20 69 73 20 6e 75 6d 65 72 69 63 20 6f 72     is numeric or
5f90: 20 74 65 78 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   text.</li>.<li>
5fa0: 41 75 74 6f 69 6e 63 72 65 6d 65 6e 74 20 6e 6f  Autoincrement no
5fb0: 77 20 77 6f 72 6b 73 20 66 6f 72 20 49 4e 53 45  w works for INSE
5fc0: 52 54 20 66 72 6f 6d 20 61 20 53 45 4c 45 43 54  RT from a SELECT
5fd0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5fe0: 32 30 30 32 20 4a 75 6e 20 31 39 20 28 32 2e 35  2002 Jun 19 (2.5
5ff0: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 71  .1)} {.<li>The q
6000: 75 65 72 79 20 6f 70 74 69 6d 69 7a 65 72 20 6e  uery optimizer n
6010: 6f 77 20 61 74 74 65 6d 70 74 73 20 74 6f 20 69  ow attempts to i
6020: 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 4f 52 44  mplement the ORD
6030: 45 52 20 42 59 20 63 6c 61 75 73 65 0a 20 20 20  ER BY clause.   
6040: 20 75 73 69 6e 67 20 61 6e 20 69 6e 64 65 78 2e   using an index.
6050: 20 20 53 6f 72 74 69 6e 67 20 69 73 20 73 74 69    Sorting is sti
6060: 6c 6c 20 75 73 65 64 20 69 66 20 6e 6f 74 20 73  ll used if not s
6070: 75 69 74 61 62 6c 65 20 69 6e 64 65 78 20 69 73  uitable index is
6080: 0a 20 20 20 20 61 76 61 69 6c 61 62 6c 65 2e 3c  .    available.<
6090: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
60a0: 30 32 20 4a 75 6e 20 31 37 20 28 32 2e 35 2e 30  02 Jun 17 (2.5.0
60b0: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73  )} {.<li>Added s
60c0: 75 70 70 6f 72 74 20 66 6f 72 20 72 6f 77 20 74  upport for row t
60d0: 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  riggers.</li>.<l
60e0: 69 3e 41 64 64 65 64 20 53 51 4c 2d 39 32 20 63  i>Added SQL-92 c
60f0: 6f 6d 70 6c 69 61 6e 74 20 68 61 6e 64 6c 69 6e  ompliant handlin
6100: 67 20 6f 66 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e  g of NULLs.</li>
6110: 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72 74  .<li>Add support
6120: 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20 53 51   for the full SQ
6130: 4c 2d 39 32 20 6a 6f 69 6e 20 73 79 6e 74 61 78  L-92 join syntax
6140: 20 61 6e 64 20 4c 45 46 54 20 4f 55 54 45 52 20   and LEFT OUTER 
6150: 4a 4f 49 4e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  JOINs.</li>.<li>
6160: 44 6f 75 62 6c 65 2d 71 75 6f 74 65 64 20 73 74  Double-quoted st
6170: 72 69 6e 67 73 20 69 6e 74 65 72 70 72 65 74 65  rings interprete
6180: 64 20 61 73 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65  d as column name
6190: 73 20 6e 6f 74 20 74 65 78 74 20 6c 69 74 65 72  s not text liter
61a0: 61 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61  als.</li>.<li>Pa
61b0: 72 73 65 20 28 62 75 74 20 64 6f 20 6e 6f 74 20  rse (but do not 
61c0: 69 6d 70 6c 65 6d 65 6e 74 29 20 66 6f 72 65 69  implement) forei
61d0: 67 6e 20 6b 65 79 73 2e 3c 2f 6c 69 3e 0a 3c 6c  gn keys.</li>.<l
61e0: 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d  i>Performance im
61f0: 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74 68  provements in th
6200: 65 20 70 61 72 73 65 72 2c 20 70 61 67 65 72 2c  e parser, pager,
6210: 20 61 6e 64 20 57 48 45 52 45 20 63 6c 61 75 73   and WHERE claus
6220: 65 20 63 6f 64 65 0a 20 20 20 20 67 65 6e 65 72  e code.    gener
6230: 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ator.</li>.<li>M
6240: 61 6b 65 20 74 68 65 20 4c 49 4d 49 54 20 63 6c  ake the LIMIT cl
6250: 61 75 73 65 20 77 6f 72 6b 20 6f 6e 20 73 75 62  ause work on sub
6260: 71 75 65 72 69 65 73 2e 20 20 28 4f 52 44 45 52  queries.  (ORDER
6270: 20 42 59 20 73 74 69 6c 6c 20 64 6f 65 73 20 6e   BY still does n
6280: 6f 74 0a 20 20 20 20 77 6f 72 6b 2c 20 74 68 6f  ot.    work, tho
6290: 75 67 68 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ugh.)</li>.<li>A
62a0: 64 64 65 64 20 74 68 65 20 22 25 51 22 20 65 78  dded the "%Q" ex
62b0: 70 61 6e 73 69 6f 6e 20 74 6f 20 73 71 6c 69 74  pansion to sqlit
62c0: 65 5f 2a 5f 70 72 69 6e 74 66 28 29 2e 3c 2f 6c  e_*_printf().</l
62d0: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73  i>.<li>Bug fixes
62e0: 20 74 6f 6f 20 6e 75 6d 65 72 6f 75 73 20 74 6f   too numerous to
62f0: 20 6d 65 6e 74 69 6f 6e 20 28 73 65 65 20 74 68   mention (see th
6300: 65 20 63 68 61 6e 67 65 20 6c 6f 67 29 2e 3c 2f  e change log).</
6310: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6320: 32 20 4d 61 79 20 30 39 20 28 32 2e 34 2e 31 32  2 May 09 (2.4.12
6330: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c  )} {.<li>Added l
6340: 6f 67 69 63 20 74 6f 20 64 65 74 65 63 74 20 77  ogic to detect w
6350: 68 65 6e 20 74 68 65 20 6c 69 62 72 61 72 79 20  hen the library 
6360: 41 50 49 20 72 6f 75 74 69 6e 65 73 20 61 72 65  API routines are
6370: 20 63 61 6c 6c 65 64 20 6f 75 74 0a 20 20 20 20   called out.    
6380: 6f 66 20 73 65 71 75 65 6e 63 65 2e 3c 2f 6c 69  of sequence.</li
6390: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
63a0: 4d 61 79 20 30 38 20 28 32 2e 34 2e 31 31 29 7d  May 08 (2.4.11)}
63b0: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
63c0: 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20  Column names in 
63d0: 74 68 65 20 72 65 73 75 6c 74 20 73 65 74 20 77  the result set w
63e0: 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 67 65  ere not being ge
63f0: 6e 65 72 61 74 65 64 0a 20 20 20 20 63 6f 72 72  nerated.    corr
6400: 65 63 74 6c 79 20 66 6f 72 20 73 6f 6d 65 20 28  ectly for some (
6410: 72 61 74 68 65 72 20 63 6f 6d 70 6c 65 78 29 20  rather complex) 
6420: 56 49 45 57 73 2e 20 20 54 68 69 73 20 63 6f 75  VIEWs.  This cou
6430: 6c 64 20 63 61 75 73 65 20 61 0a 20 20 20 20 73  ld cause a.    s
6440: 65 67 66 61 75 6c 74 20 75 6e 64 65 72 20 63 65  egfault under ce
6450: 72 74 61 69 6e 20 63 69 72 63 75 6d 73 74 61 6e  rtain circumstan
6460: 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ces.</li>.}..chn
6470: 67 20 7b 32 30 30 32 20 4d 61 79 20 30 32 20 28  g {2002 May 02 (
6480: 32 2e 34 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 42  2.4.10)} {.<li>B
6490: 75 67 20 66 69 78 3a 20 47 65 6e 65 72 61 74 65  ug fix: Generate
64a0: 20 63 6f 72 72 65 63 74 20 63 6f 6c 75 6d 6e 20   correct column 
64b0: 68 65 61 64 65 72 73 20 77 68 65 6e 20 61 20 63  headers when a c
64c0: 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 69  ompound SELECT i
64d0: 73 20 75 73 65 64 0a 20 20 20 20 61 73 20 61 20  s used.    as a 
64e0: 73 75 62 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c  subquery.</li>.<
64f0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73 71 6c  li>Added the sql
6500: 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72  ite_encode_binar
6510: 79 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 64  y() and sqlite_d
6520: 65 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 66  ecode_binary() f
6530: 75 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20  unctions to.    
6540: 74 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 2e  the source tree.
6550: 20 20 42 75 74 20 74 68 65 79 20 61 72 65 20 6e    But they are n
6560: 6f 74 20 79 65 74 20 6c 69 6e 6b 65 64 20 69 6e  ot yet linked in
6570: 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79 2e 3c  to the library.<
6580: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  /li>.<li>Documen
6590: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c  tation updates.<
65a0: 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74 20  /li>.<li>Export 
65b0: 74 68 65 20 73 71 6c 69 74 65 5f 63 68 61 6e 67  the sqlite_chang
65c0: 65 73 28 29 20 66 75 6e 63 74 69 6f 6e 20 66 72  es() function fr
65d0: 6f 6d 20 77 69 6e 64 6f 77 73 20 44 4c 4c 73 2e  om windows DLLs.
65e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
65f0: 78 3a 20 44 6f 20 6e 6f 74 20 61 74 74 65 6d 70  x: Do not attemp
6600: 74 20 74 68 65 20 73 75 62 71 75 65 72 79 20 66  t the subquery f
6610: 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69  lattening optimi
6620: 7a 61 74 69 6f 6e 20 6f 6e 20 71 75 65 72 69 65  zation on querie
6630: 73 0a 20 20 20 20 74 68 61 74 20 6c 61 63 6b 20  s.    that lack 
6640: 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 20 20  a FROM clause.  
6650: 54 6f 20 64 6f 20 73 6f 20 63 61 75 73 65 73 20  To do so causes 
6660: 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e  a segfault.</li>
6670: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41  .}..chng {2002 A
6680: 70 72 20 32 31 20 28 32 2e 34 2e 39 29 7d 20 7b  pr 21 (2.4.9)} {
6690: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
66a0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
66b0: 74 68 65 20 70 72 65 63 6f 6d 70 69 6c 65 64 20  the precompiled 
66c0: 62 69 6e 61 72 79 20 6f 66 20 53 51 4c 49 54 45  binary of SQLITE
66d0: 2e 45 58 45 20 74 6f 0a 20 20 20 20 72 65 70 6f  .EXE to.    repo
66e0: 72 74 20 22 6f 75 74 20 6f 66 20 6d 65 6d 6f 72  rt "out of memor
66f0: 79 22 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73  y" under Windows
6700: 20 39 38 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e   98.</li>.}..chn
6710: 67 20 7b 32 30 30 32 20 41 70 72 20 32 30 20 28  g {2002 Apr 20 (
6720: 32 2e 34 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61  2.4.8)} {.<li>Ma
6730: 6b 65 20 73 75 72 65 20 56 49 45 57 73 20 61 72  ke sure VIEWs ar
6740: 65 20 63 72 65 61 74 65 64 20 61 66 74 65 72 20  e created after 
6750: 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e 64  their correspond
6760: 69 6e 67 20 54 41 42 4c 45 73 20 69 6e 20 74 68  ing TABLEs in th
6770: 65 0a 20 20 20 20 6f 75 74 70 75 74 20 6f 66 20  e.    output of 
6780: 74 68 65 20 3c 62 3e 2e 64 75 6d 70 3c 2f 62 3e  the <b>.dump</b>
6790: 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20   command in the 
67a0: 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  shell.</li>.<li>
67b0: 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e  Speed improvemen
67c0: 74 73 3a 20 44 6f 20 6e 6f 74 20 64 6f 20 73 79  ts: Do not do sy
67d0: 6e 63 68 72 6f 6e 6f 75 73 20 75 70 64 61 74 65  nchronous update
67e0: 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c 65 73  s on TEMP tables
67f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20  .</li>.<li>Many 
6800: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64  improvements and
6810: 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74 6f   enhancements to
6820: 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e   the shell.</li>
6830: 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 47 4c  .<li>Make the GL
6840: 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70 65 72  OB and LIKE oper
6850: 61 74 6f 72 73 20 66 75 6e 63 74 69 6f 6e 73 20  ators functions 
6860: 74 68 61 74 20 63 61 6e 20 62 65 20 6f 76 65 72  that can be over
6870: 72 69 64 64 65 6e 0a 20 20 20 20 62 79 20 61 20  ridden.    by a 
6880: 70 72 6f 67 72 61 6d 6d 65 72 2e 20 20 54 68 69  programmer.  Thi
6890: 73 20 61 6c 6c 6f 77 73 2c 20 66 6f 72 20 65 78  s allows, for ex
68a0: 61 6d 70 6c 65 2c 20 74 68 65 20 4c 49 4b 45 20  ample, the LIKE 
68b0: 6f 70 65 72 61 74 6f 72 20 74 6f 0a 20 20 20 20  operator to.    
68c0: 62 65 20 63 68 61 6e 67 65 64 20 74 6f 20 62 65  be changed to be
68d0: 20 63 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e   case sensitive.
68e0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
68f0: 30 30 32 20 41 70 72 20 30 36 20 28 32 2e 34 2e  002 Apr 06 (2.4.
6900: 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68  7)} {.<li>Add th
6910: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75 74  e ability to put
6920: 20 54 41 42 4c 45 2e 2a 20 69 6e 20 74 68 65 20   TABLE.* in the 
6930: 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61  column list of a
6940: 0a 20 20 20 20 53 45 4c 45 43 54 20 73 74 61 74  .    SELECT stat
6950: 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ement.</li>.<li>
6960: 50 65 72 6d 69 74 20 53 45 4c 45 43 54 20 73 74  Permit SELECT st
6970: 61 74 65 6d 65 6e 74 73 20 77 69 74 68 6f 75 74  atements without
6980: 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 3c   a FROM clause.<
6990: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
69a0: 68 65 20 3c 62 3e 6c 61 73 74 5f 69 6e 73 65 72  he <b>last_inser
69b0: 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20 53 51  t_rowid()</b> SQ
69c0: 4c 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e  L function.</li>
69d0: 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 63 6f 75 6e  .<li>Do not coun
69e0: 74 20 72 6f 77 73 20 77 68 65 72 65 20 74 68 65  t rows where the
69f0: 20 49 47 4e 4f 52 45 20 63 6f 6e 66 6c 69 63 74   IGNORE conflict
6a00: 20 72 65 73 6f 6c 75 74 69 6f 6e 20 6f 63 63 75   resolution occu
6a10: 72 73 20 69 6e 0a 20 20 20 20 74 68 65 20 72 6f  rs in.    the ro
6a20: 77 20 63 6f 75 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c  w count.</li>.<l
6a30: 69 3e 4d 61 6b 65 20 73 75 72 65 20 66 75 6e 63  i>Make sure func
6a40: 74 69 6f 6e 73 20 65 78 70 72 65 73 73 69 6f 6e  tions expression
6a50: 73 20 69 6e 20 74 68 65 20 56 41 4c 55 45 53 20  s in the VALUES 
6a60: 63 6c 61 75 73 65 20 6f 66 20 61 6e 20 49 4e 53  clause of an INS
6a70: 45 52 54 0a 20 20 20 20 61 72 65 20 63 6f 72 72  ERT.    are corr
6a80: 65 63 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ect.</li>.<li>Ad
6a90: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
6aa0: 65 5f 63 68 61 6e 67 65 73 28 29 3c 2f 62 3e 20  e_changes()</b> 
6ab0: 41 50 49 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20  API function to 
6ac0: 72 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65  return the numbe
6ad0: 72 0a 20 20 20 20 6f 66 20 72 6f 77 20 74 68 61  r.    of row tha
6ae0: 74 20 63 68 61 6e 67 65 64 20 69 6e 20 74 68 65  t changed in the
6af0: 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 6f 70 65   most recent ope
6b00: 72 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ration.</li>.}..
6b10: 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 30  chng {2002 Apr 0
6b20: 32 20 28 32 2e 34 2e 36 29 7d 20 7b 0a 3c 6c 69  2 (2.4.6)} {.<li
6b30: 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65 63  >Bug fix: Correc
6b40: 74 6c 79 20 68 61 6e 64 6c 65 20 74 65 72 6d 73  tly handle terms
6b50: 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c   in the WHERE cl
6b60: 61 75 73 65 20 6f 66 20 61 20 6a 6f 69 6e 20 74  ause of a join t
6b70: 68 61 74 0a 20 20 20 20 64 6f 20 6e 6f 74 20 63  hat.    do not c
6b80: 6f 6e 74 61 69 6e 20 61 20 63 6f 6d 70 61 72 69  ontain a compari
6b90: 73 6f 6e 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c  son operator.</l
6ba0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
6bb0: 20 41 70 72 20 30 31 20 28 32 2e 34 2e 35 29 7d   Apr 01 (2.4.5)}
6bc0: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
6bd0: 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65  Correctly handle
6be0: 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20   functions that 
6bf0: 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 57 48  appear in the WH
6c00: 45 52 45 20 63 6c 61 75 73 65 0a 20 20 20 20 6f  ERE clause.    o
6c10: 66 20 61 20 6a 6f 69 6e 2e 3c 2f 6c 69 3e 0a 3c  f a join.</li>.<
6c20: 6c 69 3e 57 68 65 6e 20 74 68 65 20 50 52 41 47  li>When the PRAG
6c30: 4d 41 20 76 64 62 65 5f 74 72 61 63 65 3d 4f 4e  MA vdbe_trace=ON
6c40: 20 69 73 20 73 65 74 2c 20 63 6f 72 72 65 63 74   is set, correct
6c50: 6c 79 20 70 72 69 6e 74 20 74 68 65 20 50 33 20  ly print the P3 
6c60: 6f 70 65 72 61 6e 64 0a 20 20 20 20 76 61 6c 75  operand.    valu
6c70: 65 20 77 68 65 6e 20 69 74 20 69 73 20 61 20 70  e when it is a p
6c80: 6f 69 6e 74 65 72 20 74 6f 20 61 20 73 74 72 75  ointer to a stru
6c90: 63 74 75 72 65 20 72 61 74 68 65 72 20 74 68 61  cture rather tha
6ca0: 6e 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 0a 20  n a pointer to. 
6cb0: 20 20 20 61 20 73 74 72 69 6e 67 2e 3c 2f 6c 69     a string.</li
6cc0: 3e 0a 3c 6c 69 3e 57 68 65 6e 20 69 6e 73 65 72  >.<li>When inser
6cd0: 74 69 6e 67 20 61 6e 20 65 78 70 6c 69 63 69 74  ting an explicit
6ce0: 20 4e 55 4c 4c 20 69 6e 74 6f 20 61 6e 20 49 4e   NULL into an IN
6cf0: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45  TEGER PRIMARY KE
6d00: 59 2c 20 63 6f 6e 76 65 72 74 0a 20 20 20 20 74  Y, convert.    t
6d10: 68 65 20 4e 55 4c 4c 20 76 61 6c 75 65 20 69 6e  he NULL value in
6d20: 74 6f 20 61 20 75 6e 69 71 75 65 20 6b 65 79 20  to a unique key 
6d30: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 3c 2f  automatically.</
6d40: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6d50: 32 20 4d 61 72 20 32 34 20 28 32 2e 34 2e 34 29  2 Mar 24 (2.4.4)
6d60: 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22 56  } {.<li>Allow "V
6d70: 49 45 57 22 20 74 6f 20 62 65 20 61 20 63 6f 6c  IEW" to be a col
6d80: 75 6d 6e 20 6e 61 6d 65 3c 2f 6c 69 3e 0a 3c 6c  umn name</li>.<l
6d90: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
6da0: 66 6f 72 20 43 41 53 45 20 65 78 70 72 65 73 73  for CASE express
6db0: 69 6f 6e 73 20 28 70 61 74 63 68 20 66 72 6f 6d  ions (patch from
6dc0: 20 44 61 6e 20 4b 65 6e 6e 65 64 79 29 3c 2f 6c   Dan Kennedy)</l
6dd0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 52 50 4d  i>.<li>Added RPM
6de0: 53 20 74 6f 20 74 68 65 20 64 65 6c 69 76 65 72  S to the deliver
6df0: 79 20 28 70 61 74 63 68 65 73 20 66 72 6f 6d 20  y (patches from 
6e00: 44 6f 75 67 20 48 65 6e 72 79 29 3c 2f 6c 69 3e  Doug Henry)</li>
6e10: 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73 20 69  .<li>Fix typos i
6e20: 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74  n the documentat
6e30: 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 75 74  ion</li>.<li>Cut
6e40: 20 6f 76 65 72 20 63 6f 6e 66 69 67 75 72 61 74   over configurat
6e50: 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e 74 20 74  ion management t
6e60: 6f 20 61 20 6e 65 77 20 43 56 53 20 72 65 70 6f  o a new CVS repo
6e70: 73 69 74 6f 72 79 20 77 69 74 68 0a 20 20 20 20  sitory with.    
6e80: 69 74 73 20 6f 77 6e 20 43 56 53 54 72 61 63 20  its own CVSTrac 
6e90: 62 75 67 20 74 72 61 63 6b 69 6e 67 20 73 79 73  bug tracking sys
6ea0: 74 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  tem.</li>.}..chn
6eb0: 67 20 7b 32 30 30 32 20 4d 61 72 20 32 32 20 28  g {2002 Mar 22 (
6ec0: 32 2e 34 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.4.3)} {.<li>Fi
6ed0: 78 20 61 20 62 75 67 20 69 6e 20 53 45 4c 45 43  x a bug in SELEC
6ee0: 54 20 74 68 61 74 20 6f 63 63 75 72 73 20 77 68  T that occurs wh
6ef0: 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45  en a compound SE
6f00: 4c 45 43 54 20 69 73 20 75 73 65 64 20 61 73 20  LECT is used as 
6f10: 61 0a 20 20 20 20 73 75 62 71 75 65 72 79 20 69  a.    subquery i
6f20: 6e 20 74 68 65 20 46 52 4f 4d 20 6f 66 20 61 20  n the FROM of a 
6f30: 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69  SELECT.</li>.<li
6f40: 3e 54 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67  >The <b>sqlite_g
6f50: 65 74 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20 66  et_table()</b> f
6f60: 75 6e 63 74 69 6f 6e 20 6e 6f 77 20 72 65 74 75  unction now retu
6f70: 72 6e 73 20 61 6e 20 65 72 72 6f 72 20 69 66 20  rns an error if 
6f80: 79 6f 75 0a 20 20 20 20 67 69 76 65 20 69 74 20  you.    give it 
6f90: 74 77 6f 20 6f 72 20 6d 6f 72 65 20 53 45 4c 45  two or more SELE
6fa0: 43 54 73 20 74 68 61 74 20 72 65 74 75 72 6e 20  CTs that return 
6fb0: 64 69 66 66 65 72 65 6e 74 20 6e 75 6d 62 65 72  different number
6fc0: 73 20 6f 66 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c  s of columns.</l
6fd0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
6fe0: 20 4d 61 72 20 31 34 20 28 32 2e 34 2e 32 29 7d   Mar 14 (2.4.2)}
6ff0: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
7000: 46 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f 6e  Fix an assertion
7010: 20 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f 63   failure that oc
7020: 63 75 72 72 65 64 20 77 68 65 6e 20 52 4f 57 49  curred when ROWI
7030: 44 20 77 61 73 20 61 20 63 6f 6c 75 6d 6e 0a 20  D was a column. 
7040: 20 20 20 69 6e 20 61 20 53 45 4c 45 43 54 20 73     in a SELECT s
7050: 74 61 74 65 6d 65 6e 74 20 6f 6e 20 61 20 76 69  tatement on a vi
7060: 65 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ew.</li>.<li>Bug
7070: 20 66 69 78 3a 20 46 69 78 20 61 6e 20 75 6e 69   fix: Fix an uni
7080: 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72 69 61  nitialized varia
7090: 62 6c 65 20 69 6e 20 74 68 65 20 56 44 42 45 20  ble in the VDBE 
70a0: 74 68 61 74 20 77 6f 75 6c 64 20 63 6f 75 6c 64  that would could
70b0: 20 61 6e 0a 20 20 20 20 61 73 73 65 72 74 20 66   an.    assert f
70c0: 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ailure.</li>.<li
70d0: 3e 4d 61 6b 65 20 74 68 65 20 6f 73 2e 68 20 68  >Make the os.h h
70e0: 65 61 64 65 72 20 66 69 6c 65 20 6d 6f 72 65 20  eader file more 
70f0: 72 6f 62 75 73 74 20 69 6e 20 64 65 74 65 63 74  robust in detect
7100: 69 6e 67 20 77 68 65 6e 20 74 68 65 20 63 6f 6d  ing when the com
7110: 70 69 6c 65 20 69 73 0a 20 20 20 20 66 6f 72 20  pile is.    for 
7120: 77 69 6e 64 6f 77 73 20 61 6e 64 20 77 68 65 6e  windows and when
7130: 20 69 74 20 69 73 20 66 6f 72 20 75 6e 69 78 2e   it is for unix.
7140: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
7150: 30 30 32 20 4d 61 72 20 31 33 20 28 32 2e 34 2e  002 Mar 13 (2.4.
7160: 31 29 7d 20 7b 0a 3c 6c 69 3e 55 73 69 6e 67 20  1)} {.<li>Using 
7170: 61 6e 20 75 6e 6e 61 6d 65 64 20 73 75 62 71 75  an unnamed subqu
7180: 65 72 79 20 69 6e 20 61 20 46 52 4f 4d 20 63 6c  ery in a FROM cl
7190: 61 75 73 65 20 77 6f 75 6c 64 20 63 61 75 73 65  ause would cause
71a0: 20 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c 69   a segfault.</li
71b0: 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65 72  >.<li>The parser
71c0: 20 6e 6f 77 20 69 6e 73 69 73 74 73 20 6f 6e 20   now insists on 
71d0: 73 65 65 69 6e 67 20 61 20 73 65 6d 69 63 6f 6c  seeing a semicol
71e0: 6f 6e 20 6f 72 20 74 68 65 20 65 6e 64 20 6f 66  on or the end of
71f0: 20 69 6e 70 75 74 20 62 65 66 6f 72 65 0a 20 20   input before.  
7200: 20 20 65 78 65 63 75 74 69 6e 67 20 61 20 73 74    executing a st
7210: 61 74 65 6d 65 6e 74 2e 20 20 54 68 69 73 20 61  atement.  This a
7220: 76 6f 69 64 73 20 61 6e 20 61 63 63 69 64 65 6e  voids an acciden
7230: 74 61 6c 20 64 69 73 61 73 74 65 72 20 69 66 20  tal disaster if 
7240: 74 68 65 0a 20 20 20 20 57 48 45 52 45 20 6b 65  the.    WHERE ke
7250: 79 77 6f 72 64 20 69 73 20 6d 69 73 73 70 65 6c  yword is misspel
7260: 6c 65 64 20 69 6e 20 61 6e 20 55 50 44 41 54 45  led in an UPDATE
7270: 20 6f 72 20 44 45 4c 45 54 45 20 73 74 61 74 65   or DELETE state
7280: 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 0a 63  ment.</li>.}...c
7290: 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 31 30  hng {2002 Mar 10
72a0: 20 28 32 2e 34 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.0)} {.<li>
72b0: 43 68 61 6e 67 65 20 74 68 65 20 6e 61 6d 65 20  Change the name 
72c0: 6f 66 20 74 68 65 20 73 61 6e 69 74 79 5f 63 68  of the sanity_ch
72d0: 65 63 6b 20 50 52 41 47 4d 41 20 74 6f 20 3c 62  eck PRAGMA to <b
72e0: 3e 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b  >integrity_check
72f0: 3c 2f 62 3e 0a 20 20 20 20 61 6e 64 20 6d 61 6b  </b>.    and mak
7300: 65 20 69 74 20 61 76 61 69 6c 61 62 6c 65 20 69  e it available i
7310: 6e 20 61 6c 6c 20 63 6f 6d 70 69 6c 65 73 2e 3c  n all compiles.<
7320: 2f 6c 69 3e 0a 3c 6c 69 3e 53 45 4c 45 43 54 20  /li>.<li>SELECT 
7330: 6d 69 6e 28 29 20 6f 72 20 6d 61 78 28 29 20 6f  min() or max() o
7340: 66 20 61 6e 20 69 6e 64 65 78 65 64 20 63 6f 6c  f an indexed col
7350: 75 6d 6e 20 77 69 74 68 20 6e 6f 20 57 48 45 52  umn with no WHER
7360: 45 20 6f 72 20 47 52 4f 55 50 20 42 59 0a 20 20  E or GROUP BY.  
7370: 20 20 63 6c 61 75 73 65 20 69 73 20 68 61 6e 64    clause is hand
7380: 6c 65 64 20 61 73 20 61 20 73 70 65 63 69 61 6c  led as a special
7390: 20 63 61 73 65 20 77 68 69 63 68 20 61 76 6f 69   case which avoi
73a0: 64 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 74 61  ds a complete ta
73b0: 62 6c 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 3c  ble scan.</li>.<
73c0: 6c 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79  li>Automatically
73d0: 20 67 65 6e 65 72 61 74 65 64 20 52 4f 57 49 44   generated ROWID
73e0: 73 20 61 72 65 20 6e 6f 77 20 73 65 71 75 65 6e  s are now sequen
73f0: 74 69 61 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  tial.</li>.<li>D
7400: 6f 20 6e 6f 74 20 61 6c 6c 6f 77 20 64 6f 74 2d  o not allow dot-
7410: 63 6f 6d 6d 61 6e 64 73 20 6f 66 20 74 68 65 20  commands of the 
7420: 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65  command-line she
7430: 6c 6c 20 74 6f 20 6f 63 63 75 72 20 69 6e 20 74  ll to occur in t
7440: 68 65 0a 20 20 20 20 6d 69 64 64 6c 65 20 6f 66  he.    middle of
7450: 20 61 20 72 65 61 6c 20 53 51 4c 20 63 6f 6d 6d   a real SQL comm
7460: 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  and.</li>.<li>Mo
7470: 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 20 74  difications to t
7480: 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65  he "lemon" parse
7490: 72 20 67 65 6e 65 72 61 74 6f 72 20 73 6f 20 74  r generator so t
74a0: 68 61 74 20 74 68 65 20 70 61 72 73 65 72 20 74  hat the parser t
74b0: 61 62 6c 65 73 0a 20 20 20 20 61 72 65 20 34 20  ables.    are 4 
74c0: 74 69 6d 65 73 20 73 6d 61 6c 6c 65 72 2e 3c 2f  times smaller.</
74d0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
74e0: 70 70 6f 72 74 20 66 6f 72 20 75 73 65 72 2d 64  pport for user-d
74f0: 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73  efined functions
7500: 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 69 6e 20   implemented in 
7510: 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  C.</li>.<li>Adde
7520: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6e 65  d support for ne
7530: 77 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e  w functions: <b>
7540: 63 6f 61 6c 65 73 63 65 28 29 3c 2f 62 3e 2c 20  coalesce()</b>, 
7550: 3c 62 3e 6c 6f 77 65 72 28 29 3c 2f 62 3e 2c 0a  <b>lower()</b>,.
7560: 20 20 20 20 3c 62 3e 75 70 70 65 72 28 29 3c 2f      <b>upper()</
7570: 62 3e 2c 20 61 6e 64 20 3c 62 3e 72 61 6e 64 6f  b>, and <b>rando
7580: 6d 28 29 3c 2f 62 3e 0a 3c 6c 69 3e 41 64 64 65  m()</b>.<li>Adde
7590: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 56 49  d support for VI
75a0: 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  EWs.</li>.<li>Ad
75b0: 64 65 64 20 74 68 65 20 73 75 62 71 75 65 72 79  ded the subquery
75c0: 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74 69   flattening opti
75d0: 6d 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  mizer.</li>.<li>
75e0: 4d 6f 64 69 66 69 65 64 20 74 68 65 20 42 2d 54  Modified the B-T
75f0: 72 65 65 20 61 6e 64 20 50 61 67 65 72 20 6d 6f  ree and Pager mo
7600: 64 75 6c 65 73 20 73 6f 20 74 68 61 74 20 64 69  dules so that di
7610: 73 6b 20 70 61 67 65 73 20 74 68 61 74 20 64 6f  sk pages that do
7620: 20 6e 6f 74 0a 20 20 20 20 63 6f 6e 74 61 69 6e   not.    contain
7630: 20 72 65 61 6c 20 64 61 74 61 20 28 66 72 65 65   real data (free
7640: 20 70 61 67 65 73 29 20 61 72 65 20 6e 6f 74 20   pages) are not 
7650: 6a 6f 75 72 6e 61 6c 65 64 20 61 6e 64 20 61 72  journaled and ar
7660: 65 20 6e 6f 74 0a 20 20 20 20 77 72 69 74 74 65  e not.    writte
7670: 6e 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 20 62 61  n from memory ba
7680: 63 6b 20 74 6f 20 74 68 65 20 64 69 73 6b 20 77  ck to the disk w
7690: 68 65 6e 20 74 68 65 79 20 63 68 61 6e 67 65 2e  hen they change.
76a0: 20 20 54 68 69 73 20 64 6f 65 73 20 6e 6f 74 20    This does not 
76b0: 0a 20 20 20 20 69 6d 70 61 63 74 20 64 61 74 61  .    impact data
76c0: 62 61 73 65 20 69 6e 74 65 67 72 69 74 79 2c 20  base integrity, 
76d0: 73 69 6e 63 65 20 74 68 65 0a 20 20 20 20 70 61  since the.    pa
76e0: 67 65 73 20 63 6f 6e 74 61 69 6e 20 6e 6f 20 72  ges contain no r
76f0: 65 61 6c 20 64 61 74 61 2c 20 62 75 74 20 69 74  eal data, but it
7700: 20 64 6f 65 73 20 6d 61 6b 65 20 6c 61 72 67 65   does make large
7710: 20 49 4e 53 45 52 54 20 6f 70 65 72 61 74 69 6f   INSERT operatio
7720: 6e 73 0a 20 20 20 20 61 62 6f 75 74 20 32 2e 35  ns.    about 2.5
7730: 20 74 69 6d 65 73 20 66 61 73 74 65 72 20 61 6e   times faster an
7740: 64 20 6c 61 72 67 65 20 44 45 4c 45 54 45 73 20  d large DELETEs 
7750: 61 62 6f 75 74 20 35 20 74 69 6d 65 73 20 66 61  about 5 times fa
7760: 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ster.</li>.<li>M
7770: 61 64 65 20 74 68 65 20 43 41 43 48 45 5f 53 49  ade the CACHE_SI
7780: 5a 45 20 70 72 61 67 6d 61 20 70 65 72 73 69 73  ZE pragma persis
7790: 74 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  tent</li>.<li>Ad
77a0: 64 65 64 20 74 68 65 20 53 59 4e 43 48 52 4f 4e  ded the SYNCHRON
77b0: 4f 55 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a  OUS pragma</li>.
77c0: 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67 20  <li>Fixed a bug 
77d0: 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67  that was causing
77e0: 20 75 70 64 61 74 65 73 20 74 6f 20 66 61 69 6c   updates to fail
77f0: 20 69 6e 73 69 64 65 20 6f 66 20 74 72 61 6e 73   inside of trans
7800: 61 63 74 69 6f 6e 73 20 77 68 65 6e 0a 20 20 20  actions when.   
7810: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 63 6f   the database co
7820: 6e 74 61 69 6e 65 64 20 61 20 74 65 6d 70 6f 72  ntained a tempor
7830: 61 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  ary table.</li>.
7840: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65  }..chng {2002 Fe
7850: 62 20 31 38 20 28 32 2e 33 2e 33 29 7d 20 7b 0a  b 18 (2.3.3)} {.
7860: 3c 6c 69 3e 41 6c 6c 6f 77 20 69 64 65 6e 74 69  <li>Allow identi
7870: 66 69 65 72 73 20 74 6f 20 62 65 20 71 75 6f 74  fiers to be quot
7880: 65 64 20 69 6e 20 73 71 75 61 72 65 20 62 72 61  ed in square bra
7890: 63 6b 65 74 73 2c 20 66 6f 72 20 63 6f 6d 70 61  ckets, for compa
78a0: 74 69 62 69 6c 69 74 79 0a 20 20 20 20 77 69 74  tibility.    wit
78b0: 68 20 4d 53 2d 41 63 63 65 73 73 2e 3c 2f 6c 69  h MS-Access.</li
78c0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
78d0: 6f 72 74 20 66 6f 72 20 73 75 62 2d 71 75 65 72  ort for sub-quer
78e0: 69 65 73 20 69 6e 20 74 68 65 20 46 52 4f 4d 20  ies in the FROM 
78f0: 63 6c 61 75 73 65 20 6f 66 20 61 20 53 45 4c 45  clause of a SELE
7900: 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72  CT.</li>.<li>Mor
7910: 65 20 65 66 66 69 63 69 65 6e 74 20 69 6d 70 6c  e efficient impl
7920: 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 73 71  ementation of sq
7930: 6c 69 74 65 46 69 6c 65 45 78 69 73 74 73 28 29  liteFileExists()
7940: 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e 0a   under Windows..
7950: 20 20 20 20 28 62 79 20 4a 6f 65 6c 20 4c 75 73      (by Joel Lus
7960: 63 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  cy)</li>.<li>The
7970: 20 56 41 4c 55 45 53 20 63 6c 61 75 73 65 20 6f   VALUES clause o
7980: 66 20 61 6e 20 49 4e 53 45 52 54 20 63 61 6e 20  f an INSERT can 
7990: 6e 6f 77 20 63 6f 6e 74 61 69 6e 20 65 78 70 72  now contain expr
79a0: 65 73 73 69 6f 6e 73 2c 20 69 6e 63 6c 75 64 69  essions, includi
79b0: 6e 67 0a 20 20 20 20 73 63 61 6c 61 72 20 53 45  ng.    scalar SE
79c0: 4c 45 43 54 20 63 6c 61 75 73 65 73 2e 3c 2f 6c  LECT clauses.</l
79d0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
79e0: 70 6f 72 74 20 66 6f 72 20 43 52 45 41 54 45 20  port for CREATE 
79f0: 54 41 42 4c 45 20 41 53 20 53 45 4c 45 43 54 3c  TABLE AS SELECT<
7a00: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
7a10: 3a 20 43 72 65 61 74 69 6e 67 20 61 6e 64 20 64  : Creating and d
7a20: 72 6f 70 70 69 6e 67 20 61 20 74 61 62 6c 65 20  ropping a table 
7a30: 61 6c 6c 20 77 69 74 68 69 6e 20 61 20 73 69 6e  all within a sin
7a40: 67 6c 65 0a 20 20 20 20 74 72 61 6e 73 61 63 74  gle.    transact
7a50: 69 6f 6e 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b  ion was not work
7a60: 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ing.</li>.}..chn
7a70: 67 20 7b 32 30 30 32 20 46 65 62 20 31 34 20 28  g {2002 Feb 14 (
7a80: 32 2e 33 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.3.2)} {.<li>Bu
7a90: 67 20 66 69 78 3a 20 54 68 65 72 65 20 77 61 73  g fix: There was
7aa0: 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 61 73   an incorrect as
7ab0: 73 65 72 74 28 29 20 69 6e 20 70 61 67 65 72 2e  sert() in pager.
7ac0: 63 2e 20 20 54 68 65 20 72 65 61 6c 20 63 6f 64  c.  The real cod
7ad0: 65 20 77 61 73 0a 20 20 20 20 61 6c 6c 20 63 6f  e was.    all co
7ae0: 72 72 65 63 74 20 28 61 73 20 66 61 72 20 61 73  rrect (as far as
7af0: 20 69 73 20 6b 6e 6f 77 6e 29 20 73 6f 20 65 76   is known) so ev
7b00: 65 72 79 74 68 69 6e 67 20 73 68 6f 75 6c 64 20  erything should 
7b10: 77 6f 72 6b 20 4f 4b 20 69 66 20 79 6f 75 0a 20  work OK if you. 
7b20: 20 20 20 63 6f 6d 70 69 6c 65 20 77 69 74 68 20     compile with 
7b30: 2d 44 4e 44 45 42 55 47 3d 31 2e 20 20 57 68 65  -DNDEBUG=1.  Whe
7b40: 6e 20 61 73 73 65 72 74 73 20 61 72 65 20 6e 6f  n asserts are no
7b50: 74 20 64 69 73 61 62 6c 65 64 2c 20 74 68 65 72  t disabled, ther
7b60: 65 0a 20 20 20 20 63 6f 75 6c 64 20 62 65 20 61  e.    could be a
7b70: 20 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   fault.</li>.}..
7b80: 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31  chng {2002 Feb 1
7b90: 33 20 28 32 2e 33 2e 31 29 7d 20 7b 0a 3c 6c 69  3 (2.3.1)} {.<li
7ba0: 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61 73 73  >Bug fix: An ass
7bb0: 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69  ertion was faili
7bc0: 6e 67 20 69 66 20 22 50 52 41 47 4d 41 20 66 75  ng if "PRAGMA fu
7bd0: 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 3d  ll_column_names=
7be0: 4f 4e 3b 22 20 77 61 73 0a 20 20 20 20 73 65 74  ON;" was.    set
7bf0: 20 61 6e 64 20 79 6f 75 20 64 69 64 20 61 20 71   and you did a q
7c00: 75 65 72 79 20 74 68 61 74 20 75 73 65 64 20 61  uery that used a
7c10: 20 72 6f 77 69 64 2c 20 6c 69 6b 65 20 74 68 69   rowid, like thi
7c20: 73 3a 20 20 0a 20 20 20 20 22 53 45 4c 45 43 54  s:  .    "SELECT
7c30: 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20 2e   rowid, * FROM .
7c40: 2e 2e 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ..".</li>.}..chn
7c50: 67 20 7b 32 30 30 32 20 4a 61 6e 20 33 30 20 28  g {2002 Jan 30 (
7c60: 32 2e 33 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.3.0)} {.<li>Fi
7c70: 78 20 61 20 73 65 72 69 6f 75 73 20 62 75 67 20  x a serious bug 
7c80: 69 6e 20 74 68 65 20 49 4e 53 45 52 54 20 63 6f  in the INSERT co
7c90: 6d 6d 61 6e 64 20 77 68 69 63 68 20 77 61 73 20  mmand which was 
7ca0: 63 61 75 73 69 6e 67 20 64 61 74 61 20 74 6f 20  causing data to 
7cb0: 67 6f 0a 20 20 20 20 69 6e 74 6f 20 74 68 65 20  go.    into the 
7cc0: 77 72 6f 6e 67 20 63 6f 6c 75 6d 6e 73 20 69 66  wrong columns if
7cd0: 20 74 68 65 20 64 61 74 61 20 73 6f 75 72 63 65   the data source
7ce0: 20 77 61 73 20 61 20 53 45 4c 45 43 54 20 61 6e   was a SELECT an
7cf0: 64 20 74 68 65 20 49 4e 53 45 52 54 0a 20 20 20  d the INSERT.   
7d00: 20 63 6c 61 75 73 65 73 20 73 70 65 63 69 66 69   clauses specifi
7d10: 65 64 20 69 74 73 20 63 6f 6c 75 6d 6e 73 20 69  ed its columns i
7d20: 6e 20 73 6f 6d 65 20 6f 72 64 65 72 20 6f 74 68  n some order oth
7d30: 65 72 20 74 68 61 6e 20 74 68 65 20 64 65 66 61  er than the defa
7d40: 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ult.</li>.<li>Ad
7d50: 64 65 64 20 74 68 65 20 61 62 69 6c 69 74 79 20  ded the ability 
7d60: 74 6f 20 72 65 73 6f 6c 76 65 20 63 6f 6e 73 74  to resolve const
7d70: 72 61 69 6e 74 20 63 6f 6e 66 6c 69 63 74 73 20  raint conflicts 
7d80: 69 73 20 77 61 79 73 20 6f 74 68 65 72 20 74 68  is ways other th
7d90: 61 6e 0a 20 20 20 20 61 6e 20 61 62 6f 72 74 20  an.    an abort 
7da0: 61 6e 64 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 53  and rollback.  S
7db0: 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61  ee the documenta
7dc0: 74 69 6f 6e 20 6f 6e 20 74 68 65 20 22 4f 4e 20  tion on the "ON 
7dd0: 43 4f 4e 46 4c 49 43 54 22 0a 20 20 20 20 63 6c  CONFLICT".    cl
7de0: 61 75 73 65 20 66 6f 72 20 64 65 74 61 69 6c 73  ause for details
7df0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 65 6d 70 6f  .</li>.<li>Tempo
7e00: 72 61 72 79 20 66 69 6c 65 73 20 61 72 65 20 6e  rary files are n
7e10: 6f 77 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  ow automatically
7e20: 20 64 65 6c 65 74 65 64 20 62 79 20 74 68 65 20   deleted by the 
7e30: 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d  operating system
7e40: 0a 20 20 20 20 77 68 65 6e 20 63 6c 6f 73 65 64  .    when closed
7e50: 2e 20 20 54 68 65 72 65 20 61 72 65 20 6e 6f 20  .  There are no 
7e60: 6d 6f 72 65 20 64 61 6e 67 6c 69 6e 67 20 74 65  more dangling te
7e70: 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 6f 6e  mporary files on
7e80: 20 61 20 70 72 6f 67 72 61 6d 0a 20 20 20 20 63   a program.    c
7e90: 72 61 73 68 2e 20 20 28 49 66 20 74 68 65 20 4f  rash.  (If the O
7ea0: 53 20 63 72 61 73 68 65 73 2c 20 66 73 63 6b 20  S crashes, fsck 
7eb0: 77 69 6c 6c 20 64 65 6c 65 74 65 20 74 68 65 20  will delete the 
7ec0: 66 69 6c 65 20 61 66 74 65 72 20 72 65 62 6f 6f  file after reboo
7ed0: 74 20 0a 20 20 20 20 75 6e 64 65 72 20 55 6e 69  t .    under Uni
7ee0: 78 2e 20 20 49 20 64 6f 20 6e 6f 74 20 6b 6e 6f  x.  I do not kno
7ef0: 77 20 77 68 61 74 20 68 61 70 70 65 6e 73 20 75  w what happens u
7f00: 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e 29 3c 2f  nder Windows.)</
7f10: 6c 69 3e 0a 3c 6c 69 3e 4e 4f 54 20 4e 55 4c 4c  li>.<li>NOT NULL
7f20: 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65   constraints are
7f30: 20 68 6f 6e 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c   honored.</li>.<
7f40: 6c 69 3e 54 68 65 20 43 4f 50 59 20 63 6f 6d 6d  li>The COPY comm
7f50: 61 6e 64 20 70 75 74 73 20 4e 55 4c 4c 73 20 69  and puts NULLs i
7f60: 6e 20 63 6f 6c 75 6d 6e 73 20 77 68 6f 73 65 20  n columns whose 
7f70: 64 61 74 61 20 69 73 20 27 5c 4e 27 2e 3c 2f 6c  data is '\N'.</l
7f80: 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 43 4f  i>.<li>In the CO
7f90: 50 59 20 63 6f 6d 6d 61 6e 64 2c 20 62 61 63 6b  PY command, back
7fa0: 73 6c 61 73 68 20 63 61 6e 20 6e 6f 77 20 62 65  slash can now be
7fb0: 20 75 73 65 64 20 74 6f 20 65 73 63 61 70 65 20   used to escape 
7fc0: 61 20 6e 65 77 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a  a newline.</li>.
7fd0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 53 41  <li>Added the SA
7fe0: 4e 49 54 59 5f 43 48 45 43 4b 20 70 72 61 67 6d  NITY_CHECK pragm
7ff0: 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  a.</li>.}..chng 
8000: 7b 32 30 30 32 20 4a 61 6e 20 32 38 20 28 32 2e  {2002 Jan 28 (2.
8010: 32 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 49 6d 70 6f  2.5)} {.<li>Impo
8020: 72 74 61 6e 74 20 62 75 67 20 66 69 78 3a 20 74  rtant bug fix: t
8030: 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 77  he IN operator w
8040: 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 69  as not working i
8050: 66 20 65 69 74 68 65 72 20 74 68 65 0a 20 20 20  f either the.   
8060: 20 6c 65 66 74 2d 68 61 6e 64 20 6f 72 20 72 69   left-hand or ri
8070: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20 77 61  ght-hand side wa
8080: 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 61  s derived from a
8090: 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  n INTEGER PRIMAR
80a0: 59 20 4b 45 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  Y KEY.</li>.<li>
80b0: 44 6f 20 6e 6f 74 20 65 73 63 61 70 65 20 74 68  Do not escape th
80c0: 65 20 62 61 63 6b 73 6c 61 73 68 20 27 5c 27 20  e backslash '\' 
80d0: 63 68 61 72 61 63 74 65 72 20 69 6e 20 74 68 65  character in the
80e0: 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 0a 20   output of the. 
80f0: 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e     <b>sqlite</b>
8100: 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 63   command-line ac
8110: 63 65 73 73 20 70 72 6f 67 72 61 6d 2e 3c 2f 6c  cess program.</l
8120: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
8130: 20 4a 61 6e 20 32 32 20 28 32 2e 32 2e 34 29 7d   Jan 22 (2.2.4)}
8140: 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c 61 62 65 6c   {.<li>The label
8150: 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 6f 66   to the right of
8160: 20 61 6e 20 41 53 20 69 6e 20 74 68 65 20 63 6f   an AS in the co
8170: 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61 20 53  lumn list of a S
8180: 45 4c 45 43 54 20 63 61 6e 20 6e 6f 77 0a 20 20  ELECT can now.  
8190: 20 20 62 65 20 75 73 65 64 20 61 73 20 70 61 72    be used as par
81a0: 74 20 6f 66 20 61 6e 20 65 78 70 72 65 73 73 69  t of an expressi
81b0: 6f 6e 20 69 6e 20 74 68 65 20 57 48 45 52 45 2c  on in the WHERE,
81c0: 20 4f 52 44 45 52 20 42 59 2c 20 47 52 4f 55 50   ORDER BY, GROUP
81d0: 20 42 59 2c 20 61 6e 64 2f 6f 72 0a 20 20 20 20   BY, and/or.    
81e0: 48 41 56 49 4e 47 20 63 6c 61 75 73 65 73 2e 3c  HAVING clauses.<
81f0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
8200: 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 2d 73 65  ug in the <b>-se
8210: 70 61 72 61 74 6f 72 3c 2f 62 3e 20 63 6f 6d 6d  parator</b> comm
8220: 61 6e 64 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e 20  and-line option 
8230: 74 6f 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  to the <b>sqlite
8240: 3c 2f 62 3e 0a 20 20 20 20 63 6f 6d 6d 61 6e 64  </b>.    command
8250: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
8260: 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 74 68   problem with th
8270: 65 20 73 6f 72 74 20 6f 72 64 65 72 20 77 68 65  e sort order whe
8280: 6e 20 63 6f 6d 70 61 72 69 6e 67 20 75 70 70 65  n comparing uppe
8290: 72 2d 63 61 73 65 20 73 74 72 69 6e 67 73 20 61  r-case strings a
82a0: 67 61 69 6e 73 74 0a 20 20 20 20 63 68 61 72 61  gainst.    chara
82b0: 63 74 65 72 73 20 67 72 65 61 74 65 72 20 74 68  cters greater th
82c0: 61 6e 20 27 5a 27 20 62 75 74 20 6c 65 73 73 20  an 'Z' but less 
82d0: 74 68 61 6e 20 27 61 27 2e 3c 2f 6c 69 3e 0a 3c  than 'a'.</li>.<
82e0: 6c 69 3e 52 65 70 6f 72 74 20 61 6e 20 65 72 72  li>Report an err
82f0: 6f 72 20 69 66 20 61 6e 20 4f 52 44 45 52 20 42  or if an ORDER B
8300: 59 20 6f 72 20 47 52 4f 55 50 20 42 59 20 65 78  Y or GROUP BY ex
8310: 70 72 65 73 73 69 6f 6e 20 69 73 20 63 6f 6e 73  pression is cons
8320: 74 61 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tant.</li>.}..ch
8330: 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 31 36 20  ng {2002 Jan 16 
8340: 28 32 2e 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.2.3)} {.<li>F
8350: 69 78 20 77 61 72 6e 69 6e 67 20 6d 65 73 73 61  ix warning messa
8360: 67 65 73 20 69 6e 20 56 43 2b 2b 20 37 2e 30 2e  ges in VC++ 7.0.
8370: 20 20 28 50 61 74 63 68 65 73 20 66 72 6f 6d 20    (Patches from 
8380: 6e 69 63 6f 6c 61 73 33 35 32 30 30 31 29 3c 2f  nicolas352001)</
8390: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65  li>.<li>Make the
83a0: 20 6c 69 62 72 61 72 79 20 74 68 72 65 61 64 2d   library thread-
83b0: 73 61 66 65 2e 20 20 28 54 68 65 20 63 6f 64 65  safe.  (The code
83c0: 20 69 73 20 74 68 65 72 65 20 61 6e 64 20 61 70   is there and ap
83d0: 70 65 61 72 73 20 74 6f 20 77 6f 72 6b 0a 20 20  pears to work.  
83e0: 20 20 62 75 74 20 68 61 73 20 6e 6f 74 20 62 65    but has not be
83f0: 65 6e 20 73 74 72 65 73 73 65 64 2e 29 3c 2f 6c  en stressed.)</l
8400: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
8410: 20 6e 65 77 20 3c 62 3e 73 71 6c 69 74 65 5f 6c   new <b>sqlite_l
8420: 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64  ast_insert_rowid
8430: 28 29 3c 2f 62 3e 20 41 50 49 20 66 75 6e 63 74  ()</b> API funct
8440: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ion.</li>.}..chn
8450: 67 20 7b 32 30 30 32 20 4a 61 6e 20 31 33 20 28  g {2002 Jan 13 (
8460: 32 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.2.2)} {.<li>Bu
8470: 67 20 66 69 78 3a 20 41 6e 20 61 73 73 65 72 74  g fix: An assert
8480: 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20  ion was failing 
8490: 77 68 65 6e 20 61 20 74 65 6d 70 6f 72 61 72 79  when a temporary
84a0: 20 74 61 62 6c 65 20 77 69 74 68 20 61 6e 20 69   table with an i
84b0: 6e 64 65 78 0a 20 20 20 20 68 61 64 20 74 68 65  ndex.    had the
84c0: 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 61 20   same name as a 
84d0: 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c 65 20  permanent table 
84e0: 63 72 65 61 74 65 64 20 62 79 20 61 20 73 65 70  created by a sep
84f0: 61 72 61 74 65 20 70 72 6f 63 65 73 73 2e 3c 2f  arate process.</
8500: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
8510: 20 55 70 64 61 74 65 73 20 74 6f 20 74 61 62 6c   Updates to tabl
8520: 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e  es containing an
8530: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59   INTEGER PRIMARY
8540: 20 4b 45 59 20 61 6e 64 20 61 6e 0a 20 20 20 20   KEY and an.    
8550: 69 6e 64 65 78 20 63 6f 75 6c 64 20 66 61 69 6c  index could fail
8560: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8570: 32 30 30 32 20 4a 61 6e 20 39 20 28 32 2e 32 2e  2002 Jan 9 (2.2.
8580: 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  1)} {.<li>Bug fi
8590: 78 3a 20 41 6e 20 61 74 74 65 6d 70 74 20 74 6f  x: An attempt to
85a0: 20 64 65 6c 65 74 65 20 61 20 73 69 6e 67 6c 65   delete a single
85b0: 20 72 6f 77 20 6f 66 20 61 20 74 61 62 6c 65 20   row of a table 
85c0: 77 69 74 68 20 61 20 57 48 45 52 45 0a 20 20 20  with a WHERE.   
85d0: 20 63 6c 61 75 73 65 20 6f 66 20 22 52 4f 57 49   clause of "ROWI
85e0: 44 3d 78 22 20 77 68 65 6e 20 6e 6f 20 73 75 63  D=x" when no suc
85f0: 68 20 72 6f 77 69 64 20 65 78 69 73 74 73 20 77  h rowid exists w
8600: 61 73 20 63 61 75 73 69 6e 67 20 61 6e 20 65 72  as causing an er
8610: 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ror.</li>.<li>Bu
8620: 67 20 66 69 78 3a 20 50 61 73 73 69 6e 67 20 69  g fix: Passing i
8630: 6e 20 61 20 4e 55 4c 4c 20 61 73 20 74 68 65 20  n a NULL as the 
8640: 33 72 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f  3rd parameter to
8650: 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 28   <b>sqlite_open(
8660: 29 3c 2f 62 3e 0a 20 20 20 20 77 6f 75 6c 64 20  )</b>.    would 
8670: 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 20  sometimes cause 
8680: 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e  a coredump.</li>
8690: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 44 52  .<li>Bug fix: DR
86a0: 4f 50 20 54 41 42 4c 45 20 66 6f 6c 6c 6f 77 65  OP TABLE followe
86b0: 64 20 62 79 20 61 20 43 52 45 41 54 45 20 54 41  d by a CREATE TA
86c0: 42 4c 45 20 77 69 74 68 20 74 68 65 20 73 61 6d  BLE with the sam
86d0: 65 20 6e 61 6d 65 20 61 6c 6c 0a 20 20 20 20 77  e name all.    w
86e0: 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 20 74  ithin a single t
86f0: 72 61 6e 73 61 63 74 69 6f 6e 20 77 61 73 20 63  ransaction was c
8700: 61 75 73 69 6e 67 20 61 20 63 6f 72 65 64 75 6d  ausing a coredum
8710: 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  p.</li>.<li>Make
8720: 66 69 6c 65 20 75 70 64 61 74 65 73 20 66 72 6f  file updates fro
8730: 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e 3c 2f 6c  m A. Rottmann</l
8740: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
8750: 20 44 65 63 20 32 32 20 28 32 2e 32 2e 30 29 7d   Dec 22 (2.2.0)}
8760: 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 73 20 6f   {.<li>Columns o
8770: 66 20 74 79 70 65 20 49 4e 54 45 47 45 52 20 50  f type INTEGER P
8780: 52 49 4d 41 52 59 20 4b 45 59 20 61 72 65 20 61  RIMARY KEY are a
8790: 63 74 75 61 6c 6c 79 20 75 73 65 64 20 61 73 20  ctually used as 
87a0: 74 68 65 20 70 72 69 6d 61 72 79 0a 20 20 20 20  the primary.    
87b0: 6b 65 79 20 69 6e 20 75 6e 64 65 72 6c 79 69 6e  key in underlyin
87c0: 67 20 42 2d 54 72 65 65 20 72 65 70 72 65 73 65  g B-Tree represe
87d0: 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 74  ntation of the t
87e0: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  able.</li>.<li>S
87f0: 65 76 65 72 61 6c 20 6f 62 73 63 75 72 65 2c 20  everal obscure, 
8800: 75 6e 72 65 6c 61 74 65 64 20 62 75 67 73 20 77  unrelated bugs w
8810: 65 72 65 20 66 6f 75 6e 64 20 61 6e 64 20 66 69  ere found and fi
8820: 78 65 64 20 77 68 69 6c 65 20 0a 20 20 20 20 69  xed while .    i
8830: 6d 70 6c 65 6d 65 6e 74 65 64 20 74 68 65 20 69  mplemented the i
8840: 6e 74 65 67 65 72 20 70 72 69 6d 61 72 79 20 6b  nteger primary k
8850: 65 79 20 63 68 61 6e 67 65 20 6f 66 20 74 68 65  ey change of the
8860: 20 70 72 65 76 69 6f 75 73 20 62 75 6c 6c 65 74   previous bullet
8870: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
8880: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
8890: 73 70 65 63 69 66 79 20 22 2a 22 20 61 73 20 70  specify "*" as p
88a0: 61 72 74 20 6f 66 20 61 20 6c 61 72 67 65 72 20  art of a larger 
88b0: 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 69 6e 0a 20  column list in. 
88c0: 20 20 20 74 68 65 20 72 65 73 75 6c 74 20 73 65     the result se
88d0: 63 74 69 6f 6e 20 6f 66 20 61 20 53 45 4c 45 43  ction of a SELEC
88e0: 54 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 46 6f  T statement.  Fo
88f0: 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 3c  r example:.    <
8900: 6e 6f 62 72 3e 22 3c 62 3e 53 45 4c 45 43 54 20  nobr>"<b>SELECT 
8910: 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20 74 61  rowid, * FROM ta
8920: 62 6c 65 31 3b 3c 2f 62 3e 22 3c 2f 6e 6f 62 72  ble1;</b>"</nobr
8930: 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61  >.</li>.<li>Upda
8940: 74 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 20  tes to comments 
8950: 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  and documentatio
8960: 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  n.</li>.}..chng 
8970: 7b 32 30 30 31 20 44 65 63 20 31 34 20 28 32 2e  {2001 Dec 14 (2.
8980: 31 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  1.7)} {.<li>Fix 
8990: 61 20 62 75 67 20 69 6e 20 3c 62 3e 43 52 45 41  a bug in <b>CREA
89a0: 54 45 20 54 45 4d 50 4f 52 41 52 59 20 54 41 42  TE TEMPORARY TAB
89b0: 4c 45 3c 2f 62 3e 20 77 68 69 63 68 20 77 61 73  LE</b> which was
89c0: 20 63 61 75 73 69 6e 67 20 74 68 65 0a 20 20 20   causing the.   
89d0: 20 74 61 62 6c 65 20 74 6f 20 62 65 20 69 6e 69   table to be ini
89e0: 74 69 61 6c 6c 79 20 61 6c 6c 6f 63 61 74 65 64  tially allocated
89f0: 20 69 6e 20 74 68 65 20 6d 61 69 6e 20 64 61 74   in the main dat
8a00: 61 62 61 73 65 20 66 69 6c 65 20 69 6e 73 74 65  abase file inste
8a10: 61 64 0a 20 20 20 20 6f 66 20 69 6e 20 74 68 65  ad.    of in the
8a20: 20 73 65 70 61 72 61 74 65 20 74 65 6d 70 6f 72   separate tempor
8a30: 61 72 79 20 66 69 6c 65 2e 20 20 54 68 69 73 20  ary file.  This 
8a40: 62 75 67 20 63 6f 75 6c 64 20 63 61 75 73 65 20  bug could cause 
8a50: 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20 20  the library.    
8a60: 74 6f 20 73 75 66 66 65 72 20 61 6e 20 61 73 73  to suffer an ass
8a70: 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 61  ertion failure a
8a80: 6e 64 20 69 74 20 63 6f 75 6c 64 20 63 61 75 73  nd it could caus
8a90: 65 20 22 70 61 67 65 20 6c 65 61 6b 73 22 20 69  e "page leaks" i
8aa0: 6e 20 74 68 65 0a 20 20 20 20 6d 61 69 6e 20 64  n the.    main d
8ab0: 61 74 61 62 61 73 65 20 66 69 6c 65 2e 0a 3c 6c  atabase file..<l
8ac0: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
8ad0: 68 65 20 62 2d 74 72 65 65 20 73 75 62 73 79 73  he b-tree subsys
8ae0: 74 65 6d 20 74 68 61 74 20 63 6f 75 6c 64 20 73  tem that could s
8af0: 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 20 74  ometimes cause t
8b00: 68 65 20 66 69 72 73 74 0a 20 20 20 20 72 6f 77  he first.    row
8b10: 20 6f 66 20 61 20 74 61 62 6c 65 20 74 6f 20 62   of a table to b
8b20: 65 20 72 65 70 65 61 74 65 64 20 64 75 72 69 6e  e repeated durin
8b30: 67 20 61 20 64 61 74 61 62 61 73 65 20 73 63 61  g a database sca
8b40: 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  n.</li>.}..chng 
8b50: 7b 32 30 30 31 20 44 65 63 20 31 34 20 28 32 2e  {2001 Dec 14 (2.
8b60: 31 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  1.6)} {.<li>Fix 
8b70: 74 68 65 20 6c 6f 63 6b 69 6e 67 20 6d 65 63 68  the locking mech
8b80: 61 6e 69 73 6d 20 79 65 74 20 61 67 61 69 6e 20  anism yet again 
8b90: 74 6f 20 70 72 65 76 65 6e 74 0a 20 20 20 20 3c  to prevent.    <
8ba0: 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c  b>sqlite_exec()<
8bb0: 2f 62 3e 20 66 72 6f 6d 20 72 65 74 75 72 6e 69  /b> from returni
8bc0: 6e 67 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43  ng SQLITE_PROTOC
8bd0: 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73 73 61  OL.    unnecessa
8be0: 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69 6d 65  rily.  This time
8bf0: 20 74 68 65 20 62 75 67 20 77 61 73 20 61 20 72   the bug was a r
8c00: 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69 6e  ace condition in
8c10: 0a 20 20 20 20 74 68 65 20 6c 6f 63 6b 69 6e 67  .    the locking
8c20: 20 63 6f 64 65 2e 20 20 54 68 69 73 20 63 68 61   code.  This cha
8c30: 6e 67 65 20 65 66 66 65 63 74 73 20 62 6f 74 68  nge effects both
8c40: 20 50 4f 53 49 58 20 61 6e 64 20 57 69 6e 64 6f   POSIX and Windo
8c50: 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d  ws users.</li>.}
8c60: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63  ..chng {2001 Dec
8c70: 20 36 20 28 32 2e 31 2e 35 29 7d 20 7b 0a 3c 6c   6 (2.1.5)} {.<l
8c80: 69 3e 46 69 78 20 66 6f 72 20 61 6e 6f 74 68 65  i>Fix for anothe
8c90: 72 20 70 72 6f 62 6c 65 6d 20 28 75 6e 72 65 6c  r problem (unrel
8ca0: 61 74 65 64 20 74 6f 20 74 68 65 20 6f 6e 65 20  ated to the one 
8cb0: 66 69 78 65 64 20 69 6e 20 32 2e 31 2e 34 29 20  fixed in 2.1.4) 
8cc0: 0a 20 20 20 20 74 68 61 74 20 73 6f 6d 65 74 69  .    that someti
8cd0: 6d 65 73 20 63 61 75 73 65 73 20 3c 62 3e 73 71  mes causes <b>sq
8ce0: 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20  lite_exec()</b> 
8cf0: 74 6f 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45  to return SQLITE
8d00: 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e  _PROTOCOL.    un
8d10: 6e 65 63 65 73 73 61 72 69 6c 79 2e 20 20 54 68  necessarily.  Th
8d20: 69 73 20 74 69 6d 65 20 74 68 65 20 62 75 67 20  is time the bug 
8d30: 77 61 73 0a 20 20 20 20 69 6e 20 74 68 65 20 50  was.    in the P
8d40: 4f 53 49 58 20 6c 6f 63 6b 69 6e 67 20 63 6f 64  OSIX locking cod
8d50: 65 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74  e and should not
8d60: 20 65 66 66 65 63 74 20 77 69 6e 64 6f 77 73 20   effect windows 
8d70: 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  users.</li>.}..c
8d80: 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 34 20  hng {2001 Dec 4 
8d90: 28 32 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 53  (2.1.4)} {.<li>S
8da0: 6f 6d 65 74 69 6d 65 73 20 3c 62 3e 73 71 6c 69  ometimes <b>sqli
8db0: 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77 6f  te_exec()</b> wo
8dc0: 75 6c 64 20 72 65 74 75 72 6e 20 53 51 4c 49 54  uld return SQLIT
8dd0: 45 5f 50 52 4f 54 4f 43 4f 4c 20 77 68 65 6e 20  E_PROTOCOL when 
8de0: 69 74 0a 20 20 20 20 73 68 6f 75 6c 64 20 68 61  it.    should ha
8df0: 76 65 20 72 65 74 75 72 6e 65 64 20 53 51 4c 49  ve returned SQLI
8e00: 54 45 5f 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c  TE_BUSY.</li>.<l
8e10: 69 3e 54 68 65 20 66 69 78 20 74 6f 20 74 68 65  i>The fix to the
8e20: 20 70 72 65 76 69 6f 75 73 20 62 75 67 20 75 6e   previous bug un
8e30: 63 6f 76 65 72 65 64 20 61 20 64 65 61 64 6c 6f  covered a deadlo
8e40: 63 6b 20 77 68 69 63 68 20 77 61 73 20 61 6c 73  ck which was als
8e50: 6f 0a 20 20 20 20 66 69 78 65 64 2e 3c 2f 6c 69  o.    fixed.</li
8e60: 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62  >.<li>Add the ab
8e70: 69 6c 69 74 79 20 74 6f 20 70 75 74 20 61 20 73  ility to put a s
8e80: 69 6e 67 6c 65 20 2e 63 6f 6d 6d 61 6e 64 20 69  ingle .command i
8e90: 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72 67  n the second arg
8ea0: 75 6d 65 6e 74 0a 20 20 20 20 6f 66 20 74 68 65  ument.    of the
8eb0: 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 3c 2f 6c   sqlite shell</l
8ec0: 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74  i>.<li>Updates t
8ed0: 6f 20 74 68 65 20 46 41 51 3c 2f 6c 69 3e 0a 7d  o the FAQ</li>.}
8ee0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76  ..chng {2001 Nov
8ef0: 20 32 33 20 28 32 2e 31 2e 33 29 7d 20 7b 0a 3c   23 (2.1.3)} {.<
8f00: 6c 69 3e 46 69 78 20 74 68 65 20 62 65 68 61 76  li>Fix the behav
8f10: 69 6f 72 20 6f 66 20 63 6f 6d 70 61 72 69 73 6f  ior of compariso
8f20: 6e 20 6f 70 65 72 61 74 6f 72 73 20 0a 20 20 20  n operators .   
8f30: 20 28 65 78 3a 20 22 3c 62 3e 26 6c 74 3c 2f 62   (ex: "<b>&lt</b
8f40: 3e 22 2c 20 22 3c 62 3e 3d 3d 3c 2f 62 3e 22 2c  >", "<b>==</b>",
8f50: 20 65 74 63 2e 29 0a 20 20 20 20 73 6f 20 74 68   etc.).    so th
8f60: 61 74 20 74 68 65 79 20 61 72 65 20 63 6f 6e 73  at they are cons
8f70: 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20  istent with the 
8f80: 6f 72 64 65 72 20 6f 66 20 65 6e 74 72 69 65 73  order of entries
8f90: 20 69 6e 20 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c   in an index.</l
8fa0: 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 20 68  i>.<li>Correct h
8fb0: 61 6e 64 6c 69 6e 67 20 6f 66 20 69 6e 74 65 67  andling of integ
8fc0: 65 72 73 20 69 6e 20 53 51 4c 20 65 78 70 72 65  ers in SQL expre
8fd0: 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20  ssions that are 
8fe0: 6c 61 72 67 65 72 20 74 68 61 6e 0a 20 20 20 20  larger than.    
8ff0: 77 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 72  what can be repr
9000: 65 73 65 6e 74 65 64 20 62 79 20 74 68 65 20 6d  esented by the m
9010: 61 63 68 69 6e 65 20 69 6e 74 65 67 65 72 2e 3c  achine integer.<
9020: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9030: 30 31 20 4e 6f 76 20 32 32 20 28 32 2e 31 2e 32  01 Nov 22 (2.1.2
9040: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  )} {.<li>Changes
9050: 20 74 6f 20 73 75 70 70 6f 72 74 20 36 34 2d 62   to support 64-b
9060: 69 74 20 61 72 63 68 69 74 65 63 74 75 72 65 73  it architectures
9070: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
9080: 20 62 75 67 20 69 6e 20 74 68 65 20 6c 6f 63 6b   bug in the lock
9090: 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 3c 2f 6c  ing protocol.</l
90a0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
90b0: 20 74 68 61 74 20 63 6f 75 6c 64 20 28 72 61 72   that could (rar
90c0: 65 6c 79 29 20 63 61 75 73 65 20 74 68 65 20 64  ely) cause the d
90d0: 61 74 61 62 61 73 65 20 74 6f 20 62 65 63 6f 6d  atabase to becom
90e0: 65 20 0a 20 20 20 20 75 6e 72 65 61 64 61 62 6c  e .    unreadabl
90f0: 65 20 61 66 74 65 72 20 61 20 44 52 4f 50 20 54  e after a DROP T
9100: 41 42 4c 45 20 64 75 65 20 74 6f 20 63 6f 72 72  ABLE due to corr
9110: 75 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 53 51  uption to the SQ
9120: 4c 49 54 45 5f 4d 41 53 54 45 52 0a 20 20 20 20  LITE_MASTER.    
9130: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  table.</li>.<li>
9140: 43 68 61 6e 67 65 20 74 68 65 20 63 6f 64 65 20  Change the code 
9150: 73 6f 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20  so that version 
9160: 32 2e 31 2e 31 20 64 61 74 61 62 61 73 65 73 20  2.1.1 databases 
9170: 74 68 61 74 20 77 65 72 65 20 72 65 6e 64 65 72  that were render
9180: 65 64 20 0a 20 20 20 20 75 6e 72 65 61 64 61 62  ed .    unreadab
9190: 6c 65 20 62 79 20 74 68 65 20 61 62 6f 76 65 20  le by the above 
91a0: 62 75 67 20 63 61 6e 20 62 65 20 72 65 61 64 20  bug can be read 
91b0: 62 79 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20  by this version 
91c0: 6f 66 0a 20 20 20 20 74 68 65 20 6c 69 62 72 61  of.    the libra
91d0: 72 79 20 65 76 65 6e 20 74 68 6f 75 67 68 20 74  ry even though t
91e0: 68 65 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52  he SQLITE_MASTER
91f0: 20 74 61 62 6c 65 20 69 73 20 28 73 6c 69 67 68   table is (sligh
9200: 74 6c 79 29 0a 20 20 20 20 63 6f 72 72 75 70 74  tly).    corrupt
9210: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
9220: 20 7b 32 30 30 31 20 4e 6f 76 20 31 33 20 28 32   {2001 Nov 13 (2
9230: 2e 31 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .1.1)} {.<li>Bug
9240: 20 66 69 78 3a 20 53 6f 6d 65 74 69 6d 65 73 20   fix: Sometimes 
9250: 61 72 62 69 74 72 61 72 79 20 73 74 72 69 6e 67  arbitrary string
9260: 73 20 77 65 72 65 20 70 61 73 73 65 64 20 74 6f  s were passed to
9270: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 0a 20 20   the callback.  
9280: 20 20 66 75 6e 63 74 69 6f 6e 20 77 68 65 6e 20    function when 
9290: 74 68 65 20 61 63 74 75 61 6c 20 76 61 6c 75 65  the actual value
92a0: 20 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 77 61 73   of a column was
92b0: 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   NULL.</li>.}..c
92c0: 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 31 32  hng {2001 Nov 12
92d0: 20 28 32 2e 31 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.0)} {.<li>
92e0: 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61  Change the forma
92f0: 74 20 6f 66 20 64 61 74 61 20 72 65 63 6f 72 64  t of data record
9300: 73 20 73 6f 20 74 68 61 74 20 72 65 63 6f 72 64  s so that record
9310: 73 20 75 70 20 74 6f 20 31 36 4d 42 20 69 6e 20  s up to 16MB in 
9320: 73 69 7a 65 0a 20 20 20 20 63 61 6e 20 62 65 20  size.    can be 
9330: 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  stored.</li>.<li
9340: 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d  >Change the form
9350: 61 74 20 6f 66 20 69 6e 64 69 63 65 73 20 74 6f  at of indices to
9360: 20 61 6c 6c 6f 77 20 66 6f 72 20 62 65 74 74 65   allow for bette
9370: 72 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 61  r query optimiza
9380: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  tion.</li>.<li>I
9390: 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 22 4c 49  mplement the "LI
93a0: 4d 49 54 20 2e 2e 2e 20 4f 46 46 53 45 54 20 2e  MIT ... OFFSET .
93b0: 2e 2e 22 20 63 6c 61 75 73 65 20 6f 6e 20 53 45  .." clause on SE
93c0: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 73 2e  LECT statements.
93d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
93e0: 30 30 31 20 4e 6f 76 20 33 20 28 32 2e 30 2e 38  001 Nov 3 (2.0.8
93f0: 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 64 65 20 73 65  )} {.<li>Made se
9400: 6c 65 63 74 65 64 20 70 61 72 61 6d 65 74 65 72  lected parameter
9410: 73 20 69 6e 20 41 50 49 20 66 75 6e 63 74 69 6f  s in API functio
9420: 6e 73 20 3c 62 3e 63 6f 6e 73 74 3c 2f 62 3e 2e  ns <b>const</b>.
9430: 20 54 68 69 73 20 73 68 6f 75 6c 64 0a 20 20 20   This should.   
9440: 20 62 65 20 66 75 6c 6c 79 20 62 61 63 6b 77 61   be fully backwa
9450: 72 64 73 20 63 6f 6d 70 61 74 69 62 6c 65 2e 3c  rds compatible.<
9460: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e  /li>.<li>Documen
9470: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
9480: 6c 69 3e 0a 3c 6c 69 3e 53 69 6d 70 6c 69 66 79  li>.<li>Simplify
9490: 20 74 68 65 20 64 65 73 69 67 6e 20 6f 66 20 74   the design of t
94a0: 68 65 20 56 44 42 45 20 62 79 20 72 65 73 74 72  he VDBE by restr
94b0: 69 63 74 69 6e 67 20 74 68 65 20 6e 75 6d 62 65  icting the numbe
94c0: 72 20 6f 66 20 73 6f 72 74 65 72 73 0a 20 20 20  r of sorters.   
94d0: 20 61 6e 64 20 6c 69 73 74 73 20 74 6f 20 31 2e   and lists to 1.
94e0: 0a 20 20 20 20 49 6e 20 70 72 61 63 74 69 63 65  .    In practice
94f0: 2c 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20 6f  , no more than o
9500: 6e 65 20 73 6f 72 74 65 72 20 61 6e 64 20 6f 6e  ne sorter and on
9510: 65 20 6c 69 73 74 20 77 61 73 20 65 76 65 72 20  e list was ever 
9520: 75 73 65 64 20 61 6e 79 68 6f 77 2e 0a 20 20 20  used anyhow..   
9530: 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b   </li>.}..chng {
9540: 32 30 30 31 20 4f 63 74 20 32 31 20 28 32 2e 30  2001 Oct 21 (2.0
9550: 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 79 20 55  .7)} {.<li>Any U
9560: 54 46 2d 38 20 63 68 61 72 61 63 74 65 72 20 6f  TF-8 character o
9570: 72 20 49 53 4f 38 38 35 39 20 63 68 61 72 61 63  r ISO8859 charac
9580: 74 65 72 20 63 61 6e 20 62 65 20 75 73 65 64 20  ter can be used 
9590: 61 73 20 70 61 72 74 20 6f 66 0a 20 20 20 20 61  as part of.    a
95a0: 6e 20 69 64 65 6e 74 69 66 69 65 72 2e 3c 2f 6c  n identifier.</l
95b0: 69 3e 0a 3c 6c 69 3e 50 61 74 63 68 65 73 20 66  i>.<li>Patches f
95c0: 72 6f 6d 20 43 68 72 69 73 74 69 61 6e 20 57 65  rom Christian We
95d0: 72 6e 65 72 20 74 6f 20 69 6d 70 72 6f 76 65 20  rner to improve 
95e0: 4f 44 42 43 20 63 6f 6d 70 61 74 69 62 69 6c 69  ODBC compatibili
95f0: 74 79 20 61 6e 64 20 74 6f 0a 20 20 20 20 66 69  ty and to.    fi
9600: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 72  x a bug in the r
9610: 6f 75 6e 64 28 29 20 66 75 6e 63 74 69 6f 6e 2e  ound() function.
9620: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 6c 75 67 20 73  </li>.<li>Plug s
9630: 6f 6d 65 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73  ome memory leaks
9640: 20 74 68 61 74 20 75 73 65 20 74 6f 20 6f 63 63   that use to occ
9650: 75 72 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20 66  ur if malloc() f
9660: 61 69 6c 65 64 2e 0a 20 20 20 20 57 65 20 68 61  ailed..    We ha
9670: 76 65 20 62 65 65 6e 20 61 6e 64 20 63 6f 6e 74  ve been and cont
9680: 69 6e 75 65 20 74 6f 20 62 65 20 6d 65 6d 6f 72  inue to be memor
9690: 79 20 6c 65 61 6b 20 66 72 65 65 20 61 73 20 6c  y leak free as l
96a0: 6f 6e 67 20 61 73 0a 20 20 20 20 6d 61 6c 6c 6f  ong as.    mallo
96b0: 63 28 29 20 77 6f 72 6b 73 2e 3c 2f 6c 69 3e 0a  c() works.</li>.
96c0: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 73  <li>Changes to s
96d0: 6f 6d 65 20 74 65 73 74 20 73 63 72 69 70 74 73  ome test scripts
96e0: 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 77 6f   so that they wo
96f0: 72 6b 20 6f 6e 20 57 69 6e 64 6f 77 73 20 69 6e  rk on Windows in
9700: 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 20 74 6f  .    addition to
9710: 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   Unix.</li>.}..c
9720: 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31 39  hng {2001 Oct 19
9730: 20 28 32 2e 30 2e 36 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.6)} {.<li>
9740: 41 64 64 65 64 20 74 68 65 20 45 4d 50 54 59 5f  Added the EMPTY_
9750: 52 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53  RESULT_CALLBACKS
9760: 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69   pragma</li>.<li
9770: 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 55 54 46  >Support for UTF
9780: 2d 38 20 61 6e 64 20 49 53 4f 38 38 35 39 20 63  -8 and ISO8859 c
9790: 68 61 72 61 63 74 65 72 73 20 69 6e 20 63 6f 6c  haracters in col
97a0: 75 6d 6e 20 61 6e 64 20 74 61 62 6c 65 20 6e 61  umn and table na
97b0: 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  mes.</li>.<li>Bu
97c0: 67 20 66 69 78 3a 20 43 6f 6d 70 75 74 65 20 63  g fix: Compute c
97d0: 6f 72 72 65 63 74 20 74 61 62 6c 65 20 6e 61 6d  orrect table nam
97e0: 65 73 20 77 69 74 68 20 74 68 65 20 46 55 4c 4c  es with the FULL
97f0: 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72  _COLUMN_NAMES pr
9800: 61 67 6d 61 0a 20 20 20 20 69 73 20 74 75 72 6e  agma.    is turn
9810: 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ed on.</li>.}..c
9820: 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31 34  hng {2001 Oct 14
9830: 20 28 32 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.5)} {.<li>
9840: 41 64 64 65 64 20 74 68 65 20 43 4f 55 4e 54 5f  Added the COUNT_
9850: 43 48 41 4e 47 45 53 20 70 72 61 67 6d 61 2e 3c  CHANGES pragma.<
9860: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  /li>.<li>Changes
9870: 20 74 6f 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c   to the FULL_COL
9880: 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61  UMN_NAMES pragma
9890: 20 74 6f 20 68 65 6c 70 20 6f 75 74 20 74 68 65   to help out the
98a0: 20 4f 44 42 43 20 64 72 69 76 65 72 2e 3c 2f 6c   ODBC driver.</l
98b0: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
98c0: 22 53 45 4c 45 43 54 20 63 6f 75 6e 74 28 2a 29  "SELECT count(*)
98d0: 22 20 77 61 73 20 72 65 74 75 72 6e 69 6e 67 20  " was returning 
98e0: 4e 55 4c 4c 20 66 6f 72 20 65 6d 70 74 79 20 74  NULL for empty t
98f0: 61 62 6c 65 73 2e 0a 20 20 20 20 4e 6f 77 20 69  ables..    Now i
9900: 74 20 72 65 74 75 72 6e 73 20 30 2e 3c 2f 6c 69  t returns 0.</li
9910: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
9920: 4f 63 74 20 31 33 20 28 32 2e 30 2e 34 29 7d 20  Oct 13 (2.0.4)} 
9930: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61  {.<li>Bug fix: a
9940: 6e 20 6f 62 73 63 75 72 65 20 61 6e 64 20 72 65  n obscure and re
9950: 6c 61 74 69 76 65 6c 79 20 68 61 72 6d 6c 65 73  latively harmles
9960: 73 20 62 75 67 20 77 61 73 20 63 61 75 73 69 6e  s bug was causin
9970: 67 20 6f 6e 65 20 6f 66 0a 20 20 20 20 74 68 65  g one of.    the
9980: 20 74 65 73 74 73 20 74 6f 20 66 61 69 6c 20 77   tests to fail w
9990: 68 65 6e 20 67 63 63 20 6f 70 74 69 6d 69 7a 61  hen gcc optimiza
99a0: 74 69 6f 6e 73 20 61 72 65 20 74 75 72 6e 65 64  tions are turned
99b0: 20 6f 6e 2e 20 20 54 68 69 73 20 72 65 6c 65 61   on.  This relea
99c0: 73 65 0a 20 20 20 20 66 69 78 65 73 20 74 68 65  se.    fixes the
99d0: 20 70 72 6f 62 6c 65 6d 2e 3c 2f 6c 69 3e 0a 7d   problem.</li>.}
99e0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74  ..chng {2001 Oct
99f0: 20 31 33 20 28 32 2e 30 2e 33 29 7d 20 7b 0a 3c   13 (2.0.3)} {.<
9a00: 6c 69 3e 42 75 67 20 66 69 78 3a 20 74 68 65 20  li>Bug fix: the 
9a10: 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74  <b>sqlite_busy_t
9a20: 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 66 75 6e  imeout()</b> fun
9a30: 63 74 69 6f 6e 20 77 61 73 20 64 65 6c 61 79 69  ction was delayi
9a40: 6e 67 20 31 30 30 30 0a 20 20 20 20 74 69 6d 65  ng 1000.    time
9a50: 73 20 74 6f 6f 20 6c 6f 6e 67 20 62 65 66 6f 72  s too long befor
9a60: 65 20 66 61 69 6c 69 6e 67 2e 3c 2f 6c 69 3e 0a  e failing.</li>.
9a70: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61 6e 20  <li>Bug fix: an 
9a80: 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61  assertion was fa
9a90: 69 6c 69 6e 67 20 69 66 20 74 68 65 20 64 69 73  iling if the dis
9aa0: 6b 20 68 6f 6c 64 69 6e 67 20 74 68 65 20 64 61  k holding the da
9ab0: 74 61 62 61 73 65 0a 20 20 20 20 66 69 6c 65 20  tabase.    file 
9ac0: 62 65 63 61 6d 65 20 66 75 6c 6c 20 6f 72 20 73  became full or s
9ad0: 74 6f 70 70 65 64 20 61 63 63 65 70 74 69 6e 67  topped accepting
9ae0: 20 77 72 69 74 65 73 20 66 6f 72 20 73 6f 6d 65   writes for some
9af0: 20 6f 74 68 65 72 20 72 65 61 73 6f 6e 2e 0a 20   other reason.. 
9b00: 20 20 20 4e 65 77 20 74 65 73 74 73 20 77 65 72     New tests wer
9b10: 65 20 61 64 64 65 64 20 74 6f 20 64 65 74 65 63  e added to detec
9b20: 74 20 73 69 6d 69 6c 61 72 20 70 72 6f 62 6c 65  t similar proble
9b30: 6d 73 20 69 6e 20 74 68 65 20 66 75 74 75 72 65  ms in the future
9b40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
9b50: 20 6e 65 77 20 6f 70 65 72 61 74 6f 72 73 3a 20   new operators: 
9b60: 3c 62 3e 26 61 6d 70 3b 3c 2f 62 3e 20 28 62 69  <b>&amp;</b> (bi
9b70: 74 77 69 73 65 2d 61 6e 64 29 0a 20 20 20 20 3c  twise-and).    <
9b80: 62 3e 7c 3c 2f 62 3e 20 28 62 69 74 77 69 73 65  b>|</b> (bitwise
9b90: 2d 6f 72 29 2c 20 3c 62 3e 7e 3c 2f 62 3e 20 28  -or), <b>~</b> (
9ba0: 6f 6e 65 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 29  ones-complement)
9bb0: 2c 0a 20 20 20 20 3c 62 3e 26 6c 74 3b 26 6c 74  ,.    <b>&lt;&lt
9bc0: 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20 6c 65 66  ;</b> (shift lef
9bd0: 74 29 2c 20 3c 62 3e 26 67 74 3b 26 67 74 3b 3c  t), <b>&gt;&gt;<
9be0: 2f 62 3e 20 28 73 68 69 66 74 20 72 69 67 68 74  /b> (shift right
9bf0: 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  ).</li>.<li>Adde
9c00: 64 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a  d new functions:
9c10: 20 3c 62 3e 72 6f 75 6e 64 28 29 3c 2f 62 3e 20   <b>round()</b> 
9c20: 61 6e 64 20 3c 62 3e 61 62 73 28 29 3c 2f 62 3e  and <b>abs()</b>
9c30: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9c40: 32 30 30 31 20 4f 63 74 20 39 20 28 32 2e 30 2e  2001 Oct 9 (2.0.
9c50: 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 77  2)} {.<li>Fix tw
9c60: 6f 20 62 75 67 73 20 69 6e 20 74 68 65 20 6c 6f  o bugs in the lo
9c70: 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 20  cking protocol. 
9c80: 20 28 4f 6e 65 20 77 61 73 20 6d 61 73 6b 69 6e   (One was maskin
9c90: 67 20 74 68 65 20 6f 74 68 65 72 2e 29 3c 2f 6c  g the other.)</l
9ca0: 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73  i>.<li>Removed s
9cb0: 6f 6d 65 20 75 6e 75 73 65 64 20 22 23 69 6e 63  ome unused "#inc
9cc0: 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 22  lude <unistd.h>"
9cd0: 20 74 68 61 74 20 77 65 72 65 20 63 61 75 73 69   that were causi
9ce0: 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20 20 20  ng problems.    
9cf0: 66 6f 72 20 56 43 2b 2b 2e 3c 2f 6c 69 3e 0a 3c  for VC++.</li>.<
9d00: 6c 69 3e 46 69 78 65 64 20 3c 62 3e 73 71 6c 69  li>Fixed <b>sqli
9d10: 74 65 2e 68 3c 2f 62 3e 20 73 6f 20 74 68 61 74  te.h</b> so that
9d20: 20 69 74 20 69 73 20 75 73 61 62 6c 65 20 66 72   it is usable fr
9d30: 6f 6d 20 43 2b 2b 3c 2f 6c 69 3e 0a 3c 6c 69 3e  om C++</li>.<li>
9d40: 41 64 64 65 64 20 74 68 65 20 46 55 4c 4c 5f 43  Added the FULL_C
9d50: 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67  OLUMN_NAMES prag
9d60: 6d 61 2e 20 20 57 68 65 6e 20 73 65 74 20 74 6f  ma.  When set to
9d70: 20 22 4f 4e 22 2c 20 74 68 65 20 6e 61 6d 65 73   "ON", the names
9d80: 20 6f 66 0a 20 20 20 20 63 6f 6c 75 6d 6e 73 20   of.    columns 
9d90: 61 72 65 20 72 65 70 6f 72 74 65 64 20 62 61 63  are reported bac
9da0: 6b 20 61 73 20 54 41 42 4c 45 2e 43 4f 4c 55 4d  k as TABLE.COLUM
9db0: 4e 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73  N instead of jus
9dc0: 74 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c  t COLUMN.</li>.<
9dd0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 54 41 42  li>Added the TAB
9de0: 4c 45 5f 49 4e 46 4f 28 29 20 61 6e 64 20 49 4e  LE_INFO() and IN
9df0: 44 45 58 5f 49 4e 46 4f 28 29 20 70 72 61 67 6d  DEX_INFO() pragm
9e00: 61 73 20 74 6f 20 68 65 6c 70 20 73 75 70 70 6f  as to help suppo
9e10: 72 74 20 74 68 65 0a 20 20 20 20 4f 44 42 43 20  rt the.    ODBC 
9e20: 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a  interface.</li>.
9e30: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
9e40: 74 20 66 6f 72 20 54 45 4d 50 4f 52 41 52 59 20  t for TEMPORARY 
9e50: 74 61 62 6c 65 73 20 61 6e 64 20 69 6e 64 69 63  tables and indic
9e60: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
9e70: 20 7b 32 30 30 31 20 4f 63 74 20 32 20 28 32 2e   {2001 Oct 2 (2.
9e80: 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f  0.1)} {.<li>Remo
9e90: 76 65 20 73 6f 6d 65 20 43 2b 2b 20 73 74 79 6c  ve some C++ styl
9ea0: 65 20 63 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d 20  e comments from 
9eb0: 62 74 72 65 65 2e 63 20 73 6f 20 74 68 61 74 20  btree.c so that 
9ec0: 69 74 20 77 69 6c 6c 20 63 6f 6d 70 69 6c 65 0a  it will compile.
9ed0: 20 20 20 20 75 73 69 6e 67 20 63 6f 6d 70 69 6c      using compil
9ee0: 65 72 73 20 6f 74 68 65 72 20 74 68 61 6e 20 67  ers other than g
9ef0: 63 63 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  cc.</li>.<li>The
9f00: 20 22 2e 64 75 6d 70 22 20 6f 75 74 70 75 74 20   ".dump" output 
9f10: 66 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c 20 64  from the shell d
9f20: 6f 65 73 20 6e 6f 74 20 77 6f 72 6b 20 69 66 20  oes not work if 
9f30: 74 68 65 72 65 20 61 72 65 20 65 6d 62 65 64 64  there are embedd
9f40: 65 64 0a 20 20 20 20 6e 65 77 6c 69 6e 65 73 20  ed.    newlines 
9f50: 61 6e 79 77 68 65 72 65 20 69 6e 20 74 68 65 20  anywhere in the 
9f60: 64 61 74 61 2e 20 20 54 68 69 73 20 69 73 20 61  data.  This is a
9f70: 6e 20 6f 6c 64 20 62 75 67 20 74 68 61 74 20 77  n old bug that w
9f80: 61 73 20 63 61 72 72 69 65 64 0a 20 20 20 20 66  as carried.    f
9f90: 6f 72 77 61 72 64 20 66 72 6f 6d 20 76 65 72 73  orward from vers
9fa0: 69 6f 6e 20 31 2e 30 2e 20 20 54 6f 20 66 69 78  ion 1.0.  To fix
9fb0: 20 69 74 2c 20 74 68 65 20 22 2e 64 75 6d 70 22   it, the ".dump"
9fc0: 20 6f 75 74 70 75 74 20 6e 6f 20 6c 6f 6e 67 65   output no longe
9fd0: 72 0a 20 20 20 20 75 73 65 73 20 74 68 65 20 43  r.    uses the C
9fe0: 4f 50 59 20 63 6f 6d 6d 61 6e 64 2e 20 20 49 74  OPY command.  It
9ff0: 20 69 6e 73 74 65 61 64 20 67 65 6e 65 72 61 74   instead generat
a000: 65 73 20 49 4e 53 45 52 54 20 73 74 61 74 65 6d  es INSERT statem
a010: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45  ents.</li>.<li>E
a020: 78 74 65 6e 64 20 74 68 65 20 65 78 70 72 65 73  xtend the expres
a030: 73 69 6f 6e 20 73 79 6e 74 61 78 20 74 6f 20 73  sion syntax to s
a040: 75 70 70 6f 72 74 20 22 65 78 70 72 20 4e 4f 54  upport "expr NOT
a050: 20 4e 55 4c 4c 22 20 28 77 69 74 68 20 61 0a 20   NULL" (with a. 
a060: 20 20 20 73 70 61 63 65 20 62 65 74 77 65 65 6e     space between
a070: 20 74 68 65 20 22 4e 4f 54 22 20 61 6e 64 20 74   the "NOT" and t
a080: 68 65 20 22 4e 55 4c 4c 22 29 20 69 6e 20 61 64  he "NULL") in ad
a090: 64 69 74 69 6f 6e 20 74 6f 20 22 65 78 70 72 20  dition to "expr 
a0a0: 4e 4f 54 4e 55 4c 4c 22 0a 20 20 20 20 28 77 69  NOTNULL".    (wi
a0b0: 74 68 20 6e 6f 20 73 70 61 63 65 29 2e 3c 2f 6c  th no space).</l
a0c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
a0d0: 20 53 65 70 20 32 38 20 28 32 2e 30 2e 30 29 7d   Sep 28 (2.0.0)}
a0e0: 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63   {.<li>Automatic
a0f0: 61 6c 6c 79 20 62 75 69 6c 64 20 62 69 6e 61 72  ally build binar
a100: 69 65 73 20 66 6f 72 20 4c 69 6e 75 78 20 61 6e  ies for Linux an
a110: 64 20 57 69 6e 64 6f 77 73 20 61 6e 64 20 70 75  d Windows and pu
a120: 74 20 74 68 65 6d 20 6f 6e 0a 20 20 20 20 74 68  t them on.    th
a130: 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a  e website.</li>.
a140: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65  }..chng {2001 Se
a150: 70 20 32 38 20 28 32 2e 30 2d 61 6c 70 68 61 2d  p 28 (2.0-alpha-
a160: 34 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6f 72 70  4)} {.<li>Incorp
a170: 6f 72 61 74 65 20 6d 61 6b 65 66 69 6c 65 20 70  orate makefile p
a180: 61 74 63 68 65 73 20 66 6f 72 6d 20 41 2e 20 52  atches form A. R
a190: 6f 74 74 6d 61 6e 6e 20 74 6f 20 75 73 65 20 4c  ottmann to use L
a1a0: 49 42 54 4f 4f 4c 3c 2f 6c 69 3e 0a 7d 0a 0a 63  IBTOOL</li>.}..c
a1b0: 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 37  hng {2001 Sep 27
a1c0: 20 28 32 2e 30 2d 61 6c 70 68 61 2d 33 29 7d 20   (2.0-alpha-3)} 
a1d0: 7b 0a 3c 6c 69 3e 53 51 4c 69 74 65 20 6e 6f 77  {.<li>SQLite now
a1e0: 20 68 6f 6e 6f 72 73 20 74 68 65 20 55 4e 49 51   honors the UNIQ
a1f0: 55 45 20 6b 65 79 77 6f 72 64 20 69 6e 20 43 52  UE keyword in CR
a200: 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45  EATE UNIQUE INDE
a210: 58 2e 20 20 50 72 69 6d 61 72 79 0a 20 20 20 20  X.  Primary.    
a220: 6b 65 79 73 20 61 72 65 20 72 65 71 75 69 72 65  keys are require
a230: 64 20 74 6f 20 62 65 20 75 6e 69 71 75 65 2e 3c  d to be unique.<
a240: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f  /li>.<li>File fo
a250: 72 6d 61 74 20 63 68 61 6e 67 65 64 20 62 61 63  rmat changed bac
a260: 6b 20 74 6f 20 77 68 61 74 20 69 74 20 77 61 73  k to what it was
a270: 20 66 6f 72 20 61 6c 70 68 61 2d 31 3c 2f 6c 69   for alpha-1</li
a280: 3e 0a 3c 6c 69 3e 46 69 78 65 73 20 74 6f 20 74  >.<li>Fixes to t
a290: 68 65 20 72 6f 6c 6c 62 61 63 6b 20 61 6e 64 20  he rollback and 
a2a0: 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f 72  locking behavior
a2b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a2c0: 30 30 31 20 53 65 70 20 32 30 20 28 32 2e 30 2d  001 Sep 20 (2.0-
a2d0: 61 6c 70 68 61 2d 32 29 7d 20 7b 0a 3c 6c 69 3e  alpha-2)} {.<li>
a2e0: 49 6e 69 74 69 61 6c 20 72 65 6c 65 61 73 65 20  Initial release 
a2f0: 6f 66 20 76 65 72 73 69 6f 6e 20 32 2e 30 2e 20  of version 2.0. 
a300: 20 54 68 65 20 69 64 65 61 20 6f 66 20 72 65 6e   The idea of ren
a310: 61 6d 69 6e 67 20 74 68 65 20 6c 69 62 72 61 72  aming the librar
a320: 79 0a 20 20 20 20 74 6f 20 22 53 51 4c 75 73 22  y.    to "SQLus"
a330: 20 77 61 73 20 61 62 61 6e 64 6f 6e 65 64 20 69   was abandoned i
a340: 6e 20 66 61 76 6f 72 20 6f 66 20 6b 65 65 70 69  n favor of keepi
a350: 6e 67 20 74 68 65 20 22 53 51 4c 69 74 65 22 20  ng the "SQLite" 
a360: 6e 61 6d 65 20 61 6e 64 0a 20 20 20 20 62 75 6d  name and.    bum
a370: 70 69 6e 67 20 74 68 65 20 6d 61 6a 6f 72 20 76  ping the major v
a380: 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c 2f  ersion number.</
a390: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 67 65  li>.<li>The page
a3a0: 72 20 61 6e 64 20 62 74 72 65 65 20 73 75 62 73  r and btree subs
a3b0: 79 73 74 65 6d 73 20 61 64 64 65 64 20 62 61 63  ystems added bac
a3c0: 6b 2e 20 54 68 65 79 20 61 72 65 20 6e 6f 77 20  k. They are now 
a3d0: 74 68 65 20 6f 6e 6c 79 0a 20 20 20 20 61 76 61  the only.    ava
a3e0: 69 6c 61 62 6c 65 20 62 61 63 6b 65 6e 64 2e 3c  ilable backend.<
a3f0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 44 62 62  /li>.<li>The Dbb
a400: 65 20 61 62 73 74 72 61 63 74 69 6f 6e 20 61 6e  e abstraction an
a410: 64 20 74 68 65 20 47 44 42 4d 20 61 6e 64 20 6d  d the GDBM and m
a420: 65 6d 6f 72 79 20 64 72 69 76 65 72 73 20 77 65  emory drivers we
a430: 72 65 20 72 65 6d 6f 76 65 64 2e 3c 2f 6c 69 3e  re removed.</li>
a440: 0a 3c 6c 69 3e 43 6f 70 79 72 69 67 68 74 20 6f  .<li>Copyright o
a450: 6e 20 61 6c 6c 20 63 6f 64 65 20 77 61 73 20 64  n all code was d
a460: 69 73 63 6c 61 69 6d 65 64 2e 20 20 54 68 65 20  isclaimed.  The 
a470: 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 77 20 69  library is now i
a480: 6e 20 74 68 65 0a 20 20 20 20 70 75 62 6c 69 63  n the.    public
a490: 20 64 6f 6d 61 69 6e 2e 3c 2f 6c 69 3e 0a 7d 0a   domain.</li>.}.
a4a0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 75 6c 20  .chng {2001 Jul 
a4b0: 32 33 20 28 31 2e 30 2e 33 32 29 7d 20 7b 0a 3c  23 (1.0.32)} {.<
a4c0: 6c 69 3e 50 61 67 65 72 20 61 6e 64 20 62 74 72  li>Pager and btr
a4d0: 65 65 20 73 75 62 73 79 73 74 65 6d 73 20 72 65  ee subsystems re
a4e0: 6d 6f 76 65 64 2e 20 20 54 68 65 73 65 20 77 69  moved.  These wi
a4f0: 6c 6c 20 62 65 20 75 73 65 64 20 69 6e 20 61 20  ll be used in a 
a500: 66 6f 6c 6c 6f 77 2d 6f 6e 0a 20 20 20 20 53 51  follow-on.    SQ
a510: 4c 20 73 65 72 76 65 72 20 6c 69 62 72 61 72 79  L server library
a520: 20 6e 61 6d 65 64 20 22 53 51 4c 75 73 22 2e 3c   named "SQLus".<
a530: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65  /li>.<li>Add the
a540: 20 61 62 69 6c 69 74 79 20 74 6f 20 75 73 65 20   ability to use 
a550: 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73 20 61  quoted strings a
a560: 73 20 74 61 62 6c 65 20 61 6e 64 20 63 6f 6c 75  s table and colu
a570: 6d 6e 20 6e 61 6d 65 73 20 69 6e 0a 20 20 20 20  mn names in.    
a580: 65 78 70 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69  expressions.</li
a590: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a5a0: 41 70 72 20 31 34 20 28 31 2e 30 2e 33 31 29 7d  Apr 14 (1.0.31)}
a5b0: 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 73 75 62   {.<li>Pager sub
a5c0: 73 79 73 74 65 6d 20 61 64 64 65 64 20 62 75 74  system added but
a5d0: 20 6e 6f 74 20 79 65 74 20 75 73 65 64 2e 3c 2f   not yet used.</
a5e0: 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 72 6f 62  li>.<li>More rob
a5f0: 75 73 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  ust handling of 
a600: 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 65 72  out-of-memory er
a610: 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  rors.</li>.<li>N
a620: 65 77 20 74 65 73 74 73 20 61 64 64 65 64 20 74  ew tests added t
a630: 6f 20 74 68 65 20 74 65 73 74 20 73 75 69 74 65  o the test suite
a640: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
a650: 32 30 30 31 20 41 70 72 20 36 20 28 31 2e 30 2e  2001 Apr 6 (1.0.
a660: 33 30 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76  30)} {.<li>Remov
a670: 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  e the <b>sqlite_
a680: 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 54 43 4c  encoding</b> TCL
a690: 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20 77   variable that w
a6a0: 61 73 20 69 6e 74 72 6f 64 75 63 65 64 0a 20 20  as introduced.  
a6b0: 20 20 69 6e 20 74 68 65 20 70 72 65 76 69 6f 75    in the previou
a6c0: 73 20 76 65 72 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a  s version.</li>.
a6d0: 3c 6c 69 3e 41 64 64 20 6f 70 74 69 6f 6e 73 20  <li>Add options 
a6e0: 3c 62 3e 2d 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e  <b>-encoding</b>
a6f0: 20 61 6e 64 20 3c 62 3e 2d 74 63 6c 2d 75 73 65   and <b>-tcl-use
a700: 73 2d 75 74 66 3c 2f 62 3e 20 74 6f 20 74 68 65  s-utf</b> to the
a710: 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c 2f  .    <b>sqlite</
a720: 62 3e 20 54 43 4c 20 63 6f 6d 6d 61 6e 64 2e 3c  b> TCL command.<
a730: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 65 73  /li>.<li>Add tes
a740: 74 73 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20  ts to make sure 
a750: 74 68 61 74 20 74 63 6c 73 71 6c 69 74 65 20 77  that tclsqlite w
a760: 61 73 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e  as compiled usin
a770: 67 20 54 63 6c 20 68 65 61 64 65 72 0a 20 20 20  g Tcl header.   
a780: 20 66 69 6c 65 73 20 61 6e 64 20 6c 69 62 72 61   files and libra
a790: 72 69 65 73 20 74 68 61 74 20 6d 61 74 63 68 2e  ries that match.
a7a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a7b0: 30 30 31 20 41 70 72 20 35 20 28 31 2e 30 2e 32  001 Apr 5 (1.0.2
a7c0: 39 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c 69  9)} {.<li>The li
a7d0: 62 72 61 72 79 20 6e 6f 77 20 61 73 73 75 6d 65  brary now assume
a7e0: 73 20 64 61 74 61 20 69 73 20 73 74 6f 72 65 64  s data is stored
a7f0: 20 61 73 20 55 54 46 2d 38 20 69 66 20 74 68 65   as UTF-8 if the
a800: 20 2d 2d 65 6e 61 62 6c 65 2d 75 74 66 38 0a 20   --enable-utf8. 
a810: 20 20 20 6f 70 74 69 6f 6e 20 69 73 20 67 69 76     option is giv
a820: 65 6e 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 2e  en to configure.
a830: 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 62 65    The default be
a840: 68 61 76 69 6f 72 20 69 73 20 74 6f 20 61 73 73  havior is to ass
a850: 75 6d 65 0a 20 20 20 20 69 73 6f 38 38 35 39 2d  ume.    iso8859-
a860: 78 2c 20 61 73 20 69 74 20 68 61 73 20 61 6c 77  x, as it has alw
a870: 61 79 73 20 64 6f 6e 65 2e 20 20 54 68 69 73 20  ays done.  This 
a880: 6f 6e 6c 79 20 6d 61 6b 65 73 20 61 20 64 69 66  only makes a dif
a890: 66 65 72 65 6e 63 65 20 66 6f 72 0a 20 20 20 20  ference for.    
a8a0: 4c 49 4b 45 20 61 6e 64 20 47 4c 4f 42 20 6f 70  LIKE and GLOB op
a8b0: 65 72 61 74 6f 72 73 20 61 6e 64 20 74 68 65 20  erators and the 
a8c0: 4c 45 4e 47 54 48 20 61 6e 64 20 53 55 42 53 54  LENGTH and SUBST
a8d0: 52 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69  R functions.</li
a8e0: 3e 0a 3c 6c 69 3e 49 66 20 74 68 65 20 6c 69 62  >.<li>If the lib
a8f0: 72 61 72 79 20 69 73 20 6e 6f 74 20 63 6f 6e 66  rary is not conf
a900: 69 67 75 72 65 64 20 66 6f 72 20 55 54 46 2d 38  igured for UTF-8
a910: 20 61 6e 64 20 74 68 65 20 54 63 6c 20 6c 69 62   and the Tcl lib
a920: 72 61 72 79 0a 20 20 20 20 69 73 20 6f 6e 65 20  rary.    is one 
a930: 6f 66 20 74 68 65 20 6e 65 77 65 72 20 6f 6e 65  of the newer one
a940: 73 20 74 68 61 74 20 75 73 65 73 20 55 54 46 2d  s that uses UTF-
a950: 38 20 69 6e 74 65 72 6e 61 6c 6c 79 2c 0a 20 20  8 internally,.  
a960: 20 20 74 68 65 6e 20 61 20 63 6f 6e 76 65 72 73    then a convers
a970: 69 6f 6e 20 66 72 6f 6d 20 55 54 46 2d 38 20 74  ion from UTF-8 t
a980: 6f 20 69 73 6f 38 38 35 39 20 61 6e 64 0a 20 20  o iso8859 and.  
a990: 20 20 62 61 63 6b 20 61 67 61 69 6e 20 69 73 20    back again is 
a9a0: 64 6f 6e 65 20 69 6e 73 69 64 65 20 74 68 65 20  done inside the 
a9b0: 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  TCL interface.</
a9c0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
a9d0: 31 20 41 70 72 20 34 20 28 31 2e 30 2e 32 38 29  1 Apr 4 (1.0.28)
a9e0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 69  } {.<li>Added li
a9f0: 6d 69 74 65 64 20 73 75 70 70 6f 72 74 20 66 6f  mited support fo
aa00: 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20  r transactions. 
aa10: 20 41 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20   At this point, 
aa20: 74 72 61 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20  transactions.   
aa30: 20 77 69 6c 6c 20 64 6f 20 74 61 62 6c 65 20 6c   will do table l
aa40: 6f 63 6b 69 6e 67 20 6f 6e 20 74 68 65 20 47 44  ocking on the GD
aa50: 42 4d 20 62 61 63 6b 65 6e 64 2e 20 20 54 68 65  BM backend.  The
aa60: 72 65 20 69 73 20 6e 6f 20 73 75 70 70 6f 72 74  re is no support
aa70: 20 28 79 65 74 29 0a 20 20 20 20 66 6f 72 20 72   (yet).    for r
aa80: 6f 6c 6c 62 61 63 6b 20 6f 72 20 61 74 6f 6d 69  ollback or atomi
aa90: 63 20 63 6f 6d 6d 69 74 2e 3c 2f 6c 69 3e 0a 3c  c commit.</li>.<
aaa0: 6c 69 3e 41 64 64 65 64 20 73 70 65 63 69 61 6c  li>Added special
aab0: 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 52 4f   column names RO
aac0: 57 49 44 2c 20 4f 49 44 2c 20 61 6e 64 20 5f 52  WID, OID, and _R
aad0: 4f 57 49 44 5f 20 74 68 61 74 20 72 65 66 65 72  OWID_ that refer
aae0: 20 74 6f 20 74 68 65 0a 20 20 20 20 75 6e 69 71   to the.    uniq
aaf0: 75 65 20 72 61 6e 64 6f 6d 20 69 6e 74 65 67 65  ue random intege
ab00: 72 20 6b 65 79 20 61 73 73 6f 63 69 61 74 65 64  r key associated
ab10: 20 77 69 74 68 20 65 76 65 72 79 20 72 6f 77 20   with every row 
ab20: 6f 66 20 65 76 65 72 79 20 74 61 62 6c 65 2e 3c  of every table.<
ab30: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 69 74 69 6f  /li>.<li>Additio
ab40: 6e 61 6c 20 74 65 73 74 73 20 61 64 64 65 64 20  nal tests added 
ab50: 74 6f 20 74 68 65 20 72 65 67 72 65 73 73 69 6f  to the regressio
ab60: 6e 20 73 75 69 74 65 20 74 6f 20 63 6f 76 65 72  n suite to cover
ab70: 20 74 68 65 20 6e 65 77 20 52 4f 57 49 44 0a 20   the new ROWID. 
ab80: 20 20 20 66 65 61 74 75 72 65 20 61 6e 64 20 74     feature and t
ab90: 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65  he TCL interface
aba0: 20 62 75 67 73 20 6d 65 6e 74 69 6f 6e 65 64 20   bugs mentioned 
abb0: 62 65 6c 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  below.</li>.<li>
abc0: 43 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 22  Changes to the "
abd0: 6c 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67 65  lemon" parser ge
abe0: 6e 65 72 61 74 6f 72 20 74 6f 20 68 65 6c 70 20  nerator to help 
abf0: 69 74 20 77 6f 72 6b 20 62 65 74 74 65 72 20 77  it work better w
ac00: 68 65 6e 0a 20 20 20 20 63 6f 6d 70 69 6c 65 64  hen.    compiled
ac10: 20 75 73 69 6e 67 20 4d 53 56 43 2e 3c 2f 6c 69   using MSVC.</li
ac20: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20  >.<li>Bug fixes 
ac30: 69 6e 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72  in the TCL inter
ac40: 66 61 63 65 20 69 64 65 6e 74 69 66 69 65 64 20  face identified 
ac50: 62 79 20 4f 6c 65 67 20 4f 6c 65 69 6e 69 63 6b  by Oleg Oleinick
ac60: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
ac70: 32 30 30 31 20 4d 61 72 20 32 30 20 28 31 2e 30  2001 Mar 20 (1.0
ac80: 2e 32 37 29 7d 20 7b 0a 3c 6c 69 3e 57 68 65 6e  .27)} {.<li>When
ac90: 20 64 6f 69 6e 67 20 44 45 4c 45 54 45 20 61 6e   doing DELETE an
aca0: 64 20 55 50 44 41 54 45 2c 20 74 68 65 20 6c 69  d UPDATE, the li
acb0: 62 72 61 72 79 20 75 73 65 64 20 74 6f 20 77 72  brary used to wr
acc0: 69 74 65 20 74 68 65 20 72 65 63 6f 72 64 0a 20  ite the record. 
acd0: 20 20 20 6e 75 6d 62 65 72 73 20 6f 66 20 72 65     numbers of re
ace0: 63 6f 72 64 73 20 74 6f 20 62 65 20 64 65 6c 65  cords to be dele
acf0: 74 65 64 20 6f 72 20 75 70 64 61 74 65 64 20 69  ted or updated i
ad00: 6e 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20  nto a temporary 
ad10: 66 69 6c 65 2e 0a 20 20 20 20 54 68 69 73 20 69  file..    This i
ad20: 73 20 63 68 61 6e 67 65 64 20 73 6f 20 74 68 61  s changed so tha
ad30: 74 20 74 68 65 20 72 65 63 6f 72 64 20 6e 75 6d  t the record num
ad40: 62 65 72 73 20 61 72 65 20 68 65 6c 64 20 69 6e  bers are held in
ad50: 20 6d 65 6d 6f 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c   memory.</li>.<l
ad60: 69 3e 54 68 65 20 44 45 4c 45 54 45 20 63 6f 6d  i>The DELETE com
ad70: 6d 61 6e 64 20 77 69 74 68 6f 75 74 20 61 20 57  mand without a W
ad80: 48 49 4c 45 20 63 6c 61 75 73 65 20 6a 75 73 74  HILE clause just
ad90: 20 72 65 6d 6f 76 65 73 20 74 68 65 20 64 61 74   removes the dat
ada0: 61 62 61 73 65 0a 20 20 20 20 66 69 6c 65 73 20  abase.    files 
adb0: 66 72 6f 6d 20 74 68 65 20 64 69 73 6b 2c 20 72  from the disk, r
adc0: 61 74 68 65 72 20 74 68 61 6e 20 67 6f 69 6e 67  ather than going
add0: 20 74 68 72 6f 75 67 68 20 61 6e 64 20 64 65 6c   through and del
ade0: 65 74 69 6e 67 20 72 65 63 6f 72 64 0a 20 20 20  eting record.   
adf0: 20 62 79 20 72 65 63 6f 72 64 2e 3c 2f 6c 69 3e   by record.</li>
ae00: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d  .}..chng {2001 M
ae10: 61 72 20 32 30 20 28 31 2e 30 2e 32 36 29 7d 20  ar 20 (1.0.26)} 
ae20: 7b 0a 3c 6c 69 3e 41 20 73 65 72 69 6f 75 73 20  {.<li>A serious 
ae30: 62 75 67 20 66 69 78 65 64 20 6f 6e 20 57 69 6e  bug fixed on Win
ae40: 64 6f 77 73 2e 20 20 57 69 6e 64 6f 77 73 20 75  dows.  Windows u
ae50: 73 65 72 73 20 73 68 6f 75 6c 64 20 75 70 67 72  sers should upgr
ae60: 61 64 65 2e 0a 20 20 20 20 4e 6f 20 69 6d 70 61  ade..    No impa
ae70: 63 74 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e  ct to Unix.</li>
ae80: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d  .}..chng {2001 M
ae90: 61 72 20 31 35 20 28 31 2e 30 2e 32 35 29 7d 20  ar 15 (1.0.25)} 
aea0: 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 79 20 74 68 65  {.<li>Modify the
aeb0: 20 74 65 73 74 20 73 63 72 69 70 74 73 20 74 6f   test scripts to
aec0: 20 69 64 65 6e 74 69 66 79 20 74 65 73 74 73 20   identify tests 
aed0: 74 68 61 74 20 64 65 70 65 6e 64 20 6f 6e 20 73  that depend on s
aee0: 79 73 74 65 6d 0a 20 20 20 20 6c 6f 61 64 20 61  ystem.    load a
aef0: 6e 64 20 70 72 6f 63 65 73 73 6f 72 20 73 70 65  nd processor spe
af00: 65 64 20 61 6e 64 0a 20 20 20 20 74 6f 20 77 61  ed and.    to wa
af10: 72 6e 20 74 68 65 20 75 73 65 72 20 74 68 61 74  rn the user that
af20: 20 61 20 66 61 69 6c 75 72 65 20 6f 66 20 6f 6e   a failure of on
af30: 65 20 6f 66 20 74 68 6f 73 65 20 28 72 61 72 65  e of those (rare
af40: 29 20 74 65 73 74 73 20 64 6f 65 73 0a 20 20 20  ) tests does.   
af50: 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79   not necessarily
af60: 20 6d 65 61 6e 20 74 68 65 20 6c 69 62 72 61 72   mean the librar
af70: 79 20 69 73 20 6d 61 6c 66 75 6e 63 74 69 6f 6e  y is malfunction
af80: 69 6e 67 2e 20 20 4e 6f 20 63 68 61 6e 67 65 73  ing.  No changes
af90: 20 74 6f 0a 20 20 20 20 63 6f 64 65 2e 0a 20 20   to.    code..  
afa0: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
afb0: 7b 32 30 30 31 20 4d 61 72 20 31 34 20 28 31 2e  {2001 Mar 14 (1.
afc0: 30 2e 32 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  0.24)} {.<li>Fix
afd0: 20 61 20 62 75 67 20 77 68 69 63 68 20 77 61 73   a bug which was
afe0: 20 63 61 75 73 69 6e 67 0a 20 20 20 20 74 68 65   causing.    the
aff0: 20 55 50 44 41 54 45 20 63 6f 6d 6d 61 6e 64 20   UPDATE command 
b000: 74 6f 20 66 61 69 6c 20 6f 6e 20 73 79 73 74 65  to fail on syste
b010: 6d 73 20 77 68 65 72 65 20 22 6d 61 6c 6c 6f 63  ms where "malloc
b020: 28 30 29 22 20 72 65 74 75 72 6e 73 0a 20 20 20  (0)" returns.   
b030: 20 4e 55 4c 4c 2e 20 20 54 68 65 20 70 72 6f 62   NULL.  The prob
b040: 6c 65 6d 20 64 6f 65 73 20 6e 6f 74 20 61 70 70  lem does not app
b050: 65 61 72 20 57 69 6e 64 6f 77 73 2c 20 4c 69 6e  ear Windows, Lin
b060: 75 78 2c 20 6f 72 20 48 50 55 58 20 62 75 74 20  ux, or HPUX but 
b070: 64 6f 65 73 20 0a 20 20 20 20 63 61 75 73 65 20  does .    cause 
b080: 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f 20 66  the library to f
b090: 61 69 6c 20 6f 6e 20 51 4e 58 2e 0a 20 20 20 20  ail on QNX..    
b0a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
b0b0: 30 30 31 20 46 65 62 20 31 39 20 28 31 2e 30 2e  001 Feb 19 (1.0.
b0c0: 32 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 20 75 6e  23)} {.<li>An un
b0d0: 72 65 6c 61 74 65 64 20 28 61 6e 64 20 6d 69 6e  related (and min
b0e0: 6f 72 29 20 62 75 67 20 66 72 6f 6d 20 4d 61 72  or) bug from Mar
b0f0: 6b 20 4d 75 72 61 6e 77 73 6b 69 20 66 69 78 65  k Muranwski fixe
b100: 64 2e 20 20 54 68 65 20 61 6c 67 6f 72 69 74 68  d.  The algorith
b110: 6d 0a 20 20 20 20 66 6f 72 20 66 69 67 75 72 69  m.    for figuri
b120: 6e 67 20 6f 75 74 20 77 68 65 72 65 20 74 6f 20  ng out where to 
b130: 70 75 74 20 74 65 6d 70 6f 72 61 72 79 20 66 69  put temporary fi
b140: 6c 65 73 20 66 6f 72 20 61 20 22 6d 65 6d 6f 72  les for a "memor
b150: 79 3a 22 20 64 61 74 61 62 61 73 65 0a 20 20 20  y:" database.   
b160: 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67   was not working
b170: 20 71 75 69 74 65 20 72 69 67 68 74 2e 0a 20 20   quite right..  
b180: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
b190: 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e  {2001 Feb 19 (1.
b1a0: 30 2e 32 32 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65  0.22)} {.<li>The
b1b0: 20 70 72 65 76 69 6f 75 73 20 66 69 78 20 77 61   previous fix wa
b1c0: 73 20 6e 6f 74 20 71 75 69 74 65 20 72 69 67 68  s not quite righ
b1d0: 74 2e 20 20 54 68 69 73 20 6f 6e 65 20 73 65 65  t.  This one see
b1e0: 6d 73 20 74 6f 20 77 6f 72 6b 20 62 65 74 74 65  ms to work bette
b1f0: 72 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a  r..    </li>.}..
b200: 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31  chng {2001 Feb 1
b210: 39 20 28 31 2e 30 2e 32 31 29 7d 20 7b 0a 3c 6c  9 (1.0.21)} {.<l
b220: 69 3e 54 68 65 20 55 50 44 41 54 45 20 73 74 61  i>The UPDATE sta
b230: 74 65 6d 65 6e 74 20 77 61 73 20 6e 6f 74 20 77  tement was not w
b240: 6f 72 6b 69 6e 67 20 77 68 65 6e 20 74 68 65 20  orking when the 
b250: 57 48 45 52 45 20 63 6c 61 75 73 65 20 63 6f 6e  WHERE clause con
b260: 74 61 69 6e 65 64 0a 20 20 20 20 73 6f 6d 65 20  tained.    some 
b270: 74 65 72 6d 73 20 74 68 61 74 20 63 6f 75 6c 64  terms that could
b280: 20 62 65 20 73 61 74 69 73 66 69 65 64 20 75 73   be satisfied us
b290: 69 6e 67 20 69 6e 64 69 63 65 73 20 61 6e 64 20  ing indices and 
b2a0: 6f 74 68 65 72 20 74 65 72 6d 73 20 74 68 61 74  other terms that
b2b0: 0a 20 20 20 20 63 6f 75 6c 64 20 6e 6f 74 2e 20  .    could not. 
b2c0: 20 46 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   Fixed.</li>.}..
b2d0: 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31  chng {2001 Feb 1
b2e0: 31 20 28 31 2e 30 2e 32 30 29 7d 20 7b 0a 3c 6c  1 (1.0.20)} {.<l
b2f0: 69 3e 4d 65 72 67 65 20 64 65 76 65 6c 6f 70 6d  i>Merge developm
b300: 65 6e 74 20 63 68 61 6e 67 65 73 20 69 6e 74 6f  ent changes into
b310: 20 74 68 65 20 6d 61 69 6e 20 74 72 75 6e 6b 2e   the main trunk.
b320: 20 20 46 75 74 75 72 65 20 77 6f 72 6b 20 74 6f    Future work to
b330: 77 61 72 64 0a 20 20 20 20 75 73 69 6e 67 20 61  ward.    using a
b340: 20 42 54 72 65 65 20 66 69 6c 65 20 73 74 72 75   BTree file stru
b350: 63 74 75 72 65 20 77 69 6c 6c 20 75 73 65 20 61  cture will use a
b360: 20 73 65 70 61 72 61 74 65 20 43 56 53 20 73 6f   separate CVS so
b370: 75 72 63 65 20 74 72 65 65 2e 20 20 54 68 69 73  urce tree.  This
b380: 0a 20 20 20 20 43 56 53 20 74 72 65 65 20 77 69  .    CVS tree wi
b390: 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 73  ll continue to s
b3a0: 75 70 70 6f 72 74 20 74 68 65 20 47 44 42 4d 20  upport the GDBM 
b3b0: 76 65 72 73 69 6f 6e 20 6f 66 20 53 51 4c 69 74  version of SQLit
b3c0: 65 20 6f 6e 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e only.</li>.}..
b3d0: 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20 36  chng {2001 Feb 6
b3e0: 20 28 31 2e 30 2e 31 39 29 7d 20 7b 0a 3c 6c 69   (1.0.19)} {.<li
b3f0: 3e 46 69 78 20 61 20 73 74 72 61 6e 67 65 20 28  >Fix a strange (
b400: 62 75 74 20 76 61 6c 69 64 29 20 43 20 64 65 63  but valid) C dec
b410: 6c 61 72 61 74 69 6f 6e 20 74 68 61 74 20 77 61  laration that wa
b420: 73 20 63 61 75 73 69 6e 67 20 70 72 6f 62 6c 65  s causing proble
b430: 6d 73 0a 20 20 20 20 66 6f 72 20 51 4e 58 2e 20  ms.    for QNX. 
b440: 20 4e 6f 20 6c 6f 67 69 63 61 6c 20 63 68 61 6e   No logical chan
b450: 67 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ges.</li>.}..chn
b460: 67 20 7b 32 30 30 31 20 4a 61 6e 20 34 20 28 31  g {2001 Jan 4 (1
b470: 2e 30 2e 31 38 29 7d 20 7b 0a 3c 6c 69 3e 50 72  .0.18)} {.<li>Pr
b480: 69 6e 74 20 74 68 65 20 6f 66 66 65 6e 64 69 6e  int the offendin
b490: 67 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 20  g SQL statement 
b4a0: 77 68 65 6e 20 61 6e 20 65 72 72 6f 72 20 6f 63  when an error oc
b4b0: 63 75 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  curs.</li>.<li>D
b4c0: 6f 20 6e 6f 74 20 72 65 71 75 69 72 65 20 63 6f  o not require co
b4d0: 6d 6d 61 73 20 62 65 74 77 65 65 6e 20 63 6f 6e  mmas between con
b4e0: 73 74 72 61 69 6e 74 73 20 69 6e 20 43 52 45 41  straints in CREA
b4f0: 54 45 20 54 41 42 4c 45 20 73 74 61 74 65 6d 65  TE TABLE stateme
b500: 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  nts.</li>.<li>Ad
b510: 64 65 64 20 74 68 65 20 22 2d 65 63 68 6f 22 20  ded the "-echo" 
b520: 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 73 68  option to the sh
b530: 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68  ell.</li>.<li>Ch
b540: 61 6e 67 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74  anges to comment
b550: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
b560: 7b 32 30 30 30 20 44 65 63 20 31 30 20 28 31 2e  {2000 Dec 10 (1.
b570: 30 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e 52 65 77  0.17)} {.<li>Rew
b580: 72 6f 74 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63  rote <b>sqlite_c
b590: 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20 74 6f  omplete()</b> to
b5a0: 20 6d 61 6b 65 20 69 74 20 66 61 73 74 65 72 2e   make it faster.
b5b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20  </li>.<li>Minor 
b5c0: 74 77 65 61 6b 73 20 74 6f 20 6f 74 68 65 72 20  tweaks to other 
b5d0: 63 6f 64 65 20 74 6f 20 6d 61 6b 65 20 69 74 20  code to make it 
b5e0: 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61 73  run a little fas
b5f0: 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ter.</li>.<li>Ad
b600: 64 65 64 20 6e 65 77 20 74 65 73 74 73 20 66 6f  ded new tests fo
b610: 72 20 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70  r <b>sqlite_comp
b620: 6c 65 74 65 28 29 3c 2f 62 3e 20 61 6e 64 20 66  lete()</b> and f
b630: 6f 72 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 2e  or memory leaks.
b640: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
b650: 30 30 30 20 44 65 63 20 34 20 28 31 2e 30 2e 31  000 Dec 4 (1.0.1
b660: 36 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65  6)} {.<li>Docume
b670: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e  ntation updates.
b680: 20 20 4d 6f 73 74 6c 79 20 66 69 78 69 6e 67 20    Mostly fixing 
b690: 6f 66 20 74 79 70 6f 73 20 61 6e 64 20 73 70 65  of typos and spe
b6a0: 6c 6c 69 6e 67 20 65 72 72 6f 72 73 2e 3c 2f 6c  lling errors.</l
b6b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
b6c0: 20 4f 63 74 20 32 33 20 28 31 2e 30 2e 31 35 29   Oct 23 (1.0.15)
b6d0: 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74  } {.<li>Document
b6e0: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c  ation updates</l
b6f0: 69 3e 0a 3c 6c 69 3e 53 6f 6d 65 20 73 61 6e 69  i>.<li>Some sani
b700: 74 79 20 63 68 65 63 6b 69 6e 67 20 63 6f 64 65  ty checking code
b710: 20 77 61 73 20 72 65 6d 6f 76 65 64 20 66 72 6f   was removed fro
b720: 6d 20 74 68 65 20 69 6e 6e 65 72 20 6c 6f 6f 70  m the inner loop
b730: 20 6f 66 20 76 64 62 65 2e 63 0a 20 20 20 20 74   of vdbe.c.    t
b740: 6f 20 68 65 6c 70 20 74 68 65 20 6c 69 62 72 61  o help the libra
b750: 72 79 20 74 6f 20 72 75 6e 20 61 20 6c 69 74 74  ry to run a litt
b760: 6c 65 20 66 61 73 74 65 72 2e 20 20 54 68 65 20  le faster.  The 
b770: 63 6f 64 65 20 69 73 20 6f 6e 6c 79 0a 20 20 20  code is only.   
b780: 20 72 65 6d 6f 76 65 64 20 69 66 20 79 6f 75 20   removed if you 
b790: 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d 44 4e  compile with -DN
b7a0: 44 45 42 55 47 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  DEBUG.</li>.}..c
b7b0: 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 39  hng {2000 Oct 19
b7c0: 20 28 31 2e 30 2e 31 34 29 7d 20 7b 0a 3c 6c 69   (1.0.14)} {.<li
b7d0: 3e 41 64 64 65 64 20 61 20 22 6d 65 6d 6f 72 79  >Added a "memory
b7e0: 3a 22 20 62 61 63 6b 65 6e 64 20 64 72 69 76 65  :" backend drive
b7f0: 72 20 74 68 61 74 20 73 74 6f 72 65 73 20 69 74  r that stores it
b800: 73 20 64 61 74 61 62 61 73 65 20 69 6e 20 61 6e  s database in an
b810: 0a 20 20 20 20 69 6e 2d 6d 65 6d 6f 72 79 20 68  .    in-memory h
b820: 61 73 68 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  ash table.</li>.
b830: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63  }..chng {2000 Oc
b840: 74 20 31 38 20 28 31 2e 30 2e 31 33 29 7d 20 7b  t 18 (1.0.13)} {
b850: 0a 3c 6c 69 3e 42 72 65 61 6b 20 6f 75 74 20 74  .<li>Break out t
b860: 68 65 20 47 44 42 4d 20 64 72 69 76 65 72 20 69  he GDBM driver i
b870: 6e 74 6f 20 61 20 73 65 70 61 72 61 74 65 20 66  nto a separate f
b880: 69 6c 65 20 69 6e 20 61 6e 74 69 63 69 70 61 74  ile in anticipat
b890: 69 6f 6e 0a 20 20 20 20 74 6f 20 61 64 64 65 64  ion.    to added
b8a0: 20 6e 65 77 20 64 72 69 76 65 72 73 2e 3c 2f 6c   new drivers.</l
b8b0: 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68 65  i>.<li>Allow the
b8c0: 20 6e 61 6d 65 20 6f 66 20 61 20 64 61 74 61 62   name of a datab
b8d0: 61 73 65 20 74 6f 20 62 65 20 70 72 65 66 69 78  ase to be prefix
b8e0: 65 64 20 62 79 20 74 68 65 20 64 72 69 76 65 72  ed by the driver
b8f0: 20 74 79 70 65 2e 0a 20 20 20 20 46 6f 72 20 6e   type..    For n
b900: 6f 77 2c 20 74 68 65 20 6f 6e 6c 79 20 64 72 69  ow, the only dri
b910: 76 65 72 20 74 79 70 65 20 69 73 20 22 67 64 62  ver type is "gdb
b920: 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  m:".</li>.}..chn
b930: 67 20 7b 32 30 30 30 20 4f 63 74 20 31 36 20 28  g {2000 Oct 16 (
b940: 31 2e 30 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 46  1.0.12)} {.<li>F
b950: 69 78 65 64 20 61 6e 20 6f 66 66 2d 62 79 2d 6f  ixed an off-by-o
b960: 6e 65 20 65 72 72 6f 72 20 74 68 61 74 20 77 61  ne error that wa
b970: 73 20 63 61 75 73 69 6e 67 20 61 20 63 6f 72 65  s causing a core
b980: 64 75 6d 70 20 69 6e 20 0a 20 20 20 20 74 68 65  dump in .    the
b990: 20 27 25 71 27 20 66 6f 72 6d 61 74 20 64 69 72   '%q' format dir
b9a0: 65 63 74 69 76 65 20 6f 66 20 74 68 65 20 6e 65  ective of the ne
b9b0: 77 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 5f  w.    <b>sqlite_
b9c0: 2e 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e  ..._printf()</b>
b9d0: 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a   routines.</li>.
b9e0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
b9f0: 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70  >sqlite_interrup
ba00: 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63  t()</b> interfac
ba10: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74  e.</li>.<li>In t
ba20: 68 65 20 73 68 65 6c 6c 2c 20 3c 62 3e 73 71 6c  he shell, <b>sql
ba30: 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29 3c  ite_interrupt()<
ba40: 2f 62 3e 20 69 73 20 69 6e 76 6f 6b 65 64 20 77  /b> is invoked w
ba50: 68 65 6e 20 74 68 65 0a 20 20 20 20 75 73 65 72  hen the.    user
ba60: 20 70 72 65 73 73 65 73 20 43 6f 6e 74 72 6f 6c   presses Control
ba70: 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65  -C</li>.<li>Fixe
ba80: 64 20 73 6f 6d 65 20 69 6e 73 74 61 6e 63 65 73  d some instances
ba90: 20 77 68 65 72 65 20 3c 62 3e 73 71 6c 69 74 65   where <b>sqlite
baa0: 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77 61 73 0a  _exec()</b> was.
bab0: 20 20 20 20 72 65 74 75 72 6e 69 6e 67 20 74 68      returning th
bac0: 65 20 77 72 6f 6e 67 20 65 72 72 6f 72 20 63 6f  e wrong error co
bad0: 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  de.</li>.}..chng
bae0: 20 7b 32 30 30 30 20 4f 63 74 20 31 31 20 28 31   {2000 Oct 11 (1
baf0: 2e 30 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64  .0.10)} {.<li>Ad
bb00: 64 65 64 20 6e 6f 74 65 73 20 6f 6e 20 68 6f 77  ded notes on how
bb10: 20 74 6f 20 63 6f 6d 70 69 6c 65 20 66 6f 72 20   to compile for 
bb20: 57 69 6e 64 6f 77 73 39 35 2f 39 38 2e 3c 2f 6c  Windows95/98.</l
bb30: 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 61  i>.<li>Removed a
bb40: 20 66 65 77 20 76 61 72 69 61 62 6c 65 73 20 74   few variables t
bb50: 68 61 74 20 77 65 72 65 20 6e 6f 74 20 62 65 69  hat were not bei
bb60: 6e 67 20 75 73 65 64 2e 20 20 45 74 63 2e 3c 2f  ng used.  Etc.</
bb70: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
bb80: 30 20 4f 63 74 20 38 20 28 31 2e 30 2e 39 29 7d  0 Oct 8 (1.0.9)}
bb90: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
bba0: 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70   <b>sqlite_..._p
bbb0: 72 69 6e 74 66 28 29 3c 2f 62 3e 20 69 6e 74 65  rintf()</b> inte
bbc0: 72 66 61 63 65 20 72 6f 75 74 69 6e 65 73 2e 3c  rface routines.<
bbd0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65  /li>.<li>Modifie
bbe0: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  d the <b>sqlite<
bbf0: 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61  /b> shell progra
bc00: 6d 20 74 6f 20 75 73 65 20 74 68 65 20 6e 65 77  m to use the new
bc10: 20 69 6e 74 65 72 66 61 63 65 20 0a 20 20 20 20   interface .    
bc20: 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c  routines.</li>.<
bc30: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
bc40: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68  <b>sqlite</b> sh
bc50: 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20 70  ell program to p
bc60: 72 69 6e 74 20 74 68 65 20 73 63 68 65 6d 61 20  rint the schema 
bc70: 66 6f 72 0a 20 20 20 20 74 68 65 20 62 75 69 6c  for.    the buil
bc80: 74 2d 69 6e 20 53 51 4c 49 54 45 5f 4d 41 53 54  t-in SQLITE_MAST
bc90: 45 52 20 74 61 62 6c 65 2c 20 69 66 20 65 78 70  ER table, if exp
bca0: 6c 69 63 69 74 6c 79 20 72 65 71 75 65 73 74 65  licitly requeste
bcb0: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
bcc0: 7b 32 30 30 30 20 53 65 70 20 33 30 20 28 31 2e  {2000 Sep 30 (1.
bcd0: 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69  0.8)} {.<li>Begi
bce0: 6e 20 77 72 69 74 69 6e 67 20 64 6f 63 75 6d 65  n writing docume
bcf0: 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 54  ntation on the T
bd00: 43 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  CL interface.</l
bd10: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
bd20: 20 53 65 70 20 32 39 20 28 4e 6f 74 20 52 65 6c   Sep 29 (Not Rel
bd30: 65 61 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e 41 64  eased)} {.<li>Ad
bd40: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
bd50: 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f 62  e_get_table()</b
bd60: 3e 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  > API</li>.<li>U
bd70: 70 64 61 74 65 64 20 74 68 65 20 64 6f 63 75 6d  pdated the docum
bd80: 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 64 75 65  entation for due
bd90: 20 74 6f 20 74 68 65 20 61 62 6f 76 65 20 63 68   to the above ch
bda0: 61 6e 67 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ange.</li>.<li>M
bdb0: 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73  odified the <b>s
bdc0: 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20  qlite</b> shell 
bdd0: 74 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 74  to make use of t
bde0: 68 65 20 6e 65 77 0a 20 20 20 20 73 71 6c 69 74  he new.    sqlit
bdf0: 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 20 41 50  e_get_table() AP
be00: 49 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 72  I in order to pr
be10: 69 6e 74 20 61 20 6c 69 73 74 20 6f 66 20 74 61  int a list of ta
be20: 62 6c 65 73 0a 20 20 20 20 69 6e 20 6d 75 6c 74  bles.    in mult
be30: 69 70 6c 65 20 63 6f 6c 75 6d 6e 73 2c 20 73 69  iple columns, si
be40: 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 77 61 79  milar to the way
be50: 20 22 6c 73 22 20 70 72 69 6e 74 73 20 66 69 6c   "ls" prints fil
be60: 65 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  enames.</li>.<li
be70: 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62  >Modified the <b
be80: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c  >sqlite</b> shel
be90: 6c 20 74 6f 20 70 72 69 6e 74 20 61 20 73 65 6d  l to print a sem
bea0: 69 63 6f 6c 6f 6e 20 61 74 20 74 68 65 0a 20 20  icolon at the.  
beb0: 20 20 65 6e 64 20 6f 66 20 65 61 63 68 20 43 52    end of each CR
bec0: 45 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20 69  EATE statement i
bed0: 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20  n the output of 
bee0: 74 68 65 20 22 2e 73 63 68 65 6d 61 22 20 63 6f  the ".schema" co
bef0: 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  mmand.</li>.}..c
bf00: 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 32 31  hng {2000 Sep 21
bf10: 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64 29 7d   (Not Released)}
bf20: 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68   {.<li>Change th
bf30: 65 20 74 63 6c 73 71 6c 69 74 65 20 22 65 76 61  e tclsqlite "eva
bf40: 6c 22 20 6d 65 74 68 6f 64 20 74 6f 20 72 65 74  l" method to ret
bf50: 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 72 65  urn a list of re
bf60: 73 75 6c 74 73 20 69 66 0a 20 20 20 20 6e 6f 20  sults if.    no 
bf70: 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 70 74 20  callback script 
bf80: 69 73 20 73 70 65 63 69 66 69 65 64 2e 3c 2f 6c  is specified.</l
bf90: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 63  i>.<li>Change tc
bfa0: 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 75 73 65  lsqlite.c to use
bfb0: 20 74 68 65 20 54 63 6c 5f 4f 62 6a 20 69 6e 74   the Tcl_Obj int
bfc0: 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  erface</li>.<li>
bfd0: 41 64 64 20 74 63 6c 73 71 6c 69 74 65 2e 63 20  Add tclsqlite.c 
bfe0: 74 6f 20 74 68 65 20 6c 69 62 73 71 6c 69 74 65  to the libsqlite
bff0: 2e 61 20 6c 69 62 72 61 72 79 3c 2f 6c 69 3e 0a  .a library</li>.
c000: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65  }..chng {2000 Se
c010: 70 20 31 33 20 28 56 65 72 73 69 6f 6e 20 31 2e  p 13 (Version 1.
c020: 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e  0.5)} {.<li>Chan
c030: 67 65 64 20 74 68 65 20 70 72 69 6e 74 20 66 6f  ged the print fo
c040: 72 6d 61 74 20 66 6f 72 20 66 6c 6f 61 74 69 6e  rmat for floatin
c050: 67 20 70 6f 69 6e 74 20 76 61 6c 75 65 73 20 66  g point values f
c060: 72 6f 6d 20 22 25 67 22 20 74 6f 20 22 25 2e 31  rom "%g" to "%.1
c070: 35 67 22 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 3c  5g"..    </li>.<
c080: 6c 69 3e 43 68 61 6e 67 65 64 20 74 68 65 20 63  li>Changed the c
c090: 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69  omparison functi
c0a0: 6f 6e 20 73 6f 20 74 68 61 74 20 6e 75 6d 62 65  on so that numbe
c0b0: 72 73 20 69 6e 20 65 78 70 6f 6e 65 6e 74 69 61  rs in exponentia
c0c0: 6c 20 6e 6f 74 61 74 69 6f 6e 0a 20 20 20 20 28  l notation.    (
c0d0: 65 78 3a 20 31 2e 32 33 34 65 2b 30 35 29 20 73  ex: 1.234e+05) s
c0e0: 6f 72 74 20 69 6e 20 6e 75 6d 65 72 69 63 61 6c  ort in numerical
c0f0: 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   order.</li>.}..
c100: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 32  chng {2000 Aug 2
c110: 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 34  8 (Version 1.0.4
c120: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 66  )} {.<li>Added f
c130: 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 6c 65 6e 67  unctions <b>leng
c140: 74 68 28 29 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  th()</b> and <b>
c150: 73 75 62 73 74 72 28 29 3c 2f 62 3e 2e 3c 2f 6c  substr()</b>.</l
c160: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
c170: 20 69 6e 20 74 68 65 20 3c 62 3e 73 71 6c 69 74   in the <b>sqlit
c180: 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67  e</b> shell prog
c190: 72 61 6d 20 74 68 61 74 20 77 61 73 20 63 61 75  ram that was cau
c1a0: 73 69 6e 67 0a 20 20 20 20 61 20 63 6f 72 65 64  sing.    a cored
c1b0: 75 6d 70 20 77 68 65 6e 20 74 68 65 20 6f 75 74  ump when the out
c1c0: 70 75 74 20 6d 6f 64 65 20 77 61 73 20 22 63 6f  put mode was "co
c1d0: 6c 75 6d 6e 22 20 61 6e 64 20 74 68 65 20 66 69  lumn" and the fi
c1e0: 72 73 74 20 72 6f 77 0a 20 20 20 20 6f 66 20 64  rst row.    of d
c1f0: 61 74 61 20 63 6f 6e 74 61 69 6e 65 64 20 61 20  ata contained a 
c200: 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  NULL.</li>.}..ch
c210: 6e 67 20 7b 32 30 30 30 20 41 75 67 20 32 32 20  ng {2000 Aug 22 
c220: 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 33 29 7d  (Version 1.0.3)}
c230: 20 7b 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 71   {.<li>In the sq
c240: 6c 69 74 65 20 73 68 65 6c 6c 2c 20 70 72 69 6e  lite shell, prin
c250: 74 20 74 68 65 20 22 44 61 74 61 62 61 73 65 20  t the "Database 
c260: 6f 70 65 6e 65 64 20 52 45 41 44 20 4f 4e 4c 59  opened READ ONLY
c270: 22 20 6d 65 73 73 61 67 65 0a 20 20 20 20 74 6f  " message.    to
c280: 20 73 74 64 65 72 72 20 69 6e 73 74 65 61 64 20   stderr instead 
c290: 6f 66 20 73 74 64 6f 75 74 2e 3c 2f 6c 69 3e 0a  of stdout.</li>.
c2a0: 3c 6c 69 3e 49 6e 20 74 68 65 20 73 71 6c 69 74  <li>In the sqlit
c2b0: 65 20 73 68 65 6c 6c 2c 20 6e 6f 77 20 70 72 69  e shell, now pri
c2c0: 6e 74 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e  nt the version n
c2d0: 75 6d 62 65 72 20 6f 6e 20 69 6e 69 74 69 61 6c  umber on initial
c2e0: 20 73 74 61 72 74 75 70 2e 3c 2f 6c 69 3e 0a 3c   startup.</li>.<
c2f0: 6c 69 3e 41 64 64 20 74 68 65 20 3c 62 3e 73 71  li>Add the <b>sq
c300: 6c 69 74 65 5f 76 65 72 73 69 6f 6e 5b 5d 3c 2f  lite_version[]</
c310: 62 3e 20 73 74 72 69 6e 67 20 63 6f 6e 73 74 61  b> string consta
c320: 6e 74 20 74 6f 20 74 68 65 20 6c 69 62 72 61 72  nt to the librar
c330: 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66  y</li>.<li>Makef
c340: 69 6c 65 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e  ile updates</li>
c350: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 69 6e  .<li>Bug fix: in
c360: 63 6f 72 72 65 63 74 20 56 44 42 45 20 63 6f 64  correct VDBE cod
c370: 65 20 77 61 73 20 62 65 69 6e 67 20 67 65 6e 65  e was being gene
c380: 72 61 74 65 64 20 66 6f 72 20 74 68 65 20 66 6f  rated for the fo
c390: 6c 6c 6f 77 69 6e 67 0a 20 20 20 20 63 69 72 63  llowing.    circ
c3a0: 75 6d 73 74 61 6e 63 65 3a 20 61 20 71 75 65 72  umstance: a quer
c3b0: 79 20 6f 6e 20 61 6e 20 69 6e 64 65 78 65 64 20  y on an indexed 
c3c0: 74 61 62 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67  table containing
c3d0: 20 61 20 57 48 45 52 45 20 63 6c 61 75 73 65 20   a WHERE clause 
c3e0: 77 69 74 68 0a 20 20 20 20 61 6e 20 49 4e 20 6f  with.    an IN o
c3f0: 70 65 72 61 74 6f 72 20 74 68 61 74 20 68 61 64  perator that had
c400: 20 61 20 73 75 62 71 75 65 72 79 20 6f 6e 20 69   a subquery on i
c410: 74 73 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69  ts right-hand si
c420: 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  de.</li>.}..chng
c430: 20 7b 32 30 30 30 20 41 75 67 20 31 38 20 28 56   {2000 Aug 18 (V
c440: 65 72 73 69 6f 6e 20 31 2e 30 2e 31 29 7d 20 7b  ersion 1.0.1)} {
c450: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
c460: 6e 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65 20  n the configure 
c470: 73 63 72 69 70 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  script.</li>.<li
c480: 3e 4d 69 6e 6f 72 20 72 65 76 69 73 69 6f 6e 73  >Minor revisions
c490: 20 74 6f 20 74 68 65 20 77 65 62 73 69 74 65 2e   to the website.
c4a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c4b0: 30 30 30 20 41 75 67 20 31 37 20 28 56 65 72 73  000 Aug 17 (Vers
c4c0: 69 6f 6e 20 31 2e 30 29 7d 20 7b 0a 3c 6c 69 3e  ion 1.0)} {.<li>
c4d0: 43 68 61 6e 67 65 20 74 68 65 20 3c 62 3e 73 71  Change the <b>sq
c4e0: 6c 69 74 65 3c 2f 62 3e 20 70 72 6f 67 72 61 6d  lite</b> program
c4f0: 20 73 6f 20 74 68 61 74 20 69 74 20 63 61 6e 20   so that it can 
c500: 72 65 61 64 0a 20 20 20 20 64 61 74 61 62 61 73  read.    databas
c510: 65 73 20 66 6f 72 20 77 68 69 63 68 20 69 74 20  es for which it 
c520: 6c 61 63 6b 73 20 77 72 69 74 65 20 70 65 72 6d  lacks write perm
c530: 69 73 73 69 6f 6e 2e 20 20 28 49 74 20 75 73 65  ission.  (It use
c540: 64 20 74 6f 0a 20 20 20 20 72 65 66 75 73 65 20  d to.    refuse 
c550: 61 6c 6c 20 61 63 63 65 73 73 20 69 66 20 69 74  all access if it
c560: 20 63 6f 75 6c 64 20 6e 6f 74 20 77 72 69 74 65   could not write
c570: 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  .)</li>.}..chng 
c580: 7b 32 30 30 30 20 41 75 67 20 39 7d 20 7b 0a 3c  {2000 Aug 9} {.<
c590: 6c 69 3e 54 72 65 61 74 20 63 61 72 72 69 61 67  li>Treat carriag
c5a0: 65 20 72 65 74 75 72 6e 73 20 61 73 20 77 68 69  e returns as whi
c5b0: 74 65 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a 7d  te space.</li>.}
c5c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
c5d0: 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20   8} {.<li>Added 
c5e0: 70 61 74 74 65 72 6e 20 6d 61 74 63 68 69 6e 67  pattern matching
c5f0: 20 74 6f 20 74 68 65 20 22 2e 74 61 62 6c 65 22   to the ".table"
c600: 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20   command in the 
c610: 22 73 71 6c 69 74 65 22 0a 63 6f 6d 6d 61 6e 64  "sqlite".command
c620: 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   shell.</li>.}..
c630: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 34  chng {2000 Aug 4
c640: 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74  } {.<li>Document
c650: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c  ation updates</l
c660: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 22 62 75  i>.<li>Added "bu
c670: 73 79 22 20 61 6e 64 20 22 74 69 6d 65 6f 75 74  sy" and "timeout
c680: 22 20 6d 65 74 68 6f 64 73 20 74 6f 20 74 68 65  " methods to the
c690: 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65 3c 2f   Tcl interface</
c6a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
c6b0: 30 20 41 75 67 20 33 7d 20 7b 0a 3c 6c 69 3e 46  0 Aug 3} {.<li>F
c6c0: 69 6c 65 20 66 6f 72 6d 61 74 20 76 65 72 73 69  ile format versi
c6d0: 6f 6e 20 6e 75 6d 62 65 72 20 77 61 73 20 62 65  on number was be
c6e0: 69 6e 67 20 73 74 6f 72 65 64 20 69 6e 20 73 71  ing stored in sq
c6f0: 6c 69 74 65 5f 6d 61 73 74 65 72 2e 74 63 6c 0a  lite_master.tcl.
c700: 20 20 20 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d      multiple tim
c710: 65 73 2e 20 54 68 69 73 20 77 61 73 20 68 61 72  es. This was har
c720: 6d 6c 65 73 73 2c 20 62 75 74 20 75 6e 6e 65 63  mless, but unnec
c730: 65 73 73 61 72 79 2e 20 49 74 20 69 73 20 6e 6f  essary. It is no
c740: 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  w fixed.</li>.}.
c750: 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
c760: 32 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 66 69 6c  2} {.<li>The fil
c770: 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 69 6e 64  e format for ind
c780: 69 63 65 73 20 77 61 73 20 63 68 61 6e 67 65 64  ices was changed
c790: 20 73 6c 69 67 68 74 6c 79 20 69 6e 20 6f 72 64   slightly in ord
c7a0: 65 72 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20 61  er to work.    a
c7b0: 72 6f 75 6e 64 20 61 6e 20 69 6e 65 66 66 69 63  round an ineffic
c7c0: 69 65 6e 63 79 20 74 68 61 74 20 63 61 6e 20 73  iency that can s
c7d0: 6f 6d 65 74 69 6d 65 73 20 63 6f 6d 65 20 75 70  ometimes come up
c7e0: 20 77 69 74 68 20 47 44 42 4d 20 77 68 65 6e 0a   with GDBM when.
c7f0: 20 20 20 20 74 68 65 72 65 20 61 72 65 20 6c 61      there are la
c800: 72 67 65 20 69 6e 64 69 63 65 73 20 68 61 76 69  rge indices havi
c810: 6e 67 20 6d 61 6e 79 20 65 6e 74 72 69 65 73 20  ng many entries 
c820: 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6b 65  with the same ke
c830: 79 2e 0a 20 20 20 20 3c 66 6f 6e 74 20 63 6f 6c  y..    <font col
c840: 6f 72 3d 22 72 65 64 22 3e 2a 2a 20 49 6e 63 6f  or="red">** Inco
c850: 6d 70 61 74 69 62 6c 65 20 43 68 61 6e 67 65 20  mpatible Change 
c860: 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f 6c 69 3e 0a 7d  **</font></li>.}
c870: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
c880: 20 31 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 61   1} {.<li>The pa
c890: 72 73 65 72 27 73 20 73 74 61 63 6b 20 77 61 73  rser's stack was
c8a0: 20 6f 76 65 72 66 6c 6f 77 69 6e 67 20 6f 6e 20   overflowing on 
c8b0: 61 20 76 65 72 79 20 6c 6f 6e 67 20 55 50 44 41  a very long UPDA
c8c0: 54 45 20 73 74 61 74 65 6d 65 6e 74 2e 0a 20 20  TE statement..  
c8d0: 20 20 54 68 69 73 20 69 73 20 6e 6f 77 20 66 69    This is now fi
c8e0: 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xed.</li>.}..chn
c8f0: 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 33 31 7d  g {2000 July 31}
c900: 20 7b 0a 3c 6c 69 3e 46 69 6e 69 73 68 20 74 68   {.<li>Finish th
c910: 65 20 3c 61 20 68 72 65 66 3d 22 76 64 62 65 2e  e <a href="vdbe.
c920: 68 74 6d 6c 22 3e 56 44 42 45 20 74 75 74 6f 72  html">VDBE tutor
c930: 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c  ial</a>.</li>.<l
c940: 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65 6e 74  i>Added document
c950: 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d 70 69 6c 69  ation on compili
c960: 6e 67 20 74 6f 20 57 69 6e 64 6f 77 73 4e 54 2e  ng to WindowsNT.
c970: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
c980: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72  configuration pr
c990: 6f 67 72 61 6d 20 66 6f 72 20 57 69 6e 64 6f 77  ogram for Window
c9a0: 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  sNT.</li>.<li>Fi
c9b0: 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  x a configuratio
c9c0: 6e 20 70 72 6f 62 6c 65 6d 20 66 6f 72 20 48 50  n problem for HP
c9d0: 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  UX.</li>.}..chng
c9e0: 20 7b 32 30 30 30 20 4a 75 6c 79 20 32 39 7d 20   {2000 July 29} 
c9f0: 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 6c 61 62  {.<li>Better lab
ca00: 65 6c 73 20 6f 6e 20 63 6f 6c 75 6d 6e 20 6e 61  els on column na
ca10: 6d 65 73 20 6f 66 20 74 68 65 20 72 65 73 75 6c  mes of the resul
ca20: 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  t.</li>.}..chng 
ca30: 7b 32 30 30 30 20 4a 75 6c 79 20 32 38 7d 20 7b  {2000 July 28} {
ca40: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c  .<li>Added the <
ca50: 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 68 61  b>sqlite_busy_ha
ca60: 6e 64 6c 65 72 28 29 3c 2f 62 3e 20 0a 20 20 20  ndler()</b> .   
ca70: 20 61 6e 64 20 3c 62 3e 73 71 6c 69 74 65 5f 62   and <b>sqlite_b
ca80: 75 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f 62  usy_timeout()</b
ca90: 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69  > interface.</li
caa0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
cab0: 4a 75 6e 65 20 32 33 7d 20 7b 0a 3c 6c 69 3e 42  June 23} {.<li>B
cac0: 65 67 69 6e 20 77 72 69 74 69 6e 67 20 74 68 65  egin writing the
cad0: 20 3c 61 20 68 72 65 66 3d 22 76 64 62 65 2e 68   <a href="vdbe.h
cae0: 74 6d 6c 22 3e 56 44 42 45 20 74 75 74 6f 72 69  tml">VDBE tutori
caf0: 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  al</a>.</li>.}..
cb00: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
cb10: 32 31 7d 20 7b 0a 3c 6c 69 3e 43 6c 65 61 6e 20  21} {.<li>Clean 
cb20: 75 70 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20  up comments and 
cb30: 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 2e 20  variable names. 
cb40: 20 43 68 61 6e 67 65 73 20 74 6f 20 64 6f 63 75   Changes to docu
cb50: 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20 4e  mentation..    N
cb60: 6f 20 66 75 6e 63 74 69 6f 6e 61 6c 20 63 68 61  o functional cha
cb70: 6e 67 65 73 20 74 6f 20 74 68 65 20 63 6f 64 65  nges to the code
cb80: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
cb90: 32 30 30 30 20 4a 75 6e 65 20 31 39 7d 20 7b 0a  2000 June 19} {.
cba0: 3c 6c 69 3e 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73  <li>Column names
cbb0: 20 69 6e 20 55 50 44 41 54 45 20 73 74 61 74 65   in UPDATE state
cbc0: 6d 65 6e 74 73 20 77 65 72 65 20 63 61 73 65 20  ments were case 
cbd0: 73 65 6e 73 69 74 69 76 65 2e 0a 20 20 20 20 54  sensitive..    T
cbe0: 68 69 73 20 6d 69 73 74 61 6b 65 20 68 61 73 20  his mistake has 
cbf0: 6e 6f 77 20 62 65 65 6e 20 66 69 78 65 64 2e 3c  now been fixed.<
cc00: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
cc10: 30 30 20 4a 75 6e 65 20 31 36 7d 20 7b 0a 3c 6c  00 June 16} {.<l
cc20: 69 3e 41 64 64 65 64 20 74 68 65 20 63 6f 6e 63  i>Added the conc
cc30: 61 74 65 6e 61 74 65 20 73 74 72 69 6e 67 20 6f  atenate string o
cc40: 70 65 72 61 74 6f 72 20 28 7c 7c 29 3c 2f 6c 69  perator (||)</li
cc50: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
cc60: 4a 75 6e 65 20 31 32 7d 20 7b 0a 3c 6c 69 3e 41  June 12} {.<li>A
cc70: 64 64 65 64 20 74 68 65 20 66 63 6e 74 28 29 20  dded the fcnt() 
cc80: 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74 68 65 20  function to the 
cc90: 53 51 4c 20 69 6e 74 65 72 70 72 65 74 65 72 2e  SQL interpreter.
cca0: 20 20 54 68 65 20 66 63 6e 74 28 29 20 66 75 6e    The fcnt() fun
ccb0: 63 74 69 6f 6e 0a 20 20 20 20 72 65 74 75 72 6e  ction.    return
ccc0: 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20  s the number of 
ccd0: 64 61 74 61 62 61 73 65 20 22 46 65 74 63 68 22  database "Fetch"
cce0: 20 6f 70 65 72 61 74 69 6f 6e 73 20 74 68 61 74   operations that
ccf0: 20 68 61 76 65 20 6f 63 63 75 72 72 65 64 2e 0a   have occurred..
cd00: 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f      This functio
cd10: 6e 20 69 73 20 64 65 73 69 67 6e 65 64 20 66 6f  n is designed fo
cd20: 72 20 75 73 65 20 69 6e 20 74 65 73 74 20 73 63  r use in test sc
cd30: 72 69 70 74 73 20 74 6f 20 76 65 72 69 66 79 20  ripts to verify 
cd40: 74 68 61 74 0a 20 20 20 20 71 75 65 72 69 65 73  that.    queries
cd50: 20 61 72 65 20 65 66 66 69 63 69 65 6e 74 20 61   are efficient a
cd60: 6e 64 20 61 70 70 72 6f 70 72 69 61 74 65 6c 79  nd appropriately
cd70: 20 6f 70 74 69 6d 69 7a 65 64 2e 20 20 46 63 6e   optimized.  Fcn
cd80: 74 28 29 20 68 61 73 20 6e 6f 20 6f 74 68 65 72  t() has no other
cd90: 0a 20 20 20 20 75 73 65 66 75 6c 20 70 75 72 70  .    useful purp
cda0: 6f 73 65 2c 20 61 73 20 66 61 72 20 61 73 20 49  ose, as far as I
cdb0: 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   know.</li>.<li>
cdc0: 41 64 64 65 64 20 61 20 62 75 6e 63 68 20 6d 6f  Added a bunch mo
cdd0: 72 65 20 74 65 73 74 73 20 74 68 61 74 20 74 61  re tests that ta
cde0: 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f 66 20  ke advantage of 
cdf0: 74 68 65 20 6e 65 77 20 66 63 6e 74 28 29 20 66  the new fcnt() f
ce00: 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 54 68 65  unction..    The
ce10: 20 6e 65 77 20 74 65 73 74 73 20 64 69 64 20 6e   new tests did n
ce20: 6f 74 20 75 6e 63 6f 76 65 72 20 61 6e 79 20 6e  ot uncover any n
ce30: 65 77 20 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c 69  ew problems.</li
ce40: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
ce50: 4a 75 6e 65 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64  June 8} {.<li>Ad
ce60: 64 65 64 20 6c 6f 74 73 20 6f 66 20 6e 65 77 20  ded lots of new 
ce70: 74 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a  test cases</li>.
ce80: 3c 6c 69 3e 46 69 78 20 61 20 66 65 77 20 62 75  <li>Fix a few bu
ce90: 67 73 20 64 69 73 63 6f 76 65 72 65 64 20 77 68  gs discovered wh
cea0: 69 6c 65 20 61 64 64 69 6e 67 20 74 65 73 74 20  ile adding test 
ceb0: 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  cases</li>.<li>B
cec0: 65 67 69 6e 20 61 64 64 69 6e 67 20 6c 6f 74 73  egin adding lots
ced0: 20 6f 66 20 6e 65 77 20 64 6f 63 75 6d 65 6e 74   of new document
cee0: 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ation</li>.}..ch
cef0: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 36 7d  ng {2000 June 6}
cf00: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 63 6f 6d   {.<li>Added com
cf10: 70 6f 75 6e 64 20 73 65 6c 65 63 74 20 6f 70 65  pound select ope
cf20: 72 61 74 6f 72 73 3a 20 3c 42 3e 55 4e 49 4f 4e  rators: <B>UNION
cf30: 3c 2f 62 3e 2c 20 3c 62 3e 55 4e 49 4f 4e 20 41  </b>, <b>UNION A
cf40: 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e 49 4e 54 45 52  LL</B>,.<b>INTER
cf50: 53 45 43 54 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62  SECT</b>, and <b
cf60: 3e 45 58 43 45 50 54 3c 2f 62 3e 3c 2f 6c 69 3e  >EXCEPT</b></li>
cf70: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
cf80: 72 74 20 66 6f 72 20 75 73 69 6e 67 20 3c 62 3e  rt for using <b>
cf90: 28 53 45 4c 45 43 54 20 2e 2e 2e 29 3c 2f 62 3e  (SELECT ...)</b>
cfa0: 20 77 69 74 68 69 6e 20 65 78 70 72 65 73 73 69   within expressi
cfb0: 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ons</li>.<li>Add
cfc0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c  ed support for <
cfd0: 62 3e 49 4e 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  b>IN</b> and <b>
cfe0: 42 45 54 57 45 45 4e 3c 2f 62 3e 20 6f 70 65 72  BETWEEN</b> oper
cff0: 61 74 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ators</li>.<li>A
d000: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
d010: 20 3c 62 3e 47 52 4f 55 50 20 42 59 3c 2f 62 3e   <b>GROUP BY</b>
d020: 20 61 6e 64 20 3c 62 3e 48 41 56 49 4e 47 3c 2f   and <b>HAVING</
d030: 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 55 4c 4c  b></li>.<li>NULL
d040: 20 76 61 6c 75 65 73 20 61 72 65 20 6e 6f 77 20   values are now 
d050: 72 65 70 6f 72 74 65 64 20 74 6f 20 74 68 65 20  reported to the 
d060: 63 61 6c 6c 62 61 63 6b 20 61 73 20 61 20 4e 55  callback as a NU
d070: 4c 4c 20 70 6f 69 6e 74 65 72 0a 20 20 20 20 72  LL pointer.    r
d080: 61 74 68 65 72 20 74 68 61 6e 20 61 6e 20 65 6d  ather than an em
d090: 70 74 79 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e  pty string.</li>
d0a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
d0b0: 75 6e 65 20 33 7d 20 7b 0a 3c 6c 69 3e 41 64 64  une 3} {.<li>Add
d0c0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 64  ed support for d
d0d0: 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 6f 6e  efault values on
d0e0: 20 63 6f 6c 75 6d 6e 73 20 6f 66 20 61 20 74 61   columns of a ta
d0f0: 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d  ble.</li>.<li>Im
d100: 70 72 6f 76 65 64 20 74 65 73 74 20 63 6f 76 65  proved test cove
d110: 72 61 67 65 2e 20 20 46 69 78 65 64 20 61 20 66  rage.  Fixed a f
d120: 65 77 20 6f 62 73 63 75 72 65 20 62 75 67 73 20  ew obscure bugs 
d130: 66 6f 75 6e 64 20 62 79 20 74 68 65 0a 69 6d 70  found by the.imp
d140: 72 6f 76 65 64 20 74 65 73 74 73 2e 3c 2f 6c 69  roved tests.</li
d150: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
d160: 4a 75 6e 65 20 32 7d 20 7b 0a 3c 6c 69 3e 41 6c  June 2} {.<li>Al
d170: 6c 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73  l database files
d180: 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 65 64 20   to be modified 
d190: 62 79 20 61 6e 20 55 50 44 41 54 45 2c 20 49 4e  by an UPDATE, IN
d1a0: 53 45 52 54 20 6f 72 20 44 45 4c 45 54 45 20 61  SERT or DELETE a
d1b0: 72 65 20 0a 6e 6f 77 20 6c 6f 63 6b 65 64 20 62  re .now locked b
d1c0: 65 66 6f 72 65 20 61 6e 79 20 63 68 61 6e 67 65  efore any change
d1d0: 73 20 61 72 65 20 6d 61 64 65 20 74 6f 20 61 6e  s are made to an
d1e0: 79 20 66 69 6c 65 73 2e 20 20 0a 54 68 69 73 20  y files.  .This 
d1f0: 6d 61 6b 65 73 20 69 74 20 73 61 66 65 20 28 49  makes it safe (I
d200: 20 74 68 69 6e 6b 29 20 74 6f 20 61 63 63 65 73   think) to acces
d210: 73 0a 74 68 65 20 73 61 6d 65 20 64 61 74 61 62  s.the same datab
d220: 61 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73  ase simultaneous
d230: 6c 79 20 66 72 6f 6d 20 6d 75 6c 74 69 70 6c 65  ly from multiple
d240: 20 70 72 6f 63 65 73 73 65 73 2e 3c 2f 6c 69 3e   processes.</li>
d250: 0a 3c 6c 69 3e 54 68 65 20 63 6f 64 65 20 61 70  .<li>The code ap
d260: 70 65 61 72 73 20 73 74 61 62 6c 65 20 73 6f 20  pears stable so 
d270: 77 65 20 61 72 65 20 6e 6f 77 20 63 61 6c 6c 69  we are now calli
d280: 6e 67 20 69 74 20 22 62 65 74 61 22 2e 3c 2f 6c  ng it "beta".</l
d290: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
d2a0: 20 4a 75 6e 65 20 31 7d 20 7b 0a 3c 6c 69 3e 42   June 1} {.<li>B
d2b0: 65 74 74 65 72 20 73 75 70 70 6f 72 74 20 66 6f  etter support fo
d2c0: 72 20 66 69 6c 65 20 6c 6f 63 6b 69 6e 67 20 73  r file locking s
d2d0: 6f 20 74 68 61 74 20 74 77 6f 20 6f 72 20 6d 6f  o that two or mo
d2e0: 72 65 20 70 72 6f 63 65 73 73 65 73 20 0a 28 6f  re processes .(o
d2f0: 72 20 74 68 72 65 61 64 73 29 0a 63 61 6e 20 61  r threads).can a
d300: 63 63 65 73 73 20 74 68 65 20 73 61 6d 65 20 64  ccess the same d
d310: 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74 61 6e  atabase simultan
d320: 65 6f 75 73 6c 79 2e 20 20 4d 6f 72 65 20 77 6f  eously.  More wo
d330: 72 6b 20 6e 65 65 64 65 64 20 69 6e 0a 74 68 69  rk needed in.thi
d340: 73 20 61 72 65 61 2c 20 74 68 6f 75 67 68 2e 3c  s area, though.<
d350: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
d360: 30 30 20 4d 61 79 20 33 31 7d 20 7b 0a 3c 6c 69  00 May 31} {.<li
d370: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
d380: 6f 72 20 61 67 67 72 65 67 61 74 65 20 66 75 6e  or aggregate fun
d390: 63 74 69 6f 6e 73 20 28 45 78 3a 20 3c 62 3e 43  ctions (Ex: <b>C
d3a0: 4f 55 4e 54 28 2a 29 3c 2f 62 3e 2c 20 3c 62 3e  OUNT(*)</b>, <b>
d3b0: 4d 49 4e 28 2e 2e 2e 29 3c 2f 62 3e 29 0a 74 6f  MIN(...)</b>).to
d3c0: 20 74 68 65 20 53 45 4c 45 43 54 20 73 74 61 74   the SELECT stat
d3d0: 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ement.</li>.<li>
d3e0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
d3f0: 72 20 3c 42 3e 53 45 4c 45 43 54 20 44 49 53 54  r <B>SELECT DIST
d400: 49 4e 43 54 20 2e 2e 2e 3c 2f 42 3e 3c 2f 6c 69  INCT ...</B></li
d410: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
d420: 4d 61 79 20 33 30 7d 20 7b 0a 3c 6c 69 3e 41 64  May 30} {.<li>Ad
d430: 64 65 64 20 74 68 65 20 3c 62 3e 4c 49 4b 45 3c  ded the <b>LIKE<
d440: 2f 62 3e 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c  /b> operator.</l
d450: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c  i>.<li>Added a <
d460: 62 3e 47 4c 4f 42 3c 2f 62 3e 20 6f 70 65 72 61  b>GLOB</b> opera
d470: 74 6f 72 3a 20 73 69 6d 69 6c 61 72 20 74 6f 20  tor: similar to 
d480: 3c 42 3e 4c 49 4b 45 3c 2f 42 3e 20 0a 62 75 74  <B>LIKE</B> .but
d490: 20 69 74 20 75 73 65 73 20 55 6e 69 78 20 73 68   it uses Unix sh
d4a0: 65 6c 6c 20 67 6c 6f 62 62 69 6e 67 20 77 69 6c  ell globbing wil
d4b0: 64 63 61 72 64 73 20 69 6e 73 74 65 61 64 20 6f  dcards instead o
d4c0: 66 20 74 68 65 20 27 25 27 20 0a 61 6e 64 20 27  f the '%' .and '
d4d0: 5f 27 20 77 69 6c 64 63 61 72 64 73 20 6f 66 20  _' wildcards of 
d4e0: 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  SQL.</li>.<li>Ad
d4f0: 64 65 64 20 74 68 65 20 3c 42 3e 43 4f 50 59 3c  ded the <B>COPY<
d500: 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 70 61 74 74  /b> command patt
d510: 65 72 6e 65 64 20 61 66 74 65 72 20 0a 3c 61 20  erned after .<a 
d520: 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77  href="http://www
d530: 2e 70 6f 73 74 67 72 65 73 71 6c 2e 6f 72 67 2f  .postgresql.org/
d540: 22 3e 50 6f 73 74 67 72 65 53 51 4c 3c 2f 61 3e  ">PostgreSQL</a>
d550: 20 73 6f 20 74 68 61 74 20 53 51 4c 69 74 65 0a   so that SQLite.
d560: 63 61 6e 20 6e 6f 77 20 72 65 61 64 20 74 68 65  can now read the
d570: 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 3c   output of the <
d580: 62 3e 70 67 5f 64 75 6d 70 3c 2f 62 3e 20 64 61  b>pg_dump</b> da
d590: 74 61 62 61 73 65 20 64 75 6d 70 20 75 74 69 6c  tabase dump util
d5a0: 69 74 79 0a 6f 66 20 50 6f 73 74 67 72 65 53 51  ity.of PostgreSQ
d5b0: 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  L.</li>.<li>Adde
d5c0: 64 20 61 20 3c 42 3e 56 41 43 55 55 4d 3c 2f 42  d a <B>VACUUM</B
d5d0: 3e 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 74  > command that t
d5e0: 68 61 74 20 63 61 6c 6c 73 20 74 68 65 20 0a 3c  hat calls the .<
d5f0: 62 3e 67 64 62 6d 5f 72 65 6f 72 67 61 6e 69 7a  b>gdbm_reorganiz
d600: 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e  e()</b> function
d610: 20 6f 6e 20 74 68 65 20 75 6e 64 65 72 6c 79 69   on the underlyi
d620: 6e 67 20 64 61 74 61 62 61 73 65 0a 66 69 6c 65  ng database.file
d630: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 64 20  s.</li>.<li>And 
d640: 6d 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20 66  many, many bug f
d650: 69 78 65 73 2e 2e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ixes...</li>.}..
d660: 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 32  chng {2000 May 2
d670: 39 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c  9} {.<li>Initial
d680: 20 50 75 62 6c 69 63 20 52 65 6c 65 61 73 65 20   Public Release 
d690: 6f 66 20 41 6c 70 68 61 20 63 6f 64 65 3c 2f 6c  of Alpha code</l
d6a0: 69 3e 0a 7d 0a 0a 70 75 74 73 20 7b 0a 3c 2f 44  i>.}..puts {.</D
d6b0: 4c 3e 0a 7d 0a 66 6f 6f 74 65 72 20 7b 24 49 64  L>.}.footer {$Id
d6c0: 3a 7d 0a                                         :}.