/ Hex Artifact Content
Login

Artifact 34c1ddc0920970e2d8f50dbfe7685bdcda66eece:


0000: 23 0a 23 20 52 75 6e 20 74 68 69 73 20 73 63 72  #.# Run this scr
0010: 69 70 74 20 74 6f 20 67 65 6e 65 72 61 74 65 64  ipt to generated
0020: 20 61 20 63 68 61 6e 67 65 73 2e 68 74 6d 6c 20   a changes.html 
0030: 6f 75 74 70 75 74 20 66 69 6c 65 0a 23 0a 73 6f  output file.#.so
0040: 75 72 63 65 20 63 6f 6d 6d 6f 6e 2e 74 63 6c 0a  urce common.tcl.
0050: 68 65 61 64 65 72 20 7b 53 51 4c 69 74 65 20 63  header {SQLite c
0060: 68 61 6e 67 65 73 7d 0a 70 75 74 73 20 7b 0a 3c  hanges}.puts {.<
0070: 70 3e 0a 54 68 69 73 20 70 61 67 65 20 70 72 6f  p>.This page pro
0080: 76 69 64 65 73 20 61 20 68 69 67 68 2d 6c 65 76  vides a high-lev
0090: 65 6c 20 73 75 6d 6d 61 72 79 20 6f 66 20 63 68  el summary of ch
00a0: 61 6e 67 65 73 20 74 6f 20 53 51 4c 69 74 65 2e  anges to SQLite.
00b0: 0a 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c  .For more detail
00c0: 2c 20 72 65 66 65 72 20 74 68 65 20 74 68 65 20  , refer the the 
00d0: 63 68 65 63 6b 69 6e 20 6c 6f 67 73 20 67 65 6e  checkin logs gen
00e0: 65 72 61 74 65 64 20 62 79 0a 43 56 53 20 61 74  erated by.CVS at
00f0: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
0100: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
0110: 63 76 73 74 72 61 63 2f 74 69 6d 65 6c 69 6e 65  cvstrac/timeline
0120: 22 3e 0a 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  ">.http://www.sq
0130: 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63  lite.org/cvstrac
0140: 2f 74 69 6d 65 6c 69 6e 65 3c 2f 61 3e 2e 0a 3c  /timeline</a>..<
0150: 2f 70 3e 0a 0a 3c 44 4c 3e 0a 7d 0a 0a 0a 70 72  /p>..<DL>.}...pr
0160: 6f 63 20 63 68 6e 67 20 7b 64 61 74 65 20 64 65  oc chng {date de
0170: 73 63 7d 20 7b 0a 20 20 70 75 74 73 20 22 3c 44  sc} {.  puts "<D
0180: 54 3e 3c 42 3e 24 64 61 74 65 3c 2f 42 3e 3c 2f  T><B>$date</B></
0190: 44 54 3e 22 0a 20 20 70 75 74 73 20 22 3c 44 44  DT>".  puts "<DD
01a0: 3e 3c 50 3e 3c 55 4c 3e 24 64 65 73 63 3c 2f 55  ><P><UL>$desc</U
01b0: 4c 3e 3c 2f 50 3e 3c 2f 44 44 3e 22 0a 7d 0a 0a  L></P></DD>".}..
01c0: 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75  chng {2005 Febru
01d0: 61 72 79 20 31 35 20 28 33 2e 31 2e 32 29 7d 20  ary 15 (3.1.2)} 
01e0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
01f0: 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f  that can lead to
0200: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
0210: 74 69 6f 6e 20 69 66 20 74 68 65 72 65 20 61 72  tion if there ar
0220: 65 20 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65  e two.open conne
0230: 63 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 61  ctions to the sa
0240: 6d 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20  me database and 
0250: 6f 6e 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 64  one connection d
0260: 6f 65 73 20 61 20 56 41 43 55 55 4d 0a 61 6e 64  oes a VACUUM.and
0270: 20 74 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b 65   the second make
0280: 73 20 73 6f 6d 65 20 63 68 61 6e 67 65 20 74 6f  s some change to
0290: 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f   the database.</
02a0: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22 3f  li>.<li>Allow "?
02b0: 22 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20  " parameters in 
02c0: 74 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65  the LIMIT clause
02d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 56  .</li>.<li>Fix V
02e0: 41 43 55 55 4d 20 73 6f 20 74 68 61 74 20 69 74  ACUUM so that it
02f0: 20 77 6f 72 6b 73 20 77 69 74 68 20 41 55 54 4f   works with AUTO
0300: 49 4e 43 52 45 4d 45 4e 54 2e 3c 2f 6c 69 3e 0a  INCREMENT.</li>.
0310: 3c 6c 69 3e 46 69 78 20 61 20 72 61 63 65 20 63  <li>Fix a race c
0320: 6f 6e 64 69 74 69 6f 6e 20 69 6e 20 41 55 54 4f  ondition in AUTO
0330: 56 41 43 55 55 4d 20 74 68 61 74 20 63 61 6e 20  VACUUM that can 
0340: 6c 65 61 64 20 74 6f 20 63 6f 72 72 75 70 74 20  lead to corrupt 
0350: 64 61 74 61 62 61 73 65 73 3c 2f 6c 69 3e 0a 3c  databases</li>.<
0360: 6c 69 3e 41 64 64 20 61 20 6e 75 6d 65 72 69 63  li>Add a numeric
0370: 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20   version number 
0380: 74 6f 20 74 68 65 20 73 71 6c 69 74 65 33 2e 68  to the sqlite3.h
0390: 20 69 6e 63 6c 75 64 65 20 66 69 6c 65 2e 3c 2f   include file.</
03a0: 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69  li>.<li>Other mi
03b0: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 61 6e  nor bug fixes an
03c0: 64 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e  d performance en
03d0: 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  hancements.</li>
03e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46  .}..chng {2005 F
03f0: 65 62 72 75 61 72 79 20 31 35 20 28 32 2e 38 2e  ebruary 15 (2.8.
0400: 31 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  16)} {.<li>Fix a
0410: 20 62 75 67 20 74 68 61 74 20 63 61 6e 20 6c 65   bug that can le
0420: 61 64 20 74 6f 20 64 61 74 61 62 61 73 65 20 63  ad to database c
0430: 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 74 68 65  orruption if the
0440: 72 65 20 61 72 65 20 74 77 6f 0a 6f 70 65 6e 20  re are two.open 
0450: 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f 20 74  connections to t
0460: 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73 65  he same database
0470: 20 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65 63 74   and one connect
0480: 69 6f 6e 20 64 6f 65 73 20 61 20 56 41 43 55 55  ion does a VACUU
0490: 4d 0a 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64  M.and the second
04a0: 20 6d 61 6b 65 73 20 73 6f 6d 65 20 63 68 61 6e   makes some chan
04b0: 67 65 20 74 6f 20 74 68 65 20 64 61 74 61 62 61  ge to the databa
04c0: 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72  se.</li>.<li>Cor
04d0: 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 71 75  rectly handle qu
04e0: 6f 74 65 64 20 6e 61 6d 65 73 20 69 6e 20 43 52  oted names in CR
04f0: 45 41 54 45 20 49 4e 44 45 58 20 73 74 61 74 65  EATE INDEX state
0500: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ments.</li>.<li>
0510: 46 69 78 20 61 20 6e 61 6d 69 6e 67 20 63 6f 6e  Fix a naming con
0520: 66 6c 69 63 74 20 62 65 74 77 65 65 6e 20 73 71  flict between sq
0530: 6c 69 74 65 2e 68 20 61 6e 64 20 73 71 6c 69 74  lite.h and sqlit
0540: 65 33 2e 68 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  e3.h.</li>.<li>A
0550: 76 6f 69 64 20 65 78 63 65 73 73 20 68 65 61 70  void excess heap
0560: 20 75 73 61 67 65 20 77 68 65 6e 20 63 6f 70 79   usage when copy
0570: 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 73 2e  ing expressions.
0580: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
0590: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e  minor bug fixes.
05a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
05b0: 30 30 35 20 46 65 62 72 75 61 72 79 20 31 20 28  005 February 1 (
05c0: 33 2e 31 2e 31 20 42 45 54 41 29 7d 20 7b 0a 3c  3.1.1 BETA)} {.<
05d0: 6c 69 3e 41 75 74 6f 6d 61 74 69 63 20 63 61 63  li>Automatic cac
05e0: 68 69 6e 67 20 6f 66 20 70 72 65 70 61 72 65 64  hing of prepared
05f0: 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 74   statements in t
0600: 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65  he TCL interface
0610: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 54 54 41 43 48  </li>.<li>ATTACH
0620: 20 61 6e 64 20 44 45 54 41 43 48 20 61 73 20 77   and DETACH as w
0630: 65 6c 6c 20 61 73 20 73 6f 6d 65 20 6f 74 68 65  ell as some othe
0640: 72 20 6f 70 65 72 61 74 69 6f 6e 73 20 63 61 75  r operations cau
0650: 73 65 20 65 78 69 73 74 69 6e 67 0a 20 20 20 20  se existing.    
0660: 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65  prepared stateme
0670: 6e 74 73 20 74 6f 20 65 78 70 69 72 65 2e 3c 2f  nts to expire.</
0680: 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 69 6f 75  li>.<li>Numeriou
0690: 73 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65  s minor bug fixe
06a0: 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  s</li>.}..chng {
06b0: 32 30 30 35 20 4a 61 6e 75 61 72 79 20 32 31 20  2005 January 21 
06c0: 28 33 2e 31 2e 30 20 41 4c 50 48 41 29 7d 20 7b  (3.1.0 ALPHA)} {
06d0: 0a 3c 6c 69 3e 41 75 74 6f 76 61 63 75 75 6d 20  .<li>Autovacuum 
06e0: 73 75 70 70 6f 72 74 20 61 64 64 65 64 3c 2f 6c  support added</l
06f0: 69 3e 0a 3c 6c 69 3e 43 55 52 52 45 4e 54 5f 54  i>.<li>CURRENT_T
0700: 49 4d 45 2c 20 43 55 52 52 45 4e 54 5f 44 41 54  IME, CURRENT_DAT
0710: 45 2c 20 61 6e 64 20 43 55 52 52 45 4e 54 5f 54  E, and CURRENT_T
0720: 49 4d 45 53 54 41 4d 50 20 61 64 64 65 64 3c 2f  IMESTAMP added</
0730: 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20  li>.<li>Support 
0740: 66 6f 72 20 74 68 65 20 45 58 49 53 54 53 20 63  for the EXISTS c
0750: 6c 61 75 73 65 20 61 64 64 65 64 2e 3c 2f 6c 69  lause added.</li
0760: 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  >.<li>Support fo
0770: 72 20 63 6f 72 72 65 6c 61 74 65 64 20 73 75 62  r correlated sub
0780: 71 75 65 72 69 65 73 20 61 64 64 65 64 2e 3c 2f  queries added.</
0790: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
07a0: 65 20 45 53 43 41 50 45 20 63 6c 61 75 73 65 20  e ESCAPE clause 
07b0: 6f 6e 20 74 68 65 20 4c 49 4b 45 20 6f 70 65 72  on the LIKE oper
07c0: 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  ator.</li>.<li>S
07d0: 75 70 70 6f 72 74 20 66 6f 72 20 41 4c 54 45 52  upport for ALTER
07e0: 20 54 41 42 4c 45 20 2e 2e 2e 20 52 45 4e 41 4d   TABLE ... RENAM
07f0: 45 20 54 41 42 4c 45 20 2e 2e 2e 20 61 64 64 65  E TABLE ... adde
0800: 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 55 54 4f 49  d</li>.<li>AUTOI
0810: 4e 43 52 45 4d 45 4e 54 20 6b 65 79 77 6f 72 64  NCREMENT keyword
0820: 20 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 49 4e   supported on IN
0830: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45  TEGER PRIMARY KE
0840: 59 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20  Y</li>.<li>Many 
0850: 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 20 6d 61 63  SQLITE_OMIT_ mac
0860: 72 6f 73 20 69 6e 73 65 72 74 73 20 74 6f 20 6f  ros inserts to o
0870: 6d 69 74 20 66 65 61 74 75 72 65 73 20 61 74 20  mit features at 
0880: 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 20 20 20  compile-time.   
0890: 20 61 6e 64 20 72 65 64 75 63 65 20 74 68 65 20   and reduce the 
08a0: 6c 69 62 72 61 72 79 20 66 6f 6f 74 70 72 69 6e  library footprin
08b0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  t.</li>.<li>The 
08c0: 52 45 49 4e 44 45 58 20 63 6f 6d 6d 61 6e 64 20  REINDEX command 
08d0: 77 61 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a  was added.</li>.
08e0: 3c 6c 69 3e 54 68 65 20 65 6e 67 69 6e 65 20 6e  <li>The engine n
08f0: 6f 20 6c 6f 6e 67 65 72 20 63 6f 6e 73 75 6c 74  o longer consult
0900: 73 20 74 68 65 20 6d 61 69 6e 20 74 61 62 6c 65  s the main table
0910: 20 69 66 20 69 74 20 63 61 6e 20 67 65 74 0a 20   if it can get. 
0920: 20 20 20 61 6c 6c 20 74 68 65 20 69 6e 66 6f 72     all the infor
0930: 6d 61 74 69 6f 6e 20 69 74 20 6e 65 65 64 73 20  mation it needs 
0940: 66 72 6f 6d 20 61 6e 20 69 6e 64 65 78 2e 3c 2f  from an index.</
0950: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6e 75 69  li>.<li>Many nui
0960: 73 61 6e 63 65 20 62 75 67 73 20 66 69 78 65 64  sance bugs fixed
0970: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
0980: 32 30 30 34 20 4f 63 74 6f 62 65 72 20 31 31 20  2004 October 11 
0990: 28 33 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 41  (3.0.8)} {.<li>A
09a0: 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 44  dd support for D
09b0: 45 46 45 52 52 45 44 2c 20 49 4d 4d 45 44 49 41  EFERRED, IMMEDIA
09c0: 54 45 2c 20 61 6e 64 20 45 58 43 4c 55 53 49 56  TE, and EXCLUSIV
09d0: 45 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 3c  E transactions.<
09e0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 6e  /li>.<li>Allow n
09f0: 65 77 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20  ew user-defined 
0a00: 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 62 65 20  functions to be 
0a10: 63 72 65 61 74 65 64 20 77 68 65 6e 20 74 68 65  created when the
0a20: 72 65 20 61 72 65 0a 61 6c 72 65 61 64 79 20 6f  re are.already o
0a30: 6e 65 20 6f 72 20 6d 6f 72 65 20 70 72 65 63 6f  ne or more preco
0a40: 6d 70 69 6c 65 64 20 53 51 4c 20 73 74 61 74 65  mpiled SQL state
0a50: 6d 65 6e 74 73 2e 3c 6c 69 3e 0a 3c 6c 69 3e 46  ments.<li>.<li>F
0a60: 69 78 20 70 6f 72 74 61 62 69 6c 69 74 79 20 70  ix portability p
0a70: 72 6f 62 6c 65 6d 73 20 66 6f 72 20 4d 69 6e 67  roblems for Ming
0a80: 77 2f 4d 53 59 53 2e 3c 2f 6c 69 3e 0a 3c 6c 69  w/MSYS.</li>.<li
0a90: 3e 46 69 78 20 61 20 62 79 74 65 20 61 6c 69 67  >Fix a byte alig
0aa0: 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 20 6f 6e  nment problem on
0ab0: 20 36 34 2d 62 69 74 20 53 70 61 72 63 20 6d 61   64-bit Sparc ma
0ac0: 63 68 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  chines.</li>.<li
0ad0: 3e 46 69 78 20 74 68 65 20 22 2e 69 6d 70 6f 72  >Fix the ".impor
0ae0: 74 22 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 74 68  t" command of th
0af0: 65 20 73 68 65 6c 6c 20 73 6f 20 74 68 61 74 20  e shell so that 
0b00: 69 74 20 69 67 6e 6f 72 65 73 20 5c 72 0a 63 68  it ignores \r.ch
0b10: 61 72 61 63 74 65 72 73 20 61 74 20 74 68 65 20  aracters at the 
0b20: 65 6e 64 20 6f 66 20 6c 69 6e 65 73 2e 3c 2f 6c  end of lines.</l
0b30: 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 63 73 76 22  i>.<li>The "csv"
0b40: 20 6d 6f 64 65 20 6f 70 74 69 6f 6e 20 69 6e 20   mode option in 
0b50: 74 68 65 20 73 68 65 6c 6c 20 70 75 74 73 20 73  the shell puts s
0b60: 74 72 69 6e 67 73 20 69 6e 73 69 64 65 20 64 6f  trings inside do
0b70: 75 62 6c 65 2d 71 75 6f 74 65 73 2e 3c 2f 6c 69  uble-quotes.</li
0b80: 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73 20  >.<li>Fix typos 
0b90: 69 6e 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  in documentation
0ba0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65  .</li>.<li>Conve
0bb0: 72 74 20 61 72 72 61 79 20 63 6f 6e 73 74 61 6e  rt array constan
0bc0: 74 73 20 69 6e 20 74 68 65 20 63 6f 64 65 20 74  ts in the code t
0bd0: 6f 20 68 61 76 65 20 74 79 70 65 20 22 63 6f 6e  o have type "con
0be0: 73 74 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75  st".</li>.<li>Nu
0bf0: 6d 65 72 6f 75 73 20 63 6f 64 65 20 6f 70 74 69  merous code opti
0c00: 6d 69 7a 61 74 69 6f 6e 73 2c 20 73 70 65 63 69  mizations, speci
0c10: 61 6c 6c 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f  ally optimizatio
0c20: 6e 73 20 64 65 73 69 67 6e 65 64 20 74 6f 0a 6d  ns designed to.m
0c30: 61 6b 65 20 74 68 65 20 63 6f 64 65 20 66 6f 6f  ake the code foo
0c40: 74 70 72 69 6e 74 20 73 6d 61 6c 6c 65 72 2e 3c  tprint smaller.<
0c50: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
0c60: 30 34 20 53 65 70 74 65 6d 62 65 72 20 31 38 20  04 September 18 
0c70: 28 33 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 54  (3.0.7)} {.<li>T
0c80: 68 65 20 42 54 72 65 65 20 6d 6f 64 75 6c 65 20  he BTree module 
0c90: 61 6c 6c 6f 63 61 74 65 73 20 6c 61 72 67 65 20  allocates large 
0ca0: 62 75 66 66 65 72 73 20 75 73 69 6e 67 20 6d 61  buffers using ma
0cb0: 6c 6c 6f 63 28 29 20 69 6e 73 74 65 61 64 20 6f  lloc() instead o
0cc0: 66 0a 20 20 20 20 6f 66 66 20 6f 66 20 74 68 65  f.    off of the
0cd0: 20 73 74 61 63 6b 2c 20 69 6e 20 6f 72 64 65 72   stack, in order
0ce0: 20 74 6f 20 70 6c 61 79 20 62 65 74 74 65 72 20   to play better 
0cf0: 6f 6e 20 6d 61 63 68 69 6e 65 73 20 77 69 74 68  on machines with
0d00: 20 6c 69 6d 69 74 65 64 0a 20 20 20 20 73 74 61   limited.    sta
0d10: 63 6b 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a 3c  ck space.</li>.<
0d20: 6c 69 3e 46 69 78 65 64 20 6e 61 6d 69 6e 67 20  li>Fixed naming 
0d30: 63 6f 6e 66 6c 69 63 74 73 20 73 6f 20 74 68 61  conflicts so tha
0d40: 74 20 76 65 72 73 69 6f 6e 73 20 32 2e 38 20 61  t versions 2.8 a
0d50: 6e 64 20 33 2e 30 20 63 61 6e 20 62 65 0a 20 20  nd 3.0 can be.  
0d60: 20 20 6c 69 6e 6b 65 64 20 61 6e 64 20 75 73 65    linked and use
0d70: 64 20 74 6f 67 65 74 68 65 72 20 69 6e 20 74 68  d together in th
0d80: 65 20 73 61 6d 65 20 41 4e 53 49 2d 43 20 73 6f  e same ANSI-C so
0d90: 75 72 63 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a  urce file.</li>.
0da0: 3c 6c 69 3e 4e 65 77 20 69 6e 74 65 72 66 61 63  <li>New interfac
0db0: 65 3a 20 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f  e: sqlite3_bind_
0dc0: 70 61 72 61 6d 65 74 65 72 5f 69 6e 64 65 78 28  parameter_index(
0dd0: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73  )</li>.<li>Add s
0de0: 75 70 70 6f 72 74 20 66 6f 72 20 77 69 6c 64 63  upport for wildc
0df0: 61 72 64 20 70 61 72 61 6d 65 74 65 72 73 20 6f  ard parameters o
0e00: 66 20 74 68 65 20 66 6f 72 6d 3a 20 22 3f 6e 6e  f the form: "?nn
0e10: 6e 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  n"</li>.<li>Fix 
0e20: 70 72 6f 62 6c 65 6d 73 20 66 6f 75 6e 64 20 6f  problems found o
0e30: 6e 20 36 34 2d 62 69 74 20 73 79 73 74 65 6d 73  n 64-bit systems
0e40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  .</li>.<li>Remov
0e50: 65 64 20 65 6e 63 6f 64 65 2e 63 20 66 69 6c 65  ed encode.c file
0e60: 20 28 63 6f 6e 74 61 69 6e 69 6e 67 20 75 6e 75   (containing unu
0e70: 73 65 64 20 72 6f 75 74 69 6e 65 73 29 20 66 72  sed routines) fr
0e80: 6f 6d 20 74 68 65 20 0a 20 20 20 20 76 65 72 73  om the .    vers
0e90: 69 6f 6e 20 33 2e 30 20 73 6f 75 72 63 65 20 74  ion 3.0 source t
0ea0: 72 65 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ree.</li>.<li>Th
0eb0: 65 20 73 71 6c 69 74 65 33 5f 74 72 61 63 65 28  e sqlite3_trace(
0ec0: 29 20 63 61 6c 6c 62 61 63 6b 73 20 6f 63 63 75  ) callbacks occu
0ed0: 72 20 62 65 66 6f 72 65 20 65 61 63 68 20 73 74  r before each st
0ee0: 61 74 65 6d 65 6e 74 0a 20 20 20 20 69 73 20 65  atement.    is e
0ef0: 78 65 63 75 74 65 64 2c 20 6e 6f 74 20 77 68 65  xecuted, not whe
0f00: 6e 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20  n the statement 
0f10: 69 73 20 63 6f 6d 70 69 6c 65 64 2e 3c 2f 6c 69  is compiled.</li
0f20: 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75  >.<li>Makefile u
0f30: 70 64 61 74 65 73 20 61 6e 64 20 6d 69 73 63 65  pdates and misce
0f40: 6c 6c 61 6e 65 6f 75 73 20 62 75 67 20 66 69 78  llaneous bug fix
0f50: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
0f60: 20 7b 32 30 30 34 20 53 65 70 74 65 6d 62 65 72   {2004 September
0f70: 20 30 32 20 28 33 2e 30 2e 36 20 62 65 74 61 29   02 (3.0.6 beta)
0f80: 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 64  } {.<li>Better d
0f90: 65 74 65 63 74 69 6f 6e 20 61 6e 64 20 68 61 6e  etection and han
0fa0: 64 6c 69 6e 67 20 6f 66 20 63 6f 72 72 75 70 74  dling of corrupt
0fb0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 2e   database files.
0fc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73 71  </li>.<li>The sq
0fd0: 6c 69 74 65 33 5f 73 74 65 70 28 29 20 69 6e 74  lite3_step() int
0fe0: 65 72 66 61 63 65 20 72 65 74 75 72 6e 73 20 53  erface returns S
0ff0: 51 4c 49 54 45 5f 42 55 53 59 20 69 66 20 69 74  QLITE_BUSY if it
1000: 20 69 73 20 75 6e 61 62 6c 65 0a 20 20 20 20 74   is unable.    t
1010: 6f 20 63 6f 6d 6d 69 74 20 61 20 63 68 61 6e 67  o commit a chang
1020: 65 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 6c  e because of a l
1030: 6f 63 6b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6d  ock</li>.<li>Com
1040: 62 69 6e 65 20 74 68 65 20 69 6d 70 6c 65 6d 65  bine the impleme
1050: 6e 74 61 74 69 6f 6e 73 20 6f 66 20 4c 49 4b 45  ntations of LIKE
1060: 20 61 6e 64 20 47 4c 4f 42 20 69 6e 74 6f 20 61   and GLOB into a
1070: 20 73 69 6e 67 6c 65 0a 20 20 20 20 70 61 74 74   single.    patt
1080: 65 72 6e 2d 6d 61 74 63 68 69 6e 67 20 73 75 62  ern-matching sub
1090: 72 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c  routine.</li>.<l
10a0: 69 3e 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20  i>Miscellaneous 
10b0: 63 6f 64 65 20 73 69 7a 65 20 6f 70 74 69 6d 69  code size optimi
10c0: 7a 61 74 69 6f 6e 73 20 61 6e 64 20 62 75 67 20  zations and bug 
10d0: 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  fixes</li>.}..ch
10e0: 6e 67 20 7b 32 30 30 34 20 41 75 67 75 73 74 20  ng {2004 August 
10f0: 32 39 20 28 33 2e 30 2e 35 20 62 65 74 61 29 7d  29 (3.0.5 beta)}
1100: 20 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66   {.<li>Support f
1110: 6f 72 20 22 3a 41 41 41 22 20 73 74 79 6c 65 20  or ":AAA" style 
1120: 62 69 6e 64 20 70 61 72 61 6d 65 74 65 72 20 6e  bind parameter n
1130: 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ames.</li>.<li>A
1140: 64 64 65 64 20 74 68 65 20 6e 65 77 20 73 71 6c  dded the new sql
1150: 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65  ite3_bind_parame
1160: 74 65 72 5f 6e 61 6d 65 28 29 20 69 6e 74 65 72  ter_name() inter
1170: 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  face.</li>.<li>S
1180: 75 70 70 6f 72 74 20 66 6f 72 20 54 43 4c 20 76  upport for TCL v
1190: 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 20 65 6d  ariable names em
11a0: 62 65 64 64 65 64 20 69 6e 20 53 51 4c 20 73 74  bedded in SQL st
11b0: 61 74 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 0a  atements in the.
11c0: 20 20 20 20 54 43 4c 20 62 69 6e 64 69 6e 67 73      TCL bindings
11d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 54  .</li>.<li>The T
11e0: 43 4c 20 62 69 6e 64 69 6e 67 73 20 74 72 61 6e  CL bindings tran
11f0: 73 66 65 72 20 64 61 74 61 20 77 69 74 68 6f 75  sfer data withou
1200: 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 64 6f  t necessarily do
1210: 69 6e 67 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e  ing a conversion
1220: 0a 20 20 20 20 74 6f 20 61 20 73 74 72 69 6e 67  .    to a string
1230: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64  .</li>.<li>The d
1240: 61 74 61 62 61 73 65 20 66 6f 72 20 54 45 4d 50  atabase for TEMP
1250: 20 74 61 62 6c 65 73 20 69 73 20 6e 6f 74 20 63   tables is not c
1260: 72 65 61 74 65 64 20 75 6e 74 69 6c 20 69 74 20  reated until it 
1270: 69 73 20 6e 65 65 64 65 64 2e 3c 2f 6c 69 3e 0a  is needed.</li>.
1280: 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c  <li>Add the abil
1290: 69 74 79 20 74 6f 20 73 70 65 63 69 66 79 20 61  ity to specify a
12a0: 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74 65  n alternative te
12b0: 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 64 69 72  mporary file dir
12c0: 65 63 74 6f 72 79 0a 20 20 20 20 75 73 69 6e 67  ectory.    using
12d0: 20 74 68 65 20 22 73 71 6c 69 74 65 5f 74 65 6d   the "sqlite_tem
12e0: 70 5f 64 69 72 65 63 74 6f 72 79 22 20 67 6c 6f  p_directory" glo
12f0: 62 61 6c 20 76 61 72 69 61 62 6c 65 2e 3c 2f 6c  bal variable.</l
1300: 69 3e 0a 3c 6c 69 3e 41 20 63 6f 6d 70 69 6c 65  i>.<li>A compile
1310: 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20 28 53 51  -time option (SQ
1320: 4c 49 54 45 5f 42 55 53 59 5f 52 45 53 45 52 56  LITE_BUSY_RESERV
1330: 45 44 5f 4c 4f 43 4b 29 20 63 61 75 73 65 73 20  ED_LOCK) causes 
1340: 74 68 65 20 62 75 73 79 0a 20 20 20 20 68 61 6e  the busy.    han
1350: 64 6c 65 72 20 74 6f 20 62 65 20 63 61 6c 6c 65  dler to be calle
1360: 64 20 77 68 65 6e 20 74 68 65 72 65 20 69 73 20  d when there is 
1370: 63 6f 6e 74 65 6e 74 69 6f 6e 20 66 6f 72 20 61  contention for a
1380: 20 52 45 53 45 52 56 45 44 20 6c 6f 63 6b 2e 3c   RESERVED lock.<
1390: 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73  /li>.<li>Various
13a0: 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 6f   bug fixes and o
13b0: 70 74 69 6d 69 7a 61 74 69 6f 6e 73 3c 2f 6c 69  ptimizations</li
13c0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
13d0: 41 75 67 75 73 74 20 38 20 28 33 2e 30 2e 34 20  August 8 (3.0.4 
13e0: 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 43 52 45  beta)} {.<li>CRE
13f0: 41 54 45 20 54 41 42 4c 45 20 61 6e 64 20 44 52  ATE TABLE and DR
1400: 4f 50 20 54 41 42 4c 45 20 6e 6f 77 20 77 6f 72  OP TABLE now wor
1410: 6b 20 63 6f 72 72 65 63 74 6c 79 20 61 73 20 70  k correctly as p
1420: 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e  repared statemen
1430: 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ts.</li>.<li>Fix
1440: 20 61 20 62 75 67 20 69 6e 20 56 41 43 55 55 4d   a bug in VACUUM
1450: 20 61 6e 64 20 55 4e 49 51 55 45 20 69 6e 64 69   and UNIQUE indi
1460: 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ces.</li>.<li>Ad
1470: 64 20 74 68 65 20 22 2e 69 6d 70 6f 72 74 22 20  d the ".import" 
1480: 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20 63  command to the c
1490: 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65 6c  ommand-line shel
14a0: 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  l.</li>.<li>Fix 
14b0: 61 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64  a bug that could
14c0: 20 63 61 75 73 65 20 69 6e 64 65 78 20 63 6f 72   cause index cor
14d0: 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 61 6e 20  ruption when an 
14e0: 61 74 74 65 6d 70 74 20 74 6f 0a 20 20 20 20 64  attempt to.    d
14f0: 65 6c 65 74 65 20 72 6f 77 73 20 6f 66 20 61 20  elete rows of a 
1500: 74 61 62 6c 65 20 69 73 20 62 6c 6f 63 6b 65 64  table is blocked
1510: 20 62 79 20 61 20 70 65 6e 64 69 6e 67 20 71 75   by a pending qu
1520: 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 69  ery.</li>.<li>Li
1530: 62 72 61 72 79 20 73 69 7a 65 20 6f 70 74 69 6d  brary size optim
1540: 69 7a 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  izations.</li>.<
1550: 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62  li>Other minor b
1560: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
1570: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6c  ..chng {2004 Jul
1580: 79 20 32 32 20 28 32 2e 38 2e 31 35 29 7d 20 7b  y 22 (2.8.15)} {
1590: 0a 3c 6c 69 3e 54 68 69 73 20 69 73 20 61 20 6d  .<li>This is a m
15a0: 61 69 6e 74 65 6e 61 6e 63 65 20 72 65 6c 65 61  aintenance relea
15b0: 73 65 20 6f 6e 6c 79 2e 20 20 56 61 72 69 6f 75  se only.  Variou
15c0: 73 20 6d 69 6e 6f 72 20 62 75 67 73 20 68 61 76  s minor bugs hav
15d0: 65 20 62 65 65 6e 0a 66 69 78 65 64 20 61 6e 64  e been.fixed and
15e0: 20 73 6f 6d 65 20 70 6f 72 74 61 62 69 6c 69 74   some portabilit
15f0: 79 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 61  y enhancements a
1600: 72 65 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 7d  re added.</li>.}
1610: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6c  ..chng {2004 Jul
1620: 79 20 32 32 20 28 33 2e 30 2e 33 20 62 65 74 61  y 22 (3.0.3 beta
1630: 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 73 65 63  )} {.<li>The sec
1640: 6f 6e 64 20 62 65 74 61 20 72 65 6c 65 61 73 65  ond beta release
1650: 20 66 6f 72 20 53 51 4c 69 74 65 20 33 2e 30 2e   for SQLite 3.0.
1660: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75  </li>.<li>Add su
1670: 70 70 6f 72 74 20 66 6f 72 20 22 50 52 41 47 4d  pport for "PRAGM
1680: 41 20 70 61 67 65 5f 73 69 7a 65 22 20 74 6f 20  A page_size" to 
1690: 61 64 6a 75 73 74 20 74 68 65 20 70 61 67 65 20  adjust the page 
16a0: 73 69 7a 65 20 6f 66 0a 74 68 65 20 64 61 74 61  size of.the data
16b0: 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56  base.</li>.<li>V
16c0: 61 72 69 6f 75 73 20 62 75 67 20 66 69 78 65 73  arious bug fixes
16d0: 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69   and documentati
16e0: 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e  on updates.</li>
16f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a  .}..chng {2004 J
1700: 75 6e 65 20 33 30 20 28 33 2e 30 2e 32 20 62 65  une 30 (3.0.2 be
1710: 74 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 66  ta)} {.<li>The f
1720: 69 72 73 74 20 62 65 74 61 20 72 65 6c 65 61 73  irst beta releas
1730: 65 20 66 6f 72 20 53 51 4c 69 74 65 20 33 2e 30  e for SQLite 3.0
1740: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1750: 32 30 30 34 20 4a 75 6e 65 20 32 32 20 28 33 2e  2004 June 22 (3.
1760: 30 2e 31 20 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c  0.1 alpha)} {.<l
1770: 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72  i><font color="r
1780: 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a 20  ed"><b>.    *** 
1790: 41 6c 70 68 61 20 52 65 6c 65 61 73 65 20 2d 20  Alpha Release - 
17a0: 52 65 73 65 61 72 63 68 20 41 6e 64 20 54 65 73  Research And Tes
17b0: 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79 20 2a 2a  ting Use Only **
17c0: 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69  *</b></font>.<li
17d0: 3e 4c 6f 74 73 20 6f 66 20 62 75 67 20 66 69 78  >Lots of bug fix
17e0: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
17f0: 20 7b 32 30 30 34 20 4a 75 6e 65 20 31 38 20 28   {2004 June 18 (
1800: 33 2e 30 2e 30 20 61 6c 70 68 61 29 7d 20 7b 0a  3.0.0 alpha)} {.
1810: 3c 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d  <li><font color=
1820: 22 72 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a  "red"><b>.    **
1830: 2a 20 41 6c 70 68 61 20 52 65 6c 65 61 73 65 20  * Alpha Release 
1840: 2d 20 52 65 73 65 61 72 63 68 20 41 6e 64 20 54  - Research And T
1850: 65 73 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79 20  esting Use Only 
1860: 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c  ***</b></font>.<
1870: 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 69  li>Support for i
1880: 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 69 7a 61 74  nternationalizat
1890: 69 6f 6e 20 69 6e 63 6c 75 64 69 6e 67 20 55 54  ion including UT
18a0: 46 2d 38 2c 20 55 54 46 2d 31 36 2c 20 61 6e 64  F-8, UTF-16, and
18b0: 0a 20 20 20 20 75 73 65 72 20 64 65 66 69 6e 65  .    user define
18c0: 64 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71 75  d collating sequ
18d0: 65 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ences.</li>.<li>
18e0: 4e 65 77 20 66 69 6c 65 20 66 6f 72 6d 61 74 20  New file format 
18f0: 74 68 61 74 20 69 73 20 32 35 25 20 74 6f 20 33  that is 25% to 3
1900: 35 25 20 73 6d 61 6c 6c 65 72 20 66 6f 72 20 74  5% smaller for t
1910: 79 70 69 63 61 6c 20 75 73 65 2e 3c 2f 6c 69 3e  ypical use.</li>
1920: 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 63 6f  .<li>Improved co
1930: 6e 63 75 72 72 65 6e 63 79 2e 3c 2f 6c 69 3e 0a  ncurrency.</li>.
1940: 3c 6c 69 3e 41 74 6f 6d 69 63 20 63 6f 6d 6d 69  <li>Atomic commi
1950: 74 73 20 66 6f 72 20 41 54 54 41 43 48 65 64 20  ts for ATTACHed 
1960: 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e 0a  databases.</li>.
1970: 3c 6c 69 3e 52 65 6d 6f 76 65 20 63 72 75 66 74  <li>Remove cruft
1980: 20 66 72 6f 6d 20 74 68 65 20 41 50 49 73 2e 3c   from the APIs.<
1990: 2f 6c 69 3e 0a 3c 6c 69 3e 42 4c 4f 42 20 73 75  /li>.<li>BLOB su
19a0: 70 70 6f 72 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pport.</li>.<li>
19b0: 36 34 2d 62 69 74 20 72 6f 77 69 64 73 2e 3c 2f  64-bit rowids.</
19c0: 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d  li>.<li><a href=
19d0: 22 76 65 72 73 69 6f 6e 33 2e 68 74 6d 6c 22 3e  "version3.html">
19e0: 4d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  More information
19f0: 3c 2f 61 3e 2e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </a>..}..chng {2
1a00: 30 30 34 20 4a 75 6e 65 20 39 20 28 32 2e 38 2e  004 June 9 (2.8.
1a10: 31 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74  14)} {.<li>Fix t
1a20: 68 65 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78  he min() and max
1a30: 28 29 20 6f 70 74 69 6d 69 7a 65 72 20 73 6f 20  () optimizer so 
1a40: 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77 68  that it works wh
1a50: 65 6e 20 74 68 65 20 46 52 4f 4d 0a 20 20 20 20  en the FROM.    
1a60: 63 6c 61 75 73 65 20 63 6f 6e 73 69 73 74 73 20  clause consists 
1a70: 6f 66 20 61 20 73 75 62 71 75 65 72 79 2e 3c 2f  of a subquery.</
1a80: 6c 69 3e 0a 3c 6c 69 3e 49 67 6e 6f 72 65 20 65  li>.<li>Ignore e
1a90: 78 74 72 61 20 77 68 69 74 65 73 70 61 63 65 20  xtra whitespace 
1aa0: 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6f 66  at the end of of
1ab0: 20 22 2e 22 20 63 6f 6d 6d 61 6e 64 73 20 69 6e   "." commands in
1ac0: 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e   the shell.</li>
1ad0: 0a 3c 6c 69 3e 42 75 6e 64 6c 65 20 73 71 6c 69  .<li>Bundle sqli
1ae0: 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72 79  te_encode_binary
1af0: 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 64 65  () and sqlite_de
1b00: 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 77 69  code_binary() wi
1b10: 74 68 20 74 68 65 20 0a 20 20 20 20 6c 69 62 72  th the .    libr
1b20: 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ary.</li>.<li>Th
1b30: 65 20 54 45 4d 50 5f 53 54 4f 52 45 20 61 6e 64  e TEMP_STORE and
1b40: 20 44 45 46 41 55 4c 54 5f 54 45 4d 50 5f 53 54   DEFAULT_TEMP_ST
1b50: 4f 52 45 20 70 72 61 67 6d 61 73 20 6e 6f 77 20  ORE pragmas now 
1b60: 77 6f 72 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  work.</li>.<li>C
1b70: 6f 64 65 20 63 68 61 6e 67 65 73 20 74 6f 20 63  ode changes to c
1b80: 6f 6d 70 69 6c 65 20 63 6c 65 61 6e 6c 79 20 75  ompile cleanly u
1b90: 73 69 6e 67 20 4f 70 65 6e 57 61 74 63 6f 6d 2e  sing OpenWatcom.
1ba0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 56 44  </li>.<li>Fix VD
1bb0: 42 45 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f  BE stack overflo
1bc0: 77 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20  w problems with 
1bd0: 49 4e 53 54 45 41 44 20 4f 46 20 74 72 69 67 67  INSTEAD OF trigg
1be0: 65 72 73 20 61 6e 64 0a 20 20 20 20 4e 55 4c 4c  ers and.    NULL
1bf0: 73 20 69 6e 20 49 4e 20 6f 70 65 72 61 74 6f 72  s in IN operator
1c00: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  s.</li>.<li>Add 
1c10: 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61  the global varia
1c20: 62 6c 65 20 73 71 6c 69 74 65 5f 74 65 6d 70 5f  ble sqlite_temp_
1c30: 64 69 72 65 63 74 6f 72 79 20 77 68 69 63 68 20  directory which 
1c40: 69 66 20 73 65 74 20 64 65 66 69 6e 65 73 20 74  if set defines t
1c50: 68 65 0a 20 20 20 20 64 69 72 65 63 74 6f 72 79  he.    directory
1c60: 20 69 6e 20 77 68 69 63 68 20 74 65 6d 70 6f 72   in which tempor
1c70: 61 72 79 20 66 69 6c 65 73 20 61 72 65 20 73 74  ary files are st
1c80: 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73  ored.</li>.<li>s
1c90: 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28  qlite_interrupt(
1ca0: 29 20 70 6c 61 79 73 20 77 65 6c 6c 20 77 69 74  ) plays well wit
1cb0: 68 20 56 41 43 55 55 4d 2e 3c 2f 6c 69 3e 0a 3c  h VACUUM.</li>.<
1cc0: 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62  li>Other minor b
1cd0: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
1ce0: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4d 61 72  ..chng {2004 Mar
1cf0: 63 68 20 38 20 28 32 2e 38 2e 31 33 29 7d 20 7b  ch 8 (2.8.13)} {
1d00: 0a 3c 6c 69 3e 52 65 66 61 63 74 6f 72 20 70 61  .<li>Refactor pa
1d10: 72 74 73 20 6f 66 20 74 68 65 20 63 6f 64 65 20  rts of the code 
1d20: 69 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61 6b 65  in order to make
1d30: 20 74 68 65 20 63 6f 64 65 20 66 6f 6f 74 70 72   the code footpr
1d40: 69 6e 74 0a 20 20 20 20 73 6d 61 6c 6c 65 72 2e  int.    smaller.
1d50: 20 20 54 68 65 20 63 6f 64 65 20 69 73 20 6e 6f    The code is no
1d60: 77 20 61 6c 73 6f 20 61 20 6c 69 74 74 6c 65 20  w also a little 
1d70: 62 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e  bit faster.</li>
1d80: 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 65 78 65 63  .<li>sqlite_exec
1d90: 28 29 20 69 73 20 6e 6f 77 20 69 6d 70 6c 65 6d  () is now implem
1da0: 65 6e 74 65 64 20 61 73 20 61 20 77 72 61 70 70  ented as a wrapp
1db0: 65 72 20 61 72 6f 75 6e 64 20 73 71 6c 69 74 65  er around sqlite
1dc0: 5f 63 6f 6d 70 69 6c 65 28 29 0a 20 20 20 20 61  _compile().    a
1dd0: 6e 64 20 73 71 6c 69 74 65 5f 73 74 65 70 28 29  nd sqlite_step()
1de0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 62  .</li>.<li>The b
1df0: 75 69 6c 74 2d 69 6e 20 6d 69 6e 28 29 20 61 6e  uilt-in min() an
1e00: 64 20 6d 61 78 28 29 20 66 75 6e 63 74 69 6f 6e  d max() function
1e10: 73 20 6e 6f 77 20 68 6f 6e 6f 72 20 74 68 65 20  s now honor the 
1e20: 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65  difference betwe
1e30: 65 6e 0a 20 20 20 20 4e 55 4d 45 52 49 43 20 61  en.    NUMERIC a
1e40: 6e 64 20 54 45 58 54 20 64 61 74 61 74 79 70 65  nd TEXT datatype
1e50: 73 2e 20 20 46 6f 72 6d 65 72 6c 79 2c 20 6d 69  s.  Formerly, mi
1e60: 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20 61 6c  n() and max() al
1e70: 77 61 79 73 20 61 73 73 75 6d 65 64 0a 20 20 20  ways assumed.   
1e80: 20 74 68 65 69 72 20 61 72 67 75 6d 65 6e 74 73   their arguments
1e90: 20 77 65 72 65 20 6f 66 20 74 79 70 65 20 4e 55   were of type NU
1ea0: 4d 45 52 49 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  MERIC.</li>.<li>
1eb0: 4e 65 77 20 48 48 3a 4d 4d 3a 53 53 20 6d 6f 64  New HH:MM:SS mod
1ec0: 69 66 69 65 72 20 74 6f 20 74 68 65 20 62 75 69  ifier to the bui
1ed0: 6c 74 2d 69 6e 20 64 61 74 65 2f 74 69 6d 65 20  lt-in date/time 
1ee0: 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  functions.</li>.
1ef0: 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c  <li>Experimental
1f00: 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f 73 74 61   sqlite_last_sta
1f10: 74 65 6d 65 6e 74 5f 63 68 61 6e 67 65 73 28 29  tement_changes()
1f20: 20 41 50 49 20 61 64 64 65 64 2e 20 20 46 69 78   API added.  Fix
1f30: 65 64 20 74 68 65 0a 20 20 20 20 74 68 65 20 6c  ed the.    the l
1f40: 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64  ast_insert_rowid
1f50: 28 29 20 66 75 6e 63 74 69 6f 6e 20 73 6f 20 74  () function so t
1f60: 68 61 74 20 69 74 20 77 6f 72 6b 73 20 63 6f 72  hat it works cor
1f70: 72 65 63 74 6c 79 20 77 69 74 68 0a 20 20 20 20  rectly with.    
1f80: 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c  triggers.</li>.<
1f90: 6c 69 3e 41 64 64 20 66 75 6e 63 74 69 6f 6e 73  li>Add functions
1fa0: 20 70 72 6f 74 6f 74 79 70 65 73 20 66 6f 72 20   prototypes for 
1fb0: 74 68 65 20 64 61 74 61 62 61 73 65 20 65 6e 63  the database enc
1fc0: 72 79 70 74 69 6f 6e 20 41 50 49 2e 3c 2f 6c 69  ryption API.</li
1fd0: 3e 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65 72 61  >.<li>Fix severa
1fe0: 6c 20 6e 75 69 73 61 6e 63 65 20 62 75 67 73 2e  l nuisance bugs.
1ff0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
2000: 30 30 34 20 46 65 62 72 75 61 72 79 20 38 20 28  004 February 8 (
2010: 32 2e 38 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 46  2.8.12)} {.<li>F
2020: 69 78 20 61 20 62 75 67 20 74 68 61 74 20 77 69  ix a bug that wi
2030: 6c 6c 20 6d 69 67 68 74 20 63 6f 72 72 75 70 74  ll might corrupt
2040: 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f   the rollback jo
2050: 75 72 6e 61 6c 20 69 66 20 61 20 70 6f 77 65 72  urnal if a power
2060: 20 66 61 69 6c 75 72 65 0a 20 20 20 20 6f 72 20   failure.    or 
2070: 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61 6d  external program
2080: 20 68 61 6c 74 20 6f 63 63 75 72 73 20 69 6e 20   halt occurs in 
2090: 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 61 20  the middle of a 
20a0: 43 4f 4d 4d 49 54 2e 20 20 54 68 65 20 63 6f 72  COMMIT.  The cor
20b0: 72 75 70 74 0a 20 20 20 20 6a 6f 75 72 6e 61 6c  rupt.    journal
20c0: 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74   can lead to dat
20d0: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
20e0: 20 77 68 65 6e 20 69 74 20 69 73 20 72 6f 6c 6c   when it is roll
20f0: 65 64 20 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c  ed back.</li>.<l
2100: 69 3e 52 65 64 75 63 65 20 74 68 65 20 73 69 7a  i>Reduce the siz
2110: 65 20 61 6e 64 20 69 6e 63 72 65 61 73 65 20 74  e and increase t
2120: 68 65 20 73 70 65 65 64 20 6f 66 20 76 61 72 69  he speed of vari
2130: 6f 75 73 20 6d 6f 64 75 6c 65 73 2c 20 65 73 70  ous modules, esp
2140: 65 63 69 61 6c 6c 79 0a 20 20 20 20 74 68 65 20  ecially.    the 
2150: 76 69 72 74 75 61 6c 20 6d 61 63 68 69 6e 65 2e  virtual machine.
2160: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
2170: 22 26 6c 74 3b 65 78 70 72 26 67 74 3b 20 49 4e  "&lt;expr&gt; IN
2180: 20 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22 20   &lt;table&gt;" 
2190: 61 73 20 61 20 73 68 6f 72 74 68 61 6e 64 20 66  as a shorthand f
21a0: 6f 72 0a 20 20 20 20 22 26 6c 74 3b 65 78 70 72  or.    "&lt;expr
21b0: 26 67 74 3b 20 49 4e 20 28 53 45 4c 45 43 54 20  &gt; IN (SELECT 
21c0: 2a 20 46 52 4f 4d 20 26 6c 74 3b 74 61 62 6c 65  * FROM &lt;table
21d0: 26 67 74 3b 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  &gt;".</li>.<li>
21e0: 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 74 6f  Optimizations to
21f0: 20 74 68 65 20 73 71 6c 69 74 65 5f 6d 70 72 69   the sqlite_mpri
2200: 6e 74 66 28 29 20 72 6f 75 74 69 6e 65 2e 3c 2f  ntf() routine.</
2210: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72  li>.<li>Make sur
2220: 65 20 74 68 65 20 4d 49 4e 28 29 20 61 6e 64 20  e the MIN() and 
2230: 4d 41 58 28 29 20 6f 70 74 69 6d 69 7a 61 74 69  MAX() optimizati
2240: 6f 6e 73 20 77 6f 72 6b 20 77 69 74 68 69 6e 20  ons work within 
2250: 73 75 62 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e  subqueries.</li>
2260: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a  .}..chng {2004 J
2270: 61 6e 75 61 72 79 20 31 34 20 28 32 2e 38 2e 31  anuary 14 (2.8.1
2280: 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  1)} {.<li>Fix a 
2290: 62 75 67 20 69 6e 20 68 6f 77 20 74 68 65 20 49  bug in how the I
22a0: 4e 20 6f 70 65 72 61 74 6f 72 20 68 61 6e 64 6c  N operator handl
22b0: 65 73 20 4e 55 4c 4c 73 20 69 6e 20 73 75 62 71  es NULLs in subq
22c0: 75 65 72 69 65 73 2e 20 20 54 68 65 20 62 75 67  ueries.  The bug
22d0: 0a 20 20 20 20 77 61 73 20 69 6e 74 72 6f 64 75  .    was introdu
22e0: 63 65 64 20 62 79 20 74 68 65 20 70 72 65 76 69  ced by the previ
22f0: 6f 75 73 20 72 65 6c 65 61 73 65 2e 3c 2f 6c 69  ous release.</li
2300: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
2310: 4a 61 6e 75 61 72 79 20 31 33 20 28 32 2e 38 2e  January 13 (2.8.
2320: 31 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  10)} {.<li>Fix a
2330: 20 70 6f 74 65 6e 74 69 61 6c 20 64 61 74 61 62   potential datab
2340: 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 70  ase corruption p
2350: 72 6f 62 6c 65 6d 20 6f 6e 20 55 6e 69 78 20 63  roblem on Unix c
2360: 61 75 73 65 64 20 62 79 20 74 68 65 20 66 61 63  aused by the fac
2370: 74 0a 20 20 20 20 74 68 61 74 20 61 6c 6c 20 70  t.    that all p
2380: 6f 73 69 78 20 61 64 76 69 73 6f 72 79 20 6c 6f  osix advisory lo
2390: 63 6b 73 20 61 72 65 20 63 6c 65 61 72 65 64 20  cks are cleared 
23a0: 77 68 65 6e 65 76 65 72 20 79 6f 75 20 63 6c 6f  whenever you clo
23b0: 73 65 28 29 20 61 20 66 69 6c 65 2e 0a 20 20 20  se() a file..   
23c0: 20 54 68 65 20 77 6f 72 6b 20 61 72 6f 75 6e 64   The work around
23d0: 20 69 74 20 74 6f 20 65 6d 62 61 72 67 6f 20 61   it to embargo a
23e0: 6c 6c 20 63 6c 6f 73 65 28 29 20 63 61 6c 6c 73  ll close() calls
23f0: 20 77 68 69 6c 65 20 6c 6f 63 6b 73 20 61 72 65   while locks are
2400: 20 0a 20 20 20 20 6f 75 74 73 74 61 6e 64 69 6e   .    outstandin
2410: 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66  g.</li>.<li>Perf
2420: 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d  ormance enhancem
2430: 65 6e 74 73 20 6f 6e 20 73 6f 6d 65 20 63 6f 72  ents on some cor
2440: 6e 65 72 20 63 61 73 65 73 20 6f 66 20 43 4f 55  ner cases of COU
2450: 4e 54 28 2a 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  NT(*).</li>.<li>
2460: 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 69 6e  Make sure the in
2470: 2d 6d 65 6d 6f 72 79 20 62 61 63 6b 65 6e 64 20  -memory backend 
2480: 72 65 73 70 6f 6e 73 65 20 73 61 6e 65 6c 79 20  response sanely 
2490: 69 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c  if malloc() fail
24a0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  s.</li>.<li>Allo
24b0: 77 20 73 71 6c 69 74 65 5f 65 78 65 63 28 29 20  w sqlite_exec() 
24c0: 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 66 72 6f  to be called fro
24d0: 6d 20 77 69 74 68 69 6e 20 75 73 65 72 2d 64 65  m within user-de
24e0: 66 69 6e 65 64 20 53 51 4c 0a 20 20 20 20 66 75  fined SQL.    fu
24f0: 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  nctions.</li>.<l
2500: 69 3e 49 6d 70 72 6f 76 65 64 20 61 63 63 75 72  i>Improved accur
2510: 61 63 79 20 6f 66 20 66 6c 6f 61 74 69 6e 67 2d  acy of floating-
2520: 70 6f 69 6e 74 20 63 6f 6e 76 65 72 73 69 6f 6e  point conversion
2530: 73 20 75 73 69 6e 67 20 22 6c 6f 6e 67 20 64 6f  s using "long do
2540: 75 62 6c 65 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  uble".</li>.<li>
2550: 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68 65  Bug fixes in the
2560: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61   experimental da
2570: 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e  te/time function
2580: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
2590: 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 35 20  {2004 January 5 
25a0: 28 32 2e 38 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.8.9)} {.<li>F
25b0: 69 78 20 61 20 33 32 2d 62 69 74 20 69 6e 74 65  ix a 32-bit inte
25c0: 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 70 72 6f  ger overflow pro
25d0: 62 6c 65 6d 20 74 68 61 74 20 63 6f 75 6c 64 20  blem that could 
25e0: 72 65 73 75 6c 74 20 69 6e 20 63 6f 72 72 75 70  result in corrup
25f0: 74 0a 20 20 20 20 69 6e 64 69 63 65 73 20 69 6e  t.    indices in
2600: 20 61 20 64 61 74 61 62 61 73 65 20 69 66 20 6c   a database if l
2610: 61 72 67 65 20 6e 65 67 61 74 69 76 65 20 6e 75  arge negative nu
2620: 6d 62 65 72 73 20 28 6c 65 73 73 20 74 68 61 6e  mbers (less than
2630: 20 2d 32 31 34 37 34 38 33 36 34 38 29 0a 20 20   -2147483648).  
2640: 20 20 77 65 72 65 20 69 6e 73 65 72 74 65 64 20    were inserted 
2650: 69 6e 74 6f 20 61 20 69 6e 64 65 78 65 64 20 6e  into a indexed n
2660: 75 6d 65 72 69 63 20 63 6f 6c 75 6d 6e 2e 3c 2f  umeric column.</
2670: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6c 6f  li>.<li>Fix a lo
2680: 63 6b 69 6e 67 20 70 72 6f 62 6c 65 6d 20 6f 6e  cking problem on
2690: 20 6d 75 6c 74 69 2d 74 68 72 65 61 64 65 64 20   multi-threaded 
26a0: 4c 69 6e 75 78 20 69 6d 70 6c 65 6d 65 6e 74 61  Linux implementa
26b0: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
26c0: 41 6c 77 61 79 73 20 75 73 65 20 22 2e 22 20 69  Always use "." i
26d0: 6e 73 74 65 61 64 20 6f 66 20 22 2c 22 20 61 73  nstead of "," as
26e0: 20 74 68 65 20 64 65 63 69 6d 61 6c 20 70 6f 69   the decimal poi
26f0: 6e 74 20 65 76 65 6e 20 69 66 20 74 68 65 20 6c  nt even if the l
2700: 6f 63 61 6c 65 0a 20 20 20 20 72 65 71 75 65 73  ocale.    reques
2710: 74 73 20 22 2c 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ts ",".</li>.<li
2720: 3e 41 64 64 65 64 20 55 54 43 20 74 6f 20 6c 6f  >Added UTC to lo
2730: 63 61 6c 74 69 6d 65 20 63 6f 6e 76 65 72 73 69  caltime conversi
2740: 6f 6e 73 20 74 6f 20 74 68 65 20 65 78 70 65 72  ons to the exper
2750: 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d  imental date/tim
2760: 65 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2e  e.    functions.
2770: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
2780: 78 65 73 20 74 6f 20 64 61 74 65 2f 74 69 6d 65  xes to date/time
2790: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
27a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 44  .}..chng {2003 D
27b0: 65 63 65 6d 62 65 72 20 31 37 20 28 32 2e 38 2e  ecember 17 (2.8.
27c0: 38 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  8)} {.<li>Fix a 
27d0: 63 72 69 74 69 63 61 6c 20 62 75 67 20 69 6e 74  critical bug int
27e0: 72 6f 64 75 63 65 64 20 69 6e 74 6f 20 32 2e 38  roduced into 2.8
27f0: 2e 30 20 77 68 69 63 68 20 63 6f 75 6c 64 20 63  .0 which could c
2800: 61 75 73 65 0a 20 20 20 20 64 61 74 61 62 61 73  ause.    databas
2810: 65 20 63 6f 72 72 75 70 74 69 6f 6e 2e 3c 2f 6c  e corruption.</l
2820: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f  i>.<li>Fix a pro
2830: 62 6c 65 6d 20 77 69 74 68 20 33 2d 77 61 79 20  blem with 3-way 
2840: 6a 6f 69 6e 73 20 74 68 61 74 20 64 6f 20 6e 6f  joins that do no
2850: 74 20 75 73 65 20 69 6e 64 69 63 65 73 3c 2f 6c  t use indices</l
2860: 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 43 55 55  i>.<li>The VACUU
2870: 4d 20 63 6f 6d 6d 61 6e 64 20 6e 6f 77 20 77 6f  M command now wo
2880: 72 6b 73 20 77 69 74 68 20 74 68 65 20 6e 6f 6e  rks with the non
2890: 2d 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f 6c  -callback API</l
28a0: 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 6d 65  i>.<li>Improveme
28b0: 6e 74 73 20 74 6f 20 74 68 65 20 22 50 52 41 47  nts to the "PRAG
28c0: 4d 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68 65  MA integrity_che
28d0: 63 6b 22 20 63 6f 6d 6d 61 6e 64 3c 2f 6c 69 3e  ck" command</li>
28e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 44  .}..chng {2003 D
28f0: 65 63 65 6d 62 65 72 20 34 20 28 32 2e 38 2e 37  ecember 4 (2.8.7
2900: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 65  )} {.<li>Added e
2910: 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69  xperimental sqli
2920: 74 65 5f 62 69 6e 64 28 29 20 61 6e 64 20 73 71  te_bind() and sq
2930: 6c 69 74 65 5f 72 65 73 65 74 28 29 20 41 50 49  lite_reset() API
2940: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74  s.</li>.<li>If t
2950: 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 64  he name of the d
2960: 61 74 61 62 61 73 65 20 69 73 20 61 6e 20 65 6d  atabase is an em
2970: 70 74 79 20 73 74 72 69 6e 67 2c 20 6f 70 65 6e  pty string, open
2980: 20 61 20 6e 65 77 20 64 61 74 61 62 61 73 65 0a   a new database.
2990: 20 20 20 20 69 6e 20 61 20 74 65 6d 70 6f 72 61      in a tempora
29a0: 72 79 20 66 69 6c 65 20 74 68 61 74 20 69 73 20  ry file that is 
29b0: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65  automatically de
29c0: 6c 65 74 65 64 20 77 68 65 6e 20 74 68 65 20 64  leted when the d
29d0: 61 74 61 62 61 73 65 0a 20 20 20 20 69 73 20 63  atabase.    is c
29e0: 6c 6f 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  losed.</li>.<li>
29f0: 50 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61  Performance enha
2a00: 6e 63 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20  ncements in the 
2a10: 6c 65 6d 6f 6e 2d 67 65 6e 65 72 61 74 65 64 20  lemon-generated 
2a20: 70 61 72 73 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e  parser</li>.<li>
2a30: 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74  Experimental dat
2a40: 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73  e/time functions
2a50: 20 72 65 76 69 73 65 64 2e 3c 2f 6c 69 3e 0a 3c   revised.</li>.<
2a60: 6c 69 3e 44 69 73 61 6c 6c 6f 77 20 74 65 6d 70  li>Disallow temp
2a70: 6f 72 61 72 79 20 69 6e 64 69 63 65 73 20 6f 6e  orary indices on
2a80: 20 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c 65   permanent table
2a90: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75  s.</li>.<li>Docu
2aa0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
2ab0: 73 20 61 6e 64 20 74 79 70 6f 20 66 69 78 65 73  s and typo fixes
2ac0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
2ad0: 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c  experimental sql
2ae0: 69 74 65 5f 70 72 6f 67 72 65 73 73 5f 68 61 6e  ite_progress_han
2af0: 64 6c 65 72 28 29 20 63 61 6c 6c 62 61 63 6b 20  dler() callback 
2b00: 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  API</li>.<li>Rem
2b10: 6f 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  oved support for
2b20: 20 74 68 65 20 4f 72 61 63 6c 65 38 20 6f 75 74   the Oracle8 out
2b30: 65 72 20 6a 6f 69 6e 20 73 79 6e 74 61 78 2e 3c  er join syntax.<
2b40: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 47  /li>.<li>Allow G
2b50: 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70 65  LOB and LIKE ope
2b60: 72 61 74 6f 72 73 20 74 6f 20 77 6f 72 6b 20 61  rators to work a
2b70: 73 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69  s functions.</li
2b80: 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f  >.<li>Other mino
2b90: 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  r documentation 
2ba0: 61 6e 64 20 6d 61 6b 65 66 69 6c 65 20 63 68 61  and makefile cha
2bb0: 6e 67 65 73 20 61 6e 64 20 62 75 67 20 66 69 78  nges and bug fix
2bc0: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
2bd0: 20 7b 32 30 30 33 20 41 75 67 75 73 74 20 32 31   {2003 August 21
2be0: 20 28 32 2e 38 2e 36 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.6)} {.<li>
2bf0: 4d 6f 76 65 64 20 74 68 65 20 43 56 53 20 72 65  Moved the CVS re
2c00: 70 6f 73 69 74 6f 72 79 20 74 6f 20 77 77 77 2e  pository to www.
2c10: 73 71 6c 69 74 65 2e 6f 72 67 3c 2f 6c 69 3e 0a  sqlite.org</li>.
2c20: 3c 6c 69 3e 55 70 64 61 74 65 20 74 68 65 20 4e  <li>Update the N
2c30: 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63  ULL-handling doc
2c40: 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  umentation.</li>
2c50: 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61  .<li>Experimenta
2c60: 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63  l date/time func
2c70: 74 69 6f 6e 73 20 61 64 64 65 64 2e 3c 2f 6c 69  tions added.</li
2c80: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 63  >.<li>Bug fix: c
2c90: 6f 72 72 65 63 74 6c 79 20 65 76 61 6c 75 61 74  orrectly evaluat
2ca0: 65 20 61 20 76 69 65 77 20 6f 66 20 61 20 76 69  e a view of a vi
2cb0: 65 77 20 77 69 74 68 6f 75 74 20 73 65 67 66 61  ew without segfa
2cc0: 75 6c 74 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ulting.</li>.<li
2cd0: 3e 42 75 67 20 66 69 78 3a 20 70 72 65 76 65 6e  >Bug fix: preven
2ce0: 74 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  t database corru
2cf0: 70 74 69 6f 6e 20 69 66 20 79 6f 75 20 64 72 6f  ption if you dro
2d00: 70 70 65 64 20 61 0a 20 20 20 20 74 72 69 67 67  pped a.    trigg
2d10: 65 72 20 74 68 61 74 20 68 61 64 20 74 68 65 20  er that had the 
2d20: 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 61 20 74  same name as a t
2d30: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  able.</li>.<li>B
2d40: 75 67 20 66 69 78 3a 20 61 6c 6c 6f 77 20 61 20  ug fix: allow a 
2d50: 56 41 43 55 55 4d 20 28 77 69 74 68 6f 75 74 20  VACUUM (without 
2d60: 73 65 67 66 61 75 6c 74 69 6e 67 29 20 6f 6e 20  segfaulting) on 
2d70: 61 6e 20 65 6d 70 74 79 0a 20 20 20 20 64 61 74  an empty.    dat
2d80: 61 62 61 73 65 20 61 66 74 65 72 20 73 65 74 74  abase after sett
2d90: 69 6e 67 20 74 68 65 20 45 4d 50 54 59 5f 52 45  ing the EMPTY_RE
2da0: 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70  SULT_CALLBACKS p
2db0: 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ragma.</li>.<li>
2dc0: 42 75 67 20 66 69 78 3a 20 69 66 20 61 6e 20 69  Bug fix: if an i
2dd0: 6e 74 65 67 65 72 20 76 61 6c 75 65 20 77 69 6c  nteger value wil
2de0: 6c 20 6e 6f 74 20 66 69 74 20 69 6e 20 61 20 33  l not fit in a 3
2df0: 32 2d 62 69 74 20 69 6e 74 2c 20 73 74 6f 72 65  2-bit int, store
2e00: 20 69 74 20 69 6e 0a 20 20 20 20 61 20 64 6f 75   it in.    a dou
2e10: 62 6c 65 20 69 6e 73 74 65 61 64 2e 3c 2f 6c 69  ble instead.</li
2e20: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 4d  >.<li>Bug fix: M
2e30: 61 6b 65 20 73 75 72 65 20 74 68 65 20 6a 6f 75  ake sure the jou
2e40: 72 6e 61 6c 20 66 69 6c 65 20 64 69 72 65 63 74  rnal file direct
2e50: 6f 72 79 20 65 6e 74 72 79 20 69 73 20 63 6f 6d  ory entry is com
2e60: 6d 69 74 74 65 64 20 74 6f 20 64 69 73 6b 0a 20  mitted to disk. 
2e70: 20 20 20 62 65 66 6f 72 65 20 77 72 69 74 69 6e     before writin
2e80: 67 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66  g the database f
2e90: 69 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ile.</li>.}..chn
2ea0: 67 20 7b 32 30 30 33 20 4a 75 6c 79 20 32 32 20  g {2003 July 22 
2eb0: 28 32 2e 38 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 4d  (2.8.5)} {.<li>M
2ec0: 61 6b 65 20 4c 49 4d 49 54 20 77 6f 72 6b 20 6f  ake LIMIT work o
2ed0: 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c  n a compound SEL
2ee0: 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f  ECT statement.</
2ef0: 6c 69 3e 0a 3c 6c 69 3e 4c 49 4d 49 54 20 30 20  li>.<li>LIMIT 0 
2f00: 6e 6f 77 20 73 68 6f 77 73 20 6e 6f 20 72 6f 77  now shows no row
2f10: 73 2e 20 20 55 73 65 20 4c 49 4d 49 54 20 2d 31  s.  Use LIMIT -1
2f20: 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 6f 77 73   to see all rows
2f30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65  .</li>.<li>Corre
2f40: 63 74 6c 79 20 68 61 6e 64 6c 65 20 63 6f 6d 70  ctly handle comp
2f50: 61 72 69 73 6f 6e 73 20 62 65 74 77 65 65 6e 20  arisons between 
2f60: 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41  an INTEGER PRIMA
2f70: 52 59 20 4b 45 59 20 61 6e 64 0a 20 20 20 20 61  RY KEY and.    a
2f80: 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20   floating point 
2f90: 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  number.</li>.<li
2fa0: 3e 46 69 78 20 73 65 76 65 72 61 6c 20 69 6d 70  >Fix several imp
2fb0: 6f 72 74 61 6e 74 20 62 75 67 73 20 69 6e 20 74  ortant bugs in t
2fc0: 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 61 6e  he new ATTACH an
2fd0: 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e 64  d DETACH command
2fe0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61  s.</li>.<li>Upda
2ff0: 74 65 64 20 74 68 65 20 3c 61 20 68 72 65 66 3d  ted the <a href=
3000: 22 6e 75 6c 6c 73 2e 68 74 6d 6c 22 3e 4e 55 4c  "nulls.html">NUL
3010: 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75 6d  L-handling docum
3020: 65 6e 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 20 0a 3c  ent</a>.</li> .<
3030: 6c 69 3e 41 6c 6c 6f 77 20 4e 55 4c 4c 20 61 72  li>Allow NULL ar
3040: 67 75 6d 65 6e 74 73 20 69 6e 20 73 71 6c 69 74  guments in sqlit
3050: 65 5f 63 6f 6d 70 69 6c 65 28 29 20 61 6e 64 20  e_compile() and 
3060: 73 71 6c 69 74 65 5f 73 74 65 70 28 29 2e 3c 2f  sqlite_step().</
3070: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e  li>.<li>Many min
3080: 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69  or bug fixes</li
3090: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
30a0: 4a 75 6e 65 20 32 39 20 28 32 2e 38 2e 34 29 7d  June 29 (2.8.4)}
30b0: 20 7b 0a 3c 6c 69 3e 45 6e 68 61 6e 63 65 64 20   {.<li>Enhanced 
30c0: 74 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74 65  the "PRAGMA inte
30d0: 67 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f 6d  grity_check" com
30e0: 6d 61 6e 64 20 74 6f 20 76 65 72 69 66 79 20 69  mand to verify i
30f0: 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ndices.</li>.<li
3100: 3e 41 64 64 65 64 20 61 75 74 68 6f 72 69 7a 61  >Added authoriza
3110: 74 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f 72 20 74  tion hooks for t
3120: 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 61 6e  he new ATTACH an
3130: 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e 64  d DETACH command
3140: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79  s.</li>.<li>Many
3150: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75   documentation u
3160: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
3170: 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20 66  Many minor bug f
3180: 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ixes</li>.}..chn
3190: 67 20 7b 32 30 30 33 20 4a 75 6e 65 20 34 20 28  g {2003 June 4 (
31a0: 32 2e 38 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.8.3)} {.<li>Fi
31b0: 78 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74  x a problem that
31c0: 20 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74 68   will corrupt th
31d0: 65 20 69 6e 64 69 63 65 73 20 6f 6e 20 61 20 74  e indices on a t
31e0: 61 62 6c 65 20 69 66 20 79 6f 75 0a 20 20 20 20  able if you.    
31f0: 64 6f 20 61 6e 20 49 4e 53 45 52 54 20 4f 52 20  do an INSERT OR 
3200: 52 45 50 4c 41 43 45 20 6f 72 20 61 6e 20 55 50  REPLACE or an UP
3210: 44 41 54 45 20 4f 52 20 52 45 50 4c 41 43 45 20  DATE OR REPLACE 
3220: 6f 6e 20 61 20 74 61 62 6c 65 20 74 68 61 74 0a  on a table that.
3230: 20 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20      contains an 
3240: 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20  INTEGER PRIMARY 
3250: 4b 45 59 20 70 6c 75 73 20 6f 6e 65 20 6f 72 20  KEY plus one or 
3260: 6d 6f 72 65 20 69 6e 64 69 63 65 73 2e 3c 2f 6c  more indices.</l
3270: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
3280: 20 69 6e 20 77 69 6e 64 6f 77 73 20 6c 6f 63 6b   in windows lock
3290: 69 6e 67 20 63 6f 64 65 20 73 6f 20 74 68 61 74  ing code so that
32a0: 20 6c 6f 63 6b 73 20 77 6f 72 6b 20 63 6f 72 72   locks work corr
32b0: 65 63 74 6c 79 0a 20 20 20 20 77 68 65 6e 20 73  ectly.    when s
32c0: 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 61 63  imultaneously ac
32d0: 63 65 73 73 65 64 20 62 79 20 57 69 6e 39 35 20  cessed by Win95 
32e0: 61 6e 64 20 57 69 6e 4e 54 20 73 79 73 74 65 6d  and WinNT system
32f0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  s.</li>.<li>Add 
3300: 74 68 65 20 61 62 69 6c 69 74 79 20 66 6f 72 20  the ability for 
3310: 49 4e 53 45 52 54 20 61 6e 64 20 55 50 44 41 54  INSERT and UPDAT
3320: 45 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20  E statements to 
3330: 72 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20 20  refer to the.   
3340: 20 22 72 6f 77 69 64 22 20 28 6f 72 20 22 5f 72   "rowid" (or "_r
3350: 6f 77 69 64 5f 22 20 6f 72 20 22 6f 69 64 22 29  owid_" or "oid")
3360: 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c   columns.</li>.<
3370: 6c 69 3e 4f 74 68 65 72 20 69 6d 70 6f 72 74 61  li>Other importa
3380: 6e 74 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69  nt bug fixes</li
3390: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
33a0: 4d 61 79 20 31 37 20 28 32 2e 38 2e 32 29 7d 20  May 17 (2.8.2)} 
33b0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62  {.<li>Fix a prob
33c0: 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63 6f  lem that will co
33d0: 72 72 75 70 74 20 74 68 65 20 64 61 74 61 62 61  rrupt the databa
33e0: 73 65 20 66 69 6c 65 20 69 66 20 79 6f 75 20 64  se file if you d
33f0: 72 6f 70 20 61 0a 20 20 20 20 74 61 62 6c 65 20  rop a.    table 
3400: 66 72 6f 6d 20 74 68 65 20 6d 61 69 6e 20 64 61  from the main da
3410: 74 61 62 61 73 65 20 74 68 61 74 20 68 61 73 20  tabase that has 
3420: 61 20 54 45 4d 50 20 69 6e 64 65 78 2e 3c 2f 6c  a TEMP index.</l
3430: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
3440: 20 4d 61 79 20 31 36 20 28 32 2e 38 2e 31 29 7d   May 16 (2.8.1)}
3450: 20 7b 0a 3c 6c 69 3e 52 65 61 63 74 69 76 61 74   {.<li>Reactivat
3460: 65 64 20 74 68 65 20 56 41 43 55 55 4d 20 63 6f  ed the VACUUM co
3470: 6d 6d 61 6e 64 20 74 68 61 74 20 72 65 63 6c 61  mmand that recla
3480: 69 6d 73 20 75 6e 75 73 65 64 20 64 69 73 6b 20  ims unused disk 
3490: 73 70 61 63 65 20 69 6e 20 0a 20 20 20 20 61 20  space in .    a 
34a0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c 2f  database file.</
34b0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
34c0: 65 20 41 54 54 41 43 48 20 61 6e 64 20 44 45 54  e ATTACH and DET
34d0: 41 43 48 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20  ACH commands to 
34e0: 61 6c 6c 6f 77 20 69 6e 74 65 72 61 63 74 69 6e  allow interactin
34f0: 67 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65 0a  g with multiple.
3500: 20 20 20 20 64 61 74 61 62 61 73 65 20 66 69 6c      database fil
3510: 65 73 20 61 74 20 74 68 65 20 73 61 6d 65 20 74  es at the same t
3520: 69 6d 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ime.</li>.<li>Ad
3530: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
3540: 54 45 4d 50 20 74 72 69 67 67 65 72 73 20 61 6e  TEMP triggers an
3550: 64 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a  d indices.</li>.
3560: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
3570: 74 20 66 6f 72 20 69 6e 2d 6d 65 6d 6f 72 79 20  t for in-memory 
3580: 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e 0a  databases.</li>.
3590: 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 74 68 65 20  <li>Removed the 
35a0: 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c  experimental sql
35b0: 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c  ite_open_aux_fil
35c0: 65 28 29 2e 20 20 49 74 73 20 66 75 6e 63 74 69  e().  Its functi
35d0: 6f 6e 20 69 73 0a 20 20 20 20 73 75 62 73 75 6d  on is.    subsum
35e0: 65 64 20 69 6e 20 74 68 65 20 6e 65 77 20 41 54  ed in the new AT
35f0: 54 41 43 48 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c  TACH command.</l
3600: 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 63 65  i>.<li>The prece
3610: 64 65 6e 63 65 20 6f 72 64 65 72 20 66 6f 72 20  dence order for 
3620: 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75  ON CONFLICT clau
3630: 73 65 73 20 77 61 73 20 63 68 61 6e 67 65 64 20  ses was changed 
3640: 73 6f 20 74 68 61 74 0a 20 20 20 20 4f 4e 20 43  so that.    ON C
3650: 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73 20  ONFLICT clauses 
3660: 6f 6e 20 42 45 47 49 4e 20 73 74 61 74 65 6d 65  on BEGIN stateme
3670: 6e 74 73 20 68 61 76 65 20 61 20 68 69 67 68 65  nts have a highe
3680: 72 20 70 72 65 63 65 64 65 6e 63 65 20 74 68 61  r precedence tha
3690: 6e 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49 43  n.    ON CONFLIC
36a0: 54 20 63 6c 61 75 73 65 73 20 6f 6e 20 63 6f 6e  T clauses on con
36b0: 73 74 72 61 69 6e 74 73 2e 0a 3c 6c 69 3e 4d 61  straints..<li>Ma
36c0: 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20 66 69 78  ny, many bug fix
36d0: 65 73 20 61 6e 64 20 63 6f 6d 70 61 74 69 62 69  es and compatibi
36e0: 6c 69 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e 74  lity enhancement
36f0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
3700: 7b 32 30 30 33 20 46 65 62 20 31 36 20 28 32 2e  {2003 Feb 16 (2.
3710: 38 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69  8.0)} {.<li>Modi
3720: 66 69 65 64 20 74 68 65 20 6a 6f 75 72 6e 61 6c  fied the journal
3730: 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 74 6f 20   file format to 
3740: 6d 61 6b 65 20 69 74 20 6d 6f 72 65 20 72 65 73  make it more res
3750: 69 73 74 61 6e 74 20 74 6f 20 63 6f 72 72 75 70  istant to corrup
3760: 74 69 6f 6e 0a 20 20 20 20 74 68 61 74 20 63 61  tion.    that ca
3770: 6e 20 6f 63 63 75 72 20 61 66 74 65 72 20 61 6e  n occur after an
3780: 20 4f 53 20 63 72 61 73 68 20 6f 72 20 70 6f 77   OS crash or pow
3790: 65 72 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e  er failure.</li>
37a0: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 6e 65 77  .<li>Added a new
37b0: 20 43 2f 43 2b 2b 20 41 50 49 20 74 68 61 74 20   C/C++ API that 
37c0: 64 6f 65 73 20 6e 6f 74 20 75 73 65 20 63 61 6c  does not use cal
37d0: 6c 62 61 63 6b 20 66 6f 72 20 72 65 74 75 72 6e  lback for return
37e0: 69 6e 67 20 64 61 74 61 2e 3c 2f 6c 69 3e 0a 7d  ing data.</li>.}
37f0: 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 61 6e  ..chng {2003 Jan
3800: 20 32 35 20 28 32 2e 37 2e 36 29 7d 20 7b 0a 3c   25 (2.7.6)} {.<
3810: 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 69  li>Performance i
3820: 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 20 20 54 68  mprovements.  Th
3830: 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 77  e library is now
3840: 20 6d 75 63 68 20 66 61 73 74 65 72 2e 3c 2f 6c   much faster.</l
3850: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
3860: 20 3c 62 3e 73 71 6c 69 74 65 5f 73 65 74 5f 61   <b>sqlite_set_a
3870: 75 74 68 6f 72 69 7a 65 72 28 29 3c 2f 62 3e 20  uthorizer()</b> 
3880: 41 50 49 2e 20 20 46 6f 72 6d 61 6c 20 64 6f 63  API.  Formal doc
3890: 75 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73 0a 20  umentation has. 
38a0: 20 20 20 6e 6f 74 20 62 65 65 6e 20 77 72 69 74     not been writ
38b0: 74 65 6e 20 2d 20 73 65 65 20 74 68 65 20 73 6f  ten - see the so
38c0: 75 72 63 65 20 63 6f 64 65 20 63 6f 6d 6d 65 6e  urce code commen
38d0: 74 73 20 66 6f 72 20 69 6e 73 74 72 75 63 74 69  ts for instructi
38e0: 6f 6e 73 20 6f 6e 0a 20 20 20 20 68 6f 77 20 74  ons on.    how t
38f0: 6f 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74  o use this funct
3900: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ion.</li>.<li>Fi
3910: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 47  x a bug in the G
3920: 4c 4f 42 20 6f 70 65 72 61 74 6f 72 20 74 68 61  LOB operator tha
3930: 74 20 77 61 73 20 70 72 65 76 65 6e 74 69 6e 67  t was preventing
3940: 20 69 74 20 66 72 6f 6d 20 77 6f 72 6b 69 6e 67   it from working
3950: 0a 20 20 20 20 77 69 74 68 20 75 70 70 65 72 2d  .    with upper-
3960: 63 61 73 65 20 6c 65 74 74 65 72 73 2e 3c 2f 6c  case letters.</l
3970: 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 6d  i>.<li>Various m
3980: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e 3c  inor bug fixes.<
3990: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
39a0: 30 32 20 44 65 63 20 32 37 20 28 32 2e 37 2e 35  02 Dec 27 (2.7.5
39b0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 20  )} {.<li>Fix an 
39c0: 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61  uninitialized va
39d0: 72 69 61 62 6c 65 20 69 6e 20 70 61 67 65 72 2e  riable in pager.
39e0: 63 20 77 68 69 63 68 20 63 6f 75 6c 64 20 28 77  c which could (w
39f0: 69 74 68 20 61 20 70 72 6f 62 61 62 69 6c 69 74  ith a probabilit
3a00: 79 0a 20 20 20 20 6f 66 20 61 62 6f 75 74 20 31  y.    of about 1
3a10: 20 69 6e 20 34 20 62 69 6c 6c 69 6f 6e 29 20 72   in 4 billion) r
3a20: 65 73 75 6c 74 20 69 6e 20 61 20 63 6f 72 72 75  esult in a corru
3a30: 70 74 65 64 20 64 61 74 61 62 61 73 65 2e 3c 2f  pted database.</
3a40: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
3a50: 32 20 44 65 63 20 31 37 20 28 32 2e 37 2e 34 29  2 Dec 17 (2.7.4)
3a60: 7d 20 7b 0a 3c 6c 69 3e 44 61 74 61 62 61 73 65  } {.<li>Database
3a70: 20 66 69 6c 65 73 20 63 61 6e 20 6e 6f 77 20 67   files can now g
3a80: 72 6f 77 20 74 6f 20 62 65 20 75 70 20 74 6f 20  row to be up to 
3a90: 32 5e 34 31 20 62 79 74 65 73 2e 20 20 54 68 65  2^41 bytes.  The
3aa0: 20 6f 6c 64 20 6c 69 6d 69 74 0a 20 20 20 20 77   old limit.    w
3ab0: 61 73 20 32 5e 33 31 20 62 79 74 65 73 2e 3c 2f  as 2^31 bytes.</
3ac0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74 69  li>.<li>The opti
3ad0: 6d 69 7a 65 72 20 77 69 6c 6c 20 6e 6f 77 20 73  mizer will now s
3ae0: 63 61 6e 20 74 61 62 6c 65 73 20 69 6e 20 74 68  can tables in th
3af0: 65 20 72 65 76 65 72 73 65 20 69 66 20 64 6f 69  e reverse if doi
3b00: 6e 67 20 73 6f 20 77 69 6c 6c 0a 20 20 20 20 73  ng so will.    s
3b10: 61 74 69 73 66 79 20 61 6e 20 4f 52 44 45 52 20  atisfy an ORDER 
3b20: 42 59 20 2e 2e 2e 20 44 45 53 43 20 63 6c 61 75  BY ... DESC clau
3b30: 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  se.</li>.<li>The
3b40: 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65 20 6f   full pathname o
3b50: 66 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66  f the database f
3b60: 69 6c 65 20 69 73 20 6e 6f 77 20 72 65 6d 65 6d  ile is now remem
3b70: 62 65 72 65 64 20 65 76 65 6e 20 69 66 0a 20 20  bered even if.  
3b80: 20 20 61 20 72 65 6c 61 74 69 76 65 20 70 61 74    a relative pat
3b90: 68 20 69 73 20 70 61 73 73 65 64 20 69 6e 74 6f  h is passed into
3ba0: 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 2e 20   sqlite_open(). 
3bb0: 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 0a 20 20   This allows .  
3bc0: 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f    the library to
3bd0: 20 63 6f 6e 74 69 6e 75 65 20 6f 70 65 72 61 74   continue operat
3be0: 69 6e 67 20 63 6f 72 72 65 63 74 6c 79 20 61 66  ing correctly af
3bf0: 74 65 72 20 61 20 63 68 64 69 72 28 29 2e 3c 2f  ter a chdir().</
3c00: 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d  li>.<li>Speed im
3c10: 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74 68  provements in th
3c20: 65 20 56 44 42 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e VDBE.</li>.<li
3c30: 3e 4c 6f 74 73 20 6f 66 20 6c 69 74 74 6c 65 20  >Lots of little 
3c40: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
3c50: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4f 63  }..chng {2002 Oc
3c60: 74 20 33 30 20 28 32 2e 37 2e 33 29 7d 20 7b 0a  t 30 (2.7.3)} {.
3c70: 3c 6c 69 3e 56 61 72 69 6f 75 73 20 63 6f 6d 70  <li>Various comp
3c80: 69 6c 65 72 20 63 6f 6d 70 61 74 69 62 69 6c 69  iler compatibili
3c90: 74 79 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 3c  ty fixes.</li>.<
3ca0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
3cb0: 74 68 65 20 22 65 78 70 72 20 49 4e 20 28 29 22  the "expr IN ()"
3cc0: 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a   operator.</li>.
3cd0: 3c 6c 69 3e 41 63 63 65 70 74 20 63 6f 6c 75 6d  <li>Accept colum
3ce0: 6e 20 6e 61 6d 65 73 20 69 6e 20 70 61 72 65 6e  n names in paren
3cf0: 74 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  theses.</li>.<li
3d00: 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77  >Fix a problem w
3d10: 69 74 68 20 73 74 72 69 6e 67 20 6d 65 6d 6f 72  ith string memor
3d20: 79 20 6d 61 6e 61 67 65 6d 65 6e 74 20 69 6e 20  y management in 
3d30: 74 68 65 20 56 44 42 45 3c 2f 6c 69 3e 0a 3c 6c  the VDBE</li>.<l
3d40: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
3d50: 68 65 20 22 74 61 62 6c 65 5f 69 6e 66 6f 22 20  he "table_info" 
3d60: 70 72 61 67 6d 61 22 3c 2f 6c 69 3e 0a 3c 6c 69  pragma"</li>.<li
3d70: 3e 45 78 70 6f 72 74 20 74 68 65 20 73 71 6c 69  >Export the sqli
3d80: 74 65 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70 65  te_function_type
3d90: 28 29 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 20  () API function 
3da0: 69 6e 20 74 68 65 20 57 69 6e 64 6f 77 73 20 44  in the Windows D
3db0: 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  LL</li>.<li>Fix 
3dc0: 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f 72  locking behavior
3dd0: 20 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 3c 2f   under windows</
3de0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
3df0: 67 20 69 6e 20 4c 45 46 54 20 4f 55 54 45 52 20  g in LEFT OUTER 
3e00: 4a 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  JOIN</li>.}..chn
3e10: 67 20 7b 32 30 30 32 20 53 65 70 20 32 35 20 28  g {2002 Sep 25 (
3e20: 32 2e 37 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 50 72  2.7.2)} {.<li>Pr
3e30: 65 76 65 6e 74 20 6a 6f 75 72 6e 61 6c 20 66 69  event journal fi
3e40: 6c 65 20 6f 76 65 72 66 6c 6f 77 73 20 6f 6e 20  le overflows on 
3e50: 68 75 67 65 20 74 72 61 6e 73 61 63 74 69 6f 6e  huge transaction
3e60: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
3e70: 61 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 74 68  a memory leak th
3e80: 61 74 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e  at occurred when
3e90: 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 20 66   sqlite_open() f
3ea0: 61 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ailed.</li>.<li>
3eb0: 48 6f 6e 6f 72 20 74 68 65 20 4f 52 44 45 52 20  Honor the ORDER 
3ec0: 42 59 20 61 6e 64 20 4c 49 4d 49 54 20 63 6c 61  BY and LIMIT cla
3ed0: 75 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54 20  use of a SELECT 
3ee0: 65 76 65 6e 20 69 66 20 74 68 65 0a 20 20 20 20  even if the.    
3ef0: 72 65 73 75 6c 74 20 73 65 74 20 69 73 20 75 73  result set is us
3f00: 65 64 20 66 6f 72 20 61 6e 20 49 4e 53 45 52 54  ed for an INSERT
3f10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f  .</li>.<li>Do no
3f20: 74 20 70 75 74 20 77 72 69 74 65 20 6c 6f 63 6b  t put write lock
3f30: 73 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 75 73  s on the file us
3f40: 65 64 20 74 6f 20 68 6f 6c 64 20 54 45 4d 50 20  ed to hold TEMP 
3f50: 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tables.</li>.<li
3f60: 3e 41 64 64 65 64 20 64 6f 63 75 6d 65 6e 74 61  >Added documenta
3f70: 74 69 6f 6e 20 6f 6e 20 53 45 4c 45 43 54 20 44  tion on SELECT D
3f80: 49 53 54 49 4e 43 54 20 61 6e 64 20 6f 6e 20 68  ISTINCT and on h
3f90: 6f 77 20 53 51 4c 69 74 65 20 68 61 6e 64 6c 65  ow SQLite handle
3fa0: 73 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c  s NULLs.</li>.<l
3fb0: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
3fc0: 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67  that was causing
3fd0: 20 70 6f 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63   poor performanc
3fe0: 65 20 77 68 65 6e 20 6d 61 6e 79 20 74 68 6f 75  e when many thou
3ff0: 73 61 6e 64 73 0a 20 20 20 20 6f 66 20 53 51 4c  sands.    of SQL
4000: 20 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65   statements were
4010: 20 65 78 65 63 75 74 65 64 20 62 79 20 61 20 73   executed by a s
4020: 69 6e 67 6c 65 20 73 71 6c 69 74 65 5f 65 78 65  ingle sqlite_exe
4030: 63 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69 3e 0a 7d  c() call.</li>.}
4040: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67  ..chng {2002 Aug
4050: 20 33 31 20 28 32 2e 37 2e 31 29 7d 20 7b 0a 3c   31 (2.7.1)} {.<
4060: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
4070: 74 68 65 20 4f 52 44 45 52 20 42 59 20 6c 6f 67  the ORDER BY log
4080: 69 63 20 74 68 61 74 20 77 61 73 20 69 6e 74 72  ic that was intr
4090: 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73 69 6f  oduced in versio
40a0: 6e 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a 3c 6c 69  n 2.7.0</li>.<li
40b0: 3e 43 2d 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74  >C-style comment
40c0: 73 20 61 72 65 20 6e 6f 77 20 61 63 63 65 70 74  s are now accept
40d0: 65 64 20 62 79 20 74 68 65 20 74 6f 6b 65 6e 69  ed by the tokeni
40e0: 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 4e  zer.</li>.<li>IN
40f0: 53 45 52 54 20 72 75 6e 73 20 61 20 6c 69 74 74  SERT runs a litt
4100: 6c 65 20 66 61 73 74 65 72 20 77 68 65 6e 20 74  le faster when t
4110: 68 65 20 73 6f 75 72 63 65 20 69 73 20 61 20 53  he source is a S
4120: 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e  ELECT statement.
4130: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4140: 30 30 32 20 41 75 67 20 32 35 20 28 32 2e 37 2e  002 Aug 25 (2.7.
4150: 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 61  0)} {.<li>Make a
4160: 20 64 69 73 74 69 6e 63 74 69 6f 6e 20 62 65 74   distinction bet
4170: 77 65 65 6e 20 6e 75 6d 65 72 69 63 20 61 6e 64  ween numeric and
4180: 20 74 65 78 74 20 76 61 6c 75 65 73 20 77 68 65   text values whe
4190: 6e 20 73 6f 72 74 69 6e 67 2e 0a 20 20 20 20 54  n sorting..    T
41a0: 65 78 74 20 76 61 6c 75 65 73 20 73 6f 72 74 20  ext values sort 
41b0: 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 6d 65 6d  according to mem
41c0: 63 6d 70 28 29 2e 20 20 4e 75 6d 65 72 69 63 20  cmp().  Numeric 
41d0: 76 61 6c 75 65 73 20 73 6f 72 74 20 69 6e 0a 20  values sort in. 
41e0: 20 20 20 6e 75 6d 65 72 69 63 20 6f 72 64 65 72     numeric order
41f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
4200: 20 6d 75 6c 74 69 70 6c 65 20 73 69 6d 75 6c 74   multiple simult
4210: 61 6e 65 6f 75 73 20 72 65 61 64 65 72 73 20 75  aneous readers u
4220: 6e 64 65 72 20 77 69 6e 64 6f 77 73 20 62 79 20  nder windows by 
4230: 73 69 6d 75 6c 61 74 69 6e 67 0a 20 20 20 20 74  simulating.    t
4240: 68 65 20 72 65 61 64 65 72 2f 77 72 69 74 65 72  he reader/writer
4250: 73 20 6c 6f 63 6b 73 20 74 68 61 74 20 61 72 65  s locks that are
4260: 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 57 69   missing from Wi
4270: 6e 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c 69 3e 0a  n95/98/ME.</li>.
4280: 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20 69 73 20  <li>An error is 
4290: 6e 6f 77 20 72 65 74 75 72 6e 65 64 20 77 68 65  now returned whe
42a0: 6e 20 74 72 79 69 6e 67 20 74 6f 20 73 74 61 72  n trying to star
42b0: 74 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20  t a transaction 
42c0: 69 66 0a 20 20 20 20 61 6e 6f 74 68 65 72 20 74  if.    another t
42d0: 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 61 6c  ransaction is al
42e0: 72 65 61 64 79 20 61 63 74 69 76 65 2e 3c 2f 6c  ready active.</l
42f0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
4300: 20 41 75 67 20 31 32 20 28 32 2e 36 2e 33 29 7d   Aug 12 (2.6.3)}
4310: 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61   {.<li>Add the a
4320: 62 69 6c 69 74 79 20 74 6f 20 72 65 61 64 20 62  bility to read b
4330: 6f 74 68 20 6c 69 74 74 6c 65 2d 65 6e 64 69 61  oth little-endia
4340: 6e 20 61 6e 64 20 62 69 67 2d 65 6e 64 69 61 6e  n and big-endian
4350: 20 64 61 74 61 62 61 73 65 73 2e 0a 20 20 20 20   databases..    
4360: 53 6f 20 64 61 74 61 62 61 73 65 20 63 72 65 61  So database crea
4370: 74 65 64 20 75 6e 64 65 72 20 53 75 6e 4f 53 20  ted under SunOS 
4380: 6f 72 20 4d 61 63 4f 53 58 20 63 61 6e 20 62 65  or MacOSX can be
4390: 20 72 65 61 64 20 61 6e 64 20 77 72 69 74 74 65   read and writte
43a0: 6e 0a 20 20 20 20 75 6e 64 65 72 20 4c 69 6e 75  n.    under Linu
43b0: 78 20 6f 72 20 57 69 6e 64 6f 77 73 20 61 6e 64  x or Windows and
43c0: 20 76 69 63 65 20 76 65 72 73 61 2e 3c 2f 6c 69   vice versa.</li
43d0: 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 74 6f  >.<li>Convert to
43e0: 20 74 68 65 20 6e 65 77 20 77 65 62 73 69 74 65   the new website
43f0: 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c  : http://www.sql
4400: 69 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e 0a 3c 6c  ite.org/</li>.<l
4410: 69 3e 41 6c 6c 6f 77 20 74 72 61 6e 73 61 63 74  i>Allow transact
4420: 69 6f 6e 73 20 74 6f 20 73 70 61 6e 20 4c 69 6e  ions to span Lin
4430: 75 78 20 54 68 72 65 61 64 73 3c 2f 6c 69 3e 0a  ux Threads</li>.
4440: 3c 6c 69 3e 42 75 67 20 66 69 78 20 69 6e 20 74  <li>Bug fix in t
4450: 68 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66  he processing of
4460: 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 63 6c   the ORDER BY cl
4470: 61 75 73 65 20 66 6f 72 20 47 52 4f 55 50 20 42  ause for GROUP B
4480: 59 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 7d  Y queries</li>.}
4490: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79  ..chng {2002 Jly
44a0: 20 33 30 20 28 32 2e 36 2e 32 29 7d 20 7b 0a 3c   30 (2.6.2)} {.<
44b0: 6c 69 3e 54 65 78 74 20 66 69 6c 65 73 20 72 65  li>Text files re
44c0: 61 64 20 62 79 20 74 68 65 20 43 4f 50 59 20 63  ad by the COPY c
44d0: 6f 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f 77 20 68  ommand can now h
44e0: 61 76 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e 61  ave line termina
44f0: 74 6f 72 73 0a 20 20 20 20 6f 66 20 4c 46 2c 20  tors.    of LF, 
4500: 20 43 52 4c 46 2c 20 6f 72 20 43 52 2e 3c 2f 6c   CRLF, or CR.</l
4510: 69 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45 5f 42 55  i>.<li>SQLITE_BU
4520: 53 59 20 69 73 20 68 61 6e 64 6c 65 64 20 63 6f  SY is handled co
4530: 72 72 65 63 74 6c 79 20 69 66 20 65 6e 63 6f 75  rrectly if encou
4540: 6e 74 65 72 65 64 20 64 75 72 69 6e 67 20 64 61  ntered during da
4550: 74 61 62 61 73 65 0a 20 20 20 20 69 6e 69 74 69  tabase.    initi
4560: 61 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a  alization.</li>.
4570: 3c 6c 69 3e 46 69 78 20 74 6f 20 55 50 44 41 54  <li>Fix to UPDAT
4580: 45 20 74 72 69 67 67 65 72 73 20 6f 6e 20 54 45  E triggers on TE
4590: 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a  MP tables.</li>.
45a0: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
45b0: 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a  n updates.</li>.
45c0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
45d0: 79 20 31 39 20 28 32 2e 36 2e 31 29 7d 20 7b 0a  y 19 (2.6.1)} {.
45e0: 3c 6c 69 3e 49 6e 63 6c 75 64 65 20 61 20 73 74  <li>Include a st
45f0: 61 74 69 63 20 73 74 72 69 6e 67 20 69 6e 20 74  atic string in t
4600: 68 65 20 6c 69 62 72 61 72 79 20 74 68 61 74 20  he library that 
4610: 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20  responds to the 
4620: 52 43 53 0a 20 20 20 20 22 69 64 65 6e 74 22 20  RCS.    "ident" 
4630: 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 77 68 69 63  command and whic
4640: 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 6c  h contains the l
4650: 69 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20 6e  ibrary version n
4660: 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  umber.</li>.<li>
4670: 46 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f 6e  Fix an assertion
4680: 20 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f 63   failure that oc
4690: 63 75 72 72 65 64 20 77 68 65 6e 20 64 65 6c 65  curred when dele
46a0: 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 6f 66  ting all rows of
46b0: 0a 20 20 20 20 61 20 74 61 62 6c 65 20 77 69 74  .    a table wit
46c0: 68 20 74 68 65 20 22 63 6f 75 6e 74 5f 63 68 61  h the "count_cha
46d0: 6e 67 65 73 22 20 70 72 61 67 6d 61 20 74 75 72  nges" pragma tur
46e0: 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ned on.</li>.<li
46f0: 3e 42 65 74 74 65 72 20 65 72 72 6f 72 20 72 65  >Better error re
4700: 70 6f 72 74 69 6e 67 20 77 68 65 6e 20 70 72 6f  porting when pro
4710: 62 6c 65 6d 73 20 6f 63 63 75 72 20 64 75 72 69  blems occur duri
4720: 6e 67 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63  ng the automatic
4730: 0a 20 20 20 20 32 2e 35 2e 36 20 74 6f 20 32 2e  .    2.5.6 to 2.
4740: 36 2e 30 20 64 61 74 61 62 61 73 65 20 66 6f 72  6.0 database for
4750: 6d 61 74 20 75 70 67 72 61 64 65 2e 3c 2f 6c 69  mat upgrade.</li
4760: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
4770: 4a 6c 79 20 31 37 20 28 32 2e 36 2e 30 29 7d 20  Jly 17 (2.6.0)} 
4780: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  {.<li>Change the
4790: 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69 63   format of indic
47a0: 65 73 20 74 6f 20 63 6f 72 72 65 63 74 20 61 20  es to correct a 
47b0: 64 65 73 69 67 6e 20 66 6c 61 77 20 74 68 65 20  design flaw the 
47c0: 6f 72 69 67 69 6e 61 74 65 64 0a 20 20 20 20 77  originated.    w
47d0: 69 74 68 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e  ith version 2.1.
47e0: 30 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d  0.  <font color=
47f0: 22 72 65 64 22 3e 2a 2a 2a 20 54 68 69 73 20 69  "red">*** This i
4800: 73 20 61 6e 20 69 6e 63 6f 6d 70 61 74 69 62 6c  s an incompatibl
4810: 65 0a 20 20 20 20 66 69 6c 65 20 66 6f 72 6d 61  e.    file forma
4820: 74 20 63 68 61 6e 67 65 20 2a 2a 2a 3c 2f 66 6f  t change ***</fo
4830: 6e 74 3e 20 20 57 68 65 6e 20 76 65 72 73 69 6f  nt>  When versio
4840: 6e 20 32 2e 36 2e 30 20 6f 72 20 6c 61 74 65 72  n 2.6.0 or later
4850: 20 6f 66 20 74 68 65 0a 20 20 20 20 6c 69 62 72   of the.    libr
4860: 61 72 79 20 61 74 74 65 6d 70 74 73 20 74 6f 20  ary attempts to 
4870: 6f 70 65 6e 20 61 20 64 61 74 61 62 61 73 65 20  open a database 
4880: 66 69 6c 65 20 63 72 65 61 74 65 64 20 62 79 20  file created by 
4890: 76 65 72 73 69 6f 6e 20 32 2e 35 2e 36 20 6f 72  version 2.5.6 or
48a0: 0a 20 20 20 20 65 61 72 6c 69 65 72 2c 20 69 74  .    earlier, it
48b0: 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61   will automatica
48c0: 6c 6c 79 20 61 6e 64 20 69 72 72 65 76 65 72 73  lly and irrevers
48d0: 69 62 6c 79 20 63 6f 6e 76 65 72 74 20 74 68 65  ibly convert the
48e0: 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e 0a 20 20   file format..  
48f0: 20 20 3c 62 3e 4d 61 6b 65 20 62 61 63 6b 75 70    <b>Make backup
4900: 20 63 6f 70 69 65 73 20 6f 66 20 6f 6c 64 65 72   copies of older
4910: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 20   database files 
4920: 62 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20 74  before opening t
4930: 68 65 6d 20 77 69 74 68 0a 20 20 20 20 76 65 72  hem with.    ver
4940: 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 66 20 74 68  sion 2.6.0 of th
4950: 65 20 6c 69 62 72 61 72 79 2e 3c 2f 62 3e 0a 20  e library.</b>. 
4960: 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
4970: 20 7b 32 30 30 32 20 4a 6c 79 20 37 20 28 32 2e   {2002 Jly 7 (2.
4980: 35 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  5.6)} {.<li>Fix 
4990: 6d 6f 72 65 20 70 72 6f 62 6c 65 6d 73 20 77 69  more problems wi
49a0: 74 68 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 45 6e  th rollback.  En
49b0: 68 61 6e 63 65 20 74 68 65 20 74 65 73 74 20 73  hance the test s
49c0: 75 69 74 65 20 74 6f 20 65 78 65 72 63 69 73 65  uite to exercise
49d0: 0a 20 20 20 20 74 68 65 20 72 6f 6c 6c 62 61 63  .    the rollbac
49e0: 6b 20 6c 6f 67 69 63 20 65 78 74 65 6e 73 69 76  k logic extensiv
49f0: 65 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ely in order to 
4a00: 70 72 65 76 65 6e 74 20 61 6e 79 20 66 75 74 75  prevent any futu
4a10: 72 65 20 70 72 6f 62 6c 65 6d 73 2e 0a 20 20 20  re problems..   
4a20: 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b   </li>.}..chng {
4a30: 32 30 30 32 20 4a 6c 79 20 36 20 28 32 2e 35 2e  2002 Jly 6 (2.5.
4a40: 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  5)} {.<li>Fix a 
4a50: 62 75 67 20 77 68 69 63 68 20 63 6f 75 6c 64 20  bug which could 
4a60: 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63  cause database c
4a70: 6f 72 72 75 70 74 69 6f 6e 20 64 75 72 69 6e 67  orruption during
4a80: 20 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a 20 20 20   a rollback..   
4a90: 20 54 68 69 73 20 62 75 67 73 20 77 61 73 20 69   This bugs was i
4aa0: 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72  ntroduced in ver
4ab0: 73 69 6f 6e 20 32 2e 34 2e 30 20 62 79 20 74 68  sion 2.4.0 by th
4ac0: 65 20 66 72 65 65 6c 69 73 74 0a 20 20 20 20 6f  e freelist.    o
4ad0: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 66 20 63  ptimization of c
4ae0: 68 65 63 6b 69 6e 67 20 5b 34 31 30 5d 2e 3c 2f  hecking [410].</
4af0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
4b00: 67 20 69 6e 20 61 67 67 72 65 67 61 74 65 20 66  g in aggregate f
4b10: 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 56 49 45  unctions for VIE
4b20: 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  Ws.</li>.<li>Oth
4b30: 65 72 20 6d 69 6e 6f 72 20 63 68 61 6e 67 65 73  er minor changes
4b40: 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74   and enhancement
4b50: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
4b60: 7b 32 30 30 32 20 4a 6c 79 20 31 20 28 32 2e 35  {2002 Jly 1 (2.5
4b70: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20  .4)} {.<li>Make 
4b80: 74 68 65 20 22 41 53 22 20 6b 65 79 77 6f 72 64  the "AS" keyword
4b90: 20 6f 70 74 69 6f 6e 61 6c 20 61 67 61 69 6e 2e   optional again.
4ba0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 61  </li>.<li>The da
4bb0: 74 61 74 79 70 65 20 6f 66 20 63 6f 6c 75 6d 6e  tatype of column
4bc0: 73 20 6e 6f 77 20 61 70 70 65 61 72 20 69 6e 20  s now appear in 
4bd0: 74 68 65 20 34 74 68 20 61 72 67 75 6d 65 6e 74  the 4th argument
4be0: 20 74 6f 20 74 68 65 0a 20 20 20 20 63 61 6c 6c   to the.    call
4bf0: 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  back.</li>.<li>A
4c00: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
4c10: 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c 65  te_open_aux_file
4c20: 28 29 3c 2f 62 3e 20 41 50 49 2c 20 74 68 6f 75  ()</b> API, thou
4c30: 67 68 20 69 74 20 69 73 20 73 74 69 6c 6c 0a 20  gh it is still. 
4c40: 20 20 20 6d 6f 73 74 6c 79 20 75 6e 64 6f 63 75     mostly undocu
4c50: 6d 65 6e 74 65 64 20 61 6e 64 20 75 6e 74 65 73  mented and untes
4c60: 74 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ted.</li>.<li>Ad
4c70: 64 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 74  ded additional t
4c80: 65 73 74 20 63 61 73 65 73 20 61 6e 64 20 66 69  est cases and fi
4c90: 78 65 64 20 61 20 66 65 77 20 62 75 67 73 20 74  xed a few bugs t
4ca0: 68 61 74 20 74 68 6f 73 65 0a 20 20 20 20 74 65  hat those.    te
4cb0: 73 74 20 63 61 73 65 73 20 66 6f 75 6e 64 2e 3c  st cases found.<
4cc0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
4cd0: 30 32 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e 33  02 Jun 24 (2.5.3
4ce0: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
4cf0: 3a 20 20 44 61 74 61 62 61 73 65 20 63 6f 72 72  :  Database corr
4d00: 75 70 74 69 6f 6e 20 63 61 6e 20 6f 63 63 75 72  uption can occur
4d10: 20 64 75 65 20 74 6f 20 74 68 65 20 6f 70 74 69   due to the opti
4d20: 6d 69 7a 61 74 69 6f 6e 0a 20 20 20 20 74 68 61  mization.    tha
4d30: 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64  t was introduced
4d40: 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 2e   in version 2.4.
4d50: 30 20 28 63 68 65 63 6b 2d 69 6e 20 5b 34 31 30  0 (check-in [410
4d60: 5d 29 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d  ]).  The problem
4d70: 0a 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 77 20  .    should now 
4d80: 62 65 20 66 69 78 65 64 2e 20 20 54 68 65 20 75  be fixed.  The u
4d90: 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 73 20 32  se of versions 2
4da0: 2e 34 2e 30 20 74 68 72 6f 75 67 68 20 32 2e 35  .4.0 through 2.5
4db0: 2e 32 20 69 73 0a 20 20 20 20 6e 6f 74 20 72 65  .2 is.    not re
4dc0: 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c 69 3e 0a  commended.</li>.
4dd0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75  }..chng {2002 Ju
4de0: 6e 20 32 34 20 28 32 2e 35 2e 32 29 7d 20 7b 0a  n 24 (2.5.2)} {.
4df0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65  <li>Added the ne
4e00: 77 20 3c 62 3e 53 51 4c 49 54 45 5f 54 45 4d 50  w <b>SQLITE_TEMP
4e10: 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 74 61 62 6c  _MASTER</b> tabl
4e20: 65 20 77 68 69 63 68 20 72 65 63 6f 72 64 73 20  e which records 
4e30: 74 68 65 20 73 63 68 65 6d 61 0a 20 20 20 20 66  the schema.    f
4e40: 6f 72 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62  or temporary tab
4e50: 6c 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20  les in the same 
4e60: 77 61 79 20 74 68 61 74 20 3c 62 3e 53 51 4c 49  way that <b>SQLI
4e70: 54 45 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 64 6f  TE_MASTER</b> do
4e80: 65 73 20 66 6f 72 0a 20 20 20 20 70 65 72 73 69  es for.    persi
4e90: 73 74 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f 6c  stent tables.</l
4ea0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 6e 20  i>.<li>Added an 
4eb0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 74 6f 20  optimization to 
4ec0: 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69 3e 0a 3c  UNION ALL</li>.<
4ed0: 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67 20 69  li>Fixed a bug i
4ee0: 6e 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67  n the processing
4ef0: 20 6f 66 20 4c 45 46 54 20 4f 55 54 45 52 20 4a   of LEFT OUTER J
4f00: 4f 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  OIN</li>.<li>The
4f10: 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6e 6f   LIMIT clause no
4f20: 77 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65  w works on subse
4f30: 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  lects</li>.<li>O
4f40: 52 44 45 52 20 42 59 20 77 6f 72 6b 73 20 6f 6e  RDER BY works on
4f50: 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69 3e   subselects</li>
4f60: 0a 3c 6c 69 3e 54 68 65 72 65 20 69 73 20 61 20  .<li>There is a 
4f70: 6e 65 77 20 54 79 70 65 4f 66 28 29 20 66 75 6e  new TypeOf() fun
4f80: 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 64 65  ction used to de
4f90: 74 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 65 78  termine if an ex
4fa0: 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 69 73 20  pression.    is 
4fb0: 6e 75 6d 65 72 69 63 20 6f 72 20 74 65 78 74 2e  numeric or text.
4fc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 69 6e  </li>.<li>Autoin
4fd0: 63 72 65 6d 65 6e 74 20 6e 6f 77 20 77 6f 72 6b  crement now work
4fe0: 73 20 66 6f 72 20 49 4e 53 45 52 54 20 66 72 6f  s for INSERT fro
4ff0: 6d 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e  m a SELECT.</li>
5000: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
5010: 75 6e 20 31 39 20 28 32 2e 35 2e 31 29 7d 20 7b  un 19 (2.5.1)} {
5020: 0a 3c 6c 69 3e 54 68 65 20 71 75 65 72 79 20 6f  .<li>The query o
5030: 70 74 69 6d 69 7a 65 72 20 6e 6f 77 20 61 74 74  ptimizer now att
5040: 65 6d 70 74 73 20 74 6f 20 69 6d 70 6c 65 6d 65  empts to impleme
5050: 6e 74 20 74 68 65 20 4f 52 44 45 52 20 42 59 20  nt the ORDER BY 
5060: 63 6c 61 75 73 65 0a 20 20 20 20 75 73 69 6e 67  clause.    using
5070: 20 61 6e 20 69 6e 64 65 78 2e 20 20 53 6f 72 74   an index.  Sort
5080: 69 6e 67 20 69 73 20 73 74 69 6c 6c 20 75 73 65  ing is still use
5090: 64 20 69 66 20 6e 6f 74 20 73 75 69 74 61 62 6c  d if not suitabl
50a0: 65 20 69 6e 64 65 78 20 69 73 0a 20 20 20 20 61  e index is.    a
50b0: 76 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d  vailable.</li>.}
50c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e  ..chng {2002 Jun
50d0: 20 31 37 20 28 32 2e 35 2e 30 29 7d 20 7b 0a 3c   17 (2.5.0)} {.<
50e0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
50f0: 20 66 6f 72 20 72 6f 77 20 74 72 69 67 67 65 72   for row trigger
5100: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
5110: 64 20 53 51 4c 2d 39 32 20 63 6f 6d 70 6c 69 61  d SQL-92 complia
5120: 6e 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 4e  nt handling of N
5130: 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ULLs.</li>.<li>A
5140: 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74  dd support for t
5150: 68 65 20 66 75 6c 6c 20 53 51 4c 2d 39 32 20 6a  he full SQL-92 j
5160: 6f 69 6e 20 73 79 6e 74 61 78 20 61 6e 64 20 4c  oin syntax and L
5170: 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73 2e  EFT OUTER JOINs.
5180: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75 62 6c 65  </li>.<li>Double
5190: 2d 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73 20  -quoted strings 
51a0: 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 63  interpreted as c
51b0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e 6f 74 20  olumn names not 
51c0: 74 65 78 74 20 6c 69 74 65 72 61 6c 73 2e 3c 2f  text literals.</
51d0: 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73 65 20 28 62  li>.<li>Parse (b
51e0: 75 74 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65 6d  ut do not implem
51f0: 65 6e 74 29 20 66 6f 72 65 69 67 6e 20 6b 65 79  ent) foreign key
5200: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66  s.</li>.<li>Perf
5210: 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d  ormance improvem
5220: 65 6e 74 73 20 69 6e 20 74 68 65 20 70 61 72 73  ents in the pars
5230: 65 72 2c 20 70 61 67 65 72 2c 20 61 6e 64 20 57  er, pager, and W
5240: 48 45 52 45 20 63 6c 61 75 73 65 20 63 6f 64 65  HERE clause code
5250: 0a 20 20 20 20 67 65 6e 65 72 61 74 6f 72 2e 3c  .    generator.<
5260: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68  /li>.<li>Make th
5270: 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 77  e LIMIT clause w
5280: 6f 72 6b 20 6f 6e 20 73 75 62 71 75 65 72 69 65  ork on subquerie
5290: 73 2e 20 20 28 4f 52 44 45 52 20 42 59 20 73 74  s.  (ORDER BY st
52a0: 69 6c 6c 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20  ill does not.   
52b0: 20 77 6f 72 6b 2c 20 74 68 6f 75 67 68 2e 29 3c   work, though.)<
52c0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
52d0: 68 65 20 22 25 51 22 20 65 78 70 61 6e 73 69 6f  he "%Q" expansio
52e0: 6e 20 74 6f 20 73 71 6c 69 74 65 5f 2a 5f 70 72  n to sqlite_*_pr
52f0: 69 6e 74 66 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69  intf().</li>.<li
5300: 3e 42 75 67 20 66 69 78 65 73 20 74 6f 6f 20 6e  >Bug fixes too n
5310: 75 6d 65 72 6f 75 73 20 74 6f 20 6d 65 6e 74 69  umerous to menti
5320: 6f 6e 20 28 73 65 65 20 74 68 65 20 63 68 61 6e  on (see the chan
5330: 67 65 20 6c 6f 67 29 2e 3c 2f 6c 69 3e 0a 7d 0a  ge log).</li>.}.
5340: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20  .chng {2002 May 
5350: 30 39 20 28 32 2e 34 2e 31 32 29 7d 20 7b 0a 3c  09 (2.4.12)} {.<
5360: 6c 69 3e 41 64 64 65 64 20 6c 6f 67 69 63 20 74  li>Added logic t
5370: 6f 20 64 65 74 65 63 74 20 77 68 65 6e 20 74 68  o detect when th
5380: 65 20 6c 69 62 72 61 72 79 20 41 50 49 20 72 6f  e library API ro
5390: 75 74 69 6e 65 73 20 61 72 65 20 63 61 6c 6c 65  utines are calle
53a0: 64 20 6f 75 74 0a 20 20 20 20 6f 66 20 73 65 71  d out.    of seq
53b0: 75 65 6e 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  uence.</li>.}..c
53c0: 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30 38  hng {2002 May 08
53d0: 20 28 32 2e 34 2e 31 31 29 7d 20 7b 0a 3c 6c 69   (2.4.11)} {.<li
53e0: 3e 42 75 67 20 66 69 78 3a 20 43 6f 6c 75 6d 6e  >Bug fix: Column
53f0: 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 72 65   names in the re
5400: 73 75 6c 74 20 73 65 74 20 77 65 72 65 20 6e 6f  sult set were no
5410: 74 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65  t being generate
5420: 64 0a 20 20 20 20 63 6f 72 72 65 63 74 6c 79 20  d.    correctly 
5430: 66 6f 72 20 73 6f 6d 65 20 28 72 61 74 68 65 72  for some (rather
5440: 20 63 6f 6d 70 6c 65 78 29 20 56 49 45 57 73 2e   complex) VIEWs.
5450: 20 20 54 68 69 73 20 63 6f 75 6c 64 20 63 61 75    This could cau
5460: 73 65 20 61 0a 20 20 20 20 73 65 67 66 61 75 6c  se a.    segfaul
5470: 74 20 75 6e 64 65 72 20 63 65 72 74 61 69 6e 20  t under certain 
5480: 63 69 72 63 75 6d 73 74 61 6e 63 65 73 2e 3c 2f  circumstances.</
5490: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
54a0: 32 20 4d 61 79 20 30 32 20 28 32 2e 34 2e 31 30  2 May 02 (2.4.10
54b0: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
54c0: 3a 20 47 65 6e 65 72 61 74 65 20 63 6f 72 72 65  : Generate corre
54d0: 63 74 20 63 6f 6c 75 6d 6e 20 68 65 61 64 65 72  ct column header
54e0: 73 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e  s when a compoun
54f0: 64 20 53 45 4c 45 43 54 20 69 73 20 75 73 65 64  d SELECT is used
5500: 0a 20 20 20 20 61 73 20 61 20 73 75 62 71 75 65  .    as a subque
5510: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ry.</li>.<li>Add
5520: 65 64 20 74 68 65 20 73 71 6c 69 74 65 5f 65 6e  ed the sqlite_en
5530: 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 61 6e  code_binary() an
5540: 64 20 73 71 6c 69 74 65 5f 64 65 63 6f 64 65 5f  d sqlite_decode_
5550: 62 69 6e 61 72 79 28 29 20 66 75 6e 63 74 69 6f  binary() functio
5560: 6e 73 20 74 6f 0a 20 20 20 20 74 68 65 20 73 6f  ns to.    the so
5570: 75 72 63 65 20 74 72 65 65 2e 20 20 42 75 74 20  urce tree.  But 
5580: 74 68 65 79 20 61 72 65 20 6e 6f 74 20 79 65 74  they are not yet
5590: 20 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 74 68 65   linked into the
55a0: 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c   library.</li>.<
55b0: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
55c0: 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 3c   updates.</li>.<
55d0: 6c 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73 71  li>Export the sq
55e0: 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 29 20 66  lite_changes() f
55f0: 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 77 69 6e  unction from win
5600: 64 6f 77 73 20 44 4c 4c 73 2e 3c 2f 6c 69 3e 0a  dows DLLs.</li>.
5610: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 44 6f 20  <li>Bug fix: Do 
5620: 6e 6f 74 20 61 74 74 65 6d 70 74 20 74 68 65 20  not attempt the 
5630: 73 75 62 71 75 65 72 79 20 66 6c 61 74 74 65 6e  subquery flatten
5640: 69 6e 67 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  ing optimization
5650: 20 6f 6e 20 71 75 65 72 69 65 73 0a 20 20 20 20   on queries.    
5660: 74 68 61 74 20 6c 61 63 6b 20 61 20 46 52 4f 4d  that lack a FROM
5670: 20 63 6c 61 75 73 65 2e 20 20 54 6f 20 64 6f 20   clause.  To do 
5680: 73 6f 20 63 61 75 73 65 73 20 61 20 73 65 67 66  so causes a segf
5690: 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ault.</li>.}..ch
56a0: 6e 67 20 7b 32 30 30 32 20 41 70 72 20 32 31 20  ng {2002 Apr 21 
56b0: 28 32 2e 34 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.4.9)} {.<li>F
56c0: 69 78 20 61 20 62 75 67 20 74 68 61 74 20 77 61  ix a bug that wa
56d0: 73 20 63 61 75 73 69 6e 67 20 74 68 65 20 70 72  s causing the pr
56e0: 65 63 6f 6d 70 69 6c 65 64 20 62 69 6e 61 72 79  ecompiled binary
56f0: 20 6f 66 20 53 51 4c 49 54 45 2e 45 58 45 20 74   of SQLITE.EXE t
5700: 6f 0a 20 20 20 20 72 65 70 6f 72 74 20 22 6f 75  o.    report "ou
5710: 74 20 6f 66 20 6d 65 6d 6f 72 79 22 20 75 6e 64  t of memory" und
5720: 65 72 20 57 69 6e 64 6f 77 73 20 39 38 2e 3c 2f  er Windows 98.</
5730: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
5740: 32 20 41 70 72 20 32 30 20 28 32 2e 34 2e 38 29  2 Apr 20 (2.4.8)
5750: 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72  } {.<li>Make sur
5760: 65 20 56 49 45 57 73 20 61 72 65 20 63 72 65 61  e VIEWs are crea
5770: 74 65 64 20 61 66 74 65 72 20 74 68 65 69 72 20  ted after their 
5780: 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 54 41  corresponding TA
5790: 42 4c 45 73 20 69 6e 20 74 68 65 0a 20 20 20 20  BLEs in the.    
57a0: 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 3c 62  output of the <b
57b0: 3e 2e 64 75 6d 70 3c 2f 62 3e 20 63 6f 6d 6d 61  >.dump</b> comma
57c0: 6e 64 20 69 6e 20 74 68 65 20 73 68 65 6c 6c 2e  nd in the shell.
57d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20  </li>.<li>Speed 
57e0: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 3a 20 44 6f  improvements: Do
57f0: 20 6e 6f 74 20 64 6f 20 73 79 6e 63 68 72 6f 6e   not do synchron
5800: 6f 75 73 20 75 70 64 61 74 65 73 20 6f 6e 20 54  ous updates on T
5810: 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e  EMP tables.</li>
5820: 0a 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70 72 6f 76  .<li>Many improv
5830: 65 6d 65 6e 74 73 20 61 6e 64 20 65 6e 68 61 6e  ements and enhan
5840: 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 73  cements to the s
5850: 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  hell.</li>.<li>M
5860: 61 6b 65 20 74 68 65 20 47 4c 4f 42 20 61 6e 64  ake the GLOB and
5870: 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 73 20   LIKE operators 
5880: 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 63  functions that c
5890: 61 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e  an be overridden
58a0: 0a 20 20 20 20 62 79 20 61 20 70 72 6f 67 72 61  .    by a progra
58b0: 6d 6d 65 72 2e 20 20 54 68 69 73 20 61 6c 6c 6f  mmer.  This allo
58c0: 77 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c  ws, for example,
58d0: 20 74 68 65 20 4c 49 4b 45 20 6f 70 65 72 61 74   the LIKE operat
58e0: 6f 72 20 74 6f 0a 20 20 20 20 62 65 20 63 68 61  or to.    be cha
58f0: 6e 67 65 64 20 74 6f 20 62 65 20 63 61 73 65 20  nged to be case 
5900: 73 65 6e 73 69 74 69 76 65 2e 3c 2f 6c 69 3e 0a  sensitive.</li>.
5910: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70  }..chng {2002 Ap
5920: 72 20 30 36 20 28 32 2e 34 2e 37 29 7d 20 7b 0a  r 06 (2.4.7)} {.
5930: 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c  <li>Add the abil
5940: 69 74 79 20 74 6f 20 70 75 74 20 54 41 42 4c 45  ity to put TABLE
5950: 2e 2a 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e  .* in the column
5960: 20 6c 69 73 74 20 6f 66 20 61 0a 20 20 20 20 53   list of a.    S
5970: 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e  ELECT statement.
5980: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 6d 69 74  </li>.<li>Permit
5990: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
59a0: 74 73 20 77 69 74 68 6f 75 74 20 61 20 46 52 4f  ts without a FRO
59b0: 4d 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c  M clause.</li>.<
59c0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e  li>Added the <b>
59d0: 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69  last_insert_rowi
59e0: 64 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75 6e 63  d()</b> SQL func
59f0: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  tion.</li>.<li>D
5a00: 6f 20 6e 6f 74 20 63 6f 75 6e 74 20 72 6f 77 73  o not count rows
5a10: 20 77 68 65 72 65 20 74 68 65 20 49 47 4e 4f 52   where the IGNOR
5a20: 45 20 63 6f 6e 66 6c 69 63 74 20 72 65 73 6f 6c  E conflict resol
5a30: 75 74 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e 0a  ution occurs in.
5a40: 20 20 20 20 74 68 65 20 72 6f 77 20 63 6f 75 6e      the row coun
5a50: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  t.</li>.<li>Make
5a60: 20 73 75 72 65 20 66 75 6e 63 74 69 6f 6e 73 20   sure functions 
5a70: 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20 74  expressions in t
5a80: 68 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73 65  he VALUES clause
5a90: 20 6f 66 20 61 6e 20 49 4e 53 45 52 54 0a 20 20   of an INSERT.  
5aa0: 20 20 61 72 65 20 63 6f 72 72 65 63 74 2e 3c 2f    are correct.</
5ab0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
5ac0: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63 68 61 6e  e <b>sqlite_chan
5ad0: 67 65 73 28 29 3c 2f 62 3e 20 41 50 49 20 66 75  ges()</b> API fu
5ae0: 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e  nction to return
5af0: 20 74 68 65 20 6e 75 6d 62 65 72 0a 20 20 20 20   the number.    
5b00: 6f 66 20 72 6f 77 20 74 68 61 74 20 63 68 61 6e  of row that chan
5b10: 67 65 64 20 69 6e 20 74 68 65 20 6d 6f 73 74 20  ged in the most 
5b20: 72 65 63 65 6e 74 20 6f 70 65 72 61 74 69 6f 6e  recent operation
5b30: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5b40: 32 30 30 32 20 41 70 72 20 30 32 20 28 32 2e 34  2002 Apr 02 (2.4
5b50: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .6)} {.<li>Bug f
5b60: 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68 61  ix: Correctly ha
5b70: 6e 64 6c 65 20 74 65 72 6d 73 20 69 6e 20 74 68  ndle terms in th
5b80: 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 6f  e WHERE clause o
5b90: 66 20 61 20 6a 6f 69 6e 20 74 68 61 74 0a 20 20  f a join that.  
5ba0: 20 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e    do not contain
5bb0: 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70   a comparison op
5bc0: 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  erator.</li>.}..
5bd0: 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 30  chng {2002 Apr 0
5be0: 31 20 28 32 2e 34 2e 35 29 7d 20 7b 0a 3c 6c 69  1 (2.4.5)} {.<li
5bf0: 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65 63  >Bug fix: Correc
5c00: 74 6c 79 20 68 61 6e 64 6c 65 20 66 75 6e 63 74  tly handle funct
5c10: 69 6f 6e 73 20 74 68 61 74 20 61 70 70 65 61 72  ions that appear
5c20: 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c   in the WHERE cl
5c30: 61 75 73 65 0a 20 20 20 20 6f 66 20 61 20 6a 6f  ause.    of a jo
5c40: 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65  in.</li>.<li>Whe
5c50: 6e 20 74 68 65 20 50 52 41 47 4d 41 20 76 64 62  n the PRAGMA vdb
5c60: 65 5f 74 72 61 63 65 3d 4f 4e 20 69 73 20 73 65  e_trace=ON is se
5c70: 74 2c 20 63 6f 72 72 65 63 74 6c 79 20 70 72 69  t, correctly pri
5c80: 6e 74 20 74 68 65 20 50 33 20 6f 70 65 72 61 6e  nt the P3 operan
5c90: 64 0a 20 20 20 20 76 61 6c 75 65 20 77 68 65 6e  d.    value when
5ca0: 20 69 74 20 69 73 20 61 20 70 6f 69 6e 74 65 72   it is a pointer
5cb0: 20 74 6f 20 61 20 73 74 72 75 63 74 75 72 65 20   to a structure 
5cc0: 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 70 6f  rather than a po
5cd0: 69 6e 74 65 72 20 74 6f 0a 20 20 20 20 61 20 73  inter to.    a s
5ce0: 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tring.</li>.<li>
5cf0: 57 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 20 61  When inserting a
5d00: 6e 20 65 78 70 6c 69 63 69 74 20 4e 55 4c 4c 20  n explicit NULL 
5d10: 69 6e 74 6f 20 61 6e 20 49 4e 54 45 47 45 52 20  into an INTEGER 
5d20: 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 63 6f 6e  PRIMARY KEY, con
5d30: 76 65 72 74 0a 20 20 20 20 74 68 65 20 4e 55 4c  vert.    the NUL
5d40: 4c 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20 75  L value into a u
5d50: 6e 69 71 75 65 20 6b 65 79 20 61 75 74 6f 6d 61  nique key automa
5d60: 74 69 63 61 6c 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a  tically.</li>.}.
5d70: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20  .chng {2002 Mar 
5d80: 32 34 20 28 32 2e 34 2e 34 29 7d 20 7b 0a 3c 6c  24 (2.4.4)} {.<l
5d90: 69 3e 41 6c 6c 6f 77 20 22 56 49 45 57 22 20 74  i>Allow "VIEW" t
5da0: 6f 20 62 65 20 61 20 63 6f 6c 75 6d 6e 20 6e 61  o be a column na
5db0: 6d 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  me</li>.<li>Adde
5dc0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 41  d support for CA
5dd0: 53 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20 28  SE expressions (
5de0: 70 61 74 63 68 20 66 72 6f 6d 20 44 61 6e 20 4b  patch from Dan K
5df0: 65 6e 6e 65 64 79 29 3c 2f 6c 69 3e 0a 3c 6c 69  ennedy)</li>.<li
5e00: 3e 41 64 64 65 64 20 52 50 4d 53 20 74 6f 20 74  >Added RPMS to t
5e10: 68 65 20 64 65 6c 69 76 65 72 79 20 28 70 61 74  he delivery (pat
5e20: 63 68 65 73 20 66 72 6f 6d 20 44 6f 75 67 20 48  ches from Doug H
5e30: 65 6e 72 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  enry)</li>.<li>F
5e40: 69 78 20 74 79 70 6f 73 20 69 6e 20 74 68 65 20  ix typos in the 
5e50: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c  documentation</l
5e60: 69 3e 0a 3c 6c 69 3e 43 75 74 20 6f 76 65 72 20  i>.<li>Cut over 
5e70: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 61  configuration ma
5e80: 6e 61 67 65 6d 65 6e 74 20 74 6f 20 61 20 6e 65  nagement to a ne
5e90: 77 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72 79  w CVS repository
5ea0: 20 77 69 74 68 0a 20 20 20 20 69 74 73 20 6f 77   with.    its ow
5eb0: 6e 20 43 56 53 54 72 61 63 20 62 75 67 20 74 72  n CVSTrac bug tr
5ec0: 61 63 6b 69 6e 67 20 73 79 73 74 65 6d 2e 3c 2f  acking system.</
5ed0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
5ee0: 32 20 4d 61 72 20 32 32 20 28 32 2e 34 2e 33 29  2 Mar 22 (2.4.3)
5ef0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
5f00: 67 20 69 6e 20 53 45 4c 45 43 54 20 74 68 61 74  g in SELECT that
5f10: 20 6f 63 63 75 72 73 20 77 68 65 6e 20 61 20 63   occurs when a c
5f20: 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 69  ompound SELECT i
5f30: 73 20 75 73 65 64 20 61 73 20 61 0a 20 20 20 20  s used as a.    
5f40: 73 75 62 71 75 65 72 79 20 69 6e 20 74 68 65 20  subquery in the 
5f50: 46 52 4f 4d 20 6f 66 20 61 20 53 45 4c 45 43 54  FROM of a SELECT
5f60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c  .</li>.<li>The <
5f70: 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62  b>sqlite_get_tab
5f80: 6c 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f  le()</b> functio
5f90: 6e 20 6e 6f 77 20 72 65 74 75 72 6e 73 20 61 6e  n now returns an
5fa0: 20 65 72 72 6f 72 20 69 66 20 79 6f 75 0a 20 20   error if you.  
5fb0: 20 20 67 69 76 65 20 69 74 20 74 77 6f 20 6f 72    give it two or
5fc0: 20 6d 6f 72 65 20 53 45 4c 45 43 54 73 20 74 68   more SELECTs th
5fd0: 61 74 20 72 65 74 75 72 6e 20 64 69 66 66 65 72  at return differ
5fe0: 65 6e 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 63  ent numbers of c
5ff0: 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  olumns.</li>.}..
6000: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 31  chng {2002 Mar 1
6010: 34 20 28 32 2e 34 2e 32 29 7d 20 7b 0a 3c 6c 69  4 (2.4.2)} {.<li
6020: 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20 61 6e  >Bug fix: Fix an
6030: 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75   assertion failu
6040: 72 65 20 74 68 61 74 20 6f 63 63 75 72 72 65 64  re that occurred
6050: 20 77 68 65 6e 20 52 4f 57 49 44 20 77 61 73 20   when ROWID was 
6060: 61 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 69 6e 20  a column.    in 
6070: 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  a SELECT stateme
6080: 6e 74 20 6f 6e 20 61 20 76 69 65 77 2e 3c 2f 6c  nt on a view.</l
6090: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
60a0: 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61 6c  Fix an uninitial
60b0: 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69 6e  ized variable in
60c0: 20 74 68 65 20 56 44 42 45 20 74 68 61 74 20 77   the VDBE that w
60d0: 6f 75 6c 64 20 63 6f 75 6c 64 20 61 6e 0a 20 20  ould could an.  
60e0: 20 20 61 73 73 65 72 74 20 66 61 69 6c 75 72 65    assert failure
60f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20  .</li>.<li>Make 
6100: 74 68 65 20 6f 73 2e 68 20 68 65 61 64 65 72 20  the os.h header 
6110: 66 69 6c 65 20 6d 6f 72 65 20 72 6f 62 75 73 74  file more robust
6120: 20 69 6e 20 64 65 74 65 63 74 69 6e 67 20 77 68   in detecting wh
6130: 65 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 20 69  en the compile i
6140: 73 0a 20 20 20 20 66 6f 72 20 77 69 6e 64 6f 77  s.    for window
6150: 73 20 61 6e 64 20 77 68 65 6e 20 69 74 20 69 73  s and when it is
6160: 20 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c 69 3e 0a   for unix.</li>.
6170: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61  }..chng {2002 Ma
6180: 72 20 31 33 20 28 32 2e 34 2e 31 29 7d 20 7b 0a  r 13 (2.4.1)} {.
6190: 3c 6c 69 3e 55 73 69 6e 67 20 61 6e 20 75 6e 6e  <li>Using an unn
61a0: 61 6d 65 64 20 73 75 62 71 75 65 72 79 20 69 6e  amed subquery in
61b0: 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 20 77   a FROM clause w
61c0: 6f 75 6c 64 20 63 61 75 73 65 20 61 20 73 65 67  ould cause a seg
61d0: 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  fault.</li>.<li>
61e0: 54 68 65 20 70 61 72 73 65 72 20 6e 6f 77 20 69  The parser now i
61f0: 6e 73 69 73 74 73 20 6f 6e 20 73 65 65 69 6e 67  nsists on seeing
6200: 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 6f 72 20   a semicolon or 
6210: 74 68 65 20 65 6e 64 20 6f 66 20 69 6e 70 75 74  the end of input
6220: 20 62 65 66 6f 72 65 0a 20 20 20 20 65 78 65 63   before.    exec
6230: 75 74 69 6e 67 20 61 20 73 74 61 74 65 6d 65 6e  uting a statemen
6240: 74 2e 20 20 54 68 69 73 20 61 76 6f 69 64 73 20  t.  This avoids 
6250: 61 6e 20 61 63 63 69 64 65 6e 74 61 6c 20 64 69  an accidental di
6260: 73 61 73 74 65 72 20 69 66 20 74 68 65 0a 20 20  saster if the.  
6270: 20 20 57 48 45 52 45 20 6b 65 79 77 6f 72 64 20    WHERE keyword 
6280: 69 73 20 6d 69 73 73 70 65 6c 6c 65 64 20 69 6e  is misspelled in
6290: 20 61 6e 20 55 50 44 41 54 45 20 6f 72 20 44 45   an UPDATE or DE
62a0: 4c 45 54 45 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LETE statement.<
62b0: 2f 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67 20 7b 32  /li>.}...chng {2
62c0: 30 30 32 20 4d 61 72 20 31 30 20 28 32 2e 34 2e  002 Mar 10 (2.4.
62d0: 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65  0)} {.<li>Change
62e0: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65   the name of the
62f0: 20 73 61 6e 69 74 79 5f 63 68 65 63 6b 20 50 52   sanity_check PR
6300: 41 47 4d 41 20 74 6f 20 3c 62 3e 69 6e 74 65 67  AGMA to <b>integ
6310: 72 69 74 79 5f 63 68 65 63 6b 3c 2f 62 3e 0a 20  rity_check</b>. 
6320: 20 20 20 61 6e 64 20 6d 61 6b 65 20 69 74 20 61     and make it a
6330: 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 6c 6c 20  vailable in all 
6340: 63 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c  compiles.</li>.<
6350: 6c 69 3e 53 45 4c 45 43 54 20 6d 69 6e 28 29 20  li>SELECT min() 
6360: 6f 72 20 6d 61 78 28 29 20 6f 66 20 61 6e 20 69  or max() of an i
6370: 6e 64 65 78 65 64 20 63 6f 6c 75 6d 6e 20 77 69  ndexed column wi
6380: 74 68 20 6e 6f 20 57 48 45 52 45 20 6f 72 20 47  th no WHERE or G
6390: 52 4f 55 50 20 42 59 0a 20 20 20 20 63 6c 61 75  ROUP BY.    clau
63a0: 73 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61 73  se is handled as
63b0: 20 61 20 73 70 65 63 69 61 6c 20 63 61 73 65 20   a special case 
63c0: 77 68 69 63 68 20 61 76 6f 69 64 73 20 61 20 63  which avoids a c
63d0: 6f 6d 70 6c 65 74 65 20 74 61 62 6c 65 20 73 63  omplete table sc
63e0: 61 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74  an.</li>.<li>Aut
63f0: 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72  omatically gener
6400: 61 74 65 64 20 52 4f 57 49 44 73 20 61 72 65 20  ated ROWIDs are 
6410: 6e 6f 77 20 73 65 71 75 65 6e 74 69 61 6c 2e 3c  now sequential.<
6420: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20  /li>.<li>Do not 
6430: 61 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d 6d 61 6e  allow dot-comman
6440: 64 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61 6e  ds of the comman
6450: 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74 6f 20  d-line shell to 
6460: 6f 63 63 75 72 20 69 6e 20 74 68 65 0a 20 20 20  occur in the.   
6470: 20 6d 69 64 64 6c 65 20 6f 66 20 61 20 72 65 61   middle of a rea
6480: 6c 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f  l SQL command.</
6490: 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 63 61  li>.<li>Modifica
64a0: 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 22 6c 65  tions to the "le
64b0: 6d 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e 65  mon" parser gene
64c0: 72 61 74 6f 72 20 73 6f 20 74 68 61 74 20 74 68  rator so that th
64d0: 65 20 70 61 72 73 65 72 20 74 61 62 6c 65 73 0a  e parser tables.
64e0: 20 20 20 20 61 72 65 20 34 20 74 69 6d 65 73 20      are 4 times 
64f0: 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  smaller.</li>.<l
6500: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
6510: 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e 65 64  for user-defined
6520: 20 66 75 6e 63 74 69 6f 6e 73 20 69 6d 70 6c 65   functions imple
6530: 6d 65 6e 74 65 64 20 69 6e 20 43 2e 3c 2f 6c 69  mented in C.</li
6540: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
6550: 6f 72 74 20 66 6f 72 20 6e 65 77 20 66 75 6e 63  ort for new func
6560: 74 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61 6c 65 73  tions: <b>coales
6570: 63 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e 6c 6f 77  ce()</b>, <b>low
6580: 65 72 28 29 3c 2f 62 3e 2c 0a 20 20 20 20 3c 62  er()</b>,.    <b
6590: 3e 75 70 70 65 72 28 29 3c 2f 62 3e 2c 20 61 6e  >upper()</b>, an
65a0: 64 20 3c 62 3e 72 61 6e 64 6f 6d 28 29 3c 2f 62  d <b>random()</b
65b0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
65c0: 6f 72 74 20 66 6f 72 20 56 49 45 57 73 2e 3c 2f  ort for VIEWs.</
65d0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
65e0: 65 20 73 75 62 71 75 65 72 79 20 66 6c 61 74 74  e subquery flatt
65f0: 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 65 72 2e  ening optimizer.
6600: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
6610: 65 64 20 74 68 65 20 42 2d 54 72 65 65 20 61 6e  ed the B-Tree an
6620: 64 20 50 61 67 65 72 20 6d 6f 64 75 6c 65 73 20  d Pager modules 
6630: 73 6f 20 74 68 61 74 20 64 69 73 6b 20 70 61 67  so that disk pag
6640: 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 0a 20  es that do not. 
6650: 20 20 20 63 6f 6e 74 61 69 6e 20 72 65 61 6c 20     contain real 
6660: 64 61 74 61 20 28 66 72 65 65 20 70 61 67 65 73  data (free pages
6670: 29 20 61 72 65 20 6e 6f 74 20 6a 6f 75 72 6e 61  ) are not journa
6680: 6c 65 64 20 61 6e 64 20 61 72 65 20 6e 6f 74 0a  led and are not.
6690: 20 20 20 20 77 72 69 74 74 65 6e 20 66 72 6f 6d      written from
66a0: 20 6d 65 6d 6f 72 79 20 62 61 63 6b 20 74 6f 20   memory back to 
66b0: 74 68 65 20 64 69 73 6b 20 77 68 65 6e 20 74 68  the disk when th
66c0: 65 79 20 63 68 61 6e 67 65 2e 20 20 54 68 69 73  ey change.  This
66d0: 20 64 6f 65 73 20 6e 6f 74 20 0a 20 20 20 20 69   does not .    i
66e0: 6d 70 61 63 74 20 64 61 74 61 62 61 73 65 20 69  mpact database i
66f0: 6e 74 65 67 72 69 74 79 2c 20 73 69 6e 63 65 20  ntegrity, since 
6700: 74 68 65 0a 20 20 20 20 70 61 67 65 73 20 63 6f  the.    pages co
6710: 6e 74 61 69 6e 20 6e 6f 20 72 65 61 6c 20 64 61  ntain no real da
6720: 74 61 2c 20 62 75 74 20 69 74 20 64 6f 65 73 20  ta, but it does 
6730: 6d 61 6b 65 20 6c 61 72 67 65 20 49 4e 53 45 52  make large INSER
6740: 54 20 6f 70 65 72 61 74 69 6f 6e 73 0a 20 20 20  T operations.   
6750: 20 61 62 6f 75 74 20 32 2e 35 20 74 69 6d 65 73   about 2.5 times
6760: 20 66 61 73 74 65 72 20 61 6e 64 20 6c 61 72 67   faster and larg
6770: 65 20 44 45 4c 45 54 45 73 20 61 62 6f 75 74 20  e DELETEs about 
6780: 35 20 74 69 6d 65 73 20 66 61 73 74 65 72 2e 3c  5 times faster.<
6790: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65 20 74 68  /li>.<li>Made th
67a0: 65 20 43 41 43 48 45 5f 53 49 5a 45 20 70 72 61  e CACHE_SIZE pra
67b0: 67 6d 61 20 70 65 72 73 69 73 74 65 6e 74 3c 2f  gma persistent</
67c0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
67d0: 65 20 53 59 4e 43 48 52 4f 4e 4f 55 53 20 70 72  e SYNCHRONOUS pr
67e0: 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  agma</li>.<li>Fi
67f0: 78 65 64 20 61 20 62 75 67 20 74 68 61 74 20 77  xed a bug that w
6800: 61 73 20 63 61 75 73 69 6e 67 20 75 70 64 61 74  as causing updat
6810: 65 73 20 74 6f 20 66 61 69 6c 20 69 6e 73 69 64  es to fail insid
6820: 65 20 6f 66 20 74 72 61 6e 73 61 63 74 69 6f 6e  e of transaction
6830: 73 20 77 68 65 6e 0a 20 20 20 20 74 68 65 20 64  s when.    the d
6840: 61 74 61 62 61 73 65 20 63 6f 6e 74 61 69 6e 65  atabase containe
6850: 64 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61  d a temporary ta
6860: 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ble.</li>.}..chn
6870: 67 20 7b 32 30 30 32 20 46 65 62 20 31 38 20 28  g {2002 Feb 18 (
6880: 32 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6c  2.3.3)} {.<li>Al
6890: 6c 6f 77 20 69 64 65 6e 74 69 66 69 65 72 73 20  low identifiers 
68a0: 74 6f 20 62 65 20 71 75 6f 74 65 64 20 69 6e 20  to be quoted in 
68b0: 73 71 75 61 72 65 20 62 72 61 63 6b 65 74 73 2c  square brackets,
68c0: 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69   for compatibili
68d0: 74 79 0a 20 20 20 20 77 69 74 68 20 4d 53 2d 41  ty.    with MS-A
68e0: 63 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ccess.</li>.<li>
68f0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
6900: 72 20 73 75 62 2d 71 75 65 72 69 65 73 20 69 6e  r sub-queries in
6910: 20 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73 65   the FROM clause
6920: 20 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c   of a SELECT.</l
6930: 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65 66 66 69  i>.<li>More effi
6940: 63 69 65 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 61  cient implementa
6950: 74 69 6f 6e 20 6f 66 20 73 71 6c 69 74 65 46 69  tion of sqliteFi
6960: 6c 65 45 78 69 73 74 73 28 29 20 75 6e 64 65 72  leExists() under
6970: 20 57 69 6e 64 6f 77 73 2e 0a 20 20 20 20 28 62   Windows..    (b
6980: 79 20 4a 6f 65 6c 20 4c 75 73 63 79 29 3c 2f 6c  y Joel Luscy)</l
6990: 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 4c 55 45  i>.<li>The VALUE
69a0: 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20 49  S clause of an I
69b0: 4e 53 45 52 54 20 63 61 6e 20 6e 6f 77 20 63 6f  NSERT can now co
69c0: 6e 74 61 69 6e 20 65 78 70 72 65 73 73 69 6f 6e  ntain expression
69d0: 73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 20 20 20  s, including.   
69e0: 20 73 63 61 6c 61 72 20 53 45 4c 45 43 54 20 63   scalar SELECT c
69f0: 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  lauses.</li>.<li
6a00: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
6a10: 6f 72 20 43 52 45 41 54 45 20 54 41 42 4c 45 20  or CREATE TABLE 
6a20: 41 53 20 53 45 4c 45 43 54 3c 2f 6c 69 3e 0a 3c  AS SELECT</li>.<
6a30: 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 72 65 61  li>Bug fix: Crea
6a40: 74 69 6e 67 20 61 6e 64 20 64 72 6f 70 70 69 6e  ting and droppin
6a50: 67 20 61 20 74 61 62 6c 65 20 61 6c 6c 20 77 69  g a table all wi
6a60: 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 0a 20 20  thin a single.  
6a70: 20 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61    transaction wa
6a80: 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 2e 3c 2f  s not working.</
6a90: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6aa0: 32 20 46 65 62 20 31 34 20 28 32 2e 33 2e 32 29  2 Feb 14 (2.3.2)
6ab0: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
6ac0: 20 54 68 65 72 65 20 77 61 73 20 61 6e 20 69 6e   There was an in
6ad0: 63 6f 72 72 65 63 74 20 61 73 73 65 72 74 28 29  correct assert()
6ae0: 20 69 6e 20 70 61 67 65 72 2e 63 2e 20 20 54 68   in pager.c.  Th
6af0: 65 20 72 65 61 6c 20 63 6f 64 65 20 77 61 73 0a  e real code was.
6b00: 20 20 20 20 61 6c 6c 20 63 6f 72 72 65 63 74 20      all correct 
6b10: 28 61 73 20 66 61 72 20 61 73 20 69 73 20 6b 6e  (as far as is kn
6b20: 6f 77 6e 29 20 73 6f 20 65 76 65 72 79 74 68 69  own) so everythi
6b30: 6e 67 20 73 68 6f 75 6c 64 20 77 6f 72 6b 20 4f  ng should work O
6b40: 4b 20 69 66 20 79 6f 75 0a 20 20 20 20 63 6f 6d  K if you.    com
6b50: 70 69 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42  pile with -DNDEB
6b60: 55 47 3d 31 2e 20 20 57 68 65 6e 20 61 73 73 65  UG=1.  When asse
6b70: 72 74 73 20 61 72 65 20 6e 6f 74 20 64 69 73 61  rts are not disa
6b80: 62 6c 65 64 2c 20 74 68 65 72 65 0a 20 20 20 20  bled, there.    
6b90: 63 6f 75 6c 64 20 62 65 20 61 20 66 61 75 6c 74  could be a fault
6ba0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6bb0: 32 30 30 32 20 46 65 62 20 31 33 20 28 32 2e 33  2002 Feb 13 (2.3
6bc0: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .1)} {.<li>Bug f
6bd0: 69 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e  ix: An assertion
6be0: 20 77 61 73 20 66 61 69 6c 69 6e 67 20 69 66 20   was failing if 
6bf0: 22 50 52 41 47 4d 41 20 66 75 6c 6c 5f 63 6f 6c  "PRAGMA full_col
6c00: 75 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b 22 20 77  umn_names=ON;" w
6c10: 61 73 0a 20 20 20 20 73 65 74 20 61 6e 64 20 79  as.    set and y
6c20: 6f 75 20 64 69 64 20 61 20 71 75 65 72 79 20 74  ou did a query t
6c30: 68 61 74 20 75 73 65 64 20 61 20 72 6f 77 69 64  hat used a rowid
6c40: 2c 20 6c 69 6b 65 20 74 68 69 73 3a 20 20 0a 20  , like this:  . 
6c50: 20 20 20 22 53 45 4c 45 43 54 20 72 6f 77 69 64     "SELECT rowid
6c60: 2c 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22 2e 3c 2f  , * FROM ...".</
6c70: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6c80: 32 20 4a 61 6e 20 33 30 20 28 32 2e 33 2e 30 29  2 Jan 30 (2.3.0)
6c90: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 73 65  } {.<li>Fix a se
6ca0: 72 69 6f 75 73 20 62 75 67 20 69 6e 20 74 68 65  rious bug in the
6cb0: 20 49 4e 53 45 52 54 20 63 6f 6d 6d 61 6e 64 20   INSERT command 
6cc0: 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69 6e  which was causin
6cd0: 67 20 64 61 74 61 20 74 6f 20 67 6f 0a 20 20 20  g data to go.   
6ce0: 20 69 6e 74 6f 20 74 68 65 20 77 72 6f 6e 67 20   into the wrong 
6cf0: 63 6f 6c 75 6d 6e 73 20 69 66 20 74 68 65 20 64  columns if the d
6d00: 61 74 61 20 73 6f 75 72 63 65 20 77 61 73 20 61  ata source was a
6d10: 20 53 45 4c 45 43 54 20 61 6e 64 20 74 68 65 20   SELECT and the 
6d20: 49 4e 53 45 52 54 0a 20 20 20 20 63 6c 61 75 73  INSERT.    claus
6d30: 65 73 20 73 70 65 63 69 66 69 65 64 20 69 74 73  es specified its
6d40: 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 73 6f 6d 65   columns in some
6d50: 20 6f 72 64 65 72 20 6f 74 68 65 72 20 74 68 61   order other tha
6d60: 6e 20 74 68 65 20 64 65 66 61 75 6c 74 2e 3c 2f  n the default.</
6d70: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
6d80: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65 73  e ability to res
6d90: 6f 6c 76 65 20 63 6f 6e 73 74 72 61 69 6e 74 20  olve constraint 
6da0: 63 6f 6e 66 6c 69 63 74 73 20 69 73 20 77 61 79  conflicts is way
6db0: 73 20 6f 74 68 65 72 20 74 68 61 6e 0a 20 20 20  s other than.   
6dc0: 20 61 6e 20 61 62 6f 72 74 20 61 6e 64 20 72 6f   an abort and ro
6dd0: 6c 6c 62 61 63 6b 2e 20 20 53 65 65 20 74 68 65  llback.  See the
6de0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f   documentation o
6df0: 6e 20 74 68 65 20 22 4f 4e 20 43 4f 4e 46 4c 49  n the "ON CONFLI
6e00: 43 54 22 0a 20 20 20 20 63 6c 61 75 73 65 20 66  CT".    clause f
6e10: 6f 72 20 64 65 74 61 69 6c 73 2e 3c 2f 6c 69 3e  or details.</li>
6e20: 0a 3c 6c 69 3e 54 65 6d 70 6f 72 61 72 79 20 66  .<li>Temporary f
6e30: 69 6c 65 73 20 61 72 65 20 6e 6f 77 20 61 75 74  iles are now aut
6e40: 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c 65 74  omatically delet
6e50: 65 64 20 62 79 20 74 68 65 20 6f 70 65 72 61 74  ed by the operat
6e60: 69 6e 67 20 73 79 73 74 65 6d 0a 20 20 20 20 77  ing system.    w
6e70: 68 65 6e 20 63 6c 6f 73 65 64 2e 20 20 54 68 65  hen closed.  The
6e80: 72 65 20 61 72 65 20 6e 6f 20 6d 6f 72 65 20 64  re are no more d
6e90: 61 6e 67 6c 69 6e 67 20 74 65 6d 70 6f 72 61 72  angling temporar
6ea0: 79 20 66 69 6c 65 73 20 6f 6e 20 61 20 70 72 6f  y files on a pro
6eb0: 67 72 61 6d 0a 20 20 20 20 63 72 61 73 68 2e 20  gram.    crash. 
6ec0: 20 28 49 66 20 74 68 65 20 4f 53 20 63 72 61 73   (If the OS cras
6ed0: 68 65 73 2c 20 66 73 63 6b 20 77 69 6c 6c 20 64  hes, fsck will d
6ee0: 65 6c 65 74 65 20 74 68 65 20 66 69 6c 65 20 61  elete the file a
6ef0: 66 74 65 72 20 72 65 62 6f 6f 74 20 0a 20 20 20  fter reboot .   
6f00: 20 75 6e 64 65 72 20 55 6e 69 78 2e 20 20 49 20   under Unix.  I 
6f10: 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77 68 61 74  do not know what
6f20: 20 68 61 70 70 65 6e 73 20 75 6e 64 65 72 20 57   happens under W
6f30: 69 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e 0a 3c 6c  indows.)</li>.<l
6f40: 69 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f 6e 73 74  i>NOT NULL const
6f50: 72 61 69 6e 74 73 20 61 72 65 20 68 6f 6e 6f 72  raints are honor
6f60: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ed.</li>.<li>The
6f70: 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 70 75   COPY command pu
6f80: 74 73 20 4e 55 4c 4c 73 20 69 6e 20 63 6f 6c 75  ts NULLs in colu
6f90: 6d 6e 73 20 77 68 6f 73 65 20 64 61 74 61 20 69  mns whose data i
6fa0: 73 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69  s '\N'.</li>.<li
6fb0: 3e 49 6e 20 74 68 65 20 43 4f 50 59 20 63 6f 6d  >In the COPY com
6fc0: 6d 61 6e 64 2c 20 62 61 63 6b 73 6c 61 73 68 20  mand, backslash 
6fd0: 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64 20  can now be used 
6fe0: 74 6f 20 65 73 63 61 70 65 20 61 20 6e 65 77 6c  to escape a newl
6ff0: 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ine.</li>.<li>Ad
7000: 64 65 64 20 74 68 65 20 53 41 4e 49 54 59 5f 43  ded the SANITY_C
7010: 48 45 43 4b 20 70 72 61 67 6d 61 2e 3c 2f 6c 69  HECK pragma.</li
7020: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
7030: 4a 61 6e 20 32 38 20 28 32 2e 32 2e 35 29 7d 20  Jan 28 (2.2.5)} 
7040: 7b 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61 6e 74 20  {.<li>Important 
7050: 62 75 67 20 66 69 78 3a 20 74 68 65 20 49 4e 20  bug fix: the IN 
7060: 6f 70 65 72 61 74 6f 72 20 77 61 73 20 6e 6f 74  operator was not
7070: 20 77 6f 72 6b 69 6e 67 20 69 66 20 65 69 74 68   working if eith
7080: 65 72 20 74 68 65 0a 20 20 20 20 6c 65 66 74 2d  er the.    left-
7090: 68 61 6e 64 20 6f 72 20 72 69 67 68 74 2d 68 61  hand or right-ha
70a0: 6e 64 20 73 69 64 65 20 77 61 73 20 64 65 72 69  nd side was deri
70b0: 76 65 64 20 66 72 6f 6d 20 61 6e 20 49 4e 54 45  ved from an INTE
70c0: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2e  GER PRIMARY KEY.
70d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
70e0: 20 65 73 63 61 70 65 20 74 68 65 20 62 61 63 6b   escape the back
70f0: 73 6c 61 73 68 20 27 5c 27 20 63 68 61 72 61 63  slash '\' charac
7100: 74 65 72 20 69 6e 20 74 68 65 20 6f 75 74 70 75  ter in the outpu
7110: 74 20 6f 66 20 74 68 65 0a 20 20 20 20 3c 62 3e  t of the.    <b>
7120: 73 71 6c 69 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61  sqlite</b> comma
7130: 6e 64 2d 6c 69 6e 65 20 61 63 63 65 73 73 20 70  nd-line access p
7140: 72 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  rogram.</li>.}..
7150: 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 32  chng {2002 Jan 2
7160: 32 20 28 32 2e 32 2e 34 29 7d 20 7b 0a 3c 6c 69  2 (2.2.4)} {.<li
7170: 3e 54 68 65 20 6c 61 62 65 6c 20 74 6f 20 74 68  >The label to th
7180: 65 20 72 69 67 68 74 20 6f 66 20 61 6e 20 41 53  e right of an AS
7190: 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6c   in the column l
71a0: 69 73 74 20 6f 66 20 61 20 53 45 4c 45 43 54 20  ist of a SELECT 
71b0: 63 61 6e 20 6e 6f 77 0a 20 20 20 20 62 65 20 75  can now.    be u
71c0: 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 61  sed as part of a
71d0: 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20  n expression in 
71e0: 74 68 65 20 57 48 45 52 45 2c 20 4f 52 44 45 52  the WHERE, ORDER
71f0: 20 42 59 2c 20 47 52 4f 55 50 20 42 59 2c 20 61   BY, GROUP BY, a
7200: 6e 64 2f 6f 72 0a 20 20 20 20 48 41 56 49 4e 47  nd/or.    HAVING
7210: 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c   clauses.</li>.<
7220: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
7230: 74 68 65 20 3c 62 3e 2d 73 65 70 61 72 61 74 6f  the <b>-separato
7240: 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69  r</b> command-li
7250: 6e 65 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65  ne option to the
7260: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 0a 20   <b>sqlite</b>. 
7270: 20 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e     command.</li>
7280: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c  .<li>Fix a probl
7290: 65 6d 20 77 69 74 68 20 74 68 65 20 73 6f 72 74  em with the sort
72a0: 20 6f 72 64 65 72 20 77 68 65 6e 20 63 6f 6d 70   order when comp
72b0: 61 72 69 6e 67 20 75 70 70 65 72 2d 63 61 73 65  aring upper-case
72c0: 20 73 74 72 69 6e 67 73 20 61 67 61 69 6e 73 74   strings against
72d0: 0a 20 20 20 20 63 68 61 72 61 63 74 65 72 73 20  .    characters 
72e0: 67 72 65 61 74 65 72 20 74 68 61 6e 20 27 5a 27  greater than 'Z'
72f0: 20 62 75 74 20 6c 65 73 73 20 74 68 61 6e 20 27   but less than '
7300: 61 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 70  a'.</li>.<li>Rep
7310: 6f 72 74 20 61 6e 20 65 72 72 6f 72 20 69 66 20  ort an error if 
7320: 61 6e 20 4f 52 44 45 52 20 42 59 20 6f 72 20 47  an ORDER BY or G
7330: 52 4f 55 50 20 42 59 20 65 78 70 72 65 73 73 69  ROUP BY expressi
7340: 6f 6e 20 69 73 20 63 6f 6e 73 74 61 6e 74 2e 3c  on is constant.<
7350: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
7360: 30 32 20 4a 61 6e 20 31 36 20 28 32 2e 32 2e 33  02 Jan 16 (2.2.3
7370: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 77 61 72  )} {.<li>Fix war
7380: 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 20 69 6e  ning messages in
7390: 20 56 43 2b 2b 20 37 2e 30 2e 20 20 28 50 61 74   VC++ 7.0.  (Pat
73a0: 63 68 65 73 20 66 72 6f 6d 20 6e 69 63 6f 6c 61  ches from nicola
73b0: 73 33 35 32 30 30 31 29 3c 2f 6c 69 3e 0a 3c 6c  s352001)</li>.<l
73c0: 69 3e 4d 61 6b 65 20 74 68 65 20 6c 69 62 72 61  i>Make the libra
73d0: 72 79 20 74 68 72 65 61 64 2d 73 61 66 65 2e 20  ry thread-safe. 
73e0: 20 28 54 68 65 20 63 6f 64 65 20 69 73 20 74 68   (The code is th
73f0: 65 72 65 20 61 6e 64 20 61 70 70 65 61 72 73 20  ere and appears 
7400: 74 6f 20 77 6f 72 6b 0a 20 20 20 20 62 75 74 20  to work.    but 
7410: 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 73 74 72  has not been str
7420: 65 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69  essed.)</li>.<li
7430: 3e 41 64 64 65 64 20 74 68 65 20 6e 65 77 20 3c  >Added the new <
7440: 62 3e 73 71 6c 69 74 65 5f 6c 61 73 74 5f 69 6e  b>sqlite_last_in
7450: 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e  sert_rowid()</b>
7460: 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f   API function.</
7470: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
7480: 32 20 4a 61 6e 20 31 33 20 28 32 2e 32 2e 32 29  2 Jan 13 (2.2.2)
7490: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
74a0: 20 41 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61   An assertion wa
74b0: 73 20 66 61 69 6c 69 6e 67 20 77 68 65 6e 20 61  s failing when a
74c0: 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65   temporary table
74d0: 20 77 69 74 68 20 61 6e 20 69 6e 64 65 78 0a 20   with an index. 
74e0: 20 20 20 68 61 64 20 74 68 65 20 73 61 6d 65 20     had the same 
74f0: 6e 61 6d 65 20 61 73 20 61 20 70 65 72 6d 61 6e  name as a perman
7500: 65 6e 74 20 74 61 62 6c 65 20 63 72 65 61 74 65  ent table create
7510: 64 20 62 79 20 61 20 73 65 70 61 72 61 74 65 20  d by a separate 
7520: 70 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c  process.</li>.<l
7530: 69 3e 42 75 67 20 66 69 78 3a 20 55 70 64 61 74  i>Bug fix: Updat
7540: 65 73 20 74 6f 20 74 61 62 6c 65 73 20 63 6f 6e  es to tables con
7550: 74 61 69 6e 69 6e 67 20 61 6e 20 49 4e 54 45 47  taining an INTEG
7560: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61  ER PRIMARY KEY a
7570: 6e 64 20 61 6e 0a 20 20 20 20 69 6e 64 65 78 20  nd an.    index 
7580: 63 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f 6c 69 3e  could fail.</li>
7590: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
75a0: 61 6e 20 39 20 28 32 2e 32 2e 31 29 7d 20 7b 0a  an 9 (2.2.1)} {.
75b0: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20  <li>Bug fix: An 
75c0: 61 74 74 65 6d 70 74 20 74 6f 20 64 65 6c 65 74  attempt to delet
75d0: 65 20 61 20 73 69 6e 67 6c 65 20 72 6f 77 20 6f  e a single row o
75e0: 66 20 61 20 74 61 62 6c 65 20 77 69 74 68 20 61  f a table with a
75f0: 20 57 48 45 52 45 0a 20 20 20 20 63 6c 61 75 73   WHERE.    claus
7600: 65 20 6f 66 20 22 52 4f 57 49 44 3d 78 22 20 77  e of "ROWID=x" w
7610: 68 65 6e 20 6e 6f 20 73 75 63 68 20 72 6f 77 69  hen no such rowi
7620: 64 20 65 78 69 73 74 73 20 77 61 73 20 63 61 75  d exists was cau
7630: 73 69 6e 67 20 61 6e 20 65 72 72 6f 72 2e 3c 2f  sing an error.</
7640: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
7650: 20 50 61 73 73 69 6e 67 20 69 6e 20 61 20 4e 55   Passing in a NU
7660: 4c 4c 20 61 73 20 74 68 65 20 33 72 64 20 70 61  LL as the 3rd pa
7670: 72 61 6d 65 74 65 72 20 74 6f 20 3c 62 3e 73 71  rameter to <b>sq
7680: 6c 69 74 65 5f 6f 70 65 6e 28 29 3c 2f 62 3e 0a  lite_open()</b>.
7690: 20 20 20 20 77 6f 75 6c 64 20 73 6f 6d 65 74 69      would someti
76a0: 6d 65 73 20 63 61 75 73 65 20 61 20 63 6f 72 65  mes cause a core
76b0: 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  dump.</li>.<li>B
76c0: 75 67 20 66 69 78 3a 20 44 52 4f 50 20 54 41 42  ug fix: DROP TAB
76d0: 4c 45 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61  LE followed by a
76e0: 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 77 69   CREATE TABLE wi
76f0: 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65  th the same name
7700: 20 61 6c 6c 0a 20 20 20 20 77 69 74 68 69 6e 20   all.    within 
7710: 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 63  a single transac
7720: 74 69 6f 6e 20 77 61 73 20 63 61 75 73 69 6e 67  tion was causing
7730: 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69   a coredump.</li
7740: 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75  >.<li>Makefile u
7750: 70 64 61 74 65 73 20 66 72 6f 6d 20 41 2e 20 52  pdates from A. R
7760: 6f 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a 7d 0a 0a  ottmann</li>.}..
7770: 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 32  chng {2001 Dec 2
7780: 32 20 28 32 2e 32 2e 30 29 7d 20 7b 0a 3c 6c 69  2 (2.2.0)} {.<li
7790: 3e 43 6f 6c 75 6d 6e 73 20 6f 66 20 74 79 70 65  >Columns of type
77a0: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59   INTEGER PRIMARY
77b0: 20 4b 45 59 20 61 72 65 20 61 63 74 75 61 6c 6c   KEY are actuall
77c0: 79 20 75 73 65 64 20 61 73 20 74 68 65 20 70 72  y used as the pr
77d0: 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 20 69 6e  imary.    key in
77e0: 20 75 6e 64 65 72 6c 79 69 6e 67 20 42 2d 54 72   underlying B-Tr
77f0: 65 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f  ee representatio
7800: 6e 20 6f 66 20 74 68 65 20 74 61 62 6c 65 2e 3c  n of the table.<
7810: 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65 72 61 6c  /li>.<li>Several
7820: 20 6f 62 73 63 75 72 65 2c 20 75 6e 72 65 6c 61   obscure, unrela
7830: 74 65 64 20 62 75 67 73 20 77 65 72 65 20 66 6f  ted bugs were fo
7840: 75 6e 64 20 61 6e 64 20 66 69 78 65 64 20 77 68  und and fixed wh
7850: 69 6c 65 20 0a 20 20 20 20 69 6d 70 6c 65 6d 65  ile .    impleme
7860: 6e 74 65 64 20 74 68 65 20 69 6e 74 65 67 65 72  nted the integer
7870: 20 70 72 69 6d 61 72 79 20 6b 65 79 20 63 68 61   primary key cha
7880: 6e 67 65 20 6f 66 20 74 68 65 20 70 72 65 76 69  nge of the previ
7890: 6f 75 73 20 62 75 6c 6c 65 74 2e 3c 2f 6c 69 3e  ous bullet.</li>
78a0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 61  .<li>Added the a
78b0: 62 69 6c 69 74 79 20 74 6f 20 73 70 65 63 69 66  bility to specif
78c0: 79 20 22 2a 22 20 61 73 20 70 61 72 74 20 6f 66  y "*" as part of
78d0: 20 61 20 6c 61 72 67 65 72 20 63 6f 6c 75 6d 6e   a larger column
78e0: 20 6c 69 73 74 20 69 6e 0a 20 20 20 20 74 68 65   list in.    the
78f0: 20 72 65 73 75 6c 74 20 73 65 63 74 69 6f 6e 20   result section 
7900: 6f 66 20 61 20 53 45 4c 45 43 54 20 73 74 61 74  of a SELECT stat
7910: 65 6d 65 6e 74 2e 20 20 46 6f 72 20 65 78 61 6d  ement.  For exam
7920: 70 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62 72 3e 22  ple:.    <nobr>"
7930: 3c 62 3e 53 45 4c 45 43 54 20 72 6f 77 69 64 2c  <b>SELECT rowid,
7940: 20 2a 20 46 52 4f 4d 20 74 61 62 6c 65 31 3b 3c   * FROM table1;<
7950: 2f 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c 2f 6c 69  /b>"</nobr>.</li
7960: 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74 6f  >.<li>Updates to
7970: 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 64 6f   comments and do
7980: 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69  cumentation.</li
7990: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
79a0: 44 65 63 20 31 34 20 28 32 2e 31 2e 37 29 7d 20  Dec 14 (2.1.7)} 
79b0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
79c0: 69 6e 20 3c 62 3e 43 52 45 41 54 45 20 54 45 4d  in <b>CREATE TEM
79d0: 50 4f 52 41 52 59 20 54 41 42 4c 45 3c 2f 62 3e  PORARY TABLE</b>
79e0: 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69   which was causi
79f0: 6e 67 20 74 68 65 0a 20 20 20 20 74 61 62 6c 65  ng the.    table
7a00: 20 74 6f 20 62 65 20 69 6e 69 74 69 61 6c 6c 79   to be initially
7a10: 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20 74 68   allocated in th
7a20: 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20  e main database 
7a30: 66 69 6c 65 20 69 6e 73 74 65 61 64 0a 20 20 20  file instead.   
7a40: 20 6f 66 20 69 6e 20 74 68 65 20 73 65 70 61 72   of in the separ
7a50: 61 74 65 20 74 65 6d 70 6f 72 61 72 79 20 66 69  ate temporary fi
7a60: 6c 65 2e 20 20 54 68 69 73 20 62 75 67 20 63 6f  le.  This bug co
7a70: 75 6c 64 20 63 61 75 73 65 20 74 68 65 20 6c 69  uld cause the li
7a80: 62 72 61 72 79 0a 20 20 20 20 74 6f 20 73 75 66  brary.    to suf
7a90: 66 65 72 20 61 6e 20 61 73 73 65 72 74 69 6f 6e  fer an assertion
7aa0: 20 66 61 69 6c 75 72 65 20 61 6e 64 20 69 74 20   failure and it 
7ab0: 63 6f 75 6c 64 20 63 61 75 73 65 20 22 70 61 67  could cause "pag
7ac0: 65 20 6c 65 61 6b 73 22 20 69 6e 20 74 68 65 0a  e leaks" in the.
7ad0: 20 20 20 20 6d 61 69 6e 20 64 61 74 61 62 61 73      main databas
7ae0: 65 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46 69 78 20  e file..<li>Fix 
7af0: 61 20 62 75 67 20 69 6e 20 74 68 65 20 62 2d 74  a bug in the b-t
7b00: 72 65 65 20 73 75 62 73 79 73 74 65 6d 20 74 68  ree subsystem th
7b10: 61 74 20 63 6f 75 6c 64 20 73 6f 6d 65 74 69 6d  at could sometim
7b20: 65 73 20 63 61 75 73 65 20 74 68 65 20 66 69 72  es cause the fir
7b30: 73 74 0a 20 20 20 20 72 6f 77 20 6f 66 20 61 20  st.    row of a 
7b40: 74 61 62 6c 65 20 74 6f 20 62 65 20 72 65 70 65  table to be repe
7b50: 61 74 65 64 20 64 75 72 69 6e 67 20 61 20 64 61  ated during a da
7b60: 74 61 62 61 73 65 20 73 63 61 6e 2e 3c 2f 6c 69  tabase scan.</li
7b70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
7b80: 44 65 63 20 31 34 20 28 32 2e 31 2e 36 29 7d 20  Dec 14 (2.1.6)} 
7b90: 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 6c 6f  {.<li>Fix the lo
7ba0: 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d 20  cking mechanism 
7bb0: 79 65 74 20 61 67 61 69 6e 20 74 6f 20 70 72 65  yet again to pre
7bc0: 76 65 6e 74 0a 20 20 20 20 3c 62 3e 73 71 6c 69  vent.    <b>sqli
7bd0: 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 66 72  te_exec()</b> fr
7be0: 6f 6d 20 72 65 74 75 72 6e 69 6e 67 20 53 51 4c  om returning SQL
7bf0: 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20  ITE_PROTOCOL.   
7c00: 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e 20   unnecessarily. 
7c10: 20 54 68 69 73 20 74 69 6d 65 20 74 68 65 20 62   This time the b
7c20: 75 67 20 77 61 73 20 61 20 72 61 63 65 20 63 6f  ug was a race co
7c30: 6e 64 69 74 69 6f 6e 20 69 6e 0a 20 20 20 20 74  ndition in.    t
7c40: 68 65 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 2e  he locking code.
7c50: 20 20 54 68 69 73 20 63 68 61 6e 67 65 20 65 66    This change ef
7c60: 66 65 63 74 73 20 62 6f 74 68 20 50 4f 53 49 58  fects both POSIX
7c70: 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 75 73 65   and Windows use
7c80: 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  rs.</li>.}..chng
7c90: 20 7b 32 30 30 31 20 44 65 63 20 36 20 28 32 2e   {2001 Dec 6 (2.
7ca0: 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  1.5)} {.<li>Fix 
7cb0: 66 6f 72 20 61 6e 6f 74 68 65 72 20 70 72 6f 62  for another prob
7cc0: 6c 65 6d 20 28 75 6e 72 65 6c 61 74 65 64 20 74  lem (unrelated t
7cd0: 6f 20 74 68 65 20 6f 6e 65 20 66 69 78 65 64 20  o the one fixed 
7ce0: 69 6e 20 32 2e 31 2e 34 29 20 0a 20 20 20 20 74  in 2.1.4) .    t
7cf0: 68 61 74 20 73 6f 6d 65 74 69 6d 65 73 20 63 61  hat sometimes ca
7d00: 75 73 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65  uses <b>sqlite_e
7d10: 78 65 63 28 29 3c 2f 62 3e 20 74 6f 20 72 65 74  xec()</b> to ret
7d20: 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f  urn SQLITE_PROTO
7d30: 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73 73  COL.    unnecess
7d40: 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69 6d  arily.  This tim
7d50: 65 20 74 68 65 20 62 75 67 20 77 61 73 0a 20 20  e the bug was.  
7d60: 20 20 69 6e 20 74 68 65 20 50 4f 53 49 58 20 6c    in the POSIX l
7d70: 6f 63 6b 69 6e 67 20 63 6f 64 65 20 61 6e 64 20  ocking code and 
7d80: 73 68 6f 75 6c 64 20 6e 6f 74 20 65 66 66 65 63  should not effec
7d90: 74 20 77 69 6e 64 6f 77 73 20 75 73 65 72 73 2e  t windows users.
7da0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
7db0: 30 30 31 20 44 65 63 20 34 20 28 32 2e 31 2e 34  001 Dec 4 (2.1.4
7dc0: 29 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65 74 69 6d  )} {.<li>Sometim
7dd0: 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65  es <b>sqlite_exe
7de0: 63 28 29 3c 2f 62 3e 20 77 6f 75 6c 64 20 72 65  c()</b> would re
7df0: 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54  turn SQLITE_PROT
7e00: 4f 43 4f 4c 20 77 68 65 6e 20 69 74 0a 20 20 20  OCOL when it.   
7e10: 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 74   should have ret
7e20: 75 72 6e 65 64 20 53 51 4c 49 54 45 5f 42 55 53  urned SQLITE_BUS
7e30: 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  Y.</li>.<li>The 
7e40: 66 69 78 20 74 6f 20 74 68 65 20 70 72 65 76 69  fix to the previ
7e50: 6f 75 73 20 62 75 67 20 75 6e 63 6f 76 65 72 65  ous bug uncovere
7e60: 64 20 61 20 64 65 61 64 6c 6f 63 6b 20 77 68 69  d a deadlock whi
7e70: 63 68 20 77 61 73 20 61 6c 73 6f 0a 20 20 20 20  ch was also.    
7e80: 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  fixed.</li>.<li>
7e90: 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20  Add the ability 
7ea0: 74 6f 20 70 75 74 20 61 20 73 69 6e 67 6c 65 20  to put a single 
7eb0: 2e 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20  .command in the 
7ec0: 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 0a  second argument.
7ed0: 20 20 20 20 6f 66 20 74 68 65 20 73 71 6c 69 74      of the sqlit
7ee0: 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69  e shell</li>.<li
7ef0: 3e 55 70 64 61 74 65 73 20 74 6f 20 74 68 65 20  >Updates to the 
7f00: 46 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  FAQ</li>.}..chng
7f10: 20 7b 32 30 30 31 20 4e 6f 76 20 32 33 20 28 32   {2001 Nov 23 (2
7f20: 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.3)} {.<li>Fix
7f30: 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f 66   the behavior of
7f40: 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72   comparison oper
7f50: 61 74 6f 72 73 20 0a 20 20 20 20 28 65 78 3a 20  ators .    (ex: 
7f60: 22 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c 20 22 3c  "<b>&lt</b>", "<
7f70: 62 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74 63 2e 29  b>==</b>", etc.)
7f80: 0a 20 20 20 20 73 6f 20 74 68 61 74 20 74 68 65  .    so that the
7f90: 79 20 61 72 65 20 63 6f 6e 73 69 73 74 65 6e 74  y are consistent
7fa0: 20 77 69 74 68 20 74 68 65 20 6f 72 64 65 72 20   with the order 
7fb0: 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20 61 6e  of entries in an
7fc0: 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69   index.</li>.<li
7fd0: 3e 43 6f 72 72 65 63 74 20 68 61 6e 64 6c 69 6e  >Correct handlin
7fe0: 67 20 6f 66 20 69 6e 74 65 67 65 72 73 20 69 6e  g of integers in
7ff0: 20 53 51 4c 20 65 78 70 72 65 73 73 69 6f 6e 73   SQL expressions
8000: 20 74 68 61 74 20 61 72 65 20 6c 61 72 67 65 72   that are larger
8010: 20 74 68 61 6e 0a 20 20 20 20 77 68 61 74 20 63   than.    what c
8020: 61 6e 20 62 65 20 72 65 70 72 65 73 65 6e 74 65  an be represente
8030: 64 20 62 79 20 74 68 65 20 6d 61 63 68 69 6e 65  d by the machine
8040: 20 69 6e 74 65 67 65 72 2e 3c 2f 6c 69 3e 0a 7d   integer.</li>.}
8050: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76  ..chng {2001 Nov
8060: 20 32 32 20 28 32 2e 31 2e 32 29 7d 20 7b 0a 3c   22 (2.1.2)} {.<
8070: 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 73 75  li>Changes to su
8080: 70 70 6f 72 74 20 36 34 2d 62 69 74 20 61 72 63  pport 64-bit arc
8090: 68 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e  hitectures.</li>
80a0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
80b0: 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70 72  n the locking pr
80c0: 6f 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69  otocol.</li>.<li
80d0: 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20  >Fix a bug that 
80e0: 63 6f 75 6c 64 20 28 72 61 72 65 6c 79 29 20 63  could (rarely) c
80f0: 61 75 73 65 20 74 68 65 20 64 61 74 61 62 61 73  ause the databas
8100: 65 20 74 6f 20 62 65 63 6f 6d 65 20 0a 20 20 20  e to become .   
8110: 20 75 6e 72 65 61 64 61 62 6c 65 20 61 66 74 65   unreadable afte
8120: 72 20 61 20 44 52 4f 50 20 54 41 42 4c 45 20 64  r a DROP TABLE d
8130: 75 65 20 74 6f 20 63 6f 72 72 75 70 74 69 6f 6e  ue to corruption
8140: 20 74 6f 20 74 68 65 20 53 51 4c 49 54 45 5f 4d   to the SQLITE_M
8150: 41 53 54 45 52 0a 20 20 20 20 74 61 62 6c 65 2e  ASTER.    table.
8160: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
8170: 20 74 68 65 20 63 6f 64 65 20 73 6f 20 74 68 61   the code so tha
8180: 74 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e 31 20  t version 2.1.1 
8190: 64 61 74 61 62 61 73 65 73 20 74 68 61 74 20 77  databases that w
81a0: 65 72 65 20 72 65 6e 64 65 72 65 64 20 0a 20 20  ere rendered .  
81b0: 20 20 75 6e 72 65 61 64 61 62 6c 65 20 62 79 20    unreadable by 
81c0: 74 68 65 20 61 62 6f 76 65 20 62 75 67 20 63 61  the above bug ca
81d0: 6e 20 62 65 20 72 65 61 64 20 62 79 20 74 68 69  n be read by thi
81e0: 73 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20 20 20  s version of.   
81f0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 65 76 65   the library eve
8200: 6e 20 74 68 6f 75 67 68 20 74 68 65 20 53 51 4c  n though the SQL
8210: 49 54 45 5f 4d 41 53 54 45 52 20 74 61 62 6c 65  ITE_MASTER table
8220: 20 69 73 20 28 73 6c 69 67 68 74 6c 79 29 0a 20   is (slightly). 
8230: 20 20 20 63 6f 72 72 75 70 74 65 64 2e 3c 2f 6c     corrupted.</l
8240: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
8250: 20 4e 6f 76 20 31 33 20 28 32 2e 31 2e 31 29 7d   Nov 13 (2.1.1)}
8260: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
8270: 53 6f 6d 65 74 69 6d 65 73 20 61 72 62 69 74 72  Sometimes arbitr
8280: 61 72 79 20 73 74 72 69 6e 67 73 20 77 65 72 65  ary strings were
8290: 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 63   passed to the c
82a0: 61 6c 6c 62 61 63 6b 0a 20 20 20 20 66 75 6e 63  allback.    func
82b0: 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 61 63  tion when the ac
82c0: 74 75 61 6c 20 76 61 6c 75 65 20 6f 66 20 61 20  tual value of a 
82d0: 63 6f 6c 75 6d 6e 20 77 61 73 20 4e 55 4c 4c 2e  column was NULL.
82e0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
82f0: 30 30 31 20 4e 6f 76 20 31 32 20 28 32 2e 31 2e  001 Nov 12 (2.1.
8300: 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65  0)} {.<li>Change
8310: 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 64   the format of d
8320: 61 74 61 20 72 65 63 6f 72 64 73 20 73 6f 20 74  ata records so t
8330: 68 61 74 20 72 65 63 6f 72 64 73 20 75 70 20 74  hat records up t
8340: 6f 20 31 36 4d 42 20 69 6e 20 73 69 7a 65 0a 20  o 16MB in size. 
8350: 20 20 20 63 61 6e 20 62 65 20 73 74 6f 72 65 64     can be stored
8360: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
8370: 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20  e the format of 
8380: 69 6e 64 69 63 65 73 20 74 6f 20 61 6c 6c 6f 77  indices to allow
8390: 20 66 6f 72 20 62 65 74 74 65 72 20 71 75 65 72   for better quer
83a0: 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e 3c  y optimization.<
83b0: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c 65 6d 65  /li>.<li>Impleme
83c0: 6e 74 20 74 68 65 20 22 4c 49 4d 49 54 20 2e 2e  nt the "LIMIT ..
83d0: 2e 20 4f 46 46 53 45 54 20 2e 2e 2e 22 20 63 6c  . OFFSET ..." cl
83e0: 61 75 73 65 20 6f 6e 20 53 45 4c 45 43 54 20 73  ause on SELECT s
83f0: 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  tatements.</li>.
8400: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f  }..chng {2001 No
8410: 76 20 33 20 28 32 2e 30 2e 38 29 7d 20 7b 0a 3c  v 3 (2.0.8)} {.<
8420: 6c 69 3e 4d 61 64 65 20 73 65 6c 65 63 74 65 64  li>Made selected
8430: 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20 41   parameters in A
8440: 50 49 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e  PI functions <b>
8450: 63 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68 69 73 20  const</b>. This 
8460: 73 68 6f 75 6c 64 0a 20 20 20 20 62 65 20 66 75  should.    be fu
8470: 6c 6c 79 20 62 61 63 6b 77 61 72 64 73 20 63 6f  lly backwards co
8480: 6d 70 61 74 69 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c  mpatible.</li>.<
8490: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
84a0: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
84b0: 69 3e 53 69 6d 70 6c 69 66 79 20 74 68 65 20 64  i>Simplify the d
84c0: 65 73 69 67 6e 20 6f 66 20 74 68 65 20 56 44 42  esign of the VDB
84d0: 45 20 62 79 20 72 65 73 74 72 69 63 74 69 6e 67  E by restricting
84e0: 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73   the number of s
84f0: 6f 72 74 65 72 73 0a 20 20 20 20 61 6e 64 20 6c  orters.    and l
8500: 69 73 74 73 20 74 6f 20 31 2e 0a 20 20 20 20 49  ists to 1..    I
8510: 6e 20 70 72 61 63 74 69 63 65 2c 20 6e 6f 20 6d  n practice, no m
8520: 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 73 6f 72  ore than one sor
8530: 74 65 72 20 61 6e 64 20 6f 6e 65 20 6c 69 73 74  ter and one list
8540: 20 77 61 73 20 65 76 65 72 20 75 73 65 64 20 61   was ever used a
8550: 6e 79 68 6f 77 2e 0a 20 20 20 20 3c 2f 6c 69 3e  nyhow..    </li>
8560: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f  .}..chng {2001 O
8570: 63 74 20 32 31 20 28 32 2e 30 2e 37 29 7d 20 7b  ct 21 (2.0.7)} {
8580: 0a 3c 6c 69 3e 41 6e 79 20 55 54 46 2d 38 20 63  .<li>Any UTF-8 c
8590: 68 61 72 61 63 74 65 72 20 6f 72 20 49 53 4f 38  haracter or ISO8
85a0: 38 35 39 20 63 68 61 72 61 63 74 65 72 20 63 61  859 character ca
85b0: 6e 20 62 65 20 75 73 65 64 20 61 73 20 70 61 72  n be used as par
85c0: 74 20 6f 66 0a 20 20 20 20 61 6e 20 69 64 65 6e  t of.    an iden
85d0: 74 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tifier.</li>.<li
85e0: 3e 50 61 74 63 68 65 73 20 66 72 6f 6d 20 43 68  >Patches from Ch
85f0: 72 69 73 74 69 61 6e 20 57 65 72 6e 65 72 20 74  ristian Werner t
8600: 6f 20 69 6d 70 72 6f 76 65 20 4f 44 42 43 20 63  o improve ODBC c
8610: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e 64  ompatibility and
8620: 20 74 6f 0a 20 20 20 20 66 69 78 20 61 20 62 75   to.    fix a bu
8630: 67 20 69 6e 20 74 68 65 20 72 6f 75 6e 64 28 29  g in the round()
8640: 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a   function.</li>.
8650: 3c 6c 69 3e 50 6c 75 67 20 73 6f 6d 65 20 6d 65  <li>Plug some me
8660: 6d 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74 20  mory leaks that 
8670: 75 73 65 20 74 6f 20 6f 63 63 75 72 20 69 66 20  use to occur if 
8680: 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 65 64 2e  malloc() failed.
8690: 0a 20 20 20 20 57 65 20 68 61 76 65 20 62 65 65  .    We have bee
86a0: 6e 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 74  n and continue t
86b0: 6f 20 62 65 20 6d 65 6d 6f 72 79 20 6c 65 61 6b  o be memory leak
86c0: 20 66 72 65 65 20 61 73 20 6c 6f 6e 67 20 61 73   free as long as
86d0: 0a 20 20 20 20 6d 61 6c 6c 6f 63 28 29 20 77 6f  .    malloc() wo
86e0: 72 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68  rks.</li>.<li>Ch
86f0: 61 6e 67 65 73 20 74 6f 20 73 6f 6d 65 20 74 65  anges to some te
8700: 73 74 20 73 63 72 69 70 74 73 20 73 6f 20 74 68  st scripts so th
8710: 61 74 20 74 68 65 79 20 77 6f 72 6b 20 6f 6e 20  at they work on 
8720: 57 69 6e 64 6f 77 73 20 69 6e 0a 20 20 20 20 61  Windows in.    a
8730: 64 64 69 74 69 6f 6e 20 74 6f 20 55 6e 69 78 2e  ddition to Unix.
8740: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8750: 30 30 31 20 4f 63 74 20 31 39 20 28 32 2e 30 2e  001 Oct 19 (2.0.
8760: 36 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  6)} {.<li>Added 
8770: 74 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c 54  the EMPTY_RESULT
8780: 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67 6d  _CALLBACKS pragm
8790: 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f  a</li>.<li>Suppo
87a0: 72 74 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64  rt for UTF-8 and
87b0: 20 49 53 4f 38 38 35 39 20 63 68 61 72 61 63 74   ISO8859 charact
87c0: 65 72 73 20 69 6e 20 63 6f 6c 75 6d 6e 20 61 6e  ers in column an
87d0: 64 20 74 61 62 6c 65 20 6e 61 6d 65 73 2e 3c 2f  d table names.</
87e0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
87f0: 20 43 6f 6d 70 75 74 65 20 63 6f 72 72 65 63 74   Compute correct
8800: 20 74 61 62 6c 65 20 6e 61 6d 65 73 20 77 69 74   table names wit
8810: 68 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d  h the FULL_COLUM
8820: 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 0a 20  N_NAMES pragma. 
8830: 20 20 20 69 73 20 74 75 72 6e 65 64 20 6f 6e 2e     is turned on.
8840: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8850: 30 30 31 20 4f 63 74 20 31 34 20 28 32 2e 30 2e  001 Oct 14 (2.0.
8860: 35 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  5)} {.<li>Added 
8870: 74 68 65 20 43 4f 55 4e 54 5f 43 48 41 4e 47 45  the COUNT_CHANGE
8880: 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c  S pragma.</li>.<
8890: 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74 68  li>Changes to th
88a0: 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41  e FULL_COLUMN_NA
88b0: 4d 45 53 20 70 72 61 67 6d 61 20 74 6f 20 68 65  MES pragma to he
88c0: 6c 70 20 6f 75 74 20 74 68 65 20 4f 44 42 43 20  lp out the ODBC 
88d0: 64 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  driver.</li>.<li
88e0: 3e 42 75 67 20 66 69 78 3a 20 22 53 45 4c 45 43  >Bug fix: "SELEC
88f0: 54 20 63 6f 75 6e 74 28 2a 29 22 20 77 61 73 20  T count(*)" was 
8900: 72 65 74 75 72 6e 69 6e 67 20 4e 55 4c 4c 20 66  returning NULL f
8910: 6f 72 20 65 6d 70 74 79 20 74 61 62 6c 65 73 2e  or empty tables.
8920: 0a 20 20 20 20 4e 6f 77 20 69 74 20 72 65 74 75  .    Now it retu
8930: 72 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rns 0.</li>.}..c
8940: 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33  hng {2001 Oct 13
8950: 20 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.4)} {.<li>
8960: 42 75 67 20 66 69 78 3a 20 61 6e 20 6f 62 73 63  Bug fix: an obsc
8970: 75 72 65 20 61 6e 64 20 72 65 6c 61 74 69 76 65  ure and relative
8980: 6c 79 20 68 61 72 6d 6c 65 73 73 20 62 75 67 20  ly harmless bug 
8990: 77 61 73 20 63 61 75 73 69 6e 67 20 6f 6e 65 20  was causing one 
89a0: 6f 66 0a 20 20 20 20 74 68 65 20 74 65 73 74 73  of.    the tests
89b0: 20 74 6f 20 66 61 69 6c 20 77 68 65 6e 20 67 63   to fail when gc
89c0: 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20  c optimizations 
89d0: 61 72 65 20 74 75 72 6e 65 64 20 6f 6e 2e 20 20  are turned on.  
89e0: 54 68 69 73 20 72 65 6c 65 61 73 65 0a 20 20 20  This release.   
89f0: 20 66 69 78 65 73 20 74 68 65 20 70 72 6f 62 6c   fixes the probl
8a00: 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  em.</li>.}..chng
8a10: 20 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28 32   {2001 Oct 13 (2
8a20: 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .0.3)} {.<li>Bug
8a30: 20 66 69 78 3a 20 74 68 65 20 3c 62 3e 73 71 6c   fix: the <b>sql
8a40: 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74  ite_busy_timeout
8a50: 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20  ()</b> function 
8a60: 77 61 73 20 64 65 6c 61 79 69 6e 67 20 31 30 30  was delaying 100
8a70: 30 0a 20 20 20 20 74 69 6d 65 73 20 74 6f 6f 20  0.    times too 
8a80: 6c 6f 6e 67 20 62 65 66 6f 72 65 20 66 61 69 6c  long before fail
8a90: 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ing.</li>.<li>Bu
8aa0: 67 20 66 69 78 3a 20 61 6e 20 61 73 73 65 72 74  g fix: an assert
8ab0: 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20  ion was failing 
8ac0: 69 66 20 74 68 65 20 64 69 73 6b 20 68 6f 6c 64  if the disk hold
8ad0: 69 6e 67 20 74 68 65 20 64 61 74 61 62 61 73 65  ing the database
8ae0: 0a 20 20 20 20 66 69 6c 65 20 62 65 63 61 6d 65  .    file became
8af0: 20 66 75 6c 6c 20 6f 72 20 73 74 6f 70 70 65 64   full or stopped
8b00: 20 61 63 63 65 70 74 69 6e 67 20 77 72 69 74 65   accepting write
8b10: 73 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68 65 72  s for some other
8b20: 20 72 65 61 73 6f 6e 2e 0a 20 20 20 20 4e 65 77   reason..    New
8b30: 20 74 65 73 74 73 20 77 65 72 65 20 61 64 64 65   tests were adde
8b40: 64 20 74 6f 20 64 65 74 65 63 74 20 73 69 6d 69  d to detect simi
8b50: 6c 61 72 20 70 72 6f 62 6c 65 6d 73 20 69 6e 20  lar problems in 
8b60: 74 68 65 20 66 75 74 75 72 65 2e 3c 2f 6c 69 3e  the future.</li>
8b70: 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20 6f  .<li>Added new o
8b80: 70 65 72 61 74 6f 72 73 3a 20 3c 62 3e 26 61 6d  perators: <b>&am
8b90: 70 3b 3c 2f 62 3e 20 28 62 69 74 77 69 73 65 2d  p;</b> (bitwise-
8ba0: 61 6e 64 29 0a 20 20 20 20 3c 62 3e 7c 3c 2f 62  and).    <b>|</b
8bb0: 3e 20 28 62 69 74 77 69 73 65 2d 6f 72 29 2c 20  > (bitwise-or), 
8bc0: 3c 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65 73 2d 63  <b>~</b> (ones-c
8bd0: 6f 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20 20 20 20  omplement),.    
8be0: 3c 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 62 3e 20  <b>&lt;&lt;</b> 
8bf0: 28 73 68 69 66 74 20 6c 65 66 74 29 2c 20 3c 62  (shift left), <b
8c00: 3e 26 67 74 3b 26 67 74 3b 3c 2f 62 3e 20 28 73  >&gt;&gt;</b> (s
8c10: 68 69 66 74 20 72 69 67 68 74 29 2e 3c 2f 6c 69  hift right).</li
8c20: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20  >.<li>Added new 
8c30: 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 72 6f  functions: <b>ro
8c40: 75 6e 64 28 29 3c 2f 62 3e 20 61 6e 64 20 3c 62  und()</b> and <b
8c50: 3e 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e  >abs()</b>.</li>
8c60: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f  .}..chng {2001 O
8c70: 63 74 20 39 20 28 32 2e 30 2e 32 29 7d 20 7b 0a  ct 9 (2.0.2)} {.
8c80: 3c 6c 69 3e 46 69 78 20 74 77 6f 20 62 75 67 73  <li>Fix two bugs
8c90: 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20   in the locking 
8ca0: 70 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f 6e 65 20  protocol.  (One 
8cb0: 77 61 73 20 6d 61 73 6b 69 6e 67 20 74 68 65 20  was masking the 
8cc0: 6f 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69  other.)</li>.<li
8cd0: 3e 52 65 6d 6f 76 65 64 20 73 6f 6d 65 20 75 6e  >Removed some un
8ce0: 75 73 65 64 20 22 23 69 6e 63 6c 75 64 65 20 3c  used "#include <
8cf0: 75 6e 69 73 74 64 2e 68 3e 22 20 74 68 61 74 20  unistd.h>" that 
8d00: 77 65 72 65 20 63 61 75 73 69 6e 67 20 70 72 6f  were causing pro
8d10: 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 56 43  blems.    for VC
8d20: 2b 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ++.</li>.<li>Fix
8d30: 65 64 20 3c 62 3e 73 71 6c 69 74 65 2e 68 3c 2f  ed <b>sqlite.h</
8d40: 62 3e 20 73 6f 20 74 68 61 74 20 69 74 20 69 73  b> so that it is
8d50: 20 75 73 61 62 6c 65 20 66 72 6f 6d 20 43 2b 2b   usable from C++
8d60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
8d70: 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f  the FULL_COLUMN_
8d80: 4e 41 4d 45 53 20 70 72 61 67 6d 61 2e 20 20 57  NAMES pragma.  W
8d90: 68 65 6e 20 73 65 74 20 74 6f 20 22 4f 4e 22 2c  hen set to "ON",
8da0: 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 0a 20 20   the names of.  
8db0: 20 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 72 65    columns are re
8dc0: 70 6f 72 74 65 64 20 62 61 63 6b 20 61 73 20 54  ported back as T
8dd0: 41 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69 6e 73 74  ABLE.COLUMN inst
8de0: 65 61 64 20 6f 66 20 6a 75 73 74 20 43 4f 4c 55  ead of just COLU
8df0: 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  MN.</li>.<li>Add
8e00: 65 64 20 74 68 65 20 54 41 42 4c 45 5f 49 4e 46  ed the TABLE_INF
8e10: 4f 28 29 20 61 6e 64 20 49 4e 44 45 58 5f 49 4e  O() and INDEX_IN
8e20: 46 4f 28 29 20 70 72 61 67 6d 61 73 20 74 6f 20  FO() pragmas to 
8e30: 68 65 6c 70 20 73 75 70 70 6f 72 74 20 74 68 65  help support the
8e40: 0a 20 20 20 20 4f 44 42 43 20 69 6e 74 65 72 66  .    ODBC interf
8e50: 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ace.</li>.<li>Ad
8e60: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
8e70: 54 45 4d 50 4f 52 41 52 59 20 74 61 62 6c 65 73  TEMPORARY tables
8e80: 20 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f 6c   and indices.</l
8e90: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
8ea0: 20 4f 63 74 20 32 20 28 32 2e 30 2e 31 29 7d 20   Oct 2 (2.0.1)} 
8eb0: 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 73 6f 6d  {.<li>Remove som
8ec0: 65 20 43 2b 2b 20 73 74 79 6c 65 20 63 6f 6d 6d  e C++ style comm
8ed0: 65 6e 74 73 20 66 72 6f 6d 20 62 74 72 65 65 2e  ents from btree.
8ee0: 63 20 73 6f 20 74 68 61 74 20 69 74 20 77 69 6c  c so that it wil
8ef0: 6c 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 75 73  l compile.    us
8f00: 69 6e 67 20 63 6f 6d 70 69 6c 65 72 73 20 6f 74  ing compilers ot
8f10: 68 65 72 20 74 68 61 6e 20 67 63 63 2e 3c 2f 6c  her than gcc.</l
8f20: 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e 64 75 6d  i>.<li>The ".dum
8f30: 70 22 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 74  p" output from t
8f40: 68 65 20 73 68 65 6c 6c 20 64 6f 65 73 20 6e 6f  he shell does no
8f50: 74 20 77 6f 72 6b 20 69 66 20 74 68 65 72 65 20  t work if there 
8f60: 61 72 65 20 65 6d 62 65 64 64 65 64 0a 20 20 20  are embedded.   
8f70: 20 6e 65 77 6c 69 6e 65 73 20 61 6e 79 77 68 65   newlines anywhe
8f80: 72 65 20 69 6e 20 74 68 65 20 64 61 74 61 2e 20  re in the data. 
8f90: 20 54 68 69 73 20 69 73 20 61 6e 20 6f 6c 64 20   This is an old 
8fa0: 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61 72  bug that was car
8fb0: 72 69 65 64 0a 20 20 20 20 66 6f 72 77 61 72 64  ried.    forward
8fc0: 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20 31 2e   from version 1.
8fd0: 30 2e 20 20 54 6f 20 66 69 78 20 69 74 2c 20 74  0.  To fix it, t
8fe0: 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70 75  he ".dump" outpu
8ff0: 74 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20 20 20 20  t no longer.    
9000: 75 73 65 73 20 74 68 65 20 43 4f 50 59 20 63 6f  uses the COPY co
9010: 6d 6d 61 6e 64 2e 20 20 49 74 20 69 6e 73 74 65  mmand.  It inste
9020: 61 64 20 67 65 6e 65 72 61 74 65 73 20 49 4e 53  ad generates INS
9030: 45 52 54 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c  ERT statements.<
9040: 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65 6e 64 20  /li>.<li>Extend 
9050: 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 73  the expression s
9060: 79 6e 74 61 78 20 74 6f 20 73 75 70 70 6f 72 74  yntax to support
9070: 20 22 65 78 70 72 20 4e 4f 54 20 4e 55 4c 4c 22   "expr NOT NULL"
9080: 20 28 77 69 74 68 20 61 0a 20 20 20 20 73 70 61   (with a.    spa
9090: 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 22  ce between the "
90a0: 4e 4f 54 22 20 61 6e 64 20 74 68 65 20 22 4e 55  NOT" and the "NU
90b0: 4c 4c 22 29 20 69 6e 20 61 64 64 69 74 69 6f 6e  LL") in addition
90c0: 20 74 6f 20 22 65 78 70 72 20 4e 4f 54 4e 55 4c   to "expr NOTNUL
90d0: 4c 22 0a 20 20 20 20 28 77 69 74 68 20 6e 6f 20  L".    (with no 
90e0: 73 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  space).</li>.}..
90f0: 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32  chng {2001 Sep 2
9100: 38 20 28 32 2e 30 2e 30 29 7d 20 7b 0a 3c 6c 69  8 (2.0.0)} {.<li
9110: 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 62  >Automatically b
9120: 75 69 6c 64 20 62 69 6e 61 72 69 65 73 20 66 6f  uild binaries fo
9130: 72 20 4c 69 6e 75 78 20 61 6e 64 20 57 69 6e 64  r Linux and Wind
9140: 6f 77 73 20 61 6e 64 20 70 75 74 20 74 68 65 6d  ows and put them
9150: 20 6f 6e 0a 20 20 20 20 74 68 65 20 77 65 62 73   on.    the webs
9160: 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ite.</li>.}..chn
9170: 67 20 7b 32 30 30 31 20 53 65 70 20 32 38 20 28  g {2001 Sep 28 (
9180: 32 2e 30 2d 61 6c 70 68 61 2d 34 29 7d 20 7b 0a  2.0-alpha-4)} {.
9190: 3c 6c 69 3e 49 6e 63 6f 72 70 6f 72 61 74 65 20  <li>Incorporate 
91a0: 6d 61 6b 65 66 69 6c 65 20 70 61 74 63 68 65 73  makefile patches
91b0: 20 66 6f 72 6d 20 41 2e 20 52 6f 74 74 6d 61 6e   form A. Rottman
91c0: 6e 20 74 6f 20 75 73 65 20 4c 49 42 54 4f 4f 4c  n to use LIBTOOL
91d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
91e0: 30 30 31 20 53 65 70 20 32 37 20 28 32 2e 30 2d  001 Sep 27 (2.0-
91f0: 61 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c 6c 69 3e  alpha-3)} {.<li>
9200: 53 51 4c 69 74 65 20 6e 6f 77 20 68 6f 6e 6f 72  SQLite now honor
9210: 73 20 74 68 65 20 55 4e 49 51 55 45 20 6b 65 79  s the UNIQUE key
9220: 77 6f 72 64 20 69 6e 20 43 52 45 41 54 45 20 55  word in CREATE U
9230: 4e 49 51 55 45 20 49 4e 44 45 58 2e 20 20 50 72  NIQUE INDEX.  Pr
9240: 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 73 20 61  imary.    keys a
9250: 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 62  re required to b
9260: 65 20 75 6e 69 71 75 65 2e 3c 2f 6c 69 3e 0a 3c  e unique.</li>.<
9270: 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20 63  li>File format c
9280: 68 61 6e 67 65 64 20 62 61 63 6b 20 74 6f 20 77  hanged back to w
9290: 68 61 74 20 69 74 20 77 61 73 20 66 6f 72 20 61  hat it was for a
92a0: 6c 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lpha-1</li>.<li>
92b0: 46 69 78 65 73 20 74 6f 20 74 68 65 20 72 6f 6c  Fixes to the rol
92c0: 6c 62 61 63 6b 20 61 6e 64 20 6c 6f 63 6b 69 6e  lback and lockin
92d0: 67 20 62 65 68 61 76 69 6f 72 3c 2f 6c 69 3e 0a  g behavior</li>.
92e0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65  }..chng {2001 Se
92f0: 70 20 32 30 20 28 32 2e 30 2d 61 6c 70 68 61 2d  p 20 (2.0-alpha-
9300: 32 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61  2)} {.<li>Initia
9310: 6c 20 72 65 6c 65 61 73 65 20 6f 66 20 76 65 72  l release of ver
9320: 73 69 6f 6e 20 32 2e 30 2e 20 20 54 68 65 20 69  sion 2.0.  The i
9330: 64 65 61 20 6f 66 20 72 65 6e 61 6d 69 6e 67 20  dea of renaming 
9340: 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20 20  the library.    
9350: 74 6f 20 22 53 51 4c 75 73 22 20 77 61 73 20 61  to "SQLus" was a
9360: 62 61 6e 64 6f 6e 65 64 20 69 6e 20 66 61 76 6f  bandoned in favo
9370: 72 20 6f 66 20 6b 65 65 70 69 6e 67 20 74 68 65  r of keeping the
9380: 20 22 53 51 4c 69 74 65 22 20 6e 61 6d 65 20 61   "SQLite" name a
9390: 6e 64 0a 20 20 20 20 62 75 6d 70 69 6e 67 20 74  nd.    bumping t
93a0: 68 65 20 6d 61 6a 6f 72 20 76 65 72 73 69 6f 6e  he major version
93b0: 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   number.</li>.<l
93c0: 69 3e 54 68 65 20 70 61 67 65 72 20 61 6e 64 20  i>The pager and 
93d0: 62 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 73  btree subsystems
93e0: 20 61 64 64 65 64 20 62 61 63 6b 2e 20 54 68 65   added back. The
93f0: 79 20 61 72 65 20 6e 6f 77 20 74 68 65 20 6f 6e  y are now the on
9400: 6c 79 0a 20 20 20 20 61 76 61 69 6c 61 62 6c 65  ly.    available
9410: 20 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a 3c   backend.</li>.<
9420: 6c 69 3e 54 68 65 20 44 62 62 65 20 61 62 73 74  li>The Dbbe abst
9430: 72 61 63 74 69 6f 6e 20 61 6e 64 20 74 68 65 20  raction and the 
9440: 47 44 42 4d 20 61 6e 64 20 6d 65 6d 6f 72 79 20  GDBM and memory 
9450: 64 72 69 76 65 72 73 20 77 65 72 65 20 72 65 6d  drivers were rem
9460: 6f 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  oved.</li>.<li>C
9470: 6f 70 79 72 69 67 68 74 20 6f 6e 20 61 6c 6c 20  opyright on all 
9480: 63 6f 64 65 20 77 61 73 20 64 69 73 63 6c 61 69  code was disclai
9490: 6d 65 64 2e 20 20 54 68 65 20 6c 69 62 72 61 72  med.  The librar
94a0: 79 20 69 73 20 6e 6f 77 20 69 6e 20 74 68 65 0a  y is now in the.
94b0: 20 20 20 20 70 75 62 6c 69 63 20 64 6f 6d 61 69      public domai
94c0: 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  n.</li>.}..chng 
94d0: 7b 32 30 30 31 20 4a 75 6c 20 32 33 20 28 31 2e  {2001 Jul 23 (1.
94e0: 30 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67  0.32)} {.<li>Pag
94f0: 65 72 20 61 6e 64 20 62 74 72 65 65 20 73 75 62  er and btree sub
9500: 73 79 73 74 65 6d 73 20 72 65 6d 6f 76 65 64 2e  systems removed.
9510: 20 20 54 68 65 73 65 20 77 69 6c 6c 20 62 65 20    These will be 
9520: 75 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c 6f 77  used in a follow
9530: 2d 6f 6e 0a 20 20 20 20 53 51 4c 20 73 65 72 76  -on.    SQL serv
9540: 65 72 20 6c 69 62 72 61 72 79 20 6e 61 6d 65 64  er library named
9550: 20 22 53 51 4c 75 73 22 2e 3c 2f 6c 69 3e 0a 3c   "SQLus".</li>.<
9560: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
9570: 74 79 20 74 6f 20 75 73 65 20 71 75 6f 74 65 64  ty to use quoted
9580: 20 73 74 72 69 6e 67 73 20 61 73 20 74 61 62 6c   strings as tabl
9590: 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 6e 61 6d  e and column nam
95a0: 65 73 20 69 6e 0a 20 20 20 20 65 78 70 72 65 73  es in.    expres
95b0: 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  sions.</li>.}..c
95c0: 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 31 34  hng {2001 Apr 14
95d0: 20 28 31 2e 30 2e 33 31 29 7d 20 7b 0a 3c 6c 69   (1.0.31)} {.<li
95e0: 3e 50 61 67 65 72 20 73 75 62 73 79 73 74 65 6d  >Pager subsystem
95f0: 20 61 64 64 65 64 20 62 75 74 20 6e 6f 74 20 79   added but not y
9600: 65 74 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  et used.</li>.<l
9610: 69 3e 4d 6f 72 65 20 72 6f 62 75 73 74 20 68 61  i>More robust ha
9620: 6e 64 6c 69 6e 67 20 6f 66 20 6f 75 74 2d 6f 66  ndling of out-of
9630: 2d 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73 2e 3c  -memory errors.<
9640: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 74 65 73  /li>.<li>New tes
9650: 74 73 20 61 64 64 65 64 20 74 6f 20 74 68 65 20  ts added to the 
9660: 74 65 73 74 20 73 75 69 74 65 2e 3c 2f 6c 69 3e  test suite.</li>
9670: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41  .}..chng {2001 A
9680: 70 72 20 36 20 28 31 2e 30 2e 33 30 29 7d 20 7b  pr 6 (1.0.30)} {
9690: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65 20  .<li>Remove the 
96a0: 3c 62 3e 73 71 6c 69 74 65 5f 65 6e 63 6f 64 69  <b>sqlite_encodi
96b0: 6e 67 3c 2f 62 3e 20 54 43 4c 20 76 61 72 69 61  ng</b> TCL varia
96c0: 62 6c 65 20 74 68 61 74 20 77 61 73 20 69 6e 74  ble that was int
96d0: 72 6f 64 75 63 65 64 0a 20 20 20 20 69 6e 20 74  roduced.    in t
96e0: 68 65 20 70 72 65 76 69 6f 75 73 20 76 65 72 73  he previous vers
96f0: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ion.</li>.<li>Ad
9700: 64 20 6f 70 74 69 6f 6e 73 20 3c 62 3e 2d 65 6e  d options <b>-en
9710: 63 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e 64 20 3c  coding</b> and <
9720: 62 3e 2d 74 63 6c 2d 75 73 65 73 2d 75 74 66 3c  b>-tcl-uses-utf<
9730: 2f 62 3e 20 74 6f 20 74 68 65 0a 20 20 20 20 3c  /b> to the.    <
9740: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 54 43 4c  b>sqlite</b> TCL
9750: 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c   command.</li>.<
9760: 6c 69 3e 41 64 64 20 74 65 73 74 73 20 74 6f 20  li>Add tests to 
9770: 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74  make sure that t
9780: 63 6c 73 71 6c 69 74 65 20 77 61 73 20 63 6f 6d  clsqlite was com
9790: 70 69 6c 65 64 20 75 73 69 6e 67 20 54 63 6c 20  piled using Tcl 
97a0: 68 65 61 64 65 72 0a 20 20 20 20 66 69 6c 65 73  header.    files
97b0: 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 20 74   and libraries t
97c0: 68 61 74 20 6d 61 74 63 68 2e 3c 2f 6c 69 3e 0a  hat match.</li>.
97d0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70  }..chng {2001 Ap
97e0: 72 20 35 20 28 31 2e 30 2e 32 39 29 7d 20 7b 0a  r 5 (1.0.29)} {.
97f0: 3c 6c 69 3e 54 68 65 20 6c 69 62 72 61 72 79 20  <li>The library 
9800: 6e 6f 77 20 61 73 73 75 6d 65 73 20 64 61 74 61  now assumes data
9810: 20 69 73 20 73 74 6f 72 65 64 20 61 73 20 55 54   is stored as UT
9820: 46 2d 38 20 69 66 20 74 68 65 20 2d 2d 65 6e 61  F-8 if the --ena
9830: 62 6c 65 2d 75 74 66 38 0a 20 20 20 20 6f 70 74  ble-utf8.    opt
9840: 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 74 6f 20  ion is given to 
9850: 63 6f 6e 66 69 67 75 72 65 2e 20 20 54 68 65 20  configure.  The 
9860: 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72  default behavior
9870: 20 69 73 20 74 6f 20 61 73 73 75 6d 65 0a 20 20   is to assume.  
9880: 20 20 69 73 6f 38 38 35 39 2d 78 2c 20 61 73 20    iso8859-x, as 
9890: 69 74 20 68 61 73 20 61 6c 77 61 79 73 20 64 6f  it has always do
98a0: 6e 65 2e 20 20 54 68 69 73 20 6f 6e 6c 79 20 6d  ne.  This only m
98b0: 61 6b 65 73 20 61 20 64 69 66 66 65 72 65 6e 63  akes a differenc
98c0: 65 20 66 6f 72 0a 20 20 20 20 4c 49 4b 45 20 61  e for.    LIKE a
98d0: 6e 64 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72  nd GLOB operator
98e0: 73 20 61 6e 64 20 74 68 65 20 4c 45 4e 47 54 48  s and the LENGTH
98f0: 20 61 6e 64 20 53 55 42 53 54 52 20 66 75 6e 63   and SUBSTR func
9900: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
9910: 49 66 20 74 68 65 20 6c 69 62 72 61 72 79 20 69  If the library i
9920: 73 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 65 64  s not configured
9930: 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20 74   for UTF-8 and t
9940: 68 65 20 54 63 6c 20 6c 69 62 72 61 72 79 0a 20  he Tcl library. 
9950: 20 20 20 69 73 20 6f 6e 65 20 6f 66 20 74 68 65     is one of the
9960: 20 6e 65 77 65 72 20 6f 6e 65 73 20 74 68 61 74   newer ones that
9970: 20 75 73 65 73 20 55 54 46 2d 38 20 69 6e 74 65   uses UTF-8 inte
9980: 72 6e 61 6c 6c 79 2c 0a 20 20 20 20 74 68 65 6e  rnally,.    then
9990: 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66 72   a conversion fr
99a0: 6f 6d 20 55 54 46 2d 38 20 74 6f 20 69 73 6f 38  om UTF-8 to iso8
99b0: 38 35 39 20 61 6e 64 0a 20 20 20 20 62 61 63 6b  859 and.    back
99c0: 20 61 67 61 69 6e 20 69 73 20 64 6f 6e 65 20 69   again is done i
99d0: 6e 73 69 64 65 20 74 68 65 20 54 43 4c 20 69 6e  nside the TCL in
99e0: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a  terface.</li>.}.
99f0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20  .chng {2001 Apr 
9a00: 34 20 28 31 2e 30 2e 32 38 29 7d 20 7b 0a 3c 6c  4 (1.0.28)} {.<l
9a10: 69 3e 41 64 64 65 64 20 6c 69 6d 69 74 65 64 20  i>Added limited 
9a20: 73 75 70 70 6f 72 74 20 66 6f 72 20 74 72 61 6e  support for tran
9a30: 73 61 63 74 69 6f 6e 73 2e 20 20 41 74 20 74 68  sactions.  At th
9a40: 69 73 20 70 6f 69 6e 74 2c 20 74 72 61 6e 73 61  is point, transa
9a50: 63 74 69 6f 6e 73 0a 20 20 20 20 77 69 6c 6c 20  ctions.    will 
9a60: 64 6f 20 74 61 62 6c 65 20 6c 6f 63 6b 69 6e 67  do table locking
9a70: 20 6f 6e 20 74 68 65 20 47 44 42 4d 20 62 61 63   on the GDBM bac
9a80: 6b 65 6e 64 2e 20 20 54 68 65 72 65 20 69 73 20  kend.  There is 
9a90: 6e 6f 20 73 75 70 70 6f 72 74 20 28 79 65 74 29  no support (yet)
9aa0: 0a 20 20 20 20 66 6f 72 20 72 6f 6c 6c 62 61 63  .    for rollbac
9ab0: 6b 20 6f 72 20 61 74 6f 6d 69 63 20 63 6f 6d 6d  k or atomic comm
9ac0: 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  it.</li>.<li>Add
9ad0: 65 64 20 73 70 65 63 69 61 6c 20 63 6f 6c 75 6d  ed special colum
9ae0: 6e 20 6e 61 6d 65 73 20 52 4f 57 49 44 2c 20 4f  n names ROWID, O
9af0: 49 44 2c 20 61 6e 64 20 5f 52 4f 57 49 44 5f 20  ID, and _ROWID_ 
9b00: 74 68 61 74 20 72 65 66 65 72 20 74 6f 20 74 68  that refer to th
9b10: 65 0a 20 20 20 20 75 6e 69 71 75 65 20 72 61 6e  e.    unique ran
9b20: 64 6f 6d 20 69 6e 74 65 67 65 72 20 6b 65 79 20  dom integer key 
9b30: 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20  associated with 
9b40: 65 76 65 72 79 20 72 6f 77 20 6f 66 20 65 76 65  every row of eve
9b50: 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c  ry table.</li>.<
9b60: 6c 69 3e 41 64 64 69 74 69 6f 6e 61 6c 20 74 65  li>Additional te
9b70: 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68 65  sts added to the
9b80: 20 72 65 67 72 65 73 73 69 6f 6e 20 73 75 69 74   regression suit
9b90: 65 20 74 6f 20 63 6f 76 65 72 20 74 68 65 20 6e  e to cover the n
9ba0: 65 77 20 52 4f 57 49 44 0a 20 20 20 20 66 65 61  ew ROWID.    fea
9bb0: 74 75 72 65 20 61 6e 64 20 74 68 65 20 54 43 4c  ture and the TCL
9bc0: 20 69 6e 74 65 72 66 61 63 65 20 62 75 67 73 20   interface bugs 
9bd0: 6d 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f 77 2e  mentioned below.
9be0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
9bf0: 73 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e 22  s to the "lemon"
9c00: 20 70 61 72 73 65 72 20 67 65 6e 65 72 61 74 6f   parser generato
9c10: 72 20 74 6f 20 68 65 6c 70 20 69 74 20 77 6f 72  r to help it wor
9c20: 6b 20 62 65 74 74 65 72 20 77 68 65 6e 0a 20 20  k better when.  
9c30: 20 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e 67    compiled using
9c40: 20 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   MSVC.</li>.<li>
9c50: 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68 65  Bug fixes in the
9c60: 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20 69   TCL interface i
9c70: 64 65 6e 74 69 66 69 65 64 20 62 79 20 4f 6c 65  dentified by Ole
9c80: 67 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f 6c 69 3e  g Oleinick.</li>
9c90: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d  .}..chng {2001 M
9ca0: 61 72 20 32 30 20 28 31 2e 30 2e 32 37 29 7d 20  ar 20 (1.0.27)} 
9cb0: 7b 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f 69 6e 67  {.<li>When doing
9cc0: 20 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44 41   DELETE and UPDA
9cd0: 54 45 2c 20 74 68 65 20 6c 69 62 72 61 72 79 20  TE, the library 
9ce0: 75 73 65 64 20 74 6f 20 77 72 69 74 65 20 74 68  used to write th
9cf0: 65 20 72 65 63 6f 72 64 0a 20 20 20 20 6e 75 6d  e record.    num
9d00: 62 65 72 73 20 6f 66 20 72 65 63 6f 72 64 73 20  bers of records 
9d10: 74 6f 20 62 65 20 64 65 6c 65 74 65 64 20 6f 72  to be deleted or
9d20: 20 75 70 64 61 74 65 64 20 69 6e 74 6f 20 61 20   updated into a 
9d30: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e 0a  temporary file..
9d40: 20 20 20 20 54 68 69 73 20 69 73 20 63 68 61 6e      This is chan
9d50: 67 65 64 20 73 6f 20 74 68 61 74 20 74 68 65 20  ged so that the 
9d60: 72 65 63 6f 72 64 20 6e 75 6d 62 65 72 73 20 61  record numbers a
9d70: 72 65 20 68 65 6c 64 20 69 6e 20 6d 65 6d 6f 72  re held in memor
9d80: 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  y.</li>.<li>The 
9d90: 44 45 4c 45 54 45 20 63 6f 6d 6d 61 6e 64 20 77  DELETE command w
9da0: 69 74 68 6f 75 74 20 61 20 57 48 49 4c 45 20 63  ithout a WHILE c
9db0: 6c 61 75 73 65 20 6a 75 73 74 20 72 65 6d 6f 76  lause just remov
9dc0: 65 73 20 74 68 65 20 64 61 74 61 62 61 73 65 0a  es the database.
9dd0: 20 20 20 20 66 69 6c 65 73 20 66 72 6f 6d 20 74      files from t
9de0: 68 65 20 64 69 73 6b 2c 20 72 61 74 68 65 72 20  he disk, rather 
9df0: 74 68 61 6e 20 67 6f 69 6e 67 20 74 68 72 6f 75  than going throu
9e00: 67 68 20 61 6e 64 20 64 65 6c 65 74 69 6e 67 20  gh and deleting 
9e10: 72 65 63 6f 72 64 0a 20 20 20 20 62 79 20 72 65  record.    by re
9e20: 63 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  cord.</li>.}..ch
9e30: 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30 20  ng {2001 Mar 20 
9e40: 28 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.26)} {.<li>
9e50: 41 20 73 65 72 69 6f 75 73 20 62 75 67 20 66 69  A serious bug fi
9e60: 78 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 2e 20  xed on Windows. 
9e70: 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73 20 73   Windows users s
9e80: 68 6f 75 6c 64 20 75 70 67 72 61 64 65 2e 0a 20  hould upgrade.. 
9e90: 20 20 20 4e 6f 20 69 6d 70 61 63 74 20 74 6f 20     No impact to 
9ea0: 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  Unix.</li>.}..ch
9eb0: 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31 35 20  ng {2001 Mar 15 
9ec0: 28 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.25)} {.<li>
9ed0: 4d 6f 64 69 66 79 20 74 68 65 20 74 65 73 74 20  Modify the test 
9ee0: 73 63 72 69 70 74 73 20 74 6f 20 69 64 65 6e 74  scripts to ident
9ef0: 69 66 79 20 74 65 73 74 73 20 74 68 61 74 20 64  ify tests that d
9f00: 65 70 65 6e 64 20 6f 6e 20 73 79 73 74 65 6d 0a  epend on system.
9f10: 20 20 20 20 6c 6f 61 64 20 61 6e 64 20 70 72 6f      load and pro
9f20: 63 65 73 73 6f 72 20 73 70 65 65 64 20 61 6e 64  cessor speed and
9f30: 0a 20 20 20 20 74 6f 20 77 61 72 6e 20 74 68 65  .    to warn the
9f40: 20 75 73 65 72 20 74 68 61 74 20 61 20 66 61 69   user that a fai
9f50: 6c 75 72 65 20 6f 66 20 6f 6e 65 20 6f 66 20 74  lure of one of t
9f60: 68 6f 73 65 20 28 72 61 72 65 29 20 74 65 73 74  hose (rare) test
9f70: 73 20 64 6f 65 73 0a 20 20 20 20 6e 6f 74 20 6e  s does.    not n
9f80: 65 63 65 73 73 61 72 69 6c 79 20 6d 65 61 6e 20  ecessarily mean 
9f90: 74 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6d  the library is m
9fa0: 61 6c 66 75 6e 63 74 69 6f 6e 69 6e 67 2e 20 20  alfunctioning.  
9fb0: 4e 6f 20 63 68 61 6e 67 65 73 20 74 6f 0a 20 20  No changes to.  
9fc0: 20 20 63 6f 64 65 2e 0a 20 20 20 20 3c 2f 6c 69    code..    </li
9fd0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
9fe0: 4d 61 72 20 31 34 20 28 31 2e 30 2e 32 34 29 7d  Mar 14 (1.0.24)}
9ff0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
a000: 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69   which was causi
a010: 6e 67 0a 20 20 20 20 74 68 65 20 55 50 44 41 54  ng.    the UPDAT
a020: 45 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66 61 69  E command to fai
a030: 6c 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68 65  l on systems whe
a040: 72 65 20 22 6d 61 6c 6c 6f 63 28 30 29 22 20 72  re "malloc(0)" r
a050: 65 74 75 72 6e 73 0a 20 20 20 20 4e 55 4c 4c 2e  eturns.    NULL.
a060: 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 64 6f    The problem do
a070: 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 57 69  es not appear Wi
a080: 6e 64 6f 77 73 2c 20 4c 69 6e 75 78 2c 20 6f 72  ndows, Linux, or
a090: 20 48 50 55 58 20 62 75 74 20 64 6f 65 73 20 0a   HPUX but does .
a0a0: 20 20 20 20 63 61 75 73 65 20 74 68 65 20 6c 69      cause the li
a0b0: 62 72 61 72 79 20 74 6f 20 66 61 69 6c 20 6f 6e  brary to fail on
a0c0: 20 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a   QNX..    </li>.
a0d0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65  }..chng {2001 Fe
a0e0: 62 20 31 39 20 28 31 2e 30 2e 32 33 29 7d 20 7b  b 19 (1.0.23)} {
a0f0: 0a 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c 61 74 65  .<li>An unrelate
a100: 64 20 28 61 6e 64 20 6d 69 6e 6f 72 29 20 62 75  d (and minor) bu
a110: 67 20 66 72 6f 6d 20 4d 61 72 6b 20 4d 75 72 61  g from Mark Mura
a120: 6e 77 73 6b 69 20 66 69 78 65 64 2e 20 20 54 68  nwski fixed.  Th
a130: 65 20 61 6c 67 6f 72 69 74 68 6d 0a 20 20 20 20  e algorithm.    
a140: 66 6f 72 20 66 69 67 75 72 69 6e 67 20 6f 75 74  for figuring out
a150: 20 77 68 65 72 65 20 74 6f 20 70 75 74 20 74 65   where to put te
a160: 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 66 6f  mporary files fo
a170: 72 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 64 61  r a "memory:" da
a180: 74 61 62 61 73 65 0a 20 20 20 20 77 61 73 20 6e  tabase.    was n
a190: 6f 74 20 77 6f 72 6b 69 6e 67 20 71 75 69 74 65  ot working quite
a1a0: 20 72 69 67 68 74 2e 0a 20 20 20 20 3c 2f 6c 69   right..    </li
a1b0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a1c0: 46 65 62 20 31 39 20 28 31 2e 30 2e 32 32 29 7d  Feb 19 (1.0.22)}
a1d0: 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 72 65 76 69   {.<li>The previ
a1e0: 6f 75 73 20 66 69 78 20 77 61 73 20 6e 6f 74 20  ous fix was not 
a1f0: 71 75 69 74 65 20 72 69 67 68 74 2e 20 20 54 68  quite right.  Th
a200: 69 73 20 6f 6e 65 20 73 65 65 6d 73 20 74 6f 20  is one seems to 
a210: 77 6f 72 6b 20 62 65 74 74 65 72 2e 0a 20 20 20  work better..   
a220: 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b   </li>.}..chng {
a230: 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e 30  2001 Feb 19 (1.0
a240: 2e 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  .21)} {.<li>The 
a250: 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74  UPDATE statement
a260: 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67   was not working
a270: 20 77 68 65 6e 20 74 68 65 20 57 48 45 52 45 20   when the WHERE 
a280: 63 6c 61 75 73 65 20 63 6f 6e 74 61 69 6e 65 64  clause contained
a290: 0a 20 20 20 20 73 6f 6d 65 20 74 65 72 6d 73 20  .    some terms 
a2a0: 74 68 61 74 20 63 6f 75 6c 64 20 62 65 20 73 61  that could be sa
a2b0: 74 69 73 66 69 65 64 20 75 73 69 6e 67 20 69 6e  tisfied using in
a2c0: 64 69 63 65 73 20 61 6e 64 20 6f 74 68 65 72 20  dices and other 
a2d0: 74 65 72 6d 73 20 74 68 61 74 0a 20 20 20 20 63  terms that.    c
a2e0: 6f 75 6c 64 20 6e 6f 74 2e 20 20 46 69 78 65 64  ould not.  Fixed
a2f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
a300: 32 30 30 31 20 46 65 62 20 31 31 20 28 31 2e 30  2001 Feb 11 (1.0
a310: 2e 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 65 72 67  .20)} {.<li>Merg
a320: 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63 68  e development ch
a330: 61 6e 67 65 73 20 69 6e 74 6f 20 74 68 65 20 6d  anges into the m
a340: 61 69 6e 20 74 72 75 6e 6b 2e 20 20 46 75 74 75  ain trunk.  Futu
a350: 72 65 20 77 6f 72 6b 20 74 6f 77 61 72 64 0a 20  re work toward. 
a360: 20 20 20 75 73 69 6e 67 20 61 20 42 54 72 65 65     using a BTree
a370: 20 66 69 6c 65 20 73 74 72 75 63 74 75 72 65 20   file structure 
a380: 77 69 6c 6c 20 75 73 65 20 61 20 73 65 70 61 72  will use a separ
a390: 61 74 65 20 43 56 53 20 73 6f 75 72 63 65 20 74  ate CVS source t
a3a0: 72 65 65 2e 20 20 54 68 69 73 0a 20 20 20 20 43  ree.  This.    C
a3b0: 56 53 20 74 72 65 65 20 77 69 6c 6c 20 63 6f 6e  VS tree will con
a3c0: 74 69 6e 75 65 20 74 6f 20 73 75 70 70 6f 72 74  tinue to support
a3d0: 20 74 68 65 20 47 44 42 4d 20 76 65 72 73 69 6f   the GDBM versio
a3e0: 6e 20 6f 66 20 53 51 4c 69 74 65 20 6f 6e 6c 79  n of SQLite only
a3f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
a400: 32 30 30 31 20 46 65 62 20 36 20 28 31 2e 30 2e  2001 Feb 6 (1.0.
a410: 31 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  19)} {.<li>Fix a
a420: 20 73 74 72 61 6e 67 65 20 28 62 75 74 20 76 61   strange (but va
a430: 6c 69 64 29 20 43 20 64 65 63 6c 61 72 61 74 69  lid) C declarati
a440: 6f 6e 20 74 68 61 74 20 77 61 73 20 63 61 75 73  on that was caus
a450: 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20 20  ing problems.   
a460: 20 66 6f 72 20 51 4e 58 2e 20 20 4e 6f 20 6c 6f   for QNX.  No lo
a470: 67 69 63 61 6c 20 63 68 61 6e 67 65 73 2e 3c 2f  gical changes.</
a480: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
a490: 31 20 4a 61 6e 20 34 20 28 31 2e 30 2e 31 38 29  1 Jan 4 (1.0.18)
a4a0: 7d 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74 20 74 68  } {.<li>Print th
a4b0: 65 20 6f 66 66 65 6e 64 69 6e 67 20 53 51 4c 20  e offending SQL 
a4c0: 73 74 61 74 65 6d 65 6e 74 20 77 68 65 6e 20 61  statement when a
a4d0: 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 2e 3c  n error occurs.<
a4e0: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20  /li>.<li>Do not 
a4f0: 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 73 20 62  require commas b
a500: 65 74 77 65 65 6e 20 63 6f 6e 73 74 72 61 69 6e  etween constrain
a510: 74 73 20 69 6e 20 43 52 45 41 54 45 20 54 41 42  ts in CREATE TAB
a520: 4c 45 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f  LE statements.</
a530: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
a540: 65 20 22 2d 65 63 68 6f 22 20 6f 70 74 69 6f 6e  e "-echo" option
a550: 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f   to the shell.</
a560: 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20  li>.<li>Changes 
a570: 74 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c 69  to comments.</li
a580: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
a590: 44 65 63 20 31 30 20 28 31 2e 30 2e 31 37 29 7d  Dec 10 (1.0.17)}
a5a0: 20 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74 65 20 3c   {.<li>Rewrote <
a5b0: 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74  b>sqlite_complet
a5c0: 65 28 29 3c 2f 62 3e 20 74 6f 20 6d 61 6b 65 20  e()</b> to make 
a5d0: 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a  it faster.</li>.
a5e0: 3c 6c 69 3e 4d 69 6e 6f 72 20 74 77 65 61 6b 73  <li>Minor tweaks
a5f0: 20 74 6f 20 6f 74 68 65 72 20 63 6f 64 65 20 74   to other code t
a600: 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e 20 61 20  o make it run a 
a610: 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 3c 2f  little faster.</
a620: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65  li>.<li>Added ne
a630: 77 20 74 65 73 74 73 20 66 6f 72 20 3c 62 3e 73  w tests for <b>s
a640: 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29  qlite_complete()
a650: 3c 2f 62 3e 20 61 6e 64 20 66 6f 72 20 6d 65 6d  </b> and for mem
a660: 6f 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c 69 3e 0a  ory leaks.</li>.
a670: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44 65  }..chng {2000 De
a680: 63 20 34 20 28 31 2e 30 2e 31 36 29 7d 20 7b 0a  c 4 (1.0.16)} {.
a690: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
a6a0: 6e 20 75 70 64 61 74 65 73 2e 20 20 4d 6f 73 74  n updates.  Most
a6b0: 6c 79 20 66 69 78 69 6e 67 20 6f 66 20 74 79 70  ly fixing of typ
a6c0: 6f 73 20 61 6e 64 20 73 70 65 6c 6c 69 6e 67 20  os and spelling 
a6d0: 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  errors.</li>.}..
a6e0: 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 32  chng {2000 Oct 2
a6f0: 33 20 28 31 2e 30 2e 31 35 29 7d 20 7b 0a 3c 6c  3 (1.0.15)} {.<l
a700: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
a710: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  updates</li>.<li
a720: 3e 53 6f 6d 65 20 73 61 6e 69 74 79 20 63 68 65  >Some sanity che
a730: 63 6b 69 6e 67 20 63 6f 64 65 20 77 61 73 20 72  cking code was r
a740: 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20  emoved from the 
a750: 69 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66 20 76 64  inner loop of vd
a760: 62 65 2e 63 0a 20 20 20 20 74 6f 20 68 65 6c 70  be.c.    to help
a770: 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f 20   the library to 
a780: 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61 73  run a little fas
a790: 74 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20 69  ter.  The code i
a7a0: 73 20 6f 6e 6c 79 0a 20 20 20 20 72 65 6d 6f 76  s only.    remov
a7b0: 65 64 20 69 66 20 79 6f 75 20 63 6f 6d 70 69 6c  ed if you compil
a7c0: 65 20 77 69 74 68 20 2d 44 4e 44 45 42 55 47 2e  e with -DNDEBUG.
a7d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a7e0: 30 30 30 20 4f 63 74 20 31 39 20 28 31 2e 30 2e  000 Oct 19 (1.0.
a7f0: 31 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  14)} {.<li>Added
a800: 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 62 61 63   a "memory:" bac
a810: 6b 65 6e 64 20 64 72 69 76 65 72 20 74 68 61 74  kend driver that
a820: 20 73 74 6f 72 65 73 20 69 74 73 20 64 61 74 61   stores its data
a830: 62 61 73 65 20 69 6e 20 61 6e 0a 20 20 20 20 69  base in an.    i
a840: 6e 2d 6d 65 6d 6f 72 79 20 68 61 73 68 20 74 61  n-memory hash ta
a850: 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ble.</li>.}..chn
a860: 67 20 7b 32 30 30 30 20 4f 63 74 20 31 38 20 28  g {2000 Oct 18 (
a870: 31 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e 42  1.0.13)} {.<li>B
a880: 72 65 61 6b 20 6f 75 74 20 74 68 65 20 47 44 42  reak out the GDB
a890: 4d 20 64 72 69 76 65 72 20 69 6e 74 6f 20 61 20  M driver into a 
a8a0: 73 65 70 61 72 61 74 65 20 66 69 6c 65 20 69 6e  separate file in
a8b0: 20 61 6e 74 69 63 69 70 61 74 69 6f 6e 0a 20 20   anticipation.  
a8c0: 20 20 74 6f 20 61 64 64 65 64 20 6e 65 77 20 64    to added new d
a8d0: 72 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  rivers.</li>.<li
a8e0: 3e 41 6c 6c 6f 77 20 74 68 65 20 6e 61 6d 65 20  >Allow the name 
a8f0: 6f 66 20 61 20 64 61 74 61 62 61 73 65 20 74 6f  of a database to
a900: 20 62 65 20 70 72 65 66 69 78 65 64 20 62 79 20   be prefixed by 
a910: 74 68 65 20 64 72 69 76 65 72 20 74 79 70 65 2e  the driver type.
a920: 0a 20 20 20 20 46 6f 72 20 6e 6f 77 2c 20 74 68  .    For now, th
a930: 65 20 6f 6e 6c 79 20 64 72 69 76 65 72 20 74 79  e only driver ty
a940: 70 65 20 69 73 20 22 67 64 62 6d 3a 22 2e 3c 2f  pe is "gdbm:".</
a950: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
a960: 30 20 4f 63 74 20 31 36 20 28 31 2e 30 2e 31 32  0 Oct 16 (1.0.12
a970: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65 64 20 61  )} {.<li>Fixed a
a980: 6e 20 6f 66 66 2d 62 79 2d 6f 6e 65 20 65 72 72  n off-by-one err
a990: 6f 72 20 74 68 61 74 20 77 61 73 20 63 61 75 73  or that was caus
a9a0: 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 20 69  ing a coredump i
a9b0: 6e 20 0a 20 20 20 20 74 68 65 20 27 25 71 27 20  n .    the '%q' 
a9c0: 66 6f 72 6d 61 74 20 64 69 72 65 63 74 69 76 65  format directive
a9d0: 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20 20   of the new.    
a9e0: 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72  <b>sqlite_..._pr
a9f0: 69 6e 74 66 28 29 3c 2f 62 3e 20 72 6f 75 74 69  intf()</b> routi
aa00: 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  nes.</li>.<li>Ad
aa10: 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ded the <b>sqlit
aa20: 65 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f 62  e_interrupt()</b
aa30: 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69  > interface.</li
aa40: 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 68 65  >.<li>In the she
aa50: 6c 6c 2c 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e  ll, <b>sqlite_in
aa60: 74 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 73  terrupt()</b> is
aa70: 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74 68   invoked when th
aa80: 65 0a 20 20 20 20 75 73 65 72 20 70 72 65 73 73  e.    user press
aa90: 65 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c 69  es Control-C</li
aaa0: 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d 65  >.<li>Fixed some
aab0: 20 69 6e 73 74 61 6e 63 65 73 20 77 68 65 72 65   instances where
aac0: 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28   <b>sqlite_exec(
aad0: 29 3c 2f 62 3e 20 77 61 73 0a 20 20 20 20 72 65  )</b> was.    re
aae0: 74 75 72 6e 69 6e 67 20 74 68 65 20 77 72 6f 6e  turning the wron
aaf0: 67 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c 2f 6c  g error code.</l
ab00: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
ab10: 20 4f 63 74 20 31 31 20 28 31 2e 30 2e 31 30 29   Oct 11 (1.0.10)
ab20: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 6f  } {.<li>Added no
ab30: 74 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20 63 6f  tes on how to co
ab40: 6d 70 69 6c 65 20 66 6f 72 20 57 69 6e 64 6f 77  mpile for Window
ab50: 73 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c 69  s95/98.</li>.<li
ab60: 3e 52 65 6d 6f 76 65 64 20 61 20 66 65 77 20 76  >Removed a few v
ab70: 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 77 65  ariables that we
ab80: 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 75 73 65  re not being use
ab90: 64 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e 0a 7d 0a  d.  Etc.</li>.}.
aba0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
abb0: 38 20 28 31 2e 30 2e 39 29 7d 20 7b 0a 3c 6c 69  8 (1.0.9)} {.<li
abc0: 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71  >Added the <b>sq
abd0: 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28  lite_..._printf(
abe0: 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 20  )</b> interface 
abf0: 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c  routines.</li>.<
ac00: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
ac10: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68  <b>sqlite</b> sh
ac20: 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20 75  ell program to u
ac30: 73 65 20 74 68 65 20 6e 65 77 20 69 6e 74 65 72  se the new inter
ac40: 66 61 63 65 20 0a 20 20 20 20 72 6f 75 74 69 6e  face .    routin
ac50: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64  es.</li>.<li>Mod
ac60: 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  ified the <b>sql
ac70: 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72  ite</b> shell pr
ac80: 6f 67 72 61 6d 20 74 6f 20 70 72 69 6e 74 20 74  ogram to print t
ac90: 68 65 20 73 63 68 65 6d 61 20 66 6f 72 0a 20 20  he schema for.  
aca0: 20 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 53    the built-in S
acb0: 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61 62  QLITE_MASTER tab
acc0: 6c 65 2c 20 69 66 20 65 78 70 6c 69 63 69 74 6c  le, if explicitl
acd0: 79 20 72 65 71 75 65 73 74 65 64 2e 3c 2f 6c 69  y requested.</li
ace0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
acf0: 53 65 70 20 33 30 20 28 31 2e 30 2e 38 29 7d 20  Sep 30 (1.0.8)} 
ad00: 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69 74  {.<li>Begin writ
ad10: 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  ing documentatio
ad20: 6e 20 6f 6e 20 74 68 65 20 54 43 4c 20 69 6e 74  n on the TCL int
ad30: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  erface.</li>.}..
ad40: 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 32  chng {2000 Sep 2
ad50: 39 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64 29  9 (Not Released)
ad60: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
ad70: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f  e <b>sqlite_get_
ad80: 74 61 62 6c 65 28 29 3c 2f 62 3e 20 41 50 49 3c  table()</b> API<
ad90: 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 64  /li>.<li>Updated
ada0: 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69   the documentati
adb0: 6f 6e 20 66 6f 72 20 64 75 65 20 74 6f 20 74 68  on for due to th
adc0: 65 20 61 62 6f 76 65 20 63 68 61 6e 67 65 2e 3c  e above change.<
add0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65  /li>.<li>Modifie
ade0: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  d the <b>sqlite<
adf0: 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 6d 61 6b  /b> shell to mak
ae00: 65 20 75 73 65 20 6f 66 20 74 68 65 20 6e 65 77  e use of the new
ae10: 0a 20 20 20 20 73 71 6c 69 74 65 5f 67 65 74 5f  .    sqlite_get_
ae20: 74 61 62 6c 65 28 29 20 41 50 49 20 69 6e 20 6f  table() API in o
ae30: 72 64 65 72 20 74 6f 20 70 72 69 6e 74 20 61 20  rder to print a 
ae40: 6c 69 73 74 20 6f 66 20 74 61 62 6c 65 73 0a 20  list of tables. 
ae50: 20 20 20 69 6e 20 6d 75 6c 74 69 70 6c 65 20 63     in multiple c
ae60: 6f 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c 61 72 20  olumns, similar 
ae70: 74 6f 20 74 68 65 20 77 61 79 20 22 6c 73 22 20  to the way "ls" 
ae80: 70 72 69 6e 74 73 20 66 69 6c 65 6e 61 6d 65 73  prints filenames
ae90: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66  .</li>.<li>Modif
aea0: 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ied the <b>sqlit
aeb0: 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 70  e</b> shell to p
aec0: 72 69 6e 74 20 61 20 73 65 6d 69 63 6f 6c 6f 6e  rint a semicolon
aed0: 20 61 74 20 74 68 65 0a 20 20 20 20 65 6e 64 20   at the.    end 
aee0: 6f 66 20 65 61 63 68 20 43 52 45 41 54 45 20 73  of each CREATE s
aef0: 74 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65 20  tatement in the 
af00: 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 22 2e  output of the ".
af10: 73 63 68 65 6d 61 22 20 63 6f 6d 6d 61 6e 64 2e  schema" command.
af20: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
af30: 30 30 30 20 53 65 70 20 32 31 20 28 4e 6f 74 20  000 Sep 21 (Not 
af40: 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c 69  Released)} {.<li
af50: 3e 43 68 61 6e 67 65 20 74 68 65 20 74 63 6c 73  >Change the tcls
af60: 71 6c 69 74 65 20 22 65 76 61 6c 22 20 6d 65 74  qlite "eval" met
af70: 68 6f 64 20 74 6f 20 72 65 74 75 72 6e 20 61 20  hod to return a 
af80: 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73 20  list of results 
af90: 69 66 0a 20 20 20 20 6e 6f 20 63 61 6c 6c 62 61  if.    no callba
afa0: 63 6b 20 73 63 72 69 70 74 20 69 73 20 73 70 65  ck script is spe
afb0: 63 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  cified.</li>.<li
afc0: 3e 43 68 61 6e 67 65 20 74 63 6c 73 71 6c 69 74  >Change tclsqlit
afd0: 65 2e 63 20 74 6f 20 75 73 65 20 74 68 65 20 54  e.c to use the T
afe0: 63 6c 5f 4f 62 6a 20 69 6e 74 65 72 66 61 63 65  cl_Obj interface
aff0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 63  </li>.<li>Add tc
b000: 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 74 68 65  lsqlite.c to the
b010: 20 6c 69 62 73 71 6c 69 74 65 2e 61 20 6c 69 62   libsqlite.a lib
b020: 72 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  rary</li>.}..chn
b030: 67 20 7b 32 30 30 30 20 53 65 70 20 31 33 20 28  g {2000 Sep 13 (
b040: 56 65 72 73 69 6f 6e 20 31 2e 30 2e 35 29 7d 20  Version 1.0.5)} 
b050: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74 68  {.<li>Changed th
b060: 65 20 70 72 69 6e 74 20 66 6f 72 6d 61 74 20 66  e print format f
b070: 6f 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  or floating poin
b080: 74 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 22 25  t values from "%
b090: 67 22 20 74 6f 20 22 25 2e 31 35 67 22 2e 0a 20  g" to "%.15g".. 
b0a0: 20 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61     </li>.<li>Cha
b0b0: 6e 67 65 64 20 74 68 65 20 63 6f 6d 70 61 72 69  nged the compari
b0c0: 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 73 6f 20  son function so 
b0d0: 74 68 61 74 20 6e 75 6d 62 65 72 73 20 69 6e 20  that numbers in 
b0e0: 65 78 70 6f 6e 65 6e 74 69 61 6c 20 6e 6f 74 61  exponential nota
b0f0: 74 69 6f 6e 0a 20 20 20 20 28 65 78 3a 20 31 2e  tion.    (ex: 1.
b100: 32 33 34 65 2b 30 35 29 20 73 6f 72 74 20 69 6e  234e+05) sort in
b110: 20 6e 75 6d 65 72 69 63 61 6c 20 6f 72 64 65 72   numerical order
b120: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
b130: 32 30 30 30 20 41 75 67 20 32 38 20 28 56 65 72  2000 Aug 28 (Ver
b140: 73 69 6f 6e 20 31 2e 30 2e 34 29 7d 20 7b 0a 3c  sion 1.0.4)} {.<
b150: 6c 69 3e 41 64 64 65 64 20 66 75 6e 63 74 69 6f  li>Added functio
b160: 6e 73 20 3c 62 3e 6c 65 6e 67 74 68 28 29 3c 2f  ns <b>length()</
b170: 62 3e 20 61 6e 64 20 3c 62 3e 73 75 62 73 74 72  b> and <b>substr
b180: 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ()</b>.</li>.<li
b190: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68  >Fix a bug in th
b1a0: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
b1b0: 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 68  shell program th
b1c0: 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 0a 20  at was causing. 
b1d0: 20 20 20 61 20 63 6f 72 65 64 75 6d 70 20 77 68     a coredump wh
b1e0: 65 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6d 6f  en the output mo
b1f0: 64 65 20 77 61 73 20 22 63 6f 6c 75 6d 6e 22 20  de was "column" 
b200: 61 6e 64 20 74 68 65 20 66 69 72 73 74 20 72 6f  and the first ro
b210: 77 0a 20 20 20 20 6f 66 20 64 61 74 61 20 63 6f  w.    of data co
b220: 6e 74 61 69 6e 65 64 20 61 20 4e 55 4c 4c 2e 3c  ntained a NULL.<
b230: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
b240: 30 30 20 41 75 67 20 32 32 20 28 56 65 72 73 69  00 Aug 22 (Versi
b250: 6f 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69  on 1.0.3)} {.<li
b260: 3e 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73  >In the sqlite s
b270: 68 65 6c 6c 2c 20 70 72 69 6e 74 20 74 68 65 20  hell, print the 
b280: 22 44 61 74 61 62 61 73 65 20 6f 70 65 6e 65 64  "Database opened
b290: 20 52 45 41 44 20 4f 4e 4c 59 22 20 6d 65 73 73   READ ONLY" mess
b2a0: 61 67 65 0a 20 20 20 20 74 6f 20 73 74 64 65 72  age.    to stder
b2b0: 72 20 69 6e 73 74 65 61 64 20 6f 66 20 73 74 64  r instead of std
b2c0: 6f 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e  out.</li>.<li>In
b2d0: 20 74 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c   the sqlite shel
b2e0: 6c 2c 20 6e 6f 77 20 70 72 69 6e 74 20 74 68 65  l, now print the
b2f0: 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20   version number 
b300: 6f 6e 20 69 6e 69 74 69 61 6c 20 73 74 61 72 74  on initial start
b310: 75 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  up.</li>.<li>Add
b320: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 76   the <b>sqlite_v
b330: 65 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20 73 74 72  ersion[]</b> str
b340: 69 6e 67 20 63 6f 6e 73 74 61 6e 74 20 74 6f 20  ing constant to 
b350: 74 68 65 20 6c 69 62 72 61 72 79 3c 2f 6c 69 3e  the library</li>
b360: 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70  .<li>Makefile up
b370: 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  dates</li>.<li>B
b380: 75 67 20 66 69 78 3a 20 69 6e 63 6f 72 72 65 63  ug fix: incorrec
b390: 74 20 56 44 42 45 20 63 6f 64 65 20 77 61 73 20  t VDBE code was 
b3a0: 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64 20  being generated 
b3b0: 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e  for the followin
b3c0: 67 0a 20 20 20 20 63 69 72 63 75 6d 73 74 61 6e  g.    circumstan
b3d0: 63 65 3a 20 61 20 71 75 65 72 79 20 6f 6e 20 61  ce: a query on a
b3e0: 6e 20 69 6e 64 65 78 65 64 20 74 61 62 6c 65 20  n indexed table 
b3f0: 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 48 45  containing a WHE
b400: 52 45 20 63 6c 61 75 73 65 20 77 69 74 68 0a 20  RE clause with. 
b410: 20 20 20 61 6e 20 49 4e 20 6f 70 65 72 61 74 6f     an IN operato
b420: 72 20 74 68 61 74 20 68 61 64 20 61 20 73 75 62  r that had a sub
b430: 71 75 65 72 79 20 6f 6e 20 69 74 73 20 72 69 67  query on its rig
b440: 68 74 2d 68 61 6e 64 20 73 69 64 65 2e 3c 2f 6c  ht-hand side.</l
b450: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
b460: 20 41 75 67 20 31 38 20 28 56 65 72 73 69 6f 6e   Aug 18 (Version
b470: 20 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46   1.0.1)} {.<li>F
b480: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
b490: 63 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70 74  configure script
b4a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72  .</li>.<li>Minor
b4b0: 20 72 65 76 69 73 69 6f 6e 73 20 74 6f 20 74 68   revisions to th
b4c0: 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a  e website.</li>.
b4d0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
b4e0: 67 20 31 37 20 28 56 65 72 73 69 6f 6e 20 31 2e  g 17 (Version 1.
b4f0: 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65  0)} {.<li>Change
b500: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f   the <b>sqlite</
b510: 62 3e 20 70 72 6f 67 72 61 6d 20 73 6f 20 74 68  b> program so th
b520: 61 74 20 69 74 20 63 61 6e 20 72 65 61 64 0a 20  at it can read. 
b530: 20 20 20 64 61 74 61 62 61 73 65 73 20 66 6f 72     databases for
b540: 20 77 68 69 63 68 20 69 74 20 6c 61 63 6b 73 20   which it lacks 
b550: 77 72 69 74 65 20 70 65 72 6d 69 73 73 69 6f 6e  write permission
b560: 2e 20 20 28 49 74 20 75 73 65 64 20 74 6f 0a 20  .  (It used to. 
b570: 20 20 20 72 65 66 75 73 65 20 61 6c 6c 20 61 63     refuse all ac
b580: 63 65 73 73 20 69 66 20 69 74 20 63 6f 75 6c 64  cess if it could
b590: 20 6e 6f 74 20 77 72 69 74 65 2e 29 3c 2f 6c 69   not write.)</li
b5a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
b5b0: 41 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e 54 72 65  Aug 9} {.<li>Tre
b5c0: 61 74 20 63 61 72 72 69 61 67 65 20 72 65 74 75  at carriage retu
b5d0: 72 6e 73 20 61 73 20 77 68 69 74 65 20 73 70 61  rns as white spa
b5e0: 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ce.</li>.}..chng
b5f0: 20 7b 32 30 30 30 20 41 75 67 20 38 7d 20 7b 0a   {2000 Aug 8} {.
b600: 3c 6c 69 3e 41 64 64 65 64 20 70 61 74 74 65 72  <li>Added patter
b610: 6e 20 6d 61 74 63 68 69 6e 67 20 74 6f 20 74 68  n matching to th
b620: 65 20 22 2e 74 61 62 6c 65 22 20 63 6f 6d 6d 61  e ".table" comma
b630: 6e 64 20 69 6e 20 74 68 65 20 22 73 71 6c 69 74  nd in the "sqlit
b640: 65 22 0a 63 6f 6d 6d 61 6e 64 20 73 68 65 6c 6c  e".command shell
b650: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
b660: 32 30 30 30 20 41 75 67 20 34 7d 20 7b 0a 3c 6c  2000 Aug 4} {.<l
b670: 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  i>Documentation 
b680: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  updates</li>.<li
b690: 3e 41 64 64 65 64 20 22 62 75 73 79 22 20 61 6e  >Added "busy" an
b6a0: 64 20 22 74 69 6d 65 6f 75 74 22 20 6d 65 74 68  d "timeout" meth
b6b0: 6f 64 73 20 74 6f 20 74 68 65 20 54 63 6c 20 69  ods to the Tcl i
b6c0: 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 7d 0a  nterface</li>.}.
b6d0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
b6e0: 33 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f  3} {.<li>File fo
b6f0: 72 6d 61 74 20 76 65 72 73 69 6f 6e 20 6e 75 6d  rmat version num
b700: 62 65 72 20 77 61 73 20 62 65 69 6e 67 20 73 74  ber was being st
b710: 6f 72 65 64 20 69 6e 20 73 71 6c 69 74 65 5f 6d  ored in sqlite_m
b720: 61 73 74 65 72 2e 74 63 6c 0a 20 20 20 20 6d 75  aster.tcl.    mu
b730: 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 20 54 68  ltiple times. Th
b740: 69 73 20 77 61 73 20 68 61 72 6d 6c 65 73 73 2c  is was harmless,
b750: 20 62 75 74 20 75 6e 6e 65 63 65 73 73 61 72 79   but unnecessary
b760: 2e 20 49 74 20 69 73 20 6e 6f 77 20 66 69 78 65  . It is now fixe
b770: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
b780: 7b 32 30 30 30 20 41 75 67 20 32 7d 20 7b 0a 3c  {2000 Aug 2} {.<
b790: 6c 69 3e 54 68 65 20 66 69 6c 65 20 66 6f 72 6d  li>The file form
b7a0: 61 74 20 66 6f 72 20 69 6e 64 69 63 65 73 20 77  at for indices w
b7b0: 61 73 20 63 68 61 6e 67 65 64 20 73 6c 69 67 68  as changed sligh
b7c0: 74 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  tly in order to 
b7d0: 77 6f 72 6b 0a 20 20 20 20 61 72 6f 75 6e 64 20  work.    around 
b7e0: 61 6e 20 69 6e 65 66 66 69 63 69 65 6e 63 79 20  an inefficiency 
b7f0: 74 68 61 74 20 63 61 6e 20 73 6f 6d 65 74 69 6d  that can sometim
b800: 65 73 20 63 6f 6d 65 20 75 70 20 77 69 74 68 20  es come up with 
b810: 47 44 42 4d 20 77 68 65 6e 0a 20 20 20 20 74 68  GDBM when.    th
b820: 65 72 65 20 61 72 65 20 6c 61 72 67 65 20 69 6e  ere are large in
b830: 64 69 63 65 73 20 68 61 76 69 6e 67 20 6d 61 6e  dices having man
b840: 79 20 65 6e 74 72 69 65 73 20 77 69 74 68 20 74  y entries with t
b850: 68 65 20 73 61 6d 65 20 6b 65 79 2e 0a 20 20 20  he same key..   
b860: 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65   <font color="re
b870: 64 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61 74 69 62  d">** Incompatib
b880: 6c 65 20 43 68 61 6e 67 65 20 2a 2a 3c 2f 66 6f  le Change **</fo
b890: 6e 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nt></li>.}..chng
b8a0: 20 7b 32 30 30 30 20 41 75 67 20 31 7d 20 7b 0a   {2000 Aug 1} {.
b8b0: 3c 6c 69 3e 54 68 65 20 70 61 72 73 65 72 27 73  <li>The parser's
b8c0: 20 73 74 61 63 6b 20 77 61 73 20 6f 76 65 72 66   stack was overf
b8d0: 6c 6f 77 69 6e 67 20 6f 6e 20 61 20 76 65 72 79  lowing on a very
b8e0: 20 6c 6f 6e 67 20 55 50 44 41 54 45 20 73 74 61   long UPDATE sta
b8f0: 74 65 6d 65 6e 74 2e 0a 20 20 20 20 54 68 69 73  tement..    This
b900: 20 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f   is now fixed.</
b910: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
b920: 30 20 4a 75 6c 79 20 33 31 7d 20 7b 0a 3c 6c 69  0 July 31} {.<li
b930: 3e 46 69 6e 69 73 68 20 74 68 65 20 3c 61 20 68  >Finish the <a h
b940: 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e  ref="vdbe.html">
b950: 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61  VDBE tutorial</a
b960: 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  >.</li>.<li>Adde
b970: 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  d documentation 
b980: 6f 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 74 6f 20  on compiling to 
b990: 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a  WindowsNT.</li>.
b9a0: 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67  <li>Fix a config
b9b0: 75 72 61 74 69 6f 6e 20 70 72 6f 67 72 61 6d 20  uration program 
b9c0: 66 6f 72 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f  for WindowsNT.</
b9d0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f  li>.<li>Fix a co
b9e0: 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 62  nfiguration prob
b9f0: 6c 65 6d 20 66 6f 72 20 48 50 55 58 2e 3c 2f 6c  lem for HPUX.</l
ba00: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
ba10: 20 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e   July 29} {.<li>
ba20: 42 65 74 74 65 72 20 6c 61 62 65 6c 73 20 6f 6e  Better labels on
ba30: 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6f 66   column names of
ba40: 20 74 68 65 20 72 65 73 75 6c 74 2e 3c 2f 6c 69   the result.</li
ba50: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
ba60: 4a 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c 69 3e 41  July 28} {.<li>A
ba70: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
ba80: 74 65 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72 28  te_busy_handler(
ba90: 29 3c 2f 62 3e 20 0a 20 20 20 20 61 6e 64 20 3c  )</b> .    and <
baa0: 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74 69  b>sqlite_busy_ti
bab0: 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 69 6e 74 65  meout()</b> inte
bac0: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rface.</li>.}..c
bad0: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 32  hng {2000 June 2
bae0: 33 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77  3} {.<li>Begin w
baf0: 72 69 74 69 6e 67 20 74 68 65 20 3c 61 20 68 72  riting the <a hr
bb00: 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e 56  ef="vdbe.html">V
bb10: 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61 3e  DBE tutorial</a>
bb20: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
bb30: 32 30 30 30 20 4a 75 6e 65 20 32 31 7d 20 7b 0a  2000 June 21} {.
bb40: 3c 6c 69 3e 43 6c 65 61 6e 20 75 70 20 63 6f 6d  <li>Clean up com
bb50: 6d 65 6e 74 73 20 61 6e 64 20 76 61 72 69 61 62  ments and variab
bb60: 6c 65 20 6e 61 6d 65 73 2e 20 20 43 68 61 6e 67  le names.  Chang
bb70: 65 73 20 74 6f 20 64 6f 63 75 6d 65 6e 74 61 74  es to documentat
bb80: 69 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66 75 6e 63  ion..    No func
bb90: 74 69 6f 6e 61 6c 20 63 68 61 6e 67 65 73 20 74  tional changes t
bba0: 6f 20 74 68 65 20 63 6f 64 65 2e 3c 2f 6c 69 3e  o the code.</li>
bbb0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
bbc0: 75 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69 3e 43 6f  une 19} {.<li>Co
bbd0: 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 55 50  lumn names in UP
bbe0: 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73 20  DATE statements 
bbf0: 77 65 72 65 20 63 61 73 65 20 73 65 6e 73 69 74  were case sensit
bc00: 69 76 65 2e 0a 20 20 20 20 54 68 69 73 20 6d 69  ive..    This mi
bc10: 73 74 61 6b 65 20 68 61 73 20 6e 6f 77 20 62 65  stake has now be
bc20: 65 6e 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d  en fixed.</li>.}
bc30: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
bc40: 65 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  e 16} {.<li>Adde
bc50: 64 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61 74  d the concatenat
bc60: 65 20 73 74 72 69 6e 67 20 6f 70 65 72 61 74 6f  e string operato
bc70: 72 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63  r (||)</li>.}..c
bc80: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31  hng {2000 June 1
bc90: 32 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  2} {.<li>Added t
bca0: 68 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69  he fcnt() functi
bcb0: 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 20 69 6e  on to the SQL in
bcc0: 74 65 72 70 72 65 74 65 72 2e 20 20 54 68 65 20  terpreter.  The 
bcd0: 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e 0a  fcnt() function.
bce0: 20 20 20 20 72 65 74 75 72 6e 73 20 74 68 65 20      returns the 
bcf0: 6e 75 6d 62 65 72 20 6f 66 20 64 61 74 61 62 61  number of databa
bd00: 73 65 20 22 46 65 74 63 68 22 20 6f 70 65 72 61  se "Fetch" opera
bd10: 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65 20  tions that have 
bd20: 6f 63 63 75 72 72 65 64 2e 0a 20 20 20 20 54 68  occurred..    Th
bd30: 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 64  is function is d
bd40: 65 73 69 67 6e 65 64 20 66 6f 72 20 75 73 65 20  esigned for use 
bd50: 69 6e 20 74 65 73 74 20 73 63 72 69 70 74 73 20  in test scripts 
bd60: 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 0a 20  to verify that. 
bd70: 20 20 20 71 75 65 72 69 65 73 20 61 72 65 20 65     queries are e
bd80: 66 66 69 63 69 65 6e 74 20 61 6e 64 20 61 70 70  fficient and app
bd90: 72 6f 70 72 69 61 74 65 6c 79 20 6f 70 74 69 6d  ropriately optim
bda0: 69 7a 65 64 2e 20 20 46 63 6e 74 28 29 20 68 61  ized.  Fcnt() ha
bdb0: 73 20 6e 6f 20 6f 74 68 65 72 0a 20 20 20 20 75  s no other.    u
bdc0: 73 65 66 75 6c 20 70 75 72 70 6f 73 65 2c 20 61  seful purpose, a
bdd0: 73 20 66 61 72 20 61 73 20 49 20 6b 6e 6f 77 2e  s far as I know.
bde0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
bdf0: 61 20 62 75 6e 63 68 20 6d 6f 72 65 20 74 65 73  a bunch more tes
be00: 74 73 20 74 68 61 74 20 74 61 6b 65 20 61 64 76  ts that take adv
be10: 61 6e 74 61 67 65 20 6f 66 20 74 68 65 20 6e 65  antage of the ne
be20: 77 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f  w fcnt() functio
be30: 6e 2e 0a 20 20 20 20 54 68 65 20 6e 65 77 20 74  n..    The new t
be40: 65 73 74 73 20 64 69 64 20 6e 6f 74 20 75 6e 63  ests did not unc
be50: 6f 76 65 72 20 61 6e 79 20 6e 65 77 20 70 72 6f  over any new pro
be60: 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  blems.</li>.}..c
be70: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 38  hng {2000 June 8
be80: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 6f  } {.<li>Added lo
be90: 74 73 20 6f 66 20 6e 65 77 20 74 65 73 74 20 63  ts of new test c
bea0: 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ases</li>.<li>Fi
beb0: 78 20 61 20 66 65 77 20 62 75 67 73 20 64 69 73  x a few bugs dis
bec0: 63 6f 76 65 72 65 64 20 77 68 69 6c 65 20 61 64  covered while ad
bed0: 64 69 6e 67 20 74 65 73 74 20 63 61 73 65 73 3c  ding test cases<
bee0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69 6e 20 61  /li>.<li>Begin a
bef0: 64 64 69 6e 67 20 6c 6f 74 73 20 6f 66 20 6e 65  dding lots of ne
bf00: 77 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c  w documentation<
bf10: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
bf20: 30 30 20 4a 75 6e 65 20 36 7d 20 7b 0a 3c 6c 69  00 June 6} {.<li
bf30: 3e 41 64 64 65 64 20 63 6f 6d 70 6f 75 6e 64 20  >Added compound 
bf40: 73 65 6c 65 63 74 20 6f 70 65 72 61 74 6f 72 73  select operators
bf50: 3a 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c 20  : <B>UNION</b>, 
bf60: 3c 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 42 3e  <b>UNION ALL</B>
bf70: 2c 0a 3c 62 3e 49 4e 54 45 52 53 45 43 54 3c 2f  ,.<b>INTERSECT</
bf80: 62 3e 2c 20 61 6e 64 20 3c 62 3e 45 58 43 45 50  b>, and <b>EXCEP
bf90: 54 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  T</b></li>.<li>A
bfa0: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
bfb0: 20 75 73 69 6e 67 20 3c 62 3e 28 53 45 4c 45 43   using <b>(SELEC
bfc0: 54 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69 74 68 69  T ...)</b> withi
bfd0: 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f 6c  n expressions</l
bfe0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
bff0: 70 6f 72 74 20 66 6f 72 20 3c 62 3e 49 4e 3c 2f  port for <b>IN</
c000: 62 3e 20 61 6e 64 20 3c 62 3e 42 45 54 57 45 45  b> and <b>BETWEE
c010: 4e 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 73 3c  N</b> operators<
c020: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
c030: 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 47 52  upport for <b>GR
c040: 4f 55 50 20 42 59 3c 2f 62 3e 20 61 6e 64 20 3c  OUP BY</b> and <
c050: 62 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c 2f 6c 69  b>HAVING</b></li
c060: 3e 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61 6c 75 65  >.<li>NULL value
c070: 73 20 61 72 65 20 6e 6f 77 20 72 65 70 6f 72 74  s are now report
c080: 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61  ed to the callba
c090: 63 6b 20 61 73 20 61 20 4e 55 4c 4c 20 70 6f 69  ck as a NULL poi
c0a0: 6e 74 65 72 0a 20 20 20 20 72 61 74 68 65 72 20  nter.    rather 
c0b0: 74 68 61 6e 20 61 6e 20 65 6d 70 74 79 20 73 74  than an empty st
c0c0: 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ring.</li>.}..ch
c0d0: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 33 7d  ng {2000 June 3}
c0e0: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70   {.<li>Added sup
c0f0: 70 6f 72 74 20 66 6f 72 20 64 65 66 61 75 6c 74  port for default
c100: 20 76 61 6c 75 65 73 20 6f 6e 20 63 6f 6c 75 6d   values on colum
c110: 6e 73 20 6f 66 20 61 20 74 61 62 6c 65 2e 3c 2f  ns of a table.</
c120: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64  li>.<li>Improved
c130: 20 74 65 73 74 20 63 6f 76 65 72 61 67 65 2e 20   test coverage. 
c140: 20 46 69 78 65 64 20 61 20 66 65 77 20 6f 62 73   Fixed a few obs
c150: 63 75 72 65 20 62 75 67 73 20 66 6f 75 6e 64 20  cure bugs found 
c160: 62 79 20 74 68 65 0a 69 6d 70 72 6f 76 65 64 20  by the.improved 
c170: 74 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tests.</li>.}..c
c180: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 32  hng {2000 June 2
c190: 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64 61 74 61  } {.<li>All data
c1a0: 62 61 73 65 20 66 69 6c 65 73 20 74 6f 20 62 65  base files to be
c1b0: 20 6d 6f 64 69 66 69 65 64 20 62 79 20 61 6e 20   modified by an 
c1c0: 55 50 44 41 54 45 2c 20 49 4e 53 45 52 54 20 6f  UPDATE, INSERT o
c1d0: 72 20 44 45 4c 45 54 45 20 61 72 65 20 0a 6e 6f  r DELETE are .no
c1e0: 77 20 6c 6f 63 6b 65 64 20 62 65 66 6f 72 65 20  w locked before 
c1f0: 61 6e 79 20 63 68 61 6e 67 65 73 20 61 72 65 20  any changes are 
c200: 6d 61 64 65 20 74 6f 20 61 6e 79 20 66 69 6c 65  made to any file
c210: 73 2e 20 20 0a 54 68 69 73 20 6d 61 6b 65 73 20  s.  .This makes 
c220: 69 74 20 73 61 66 65 20 28 49 20 74 68 69 6e 6b  it safe (I think
c230: 29 20 74 6f 20 61 63 63 65 73 73 0a 74 68 65 20  ) to access.the 
c240: 73 61 6d 65 20 64 61 74 61 62 61 73 65 20 73 69  same database si
c250: 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 66 72 6f  multaneously fro
c260: 6d 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 63 65  m multiple proce
c270: 73 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  sses.</li>.<li>T
c280: 68 65 20 63 6f 64 65 20 61 70 70 65 61 72 73 20  he code appears 
c290: 73 74 61 62 6c 65 20 73 6f 20 77 65 20 61 72 65  stable so we are
c2a0: 20 6e 6f 77 20 63 61 6c 6c 69 6e 67 20 69 74 20   now calling it 
c2b0: 22 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  "beta".</li>.}..
c2c0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
c2d0: 31 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20  1} {.<li>Better 
c2e0: 73 75 70 70 6f 72 74 20 66 6f 72 20 66 69 6c 65  support for file
c2f0: 20 6c 6f 63 6b 69 6e 67 20 73 6f 20 74 68 61 74   locking so that
c300: 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 70 72 6f   two or more pro
c310: 63 65 73 73 65 73 20 0a 28 6f 72 20 74 68 72 65  cesses .(or thre
c320: 61 64 73 29 0a 63 61 6e 20 61 63 63 65 73 73 20  ads).can access 
c330: 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73  the same databas
c340: 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79  e simultaneously
c350: 2e 20 20 4d 6f 72 65 20 77 6f 72 6b 20 6e 65 65  .  More work nee
c360: 64 65 64 20 69 6e 0a 74 68 69 73 20 61 72 65 61  ded in.this area
c370: 2c 20 74 68 6f 75 67 68 2e 3c 2f 6c 69 3e 0a 7d  , though.</li>.}
c380: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79  ..chng {2000 May
c390: 20 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64   31} {.<li>Added
c3a0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 67 67   support for agg
c3b0: 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e 73  regate functions
c3c0: 20 28 45 78 3a 20 3c 62 3e 43 4f 55 4e 54 28 2a   (Ex: <b>COUNT(*
c3d0: 29 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e 28 2e 2e  )</b>, <b>MIN(..
c3e0: 2e 29 3c 2f 62 3e 29 0a 74 6f 20 74 68 65 20 53  .)</b>).to the S
c3f0: 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e  ELECT statement.
c400: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
c410: 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 42 3e 53  support for <B>S
c420: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2e  ELECT DISTINCT .
c430: 2e 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ..</B></li>.}..c
c440: 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33 30  hng {2000 May 30
c450: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
c460: 65 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e 20 6f 70  e <b>LIKE</b> op
c470: 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  erator.</li>.<li
c480: 3e 41 64 64 65 64 20 61 20 3c 62 3e 47 4c 4f 42  >Added a <b>GLOB
c490: 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 3a 20 73  </b> operator: s
c4a0: 69 6d 69 6c 61 72 20 74 6f 20 3c 42 3e 4c 49 4b  imilar to <B>LIK
c4b0: 45 3c 2f 42 3e 20 0a 62 75 74 20 69 74 20 75 73  E</B> .but it us
c4c0: 65 73 20 55 6e 69 78 20 73 68 65 6c 6c 20 67 6c  es Unix shell gl
c4d0: 6f 62 62 69 6e 67 20 77 69 6c 64 63 61 72 64 73  obbing wildcards
c4e0: 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20   instead of the 
c4f0: 27 25 27 20 0a 61 6e 64 20 27 5f 27 20 77 69 6c  '%' .and '_' wil
c500: 64 63 61 72 64 73 20 6f 66 20 53 51 4c 2e 3c 2f  dcards of SQL.</
c510: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
c520: 65 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e 20 63 6f  e <B>COPY</b> co
c530: 6d 6d 61 6e 64 20 70 61 74 74 65 72 6e 65 64 20  mmand patterned 
c540: 61 66 74 65 72 20 0a 3c 61 20 68 72 65 66 3d 22  after .<a href="
c550: 68 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74 67  http://www.postg
c560: 72 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f 73 74  resql.org/">Post
c570: 67 72 65 53 51 4c 3c 2f 61 3e 20 73 6f 20 74 68  greSQL</a> so th
c580: 61 74 20 53 51 4c 69 74 65 0a 63 61 6e 20 6e 6f  at SQLite.can no
c590: 77 20 72 65 61 64 20 74 68 65 20 6f 75 74 70 75  w read the outpu
c5a0: 74 20 6f 66 20 74 68 65 20 3c 62 3e 70 67 5f 64  t of the <b>pg_d
c5b0: 75 6d 70 3c 2f 62 3e 20 64 61 74 61 62 61 73 65  ump</b> database
c5c0: 20 64 75 6d 70 20 75 74 69 6c 69 74 79 0a 6f 66   dump utility.of
c5d0: 20 50 6f 73 74 67 72 65 53 51 4c 2e 3c 2f 6c 69   PostgreSQL.</li
c5e0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c 42  >.<li>Added a <B
c5f0: 3e 56 41 43 55 55 4d 3c 2f 42 3e 20 63 6f 6d 6d  >VACUUM</B> comm
c600: 61 6e 64 20 74 68 61 74 20 74 68 61 74 20 63 61  and that that ca
c610: 6c 6c 73 20 74 68 65 20 0a 3c 62 3e 67 64 62 6d  lls the .<b>gdbm
c620: 5f 72 65 6f 72 67 61 6e 69 7a 65 28 29 3c 2f 62  _reorganize()</b
c630: 3e 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74 68  > function on th
c640: 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 64 61 74  e underlying dat
c650: 61 62 61 73 65 0a 66 69 6c 65 73 2e 3c 2f 6c 69  abase.files.</li
c660: 3e 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e 79 2c 20  >.<li>And many, 
c670: 6d 61 6e 79 20 62 75 67 20 66 69 78 65 73 2e 2e  many bug fixes..
c680: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c690: 32 30 30 30 20 4d 61 79 20 32 39 7d 20 7b 0a 3c  2000 May 29} {.<
c6a0: 6c 69 3e 49 6e 69 74 69 61 6c 20 50 75 62 6c 69  li>Initial Publi
c6b0: 63 20 52 65 6c 65 61 73 65 20 6f 66 20 41 6c 70  c Release of Alp
c6c0: 68 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a 0a  ha code</li>.}..
c6d0: 70 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a 7d 0a 66  puts {.</DL>.}.f
c6e0: 6f 6f 74 65 72 20 7b 24 49 64 3a 7d 0a           ooter {$Id:}.