/ Hex Artifact Content
Login

Artifact ed2c8b9d0b7ead5ed8a057b368a07b4c2a99eb12:


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 70 75  output file.#.pu
0040: 74 73 20 7b 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64  ts {<html>.<head
0050: 3e 0a 20 20 3c 74 69 74 6c 65 3e 53 51 4c 69 74  >.  <title>SQLit
0060: 65 20 43 68 61 6e 67 65 20 4c 6f 67 3c 2f 74 69  e Change Log</ti
0070: 74 6c 65 3e 0a 3c 2f 68 65 61 64 3e 0a 3c 62 6f  tle>.</head>.<bo
0080: 64 79 20 62 67 63 6f 6c 6f 72 3d 22 77 68 69 74  dy bgcolor="whit
0090: 65 22 3e 0a 3c 68 31 20 61 6c 69 67 6e 3d 22 63  e">.<h1 align="c
00a0: 65 6e 74 65 72 22 3e 52 65 63 65 6e 74 20 43 68  enter">Recent Ch
00b0: 61 6e 67 65 73 20 54 6f 20 53 51 4c 69 74 65 3c  anges To SQLite<
00c0: 2f 68 31 3e 0a 0a 3c 70 3e 0a 54 68 69 73 20 66  /h1>..<p>.This f
00d0: 69 6c 65 20 70 72 6f 76 69 64 65 73 20 61 20 68  ile provides a h
00e0: 69 67 68 2d 6c 65 76 65 6c 20 73 75 6d 6d 61 72  igh-level summar
00f0: 79 20 6f 66 20 63 68 61 6e 67 65 73 20 74 6f 20  y of changes to 
0100: 53 51 4c 69 74 65 2e 0a 46 6f 72 20 6d 6f 72 65  SQLite..For more
0110: 20 64 65 74 61 69 6c 2c 20 72 65 66 65 72 20 74   detail, refer t
0120: 68 65 20 74 68 65 20 63 68 65 63 6b 69 6e 20 6c  he the checkin l
0130: 6f 67 73 20 67 65 6e 65 72 61 74 65 64 20 62 79  ogs generated by
0140: 0a 43 56 53 20 61 74 0a 3c 61 20 68 72 65 66 3d  .CVS at.<a href=
0150: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69  "http://www.sqli
0160: 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f 74  te.org/cvstrac/t
0170: 69 6d 65 6c 69 6e 65 22 3e 0a 68 74 74 70 3a 2f  imeline">.http:/
0180: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63  www.sqlite.org/c
0190: 76 73 74 72 61 63 2f 74 69 6d 65 6c 69 6e 65 3c  vstrac/timeline<
01a0: 2f 61 3e 2e 0a 3c 2f 70 3e 0a 0a 3c 44 4c 3e 0a  /a>..</p>..<DL>.
01b0: 7d 0a 0a 0a 70 72 6f 63 20 63 68 6e 67 20 7b 64  }...proc chng {d
01c0: 61 74 65 20 64 65 73 63 7d 20 7b 0a 20 20 70 75  ate desc} {.  pu
01d0: 74 73 20 22 3c 44 54 3e 3c 42 3e 24 64 61 74 65  ts "<DT><B>$date
01e0: 3c 2f 42 3e 3c 2f 44 54 3e 22 0a 20 20 70 75 74  </B></DT>".  put
01f0: 73 20 22 3c 44 44 3e 3c 50 3e 3c 55 4c 3e 24 64  s "<DD><P><UL>$d
0200: 65 73 63 3c 2f 55 4c 3e 3c 2f 50 3e 3c 2f 44 44  esc</UL></P></DD
0210: 3e 22 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  >".}..chng {2004
0220: 20 4a 61 6e 75 61 72 79 20 31 34 20 28 32 2e 38   January 14 (2.8
0230: 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .10)} {.<li>Fix 
0240: 61 20 70 6f 74 65 6e 74 69 61 6c 20 64 61 74 61  a potential data
0250: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
0260: 70 72 6f 62 6c 65 6d 20 6f 6e 20 55 6e 69 78 20  problem on Unix 
0270: 63 61 75 73 65 64 20 62 79 20 74 68 65 20 66 61  caused by the fa
0280: 63 74 0a 20 20 20 20 74 68 61 74 20 61 6c 6c 20  ct.    that all 
0290: 70 6f 73 69 78 20 61 64 76 69 73 6f 72 79 20 6c  posix advisory l
02a0: 6f 63 6b 73 20 61 72 65 20 63 6c 65 61 72 65 64  ocks are cleared
02b0: 20 77 68 65 6e 65 76 65 72 20 79 6f 75 20 63 6c   whenever you cl
02c0: 6f 73 65 28 29 20 61 20 66 69 6c 65 2e 0a 20 20  ose() a file..  
02d0: 20 20 54 68 65 20 77 6f 72 6b 20 61 72 6f 75 6e    The work aroun
02e0: 64 20 69 74 20 74 6f 20 65 6d 62 61 72 67 6f 20  d it to embargo 
02f0: 61 6c 6c 20 63 6c 6f 73 65 28 29 20 63 61 6c 6c  all close() call
0300: 73 20 77 68 69 6c 65 20 6c 6f 63 6b 73 20 61 72  s while locks ar
0310: 65 20 0a 20 20 20 20 6f 75 74 73 74 61 6e 64 69  e .    outstandi
0320: 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72  ng.</li>.<li>Per
0330: 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65  formance enhance
0340: 6d 65 6e 74 73 20 6f 6e 20 73 6f 6d 65 20 63 6f  ments on some co
0350: 72 6e 65 72 20 63 61 73 65 73 20 6f 66 20 43 4f  rner cases of CO
0360: 55 4e 54 28 2a 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69  UNT(*).</li>.<li
0370: 3e 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 69  >Make sure the i
0380: 6e 2d 6d 65 6d 6f 72 79 20 62 61 63 6b 65 6e 64  n-memory backend
0390: 20 72 65 73 70 6f 6e 73 65 20 73 61 6e 65 6c 79   response sanely
03a0: 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69   if malloc() fai
03b0: 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  ls.</li>.<li>All
03c0: 6f 77 20 73 71 6c 69 74 65 5f 65 78 65 63 28 29  ow sqlite_exec()
03d0: 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 66 72   to be called fr
03e0: 6f 6d 20 77 69 74 68 69 6e 20 75 73 65 72 2d 64  om within user-d
03f0: 65 66 69 6e 65 64 20 53 51 4c 0a 20 20 20 20 66  efined SQL.    f
0400: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  unctions.</li>.<
0410: 6c 69 3e 49 6d 70 72 6f 76 65 64 20 61 63 63 75  li>Improved accu
0420: 72 61 63 79 20 6f 66 20 66 6c 6f 61 74 69 6e 67  racy of floating
0430: 2d 70 6f 69 6e 74 20 63 6f 6e 76 65 72 73 69 6f  -point conversio
0440: 6e 73 20 75 73 69 6e 67 20 22 6c 6f 6e 67 20 64  ns using "long d
0450: 6f 75 62 6c 65 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ouble".</li>.<li
0460: 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68  >Bug fixes in th
0470: 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64  e experimental d
0480: 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f  ate/time functio
0490: 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ns.</li>.}..chng
04a0: 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 35   {2004 January 5
04b0: 20 28 32 2e 38 2e 39 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.9)} {.<li>
04c0: 46 69 78 20 61 20 33 32 2d 62 69 74 20 69 6e 74  Fix a 32-bit int
04d0: 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 70 72  eger overflow pr
04e0: 6f 62 6c 65 6d 20 74 68 61 74 20 63 6f 75 6c 64  oblem that could
04f0: 20 72 65 73 75 6c 74 20 69 6e 20 63 6f 72 72 75   result in corru
0500: 70 74 0a 20 20 20 20 69 6e 64 69 63 65 73 20 69  pt.    indices i
0510: 6e 20 61 20 64 61 74 61 62 61 73 65 20 69 66 20  n a database if 
0520: 6c 61 72 67 65 20 6e 65 67 61 74 69 76 65 20 6e  large negative n
0530: 75 6d 62 65 72 73 20 28 6c 65 73 73 20 74 68 61  umbers (less tha
0540: 6e 20 2d 32 31 34 37 34 38 33 36 34 38 29 0a 20  n -2147483648). 
0550: 20 20 20 77 65 72 65 20 69 6e 73 65 72 74 65 64     were inserted
0560: 20 69 6e 74 6f 20 61 20 69 6e 64 65 78 65 64 20   into a indexed 
0570: 6e 75 6d 65 72 69 63 20 63 6f 6c 75 6d 6e 2e 3c  numeric column.<
0580: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6c  /li>.<li>Fix a l
0590: 6f 63 6b 69 6e 67 20 70 72 6f 62 6c 65 6d 20 6f  ocking problem o
05a0: 6e 20 6d 75 6c 74 69 2d 74 68 72 65 61 64 65 64  n multi-threaded
05b0: 20 4c 69 6e 75 78 20 69 6d 70 6c 65 6d 65 6e 74   Linux implement
05c0: 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ations.</li>.<li
05d0: 3e 41 6c 77 61 79 73 20 75 73 65 20 22 2e 22 20  >Always use "." 
05e0: 69 6e 73 74 65 61 64 20 6f 66 20 22 2c 22 20 61  instead of "," a
05f0: 73 20 74 68 65 20 64 65 63 69 6d 61 6c 20 70 6f  s the decimal po
0600: 69 6e 74 20 65 76 65 6e 20 69 66 20 74 68 65 20  int even if the 
0610: 6c 6f 63 61 6c 65 0a 20 20 20 20 72 65 71 75 65  locale.    reque
0620: 73 74 73 20 22 2c 22 2e 3c 2f 6c 69 3e 0a 3c 6c  sts ",".</li>.<l
0630: 69 3e 41 64 64 65 64 20 55 54 43 20 74 6f 20 6c  i>Added UTC to l
0640: 6f 63 61 6c 74 69 6d 65 20 63 6f 6e 76 65 72 73  ocaltime convers
0650: 69 6f 6e 73 20 74 6f 20 74 68 65 20 65 78 70 65  ions to the expe
0660: 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69  rimental date/ti
0670: 6d 65 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73  me.    functions
0680: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
0690: 69 78 65 73 20 74 6f 20 64 61 74 65 2f 74 69 6d  ixes to date/tim
06a0: 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69  e functions.</li
06b0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
06c0: 44 65 63 65 6d 62 65 72 20 31 37 20 28 32 2e 38  December 17 (2.8
06d0: 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .8)} {.<li>Fix a
06e0: 20 63 72 69 74 69 63 61 6c 20 62 75 67 20 69 6e   critical bug in
06f0: 74 72 6f 64 75 63 65 64 20 69 6e 74 6f 20 32 2e  troduced into 2.
0700: 38 2e 30 20 77 68 69 63 68 20 63 6f 75 6c 64 20  8.0 which could 
0710: 63 61 75 73 65 0a 20 20 20 20 64 61 74 61 62 61  cause.    databa
0720: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 2e 3c 2f  se corruption.</
0730: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  li>.<li>Fix a pr
0740: 6f 62 6c 65 6d 20 77 69 74 68 20 33 2d 77 61 79  oblem with 3-way
0750: 20 6a 6f 69 6e 73 20 74 68 61 74 20 64 6f 20 6e   joins that do n
0760: 6f 74 20 75 73 65 20 69 6e 64 69 63 65 73 3c 2f  ot use indices</
0770: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 43 55  li>.<li>The VACU
0780: 55 4d 20 63 6f 6d 6d 61 6e 64 20 6e 6f 77 20 77  UM command now w
0790: 6f 72 6b 73 20 77 69 74 68 20 74 68 65 20 6e 6f  orks with the no
07a0: 6e 2d 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f  n-callback API</
07b0: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 6d  li>.<li>Improvem
07c0: 65 6e 74 73 20 74 6f 20 74 68 65 20 22 50 52 41  ents to the "PRA
07d0: 47 4d 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68  GMA integrity_ch
07e0: 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 3c 2f 6c 69  eck" command</li
07f0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
0800: 44 65 63 65 6d 62 65 72 20 34 20 28 32 2e 38 2e  December 4 (2.8.
0810: 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  7)} {.<li>Added 
0820: 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c  experimental sql
0830: 69 74 65 5f 62 69 6e 64 28 29 20 61 6e 64 20 73  ite_bind() and s
0840: 71 6c 69 74 65 5f 72 65 73 65 74 28 29 20 41 50  qlite_reset() AP
0850: 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20  Is.</li>.<li>If 
0860: 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  the name of the 
0870: 64 61 74 61 62 61 73 65 20 69 73 20 61 6e 20 65  database is an e
0880: 6d 70 74 79 20 73 74 72 69 6e 67 2c 20 6f 70 65  mpty string, ope
0890: 6e 20 61 20 6e 65 77 20 64 61 74 61 62 61 73 65  n a new database
08a0: 0a 20 20 20 20 69 6e 20 61 20 74 65 6d 70 6f 72  .    in a tempor
08b0: 61 72 79 20 66 69 6c 65 20 74 68 61 74 20 69 73  ary file that is
08c0: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64   automatically d
08d0: 65 6c 65 74 65 64 20 77 68 65 6e 20 74 68 65 20  eleted when the 
08e0: 64 61 74 61 62 61 73 65 0a 20 20 20 20 69 73 20  database.    is 
08f0: 63 6c 6f 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  closed.</li>.<li
0900: 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68  >Performance enh
0910: 61 6e 63 65 6d 65 6e 74 73 20 69 6e 20 74 68 65  ancements in the
0920: 20 6c 65 6d 6f 6e 2d 67 65 6e 65 72 61 74 65 64   lemon-generated
0930: 20 70 61 72 73 65 72 3c 2f 6c 69 3e 0a 3c 6c 69   parser</li>.<li
0940: 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61  >Experimental da
0950: 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e  te/time function
0960: 73 20 72 65 76 69 73 65 64 2e 3c 2f 6c 69 3e 0a  s revised.</li>.
0970: 3c 6c 69 3e 44 69 73 61 6c 6c 6f 77 20 74 65 6d  <li>Disallow tem
0980: 70 6f 72 61 72 79 20 69 6e 64 69 63 65 73 20 6f  porary indices o
0990: 6e 20 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c  n permanent tabl
09a0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  es.</li>.<li>Doc
09b0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
09c0: 65 73 20 61 6e 64 20 74 79 70 6f 20 66 69 78 65  es and typo fixe
09d0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
09e0: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71   experimental sq
09f0: 6c 69 74 65 5f 70 72 6f 67 72 65 73 73 5f 68 61  lite_progress_ha
0a00: 6e 64 6c 65 72 28 29 20 63 61 6c 6c 62 61 63 6b  ndler() callback
0a10: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65   API</li>.<li>Re
0a20: 6d 6f 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f  moved support fo
0a30: 72 20 74 68 65 20 4f 72 61 63 6c 65 38 20 6f 75  r the Oracle8 ou
0a40: 74 65 72 20 6a 6f 69 6e 20 73 79 6e 74 61 78 2e  ter join syntax.
0a50: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
0a60: 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70  GLOB and LIKE op
0a70: 65 72 61 74 6f 72 73 20 74 6f 20 77 6f 72 6b 20  erators to work 
0a80: 61 73 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c  as functions.</l
0a90: 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e  i>.<li>Other min
0aa0: 6f 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  or documentation
0ab0: 20 61 6e 64 20 6d 61 6b 65 66 69 6c 65 20 63 68   and makefile ch
0ac0: 61 6e 67 65 73 20 61 6e 64 20 62 75 67 20 66 69  anges and bug fi
0ad0: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
0ae0: 67 20 7b 32 30 30 33 20 41 75 67 75 73 74 20 32  g {2003 August 2
0af0: 31 20 28 32 2e 38 2e 36 29 7d 20 7b 0a 3c 6c 69  1 (2.8.6)} {.<li
0b00: 3e 4d 6f 76 65 64 20 74 68 65 20 43 56 53 20 72  >Moved the CVS r
0b10: 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 77 77 77  epository to www
0b20: 2e 73 71 6c 69 74 65 2e 6f 72 67 3c 2f 6c 69 3e  .sqlite.org</li>
0b30: 0a 3c 6c 69 3e 55 70 64 61 74 65 20 74 68 65 20  .<li>Update the 
0b40: 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f  NULL-handling do
0b50: 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69  cumentation.</li
0b60: 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74  >.<li>Experiment
0b70: 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e  al date/time fun
0b80: 63 74 69 6f 6e 73 20 61 64 64 65 64 2e 3c 2f 6c  ctions added.</l
0b90: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
0ba0: 63 6f 72 72 65 63 74 6c 79 20 65 76 61 6c 75 61  correctly evalua
0bb0: 74 65 20 61 20 76 69 65 77 20 6f 66 20 61 20 76  te a view of a v
0bc0: 69 65 77 20 77 69 74 68 6f 75 74 20 73 65 67 66  iew without segf
0bd0: 61 75 6c 74 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c  aulting.</li>.<l
0be0: 69 3e 42 75 67 20 66 69 78 3a 20 70 72 65 76 65  i>Bug fix: preve
0bf0: 6e 74 20 64 61 74 61 62 61 73 65 20 63 6f 72 72  nt database corr
0c00: 75 70 74 69 6f 6e 20 69 66 20 79 6f 75 20 64 72  uption if you dr
0c10: 6f 70 70 65 64 20 61 0a 20 20 20 20 74 72 69 67  opped a.    trig
0c20: 67 65 72 20 74 68 61 74 20 68 61 64 20 74 68 65  ger that had the
0c30: 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 61 20   same name as a 
0c40: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  table.</li>.<li>
0c50: 42 75 67 20 66 69 78 3a 20 61 6c 6c 6f 77 20 61  Bug fix: allow a
0c60: 20 56 41 43 55 55 4d 20 28 77 69 74 68 6f 75 74   VACUUM (without
0c70: 20 73 65 67 66 61 75 6c 74 69 6e 67 29 20 6f 6e   segfaulting) on
0c80: 20 61 6e 20 65 6d 70 74 79 0a 20 20 20 20 64 61   an empty.    da
0c90: 74 61 62 61 73 65 20 61 66 74 65 72 20 73 65 74  tabase after set
0ca0: 74 69 6e 67 20 74 68 65 20 45 4d 50 54 59 5f 52  ting the EMPTY_R
0cb0: 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20  ESULT_CALLBACKS 
0cc0: 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69  pragma.</li>.<li
0cd0: 3e 42 75 67 20 66 69 78 3a 20 69 66 20 61 6e 20  >Bug fix: if an 
0ce0: 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 77 69  integer value wi
0cf0: 6c 6c 20 6e 6f 74 20 66 69 74 20 69 6e 20 61 20  ll not fit in a 
0d00: 33 32 2d 62 69 74 20 69 6e 74 2c 20 73 74 6f 72  32-bit int, stor
0d10: 65 20 69 74 20 69 6e 0a 20 20 20 20 61 20 64 6f  e it in.    a do
0d20: 75 62 6c 65 20 69 6e 73 74 65 61 64 2e 3c 2f 6c  uble instead.</l
0d30: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
0d40: 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 6a 6f  Make sure the jo
0d50: 75 72 6e 61 6c 20 66 69 6c 65 20 64 69 72 65 63  urnal file direc
0d60: 74 6f 72 79 20 65 6e 74 72 79 20 69 73 20 63 6f  tory entry is co
0d70: 6d 6d 69 74 74 65 64 20 74 6f 20 64 69 73 6b 0a  mmitted to disk.
0d80: 20 20 20 20 62 65 66 6f 72 65 20 77 72 69 74 69      before writi
0d90: 6e 67 20 74 68 65 20 64 61 74 61 62 61 73 65 20  ng the database 
0da0: 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  file.</li>.}..ch
0db0: 6e 67 20 7b 32 30 30 33 20 4a 75 6c 79 20 32 32  ng {2003 July 22
0dc0: 20 28 32 2e 38 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.5)} {.<li>
0dd0: 4d 61 6b 65 20 4c 49 4d 49 54 20 77 6f 72 6b 20  Make LIMIT work 
0de0: 6f 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45  on a compound SE
0df0: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
0e00: 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4d 49 54 20 30  /li>.<li>LIMIT 0
0e10: 20 6e 6f 77 20 73 68 6f 77 73 20 6e 6f 20 72 6f   now shows no ro
0e20: 77 73 2e 20 20 55 73 65 20 4c 49 4d 49 54 20 2d  ws.  Use LIMIT -
0e30: 31 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 6f 77  1 to see all row
0e40: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72  s.</li>.<li>Corr
0e50: 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 63 6f 6d  ectly handle com
0e60: 70 61 72 69 73 6f 6e 73 20 62 65 74 77 65 65 6e  parisons between
0e70: 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d   an INTEGER PRIM
0e80: 41 52 59 20 4b 45 59 20 61 6e 64 0a 20 20 20 20  ARY KEY and.    
0e90: 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  a floating point
0ea0: 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   number.</li>.<l
0eb0: 69 3e 46 69 78 20 73 65 76 65 72 61 6c 20 69 6d  i>Fix several im
0ec0: 70 6f 72 74 61 6e 74 20 62 75 67 73 20 69 6e 20  portant bugs in 
0ed0: 74 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 61  the new ATTACH a
0ee0: 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e  nd DETACH comman
0ef0: 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64  ds.</li>.<li>Upd
0f00: 61 74 65 64 20 74 68 65 20 3c 61 20 68 72 65 66  ated the <a href
0f10: 3d 22 6e 75 6c 6c 73 2e 68 74 6d 6c 22 3e 4e 55  ="nulls.html">NU
0f20: 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75  LL-handling docu
0f30: 6d 65 6e 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 20 0a  ment</a>.</li> .
0f40: 3c 6c 69 3e 41 6c 6c 6f 77 20 4e 55 4c 4c 20 61  <li>Allow NULL a
0f50: 72 67 75 6d 65 6e 74 73 20 69 6e 20 73 71 6c 69  rguments in sqli
0f60: 74 65 5f 63 6f 6d 70 69 6c 65 28 29 20 61 6e 64  te_compile() and
0f70: 20 73 71 6c 69 74 65 5f 73 74 65 70 28 29 2e 3c   sqlite_step().<
0f80: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69  /li>.<li>Many mi
0f90: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  nor bug fixes</l
0fa0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
0fb0: 20 4a 75 6e 65 20 32 39 20 28 32 2e 38 2e 34 29   June 29 (2.8.4)
0fc0: 7d 20 7b 0a 3c 6c 69 3e 45 6e 68 61 6e 63 65 64  } {.<li>Enhanced
0fd0: 20 74 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74   the "PRAGMA int
0fe0: 65 67 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f  egrity_check" co
0ff0: 6d 6d 61 6e 64 20 74 6f 20 76 65 72 69 66 79 20  mmand to verify 
1000: 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  indices.</li>.<l
1010: 69 3e 41 64 64 65 64 20 61 75 74 68 6f 72 69 7a  i>Added authoriz
1020: 61 74 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f 72 20  ation hooks for 
1030: 74 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 61  the new ATTACH a
1040: 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e  nd DETACH comman
1050: 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e  ds.</li>.<li>Man
1060: 79 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  y documentation 
1070: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  updates</li>.<li
1080: 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20  >Many minor bug 
1090: 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  fixes</li>.}..ch
10a0: 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65 20 34 20  ng {2003 June 4 
10b0: 28 32 2e 38 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.8.3)} {.<li>F
10c0: 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61  ix a problem tha
10d0: 74 20 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74  t will corrupt t
10e0: 68 65 20 69 6e 64 69 63 65 73 20 6f 6e 20 61 20  he indices on a 
10f0: 74 61 62 6c 65 20 69 66 20 79 6f 75 0a 20 20 20  table if you.   
1100: 20 64 6f 20 61 6e 20 49 4e 53 45 52 54 20 4f 52   do an INSERT OR
1110: 20 52 45 50 4c 41 43 45 20 6f 72 20 61 6e 20 55   REPLACE or an U
1120: 50 44 41 54 45 20 4f 52 20 52 45 50 4c 41 43 45  PDATE OR REPLACE
1130: 20 6f 6e 20 61 20 74 61 62 6c 65 20 74 68 61 74   on a table that
1140: 0a 20 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 6e  .    contains an
1150: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59   INTEGER PRIMARY
1160: 20 4b 45 59 20 70 6c 75 73 20 6f 6e 65 20 6f 72   KEY plus one or
1170: 20 6d 6f 72 65 20 69 6e 64 69 63 65 73 2e 3c 2f   more indices.</
1180: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
1190: 67 20 69 6e 20 77 69 6e 64 6f 77 73 20 6c 6f 63  g in windows loc
11a0: 6b 69 6e 67 20 63 6f 64 65 20 73 6f 20 74 68 61  king code so tha
11b0: 74 20 6c 6f 63 6b 73 20 77 6f 72 6b 20 63 6f 72  t locks work cor
11c0: 72 65 63 74 6c 79 0a 20 20 20 20 77 68 65 6e 20  rectly.    when 
11d0: 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 61  simultaneously a
11e0: 63 63 65 73 73 65 64 20 62 79 20 57 69 6e 39 35  ccessed by Win95
11f0: 20 61 6e 64 20 57 69 6e 4e 54 20 73 79 73 74 65   and WinNT syste
1200: 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ms.</li>.<li>Add
1210: 20 74 68 65 20 61 62 69 6c 69 74 79 20 66 6f 72   the ability for
1220: 20 49 4e 53 45 52 54 20 61 6e 64 20 55 50 44 41   INSERT and UPDA
1230: 54 45 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f  TE statements to
1240: 20 72 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20   refer to the.  
1250: 20 20 22 72 6f 77 69 64 22 20 28 6f 72 20 22 5f    "rowid" (or "_
1260: 72 6f 77 69 64 5f 22 20 6f 72 20 22 6f 69 64 22  rowid_" or "oid"
1270: 29 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a  ) columns.</li>.
1280: 3c 6c 69 3e 4f 74 68 65 72 20 69 6d 70 6f 72 74  <li>Other import
1290: 61 6e 74 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  ant bug fixes</l
12a0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
12b0: 20 4d 61 79 20 31 37 20 28 32 2e 38 2e 32 29 7d   May 17 (2.8.2)}
12c0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f   {.<li>Fix a pro
12d0: 62 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63  blem that will c
12e0: 6f 72 72 75 70 74 20 74 68 65 20 64 61 74 61 62  orrupt the datab
12f0: 61 73 65 20 66 69 6c 65 20 69 66 20 79 6f 75 20  ase file if you 
1300: 64 72 6f 70 20 61 0a 20 20 20 20 74 61 62 6c 65  drop a.    table
1310: 20 66 72 6f 6d 20 74 68 65 20 6d 61 69 6e 20 64   from the main d
1320: 61 74 61 62 61 73 65 20 74 68 61 74 20 68 61 73  atabase that has
1330: 20 61 20 54 45 4d 50 20 69 6e 64 65 78 2e 3c 2f   a TEMP index.</
1340: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
1350: 33 20 4d 61 79 20 31 36 20 28 32 2e 38 2e 31 29  3 May 16 (2.8.1)
1360: 7d 20 7b 0a 3c 6c 69 3e 52 65 61 63 74 69 76 61  } {.<li>Reactiva
1370: 74 65 64 20 74 68 65 20 56 41 43 55 55 4d 20 63  ted the VACUUM c
1380: 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72 65 63 6c  ommand that recl
1390: 61 69 6d 73 20 75 6e 75 73 65 64 20 64 69 73 6b  aims unused disk
13a0: 20 73 70 61 63 65 20 69 6e 20 0a 20 20 20 20 61   space in .    a
13b0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c   database file.<
13c0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
13d0: 68 65 20 41 54 54 41 43 48 20 61 6e 64 20 44 45  he ATTACH and DE
13e0: 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73 20 74 6f  TACH commands to
13f0: 20 61 6c 6c 6f 77 20 69 6e 74 65 72 61 63 74 69   allow interacti
1400: 6e 67 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65  ng with multiple
1410: 0a 20 20 20 20 64 61 74 61 62 61 73 65 20 66 69  .    database fi
1420: 6c 65 73 20 61 74 20 74 68 65 20 73 61 6d 65 20  les at the same 
1430: 74 69 6d 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  time.</li>.<li>A
1440: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
1450: 20 54 45 4d 50 20 74 72 69 67 67 65 72 73 20 61   TEMP triggers a
1460: 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e  nd indices.</li>
1470: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
1480: 72 74 20 66 6f 72 20 69 6e 2d 6d 65 6d 6f 72 79  rt for in-memory
1490: 20 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e   databases.</li>
14a0: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 74 68 65  .<li>Removed the
14b0: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71   experimental sq
14c0: 6c 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69  lite_open_aux_fi
14d0: 6c 65 28 29 2e 20 20 49 74 73 20 66 75 6e 63 74  le().  Its funct
14e0: 69 6f 6e 20 69 73 0a 20 20 20 20 73 75 62 73 75  ion is.    subsu
14f0: 6d 65 64 20 69 6e 20 74 68 65 20 6e 65 77 20 41  med in the new A
1500: 54 54 41 43 48 20 63 6f 6d 6d 61 6e 64 2e 3c 2f  TTACH command.</
1510: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 63  li>.<li>The prec
1520: 65 64 65 6e 63 65 20 6f 72 64 65 72 20 66 6f 72  edence order for
1530: 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61   ON CONFLICT cla
1540: 75 73 65 73 20 77 61 73 20 63 68 61 6e 67 65 64  uses was changed
1550: 20 73 6f 20 74 68 61 74 0a 20 20 20 20 4f 4e 20   so that.    ON 
1560: 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73  CONFLICT clauses
1570: 20 6f 6e 20 42 45 47 49 4e 20 73 74 61 74 65 6d   on BEGIN statem
1580: 65 6e 74 73 20 68 61 76 65 20 61 20 68 69 67 68  ents have a high
1590: 65 72 20 70 72 65 63 65 64 65 6e 63 65 20 74 68  er precedence th
15a0: 61 6e 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49  an.    ON CONFLI
15b0: 43 54 20 63 6c 61 75 73 65 73 20 6f 6e 20 63 6f  CT clauses on co
15c0: 6e 73 74 72 61 69 6e 74 73 2e 0a 3c 6c 69 3e 4d  nstraints..<li>M
15d0: 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20 66 69  any, many bug fi
15e0: 78 65 73 20 61 6e 64 20 63 6f 6d 70 61 74 69 62  xes and compatib
15f0: 69 6c 69 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e  ility enhancemen
1600: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
1610: 20 7b 32 30 30 33 20 46 65 62 20 31 36 20 28 32   {2003 Feb 16 (2
1620: 2e 38 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64  .8.0)} {.<li>Mod
1630: 69 66 69 65 64 20 74 68 65 20 6a 6f 75 72 6e 61  ified the journa
1640: 6c 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 74 6f  l file format to
1650: 20 6d 61 6b 65 20 69 74 20 6d 6f 72 65 20 72 65   make it more re
1660: 73 69 73 74 61 6e 74 20 74 6f 20 63 6f 72 72 75  sistant to corru
1670: 70 74 69 6f 6e 0a 20 20 20 20 74 68 61 74 20 63  ption.    that c
1680: 61 6e 20 6f 63 63 75 72 20 61 66 74 65 72 20 61  an occur after a
1690: 6e 20 4f 53 20 63 72 61 73 68 20 6f 72 20 70 6f  n OS crash or po
16a0: 77 65 72 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69  wer failure.</li
16b0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 6e 65  >.<li>Added a ne
16c0: 77 20 43 2f 43 2b 2b 20 41 50 49 20 74 68 61 74  w C/C++ API that
16d0: 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20 63 61   does not use ca
16e0: 6c 6c 62 61 63 6b 20 66 6f 72 20 72 65 74 75 72  llback for retur
16f0: 6e 69 6e 67 20 64 61 74 61 2e 3c 2f 6c 69 3e 0a  ning data.</li>.
1700: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 61  }..chng {2003 Ja
1710: 6e 20 32 35 20 28 32 2e 37 2e 36 29 7d 20 7b 0a  n 25 (2.7.6)} {.
1720: 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20  <li>Performance 
1730: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 20 20 54  improvements.  T
1740: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f  he library is no
1750: 77 20 6d 75 63 68 20 66 61 73 74 65 72 2e 3c 2f  w much faster.</
1760: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
1770: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 73 65 74 5f  e <b>sqlite_set_
1780: 61 75 74 68 6f 72 69 7a 65 72 28 29 3c 2f 62 3e  authorizer()</b>
1790: 20 41 50 49 2e 20 20 46 6f 72 6d 61 6c 20 64 6f   API.  Formal do
17a0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73 0a  cumentation has.
17b0: 20 20 20 20 6e 6f 74 20 62 65 65 6e 20 77 72 69      not been wri
17c0: 74 74 65 6e 20 2d 20 73 65 65 20 74 68 65 20 73  tten - see the s
17d0: 6f 75 72 63 65 20 63 6f 64 65 20 63 6f 6d 6d 65  ource code comme
17e0: 6e 74 73 20 66 6f 72 20 69 6e 73 74 72 75 63 74  nts for instruct
17f0: 69 6f 6e 73 20 6f 6e 0a 20 20 20 20 68 6f 77 20  ions on.    how 
1800: 74 6f 20 75 73 65 20 74 68 69 73 20 66 75 6e 63  to use this func
1810: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  tion.</li>.<li>F
1820: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
1830: 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72 20 74 68  GLOB operator th
1840: 61 74 20 77 61 73 20 70 72 65 76 65 6e 74 69 6e  at was preventin
1850: 67 20 69 74 20 66 72 6f 6d 20 77 6f 72 6b 69 6e  g it from workin
1860: 67 0a 20 20 20 20 77 69 74 68 20 75 70 70 65 72  g.    with upper
1870: 2d 63 61 73 65 20 6c 65 74 74 65 72 73 2e 3c 2f  -case letters.</
1880: 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20  li>.<li>Various 
1890: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e  minor bug fixes.
18a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
18b0: 30 30 32 20 44 65 63 20 32 37 20 28 32 2e 37 2e  002 Dec 27 (2.7.
18c0: 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e  5)} {.<li>Fix an
18d0: 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76   uninitialized v
18e0: 61 72 69 61 62 6c 65 20 69 6e 20 70 61 67 65 72  ariable in pager
18f0: 2e 63 20 77 68 69 63 68 20 63 6f 75 6c 64 20 28  .c which could (
1900: 77 69 74 68 20 61 20 70 72 6f 62 61 62 69 6c 69  with a probabili
1910: 74 79 0a 20 20 20 20 6f 66 20 61 62 6f 75 74 20  ty.    of about 
1920: 31 20 69 6e 20 34 20 62 69 6c 6c 69 6f 6e 29 20  1 in 4 billion) 
1930: 72 65 73 75 6c 74 20 69 6e 20 61 20 63 6f 72 72  result in a corr
1940: 75 70 74 65 64 20 64 61 74 61 62 61 73 65 2e 3c  upted database.<
1950: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
1960: 30 32 20 44 65 63 20 31 37 20 28 32 2e 37 2e 34  02 Dec 17 (2.7.4
1970: 29 7d 20 7b 0a 3c 6c 69 3e 44 61 74 61 62 61 73  )} {.<li>Databas
1980: 65 20 66 69 6c 65 73 20 63 61 6e 20 6e 6f 77 20  e files can now 
1990: 67 72 6f 77 20 74 6f 20 62 65 20 75 70 20 74 6f  grow to be up to
19a0: 20 32 5e 34 31 20 62 79 74 65 73 2e 20 20 54 68   2^41 bytes.  Th
19b0: 65 20 6f 6c 64 20 6c 69 6d 69 74 0a 20 20 20 20  e old limit.    
19c0: 77 61 73 20 32 5e 33 31 20 62 79 74 65 73 2e 3c  was 2^31 bytes.<
19d0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74  /li>.<li>The opt
19e0: 69 6d 69 7a 65 72 20 77 69 6c 6c 20 6e 6f 77 20  imizer will now 
19f0: 73 63 61 6e 20 74 61 62 6c 65 73 20 69 6e 20 74  scan tables in t
1a00: 68 65 20 72 65 76 65 72 73 65 20 69 66 20 64 6f  he reverse if do
1a10: 69 6e 67 20 73 6f 20 77 69 6c 6c 0a 20 20 20 20  ing so will.    
1a20: 73 61 74 69 73 66 79 20 61 6e 20 4f 52 44 45 52  satisfy an ORDER
1a30: 20 42 59 20 2e 2e 2e 20 44 45 53 43 20 63 6c 61   BY ... DESC cla
1a40: 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  use.</li>.<li>Th
1a50: 65 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65 20  e full pathname 
1a60: 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65 20  of the database 
1a70: 66 69 6c 65 20 69 73 20 6e 6f 77 20 72 65 6d 65  file is now reme
1a80: 6d 62 65 72 65 64 20 65 76 65 6e 20 69 66 0a 20  mbered even if. 
1a90: 20 20 20 61 20 72 65 6c 61 74 69 76 65 20 70 61     a relative pa
1aa0: 74 68 20 69 73 20 70 61 73 73 65 64 20 69 6e 74  th is passed int
1ab0: 6f 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 2e  o sqlite_open().
1ac0: 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 0a 20    This allows . 
1ad0: 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 74     the library t
1ae0: 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 70 65 72 61  o continue opera
1af0: 74 69 6e 67 20 63 6f 72 72 65 63 74 6c 79 20 61  ting correctly a
1b00: 66 74 65 72 20 61 20 63 68 64 69 72 28 29 2e 3c  fter a chdir().<
1b10: 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69  /li>.<li>Speed i
1b20: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74  mprovements in t
1b30: 68 65 20 56 44 42 45 2e 3c 2f 6c 69 3e 0a 3c 6c  he VDBE.</li>.<l
1b40: 69 3e 4c 6f 74 73 20 6f 66 20 6c 69 74 74 6c 65  i>Lots of little
1b50: 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e   bug fixes.</li>
1b60: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4f  .}..chng {2002 O
1b70: 63 74 20 33 30 20 28 32 2e 37 2e 33 29 7d 20 7b  ct 30 (2.7.3)} {
1b80: 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 63 6f 6d  .<li>Various com
1b90: 70 69 6c 65 72 20 63 6f 6d 70 61 74 69 62 69 6c  piler compatibil
1ba0: 69 74 79 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  ity fixes.</li>.
1bb0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
1bc0: 20 74 68 65 20 22 65 78 70 72 20 49 4e 20 28 29   the "expr IN ()
1bd0: 22 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e  " operator.</li>
1be0: 0a 3c 6c 69 3e 41 63 63 65 70 74 20 63 6f 6c 75  .<li>Accept colu
1bf0: 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 70 61 72 65  mn names in pare
1c00: 6e 74 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ntheses.</li>.<l
1c10: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
1c20: 77 69 74 68 20 73 74 72 69 6e 67 20 6d 65 6d 6f  with string memo
1c30: 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 20 69 6e  ry management in
1c40: 20 74 68 65 20 56 44 42 45 3c 2f 6c 69 3e 0a 3c   the VDBE</li>.<
1c50: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
1c60: 74 68 65 20 22 74 61 62 6c 65 5f 69 6e 66 6f 22  the "table_info"
1c70: 20 70 72 61 67 6d 61 22 3c 2f 6c 69 3e 0a 3c 6c   pragma"</li>.<l
1c80: 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73 71 6c  i>Export the sql
1c90: 69 74 65 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70  ite_function_typ
1ca0: 65 28 29 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  e() API function
1cb0: 20 69 6e 20 74 68 65 20 57 69 6e 64 6f 77 73 20   in the Windows 
1cc0: 44 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  DLL</li>.<li>Fix
1cd0: 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f   locking behavio
1ce0: 72 20 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 3c  r under windows<
1cf0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
1d00: 75 67 20 69 6e 20 4c 45 46 54 20 4f 55 54 45 52  ug in LEFT OUTER
1d10: 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68   JOIN</li>.}..ch
1d20: 6e 67 20 7b 32 30 30 32 20 53 65 70 20 32 35 20  ng {2002 Sep 25 
1d30: 28 32 2e 37 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 50  (2.7.2)} {.<li>P
1d40: 72 65 76 65 6e 74 20 6a 6f 75 72 6e 61 6c 20 66  revent journal f
1d50: 69 6c 65 20 6f 76 65 72 66 6c 6f 77 73 20 6f 6e  ile overflows on
1d60: 20 68 75 67 65 20 74 72 61 6e 73 61 63 74 69 6f   huge transactio
1d70: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ns.</li>.<li>Fix
1d80: 20 61 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 74   a memory leak t
1d90: 68 61 74 20 6f 63 63 75 72 72 65 64 20 77 68 65  hat occurred whe
1da0: 6e 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 20  n sqlite_open() 
1db0: 66 61 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  failed.</li>.<li
1dc0: 3e 48 6f 6e 6f 72 20 74 68 65 20 4f 52 44 45 52  >Honor the ORDER
1dd0: 20 42 59 20 61 6e 64 20 4c 49 4d 49 54 20 63 6c   BY and LIMIT cl
1de0: 61 75 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54  ause of a SELECT
1df0: 20 65 76 65 6e 20 69 66 20 74 68 65 0a 20 20 20   even if the.   
1e00: 20 72 65 73 75 6c 74 20 73 65 74 20 69 73 20 75   result set is u
1e10: 73 65 64 20 66 6f 72 20 61 6e 20 49 4e 53 45 52  sed for an INSER
1e20: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e  T.</li>.<li>Do n
1e30: 6f 74 20 70 75 74 20 77 72 69 74 65 20 6c 6f 63  ot put write loc
1e40: 6b 73 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 75  ks on the file u
1e50: 73 65 64 20 74 6f 20 68 6f 6c 64 20 54 45 4d 50  sed to hold TEMP
1e60: 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c   tables.</li>.<l
1e70: 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65 6e 74  i>Added document
1e80: 69 6f 6e 20 6f 6e 20 53 45 4c 45 43 54 20 44 49  ion on SELECT DI
1e90: 53 54 49 4e 43 54 20 61 6e 64 20 6f 6e 20 68 6f  STINCT and on ho
1ea0: 77 20 53 51 4c 69 74 65 20 68 61 6e 64 6c 65 73  w SQLite handles
1eb0: 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   NULLs.</li>.<li
1ec0: 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74  >Fix a problem t
1ed0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
1ee0: 70 6f 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63 65  poor performance
1ef0: 20 77 68 65 6e 20 6d 61 6e 79 20 74 68 6f 75 73   when many thous
1f00: 61 6e 64 73 0a 20 20 20 20 6f 66 20 53 51 4c 20  ands.    of SQL 
1f10: 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65 20  statements were 
1f20: 65 78 65 63 75 74 65 64 20 62 79 20 61 20 73 69  executed by a si
1f30: 6e 67 6c 65 20 73 71 6c 69 74 65 5f 65 78 65 63  ngle sqlite_exec
1f40: 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a  () call.</li>.}.
1f50: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20  .chng {2002 Aug 
1f60: 33 31 20 28 32 2e 37 2e 31 29 7d 20 7b 0a 3c 6c  31 (2.7.1)} {.<l
1f70: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
1f80: 68 65 20 4f 52 44 45 52 20 42 59 20 6c 6f 67 69  he ORDER BY logi
1f90: 63 20 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f  c that was intro
1fa0: 64 75 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e  duced in version
1fb0: 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a 3c 6c 69 3e   2.7.0</li>.<li>
1fc0: 43 2d 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73  C-style comments
1fd0: 20 61 72 65 20 6e 6f 77 20 61 63 63 65 70 74 65   are now accepte
1fe0: 64 20 62 79 20 74 68 65 20 74 6f 6b 65 6e 69 7a  d by the tokeniz
1ff0: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 4e 53  er.</li>.<li>INS
2000: 45 52 54 20 72 75 6e 73 20 61 20 6c 69 74 74 6c  ERT runs a littl
2010: 65 20 66 61 73 74 65 72 20 77 68 65 6e 20 74 68  e faster when th
2020: 65 20 73 6f 75 72 63 65 20 69 73 20 61 20 53 45  e source is a SE
2030: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
2040: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2050: 30 32 20 41 75 67 20 32 35 20 28 32 2e 37 2e 30  02 Aug 25 (2.7.0
2060: 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 61 20  )} {.<li>Make a 
2070: 64 69 73 74 69 6e 63 74 69 6f 6e 20 62 65 74 77  distinction betw
2080: 65 65 6e 20 6e 75 6d 65 72 69 63 20 61 6e 64 20  een numeric and 
2090: 74 65 78 74 20 76 61 6c 75 65 73 20 77 68 65 6e  text values when
20a0: 20 73 6f 72 74 69 6e 67 2e 0a 20 20 20 20 54 65   sorting..    Te
20b0: 78 74 20 76 61 6c 75 65 73 20 73 6f 72 74 20 61  xt values sort a
20c0: 63 63 6f 72 64 69 6e 67 20 74 6f 20 6d 65 6d 63  ccording to memc
20d0: 6d 70 28 29 2e 20 20 4e 75 6d 65 72 69 63 20 76  mp().  Numeric v
20e0: 61 6c 75 65 73 20 73 6f 72 74 20 69 6e 0a 20 20  alues sort in.  
20f0: 20 20 6e 75 6d 65 72 69 63 20 6f 72 64 65 72 2e    numeric order.
2100: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
2110: 6d 75 6c 74 69 70 6c 65 20 73 69 6d 75 6c 61 74  multiple simulat
2120: 61 6e 65 6f 75 73 20 72 65 61 64 65 72 73 20 75  aneous readers u
2130: 6e 64 65 72 20 77 69 6e 64 6f 77 73 20 62 79 20  nder windows by 
2140: 73 69 6d 75 6c 61 74 69 6e 67 0a 20 20 20 20 74  simulating.    t
2150: 68 65 20 72 65 61 64 65 72 2f 77 72 69 74 65 72  he reader/writer
2160: 73 20 6c 6f 63 6b 73 20 74 68 61 74 20 61 72 65  s locks that are
2170: 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 57 69   missing from Wi
2180: 6e 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c 69 3e 0a  n95/98/ME.</li>.
2190: 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20 69 73 20  <li>An error is 
21a0: 6e 6f 77 20 72 65 74 75 72 6e 65 64 20 77 68 65  now returned whe
21b0: 6e 20 74 72 79 69 6e 67 20 74 6f 20 73 74 61 72  n trying to star
21c0: 74 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20  t a transaction 
21d0: 69 66 0a 20 20 20 20 61 6e 6f 74 68 65 72 20 74  if.    another t
21e0: 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 61 6c  ransaction is al
21f0: 72 65 61 64 79 20 61 63 74 69 76 65 2e 3c 2f 6c  ready active.</l
2200: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
2210: 20 41 75 67 20 31 32 20 28 32 2e 36 2e 33 29 7d   Aug 12 (2.6.3)}
2220: 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61   {.<li>Add the a
2230: 62 69 6c 69 74 79 20 74 6f 20 72 65 61 64 20 62  bility to read b
2240: 6f 74 68 20 6c 69 74 74 6c 65 2d 65 6e 64 69 61  oth little-endia
2250: 6e 20 61 6e 64 20 62 69 67 2d 65 6e 64 69 61 6e  n and big-endian
2260: 20 64 61 74 61 62 61 73 65 73 2e 0a 20 20 20 20   databases..    
2270: 53 6f 20 64 61 74 61 62 61 73 65 20 63 72 65 61  So database crea
2280: 74 65 64 20 75 6e 64 65 72 20 53 75 6e 4f 53 20  ted under SunOS 
2290: 6f 72 20 4d 61 63 4f 53 58 20 63 61 6e 20 62 65  or MacOSX can be
22a0: 20 72 65 61 64 20 61 6e 64 20 77 72 69 74 74 65   read and writte
22b0: 6e 0a 20 20 20 20 75 6e 64 65 72 20 4c 69 6e 75  n.    under Linu
22c0: 78 20 6f 72 20 57 69 6e 64 6f 77 73 20 61 6e 64  x or Windows and
22d0: 20 76 69 63 65 20 76 65 72 73 61 2e 3c 2f 6c 69   vice versa.</li
22e0: 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 74 6f  >.<li>Convert to
22f0: 20 74 68 65 20 6e 65 77 20 77 65 62 73 69 74 65   the new website
2300: 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c  : http://www.sql
2310: 69 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e 0a 3c 6c  ite.org/</li>.<l
2320: 69 3e 41 6c 6c 6f 77 20 74 72 61 6e 73 61 63 74  i>Allow transact
2330: 69 6f 6e 73 20 74 6f 20 73 70 61 6e 20 4c 69 6e  ions to span Lin
2340: 75 78 20 54 68 72 65 61 64 73 3c 2f 6c 69 3e 0a  ux Threads</li>.
2350: 3c 6c 69 3e 42 75 67 20 66 69 78 20 69 6e 20 74  <li>Bug fix in t
2360: 68 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66  he processing of
2370: 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 63 6c   the ORDER BY cl
2380: 61 75 73 65 20 66 6f 72 20 47 52 4f 55 50 20 42  ause for GROUP B
2390: 59 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 7d  Y queries</li>.}
23a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79  ..chng {2002 Jly
23b0: 20 33 30 20 28 32 2e 36 2e 32 29 7d 20 7b 0a 3c   30 (2.6.2)} {.<
23c0: 6c 69 3e 54 65 78 74 20 66 69 6c 65 73 20 72 65  li>Text files re
23d0: 61 64 20 62 79 20 74 68 65 20 43 4f 50 59 20 63  ad by the COPY c
23e0: 6f 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f 77 20 68  ommand can now h
23f0: 61 76 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e 61  ave line termina
2400: 74 6f 72 73 0a 20 20 20 20 6f 66 20 4c 46 2c 20  tors.    of LF, 
2410: 20 43 52 4c 46 2c 20 6f 72 20 43 52 2e 3c 2f 6c   CRLF, or CR.</l
2420: 69 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45 5f 42 55  i>.<li>SQLITE_BU
2430: 53 59 20 69 73 20 68 61 6e 64 6c 65 64 20 63 6f  SY is handled co
2440: 72 72 65 63 74 6c 79 20 69 66 20 65 6e 63 6f 75  rrectly if encou
2450: 6e 74 65 72 65 64 20 64 75 72 69 6e 67 20 64 61  ntered during da
2460: 74 61 62 61 73 65 0a 20 20 20 20 69 6e 69 74 69  tabase.    initi
2470: 61 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a  alization.</li>.
2480: 3c 6c 69 3e 46 69 78 20 74 6f 20 55 50 44 41 54  <li>Fix to UPDAT
2490: 45 20 74 72 69 67 67 65 72 73 20 6f 6e 20 54 45  E triggers on TE
24a0: 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a  MP tables.</li>.
24b0: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
24c0: 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a  n updates.</li>.
24d0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
24e0: 79 20 31 39 20 28 32 2e 36 2e 31 29 7d 20 7b 0a  y 19 (2.6.1)} {.
24f0: 3c 6c 69 3e 49 6e 63 6c 75 64 65 20 61 20 73 74  <li>Include a st
2500: 61 74 69 63 20 73 74 72 69 6e 67 20 69 6e 20 74  atic string in t
2510: 68 65 20 6c 69 62 72 61 72 79 20 74 68 61 74 20  he library that 
2520: 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20  responds to the 
2530: 52 43 53 0a 20 20 20 20 22 69 64 65 6e 74 22 20  RCS.    "ident" 
2540: 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 77 68 69 63  command and whic
2550: 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6c  h contains the l
2560: 69 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20 6e  ibrary version n
2570: 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  umber.</li>.<li>
2580: 46 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f 6e  Fix an assertion
2590: 20 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f 63   failure that oc
25a0: 63 75 72 72 65 64 20 77 68 65 6e 20 64 65 6c 65  curred when dele
25b0: 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 6f 66  ting all rows of
25c0: 0a 20 20 20 20 61 20 74 61 62 6c 65 20 77 69 74  .    a table wit
25d0: 68 20 74 68 65 20 22 63 6f 75 6e 74 5f 63 68 61  h the "count_cha
25e0: 6e 67 65 73 22 20 70 72 61 67 6d 61 20 74 75 72  nges" pragma tur
25f0: 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ned on.</li>.<li
2600: 3e 42 65 74 74 65 72 20 65 72 72 6f 72 20 72 65  >Better error re
2610: 70 6f 72 74 69 6e 67 20 77 68 65 6e 20 70 72 6f  porting when pro
2620: 62 6c 65 6d 73 20 6f 63 63 75 72 20 64 75 72 69  blems occur duri
2630: 6e 67 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63  ng the automatic
2640: 0a 20 20 20 20 32 2e 35 2e 36 20 74 6f 20 32 2e  .    2.5.6 to 2.
2650: 36 2e 30 20 64 61 74 61 62 61 73 65 20 66 6f 72  6.0 database for
2660: 6d 61 74 20 75 70 67 72 61 64 65 2e 3c 2f 6c 69  mat upgrade.</li
2670: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
2680: 4a 6c 79 20 31 37 20 28 32 2e 36 2e 30 29 7d 20  Jly 17 (2.6.0)} 
2690: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  {.<li>Change the
26a0: 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69 63   format of indic
26b0: 65 73 20 74 6f 20 63 6f 72 72 65 63 74 20 61 20  es to correct a 
26c0: 64 65 73 69 67 6e 20 66 6c 61 77 20 74 68 65 20  design flaw the 
26d0: 6f 72 69 67 69 6e 61 74 65 64 0a 20 20 20 20 77  originated.    w
26e0: 69 74 68 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e  ith version 2.1.
26f0: 30 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d  0.  <font color=
2700: 22 72 65 64 22 3e 2a 2a 2a 20 54 68 69 73 20 69  "red">*** This i
2710: 73 20 61 6e 20 69 6e 63 6f 6d 70 61 74 69 62 6c  s an incompatibl
2720: 65 0a 20 20 20 20 66 69 6c 65 20 66 6f 72 6d 61  e.    file forma
2730: 74 20 63 68 61 6e 67 65 20 2a 2a 2a 3c 2f 66 6f  t change ***</fo
2740: 6e 74 3e 20 20 57 68 65 6e 20 76 65 72 73 69 6f  nt>  When versio
2750: 6e 20 32 2e 36 2e 30 20 6f 72 20 6c 61 74 65 72  n 2.6.0 or later
2760: 20 6f 66 20 74 68 65 0a 20 20 20 20 6c 69 62 72   of the.    libr
2770: 61 72 79 20 61 74 74 65 6d 70 74 73 20 74 6f 20  ary attempts to 
2780: 6f 70 65 6e 20 61 20 64 61 74 61 62 61 73 65 20  open a database 
2790: 66 69 6c 65 20 63 72 65 61 74 65 64 20 62 79 20  file created by 
27a0: 76 65 72 73 69 6f 6e 20 32 2e 35 2e 36 20 6f 72  version 2.5.6 or
27b0: 0a 20 20 20 20 65 61 72 6c 69 65 72 2c 20 69 74  .    earlier, it
27c0: 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61   will automatica
27d0: 6c 6c 79 20 61 6e 64 20 69 72 72 65 76 65 72 73  lly and irrevers
27e0: 69 62 6c 79 20 63 6f 6e 76 65 72 74 20 74 68 65  ibly convert the
27f0: 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e 0a 20 20   file format..  
2800: 20 20 3c 62 3e 4d 61 6b 65 20 62 61 63 6b 75 70    <b>Make backup
2810: 20 63 6f 70 69 65 73 20 6f 66 20 6f 6c 64 65 72   copies of older
2820: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 20   database files 
2830: 62 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20 74  before opening t
2840: 68 65 6d 20 77 69 74 68 0a 20 20 20 20 76 65 72  hem with.    ver
2850: 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 66 20 74 68  sion 2.6.0 of th
2860: 65 20 6c 69 62 72 61 72 79 2e 3c 2f 62 3e 0a 20  e library.</b>. 
2870: 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
2880: 20 7b 32 30 30 32 20 4a 6c 79 20 37 20 28 32 2e   {2002 Jly 7 (2.
2890: 35 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  5.6)} {.<li>Fix 
28a0: 6d 6f 72 65 20 70 72 6f 62 6c 65 6d 73 20 77 69  more problems wi
28b0: 74 68 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 45 6e  th rollback.  En
28c0: 68 61 6e 63 65 20 74 68 65 20 74 65 73 74 20 73  hance the test s
28d0: 75 69 74 65 20 74 6f 20 65 78 65 72 63 69 73 65  uite to exercise
28e0: 0a 20 20 20 20 74 68 65 20 72 6f 6c 6c 62 61 63  .    the rollbac
28f0: 6b 20 6c 6f 67 69 63 20 65 78 74 65 6e 73 69 76  k logic extensiv
2900: 65 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ely in order to 
2910: 70 72 65 76 65 6e 74 20 61 6e 79 20 66 75 74 75  prevent any futu
2920: 72 65 20 70 72 6f 62 6c 65 6d 73 2e 0a 20 20 20  re problems..   
2930: 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b   </li>.}..chng {
2940: 32 30 30 32 20 4a 6c 79 20 36 20 28 32 2e 35 2e  2002 Jly 6 (2.5.
2950: 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  5)} {.<li>Fix a 
2960: 62 75 67 20 77 68 69 63 68 20 63 6f 75 6c 64 20  bug which could 
2970: 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63  cause database c
2980: 6f 72 72 75 70 74 69 6f 6e 20 64 75 72 69 6e 67  orruption during
2990: 20 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a 20 20 20   a rollback..   
29a0: 20 54 68 69 73 20 62 75 67 73 20 77 61 73 20 69   This bugs was i
29b0: 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72  ntroduced in ver
29c0: 73 69 6f 6e 20 32 2e 34 2e 30 20 62 79 20 74 68  sion 2.4.0 by th
29d0: 65 20 66 72 65 65 6c 69 73 74 0a 20 20 20 20 6f  e freelist.    o
29e0: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 66 20 63  ptimization of c
29f0: 68 65 63 6b 69 6e 67 20 5b 34 31 30 5d 2e 3c 2f  hecking [410].</
2a00: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
2a10: 67 20 69 6e 20 61 67 67 72 65 67 61 74 65 20 66  g in aggregate f
2a20: 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 56 49 45  unctions for VIE
2a30: 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  Ws.</li>.<li>Oth
2a40: 65 72 20 6d 69 6e 6f 72 20 63 68 61 6e 67 65 73  er minor changes
2a50: 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74   and enhancement
2a60: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
2a70: 7b 32 30 30 32 20 4a 6c 79 20 31 20 28 32 2e 35  {2002 Jly 1 (2.5
2a80: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20  .4)} {.<li>Make 
2a90: 74 68 65 20 22 41 53 22 20 6b 65 79 77 6f 72 64  the "AS" keyword
2aa0: 20 6f 70 74 69 6f 6e 61 6c 20 61 67 61 69 6e 2e   optional again.
2ab0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 61  </li>.<li>The da
2ac0: 74 61 74 79 70 65 20 6f 66 20 63 6f 6c 75 6d 6e  tatype of column
2ad0: 73 20 6e 6f 77 20 61 70 70 65 61 72 20 69 6e 20  s now appear in 
2ae0: 74 68 65 20 34 74 68 20 61 72 67 75 6d 65 6e 74  the 4th argument
2af0: 20 74 6f 20 74 68 65 0a 20 20 20 20 63 61 6c 6c   to the.    call
2b00: 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  back.</li>.<li>A
2b10: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
2b20: 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c 65  te_open_aux_file
2b30: 28 29 3c 2f 62 3e 20 41 50 49 2c 20 74 68 6f 75  ()</b> API, thou
2b40: 67 68 20 69 74 20 69 73 20 73 74 69 6c 6c 0a 20  gh it is still. 
2b50: 20 20 20 6d 6f 73 74 6c 79 20 75 6e 64 6f 63 75     mostly undocu
2b60: 6d 65 6e 74 65 64 20 61 6e 64 20 75 6e 74 65 73  mented and untes
2b70: 74 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ted.</li>.<li>Ad
2b80: 64 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 74  ded additional t
2b90: 65 73 74 20 63 61 73 65 73 20 61 6e 64 20 66 69  est cases and fi
2ba0: 78 65 64 20 61 20 66 65 77 20 62 75 67 73 20 74  xed a few bugs t
2bb0: 68 61 74 20 74 68 6f 73 65 0a 20 20 20 20 74 65  hat those.    te
2bc0: 73 74 20 63 61 73 65 73 20 66 6f 75 6e 64 2e 3c  st cases found.<
2bd0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2be0: 30 32 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e 33  02 Jun 24 (2.5.3
2bf0: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
2c00: 3a 20 20 44 61 74 61 62 61 73 65 20 63 6f 72 72  :  Database corr
2c10: 75 70 74 69 6f 6e 20 63 61 6e 20 6f 63 63 75 72  uption can occur
2c20: 20 64 75 65 20 74 6f 20 74 68 65 20 6f 70 74 69   due to the opti
2c30: 6d 69 7a 61 74 69 6f 6e 0a 20 20 20 20 74 68 61  mization.    tha
2c40: 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64  t was introduced
2c50: 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 2e   in version 2.4.
2c60: 30 20 28 63 68 65 63 6b 2d 69 6e 20 5b 34 31 30  0 (check-in [410
2c70: 5d 29 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d  ]).  The problem
2c80: 0a 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 77 20  .    should now 
2c90: 62 65 20 66 69 78 65 64 2e 20 20 54 68 65 20 75  be fixed.  The u
2ca0: 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 73 20 32  se of versions 2
2cb0: 2e 34 2e 30 20 74 68 72 6f 75 67 68 20 32 2e 35  .4.0 through 2.5
2cc0: 2e 32 20 69 73 0a 20 20 20 20 6e 6f 74 20 72 65  .2 is.    not re
2cd0: 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c 69 3e 0a  commended.</li>.
2ce0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75  }..chng {2002 Ju
2cf0: 6e 20 32 34 20 28 32 2e 35 2e 32 29 7d 20 7b 0a  n 24 (2.5.2)} {.
2d00: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65  <li>Added the ne
2d10: 77 20 3c 62 3e 53 51 4c 49 54 45 5f 54 45 4d 50  w <b>SQLITE_TEMP
2d20: 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 74 61 62 6c  _MASTER</b> tabl
2d30: 65 20 77 68 69 63 68 20 72 65 63 6f 72 64 73 20  e which records 
2d40: 74 68 65 20 73 63 68 65 6d 61 0a 20 20 20 20 66  the schema.    f
2d50: 6f 72 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62  or temporary tab
2d60: 6c 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20  les in the same 
2d70: 77 61 79 20 74 68 61 74 20 3c 62 3e 53 51 4c 49  way that <b>SQLI
2d80: 54 45 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 64 6f  TE_MASTER</b> do
2d90: 65 73 20 66 6f 72 0a 20 20 20 20 70 65 72 73 69  es for.    persi
2da0: 73 74 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f 6c  stent tables.</l
2db0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 6e 20  i>.<li>Added an 
2dc0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 74 6f 20  optimization to 
2dd0: 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69 3e 0a 3c  UNION ALL</li>.<
2de0: 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67 20 69  li>Fixed a bug i
2df0: 6e 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67  n the processing
2e00: 20 6f 66 20 4c 45 46 54 20 4f 55 54 45 52 20 4a   of LEFT OUTER J
2e10: 4f 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  OIN</li>.<li>The
2e20: 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6e 6f   LIMIT clause no
2e30: 77 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65  w works on subse
2e40: 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  lects</li>.<li>O
2e50: 52 44 45 52 20 42 59 20 77 6f 72 6b 73 20 6f 6e  RDER BY works on
2e60: 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69 3e   subselects</li>
2e70: 0a 3c 6c 69 3e 54 68 65 72 65 20 69 73 20 61 20  .<li>There is a 
2e80: 6e 65 77 20 54 79 70 65 4f 66 28 29 20 66 75 6e  new TypeOf() fun
2e90: 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 64 65  ction used to de
2ea0: 74 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 65 78  termine if an ex
2eb0: 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 69 73 20  pression.    is 
2ec0: 6e 75 6d 65 72 69 63 20 6f 72 20 74 65 78 74 2e  numeric or text.
2ed0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 69 6e  </li>.<li>Autoin
2ee0: 63 72 65 6d 65 6e 74 20 6e 6f 77 20 77 6f 72 6b  crement now work
2ef0: 73 20 66 6f 72 20 49 4e 53 45 52 54 20 66 72 6f  s for INSERT fro
2f00: 6d 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e  m a SELECT.</li>
2f10: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
2f20: 75 6e 20 31 39 20 28 32 2e 35 2e 31 29 7d 20 7b  un 19 (2.5.1)} {
2f30: 0a 3c 6c 69 3e 54 68 65 20 71 75 65 72 79 20 6f  .<li>The query o
2f40: 70 74 69 6d 69 7a 65 72 20 6e 6f 77 20 61 74 74  ptimizer now att
2f50: 65 6d 70 74 73 20 74 6f 20 69 6d 70 6c 65 6d 65  empts to impleme
2f60: 6e 74 20 74 68 65 20 4f 52 44 45 52 20 42 59 20  nt the ORDER BY 
2f70: 63 6c 61 75 73 65 0a 20 20 20 20 75 73 69 6e 67  clause.    using
2f80: 20 61 6e 20 69 6e 64 65 78 2e 20 20 53 6f 72 74   an index.  Sort
2f90: 69 6e 67 20 69 73 20 73 74 69 6c 6c 20 75 73 65  ing is still use
2fa0: 64 20 69 66 20 6e 6f 74 20 73 75 69 74 61 62 6c  d if not suitabl
2fb0: 65 20 69 6e 64 65 78 20 69 73 0a 20 20 20 20 61  e index is.    a
2fc0: 76 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d  vailable.</li>.}
2fd0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e  ..chng {2002 Jun
2fe0: 20 31 37 20 28 32 2e 35 2e 30 29 7d 20 7b 0a 3c   17 (2.5.0)} {.<
2ff0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
3000: 20 66 6f 72 20 72 6f 77 20 74 72 69 67 67 65 72   for row trigger
3010: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
3020: 64 20 53 51 4c 2d 39 32 20 63 6f 6d 70 6c 69 61  d SQL-92 complia
3030: 6e 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 4e  nt handling of N
3040: 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ULLs.</li>.<li>A
3050: 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74  dd support for t
3060: 68 65 20 66 75 6c 6c 20 53 51 4c 2d 39 32 20 6a  he full SQL-92 j
3070: 6f 69 6e 20 73 79 6e 74 61 78 20 61 6e 64 20 4c  oin syntax and L
3080: 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73 2e  EFT OUTER JOINs.
3090: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75 62 6c 65  </li>.<li>Double
30a0: 2d 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73 20  -quoted strings 
30b0: 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 63  interpreted as c
30c0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e 6f 74 20  olumn names not 
30d0: 74 65 78 74 20 6c 69 74 65 72 61 6c 73 2e 3c 2f  text literals.</
30e0: 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73 65 20 28 62  li>.<li>Parse (b
30f0: 75 74 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65 6d  ut do not implem
3100: 65 6e 74 29 20 66 6f 72 65 69 67 6e 20 6b 65 79  ent) foreign key
3110: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66  s.</li>.<li>Perf
3120: 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d  ormance improvem
3130: 65 6e 65 74 73 20 69 6e 20 74 68 65 20 70 61 72  enets in the par
3140: 73 65 72 2c 20 70 61 67 65 72 2c 20 61 6e 64 20  ser, pager, and 
3150: 57 48 45 52 45 20 63 6c 61 75 73 65 20 63 6f 64  WHERE clause cod
3160: 65 0a 20 20 20 20 67 65 6e 65 72 61 74 6f 72 2e  e.    generator.
3170: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74  </li>.<li>Make t
3180: 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20  he LIMIT clause 
3190: 77 6f 72 6b 20 6f 6e 20 73 75 62 71 75 65 72 69  work on subqueri
31a0: 65 73 2e 20 20 28 4f 52 44 45 52 20 42 59 20 73  es.  (ORDER BY s
31b0: 74 69 6c 6c 20 64 6f 65 73 20 6e 6f 74 0a 20 20  till does not.  
31c0: 20 20 77 6f 72 6b 2c 20 74 68 6f 75 67 68 2e 29    work, though.)
31d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
31e0: 74 68 65 20 22 25 51 22 20 65 78 70 61 6e 73 69  the "%Q" expansi
31f0: 6f 6e 20 74 6f 20 73 71 6c 69 74 65 5f 2a 5f 70  on to sqlite_*_p
3200: 72 69 6e 74 66 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c  rintf().</li>.<l
3210: 69 3e 42 75 67 20 66 69 78 65 73 20 74 6f 6f 20  i>Bug fixes too 
3220: 6e 75 6d 65 72 69 6f 75 73 20 74 6f 20 6d 65 6e  numerious to men
3230: 74 69 6f 6e 20 28 73 65 65 20 74 68 65 20 63 68  tion (see the ch
3240: 61 6e 67 65 20 6c 6f 67 29 2e 3c 2f 6c 69 3e 0a  ange log).</li>.
3250: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61  }..chng {2002 Ma
3260: 79 20 30 39 20 28 32 2e 34 2e 31 32 29 7d 20 7b  y 09 (2.4.12)} {
3270: 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 67 69 63  .<li>Added logic
3280: 20 74 6f 20 64 65 74 65 63 74 20 77 68 65 6e 20   to detect when 
3290: 74 68 65 20 6c 69 62 72 61 72 79 20 41 50 49 20  the library API 
32a0: 72 6f 75 74 69 6e 65 73 20 61 72 65 20 63 61 6c  routines are cal
32b0: 6c 65 64 20 6f 75 74 0a 20 20 20 20 6f 66 20 73  led out.    of s
32c0: 65 71 75 65 6e 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a  equence.</li>.}.
32d0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20  .chng {2002 May 
32e0: 30 38 20 28 32 2e 34 2e 31 31 29 7d 20 7b 0a 3c  08 (2.4.11)} {.<
32f0: 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6c 75  li>Bug fix: Colu
3300: 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20  mn names in the 
3310: 72 65 73 75 6c 74 20 73 65 74 20 77 65 72 65 20  result set were 
3320: 6e 6f 74 20 62 65 69 6e 67 20 67 65 6e 65 72 61  not being genera
3330: 74 65 64 0a 20 20 20 20 63 6f 72 72 65 63 74 6c  ted.    correctl
3340: 79 20 66 6f 72 20 73 6f 6d 65 20 28 72 61 74 68  y for some (rath
3350: 65 72 20 63 6f 6d 70 6c 65 78 29 20 56 49 45 57  er complex) VIEW
3360: 73 2e 20 20 54 68 69 73 20 63 6f 75 6c 64 20 63  s.  This could c
3370: 61 75 73 65 20 61 0a 20 20 20 20 73 65 67 66 61  ause a.    segfa
3380: 75 6c 74 20 75 6e 64 65 72 20 63 65 72 74 61 69  ult under certai
3390: 6e 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 2e  n circumstances.
33a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
33b0: 30 30 32 20 4d 61 79 20 30 32 20 28 32 2e 34 2e  002 May 02 (2.4.
33c0: 31 30 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  10)} {.<li>Bug f
33d0: 69 78 3a 20 47 65 6e 65 72 61 74 65 20 63 6f 72  ix: Generate cor
33e0: 72 65 63 74 20 63 6f 6c 75 6d 6e 20 68 65 61 64  rect column head
33f0: 65 72 73 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f  ers when a compo
3400: 75 6e 64 20 53 45 4c 45 43 54 20 69 73 20 75 73  und SELECT is us
3410: 65 64 0a 20 20 20 20 61 73 20 61 20 73 75 62 71  ed.    as a subq
3420: 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  uery.</li>.<li>A
3430: 64 64 65 64 20 74 68 65 20 73 71 6c 69 74 65 5f  dded the sqlite_
3440: 65 6e 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20  encode_binary() 
3450: 61 6e 64 20 73 71 6c 69 74 65 5f 64 65 63 6f 64  and sqlite_decod
3460: 65 5f 62 69 6e 61 72 79 28 29 20 66 75 6e 63 74  e_binary() funct
3470: 69 6f 6e 73 20 74 6f 0a 20 20 20 20 74 68 65 20  ions to.    the 
3480: 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20 42 75  source tree.  Bu
3490: 74 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 79  t they are not y
34a0: 65 74 20 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 74  et linked into t
34b0: 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e  he library.</li>
34c0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
34d0: 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e  on updates.</li>
34e0: 0a 3c 6c 69 3e 45 78 70 6f 72 74 20 74 68 65 20  .<li>Export the 
34f0: 73 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 29  sqlite_changes()
3500: 20 66 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 77   function from w
3510: 69 6e 64 6f 77 73 20 44 4c 4c 73 2e 3c 2f 6c 69  indows DLLs.</li
3520: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 44  >.<li>Bug fix: D
3530: 6f 20 6e 6f 74 20 61 74 74 65 6d 70 74 20 74 68  o not attempt th
3540: 65 20 73 75 62 71 75 65 72 79 20 66 6c 61 74 74  e subquery flatt
3550: 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 61 74 69  ening optimizati
3560: 6f 6e 20 6f 6e 20 71 75 65 72 69 65 73 0a 20 20  on on queries.  
3570: 20 20 74 68 61 74 20 6c 61 63 6b 20 61 20 46 52    that lack a FR
3580: 4f 4d 20 63 6c 61 75 73 65 2e 20 20 54 6f 20 64  OM clause.  To d
3590: 6f 20 73 6f 20 63 61 75 73 65 73 20 61 20 73 65  o so causes a se
35a0: 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  gfault.</li>.}..
35b0: 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 32  chng {2002 Apr 2
35c0: 31 20 28 32 2e 34 2e 39 29 7d 20 7b 0a 3c 6c 69  1 (2.4.9)} {.<li
35d0: 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20  >Fix a bug that 
35e0: 77 61 73 20 63 61 75 73 69 6e 67 20 74 68 65 20  was causing the 
35f0: 70 72 65 63 6f 6d 70 69 6c 65 64 20 62 69 6e 61  precompiled bina
3600: 72 79 20 6f 66 20 53 51 4c 49 54 45 2e 45 58 45  ry of SQLITE.EXE
3610: 20 74 6f 0a 20 20 20 20 72 65 70 6f 72 74 20 22   to.    report "
3620: 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79 22 20 75  out of memory" u
3630: 6e 64 65 72 20 57 69 6e 64 6f 77 73 20 39 38 2e  nder Windows 98.
3640: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
3650: 30 30 32 20 41 70 72 20 32 30 20 28 32 2e 34 2e  002 Apr 20 (2.4.
3660: 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 73  8)} {.<li>Make s
3670: 75 72 65 20 56 49 45 57 73 20 61 72 65 20 63 72  ure VIEWs are cr
3680: 65 61 74 65 64 20 61 66 74 65 72 20 74 68 65 69  eated after thei
3690: 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  r corresponding 
36a0: 54 41 42 4c 45 73 20 69 6e 20 74 68 65 0a 20 20  TABLEs in the.  
36b0: 20 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20    output of the 
36c0: 3c 62 3e 2e 64 75 6d 70 3c 2f 62 3e 20 63 6f 6d  <b>.dump</b> com
36d0: 6d 61 6e 64 20 69 6e 20 74 68 65 20 73 68 65 6c  mand in the shel
36e0: 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65  l.</li>.<li>Spee
36f0: 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 3a 20  d improvements: 
3700: 44 6f 20 6e 6f 74 20 64 6f 20 73 79 6e 63 68 72  Do not do synchr
3710: 6f 6e 6f 75 73 20 75 70 64 61 74 65 73 20 6f 6e  onous updates on
3720: 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c   TEMP tables.</l
3730: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70 72  i>.<li>Many impr
3740: 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20 65 6e 68  ovements and enh
3750: 61 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65  ancements to the
3760: 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69   shell.</li>.<li
3770: 3e 4d 61 6b 65 20 74 68 65 20 47 4c 4f 42 20 61  >Make the GLOB a
3780: 6e 64 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72  nd LIKE operator
3790: 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74  s functions that
37a0: 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 64   can be overridd
37b0: 65 6e 0a 20 20 20 20 62 79 20 61 20 70 72 6f 67  en.    by a prog
37c0: 72 61 6d 6d 65 72 2e 20 20 54 68 69 73 20 61 6c  rammer.  This al
37d0: 6c 6f 77 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c  lows, for exampl
37e0: 65 2c 20 74 68 65 20 4c 49 4b 45 20 6f 70 65 72  e, the LIKE oper
37f0: 61 74 6f 72 20 74 6f 0a 20 20 20 20 62 65 20 63  ator to.    be c
3800: 68 61 6e 67 65 64 20 74 6f 20 62 65 20 63 61 73  hanged to be cas
3810: 65 20 73 65 6e 73 69 74 69 76 65 2e 3c 2f 6c 69  e sensitive.</li
3820: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
3830: 41 70 72 20 30 36 20 28 32 2e 34 2e 37 29 7d 20  Apr 06 (2.4.7)} 
3840: 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62  {.<li>Add the ab
3850: 69 6c 69 74 79 20 74 6f 20 70 75 74 20 54 41 42  ility to put TAB
3860: 4c 45 2e 2a 20 69 6e 20 74 68 65 20 63 6f 6c 75  LE.* in the colu
3870: 6d 6e 20 6c 69 73 74 20 6f 66 20 61 0a 20 20 20  mn list of a.   
3880: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
3890: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 6d  t.</li>.<li>Perm
38a0: 69 74 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d  it SELECT statem
38b0: 65 6e 74 73 20 77 69 74 68 6f 75 74 20 61 20 46  ents without a F
38c0: 52 4f 4d 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e  ROM clause.</li>
38d0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c  .<li>Added the <
38e0: 62 3e 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f  b>last_insert_ro
38f0: 77 69 64 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75  wid()</b> SQL fu
3900: 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  nction.</li>.<li
3910: 3e 44 6f 20 6e 6f 74 20 63 6f 75 6e 74 20 72 6f  >Do not count ro
3920: 77 73 20 77 68 65 72 65 20 74 68 65 20 49 47 4e  ws where the IGN
3930: 4f 52 45 20 63 6f 6e 66 6c 69 63 74 20 72 65 73  ORE conflict res
3940: 75 6c 74 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e  ultion occurs in
3950: 0a 20 20 20 20 74 68 65 20 72 6f 77 20 63 6f 75  .    the row cou
3960: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  nt.</li>.<li>Mak
3970: 65 20 73 75 72 65 20 66 75 6e 63 74 69 6f 6e 73  e sure functions
3980: 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20   expressions in 
3990: 74 68 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73  the VALUES claus
39a0: 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54 0a 20  e of an INSERT. 
39b0: 20 20 20 61 72 65 20 63 6f 72 72 65 63 74 2e 3c     are correct.<
39c0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
39d0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63 68 61  he <b>sqlite_cha
39e0: 6e 67 65 73 28 29 3c 2f 62 3e 20 41 50 49 20 66  nges()</b> API f
39f0: 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72  unction to retur
3a00: 6e 20 74 68 65 20 6e 75 6d 62 65 72 0a 20 20 20  n the number.   
3a10: 20 6f 66 20 72 6f 77 20 74 68 61 74 20 63 68 61   of row that cha
3a20: 6e 67 65 64 20 69 6e 20 74 68 65 20 6d 6f 73 74  nged in the most
3a30: 20 72 65 63 65 6e 74 20 6f 70 65 72 61 74 69 6f   recent operatio
3a40: 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  n.</li>.}..chng 
3a50: 7b 32 30 30 32 20 41 70 72 20 30 32 20 28 32 2e  {2002 Apr 02 (2.
3a60: 34 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  4.6)} {.<li>Bug 
3a70: 66 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68  fix: Correctly h
3a80: 61 6e 64 6c 65 20 74 65 72 6d 73 20 69 6e 20 74  andle terms in t
3a90: 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 20  he WHERE clause 
3aa0: 6f 66 20 61 20 6a 6f 69 6e 20 74 68 61 74 0a 20  of a join that. 
3ab0: 20 20 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69     do not contai
3ac0: 6e 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f  n a comparison o
3ad0: 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 7d 0a  perator.</li>.}.
3ae0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20  .chng {2002 Apr 
3af0: 30 31 20 28 32 2e 34 2e 35 29 7d 20 7b 0a 3c 6c  01 (2.4.5)} {.<l
3b00: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65  i>Bug fix: Corre
3b10: 63 74 6c 79 20 68 61 6e 64 6c 65 20 66 75 6e 63  ctly handle func
3b20: 74 69 6f 6e 73 20 74 68 61 74 20 61 70 70 65 61  tions that appea
3b30: 72 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63  r in the WHERE c
3b40: 6c 61 75 73 65 0a 20 20 20 20 6f 66 20 61 20 6a  lause.    of a j
3b50: 6f 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68  oin.</li>.<li>Wh
3b60: 65 6e 20 74 68 65 20 50 52 41 47 4d 41 20 76 64  en the PRAGMA vd
3b70: 62 65 5f 74 72 61 63 65 3d 4f 4e 20 69 73 20 73  be_trace=ON is s
3b80: 65 74 2c 20 63 6f 72 72 65 63 74 6c 79 20 70 72  et, correctly pr
3b90: 69 6e 74 20 74 68 65 20 50 33 20 6f 70 65 72 61  int the P3 opera
3ba0: 6e 64 0a 20 20 20 20 76 61 6c 75 65 20 77 68 65  nd.    value whe
3bb0: 6e 20 69 74 20 69 73 20 61 20 70 6f 69 6e 74 65  n it is a pointe
3bc0: 72 20 74 6f 20 61 20 73 74 72 75 63 74 75 72 65  r to a structure
3bd0: 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 70   rather than a p
3be0: 6f 69 6e 74 65 72 20 74 6f 0a 20 20 20 20 61 20  ointer to.    a 
3bf0: 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69  string.</li>.<li
3c00: 3e 57 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 20  >When inserting 
3c10: 61 6e 20 65 78 70 6c 69 63 69 74 20 4e 55 4c 4c  an explicit NULL
3c20: 20 69 6e 74 6f 20 61 6e 20 49 4e 54 45 47 45 52   into an INTEGER
3c30: 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 63 6f   PRIMARY KEY, co
3c40: 6e 76 65 72 74 0a 20 20 20 20 74 68 65 20 4e 55  nvert.    the NU
3c50: 4c 4c 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20  LL value into a 
3c60: 75 6e 69 71 75 65 20 6b 65 79 20 61 75 74 6f 6d  unique key autom
3c70: 61 74 69 63 61 6c 6c 79 2e 3c 2f 6c 69 3e 0a 7d  atically.</li>.}
3c80: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72  ..chng {2002 Mar
3c90: 20 32 34 20 28 32 2e 34 2e 34 29 7d 20 7b 0a 3c   24 (2.4.4)} {.<
3ca0: 6c 69 3e 41 6c 6c 6f 77 20 22 56 49 45 57 22 20  li>Allow "VIEW" 
3cb0: 74 6f 20 62 65 20 61 20 63 6f 6c 75 6d 6e 20 6e  to be a column n
3cc0: 61 6d 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ame</li>.<li>Add
3cd0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43  ed support for C
3ce0: 41 53 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20  ASE expressions 
3cf0: 28 70 61 74 63 68 20 66 72 6f 6d 20 44 61 6e 20  (patch from Dan 
3d00: 4b 65 6e 6e 65 64 79 29 3c 2f 6c 69 3e 0a 3c 6c  Kennedy)</li>.<l
3d10: 69 3e 41 64 64 65 64 20 52 50 4d 53 20 74 6f 20  i>Added RPMS to 
3d20: 74 68 65 20 64 65 6c 69 76 65 72 79 20 28 70 61  the delivery (pa
3d30: 74 63 68 65 73 20 66 72 6f 6d 20 44 6f 75 67 20  tches from Doug 
3d40: 48 65 6e 72 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  Henry)</li>.<li>
3d50: 46 69 78 20 74 79 70 6f 73 20 69 6e 20 74 68 65  Fix typos in the
3d60: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f   documentation</
3d70: 6c 69 3e 0a 3c 6c 69 3e 43 75 74 20 6f 76 65 72  li>.<li>Cut over
3d80: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d   configuration m
3d90: 61 6e 61 67 65 6d 65 6e 74 20 74 6f 20 61 20 6e  anagement to a n
3da0: 65 77 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72  ew CVS repositor
3db0: 79 20 77 69 74 68 0a 20 20 20 20 69 74 73 20 6f  y with.    its o
3dc0: 77 6e 20 43 56 53 54 72 61 63 20 62 75 67 20 74  wn CVSTrac bug t
3dd0: 72 61 63 6b 69 6e 67 20 73 79 73 74 65 6d 2e 3c  racking system.<
3de0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3df0: 30 32 20 4d 61 72 20 32 32 20 28 32 2e 34 2e 33  02 Mar 22 (2.4.3
3e00: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
3e10: 75 67 20 69 6e 20 53 45 4c 45 43 54 20 74 68 61  ug in SELECT tha
3e20: 74 20 6f 63 63 75 72 73 20 77 68 65 6e 20 61 20  t occurs when a 
3e30: 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20  compound SELECT 
3e40: 69 73 20 75 73 65 64 20 61 73 20 61 0a 20 20 20  is used as a.   
3e50: 20 73 75 62 71 75 65 72 79 20 69 6e 20 74 68 65   subquery in the
3e60: 20 46 52 4f 4d 20 6f 66 20 61 20 53 45 4c 45 43   FROM of a SELEC
3e70: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  T.</li>.<li>The 
3e80: 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74 61  <b>sqlite_get_ta
3e90: 62 6c 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69  ble()</b> functi
3ea0: 6f 6e 20 6e 6f 77 20 72 65 74 75 72 6e 73 20 61  on now returns a
3eb0: 6e 20 65 72 72 6f 72 20 69 66 20 79 6f 75 0a 20  n error if you. 
3ec0: 20 20 20 67 69 76 65 20 69 74 20 74 77 6f 20 6f     give it two o
3ed0: 72 20 6d 6f 72 65 20 53 45 4c 45 43 54 73 20 74  r more SELECTs t
3ee0: 68 61 74 20 72 65 74 75 72 6e 20 64 69 66 66 65  hat return diffe
3ef0: 72 65 6e 74 20 6e 75 6d 62 65 72 73 20 6f 66 20  rent numbers of 
3f00: 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a  columns.</li>.}.
3f10: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20  .chng {2002 Mar 
3f20: 31 34 20 28 32 2e 34 2e 32 29 7d 20 7b 0a 3c 6c  14 (2.4.2)} {.<l
3f30: 69 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20 61  i>Bug fix: Fix a
3f40: 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c  n assertion fail
3f50: 75 72 65 20 74 68 61 74 20 6f 63 63 75 72 72 65  ure that occurre
3f60: 64 20 77 68 65 6e 20 52 4f 57 49 44 20 77 61 73  d when ROWID was
3f70: 20 61 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 69 6e   a column.    in
3f80: 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d   a SELECT statem
3f90: 65 6e 74 20 6f 6e 20 61 20 76 69 65 77 2e 3c 2f  ent on a view.</
3fa0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
3fb0: 20 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61   Fix an uninitia
3fc0: 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69  lized variable i
3fd0: 6e 20 74 68 65 20 56 44 42 45 20 74 68 61 74 20  n the VDBE that 
3fe0: 77 6f 75 6c 64 20 63 6f 75 6c 64 20 61 6e 0a 20  would could an. 
3ff0: 20 20 20 61 73 73 65 72 74 20 66 61 69 6c 75 72     assert failur
4000: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  e.</li>.<li>Make
4010: 20 74 68 65 20 6f 73 2e 68 20 68 65 61 64 65 72   the os.h header
4020: 20 66 69 6c 65 20 6d 6f 72 65 20 72 6f 62 75 73   file more robus
4030: 74 20 69 6e 20 64 65 74 65 63 74 69 6e 67 20 77  t in detecting w
4040: 68 65 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 20  hen the compile 
4050: 69 73 0a 20 20 20 20 66 6f 72 20 77 69 6e 64 6f  is.    for windo
4060: 77 73 20 61 6e 64 20 77 68 65 6e 20 69 74 20 69  ws and when it i
4070: 73 20 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c 69 3e  s for unix.</li>
4080: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
4090: 61 72 20 31 33 20 28 32 2e 34 2e 31 29 7d 20 7b  ar 13 (2.4.1)} {
40a0: 0a 3c 6c 69 3e 55 73 69 6e 67 20 61 6e 20 75 6e  .<li>Using an un
40b0: 6e 61 6d 65 64 20 73 75 62 71 75 65 72 79 20 69  named subquery i
40c0: 6e 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 20  n a FROM clause 
40d0: 77 6f 75 6c 64 20 63 61 75 73 65 20 61 20 73 65  would cause a se
40e0: 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  gfault.</li>.<li
40f0: 3e 54 68 65 20 70 61 72 73 65 72 20 6e 6f 77 20  >The parser now 
4100: 69 6e 73 69 73 74 73 20 6f 6e 20 73 65 65 69 6e  insists on seein
4110: 67 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 6f 72  g a semicolon or
4120: 20 74 68 65 20 65 6e 64 20 6f 66 20 69 6e 70 75   the end of inpu
4130: 74 20 62 65 66 6f 72 65 0a 20 20 20 20 65 78 65  t before.    exe
4140: 63 75 74 69 6e 67 20 61 20 73 74 61 74 65 6d 65  cuting a stateme
4150: 6e 74 2e 20 20 54 68 69 73 20 61 76 6f 69 64 73  nt.  This avoids
4160: 20 61 6e 20 61 63 63 69 64 65 6e 74 61 6c 20 64   an accidental d
4170: 69 73 61 73 74 65 72 20 69 66 20 74 68 65 0a 20  isaster if the. 
4180: 20 20 20 57 48 45 52 45 20 6b 65 79 77 6f 72 64     WHERE keyword
4190: 20 69 73 20 6d 69 73 73 70 65 6c 6c 65 64 20 69   is misspelled i
41a0: 6e 20 61 6e 20 55 50 44 41 54 45 20 6f 72 20 44  n an UPDATE or D
41b0: 45 4c 45 54 45 20 73 74 61 74 65 6d 65 6e 74 2e  ELETE statement.
41c0: 3c 2f 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67 20 7b  </li>.}...chng {
41d0: 32 30 30 32 20 4d 61 72 20 31 30 20 28 32 2e 34  2002 Mar 10 (2.4
41e0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
41f0: 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  e the name of th
4200: 65 20 73 61 6e 69 74 79 5f 63 68 65 63 6b 20 50  e sanity_check P
4210: 52 41 47 4d 41 20 74 6f 20 3c 62 3e 69 6e 74 65  RAGMA to <b>inte
4220: 67 72 69 74 79 5f 63 68 65 63 6b 3c 2f 62 3e 0a  grity_check</b>.
4230: 20 20 20 20 61 6e 64 20 6d 61 6b 65 20 69 74 20      and make it 
4240: 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 6c 6c  available in all
4250: 20 63 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69 3e 0a   compiles.</li>.
4260: 3c 6c 69 3e 53 45 4c 45 43 54 20 6d 69 6e 28 29  <li>SELECT min()
4270: 20 6f 72 20 6d 61 78 28 29 20 6f 66 20 61 6e 20   or max() of an 
4280: 69 6e 64 65 78 65 64 20 63 6f 6c 75 6d 6e 20 77  indexed column w
4290: 69 74 68 20 6e 6f 20 57 48 45 52 45 20 6f 72 20  ith no WHERE or 
42a0: 47 52 4f 55 50 20 42 59 0a 20 20 20 20 63 6c 61  GROUP BY.    cla
42b0: 75 73 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61  use is handled a
42c0: 73 20 61 20 73 70 65 63 69 61 6c 20 63 61 73 65  s a special case
42d0: 20 77 68 69 63 68 20 61 76 6f 69 64 73 20 61 20   which avoids a 
42e0: 63 6f 6d 70 6c 65 74 65 20 74 61 62 6c 65 20 73  complete table s
42f0: 63 61 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75  can.</li>.<li>Au
4300: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65  tomatically gene
4310: 72 61 74 65 64 20 52 4f 57 49 44 73 20 61 72 65  rated ROWIDs are
4320: 20 6e 6f 77 20 73 65 71 75 65 6e 74 69 61 6c 2e   now sequential.
4330: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
4340: 20 61 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d 6d 61   allow dot-comma
4350: 6e 64 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61  nds of the comma
4360: 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74 6f  nd-line shell to
4370: 20 6f 63 63 75 72 20 69 6e 20 74 68 65 0a 20 20   occur in the.  
4380: 20 20 6d 69 64 64 6c 65 20 6f 66 20 61 20 72 65    middle of a re
4390: 61 6c 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e 3c  al SQL command.<
43a0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 63  /li>.<li>Modific
43b0: 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 22 6c  ations to the "l
43c0: 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e  emon" parser gen
43d0: 65 72 61 74 6f 72 20 73 6f 20 74 68 61 74 20 74  erator so that t
43e0: 68 65 20 70 61 72 73 65 72 20 74 61 62 6c 65 73  he parser tables
43f0: 0a 20 20 20 20 61 72 65 20 34 20 74 69 6d 65 73  .    are 4 times
4400: 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 3c   smaller.</li>.<
4410: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
4420: 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e 65   for user-define
4430: 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6d 70 6c  d functions impl
4440: 65 6d 65 6e 74 65 64 20 69 6e 20 43 2e 3c 2f 6c  emented in C.</l
4450: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
4460: 70 6f 72 74 20 66 6f 72 20 6e 65 77 20 66 75 6e  port for new fun
4470: 63 74 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61 6c 65  ctions: <b>coale
4480: 73 63 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e 6c 6f  sce()</b>, <b>lo
4490: 77 65 72 28 29 3c 2f 62 3e 2c 0a 20 20 20 20 3c  wer()</b>,.    <
44a0: 62 3e 75 70 70 65 72 28 29 3c 2f 62 3e 2c 20 61  b>upper()</b>, a
44b0: 6e 64 20 3c 62 3e 72 61 6e 64 6f 6d 28 29 3c 2f  nd <b>random()</
44c0: 62 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  b>.<li>Added sup
44d0: 70 6f 72 74 20 66 6f 72 20 56 49 45 57 73 2e 3c  port for VIEWs.<
44e0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
44f0: 68 65 20 73 75 62 71 75 65 72 79 20 66 6c 61 74  he subquery flat
4500: 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 65 72  tening optimizer
4510: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66  .</li>.<li>Modif
4520: 69 65 64 20 74 68 65 20 42 2d 54 72 65 65 20 61  ied the B-Tree a
4530: 6e 64 20 50 61 67 65 72 20 6d 6f 64 75 6c 65 73  nd Pager modules
4540: 20 73 6f 20 74 68 61 74 20 64 69 73 6b 20 70 61   so that disk pa
4550: 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 0a  ges that do not.
4560: 20 20 20 20 63 6f 6e 74 61 69 6e 20 72 65 61 6c      contain real
4570: 20 64 61 74 61 20 28 66 72 65 65 20 70 61 67 65   data (free page
4580: 73 29 20 61 72 65 20 6e 6f 74 20 6a 6f 75 72 6e  s) are not journ
4590: 61 6c 6c 65 64 20 61 6e 64 20 61 72 65 20 6e 6f  alled and are no
45a0: 74 0a 20 20 20 20 77 72 69 74 74 65 6e 20 66 72  t.    written fr
45b0: 6f 6d 20 6d 65 6d 6f 72 79 20 62 61 63 6b 20 74  om memory back t
45c0: 6f 20 74 68 65 20 64 69 73 6b 20 77 68 65 6e 20  o the disk when 
45d0: 74 68 65 79 20 63 68 61 6e 67 65 2e 20 20 54 68  they change.  Th
45e0: 69 73 20 64 6f 65 73 20 6e 6f 74 20 0a 20 20 20  is does not .   
45f0: 20 69 6d 70 61 63 74 20 64 61 74 61 62 61 73 65   impact database
4600: 20 69 6e 74 65 67 72 69 74 79 2c 20 73 69 6e 63   integrity, sinc
4610: 65 20 74 68 65 0a 20 20 20 20 70 61 67 65 73 20  e the.    pages 
4620: 63 6f 6e 74 61 69 6e 20 6e 6f 20 72 65 61 6c 20  contain no real 
4630: 64 61 74 61 2c 20 62 75 74 20 69 74 20 64 6f 65  data, but it doe
4640: 73 20 6d 61 6b 65 20 6c 61 72 67 65 20 49 4e 53  s make large INS
4650: 45 52 54 20 6f 70 65 72 61 74 69 6f 6e 73 0a 20  ERT operations. 
4660: 20 20 20 61 62 6f 75 74 20 32 2e 35 20 74 69 6d     about 2.5 tim
4670: 65 73 20 66 61 73 74 65 72 20 61 6e 64 20 6c 61  es faster and la
4680: 72 67 65 20 44 45 4c 45 54 45 73 20 61 62 6f 75  rge DELETEs abou
4690: 74 20 35 20 74 69 6d 65 73 20 66 61 73 74 65 72  t 5 times faster
46a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65 20  .</li>.<li>Made 
46b0: 74 68 65 20 43 41 43 48 45 5f 53 49 5a 45 20 70  the CACHE_SIZE p
46c0: 72 61 67 6d 61 20 70 65 72 73 69 73 74 65 6e 74  ragma persistent
46d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
46e0: 74 68 65 20 53 59 4e 43 48 52 4f 4e 4f 55 53 20  the SYNCHRONOUS 
46f0: 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pragma</li>.<li>
4700: 46 69 78 65 64 20 61 20 62 75 67 20 74 68 61 74  Fixed a bug that
4710: 20 77 61 73 20 63 61 75 73 69 6e 67 20 75 70 64   was causing upd
4720: 61 74 65 73 20 74 6f 20 66 61 69 6c 20 69 6e 73  ates to fail ins
4730: 69 64 65 20 6f 66 20 74 72 61 6e 73 61 63 74 69  ide of transacti
4740: 6f 6e 73 20 77 68 65 6e 0a 20 20 20 20 74 68 65  ons when.    the
4750: 20 64 61 74 61 62 61 73 65 20 63 6f 6e 74 61 69   database contai
4760: 6e 65 64 20 61 20 74 65 6d 70 6f 72 61 72 79 20  ned a temporary 
4770: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  table.</li>.}..c
4780: 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31 38  hng {2002 Feb 18
4790: 20 28 32 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.3.3)} {.<li>
47a0: 41 6c 6c 6f 77 20 69 64 65 6e 74 69 66 69 65 72  Allow identifier
47b0: 73 20 74 6f 20 62 65 20 71 75 6f 74 65 64 20 69  s to be quoted i
47c0: 6e 20 73 71 75 61 72 65 20 62 72 61 63 6b 65 74  n square bracket
47d0: 73 2c 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69  s, for compatibi
47e0: 6c 69 74 79 0a 20 20 20 20 77 69 74 68 20 4d 53  lity.    with MS
47f0: 2d 41 63 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c  -Access.</li>.<l
4800: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
4810: 66 6f 72 20 73 75 62 2d 71 75 65 72 69 65 73 20  for sub-queries 
4820: 69 6e 20 74 68 65 20 46 52 4f 4d 20 63 6c 61 75  in the FROM clau
4830: 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c  se of a SELECT.<
4840: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65 66  /li>.<li>More ef
4850: 66 69 63 69 65 6e 74 20 69 6d 70 6c 65 6d 65 6e  ficient implemen
4860: 74 61 74 69 6f 6e 20 6f 66 20 73 71 6c 69 74 65  tation of sqlite
4870: 46 69 6c 65 45 78 69 73 74 73 28 29 20 75 6e 64  FileExists() und
4880: 65 72 20 57 69 6e 64 6f 77 73 2e 0a 20 20 20 20  er Windows..    
4890: 28 62 79 20 4a 6f 65 6c 20 4c 75 73 63 79 29 3c  (by Joel Luscy)<
48a0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 4c  /li>.<li>The VAL
48b0: 55 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e  UES clause of an
48c0: 20 49 4e 53 45 52 54 20 63 61 6e 20 6e 6f 77 20   INSERT can now 
48d0: 63 6f 6e 74 61 69 6e 20 65 78 70 72 65 73 73 69  contain expressi
48e0: 6f 6e 73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 20  ons, including. 
48f0: 20 20 20 73 63 61 6c 61 72 20 53 45 4c 45 43 54     scalar SELECT
4900: 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c   clauses.</li>.<
4910: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
4920: 20 66 6f 72 20 43 52 45 41 54 45 20 54 41 42 4c   for CREATE TABL
4930: 45 20 41 53 20 53 45 4c 45 43 54 3c 2f 6c 69 3e  E AS SELECT</li>
4940: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 72  .<li>Bug fix: Cr
4950: 65 61 74 69 6e 67 20 61 6e 64 20 64 72 6f 70 70  eating and dropp
4960: 69 6e 67 20 61 20 74 61 62 6c 65 20 61 6c 6c 20  ing a table all 
4970: 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 0a  within a single.
4980: 20 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e 20      transaction 
4990: 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 2e  was not working.
49a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
49b0: 30 30 32 20 46 65 62 20 31 34 20 28 32 2e 33 2e  002 Feb 14 (2.3.
49c0: 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  2)} {.<li>Bug fi
49d0: 78 3a 20 54 68 65 72 65 20 77 61 73 20 61 6e 20  x: There was an 
49e0: 69 6e 63 6f 72 72 65 63 74 20 61 73 73 65 72 74  incorrect assert
49f0: 28 29 20 69 6e 20 70 61 67 65 72 2e 63 2e 20 20  () in pager.c.  
4a00: 54 68 65 20 72 65 61 6c 20 63 6f 64 65 20 77 61  The real code wa
4a10: 73 0a 20 20 20 20 61 6c 6c 20 63 6f 72 72 65 63  s.    all correc
4a20: 74 20 28 61 73 20 66 61 72 20 61 73 20 69 73 20  t (as far as is 
4a30: 6b 6e 6f 77 6e 29 20 73 6f 20 65 76 65 72 79 74  known) so everyt
4a40: 68 69 6e 67 20 73 68 6f 75 6c 64 20 77 6f 72 6b  hing should work
4a50: 20 4f 4b 20 69 66 20 79 6f 75 0a 20 20 20 20 63   OK if you.    c
4a60: 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d 44 4e 44  ompile with -DND
4a70: 45 42 55 47 3d 31 2e 20 20 57 68 65 6e 20 61 73  EBUG=1.  When as
4a80: 73 65 72 74 73 20 61 72 65 20 6e 6f 74 20 64 69  serts are not di
4a90: 73 61 62 6c 65 64 2c 20 74 68 65 72 65 0a 20 20  sabled, there.  
4aa0: 20 20 63 6f 75 6c 64 20 62 65 20 61 20 66 61 75    could be a fau
4ab0: 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  lt.</li>.}..chng
4ac0: 20 7b 32 30 30 32 20 46 65 62 20 31 33 20 28 32   {2002 Feb 13 (2
4ad0: 2e 33 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .3.1)} {.<li>Bug
4ae0: 20 66 69 78 3a 20 41 6e 20 61 73 73 65 72 74 69   fix: An asserti
4af0: 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20 69  on was failing i
4b00: 66 20 22 50 52 41 47 4d 41 20 66 75 6c 6c 5f 63  f "PRAGMA full_c
4b10: 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b 22  olumn_names=ON;"
4b20: 20 77 61 73 0a 20 20 20 20 73 65 74 20 61 6e 64   was.    set and
4b30: 20 79 6f 75 20 64 69 64 20 61 20 71 75 65 72 79   you did a query
4b40: 20 74 68 61 74 20 75 73 65 64 20 61 20 72 6f 77   that used a row
4b50: 69 64 2c 20 6c 69 6b 65 20 74 68 69 73 3a 20 20  id, like this:  
4b60: 0a 20 20 20 20 22 53 45 4c 45 43 54 20 72 6f 77  .    "SELECT row
4b70: 69 64 2c 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22 2e  id, * FROM ...".
4b80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4b90: 30 30 32 20 4a 61 6e 20 33 30 20 28 32 2e 33 2e  002 Jan 30 (2.3.
4ba0: 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  0)} {.<li>Fix a 
4bb0: 73 65 72 69 6f 75 73 20 62 75 67 20 69 6e 20 74  serious bug in t
4bc0: 68 65 20 49 4e 53 45 52 54 20 63 6f 6d 6d 61 6e  he INSERT comman
4bd0: 64 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73  d which was caus
4be0: 69 6e 67 20 64 61 74 61 20 74 6f 20 67 6f 0a 20  ing data to go. 
4bf0: 20 20 20 69 6e 74 6f 20 74 68 65 20 77 72 6f 6e     into the wron
4c00: 67 20 63 6f 6c 75 6d 6e 73 20 69 66 20 74 68 65  g columns if the
4c10: 20 64 61 74 61 20 73 6f 75 72 63 65 20 77 61 73   data source was
4c20: 20 61 20 53 45 4c 45 43 54 20 61 6e 64 20 74 68   a SELECT and th
4c30: 65 20 49 4e 53 45 52 54 0a 20 20 20 20 63 6c 61  e INSERT.    cla
4c40: 75 73 65 73 20 73 70 65 63 69 66 69 65 64 20 69  uses specified i
4c50: 74 73 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 73 6f  ts columns in so
4c60: 6d 65 20 6f 72 64 65 72 20 6f 74 68 65 72 20 74  me order other t
4c70: 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 2e  han the default.
4c80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
4c90: 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72  the ability to r
4ca0: 65 73 6f 6c 76 65 20 63 6f 6e 73 74 72 61 69 6e  esolve constrain
4cb0: 74 20 63 6f 6e 66 6c 69 63 74 73 20 69 73 20 77  t conflicts is w
4cc0: 61 79 73 20 6f 74 68 65 72 20 74 68 61 6e 0a 20  ays other than. 
4cd0: 20 20 20 61 6e 20 61 62 6f 72 74 20 61 6e 64 20     an abort and 
4ce0: 72 6f 6c 6c 62 61 63 6b 2e 20 20 53 65 65 20 74  rollback.  See t
4cf0: 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  he documentation
4d00: 20 6f 6e 20 74 68 65 20 22 4f 4e 20 43 4f 4e 46   on the "ON CONF
4d10: 4c 49 43 54 22 0a 20 20 20 20 63 6c 61 75 73 65  LICT".    clause
4d20: 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 3c 2f 6c   for details.</l
4d30: 69 3e 0a 3c 6c 69 3e 54 65 6d 70 6f 72 61 72 79  i>.<li>Temporary
4d40: 20 66 69 6c 65 73 20 61 72 65 20 6e 6f 77 20 61   files are now a
4d50: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c  utomatically del
4d60: 65 74 65 64 20 62 79 20 74 68 65 20 6f 70 65 72  eted by the oper
4d70: 61 74 69 6e 67 20 73 79 73 74 65 6d 0a 20 20 20  ating system.   
4d80: 20 77 68 65 6e 20 63 6c 6f 73 65 64 2e 20 20 54   when closed.  T
4d90: 68 65 72 65 20 61 72 65 20 6e 6f 20 6d 6f 72 65  here are no more
4da0: 20 64 61 6e 67 6c 69 6e 67 20 74 65 6d 70 6f 72   dangling tempor
4db0: 61 72 79 20 66 69 6c 65 73 20 6f 6e 20 61 20 70  ary files on a p
4dc0: 72 6f 67 72 61 6d 0a 20 20 20 20 63 72 61 73 68  rogram.    crash
4dd0: 2e 20 20 28 49 66 20 74 68 65 20 4f 53 20 63 72  .  (If the OS cr
4de0: 61 73 68 65 73 2c 20 66 73 63 6b 20 77 69 6c 6c  ashes, fsck will
4df0: 20 64 65 6c 65 74 65 20 74 68 65 20 66 69 6c 65   delete the file
4e00: 20 61 66 74 65 72 20 72 65 62 6f 6f 74 20 0a 20   after reboot . 
4e10: 20 20 20 75 6e 64 65 72 20 55 6e 69 78 2e 20 20     under Unix.  
4e20: 49 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77 68  I do not know wh
4e30: 61 74 20 68 61 70 70 65 6e 73 20 75 6e 64 65 72  at happens under
4e40: 20 57 69 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e 0a   Windows.)</li>.
4e50: 3c 6c 69 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f 6e  <li>NOT NULL con
4e60: 73 74 72 61 69 6e 74 73 20 61 72 65 20 68 6f 6e  straints are hon
4e70: 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ored.</li>.<li>T
4e80: 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20  he COPY command 
4e90: 70 75 74 73 20 4e 55 4c 4c 73 20 69 6e 20 63 6f  puts NULLs in co
4ea0: 6c 75 6d 6e 73 20 77 68 6f 73 65 20 64 61 74 61  lumns whose data
4eb0: 20 69 73 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a 3c   is '\N'.</li>.<
4ec0: 6c 69 3e 49 6e 20 74 68 65 20 43 4f 50 59 20 63  li>In the COPY c
4ed0: 6f 6d 6d 61 6e 64 2c 20 62 61 63 6b 73 6c 61 73  ommand, backslas
4ee0: 68 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65  h can now be use
4ef0: 64 20 74 6f 20 65 73 63 61 70 65 20 61 20 6e 65  d to escape a ne
4f00: 77 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  wline.</li>.<li>
4f10: 41 64 64 65 64 20 74 68 65 20 53 41 4e 49 54 59  Added the SANITY
4f20: 5f 43 48 45 43 4b 20 70 72 61 67 6d 61 2e 3c 2f  _CHECK pragma.</
4f30: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4f40: 32 20 4a 61 6e 20 32 38 20 28 32 2e 32 2e 35 29  2 Jan 28 (2.2.5)
4f50: 7d 20 7b 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61 6e  } {.<li>Importan
4f60: 74 20 62 75 67 20 66 69 78 3a 20 74 68 65 20 49  t bug fix: the I
4f70: 4e 20 6f 70 65 72 61 74 6f 72 20 77 61 73 20 6e  N operator was n
4f80: 6f 74 20 77 6f 72 6b 69 6e 67 20 69 66 20 65 69  ot working if ei
4f90: 74 68 65 72 20 74 68 65 0a 20 20 20 20 6c 65 66  ther the.    lef
4fa0: 74 2d 68 61 6e 64 20 6f 72 20 72 69 67 68 74 2d  t-hand or right-
4fb0: 68 61 6e 64 20 73 69 64 65 20 77 61 73 20 64 65  hand side was de
4fc0: 72 69 76 65 64 20 66 72 6f 6d 20 61 6e 20 49 4e  rived from an IN
4fd0: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45  TEGER PRIMARY KE
4fe0: 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e  Y.</li>.<li>Do n
4ff0: 6f 74 20 65 73 63 61 70 65 20 74 68 65 20 62 61  ot escape the ba
5000: 63 6b 73 6c 61 73 68 20 27 5c 27 20 63 68 61 72  ckslash '\' char
5010: 61 63 74 65 72 20 69 6e 20 74 68 65 20 6f 75 74  acter in the out
5020: 70 75 74 20 6f 66 20 74 68 65 0a 20 20 20 20 3c  put of the.    <
5030: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 63 6f 6d  b>sqlite</b> com
5040: 6d 61 6e 64 2d 6c 69 6e 65 20 61 63 63 65 73 73  mand-line access
5050: 20 70 72 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a 7d   program.</li>.}
5060: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e  ..chng {2002 Jan
5070: 20 32 32 20 28 32 2e 32 2e 34 29 7d 20 7b 0a 3c   22 (2.2.4)} {.<
5080: 6c 69 3e 54 68 65 20 6c 61 62 65 6c 20 74 6f 20  li>The label to 
5090: 74 68 65 20 72 69 67 68 74 20 6f 66 20 61 6e 20  the right of an 
50a0: 41 53 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e  AS in the column
50b0: 20 6c 69 73 74 20 6f 66 20 61 20 53 45 4c 45 43   list of a SELEC
50c0: 54 20 63 61 6e 20 6e 6f 77 0a 20 20 20 20 62 65  T can now.    be
50d0: 20 75 73 65 64 20 61 73 20 70 61 72 74 20 6f 66   used as part of
50e0: 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69   an expression i
50f0: 6e 20 74 68 65 20 57 48 45 52 45 2c 20 4f 52 44  n the WHERE, ORD
5100: 45 52 20 42 59 2c 20 47 52 4f 55 50 20 42 59 2c  ER BY, GROUP BY,
5110: 20 61 6e 64 2f 6f 72 0a 20 20 20 20 48 41 56 49   and/or.    HAVI
5120: 4e 47 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e  NG clauses.</li>
5130: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
5140: 6e 20 74 68 65 20 3c 62 3e 2d 73 65 70 61 72 61  n the <b>-separa
5150: 74 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d  tor</b> command-
5160: 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 74 6f 20 74  line option to t
5170: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
5180: 0a 20 20 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c  .    command.</l
5190: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f  i>.<li>Fix a pro
51a0: 62 6c 65 6d 20 77 69 74 68 20 74 68 65 20 73 6f  blem with the so
51b0: 72 74 20 6f 72 64 65 72 20 77 68 65 6e 20 63 6f  rt order when co
51c0: 6d 70 61 72 69 6e 67 20 75 70 70 65 72 2d 63 61  mparing upper-ca
51d0: 73 65 20 73 74 72 69 6e 67 73 20 61 67 61 69 6e  se strings again
51e0: 73 74 0a 20 20 20 20 63 68 61 72 61 63 74 65 72  st.    character
51f0: 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 27  s greater than '
5200: 5a 27 20 62 75 74 20 6c 65 73 73 20 74 68 61 6e  Z' but less than
5210: 20 27 61 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52   'a'.</li>.<li>R
5220: 65 70 6f 72 74 20 61 6e 20 65 72 72 6f 72 20 69  eport an error i
5230: 66 20 61 6e 20 4f 52 44 45 52 20 42 59 20 6f 72  f an ORDER BY or
5240: 20 47 52 4f 55 50 20 42 59 20 65 78 70 72 65 73   GROUP BY expres
5250: 73 69 6f 6e 20 69 73 20 63 6f 6e 73 74 61 6e 74  sion is constant
5260: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5270: 32 30 30 32 20 4a 61 6e 20 31 36 20 28 32 2e 32  2002 Jan 16 (2.2
5280: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 77  .3)} {.<li>Fix w
5290: 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 20  arning messages 
52a0: 69 6e 20 56 43 2b 2b 20 37 2e 30 2e 20 20 28 50  in VC++ 7.0.  (P
52b0: 61 74 63 68 65 73 20 66 72 6f 6d 20 6e 69 63 6f  atches from nico
52c0: 6c 61 73 33 35 32 30 30 31 29 3c 2f 6c 69 3e 0a  las352001)</li>.
52d0: 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6c 69 62  <li>Make the lib
52e0: 72 61 72 79 20 74 68 72 65 61 64 2d 73 61 66 65  rary thread-safe
52f0: 2e 20 20 28 54 68 65 20 63 6f 64 65 20 69 73 20  .  (The code is 
5300: 74 68 65 72 65 20 61 6e 64 20 61 70 70 65 61 72  there and appear
5310: 73 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20 62 75  s to work.    bu
5320: 74 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 73  t has not been s
5330: 74 72 65 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a 3c  tressed.)</li>.<
5340: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65 77  li>Added the new
5350: 20 3c 62 3e 73 71 6c 69 74 65 5f 6c 61 73 74 5f   <b>sqlite_last_
5360: 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f  insert_rowid()</
5370: 62 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 2e  b> API function.
5380: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5390: 30 30 32 20 4a 61 6e 20 31 33 20 28 32 2e 32 2e  002 Jan 13 (2.2.
53a0: 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  2)} {.<li>Bug fi
53b0: 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e 20  x: An assertion 
53c0: 77 61 73 20 66 61 69 6c 69 6e 67 20 77 68 65 6e  was failing when
53d0: 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62   a temporary tab
53e0: 6c 65 20 77 69 74 68 20 61 6e 20 69 6e 64 65 78  le with an index
53f0: 0a 20 20 20 20 68 61 64 20 74 68 65 20 73 61 6d  .    had the sam
5400: 65 20 6e 61 6d 65 20 61 73 20 61 20 70 65 72 6d  e name as a perm
5410: 61 6e 65 6e 74 20 74 61 62 6c 65 20 63 72 65 61  anent table crea
5420: 74 65 64 20 62 79 20 61 20 73 65 70 61 72 61 74  ted by a separat
5430: 65 20 70 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e 0a  e process.</li>.
5440: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 55 70 64  <li>Bug fix: Upd
5450: 61 74 65 73 20 74 6f 20 74 61 62 6c 65 73 20 63  ates to tables c
5460: 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20 49 4e 54  ontaining an INT
5470: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59  EGER PRIMARY KEY
5480: 20 61 6e 64 20 61 6e 0a 20 20 20 20 69 6e 64 65   and an.    inde
5490: 78 20 63 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f 6c  x could fail.</l
54a0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
54b0: 20 4a 61 6e 20 39 20 28 32 2e 32 2e 31 29 7d 20   Jan 9 (2.2.1)} 
54c0: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41  {.<li>Bug fix: A
54d0: 6e 20 61 74 74 65 6d 70 74 20 74 6f 20 64 65 6c  n attempt to del
54e0: 65 74 65 20 61 20 73 69 6e 67 6c 65 20 72 6f 77  ete a single row
54f0: 20 6f 66 20 61 20 74 61 62 6c 65 20 77 69 74 68   of a table with
5500: 20 61 20 57 48 45 52 45 0a 20 20 20 20 63 6c 61   a WHERE.    cla
5510: 75 73 65 20 6f 66 20 22 52 4f 57 49 44 3d 78 22  use of "ROWID=x"
5520: 20 77 68 65 6e 20 6e 6f 20 73 75 63 68 20 72 6f   when no such ro
5530: 77 69 64 20 65 78 69 73 74 73 20 77 61 73 20 63  wid exists was c
5540: 61 75 73 69 6e 67 20 61 6e 20 65 72 72 6f 72 2e  ausing an error.
5550: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
5560: 78 3a 20 50 61 73 73 69 6e 67 20 69 6e 20 61 20  x: Passing in a 
5570: 4e 55 4c 4c 20 61 73 20 74 68 65 20 33 72 64 20  NULL as the 3rd 
5580: 70 61 72 61 6d 65 74 65 72 20 74 6f 20 3c 62 3e  parameter to <b>
5590: 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 3c 2f 62  sqlite_open()</b
55a0: 3e 0a 20 20 20 20 77 6f 75 6c 64 20 73 6f 6d 65  >.    would some
55b0: 74 69 6d 65 73 20 63 61 75 73 65 20 61 20 63 6f  times cause a co
55c0: 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69  redump.</li>.<li
55d0: 3e 42 75 67 20 66 69 78 3a 20 44 52 4f 50 20 54  >Bug fix: DROP T
55e0: 41 42 4c 45 20 66 6f 6c 6c 6f 77 65 64 20 62 79  ABLE followed by
55f0: 20 61 20 43 52 45 41 54 45 20 54 41 42 4c 45 20   a CREATE TABLE 
5600: 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61  with the same na
5610: 6d 65 20 61 6c 6c 0a 20 20 20 20 77 69 74 68 69  me all.    withi
5620: 6e 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73  n a single trans
5630: 61 63 74 69 6f 6e 20 77 61 73 20 63 61 75 73 69  action was causi
5640: 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f  ng a coredump.</
5650: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65  li>.<li>Makefile
5660: 20 75 70 64 61 74 65 73 20 66 72 6f 6d 20 41 2e   updates from A.
5670: 20 52 6f 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a 7d   Rottmann</li>.}
5680: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63  ..chng {2001 Dec
5690: 20 32 32 20 28 32 2e 32 2e 30 29 7d 20 7b 0a 3c   22 (2.2.0)} {.<
56a0: 6c 69 3e 43 6f 6c 75 6d 6e 73 20 6f 66 20 74 79  li>Columns of ty
56b0: 70 65 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41  pe INTEGER PRIMA
56c0: 52 59 20 4b 45 59 20 61 72 65 20 61 63 74 75 61  RY KEY are actua
56d0: 6c 6c 79 20 75 73 65 64 20 61 73 20 74 68 65 20  lly used as the 
56e0: 70 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 20  primary.    key 
56f0: 69 6e 20 75 6e 64 65 72 6c 79 69 6e 67 20 42 2d  in underlying B-
5700: 54 72 65 65 20 72 65 70 72 65 73 65 6e 74 61 74  Tree representat
5710: 69 6f 6e 20 6f 66 20 74 68 65 20 74 61 62 6c 65  ion of the table
5720: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65 72  .</li>.<li>Sever
5730: 61 6c 20 6f 62 73 63 75 72 65 2c 20 75 6e 72 65  al obscure, unre
5740: 6c 61 74 65 64 20 62 75 67 73 20 77 65 72 65 20  lated bugs were 
5750: 66 6f 75 6e 64 20 61 6e 64 20 66 69 78 65 64 20  found and fixed 
5760: 77 68 69 6c 65 20 0a 20 20 20 20 69 6d 70 6c 65  while .    imple
5770: 6d 65 6e 74 65 64 20 74 68 65 20 69 6e 74 65 67  mented the integ
5780: 65 72 20 70 72 69 6d 61 72 79 20 6b 65 79 20 63  er primary key c
5790: 68 61 6e 67 65 20 6f 66 20 74 68 65 20 70 72 65  hange of the pre
57a0: 76 69 6f 75 73 20 62 75 6c 6c 65 74 2e 3c 2f 6c  vious bullet.</l
57b0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
57c0: 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65 63   ability to spec
57d0: 69 66 79 20 22 2a 22 20 61 73 20 70 61 72 74 20  ify "*" as part 
57e0: 6f 66 20 61 20 6c 61 72 67 65 72 20 63 6f 6c 75  of a larger colu
57f0: 6d 6e 20 6c 69 73 74 20 69 6e 0a 20 20 20 20 74  mn list in.    t
5800: 68 65 20 72 65 73 75 6c 74 20 73 65 63 74 69 6f  he result sectio
5810: 6e 20 6f 66 20 61 20 53 45 4c 45 43 54 20 73 74  n of a SELECT st
5820: 61 74 65 6d 65 6e 74 2e 20 20 46 6f 72 20 65 78  atement.  For ex
5830: 61 6d 70 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62 72  ample:.    <nobr
5840: 3e 22 3c 62 3e 53 45 4c 45 43 54 20 72 6f 77 69  >"<b>SELECT rowi
5850: 64 2c 20 2a 20 46 52 4f 4d 20 74 61 62 6c 65 31  d, * FROM table1
5860: 3b 3c 2f 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c 2f  ;</b>"</nobr>.</
5870: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20  li>.<li>Updates 
5880: 74 6f 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20  to comments and 
5890: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f  documentation.</
58a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
58b0: 31 20 44 65 63 20 31 34 20 28 32 2e 31 2e 37 29  1 Dec 14 (2.1.7)
58c0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
58d0: 67 20 69 6e 20 3c 62 3e 43 52 45 41 54 45 20 54  g in <b>CREATE T
58e0: 45 4d 50 4f 52 41 52 59 20 54 41 42 4c 45 3c 2f  EMPORARY TABLE</
58f0: 62 3e 20 77 68 69 63 68 20 77 61 73 20 63 61 75  b> which was cau
5900: 73 69 6e 67 20 74 68 65 0a 20 20 20 20 74 61 62  sing the.    tab
5910: 6c 65 20 74 6f 20 62 65 20 69 6e 69 74 69 61 6c  le to be initial
5920: 6c 79 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20  ly allocated in 
5930: 74 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73  the main databas
5940: 65 20 66 69 6c 65 20 69 6e 73 74 65 61 64 0a 20  e file instead. 
5950: 20 20 20 6f 66 20 69 6e 20 74 68 65 20 73 65 70     of in the sep
5960: 61 72 61 74 65 20 74 65 6d 70 6f 72 61 72 79 20  arate temporary 
5970: 66 69 6c 65 2e 20 20 54 68 69 73 20 62 75 67 20  file.  This bug 
5980: 63 6f 75 6c 64 20 63 61 75 73 65 20 74 68 65 20  could cause the 
5990: 6c 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20 73  library.    to s
59a0: 75 66 66 65 72 20 61 6e 20 61 73 73 65 72 74 69  uffer an asserti
59b0: 6f 6e 20 66 61 69 6c 75 72 65 20 61 6e 64 20 69  on failure and i
59c0: 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 22 70  t could cause "p
59d0: 61 67 65 20 6c 65 61 6b 73 22 20 69 6e 20 74 68  age leaks" in th
59e0: 65 0a 20 20 20 20 6d 61 69 6e 20 64 61 74 61 62  e.    main datab
59f0: 61 73 65 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46 69  ase file..<li>Fi
5a00: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 62  x a bug in the b
5a10: 2d 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 20  -tree subsystem 
5a20: 74 68 61 74 20 63 6f 75 6c 64 20 73 6f 6d 65 74  that could somet
5a30: 69 6d 65 73 20 63 61 75 73 65 20 74 68 65 20 66  imes cause the f
5a40: 69 72 73 74 0a 20 20 20 20 72 6f 77 20 6f 66 20  irst.    row of 
5a50: 61 20 74 61 62 6c 65 20 74 6f 20 62 65 20 72 65  a table to be re
5a60: 70 65 61 74 65 64 20 64 75 72 69 6e 67 20 61 20  peated during a 
5a70: 64 61 74 61 62 61 73 65 20 73 63 61 6e 2e 3c 2f  database scan.</
5a80: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
5a90: 31 20 44 65 63 20 31 34 20 28 32 2e 31 2e 36 29  1 Dec 14 (2.1.6)
5aa0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20  } {.<li>Fix the 
5ab0: 6c 6f 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73  locking mechanis
5ac0: 6d 20 79 65 74 20 61 67 61 69 6e 20 74 6f 20 70  m yet again to p
5ad0: 72 65 76 65 6e 74 0a 20 20 20 20 3c 62 3e 73 71  revent.    <b>sq
5ae0: 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20  lite_exec()</b> 
5af0: 66 72 6f 6d 20 72 65 74 75 72 6e 69 6e 67 20 53  from returning S
5b00: 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20  QLITE_PROTOCOL. 
5b10: 20 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79     unnecessarily
5b20: 2e 20 20 54 68 69 73 20 74 69 6d 65 20 74 68 65  .  This time the
5b30: 20 62 75 67 20 77 61 73 20 61 20 72 61 63 65 20   bug was a race 
5b40: 63 6f 6e 64 69 74 69 6f 6e 20 69 6e 0a 20 20 20  condition in.   
5b50: 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 63 6f 64   the locking cod
5b60: 65 2e 20 20 54 68 69 73 20 63 68 61 6e 67 65 20  e.  This change 
5b70: 65 66 66 65 63 74 73 20 62 6f 74 68 20 50 4f 53  effects both POS
5b80: 49 58 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 75  IX and Windows u
5b90: 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  sers.</li>.}..ch
5ba0: 6e 67 20 7b 32 30 30 31 20 44 65 63 20 36 20 28  ng {2001 Dec 6 (
5bb0: 32 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.1.5)} {.<li>Fi
5bc0: 78 20 66 6f 72 20 61 6e 6f 74 68 65 72 20 70 72  x for another pr
5bd0: 6f 62 6c 65 6d 20 28 75 6e 72 65 6c 61 74 65 64  oblem (unrelated
5be0: 20 74 6f 20 74 68 65 20 6f 6e 65 20 66 69 78 65   to the one fixe
5bf0: 64 20 69 6e 20 32 2e 31 2e 34 29 20 0a 20 20 20  d in 2.1.4) .   
5c00: 20 74 68 61 74 20 73 6f 6d 65 74 69 6d 65 73 20   that sometimes 
5c10: 63 61 75 73 65 73 20 3c 62 3e 73 71 6c 69 74 65  causes <b>sqlite
5c20: 5f 65 78 65 63 28 29 3c 2f 62 3e 20 74 6f 20 72  _exec()</b> to r
5c30: 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f  eturn SQLITE_PRO
5c40: 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65  TOCOL.    unnece
5c50: 73 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74  ssarily.  This t
5c60: 69 6d 65 20 74 68 65 20 62 75 67 20 77 61 73 0a  ime the bug was.
5c70: 20 20 20 20 69 6e 20 74 68 65 20 50 4f 53 49 58      in the POSIX
5c80: 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 61 6e   locking code an
5c90: 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 65 66 66  d should not eff
5ca0: 65 63 74 20 77 69 6e 64 6f 77 73 20 75 73 65 72  ect windows user
5cb0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
5cc0: 7b 32 30 30 31 20 44 65 63 20 34 20 28 32 2e 31  {2001 Dec 4 (2.1
5cd0: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65 74  .4)} {.<li>Somet
5ce0: 69 6d 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65  imes <b>sqlite_e
5cf0: 78 65 63 28 29 3c 2f 62 3e 20 77 6f 75 6c 64 20  xec()</b> would 
5d00: 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52  return SQLITE_PR
5d10: 4f 54 4f 43 4f 4c 20 77 68 65 6e 20 69 74 0a 20  OTOCOL when it. 
5d20: 20 20 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72     should have r
5d30: 65 74 75 72 6e 65 64 20 53 51 4c 49 54 45 5f 42  eturned SQLITE_B
5d40: 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  USY.</li>.<li>Th
5d50: 65 20 66 69 78 20 74 6f 20 74 68 65 20 70 72 65  e fix to the pre
5d60: 76 69 6f 75 73 20 62 75 67 20 75 6e 63 6f 76 65  vious bug uncove
5d70: 72 65 64 20 61 20 64 65 61 64 6c 6f 63 6b 20 77  red a deadlock w
5d80: 68 69 63 68 20 77 61 73 20 61 6c 73 6f 0a 20 20  hich was also.  
5d90: 20 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c    fixed.</li>.<l
5da0: 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74  i>Add the abilit
5db0: 79 20 74 6f 20 70 75 74 20 61 20 73 69 6e 67 6c  y to put a singl
5dc0: 65 20 2e 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68  e .command in th
5dd0: 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e  e second argumen
5de0: 74 0a 20 20 20 20 6f 66 20 74 68 65 20 73 71 6c  t.    of the sql
5df0: 69 74 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c  ite shell</li>.<
5e00: 6c 69 3e 55 70 64 61 74 65 73 20 74 6f 20 74 68  li>Updates to th
5e10: 65 20 46 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  e FAQ</li>.}..ch
5e20: 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 33 20  ng {2001 Nov 23 
5e30: 28 32 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.1.3)} {.<li>F
5e40: 69 78 20 74 68 65 20 62 65 68 61 76 69 6f 72 20  ix the behavior 
5e50: 6f 66 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70  of comparison op
5e60: 65 72 61 74 6f 72 73 20 0a 20 20 20 20 28 65 78  erators .    (ex
5e70: 3a 20 22 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c 20  : "<b>&lt</b>", 
5e80: 22 3c 62 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74 63  "<b>==</b>", etc
5e90: 2e 29 0a 20 20 20 20 73 6f 20 74 68 61 74 20 74  .).    so that t
5ea0: 68 65 79 20 61 72 65 20 63 6f 6e 73 69 73 74 65  hey are consiste
5eb0: 6e 74 20 77 69 74 68 20 74 68 65 20 6f 72 64 65  nt with the orde
5ec0: 72 20 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20  r of entries in 
5ed0: 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c  an index.</li>.<
5ee0: 6c 69 3e 43 6f 72 72 65 63 74 20 68 61 6e 64 6c  li>Correct handl
5ef0: 69 6e 67 20 6f 66 20 69 6e 74 65 67 65 72 73 20  ing of integers 
5f00: 69 6e 20 53 51 4c 20 65 78 70 72 65 73 73 69 6f  in SQL expressio
5f10: 6e 73 20 74 68 61 74 20 61 72 65 20 6c 61 72 67  ns that are larg
5f20: 65 72 20 74 68 61 6e 0a 20 20 20 20 77 68 61 74  er than.    what
5f30: 20 63 61 6e 20 62 65 20 72 65 70 72 65 73 65 6e   can be represen
5f40: 74 65 64 20 62 79 20 74 68 65 20 6d 61 63 68 69  ted by the machi
5f50: 6e 65 20 69 6e 74 65 67 65 72 2e 3c 2f 6c 69 3e  ne integer.</li>
5f60: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e  .}..chng {2001 N
5f70: 6f 76 20 32 32 20 28 32 2e 31 2e 32 29 7d 20 7b  ov 22 (2.1.2)} {
5f80: 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20  .<li>Changes to 
5f90: 73 75 70 70 6f 72 74 20 36 34 2d 62 69 74 20 61  support 64-bit a
5fa0: 72 63 68 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c  rchitectures.</l
5fb0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
5fc0: 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20   in the locking 
5fd0: 70 72 6f 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a 3c  protocol.</li>.<
5fe0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
5ff0: 74 20 63 6f 75 6c 64 20 28 72 61 72 65 6c 79 29  t could (rarely)
6000: 20 63 61 75 73 65 20 74 68 65 20 64 61 74 61 62   cause the datab
6010: 61 73 65 20 74 6f 20 62 65 63 6f 6d 65 20 0a 20  ase to become . 
6020: 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20 61 66     unreadable af
6030: 74 65 72 20 61 20 44 52 4f 50 20 54 41 42 4c 45  ter a DROP TABLE
6040: 20 64 75 65 20 74 6f 20 63 6f 72 72 75 70 74 69   due to corrupti
6050: 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 49 54 45  on to the SQLITE
6060: 5f 4d 41 53 54 45 52 0a 20 20 20 20 74 61 62 6c  _MASTER.    tabl
6070: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  e.</li>.<li>Chan
6080: 67 65 20 74 68 65 20 63 6f 64 65 20 73 6f 20 74  ge the code so t
6090: 68 61 74 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e  hat version 2.1.
60a0: 31 20 64 61 74 61 62 61 73 65 73 20 74 68 61 74  1 databases that
60b0: 20 77 65 72 65 20 72 65 6e 64 65 72 65 64 20 0a   were rendered .
60c0: 20 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20 62      unreadable b
60d0: 79 20 74 68 65 20 61 62 6f 76 65 20 62 75 67 20  y the above bug 
60e0: 63 61 6e 20 62 65 20 72 65 61 64 20 62 79 20 74  can be read by t
60f0: 68 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20  his version of. 
6100: 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 65     the library e
6110: 76 65 6e 20 74 68 6f 75 67 68 20 74 68 65 20 53  ven though the S
6120: 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61 62  QLITE_MASTER tab
6130: 6c 65 20 69 73 20 28 73 6c 69 67 68 74 6c 79 29  le is (slightly)
6140: 0a 20 20 20 20 63 6f 72 72 75 70 74 65 64 2e 3c  .    corrupted.<
6150: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6160: 30 31 20 4e 6f 76 20 31 33 20 28 32 2e 31 2e 31  01 Nov 13 (2.1.1
6170: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
6180: 3a 20 53 6f 6d 65 74 69 6d 65 73 20 61 72 62 69  : Sometimes arbi
6190: 72 61 72 79 20 73 74 72 69 6e 67 73 20 77 65 72  rary strings wer
61a0: 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20  e passed to the 
61b0: 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 66 75 6e  callback.    fun
61c0: 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 61  ction when the a
61d0: 63 74 75 61 6c 20 76 61 6c 75 65 20 6f 66 20 61  ctual value of a
61e0: 20 63 6f 6c 75 6d 6e 20 77 61 73 20 4e 55 4c 4c   column was NULL
61f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6200: 32 30 30 31 20 4e 6f 76 20 31 32 20 28 32 2e 31  2001 Nov 12 (2.1
6210: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
6220: 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20  e the format of 
6230: 64 61 74 61 20 72 65 63 6f 72 64 73 20 73 6f 20  data records so 
6240: 74 68 61 74 20 72 65 63 6f 72 64 73 20 75 70 20  that records up 
6250: 74 6f 20 31 36 4d 42 20 69 6e 20 73 69 7a 65 0a  to 16MB in size.
6260: 20 20 20 20 63 61 6e 20 62 65 20 73 74 6f 72 65      can be store
6270: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  d.</li>.<li>Chan
6280: 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66  ge the format of
6290: 20 69 6e 64 69 63 65 73 20 74 6f 20 61 6c 6c 6f   indices to allo
62a0: 77 20 66 6f 72 20 62 65 74 74 65 72 20 71 75 65  w for better que
62b0: 72 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e  ry optimization.
62c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c 65 6d  </li>.<li>Implem
62d0: 65 6e 74 20 74 68 65 20 22 4c 49 4d 49 54 20 2e  ent the "LIMIT .
62e0: 2e 2e 20 4f 46 46 53 45 54 20 2e 2e 2e 22 20 63  .. OFFSET ..." c
62f0: 6c 61 75 73 65 20 6f 6e 20 53 45 4c 45 43 54 20  lause on SELECT 
6300: 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  statements.</li>
6310: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e  .}..chng {2001 N
6320: 6f 76 20 33 20 28 32 2e 30 2e 38 29 7d 20 7b 0a  ov 3 (2.0.8)} {.
6330: 3c 6c 69 3e 4d 61 64 65 20 73 65 6c 65 63 74 65  <li>Made selecte
6340: 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20  d parameters in 
6350: 41 50 49 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62  API functions <b
6360: 3e 63 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68 69 73  >const</b>. This
6370: 20 73 68 6f 75 6c 64 0a 20 20 20 20 62 65 20 66   should.    be f
6380: 75 6c 6c 79 20 62 61 63 6b 77 61 72 64 73 20 63  ully backwards c
6390: 6f 6d 70 61 74 69 62 6c 65 2e 3c 2f 6c 69 3e 0a  ompatible.</li>.
63a0: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
63b0: 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c  n updates</li>.<
63c0: 6c 69 3e 53 69 6d 70 6c 69 66 79 20 74 68 65 20  li>Simplify the 
63d0: 64 65 73 69 67 6e 20 6f 66 20 74 68 65 20 56 44  design of the VD
63e0: 42 45 20 62 79 20 72 65 73 74 72 69 63 74 69 6e  BE by restrictin
63f0: 67 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20  g the number of 
6400: 73 6f 72 74 65 72 73 0a 20 20 20 20 61 6e 64 20  sorters.    and 
6410: 6c 69 73 74 73 20 74 6f 20 31 2e 0a 20 20 20 20  lists to 1..    
6420: 49 6e 20 70 72 61 63 74 69 63 65 2c 20 6e 6f 20  In practice, no 
6430: 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 73 6f  more than one so
6440: 72 74 65 72 20 61 6e 64 20 6f 6e 65 20 6c 69 73  rter and one lis
6450: 74 20 77 61 73 20 65 76 65 72 20 75 73 65 64 20  t was ever used 
6460: 61 6e 79 68 6f 77 2e 0a 20 20 20 20 3c 2f 6c 69  anyhow..    </li
6470: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
6480: 4f 63 74 20 32 31 20 28 32 2e 30 2e 37 29 7d 20  Oct 21 (2.0.7)} 
6490: 7b 0a 3c 6c 69 3e 41 6e 79 20 55 54 46 2d 38 20  {.<li>Any UTF-8 
64a0: 63 68 61 72 61 63 74 65 72 20 6f 72 20 49 53 4f  character or ISO
64b0: 38 38 35 39 20 63 68 61 72 61 63 74 65 72 20 63  8859 character c
64c0: 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 70 61  an be used as pa
64d0: 72 74 20 6f 66 0a 20 20 20 20 61 6e 20 69 64 65  rt of.    an ide
64e0: 6e 74 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  ntifier.</li>.<l
64f0: 69 3e 50 61 74 63 68 65 73 20 66 72 6f 6d 20 43  i>Patches from C
6500: 68 72 69 73 74 69 61 6e 20 57 65 72 6e 65 72 20  hristian Werner 
6510: 74 6f 20 69 6d 70 72 6f 76 65 20 4f 44 42 43 20  to improve ODBC 
6520: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e  compatibility an
6530: 64 20 74 6f 0a 20 20 20 20 66 69 78 20 61 20 62  d to.    fix a b
6540: 75 67 20 69 6e 20 74 68 65 20 72 6f 75 6e 64 28  ug in the round(
6550: 29 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e  ) function.</li>
6560: 0a 3c 6c 69 3e 50 6c 75 67 20 73 6f 6d 65 20 6d  .<li>Plug some m
6570: 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74  emory leaks that
6580: 20 75 73 65 20 74 6f 20 6f 63 63 75 72 20 69 66   use to occur if
6590: 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 65 64   malloc() failed
65a0: 2e 0a 20 20 20 20 57 65 20 68 61 76 65 20 62 65  ..    We have be
65b0: 65 6e 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20  en and continue 
65c0: 74 6f 20 62 65 20 6d 65 6d 6f 72 79 20 6c 65 61  to be memory lea
65d0: 6b 20 66 72 65 65 20 61 73 20 6c 6f 6e 67 20 61  k free as long a
65e0: 73 0a 20 20 20 20 6d 61 6c 6c 6f 63 28 29 20 77  s.    malloc() w
65f0: 6f 72 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  orks.</li>.<li>C
6600: 68 61 6e 67 65 73 20 74 6f 20 73 6f 6d 65 20 74  hanges to some t
6610: 65 73 74 20 73 63 72 69 70 74 73 20 73 6f 20 74  est scripts so t
6620: 68 61 74 20 74 68 65 79 20 77 6f 72 6b 20 6f 6e  hat they work on
6630: 20 57 69 6e 64 6f 77 73 20 69 6e 0a 20 20 20 20   Windows in.    
6640: 61 64 64 69 74 69 6f 6e 20 74 6f 20 55 6e 69 78  addition to Unix
6650: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6660: 32 30 30 31 20 4f 63 74 20 31 39 20 28 32 2e 30  2001 Oct 19 (2.0
6670: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .6)} {.<li>Added
6680: 20 74 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c   the EMPTY_RESUL
6690: 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67  T_CALLBACKS prag
66a0: 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70  ma</li>.<li>Supp
66b0: 6f 72 74 20 66 6f 72 20 55 54 46 2d 38 20 61 6e  ort for UTF-8 an
66c0: 64 20 49 53 4f 38 38 35 39 20 63 68 61 72 61 63  d ISO8859 charac
66d0: 74 65 72 73 20 69 6e 20 63 6f 6c 75 6d 6e 20 61  ters in column a
66e0: 6e 64 20 74 61 62 6c 65 20 6e 61 6d 65 73 2e 3c  nd table names.<
66f0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
6700: 3a 20 43 6f 6d 70 75 74 65 20 63 6f 72 72 65 63  : Compute correc
6710: 74 20 74 61 62 6c 65 20 6e 61 6d 65 73 20 77 69  t table names wi
6720: 74 68 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55  th the FULL_COLU
6730: 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 0a  MN_NAMES pragma.
6740: 20 20 20 20 69 73 20 74 75 72 6e 65 64 20 6f 6e      is turned on
6750: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6760: 32 30 30 31 20 4f 63 74 20 31 34 20 28 32 2e 30  2001 Oct 14 (2.0
6770: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .5)} {.<li>Added
6780: 20 74 68 65 20 43 4f 55 4e 54 5f 43 48 41 4e 47   the COUNT_CHANG
6790: 45 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a  ES pragma.</li>.
67a0: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74  <li>Changes to t
67b0: 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e  he FULL_COLUMN_N
67c0: 41 4d 45 53 20 70 72 61 67 6d 61 20 74 6f 20 68  AMES pragma to h
67d0: 65 6c 70 20 6f 75 74 20 74 68 65 20 4f 44 42 43  elp out the ODBC
67e0: 20 64 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   driver.</li>.<l
67f0: 69 3e 42 75 67 20 66 69 78 3a 20 22 53 45 4c 45  i>Bug fix: "SELE
6800: 43 54 20 63 6f 75 6e 74 28 2a 29 22 20 77 61 73  CT count(*)" was
6810: 20 72 65 74 75 72 6e 69 6e 67 20 4e 55 4c 4c 20   returning NULL 
6820: 66 6f 72 20 65 6d 70 74 79 20 74 61 62 6c 65 73  for empty tables
6830: 2e 0a 20 20 20 20 4e 6f 77 20 69 74 20 72 65 74  ..    Now it ret
6840: 75 72 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  urns 0.</li>.}..
6850: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
6860: 33 20 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69  3 (2.0.4)} {.<li
6870: 3e 42 75 67 20 66 69 78 3a 20 61 6e 20 61 62 73  >Bug fix: an abs
6880: 63 75 72 65 20 61 6e 64 20 72 65 6c 61 74 69 76  cure and relativ
6890: 65 6c 79 20 68 61 72 6d 6c 65 73 73 20 62 75 67  ely harmless bug
68a0: 20 77 61 73 20 63 61 75 73 69 6e 67 20 6f 6e 65   was causing one
68b0: 20 6f 66 0a 20 20 20 20 74 68 65 20 74 65 73 74   of.    the test
68c0: 73 20 74 6f 20 66 61 69 6c 20 77 68 65 6e 20 67  s to fail when g
68d0: 63 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  cc optimizations
68e0: 20 61 72 65 20 74 75 72 6e 65 64 20 6f 6e 2e 20   are turned on. 
68f0: 20 54 68 69 73 20 72 65 6c 65 61 73 65 0a 20 20   This release.  
6900: 20 20 66 69 78 65 73 20 74 68 65 20 70 72 6f 62    fixes the prob
6910: 6c 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  lem.</li>.}..chn
6920: 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28  g {2001 Oct 13 (
6930: 32 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.0.3)} {.<li>Bu
6940: 67 20 66 69 78 3a 20 74 68 65 20 3c 62 3e 73 71  g fix: the <b>sq
6950: 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75  lite_busy_timeou
6960: 74 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e  t()</b> function
6970: 20 77 61 73 20 64 65 6c 61 79 69 6e 67 20 31 30   was delaying 10
6980: 30 30 0a 20 20 20 20 74 69 6d 65 73 20 74 6f 6f  00.    times too
6990: 20 6c 6f 6e 67 20 62 65 66 6f 72 65 20 66 61 69   long before fai
69a0: 6c 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ling.</li>.<li>B
69b0: 75 67 20 66 69 78 3a 20 61 6e 20 61 73 73 65 72  ug fix: an asser
69c0: 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67  tion was failing
69d0: 20 69 66 20 74 68 65 20 64 69 73 6b 20 68 6f 6c   if the disk hol
69e0: 64 69 6e 67 20 74 68 65 20 64 61 74 61 62 61 73  ding the databas
69f0: 65 0a 20 20 20 20 66 69 6c 65 20 62 65 63 61 6d  e.    file becam
6a00: 65 20 66 75 6c 6c 20 6f 72 20 73 74 6f 70 70 65  e full or stoppe
6a10: 64 20 61 63 63 65 70 74 69 6e 67 20 77 72 69 74  d accepting writ
6a20: 65 73 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68 65  es for some othe
6a30: 72 20 72 65 61 73 6f 6e 2e 0a 20 20 20 20 4e 65  r reason..    Ne
6a40: 77 20 74 65 73 74 73 20 77 65 72 65 20 61 64 64  w tests were add
6a50: 65 64 20 74 6f 20 64 65 74 65 63 74 20 73 69 6d  ed to detect sim
6a60: 69 6c 61 72 20 70 72 6f 62 6c 65 6d 73 20 69 6e  ilar problems in
6a70: 20 74 68 65 20 66 75 74 75 72 65 2e 3c 2f 6c 69   the future.</li
6a80: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20  >.<li>Added new 
6a90: 6f 70 65 72 61 74 6f 72 73 3a 20 3c 62 3e 26 61  operators: <b>&a
6aa0: 6d 70 3b 3c 2f 62 3e 20 28 62 69 74 77 69 73 65  mp;</b> (bitwise
6ab0: 2d 61 6e 64 29 0a 20 20 20 20 3c 62 3e 7c 3c 2f  -and).    <b>|</
6ac0: 62 3e 20 28 62 69 74 77 69 73 65 2d 6f 72 29 2c  b> (bitwise-or),
6ad0: 20 3c 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65 73 2d   <b>~</b> (ones-
6ae0: 63 6f 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20 20 20  complement),.   
6af0: 20 3c 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 62 3e   <b>&lt;&lt;</b>
6b00: 20 28 73 68 69 66 74 20 6c 65 66 74 29 2c 20 3c   (shift left), <
6b10: 62 3e 26 67 74 3b 26 67 74 3b 3c 2f 62 3e 20 28  b>&gt;&gt;</b> (
6b20: 73 68 69 66 74 20 72 69 67 68 74 29 2e 3c 2f 6c  shift right).</l
6b30: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77  i>.<li>Added new
6b40: 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 72   functions: <b>r
6b50: 6f 75 6e 64 28 29 3c 2f 62 3e 20 61 6e 64 20 3c  ound()</b> and <
6b60: 62 3e 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f 6c 69  b>abs()</b>.</li
6b70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
6b80: 4f 63 74 20 39 20 28 32 2e 30 2e 32 29 7d 20 7b  Oct 9 (2.0.2)} {
6b90: 0a 3c 6c 69 3e 46 69 78 20 74 77 6f 20 62 75 67  .<li>Fix two bug
6ba0: 73 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67  s in the locking
6bb0: 20 70 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f 6e 65   protocol.  (One
6bc0: 20 77 61 73 20 6d 61 73 6b 69 6e 67 20 74 68 65   was masking the
6bd0: 20 6f 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c   other.)</li>.<l
6be0: 69 3e 52 65 6d 6f 76 65 64 20 73 6f 6d 65 20 75  i>Removed some u
6bf0: 6e 75 73 65 64 20 22 23 69 6e 63 6c 75 64 65 20  nused "#include 
6c00: 3c 75 6e 69 73 74 64 2e 68 3e 22 20 74 68 61 74  <unistd.h>" that
6c10: 20 77 65 72 65 20 63 61 75 73 69 6e 67 20 70 72   were causing pr
6c20: 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 56  oblems.    for V
6c30: 43 2b 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  C++.</li>.<li>Fi
6c40: 78 65 64 20 3c 62 3e 73 71 6c 69 74 65 2e 68 3c  xed <b>sqlite.h<
6c50: 2f 62 3e 20 73 6f 20 74 68 61 74 20 69 74 20 69  /b> so that it i
6c60: 73 20 75 73 61 62 6c 65 20 66 72 6f 6d 20 43 2b  s usable from C+
6c70: 2b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  +</li>.<li>Added
6c80: 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e   the FULL_COLUMN
6c90: 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 2e 20 20  _NAMES pragma.  
6ca0: 57 68 65 6e 20 73 65 74 20 74 6f 20 22 4f 4e 22  When set to "ON"
6cb0: 2c 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 0a 20  , the names of. 
6cc0: 20 20 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 72     columns are r
6cd0: 65 70 6f 72 74 65 64 20 62 61 63 6b 20 61 73 20  eported back as 
6ce0: 54 41 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69 6e 73  TABLE.COLUMN ins
6cf0: 74 65 61 64 20 6f 66 20 6a 75 73 74 20 43 4f 4c  tead of just COL
6d00: 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  UMN.</li>.<li>Ad
6d10: 64 65 64 20 74 68 65 20 54 41 42 4c 45 5f 49 4e  ded the TABLE_IN
6d20: 46 4f 28 29 20 61 6e 64 20 49 4e 44 45 58 5f 49  FO() and INDEX_I
6d30: 4e 46 4f 28 29 20 70 72 61 67 6d 61 73 20 74 6f  NFO() pragmas to
6d40: 20 68 65 6c 70 20 73 75 70 70 6f 72 74 20 74 68   help support th
6d50: 65 0a 20 20 20 20 4f 44 42 43 20 69 6e 74 65 72  e.    ODBC inter
6d60: 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  face.</li>.<li>A
6d70: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
6d80: 20 54 45 4d 50 4f 52 41 52 59 20 74 61 62 6c 65   TEMPORARY table
6d90: 73 20 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f  s and indices.</
6da0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6db0: 31 20 4f 63 74 20 32 20 28 32 2e 30 2e 31 29 7d  1 Oct 2 (2.0.1)}
6dc0: 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 73 6f   {.<li>Remove so
6dd0: 6d 65 20 43 2b 2b 20 73 74 79 6c 65 20 63 6f 6d  me C++ style com
6de0: 6d 65 6e 74 73 20 66 72 6f 6d 20 62 74 72 65 65  ments from btree
6df0: 2e 63 20 73 6f 20 74 68 61 74 20 69 74 20 77 69  .c so that it wi
6e00: 6c 6c 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 75  ll compile.    u
6e10: 73 69 6e 67 20 63 6f 6d 70 69 6c 65 72 73 20 6f  sing compilers o
6e20: 74 68 65 72 20 74 68 61 6e 20 67 63 63 2e 3c 2f  ther than gcc.</
6e30: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e 64 75  li>.<li>The ".du
6e40: 6d 70 22 20 6f 75 74 70 75 74 20 66 72 6f 6d 20  mp" output from 
6e50: 74 68 65 20 73 68 65 6c 6c 20 64 6f 65 73 20 6e  the shell does n
6e60: 6f 74 20 77 6f 72 6b 20 69 66 20 74 68 65 72 65  ot work if there
6e70: 20 61 72 65 20 65 6d 62 65 64 64 65 64 0a 20 20   are embedded.  
6e80: 20 20 6e 65 77 6c 69 6e 65 73 20 61 6e 79 77 68    newlines anywh
6e90: 65 72 65 20 69 6e 20 74 68 65 20 64 61 74 61 2e  ere in the data.
6ea0: 20 20 54 68 69 73 20 69 73 20 61 6e 20 6f 6c 64    This is an old
6eb0: 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61   bug that was ca
6ec0: 72 72 69 65 64 0a 20 20 20 20 66 6f 72 77 61 72  rried.    forwar
6ed0: 64 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20 31  d from version 1
6ee0: 2e 30 2e 20 20 54 6f 20 66 69 78 20 69 74 2c 20  .0.  To fix it, 
6ef0: 74 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70  the ".dump" outp
6f00: 75 74 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20 20 20  ut no longer.   
6f10: 20 75 73 65 73 20 74 68 65 20 43 4f 50 59 20 63   uses the COPY c
6f20: 6f 6d 6d 61 6e 64 2e 20 20 49 74 20 69 6e 73 74  ommand.  It inst
6f30: 65 61 64 20 67 65 6e 65 72 61 74 65 73 20 49 4e  ead generates IN
6f40: 53 45 52 54 20 73 74 61 74 65 6d 65 6e 74 73 2e  SERT statements.
6f50: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65 6e 64  </li>.<li>Extend
6f60: 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20   the expression 
6f70: 73 79 6e 74 61 78 20 74 6f 20 73 75 70 70 6f 72  syntax to suppor
6f80: 74 20 22 65 78 70 72 20 4e 4f 54 20 4e 55 4c 4c  t "expr NOT NULL
6f90: 22 20 28 77 69 74 68 20 61 0a 20 20 20 20 73 70  " (with a.    sp
6fa0: 61 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20  ace between the 
6fb0: 22 4e 4f 54 22 20 61 6e 64 20 74 68 65 20 22 4e  "NOT" and the "N
6fc0: 55 4c 4c 22 29 20 69 6e 20 61 64 64 69 74 69 6f  ULL") in additio
6fd0: 6e 20 74 6f 20 22 65 78 70 72 20 4e 4f 54 4e 55  n to "expr NOTNU
6fe0: 4c 4c 22 0a 20 20 20 20 28 77 69 74 68 20 6e 6f  LL".    (with no
6ff0: 20 73 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a   space).</li>.}.
7000: 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20  .chng {2001 Sep 
7010: 32 38 20 28 32 2e 30 2e 30 29 7d 20 7b 0a 3c 6c  28 (2.0.0)} {.<l
7020: 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  i>Automatically 
7030: 62 75 69 6c 64 20 62 69 6e 61 72 69 65 73 20 66  build binaries f
7040: 6f 72 20 4c 69 6e 75 78 20 61 6e 64 20 57 69 6e  or Linux and Win
7050: 64 6f 77 73 20 61 6e 64 20 70 75 74 20 74 68 65  dows and put the
7060: 6d 20 6f 6e 0a 20 20 20 20 74 68 65 20 77 65 62  m on.    the web
7070: 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  site.</li>.}..ch
7080: 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 38 20  ng {2001 Sep 28 
7090: 28 32 2e 30 2d 61 6c 70 68 61 2d 34 29 7d 20 7b  (2.0-alpha-4)} {
70a0: 0a 3c 6c 69 3e 49 6e 63 6f 72 70 6f 72 61 74 65  .<li>Incorporate
70b0: 20 6d 61 6b 65 66 69 6c 65 20 70 61 74 63 68 65   makefile patche
70c0: 73 20 66 6f 72 6d 20 41 2e 20 52 6f 74 74 6d 61  s form A. Rottma
70d0: 6e 6e 20 74 6f 20 75 73 65 20 4c 49 42 54 4f 4f  nn to use LIBTOO
70e0: 4c 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  L</li>.}..chng {
70f0: 32 30 30 31 20 53 65 70 20 32 37 20 28 32 2e 30  2001 Sep 27 (2.0
7100: 2d 61 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c 6c 69  -alpha-3)} {.<li
7110: 3e 53 51 4c 69 74 65 20 6e 6f 77 20 68 6f 6e 6f  >SQLite now hono
7120: 72 73 20 74 68 65 20 55 4e 49 51 55 45 20 6b 65  rs the UNIQUE ke
7130: 79 77 6f 72 64 20 69 6e 20 43 52 45 41 54 45 20  yword in CREATE 
7140: 55 4e 49 51 55 45 20 49 4e 44 45 58 2e 20 20 50  UNIQUE INDEX.  P
7150: 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 73 20  rimary.    keys 
7160: 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20  are required to 
7170: 62 65 20 75 6e 69 71 75 65 2e 3c 2f 6c 69 3e 0a  be unique.</li>.
7180: 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20  <li>File format 
7190: 63 68 61 6e 67 65 64 20 62 61 63 6b 20 74 6f 20  changed back to 
71a0: 77 68 61 74 20 69 74 20 77 61 73 20 66 6f 72 20  what it was for 
71b0: 61 6c 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69  alpha-1</li>.<li
71c0: 3e 46 69 78 65 73 20 74 6f 20 74 68 65 20 72 6f  >Fixes to the ro
71d0: 6c 6c 62 61 63 6b 20 61 6e 64 20 6c 6f 63 6b 69  llback and locki
71e0: 6e 67 20 62 65 68 61 76 69 6f 72 3c 2f 6c 69 3e  ng behavior</li>
71f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53  .}..chng {2001 S
7200: 65 70 20 32 30 20 28 32 2e 30 2d 61 6c 70 68 61  ep 20 (2.0-alpha
7210: 2d 32 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69  -2)} {.<li>Initi
7220: 61 6c 20 72 65 6c 65 61 73 65 20 6f 66 20 76 65  al release of ve
7230: 72 73 69 6f 6e 20 32 2e 30 2e 20 20 54 68 65 20  rsion 2.0.  The 
7240: 69 64 65 61 20 6f 66 20 72 65 6e 61 6d 69 6e 67  idea of renaming
7250: 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20   the library.   
7260: 20 74 6f 20 22 53 51 4c 75 73 22 20 77 61 73 20   to "SQLus" was 
7270: 61 62 61 6e 64 6f 6e 65 64 20 69 6e 20 66 61 76  abandoned in fav
7280: 6f 72 20 6f 66 20 6b 65 65 70 69 6e 67 20 74 68  or of keeping th
7290: 65 20 22 53 51 4c 69 74 65 22 20 6e 61 6d 65 20  e "SQLite" name 
72a0: 61 6e 64 0a 20 20 20 20 62 75 6d 70 69 6e 67 20  and.    bumping 
72b0: 74 68 65 20 6d 61 6a 6f 72 20 76 65 72 73 69 6f  the major versio
72c0: 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c  n number.</li>.<
72d0: 6c 69 3e 54 68 65 20 70 61 67 65 72 20 61 6e 64  li>The pager and
72e0: 20 62 74 72 65 65 20 73 75 62 73 79 73 74 65 6d   btree subsystem
72f0: 73 20 61 64 64 65 64 20 62 61 63 6b 2e 20 54 68  s added back. Th
7300: 65 79 20 61 72 65 20 6e 6f 77 20 74 68 65 20 6f  ey are now the o
7310: 6e 6c 79 0a 20 20 20 20 61 76 61 69 6c 61 62 6c  nly.    availabl
7320: 65 20 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a  e backend.</li>.
7330: 3c 6c 69 3e 54 68 65 20 44 62 62 65 20 61 62 73  <li>The Dbbe abs
7340: 74 72 61 63 74 69 6f 6e 20 61 6e 64 20 74 68 65  traction and the
7350: 20 47 44 42 4d 20 61 6e 64 20 6d 65 6d 6f 72 79   GDBM and memory
7360: 20 64 72 69 76 65 72 73 20 77 65 72 65 20 72 65   drivers were re
7370: 6d 6f 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  moved.</li>.<li>
7380: 43 6f 70 79 72 69 67 68 74 20 6f 6e 20 61 6c 6c  Copyright on all
7390: 20 63 6f 64 65 20 77 61 73 20 64 69 73 63 6c 61   code was discla
73a0: 69 6d 65 64 2e 20 20 54 68 65 20 6c 69 62 72 61  imed.  The libra
73b0: 72 79 20 69 73 20 6e 6f 77 20 69 6e 20 74 68 65  ry is now in the
73c0: 0a 20 20 20 20 70 75 62 6c 69 63 20 64 6f 6d 61  .    public doma
73d0: 69 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  in.</li>.}..chng
73e0: 20 7b 32 30 30 31 20 4a 75 6c 20 32 33 20 28 31   {2001 Jul 23 (1
73f0: 2e 30 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e 50 61  .0.32)} {.<li>Pa
7400: 67 65 72 20 61 6e 64 20 62 74 72 65 65 20 73 75  ger and btree su
7410: 62 73 79 73 74 65 6d 73 20 72 65 6d 6f 76 65 64  bsystems removed
7420: 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20 62 65  .  These will be
7430: 20 75 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c 6f   used in a follo
7440: 77 2d 6f 6e 0a 20 20 20 20 53 51 4c 20 73 65 72  w-on.    SQL ser
7450: 76 65 72 20 6c 69 62 72 61 72 79 20 6e 61 6d 65  ver library name
7460: 64 20 22 53 51 4c 75 73 22 2e 3c 2f 6c 69 3e 0a  d "SQLus".</li>.
7470: 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c  <li>Add the abil
7480: 69 74 79 20 74 6f 20 75 73 65 20 71 75 6f 74 65  ity to use quote
7490: 64 20 73 74 72 69 6e 67 73 20 61 73 20 74 61 62  d strings as tab
74a0: 6c 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 6e 61  le and column na
74b0: 6d 65 73 20 69 6e 0a 20 20 20 20 65 78 70 72 65  mes in.    expre
74c0: 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ssions.</li>.}..
74d0: 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 31  chng {2001 Apr 1
74e0: 34 20 28 31 2e 30 2e 33 31 29 7d 20 7b 0a 3c 6c  4 (1.0.31)} {.<l
74f0: 69 3e 50 61 67 65 72 20 73 75 62 73 79 73 74 65  i>Pager subsyste
7500: 6d 20 61 64 64 65 64 20 62 75 74 20 6e 6f 74 20  m added but not 
7510: 79 65 74 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 3c  yet used.</li>.<
7520: 6c 69 3e 4d 6f 72 65 20 72 6f 62 75 73 74 20 68  li>More robust h
7530: 61 6e 64 6c 69 6e 67 20 6f 66 20 6f 75 74 2d 6f  andling of out-o
7540: 66 2d 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73 2e  f-memory errors.
7550: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 74 65  </li>.<li>New te
7560: 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68 65  sts added to the
7570: 20 74 65 73 74 20 73 75 69 74 65 2e 3c 2f 6c 69   test suite.</li
7580: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
7590: 41 70 72 20 36 20 28 31 2e 30 2e 33 30 29 7d 20  Apr 6 (1.0.30)} 
75a0: 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65  {.<li>Remove the
75b0: 20 3c 62 3e 73 71 6c 69 74 65 5f 65 6e 63 6f 64   <b>sqlite_encod
75c0: 69 6e 67 3c 2f 62 3e 20 54 43 4c 20 76 61 72 69  ing</b> TCL vari
75d0: 61 62 6c 65 20 74 68 61 74 20 77 61 73 20 69 6e  able that was in
75e0: 74 72 6f 64 75 63 65 64 0a 20 20 20 20 69 6e 20  troduced.    in 
75f0: 74 68 65 20 70 72 65 76 69 6f 75 73 20 76 65 72  the previous ver
7600: 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  sion.</li>.<li>A
7610: 64 64 20 6f 70 74 69 6f 6e 73 20 3c 62 3e 2d 65  dd options <b>-e
7620: 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e 64 20  ncoding</b> and 
7630: 3c 62 3e 2d 74 63 6c 2d 75 73 65 73 2d 75 74 66  <b>-tcl-uses-utf
7640: 3c 2f 62 3e 20 74 6f 20 74 68 65 0a 20 20 20 20  </b> to the.    
7650: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 54 43  <b>sqlite</b> TC
7660: 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a  L command.</li>.
7670: 3c 6c 69 3e 41 64 64 20 74 65 73 74 73 20 74 6f  <li>Add tests to
7680: 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20   make sure that 
7690: 74 63 6c 73 71 6c 69 74 65 20 77 61 73 20 63 6f  tclsqlite was co
76a0: 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 54 63 6c  mpiled using Tcl
76b0: 20 68 65 61 64 65 72 0a 20 20 20 20 66 69 6c 65   header.    file
76c0: 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 20  s and libraries 
76d0: 74 68 61 74 20 6d 61 74 63 68 2e 3c 2f 6c 69 3e  that match.</li>
76e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41  .}..chng {2001 A
76f0: 70 72 20 35 20 28 31 2e 30 2e 32 39 29 7d 20 7b  pr 5 (1.0.29)} {
7700: 0a 3c 6c 69 3e 54 68 65 20 6c 69 62 72 61 72 79  .<li>The library
7710: 20 6e 6f 77 20 61 73 73 75 6d 65 73 20 64 61 74   now assumes dat
7720: 61 20 69 73 20 73 74 6f 72 65 64 20 61 73 20 55  a is stored as U
7730: 54 46 2d 38 20 69 66 20 74 68 65 20 2d 2d 65 6e  TF-8 if the --en
7740: 61 62 6c 65 2d 75 74 66 38 0a 20 20 20 20 6f 70  able-utf8.    op
7750: 74 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 74 6f  tion is given to
7760: 20 63 6f 6e 66 69 67 75 72 65 2e 20 20 54 68 65   configure.  The
7770: 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f   default behavio
7780: 72 20 69 73 20 74 6f 20 61 73 73 75 6d 65 0a 20  r is to assume. 
7790: 20 20 20 69 73 6f 38 38 35 39 2d 78 2c 20 61 73     iso8859-x, as
77a0: 20 69 74 20 68 61 73 20 61 6c 77 61 79 73 20 64   it has always d
77b0: 6f 6e 65 2e 20 20 54 68 69 73 20 6f 6e 6c 79 20  one.  This only 
77c0: 6d 61 6b 65 73 20 61 20 64 69 66 66 65 72 65 6e  makes a differen
77d0: 63 65 20 66 6f 72 0a 20 20 20 20 4c 49 4b 45 20  ce for.    LIKE 
77e0: 61 6e 64 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f  and GLOB operato
77f0: 72 73 20 61 6e 64 20 74 68 65 20 4c 45 4e 47 54  rs and the LENGT
7800: 48 20 61 6e 64 20 53 55 42 53 54 52 20 66 75 6e  H and SUBSTR fun
7810: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
7820: 3e 49 66 20 74 68 65 20 6c 69 62 72 61 72 79 20  >If the library 
7830: 69 73 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 65  is not configure
7840: 64 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20  d for UTF-8 and 
7850: 74 68 65 20 54 63 6c 20 6c 69 62 72 61 72 79 0a  the Tcl library.
7860: 20 20 20 20 69 73 20 6f 6e 65 20 6f 66 20 74 68      is one of th
7870: 65 20 6e 65 77 65 72 20 6f 6e 65 73 20 74 68 61  e newer ones tha
7880: 74 20 75 73 65 73 20 55 54 46 2d 38 20 69 6e 74  t uses UTF-8 int
7890: 65 72 6e 61 6c 6c 79 2c 0a 20 20 20 20 74 68 65  ernally,.    the
78a0: 6e 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66  n a conversion f
78b0: 72 6f 6d 20 55 54 46 2d 38 20 74 6f 20 69 73 6f  rom UTF-8 to iso
78c0: 38 38 35 39 20 61 6e 64 0a 20 20 20 20 62 61 63  8859 and.    bac
78d0: 6b 20 61 67 61 69 6e 20 69 73 20 64 6f 6e 65 20  k again is done 
78e0: 69 6e 73 69 64 65 20 74 68 65 20 54 43 4c 20 69  inside the TCL i
78f0: 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d  nterface.</li>.}
7900: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72  ..chng {2001 Apr
7910: 20 34 20 28 31 2e 30 2e 32 38 29 7d 20 7b 0a 3c   4 (1.0.28)} {.<
7920: 6c 69 3e 41 64 64 65 64 20 6c 69 6d 69 74 65 64  li>Added limited
7930: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 72 61   support for tra
7940: 6e 73 61 63 74 69 6f 6e 73 2e 20 20 41 74 20 74  nsactions.  At t
7950: 68 69 73 20 70 6f 69 6e 74 2c 20 74 72 61 6e 73  his point, trans
7960: 61 63 74 69 6f 6e 73 0a 20 20 20 20 77 69 6c 6c  actions.    will
7970: 20 64 6f 20 74 61 62 6c 65 20 6c 6f 63 6b 69 6e   do table lockin
7980: 67 20 6f 6e 20 74 68 65 20 47 44 42 4d 20 62 61  g on the GDBM ba
7990: 63 6b 65 6e 64 2e 20 20 54 68 65 72 65 20 69 73  ckend.  There is
79a0: 20 6e 6f 20 73 75 70 70 6f 72 74 20 28 79 65 74   no support (yet
79b0: 29 0a 20 20 20 20 66 6f 72 20 72 6f 6c 6c 62 61  ).    for rollba
79c0: 63 6b 20 6f 72 20 61 74 6f 6d 69 63 20 63 6f 6d  ck or atomic com
79d0: 6d 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  mit.</li>.<li>Ad
79e0: 64 65 64 20 73 70 65 63 69 61 6c 20 63 6f 6c 75  ded special colu
79f0: 6d 6e 20 6e 61 6d 65 73 20 52 4f 57 49 44 2c 20  mn names ROWID, 
7a00: 4f 49 44 2c 20 61 6e 64 20 5f 52 4f 57 49 44 5f  OID, and _ROWID_
7a10: 20 74 68 61 74 20 72 65 66 65 72 20 74 6f 20 74   that refer to t
7a20: 68 65 0a 20 20 20 20 75 6e 69 71 75 65 20 72 61  he.    unique ra
7a30: 6e 64 6f 6d 20 69 6e 74 65 67 65 72 20 6b 65 79  ndom integer key
7a40: 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68   associated with
7a50: 20 65 76 65 72 79 20 72 6f 77 20 6f 66 20 65 76   every row of ev
7a60: 65 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  ery table.</li>.
7a70: 3c 6c 69 3e 41 64 64 69 74 69 6f 6e 61 6c 20 74  <li>Additional t
7a80: 65 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68  ests added to th
7a90: 65 20 72 65 67 72 65 73 73 69 6f 6e 20 73 75 69  e regression sui
7aa0: 74 65 20 74 6f 20 63 6f 76 65 72 20 74 68 65 20  te to cover the 
7ab0: 6e 65 77 20 52 4f 57 49 44 0a 20 20 20 20 66 65  new ROWID.    fe
7ac0: 61 74 75 72 65 20 61 6e 64 20 74 68 65 20 54 43  ature and the TC
7ad0: 4c 20 69 6e 74 65 72 66 61 63 65 20 62 75 67 73  L interface bugs
7ae0: 20 6d 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f 77   mentioned below
7af0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
7b00: 65 73 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e  es to the "lemon
7b10: 22 20 70 61 72 73 65 72 20 67 65 6e 65 72 61 74  " parser generat
7b20: 6f 72 20 74 6f 20 68 65 6c 70 20 69 74 20 77 6f  or to help it wo
7b30: 72 6b 20 62 65 74 74 65 72 20 77 68 65 6e 0a 20  rk better when. 
7b40: 20 20 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e     compiled usin
7b50: 67 20 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69  g MSVC.</li>.<li
7b60: 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68  >Bug fixes in th
7b70: 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20  e TCL interface 
7b80: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 4f 6c  identified by Ol
7b90: 65 67 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f 6c 69  eg Oleinick.</li
7ba0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
7bb0: 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 37 29 7d  Mar 20 (1.0.27)}
7bc0: 20 7b 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f 69 6e   {.<li>When doin
7bd0: 67 20 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44  g DELETE and UPD
7be0: 41 54 45 2c 20 74 68 65 20 6c 69 62 72 61 72 79  ATE, the library
7bf0: 20 75 73 65 64 20 74 6f 20 77 72 69 74 65 20 74   used to write t
7c00: 68 65 20 72 65 63 6f 72 64 0a 20 20 20 20 6e 75  he record.    nu
7c10: 6d 62 65 72 73 20 6f 66 20 72 65 63 6f 72 64 73  mbers of records
7c20: 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64 20 6f   to be deleted o
7c30: 72 20 75 70 64 61 74 65 64 20 69 6e 74 6f 20 61  r updated into a
7c40: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e   temporary file.
7c50: 0a 20 20 20 20 54 68 69 73 20 69 73 20 63 68 61  .    This is cha
7c60: 6e 67 65 64 20 73 6f 20 74 68 61 74 20 74 68 65  nged so that the
7c70: 20 72 65 63 6f 72 64 20 6e 75 6d 62 65 72 73 20   record numbers 
7c80: 61 72 65 20 68 65 6c 64 20 69 6e 20 6d 65 6d 6f  are held in memo
7c90: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ry.</li>.<li>The
7ca0: 20 44 45 4c 45 54 45 20 63 6f 6d 6d 61 6e 64 20   DELETE command 
7cb0: 77 69 74 68 6f 75 74 20 61 20 57 48 49 4c 45 20  without a WHILE 
7cc0: 63 6c 61 75 73 65 20 6a 75 73 74 20 72 65 6d 6f  clause just remo
7cd0: 76 65 73 20 74 68 65 20 64 61 74 61 62 61 73 65  ves the database
7ce0: 0a 20 20 20 20 66 69 6c 65 73 20 66 72 6f 6d 20  .    files from 
7cf0: 74 68 65 20 64 69 73 6b 2c 20 72 61 74 68 65 72  the disk, rather
7d00: 20 74 68 61 6e 20 67 6f 69 6e 67 20 74 68 72 6f   than going thro
7d10: 75 67 68 20 61 6e 64 20 64 65 6c 65 74 69 6e 67  ugh and deleting
7d20: 20 72 65 63 6f 72 64 0a 20 20 20 20 62 79 20 72   record.    by r
7d30: 65 63 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ecord.</li>.}..c
7d40: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30  hng {2001 Mar 20
7d50: 20 28 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c 6c 69   (1.0.26)} {.<li
7d60: 3e 41 20 73 65 72 69 6f 75 73 20 62 75 67 20 66  >A serious bug f
7d70: 69 78 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 2e  ixed on Windows.
7d80: 20 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73 20    Windows users 
7d90: 73 68 6f 75 6c 64 20 75 70 67 72 61 64 65 2e 0a  should upgrade..
7da0: 20 20 20 20 4e 6f 20 69 6d 70 61 63 74 20 74 6f      No impact to
7db0: 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   Unix.</li>.}..c
7dc0: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31 35  hng {2001 Mar 15
7dd0: 20 28 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c 6c 69   (1.0.25)} {.<li
7de0: 3e 4d 6f 64 69 66 79 20 74 68 65 20 74 65 73 74  >Modify the test
7df0: 20 73 63 72 69 70 74 73 20 74 6f 20 69 64 65 6e   scripts to iden
7e00: 74 69 66 79 20 74 65 73 74 73 20 74 68 61 74 20  tify tests that 
7e10: 64 65 70 65 6e 64 20 6f 6e 20 73 79 73 74 65 6d  depend on system
7e20: 0a 20 20 20 20 6c 6f 61 64 20 61 6e 64 20 70 72  .    load and pr
7e30: 6f 63 65 73 73 6f 72 20 73 70 65 65 64 20 61 6e  ocessor speed an
7e40: 64 0a 20 20 20 20 74 6f 20 77 61 72 6e 20 74 68  d.    to warn th
7e50: 65 20 75 73 65 72 20 74 68 61 74 20 61 20 66 61  e user that a fa
7e60: 69 6c 75 72 65 20 6f 66 20 6f 6e 65 20 6f 66 20  ilure of one of 
7e70: 74 68 6f 73 65 20 28 72 61 72 65 29 20 74 65 73  those (rare) tes
7e80: 74 73 20 64 6f 65 73 0a 20 20 20 20 6e 6f 74 20  ts does.    not 
7e90: 6e 65 63 65 73 73 61 72 69 6c 79 20 6d 65 61 6e  necessarily mean
7ea0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 69 73 20   the library is 
7eb0: 6d 61 6c 66 75 6e 63 74 69 6f 6e 69 6e 67 2e 20  malfunctioning. 
7ec0: 20 4e 6f 20 63 68 61 6e 67 65 73 20 74 6f 0a 20   No changes to. 
7ed0: 20 20 20 63 6f 64 65 2e 0a 20 20 20 20 3c 2f 6c     code..    </l
7ee0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
7ef0: 20 4d 61 72 20 31 34 20 28 31 2e 30 2e 32 34 29   Mar 14 (1.0.24)
7f00: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
7f10: 67 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73  g which was caus
7f20: 69 6e 67 0a 20 20 20 20 74 68 65 20 55 50 44 41  ing.    the UPDA
7f30: 54 45 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66 61  TE command to fa
7f40: 69 6c 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68  il on systems wh
7f50: 65 72 65 20 22 6d 61 6c 6c 6f 63 28 30 29 22 20  ere "malloc(0)" 
7f60: 72 65 74 75 72 6e 73 0a 20 20 20 20 4e 55 4c 4c  returns.    NULL
7f70: 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 64  .  The problem d
7f80: 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 57  oes not appear W
7f90: 69 6e 64 6f 77 73 2c 20 4c 69 6e 75 78 2c 20 6f  indows, Linux, o
7fa0: 72 20 48 50 55 58 20 62 75 74 20 64 6f 65 73 20  r HPUX but does 
7fb0: 0a 20 20 20 20 63 61 75 73 65 20 74 68 65 20 6c  .    cause the l
7fc0: 69 62 72 61 72 79 20 74 6f 20 66 61 69 6c 20 6f  ibrary to fail o
7fd0: 6e 20 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c 69 3e  n QNX..    </li>
7fe0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
7ff0: 65 62 20 31 39 20 28 31 2e 30 2e 32 33 29 7d 20  eb 19 (1.0.23)} 
8000: 7b 0a 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c 61 74  {.<li>An unrelat
8010: 65 64 20 28 61 6e 64 20 6d 69 6e 6f 72 29 20 62  ed (and minor) b
8020: 75 67 20 66 72 6f 6d 20 4d 61 72 6b 20 4d 75 72  ug from Mark Mur
8030: 61 6e 77 73 6b 69 20 66 69 78 65 64 2e 20 20 54  anwski fixed.  T
8040: 68 65 20 61 6c 67 6f 72 69 74 68 6d 0a 20 20 20  he algorithm.   
8050: 20 66 6f 72 20 66 69 67 75 72 69 6e 67 20 6f 75   for figuring ou
8060: 74 20 77 68 65 72 65 20 74 6f 20 70 75 74 20 74  t where to put t
8070: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 66  emporary files f
8080: 6f 72 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 64  or a "memory:" d
8090: 61 74 61 62 61 73 65 0a 20 20 20 20 77 61 73 20  atabase.    was 
80a0: 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 71 75 69 74  not working quit
80b0: 65 20 72 69 67 68 74 2e 0a 20 20 20 20 3c 2f 6c  e right..    </l
80c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
80d0: 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 32 29   Feb 19 (1.0.22)
80e0: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 72 65 76  } {.<li>The prev
80f0: 69 6f 75 73 20 66 69 78 20 77 61 73 20 6e 6f 74  ious fix was not
8100: 20 71 75 69 74 65 20 72 69 67 68 74 2e 20 20 54   quite right.  T
8110: 68 69 73 20 6f 6e 65 20 73 65 65 6d 73 20 74 6f  his one seems to
8120: 20 77 6f 72 6b 20 62 65 74 74 65 72 2e 0a 20 20   work better..  
8130: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
8140: 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e  {2001 Feb 19 (1.
8150: 30 2e 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65  0.21)} {.<li>The
8160: 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e   UPDATE statemen
8170: 74 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e  t was not workin
8180: 67 20 77 68 65 6e 20 74 68 65 20 57 48 45 52 45  g when the WHERE
8190: 20 63 6c 61 75 73 65 20 63 6f 6e 74 61 69 6e 65   clause containe
81a0: 64 0a 20 20 20 20 73 6f 6d 65 20 74 65 72 6d 73  d.    some terms
81b0: 20 74 68 61 74 20 63 6f 75 6c 64 20 62 65 20 73   that could be s
81c0: 61 74 69 73 66 69 65 64 20 75 73 69 6e 67 20 69  atisfied using i
81d0: 6e 64 69 63 65 73 20 61 6e 64 20 6f 74 68 65 72  ndices and other
81e0: 20 74 65 72 6d 73 20 74 68 61 74 0a 20 20 20 20   terms that.    
81f0: 63 6f 75 6c 64 20 6e 6f 74 2e 20 20 46 69 78 65  could not.  Fixe
8200: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
8210: 7b 32 30 30 31 20 46 65 62 20 31 31 20 28 31 2e  {2001 Feb 11 (1.
8220: 30 2e 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 65 72  0.20)} {.<li>Mer
8230: 67 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63  ge development c
8240: 68 61 6e 67 65 73 20 69 6e 74 6f 20 74 68 65 20  hanges into the 
8250: 6d 61 69 6e 20 74 72 75 6e 6b 2e 20 20 46 75 74  main trunk.  Fut
8260: 75 72 65 20 77 6f 72 6b 20 74 6f 77 61 72 64 0a  ure work toward.
8270: 20 20 20 20 75 73 69 6e 67 20 61 20 42 54 72 65      using a BTre
8280: 65 20 66 69 6c 65 20 73 74 72 75 63 74 75 72 65  e file structure
8290: 20 77 69 6c 6c 20 75 73 65 20 61 20 73 65 70 61   will use a sepa
82a0: 72 61 74 65 20 43 56 53 20 73 6f 75 72 63 65 20  rate CVS source 
82b0: 74 72 65 65 2e 20 20 54 68 69 73 0a 20 20 20 20  tree.  This.    
82c0: 43 56 53 20 74 72 65 65 20 77 69 6c 6c 20 63 6f  CVS tree will co
82d0: 6e 74 69 6e 75 65 20 74 6f 20 73 75 70 70 6f 72  ntinue to suppor
82e0: 74 20 74 68 65 20 47 44 42 4d 20 76 65 72 73 69  t the GDBM versi
82f0: 6f 6e 20 6f 66 20 53 51 4c 69 74 65 20 6f 6e 6c  on of SQLite onl
8300: 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  y.</li>.}..chng 
8310: 7b 32 30 30 31 20 46 65 62 20 36 20 28 31 2e 30  {2001 Feb 6 (1.0
8320: 2e 31 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .19)} {.<li>Fix 
8330: 61 20 73 74 72 61 6e 67 65 20 28 62 75 74 20 76  a strange (but v
8340: 61 6c 69 64 29 20 43 20 64 65 63 6c 61 72 61 74  alid) C declarat
8350: 69 6f 6e 20 74 68 61 74 20 77 61 73 20 63 61 75  ion that was cau
8360: 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20  sing problems.  
8370: 20 20 66 6f 72 20 51 4e 58 2e 20 20 4e 6f 20 6c    for QNX.  No l
8380: 6f 67 69 63 61 6c 20 63 68 61 6e 67 65 73 2e 3c  ogical changes.<
8390: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
83a0: 30 31 20 4a 61 6e 20 34 20 28 31 2e 30 2e 31 38  01 Jan 4 (1.0.18
83b0: 29 7d 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74 20 74  )} {.<li>Print t
83c0: 68 65 20 6f 66 66 65 6e 64 69 6e 67 20 53 51 4c  he offending SQL
83d0: 20 73 74 61 74 65 6d 65 6e 74 20 77 68 65 6e 20   statement when 
83e0: 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 2e  an error occurs.
83f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
8400: 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 73 20   require commas 
8410: 62 65 74 77 65 65 6e 20 63 6f 6e 73 74 72 61 69  between constrai
8420: 6e 74 73 20 69 6e 20 43 52 45 41 54 45 20 54 41  nts in CREATE TA
8430: 42 4c 45 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c  BLE statements.<
8440: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
8450: 68 65 20 22 2d 65 63 68 6f 22 20 6f 70 74 69 6f  he "-echo" optio
8460: 6e 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c  n to the shell.<
8470: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  /li>.<li>Changes
8480: 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c   to comments.</l
8490: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
84a0: 20 44 65 63 20 31 30 20 28 31 2e 30 2e 31 37 29   Dec 10 (1.0.17)
84b0: 7d 20 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74 65 20  } {.<li>Rewrote 
84c0: 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65  <b>sqlite_comple
84d0: 74 65 28 29 3c 2f 62 3e 20 74 6f 20 6d 61 6b 65  te()</b> to make
84e0: 20 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e   it faster.</li>
84f0: 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 74 77 65 61 6b  .<li>Minor tweak
8500: 73 20 74 6f 20 6f 74 68 65 72 20 63 6f 64 65 20  s to other code 
8510: 74 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e 20 61  to make it run a
8520: 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 3c   little faster.<
8530: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  /li>.<li>Added n
8540: 65 77 20 74 65 73 74 73 20 66 6f 72 20 3c 62 3e  ew tests for <b>
8550: 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28  sqlite_complete(
8560: 29 3c 2f 62 3e 20 61 6e 64 20 66 6f 72 20 6d 65  )</b> and for me
8570: 6d 6f 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c 69 3e  mory leaks.</li>
8580: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44  .}..chng {2000 D
8590: 65 63 20 34 20 28 31 2e 30 2e 31 36 29 7d 20 7b  ec 4 (1.0.16)} {
85a0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
85b0: 6f 6e 20 75 70 64 61 74 65 73 2e 20 20 4d 6f 73  on updates.  Mos
85c0: 74 6c 79 20 66 69 78 69 6e 67 20 6f 66 20 74 79  tly fixing of ty
85d0: 70 6f 73 20 61 6e 64 20 73 70 65 6c 6c 69 6e 67  pos and spelling
85e0: 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a   errors.</li>.}.
85f0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
8600: 32 33 20 28 31 2e 30 2e 31 35 29 7d 20 7b 0a 3c  23 (1.0.15)} {.<
8610: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
8620: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
8630: 69 3e 53 6f 6d 65 20 73 61 6e 69 74 79 20 63 68  i>Some sanity ch
8640: 65 63 6b 69 6e 67 20 63 6f 64 65 20 77 61 73 20  ecking code was 
8650: 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65  removed from the
8660: 20 69 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66 20 76   inner loop of v
8670: 64 62 65 2e 63 0a 20 20 20 20 74 6f 20 68 65 6c  dbe.c.    to hel
8680: 70 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f  p the library to
8690: 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61   run a little fa
86a0: 73 74 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20  ster.  The code 
86b0: 69 73 20 6f 6e 6c 79 0a 20 20 20 20 72 65 6d 6f  is only.    remo
86c0: 76 65 64 20 69 66 20 79 6f 75 20 63 6f 6d 70 69  ved if you compi
86d0: 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42 55 47  le with -DNDEBUG
86e0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
86f0: 32 30 30 30 20 4f 63 74 20 31 39 20 28 31 2e 30  2000 Oct 19 (1.0
8700: 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  .14)} {.<li>Adde
8710: 64 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 62 61  d a "memory:" ba
8720: 63 6b 65 6e 64 20 64 72 69 76 65 72 20 74 68 61  ckend driver tha
8730: 74 20 73 74 6f 72 65 73 20 69 74 73 20 64 61 74  t stores its dat
8740: 61 62 61 73 65 20 69 6e 20 61 6e 0a 20 20 20 20  abase in an.    
8750: 69 6e 2d 6d 65 6d 6f 72 79 20 68 61 73 68 20 74  in-memory hash t
8760: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  able.</li>.}..ch
8770: 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 38 20  ng {2000 Oct 18 
8780: 28 31 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.13)} {.<li>
8790: 42 72 65 61 6b 20 6f 75 74 20 74 68 65 20 47 44  Break out the GD
87a0: 42 4d 20 64 72 69 76 65 72 20 69 6e 74 6f 20 61  BM driver into a
87b0: 20 73 65 70 61 72 61 74 65 20 66 69 6c 65 20 69   separate file i
87c0: 6e 20 61 6e 74 69 63 69 70 61 74 69 6f 6e 0a 20  n anticipation. 
87d0: 20 20 20 74 6f 20 61 64 64 65 64 20 6e 65 77 20     to added new 
87e0: 64 72 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  drivers.</li>.<l
87f0: 69 3e 41 6c 6c 6f 77 20 74 68 65 20 6e 61 6d 65  i>Allow the name
8800: 20 6f 66 20 61 20 64 61 74 61 62 61 73 65 20 74   of a database t
8810: 6f 20 62 65 20 70 72 65 66 69 78 65 64 20 62 79  o be prefixed by
8820: 20 74 68 65 20 64 72 69 76 65 72 20 74 79 70 65   the driver type
8830: 2e 0a 20 20 20 20 46 6f 72 20 6e 6f 77 2c 20 74  ..    For now, t
8840: 68 65 20 6f 6e 6c 79 20 64 72 69 76 65 72 20 74  he only driver t
8850: 79 70 65 20 69 73 20 22 67 64 62 6d 3a 22 2e 3c  ype is "gdbm:".<
8860: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8870: 30 30 20 4f 63 74 20 31 36 20 28 31 2e 30 2e 31  00 Oct 16 (1.0.1
8880: 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65 64 20  2)} {.<li>Fixed 
8890: 61 6e 20 6f 66 66 2d 62 79 2d 6f 6e 65 20 65 72  an off-by-one er
88a0: 72 6f 72 20 74 68 61 74 20 77 61 73 20 63 61 75  ror that was cau
88b0: 73 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 20  sing a coredump 
88c0: 69 6e 20 0a 20 20 20 20 74 68 65 20 27 25 71 27  in .    the '%q'
88d0: 20 66 6f 72 6d 61 74 20 64 69 72 65 63 74 69 76   format directiv
88e0: 65 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20  e of the new.   
88f0: 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70   <b>sqlite_..._p
8900: 72 69 6e 74 66 28 29 3c 2f 62 3e 20 72 6f 75 74  rintf()</b> rout
8910: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ines.</li>.<li>A
8920: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
8930: 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f  te_interrupt()</
8940: 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  b> interface.</l
8950: 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 68  i>.<li>In the sh
8960: 65 6c 6c 2c 20 3c 62 3e 73 71 6c 69 74 65 5f 69  ell, <b>sqlite_i
8970: 6e 74 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69  nterrupt()</b> i
8980: 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74  s invoked when t
8990: 68 65 0a 20 20 20 20 75 73 65 72 20 70 72 65 73  he.    user pres
89a0: 73 65 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c  ses Control-C</l
89b0: 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d  i>.<li>Fixed som
89c0: 65 20 69 6e 73 74 61 6e 63 65 73 20 77 68 65 72  e instances wher
89d0: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63  e <b>sqlite_exec
89e0: 28 29 3c 2f 62 3e 20 77 61 73 0a 20 20 20 20 72  ()</b> was.    r
89f0: 65 74 75 72 6e 69 6e 67 20 74 68 65 20 77 72 6f  eturning the wro
8a00: 6e 67 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c 2f  ng error code.</
8a10: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8a20: 30 20 4f 63 74 20 31 31 20 28 31 2e 30 2e 31 30  0 Oct 11 (1.0.10
8a30: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  )} {.<li>Added n
8a40: 6f 74 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20 63  otes on how to c
8a50: 6f 6d 70 69 6c 65 20 66 6f 72 20 57 69 6e 64 6f  ompile for Windo
8a60: 77 73 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c  ws95/98.</li>.<l
8a70: 69 3e 52 65 6d 6f 76 65 64 20 61 20 66 65 77 20  i>Removed a few 
8a80: 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 77  variables that w
8a90: 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 75 73  ere not being us
8aa0: 65 64 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e 0a 7d  ed.  Etc.</li>.}
8ab0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
8ac0: 20 38 20 28 31 2e 30 2e 39 29 7d 20 7b 0a 3c 6c   8 (1.0.9)} {.<l
8ad0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
8ae0: 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66  qlite_..._printf
8af0: 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65  ()</b> interface
8b00: 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a   routines.</li>.
8b10: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
8b20: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
8b30: 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20  hell program to 
8b40: 75 73 65 20 74 68 65 20 6e 65 77 20 69 6e 74 65  use the new inte
8b50: 72 66 61 63 65 20 0a 20 20 20 20 72 6f 75 74 69  rface .    routi
8b60: 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  nes.</li>.<li>Mo
8b70: 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71  dified the <b>sq
8b80: 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70  lite</b> shell p
8b90: 72 6f 67 72 61 6d 20 74 6f 20 70 72 69 6e 74 20  rogram to print 
8ba0: 74 68 65 20 73 63 68 65 6d 61 20 66 6f 72 0a 20  the schema for. 
8bb0: 20 20 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20     the built-in 
8bc0: 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61  SQLITE_MASTER ta
8bd0: 62 6c 65 2c 20 69 66 20 65 78 70 6c 69 63 69 74  ble, if explicit
8be0: 6c 79 20 72 65 71 75 65 73 74 65 64 2e 3c 2f 6c  ly requested.</l
8bf0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
8c00: 20 53 65 70 20 33 30 20 28 31 2e 30 2e 38 29 7d   Sep 30 (1.0.8)}
8c10: 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69   {.<li>Begin wri
8c20: 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69  ting documentati
8c30: 6f 6e 20 6f 6e 20 74 68 65 20 54 43 4c 20 69 6e  on on the TCL in
8c40: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a  terface.</li>.}.
8c50: 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20  .chng {2000 Sep 
8c60: 32 39 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64  29 (Not Released
8c70: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
8c80: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74  he <b>sqlite_get
8c90: 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20 41 50 49  _table()</b> API
8ca0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65  </li>.<li>Update
8cb0: 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74  d the documentat
8cc0: 69 6f 6e 20 66 6f 72 20 64 75 65 20 74 6f 20 74  ion for due to t
8cd0: 68 65 20 61 62 6f 76 65 20 63 68 61 6e 67 65 2e  he above change.
8ce0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
8cf0: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
8d00: 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 6d 61  </b> shell to ma
8d10: 6b 65 20 75 73 65 20 6f 66 20 74 68 65 20 6e 65  ke use of the ne
8d20: 77 0a 20 20 20 20 73 71 6c 69 74 65 5f 67 65 74  w.    sqlite_get
8d30: 5f 74 61 62 6c 65 28 29 20 41 50 49 20 69 6e 20  _table() API in 
8d40: 6f 72 64 65 72 20 74 6f 20 70 72 69 6e 74 20 61  order to print a
8d50: 20 6c 69 73 74 20 6f 66 20 74 61 62 6c 65 73 0a   list of tables.
8d60: 20 20 20 20 69 6e 20 6d 75 6c 74 69 70 6c 65 20      in multiple 
8d70: 63 6f 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c 61 72  columns, similar
8d80: 20 74 6f 20 74 68 65 20 77 61 79 20 22 6c 73 22   to the way "ls"
8d90: 20 70 72 69 6e 74 73 20 66 69 6c 65 6e 61 6d 65   prints filename
8da0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  s.</li>.<li>Modi
8db0: 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  fied the <b>sqli
8dc0: 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20  te</b> shell to 
8dd0: 70 72 69 6e 74 20 61 20 73 65 6d 69 63 6f 6c 6f  print a semicolo
8de0: 6e 20 61 74 20 74 68 65 0a 20 20 20 20 65 6e 64  n at the.    end
8df0: 20 6f 66 20 65 61 63 68 20 43 52 45 41 54 45 20   of each CREATE 
8e00: 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65  statement in the
8e10: 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 22   output of the "
8e20: 2e 73 63 68 65 6d 61 22 20 63 6f 6d 6d 61 6e 64  .schema" command
8e30: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8e40: 32 30 30 30 20 53 65 70 20 32 31 20 28 4e 6f 74  2000 Sep 21 (Not
8e50: 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c   Released)} {.<l
8e60: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 74 63 6c  i>Change the tcl
8e70: 73 71 6c 69 74 65 20 22 65 76 61 6c 22 20 6d 65  sqlite "eval" me
8e80: 74 68 6f 64 20 74 6f 20 72 65 74 75 72 6e 20 61  thod to return a
8e90: 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73   list of results
8ea0: 20 69 66 0a 20 20 20 20 6e 6f 20 63 61 6c 6c 62   if.    no callb
8eb0: 61 63 6b 20 73 63 72 69 70 74 20 69 73 20 73 70  ack script is sp
8ec0: 65 63 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  ecified.</li>.<l
8ed0: 69 3e 43 68 61 6e 67 65 20 74 63 6c 73 71 6c 69  i>Change tclsqli
8ee0: 74 65 2e 63 20 74 6f 20 75 73 65 20 74 68 65 20  te.c to use the 
8ef0: 54 63 6c 5f 4f 62 6a 20 69 6e 74 65 72 66 61 63  Tcl_Obj interfac
8f00: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  e</li>.<li>Add t
8f10: 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 74 68  clsqlite.c to th
8f20: 65 20 6c 69 62 73 71 6c 69 74 65 2e 61 20 6c 69  e libsqlite.a li
8f30: 62 72 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  brary</li>.}..ch
8f40: 6e 67 20 7b 32 30 30 30 20 53 65 70 20 31 33 20  ng {2000 Sep 13 
8f50: 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 35 29 7d  (Version 1.0.5)}
8f60: 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74   {.<li>Changed t
8f70: 68 65 20 70 72 69 6e 74 20 66 6f 72 6d 61 74 20  he print format 
8f80: 66 6f 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69  for floating poi
8f90: 6e 74 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 22  nt values from "
8fa0: 25 67 22 20 74 6f 20 22 25 2e 31 35 67 22 2e 0a  %g" to "%.15g"..
8fb0: 20 20 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68      </li>.<li>Ch
8fc0: 61 6e 67 65 64 20 74 68 65 20 63 6f 6d 70 61 72  anged the compar
8fd0: 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 73 6f  ison function so
8fe0: 20 74 68 61 74 20 6e 75 6d 62 65 72 73 20 69 6e   that numbers in
8ff0: 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20 6e 6f 74   exponential not
9000: 61 74 69 6f 6e 0a 20 20 20 20 28 65 78 3a 20 31  ation.    (ex: 1
9010: 2e 32 33 34 65 2b 30 35 29 20 73 6f 72 74 20 69  .234e+05) sort i
9020: 6e 20 6e 75 6d 65 72 69 63 61 6c 20 6f 72 64 65  n numerical orde
9030: 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  r.</li>.}..chng 
9040: 7b 32 30 30 30 20 41 75 67 20 32 38 20 28 56 65  {2000 Aug 28 (Ve
9050: 72 73 69 6f 6e 20 31 2e 30 2e 34 29 7d 20 7b 0a  rsion 1.0.4)} {.
9060: 3c 6c 69 3e 41 64 64 65 64 20 66 75 6e 63 74 69  <li>Added functi
9070: 6f 6e 73 20 3c 62 3e 6c 65 6e 67 74 68 28 29 3c  ons <b>length()<
9080: 2f 62 3e 20 61 6e 64 20 3c 62 3e 73 75 62 73 74  /b> and <b>subst
9090: 72 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c  r()</b>.</li>.<l
90a0: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
90b0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
90c0: 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74   shell program t
90d0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 0a  hat was causing.
90e0: 20 20 20 20 61 20 63 6f 72 65 64 75 6d 70 20 77      a coredump w
90f0: 68 65 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6d  hen the output m
9100: 6f 64 65 20 77 61 73 20 22 63 6f 6c 75 6d 6e 22  ode was "column"
9110: 20 61 6e 64 20 74 68 65 20 66 69 72 73 74 20 72   and the first r
9120: 6f 77 0a 20 20 20 20 6f 66 20 64 61 74 61 20 63  ow.    of data c
9130: 6f 6e 74 61 69 6e 65 64 20 61 20 4e 55 4c 4c 2e  ontained a NULL.
9140: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
9150: 30 30 30 20 41 75 67 20 32 32 20 28 56 65 72 73  000 Aug 22 (Vers
9160: 69 6f 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a 3c 6c  ion 1.0.3)} {.<l
9170: 69 3e 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20  i>In the sqlite 
9180: 73 68 65 6c 6c 2c 20 70 72 69 6e 74 20 74 68 65  shell, print the
9190: 20 22 44 61 74 61 62 61 73 65 20 6f 70 65 6e 65   "Database opene
91a0: 64 20 52 45 41 44 20 4f 4e 4c 59 22 20 6d 65 73  d READ ONLY" mes
91b0: 73 61 67 65 0a 20 20 20 20 74 6f 20 73 74 64 65  sage.    to stde
91c0: 72 72 20 69 6e 73 74 65 61 64 20 6f 66 20 73 74  rr instead of st
91d0: 64 6f 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  dout.</li>.<li>I
91e0: 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73 68 65  n the sqlite she
91f0: 6c 6c 2c 20 6e 6f 77 20 70 72 69 6e 74 20 74 68  ll, now print th
9200: 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  e version number
9210: 20 6f 6e 20 69 6e 69 74 69 61 6c 20 73 74 61 72   on initial star
9220: 74 75 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  tup.</li>.<li>Ad
9230: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  d the <b>sqlite_
9240: 76 65 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20 73 74  version[]</b> st
9250: 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 20 74 6f  ring constant to
9260: 20 74 68 65 20 6c 69 62 72 61 72 79 3c 2f 6c 69   the library</li
9270: 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75  >.<li>Makefile u
9280: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
9290: 42 75 67 20 66 69 78 3a 20 69 6e 63 6f 72 72 65  Bug fix: incorre
92a0: 63 74 20 56 44 42 45 20 63 6f 64 65 20 77 61 73  ct VDBE code was
92b0: 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64   being generated
92c0: 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69   for the followi
92d0: 6e 67 0a 20 20 20 20 63 69 72 63 75 6d 73 74 61  ng.    circumsta
92e0: 6e 63 65 3a 20 61 20 71 75 65 72 79 20 6f 6e 20  nce: a query on 
92f0: 61 6e 20 69 6e 64 65 78 65 64 20 74 61 62 6c 65  an indexed table
9300: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 48   containing a WH
9310: 45 52 45 20 63 6c 61 75 73 65 20 77 69 74 68 0a  ERE clause with.
9320: 20 20 20 20 61 6e 20 49 4e 20 6f 70 65 72 61 74      an IN operat
9330: 6f 72 20 74 68 61 74 20 68 61 64 20 61 20 73 75  or that had a su
9340: 62 71 75 65 72 79 20 6f 6e 20 69 74 73 20 72 69  bquery on its ri
9350: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 2e 3c 2f  ght-hand side.</
9360: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
9370: 30 20 41 75 67 20 31 38 20 28 56 65 72 73 69 6f  0 Aug 18 (Versio
9380: 6e 20 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.1)} {.<li>
9390: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
93a0: 20 63 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70   configure scrip
93b0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f  t.</li>.<li>Mino
93c0: 72 20 72 65 76 69 73 69 6f 6e 73 20 74 6f 20 74  r revisions to t
93d0: 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e  he website.</li>
93e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
93f0: 75 67 20 31 37 20 28 56 65 72 73 69 6f 6e 20 31  ug 17 (Version 1
9400: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
9410: 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  e the <b>sqlite<
9420: 2f 62 3e 20 70 72 6f 67 72 61 6d 20 73 6f 20 74  /b> program so t
9430: 68 61 74 20 69 74 20 63 61 6e 20 72 65 61 64 0a  hat it can read.
9440: 20 20 20 20 64 61 74 61 62 61 73 65 73 20 66 6f      databases fo
9450: 72 20 77 68 69 63 68 20 69 74 20 6c 61 63 6b 73  r which it lacks
9460: 20 77 72 69 74 65 20 70 65 72 6d 69 73 73 69 6f   write permissio
9470: 6e 2e 20 20 28 49 74 20 75 73 65 64 20 74 6f 0a  n.  (It used to.
9480: 20 20 20 20 72 65 66 75 73 65 20 61 6c 6c 20 61      refuse all a
9490: 63 63 65 73 73 20 69 66 20 69 74 20 63 6f 75 6c  ccess if it coul
94a0: 64 20 6e 6f 74 20 77 72 69 74 65 2e 29 3c 2f 6c  d not write.)</l
94b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
94c0: 20 41 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e 54 72   Aug 9} {.<li>Tr
94d0: 65 61 74 20 63 61 72 72 69 61 67 65 20 72 65 74  eat carriage ret
94e0: 75 72 6e 73 20 61 73 20 77 68 69 74 65 20 73 70  urns as white sp
94f0: 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ace.</li>.}..chn
9500: 67 20 7b 32 30 30 30 20 41 75 67 20 38 7d 20 7b  g {2000 Aug 8} {
9510: 0a 3c 6c 69 3e 41 64 64 65 64 20 70 61 74 74 65  .<li>Added patte
9520: 72 6e 20 6d 61 74 63 68 69 6e 67 20 74 6f 20 74  rn matching to t
9530: 68 65 20 22 2e 74 61 62 6c 65 22 20 63 6f 6d 6d  he ".table" comm
9540: 61 6e 64 20 69 6e 20 74 68 65 20 22 73 71 6c 69  and in the "sqli
9550: 74 65 22 0a 63 6f 6d 6d 61 6e 64 20 73 68 65 6c  te".command shel
9560: 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  l.</li>.}..chng 
9570: 7b 32 30 30 30 20 41 75 67 20 34 7d 20 7b 0a 3c  {2000 Aug 4} {.<
9580: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
9590: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
95a0: 69 3e 41 64 64 65 64 20 22 62 75 73 79 22 20 61  i>Added "busy" a
95b0: 6e 64 20 22 74 69 6d 65 6f 75 74 22 20 6d 65 74  nd "timeout" met
95c0: 68 6f 64 73 20 74 6f 20 74 68 65 20 54 63 6c 20  hods to the Tcl 
95d0: 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 7d  interface</li>.}
95e0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
95f0: 20 33 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65 20 66   3} {.<li>File f
9600: 6f 72 6d 61 74 20 76 65 72 73 69 6f 6e 20 6e 75  ormat version nu
9610: 6d 62 65 72 20 77 61 73 20 62 65 69 6e 67 20 73  mber was being s
9620: 74 6f 72 65 64 20 69 6e 20 73 71 6c 69 74 65 5f  tored in sqlite_
9630: 6d 61 73 74 65 72 2e 74 63 6c 0a 20 20 20 20 6d  master.tcl.    m
9640: 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 20 54  ultiple times. T
9650: 68 69 73 20 77 61 73 20 68 61 72 6d 6c 65 73 73  his was harmless
9660: 2c 20 62 75 74 20 75 6e 6e 65 63 65 73 73 61 72  , but unnecessar
9670: 79 2e 20 49 74 20 69 73 20 6e 6f 77 20 66 69 78  y. It is now fix
9680: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
9690: 20 7b 32 30 30 30 20 41 75 67 20 32 7d 20 7b 0a   {2000 Aug 2} {.
96a0: 3c 6c 69 3e 54 68 65 20 66 69 6c 65 20 66 6f 72  <li>The file for
96b0: 6d 61 74 20 66 6f 72 20 69 6e 64 69 63 65 73 20  mat for indices 
96c0: 77 61 73 20 63 68 61 6e 67 65 64 20 73 6c 69 67  was changed slig
96d0: 68 74 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f  htly in order to
96e0: 20 77 6f 72 6b 0a 20 20 20 20 61 72 6f 75 6e 64   work.    around
96f0: 20 61 6e 20 69 6e 65 66 66 69 63 69 65 6e 63 79   an inefficiency
9700: 20 74 68 61 74 20 63 61 6e 20 73 6f 6d 65 74 69   that can someti
9710: 6d 65 73 20 63 6f 6d 65 20 75 70 20 77 69 74 68  mes come up with
9720: 20 47 44 42 4d 20 77 68 65 6e 0a 20 20 20 20 74   GDBM when.    t
9730: 68 65 72 65 20 61 72 65 20 6c 61 72 67 65 20 69  here are large i
9740: 6e 64 69 63 65 73 20 68 61 76 69 6e 67 20 6d 61  ndices having ma
9750: 6e 79 20 65 6e 74 72 69 65 73 20 77 69 74 68 20  ny entries with 
9760: 74 68 65 20 73 61 6d 65 20 6b 65 79 2e 0a 20 20  the same key..  
9770: 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72    <font color="r
9780: 65 64 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61 74 69  ed">** Incompati
9790: 62 6c 65 20 43 68 61 6e 67 65 20 2a 2a 3c 2f 66  ble Change **</f
97a0: 6f 6e 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ont></li>.}..chn
97b0: 67 20 7b 32 30 30 30 20 41 75 67 20 31 7d 20 7b  g {2000 Aug 1} {
97c0: 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65 72 27  .<li>The parser'
97d0: 73 20 73 74 61 63 6b 20 77 61 73 20 6f 76 65 72  s stack was over
97e0: 66 6c 6f 77 69 6e 67 20 6f 6e 20 61 20 76 65 72  flowing on a ver
97f0: 79 20 6c 6f 6e 67 20 55 50 44 41 54 45 20 73 74  y long UPDATE st
9800: 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20 54 68 69  atement..    Thi
9810: 73 20 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c  s is now fixed.<
9820: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9830: 30 30 20 4a 75 6c 79 20 33 31 7d 20 7b 0a 3c 6c  00 July 31} {.<l
9840: 69 3e 46 69 6e 69 73 68 20 74 68 65 20 3c 61 20  i>Finish the <a 
9850: 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22  href="vdbe.html"
9860: 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f  >VDBE tutorial</
9870: 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  a>.</li>.<li>Add
9880: 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ed documentation
9890: 20 6f 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 74 6f   on compiling to
98a0: 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e   WindowsNT.</li>
98b0: 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69  .<li>Fix a confi
98c0: 67 75 72 61 74 69 6f 6e 20 70 72 6f 67 72 61 6d  guration program
98d0: 20 66 6f 72 20 57 69 6e 64 6f 77 73 4e 54 2e 3c   for WindowsNT.<
98e0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63  /li>.<li>Fix a c
98f0: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f  onfiguration pro
9900: 62 6c 65 6d 20 66 6f 72 20 48 50 55 58 2e 3c 2f  blem for HPUX.</
9910: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
9920: 30 20 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c 6c 69  0 July 29} {.<li
9930: 3e 42 65 74 74 65 72 20 6c 61 62 65 6c 73 20 6f  >Better labels o
9940: 6e 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6f  n column names o
9950: 66 20 74 68 65 20 72 65 73 75 6c 74 2e 3c 2f 6c  f the result.</l
9960: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
9970: 20 4a 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c 69 3e   July 28} {.<li>
9980: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
9990: 69 74 65 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72  ite_busy_handler
99a0: 28 29 3c 2f 62 3e 20 0a 20 20 20 20 61 6e 64 20  ()</b> .    and 
99b0: 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74  <b>sqlite_busy_t
99c0: 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 69 6e 74  imeout()</b> int
99d0: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  erface.</li>.}..
99e0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
99f0: 32 33 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20  23} {.<li>Begin 
9a00: 77 72 69 74 69 6e 67 20 74 68 65 20 3c 61 20 68  writing the <a h
9a10: 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e  ref="vdbe.html">
9a20: 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61  VDBE tutorial</a
9a30: 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  >.</li>.}..chng 
9a40: 7b 32 30 30 30 20 4a 75 6e 65 20 32 31 7d 20 7b  {2000 June 21} {
9a50: 0a 3c 6c 69 3e 43 6c 65 61 6e 20 75 70 20 63 6f  .<li>Clean up co
9a60: 6d 6d 65 6e 74 73 20 61 6e 64 20 76 61 72 69 61  mments and varia
9a70: 62 6c 65 20 6e 61 6d 65 73 2e 20 20 43 68 61 6e  ble names.  Chan
9a80: 67 65 73 20 74 6f 20 64 6f 63 75 6d 65 6e 74 61  ges to documenta
9a90: 74 69 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66 75 6e  tion..    No fun
9aa0: 63 74 69 6f 6e 61 6c 20 63 68 61 6e 67 65 73 20  ctional changes 
9ab0: 74 6f 20 74 68 65 20 63 6f 64 65 2e 3c 2f 6c 69  to the code.</li
9ac0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
9ad0: 4a 75 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69 3e 43  June 19} {.<li>C
9ae0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 55  olumn names in U
9af0: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73  PDATE statements
9b00: 20 77 65 72 65 20 63 61 73 65 20 73 65 6e 73 69   were case sensi
9b10: 74 69 76 65 2e 0a 20 20 20 20 54 68 69 73 20 6d  tive..    This m
9b20: 69 73 74 61 6b 65 20 68 61 73 20 6e 6f 77 20 62  istake has now b
9b30: 65 65 6e 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a  een fixed.</li>.
9b40: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
9b50: 6e 65 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64  ne 16} {.<li>Add
9b60: 65 64 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61  ed the concatena
9b70: 74 65 20 73 74 72 69 6e 67 20 6f 70 65 72 61 74  te string operat
9b80: 6f 72 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a  or (||)</li>.}..
9b90: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
9ba0: 31 32 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  12} {.<li>Added 
9bb0: 74 68 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74  the fcnt() funct
9bc0: 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 20 69  ion to the SQL i
9bd0: 6e 74 65 72 70 72 65 74 65 72 2e 20 20 54 68 65  nterpreter.  The
9be0: 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e   fcnt() function
9bf0: 0a 20 20 20 20 72 65 74 75 72 6e 73 20 74 68 65  .    returns the
9c00: 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 74 61 62   number of datab
9c10: 61 73 65 20 22 46 65 74 63 68 22 20 6f 70 65 72  ase "Fetch" oper
9c20: 61 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65  ations that have
9c30: 20 6f 63 63 75 72 72 65 64 2e 0a 20 20 20 20 54   occurred..    T
9c40: 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20  his function is 
9c50: 64 65 73 69 67 6e 65 64 20 66 6f 72 20 75 73 65  designed for use
9c60: 20 69 6e 20 74 65 73 74 20 73 63 72 69 70 74 73   in test scripts
9c70: 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 0a   to verify that.
9c80: 20 20 20 20 71 75 65 72 69 65 73 20 61 72 65 20      queries are 
9c90: 65 66 66 69 63 69 65 6e 74 20 61 6e 64 20 61 70  efficient and ap
9ca0: 70 72 6f 70 72 69 61 74 65 6c 79 20 6f 70 74 69  propriately opti
9cb0: 6d 69 7a 65 64 2e 20 20 46 63 6e 74 28 29 20 68  mized.  Fcnt() h
9cc0: 61 73 20 6e 6f 20 6f 74 68 65 72 0a 20 20 20 20  as no other.    
9cd0: 75 73 65 66 75 6c 20 70 75 72 70 6f 73 65 2c 20  useful purpose, 
9ce0: 61 73 20 66 61 72 20 61 73 20 49 20 6b 6e 6f 77  as far as I know
9cf0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
9d00: 20 61 20 62 75 6e 63 68 20 6d 6f 72 65 20 74 65   a bunch more te
9d10: 73 74 73 20 74 68 61 74 20 74 61 6b 65 20 61 64  sts that take ad
9d20: 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65 20 6e  vantage of the n
9d30: 65 77 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69  ew fcnt() functi
9d40: 6f 6e 2e 0a 20 20 20 20 54 68 65 20 6e 65 77 20  on..    The new 
9d50: 74 65 73 74 73 20 64 69 64 20 6e 6f 74 20 75 6e  tests did not un
9d60: 63 6f 76 65 72 20 61 6e 79 20 6e 65 77 20 70 72  cover any new pr
9d70: 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  oblems.</li>.}..
9d80: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
9d90: 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c  8} {.<li>Added l
9da0: 6f 74 73 20 6f 66 20 6e 65 77 20 74 65 73 74 20  ots of new test 
9db0: 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  cases</li>.<li>F
9dc0: 69 78 20 61 20 66 65 77 20 62 75 67 73 20 64 69  ix a few bugs di
9dd0: 73 63 6f 76 65 72 65 64 20 77 68 69 6c 65 20 61  scovered while a
9de0: 64 64 69 6e 67 20 74 65 73 74 20 63 61 73 65 73  dding test cases
9df0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69 6e 20  </li>.<li>Begin 
9e00: 61 64 64 69 6e 67 20 6c 6f 74 73 20 6f 66 20 6e  adding lots of n
9e10: 65 77 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ew documentation
9e20: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
9e30: 30 30 30 20 4a 75 6e 65 20 36 7d 20 7b 0a 3c 6c  000 June 6} {.<l
9e40: 69 3e 41 64 64 65 64 20 63 6f 6d 70 6f 75 6e 64  i>Added compound
9e50: 20 73 65 6c 65 63 74 20 6f 70 65 72 61 74 6f 72   select operator
9e60: 73 3a 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c  s: <B>UNION</b>,
9e70: 20 3c 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 42   <b>UNION ALL</B
9e80: 3e 2c 0a 3c 62 3e 49 4e 54 45 52 53 45 43 54 3c  >,.<b>INTERSECT<
9e90: 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 45 58 43 45  /b>, and <b>EXCE
9ea0: 50 54 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  PT</b></li>.<li>
9eb0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
9ec0: 72 20 75 73 69 6e 67 20 3c 62 3e 28 53 45 4c 45  r using <b>(SELE
9ed0: 43 54 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69 74 68  CT ...)</b> with
9ee0: 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f  in expressions</
9ef0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
9f00: 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 49 4e 3c  pport for <b>IN<
9f10: 2f 62 3e 20 61 6e 64 20 3c 62 3e 42 45 54 57 45  /b> and <b>BETWE
9f20: 45 4e 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 73  EN</b> operators
9f30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
9f40: 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 47  support for <b>G
9f50: 52 4f 55 50 20 42 59 3c 2f 62 3e 20 61 6e 64 20  ROUP BY</b> and 
9f60: 3c 62 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c 2f 6c  <b>HAVING</b></l
9f70: 69 3e 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61 6c 75  i>.<li>NULL valu
9f80: 65 73 20 61 72 65 20 6e 6f 77 20 72 65 70 6f 72  es are now repor
9f90: 74 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62  ted to the callb
9fa0: 61 63 6b 20 61 73 20 61 20 4e 55 4c 4c 20 70 6f  ack as a NULL po
9fb0: 69 6e 74 65 72 0a 20 20 20 20 72 61 74 68 65 72  inter.    rather
9fc0: 20 74 68 61 6e 20 61 6e 20 65 6d 70 74 79 20 73   than an empty s
9fd0: 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tring.</li>.}..c
9fe0: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 33  hng {2000 June 3
9ff0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  } {.<li>Added su
a000: 70 70 6f 72 74 20 66 6f 72 20 64 65 66 61 75 6c  pport for defaul
a010: 74 20 76 61 6c 75 65 73 20 6f 6e 20 63 6f 6c 75  t values on colu
a020: 6d 6e 73 20 6f 66 20 61 20 74 61 62 6c 65 2e 3c  mns of a table.<
a030: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
a040: 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65 2e  d test coverage.
a050: 20 20 46 69 78 65 64 20 61 20 66 65 77 20 6f 62    Fixed a few ob
a060: 73 63 75 72 65 20 62 75 67 73 20 66 6f 75 6e 64  scure bugs found
a070: 20 62 79 20 74 68 65 0a 69 6d 70 72 6f 76 65 64   by the.improved
a080: 20 74 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   tests.</li>.}..
a090: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
a0a0: 32 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64 61 74  2} {.<li>All dat
a0b0: 61 62 61 73 65 20 66 69 6c 65 73 20 74 6f 20 62  abase files to b
a0c0: 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 61 6e  e modified by an
a0d0: 20 55 50 44 41 54 45 2c 20 49 4e 53 45 52 54 20   UPDATE, INSERT 
a0e0: 6f 72 20 44 45 4c 45 54 45 20 61 72 65 20 0a 6e  or DELETE are .n
a0f0: 6f 77 20 6c 6f 63 6b 65 64 20 62 65 66 6f 72 65  ow locked before
a100: 20 61 6e 79 20 63 68 61 6e 67 65 73 20 61 72 65   any changes are
a110: 20 6d 61 64 65 20 74 6f 20 61 6e 79 20 66 69 6c   made to any fil
a120: 65 73 2e 20 20 0a 54 68 69 73 20 6d 61 6b 65 73  es.  .This makes
a130: 20 69 74 20 73 61 66 65 20 28 49 20 74 68 69 6e   it safe (I thin
a140: 6b 29 20 74 6f 20 61 63 63 65 73 73 0a 74 68 65  k) to access.the
a150: 20 73 61 6d 65 20 64 61 74 61 62 61 73 65 20 73   same database s
a160: 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 66 72  imultaneously fr
a170: 6f 6d 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 63  om multiple proc
a180: 65 73 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  esses.</li>.<li>
a190: 54 68 65 20 63 6f 64 65 20 61 70 70 65 61 72 73  The code appears
a1a0: 20 73 74 61 62 6c 65 20 73 6f 20 77 65 20 61 72   stable so we ar
a1b0: 65 20 6e 6f 77 20 63 61 6c 6c 69 6e 67 20 69 74  e now calling it
a1c0: 20 22 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a   "beta".</li>.}.
a1d0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
a1e0: 20 31 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72   1} {.<li>Better
a1f0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 69 6c   support for fil
a200: 65 20 6c 6f 63 6b 69 6e 67 20 73 6f 20 74 68 61  e locking so tha
a210: 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 70 72  t two or more pr
a220: 6f 63 65 73 73 65 73 20 0a 28 6f 72 20 74 68 72  ocesses .(or thr
a230: 65 61 64 73 29 0a 63 61 6e 20 61 63 63 65 73 73  eads).can access
a240: 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61   the same databa
a250: 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c  se simultaneousl
a260: 79 2e 20 20 4d 6f 72 65 20 77 6f 72 6b 20 6e 65  y.  More work ne
a270: 65 64 65 64 20 69 6e 0a 74 68 69 73 20 61 72 65  eded in.this are
a280: 61 2c 20 74 68 6f 75 67 68 2e 3c 2f 6c 69 3e 0a  a, though.</li>.
a290: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61  }..chng {2000 Ma
a2a0: 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  y 31} {.<li>Adde
a2b0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 67  d support for ag
a2c0: 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e  gregate function
a2d0: 73 20 28 45 78 3a 20 3c 62 3e 43 4f 55 4e 54 28  s (Ex: <b>COUNT(
a2e0: 2a 29 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e 28 2e  *)</b>, <b>MIN(.
a2f0: 2e 2e 29 3c 2f 62 3e 29 0a 74 6f 20 74 68 65 20  ..)</b>).to the 
a300: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
a310: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
a320: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 42 3e   support for <B>
a330: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
a340: 2e 2e 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a  ...</B></li>.}..
a350: 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33  chng {2000 May 3
a360: 30 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  0} {.<li>Added t
a370: 68 65 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e 20 6f  he <b>LIKE</b> o
a380: 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c  perator.</li>.<l
a390: 69 3e 41 64 64 65 64 20 61 20 3c 62 3e 47 4c 4f  i>Added a <b>GLO
a3a0: 42 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 3a 20  B</b> operator: 
a3b0: 73 69 6d 69 6c 61 72 20 74 6f 20 3c 42 3e 4c 49  similar to <B>LI
a3c0: 4b 45 3c 2f 42 3e 20 0a 62 75 74 20 69 74 20 75  KE</B> .but it u
a3d0: 73 65 73 20 55 6e 69 78 20 73 68 65 6c 6c 20 67  ses Unix shell g
a3e0: 6c 6f 62 62 69 6e 67 20 77 69 6c 64 63 61 72 64  lobbing wildcard
a3f0: 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65  s instead of the
a400: 20 27 25 27 20 0a 61 6e 64 20 27 5f 27 20 77 69   '%' .and '_' wi
a410: 6c 64 63 61 72 64 73 20 6f 66 20 53 51 4c 2e 3c  ldcards of SQL.<
a420: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
a430: 68 65 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e 20 63  he <B>COPY</b> c
a440: 6f 6d 6d 61 6e 64 20 70 61 74 74 65 72 6e 65 64  ommand patterned
a450: 20 61 66 74 65 72 20 0a 3c 61 20 68 72 65 66 3d   after .<a href=
a460: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74  "http://www.post
a470: 67 72 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f 73  gresql.org/">Pos
a480: 74 67 72 65 53 51 4c 3c 2f 61 3e 20 73 6f 20 74  tgreSQL</a> so t
a490: 68 61 74 20 53 51 4c 69 74 65 0a 63 61 6e 20 6e  hat SQLite.can n
a4a0: 6f 77 20 72 65 61 64 20 74 68 65 20 6f 75 74 70  ow read the outp
a4b0: 75 74 20 6f 66 20 74 68 65 20 3c 62 3e 70 67 5f  ut of the <b>pg_
a4c0: 64 75 6d 70 3c 2f 62 3e 20 64 61 74 61 62 61 73  dump</b> databas
a4d0: 65 20 64 75 6d 70 20 75 74 69 6c 69 74 79 0a 6f  e dump utility.o
a4e0: 66 20 50 6f 73 74 67 72 65 53 51 4c 2e 3c 2f 6c  f PostgreSQL.</l
a4f0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c  i>.<li>Added a <
a500: 42 3e 56 41 43 55 55 4d 3c 2f 42 3e 20 63 6f 6d  B>VACUUM</B> com
a510: 6d 61 6e 64 20 74 68 61 74 20 74 68 61 74 20 63  mand that that c
a520: 61 6c 6c 73 20 74 68 65 20 0a 3c 62 3e 67 64 62  alls the .<b>gdb
a530: 6d 5f 72 65 6f 72 67 61 6e 69 7a 65 28 29 3c 2f  m_reorganize()</
a540: 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74  b> function on t
a550: 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 64 61  he underlying da
a560: 74 61 62 61 73 65 0a 66 69 6c 65 73 2e 3c 2f 6c  tabase.files.</l
a570: 69 3e 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e 79 2c  i>.<li>And many,
a580: 20 6d 61 6e 79 20 62 75 67 20 66 69 78 65 73 2e   many bug fixes.
a590: 2e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ..</li>.}..chng 
a5a0: 7b 32 30 30 30 20 4d 61 79 20 32 39 7d 20 7b 0a  {2000 May 29} {.
a5b0: 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 50 75 62 6c  <li>Initial Publ
a5c0: 69 63 20 52 65 6c 65 61 73 65 20 6f 66 20 41 6c  ic Release of Al
a5d0: 70 68 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a  pha code</li>.}.
a5e0: 0a 70 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a 3c 70  .puts {.</DL>.<p
a5f0: 3e 3c 68 72 20 2f 3e 3c 2f 70 3e 0a 3c 70 3e 3c  ><hr /></p>.<p><
a600: 61 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 68 74  a href="index.ht
a610: 6d 6c 22 3e 3c 69 6d 67 20 73 72 63 3d 22 2f 67  ml"><img src="/g
a620: 6f 62 61 63 6b 2e 6a 70 67 22 20 62 6f 72 64 65  oback.jpg" borde
a630: 72 3d 30 20 2f 3e 0a 42 61 63 6b 20 74 6f 20 74  r=0 />.Back to t
a640: 68 65 20 53 51 4c 69 74 65 20 48 6f 6d 65 20 50  he SQLite Home P
a650: 61 67 65 3c 2f 61 3e 0a 3c 2f 70 3e 0a 0a 3c 2f  age</a>.</p>..</
a660: 62 6f 64 79 3e 3c 2f 68 74 6d 6c 3e 7d 0a        body></html>}.