/ Hex Artifact Content
Login

Artifact dbace6eb8ecf10f5e7047d77115feb1742e56610:


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 4d 61 72 63 68  chng {2005 March
01d0: 20 31 31 20 28 33 2e 31 2e 35 29 7d 20 7b 0a 3c   11 (3.1.5)} {.<
01e0: 6c 69 3e 54 68 65 20 69 6f 63 74 6c 20 6f 6e 20  li>The ioctl on 
01f0: 4f 53 2d 58 20 74 6f 20 63 6f 6e 74 72 6f 6c 20  OS-X to control 
0200: 73 79 6e 63 69 6e 67 20 74 6f 20 64 69 73 6b 20  syncing to disk 
0210: 69 73 20 46 5f 46 55 4c 4c 46 53 59 4e 43 2c 0a  is F_FULLFSYNC,.
0220: 20 20 20 20 6e 6f 74 20 46 5f 46 55 4c 4c 53 59      not F_FULLSY
0230: 4e 43 2e 20 20 54 68 65 20 70 72 65 76 69 6f 75  NC.  The previou
0240: 73 20 72 65 6c 65 61 73 65 20 68 61 64 20 69 74  s release had it
0250: 20 77 72 6f 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   wrong.</li>.}..
0260: 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68  chng {2005 March
0270: 20 31 30 20 28 33 2e 31 2e 34 29 7d 20 7b 0a 3c   10 (3.1.4)} {.<
0280: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
0290: 61 75 74 6f 76 61 63 75 75 6d 20 74 68 61 74 20  autovacuum that 
02a0: 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61 74 61  could cause data
02b0: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
02c0: 69 66 0a 61 20 43 52 45 41 54 45 20 55 4e 49 51  if.a CREATE UNIQ
02d0: 55 45 20 49 4e 44 45 58 20 66 61 69 6c 73 20 62  UE INDEX fails b
02e0: 65 63 61 75 73 65 20 6f 66 20 61 20 63 6f 6e 73  ecause of a cons
02f0: 74 72 61 69 6e 74 20 76 69 6f 6c 61 74 69 6f 6e  traint violation
0300: 2e 0a 54 68 69 73 20 70 72 6f 62 6c 65 6d 20 6f  ..This problem o
0310: 6e 6c 79 20 6f 63 63 75 72 73 20 69 66 20 74 68  nly occurs if th
0320: 65 20 6e 65 77 20 61 75 74 6f 76 61 63 75 75 6d  e new autovacuum
0330: 20 66 65 61 74 75 72 65 20 69 6e 74 72 6f 64 75   feature introdu
0340: 63 65 64 20 69 6e 0a 76 65 72 73 69 6f 6e 20 33  ced in.version 3
0350: 2e 31 20 69 73 20 74 75 72 6e 65 64 20 6f 6e 2e  .1 is turned on.
0360: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 46 5f  </li>.<li>The F_
0370: 46 55 4c 4c 53 59 4e 43 20 69 6f 63 74 6c 20 28  FULLSYNC ioctl (
0380: 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 73  currently only s
0390: 75 70 70 6f 72 74 65 64 20 6f 6e 20 4f 53 2d 58  upported on OS-X
03a0: 29 20 69 73 20 64 69 73 61 62 6c 65 64 0a 69 66  ) is disabled.if
03b0: 20 74 68 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73   the synchronous
03c0: 20 70 72 61 67 6d 61 20 69 73 20 73 65 74 20 74   pragma is set t
03d0: 6f 20 73 6f 6d 65 74 68 69 6e 67 20 6f 74 68 65  o something othe
03e0: 72 20 74 68 61 6e 20 22 66 75 6c 6c 22 2e 3c 2f  r than "full".</
03f0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 61 64 64 69  li>.<li>Add addi
0400: 74 69 6f 6e 61 6c 20 66 6f 72 77 61 72 64 20 63  tional forward c
0410: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 74 6f 20  ompatibility to 
0420: 74 68 65 20 66 75 74 75 72 65 20 76 65 72 73 69  the future versi
0430: 6f 6e 20 33 2e 32 20 64 61 74 61 62 61 73 65 20  on 3.2 database 
0440: 0a 66 69 6c 65 20 66 6f 72 6d 61 74 2e 3c 2f 6c  .file format.</l
0450: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
0460: 20 69 6e 20 57 48 45 52 45 20 63 6c 61 75 73 65   in WHERE clause
0470: 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 72  s of the form (r
0480: 6f 77 69 64 3c 27 32 27 29 3c 2f 6c 69 3e 0a 3c  owid<'2')</li>.<
0490: 6c 69 3e 4e 65 77 20 53 51 4c 49 54 45 5f 4f 4d  li>New SQLITE_OM
04a0: 49 54 5f 2e 2e 2e 20 63 6f 6d 70 69 6c 65 2d 74  IT_... compile-t
04b0: 69 6d 65 20 6f 70 74 69 6f 6e 73 20 61 64 64 65  ime options adde
04c0: 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74  d</li>.<li>Updat
04d0: 65 73 20 74 6f 20 74 68 65 20 6d 61 6e 20 70 61  es to the man pa
04e0: 67 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  ge</li>.<li>Remo
04f0: 76 65 20 74 68 65 20 75 73 65 20 6f 66 20 73 74  ve the use of st
0500: 72 63 61 73 65 63 6d 70 28 29 20 66 72 6f 6d 20  rcasecmp() from 
0510: 74 68 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c  the shell</li>.<
0520: 6c 69 3e 57 69 6e 64 6f 77 73 20 44 4c 4c 20 65  li>Windows DLL e
0530: 78 70 6f 72 74 73 20 73 79 6d 62 6f 6c 73 20 54  xports symbols T
0540: 63 6c 73 71 6c 69 74 65 5f 49 6e 69 74 20 61 6e  clsqlite_Init an
0550: 64 20 53 71 6c 69 74 65 5f 49 6e 69 74 3c 2f 6c  d Sqlite_Init</l
0560: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
0570: 20 46 65 62 72 75 61 72 79 20 31 39 20 28 33 2e   February 19 (3.
0580: 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  1.3)} {.<li>Fix 
0590: 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 56  a problem with V
05a0: 41 43 55 55 4d 20 6f 6e 20 64 61 74 61 62 61 73  ACUUM on databas
05b0: 65 73 20 66 72 6f 6d 20 77 68 69 63 68 20 74 61  es from which ta
05c0: 62 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 0a  bles containing.
05d0: 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 20 68 61  AUTOINCREMENT ha
05e0: 76 65 20 62 65 65 6e 20 64 72 6f 70 70 65 64 2e  ve been dropped.
05f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 66 6f  </li>.<li>Add fo
0600: 72 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c  rward compatibil
0610: 69 74 79 20 74 6f 20 74 68 65 20 66 75 74 75 72  ity to the futur
0620: 65 20 76 65 72 73 69 6f 6e 20 33 2e 32 20 64 61  e version 3.2 da
0630: 74 61 62 61 73 65 20 66 69 6c 65 0a 66 6f 72 6d  tabase file.form
0640: 61 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  at.</li>.<li>Doc
0650: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
0660: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
0670: 7b 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31  {2005 February 1
0680: 35 20 28 33 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69  5 (3.1.2)} {.<li
0690: 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20  >Fix a bug that 
06a0: 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74 61  can lead to data
06b0: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
06c0: 69 66 20 74 68 65 72 65 20 61 72 65 20 74 77 6f  if there are two
06d0: 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e  .open connection
06e0: 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20 64 61  s to the same da
06f0: 74 61 62 61 73 65 20 61 6e 64 20 6f 6e 65 20 63  tabase and one c
0700: 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f 65 73 20 61  onnection does a
0710: 20 56 41 43 55 55 4d 0a 61 6e 64 20 74 68 65 20   VACUUM.and the 
0720: 73 65 63 6f 6e 64 20 6d 61 6b 65 73 20 73 6f 6d  second makes som
0730: 65 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65 20  e change to the 
0740: 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c  database.</li>.<
0750: 6c 69 3e 41 6c 6c 6f 77 20 22 3f 22 20 70 61 72  li>Allow "?" par
0760: 61 6d 65 74 65 72 73 20 69 6e 20 74 68 65 20 4c  ameters in the L
0770: 49 4d 49 54 20 63 6c 61 75 73 65 2e 3c 2f 6c 69  IMIT clause.</li
0780: 3e 0a 3c 6c 69 3e 46 69 78 20 56 41 43 55 55 4d  >.<li>Fix VACUUM
0790: 20 73 6f 20 74 68 61 74 20 69 74 20 77 6f 72 6b   so that it work
07a0: 73 20 77 69 74 68 20 41 55 54 4f 49 4e 43 52 45  s with AUTOINCRE
07b0: 4d 45 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  MENT.</li>.<li>F
07c0: 69 78 20 61 20 72 61 63 65 20 63 6f 6e 64 69 74  ix a race condit
07d0: 69 6f 6e 20 69 6e 20 41 55 54 4f 56 41 43 55 55  ion in AUTOVACUU
07e0: 4d 20 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20  M that can lead 
07f0: 74 6f 20 63 6f 72 72 75 70 74 20 64 61 74 61 62  to corrupt datab
0800: 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ases</li>.<li>Ad
0810: 64 20 61 20 6e 75 6d 65 72 69 63 20 76 65 72 73  d a numeric vers
0820: 69 6f 6e 20 6e 75 6d 62 65 72 20 74 6f 20 74 68  ion number to th
0830: 65 20 73 71 6c 69 74 65 33 2e 68 20 69 6e 63 6c  e sqlite3.h incl
0840: 75 64 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c  ude file.</li>.<
0850: 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62  li>Other minor b
0860: 75 67 20 66 69 78 65 73 20 61 6e 64 20 70 65 72  ug fixes and per
0870: 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65  formance enhance
0880: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ments.</li>.}..c
0890: 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75 61  hng {2005 Februa
08a0: 72 79 20 31 35 20 28 32 2e 38 2e 31 36 29 7d 20  ry 15 (2.8.16)} 
08b0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
08c0: 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f  that can lead to
08d0: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
08e0: 74 69 6f 6e 20 69 66 20 74 68 65 72 65 20 61 72  tion if there ar
08f0: 65 20 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65  e two.open conne
0900: 63 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 61  ctions to the sa
0910: 6d 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20  me database and 
0920: 6f 6e 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 64  one connection d
0930: 6f 65 73 20 61 20 56 41 43 55 55 4d 0a 61 6e 64  oes a VACUUM.and
0940: 20 74 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b 65   the second make
0950: 73 20 73 6f 6d 65 20 63 68 61 6e 67 65 20 74 6f  s some change to
0960: 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f   the database.</
0970: 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c  li>.<li>Correctl
0980: 79 20 68 61 6e 64 6c 65 20 71 75 6f 74 65 64 20  y handle quoted 
0990: 6e 61 6d 65 73 20 69 6e 20 43 52 45 41 54 45 20  names in CREATE 
09a0: 49 4e 44 45 58 20 73 74 61 74 65 6d 65 6e 74 73  INDEX statements
09b0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
09c0: 20 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63 74   naming conflict
09d0: 20 62 65 74 77 65 65 6e 20 73 71 6c 69 74 65 2e   between sqlite.
09e0: 68 20 61 6e 64 20 73 71 6c 69 74 65 33 2e 68 2e  h and sqlite3.h.
09f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 76 6f 69 64 20  </li>.<li>Avoid 
0a00: 65 78 63 65 73 73 20 68 65 61 70 20 75 73 61 67  excess heap usag
0a10: 65 20 77 68 65 6e 20 63 6f 70 79 69 6e 67 20 65  e when copying e
0a20: 78 70 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e  xpressions.</li>
0a30: 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72  .<li>Other minor
0a40: 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e   bug fixes.</li>
0a50: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46  .}..chng {2005 F
0a60: 65 62 72 75 61 72 79 20 31 20 28 33 2e 31 2e 31  ebruary 1 (3.1.1
0a70: 20 42 45 54 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75   BETA)} {.<li>Au
0a80: 74 6f 6d 61 74 69 63 20 63 61 63 68 69 6e 67 20  tomatic caching 
0a90: 6f 66 20 70 72 65 70 61 72 65 64 20 73 74 61 74  of prepared stat
0aa0: 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 54 43  ements in the TC
0ab0: 4c 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e  L interface</li>
0ac0: 0a 3c 6c 69 3e 41 54 54 41 43 48 20 61 6e 64 20  .<li>ATTACH and 
0ad0: 44 45 54 41 43 48 20 61 73 20 77 65 6c 6c 20 61  DETACH as well a
0ae0: 73 20 73 6f 6d 65 20 6f 74 68 65 72 20 6f 70 65  s some other ope
0af0: 72 61 74 69 6f 6e 73 20 63 61 75 73 65 20 65 78  rations cause ex
0b00: 69 73 74 69 6e 67 0a 20 20 20 20 70 72 65 70 61  isting.    prepa
0b10: 72 65 64 20 73 74 61 74 65 6d 65 6e 74 73 20 74  red statements t
0b20: 6f 20 65 78 70 69 72 65 2e 3c 2f 6c 69 3e 0a 3c  o expire.</li>.<
0b30: 6c 69 3e 4e 75 6d 65 72 69 6f 75 73 20 6d 69 6e  li>Numerious min
0b40: 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69  or bug fixes</li
0b50: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
0b60: 4a 61 6e 75 61 72 79 20 32 31 20 28 33 2e 31 2e  January 21 (3.1.
0b70: 30 20 41 4c 50 48 41 29 7d 20 7b 0a 3c 6c 69 3e  0 ALPHA)} {.<li>
0b80: 41 75 74 6f 76 61 63 75 75 6d 20 73 75 70 70 6f  Autovacuum suppo
0b90: 72 74 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c  rt added</li>.<l
0ba0: 69 3e 43 55 52 52 45 4e 54 5f 54 49 4d 45 2c 20  i>CURRENT_TIME, 
0bb0: 43 55 52 52 45 4e 54 5f 44 41 54 45 2c 20 61 6e  CURRENT_DATE, an
0bc0: 64 20 43 55 52 52 45 4e 54 5f 54 49 4d 45 53 54  d CURRENT_TIMEST
0bd0: 41 4d 50 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c  AMP added</li>.<
0be0: 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 74  li>Support for t
0bf0: 68 65 20 45 58 49 53 54 53 20 63 6c 61 75 73 65  he EXISTS clause
0c00: 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69   added.</li>.<li
0c10: 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 63 6f 72  >Support for cor
0c20: 72 65 6c 61 74 65 64 20 73 75 62 71 75 65 72 69  related subqueri
0c30: 65 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c  es added.</li>.<
0c40: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 45 53 43  li>Added the ESC
0c50: 41 50 45 20 63 6c 61 75 73 65 20 6f 6e 20 74 68  APE clause on th
0c60: 65 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 2e  e LIKE operator.
0c70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72  </li>.<li>Suppor
0c80: 74 20 66 6f 72 20 41 4c 54 45 52 20 54 41 42 4c  t for ALTER TABL
0c90: 45 20 2e 2e 2e 20 52 45 4e 41 4d 45 20 54 41 42  E ... RENAME TAB
0ca0: 4c 45 20 2e 2e 2e 20 61 64 64 65 64 3c 2f 6c 69  LE ... added</li
0cb0: 3e 0a 3c 6c 69 3e 41 55 54 4f 49 4e 43 52 45 4d  >.<li>AUTOINCREM
0cc0: 45 4e 54 20 6b 65 79 77 6f 72 64 20 73 75 70 70  ENT keyword supp
0cd0: 6f 72 74 65 64 20 6f 6e 20 49 4e 54 45 47 45 52  orted on INTEGER
0ce0: 20 50 52 49 4d 41 52 59 20 4b 45 59 3c 2f 6c 69   PRIMARY KEY</li
0cf0: 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 53 51 4c 49 54  >.<li>Many SQLIT
0d00: 45 5f 4f 4d 49 54 5f 20 6d 61 63 72 6f 73 20 69  E_OMIT_ macros i
0d10: 6e 73 65 72 74 73 20 74 6f 20 6f 6d 69 74 20 66  nserts to omit f
0d20: 65 61 74 75 72 65 73 20 61 74 20 63 6f 6d 70 69  eatures at compi
0d30: 6c 65 2d 74 69 6d 65 0a 20 20 20 20 61 6e 64 20  le-time.    and 
0d40: 72 65 64 75 63 65 20 74 68 65 20 6c 69 62 72 61  reduce the libra
0d50: 72 79 20 66 6f 6f 74 70 72 69 6e 74 2e 3c 2f 6c  ry footprint.</l
0d60: 69 3e 0a 3c 6c 69 3e 54 68 65 20 52 45 49 4e 44  i>.<li>The REIND
0d70: 45 58 20 63 6f 6d 6d 61 6e 64 20 77 61 73 20 61  EX command was a
0d80: 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  dded.</li>.<li>T
0d90: 68 65 20 65 6e 67 69 6e 65 20 6e 6f 20 6c 6f 6e  he engine no lon
0da0: 67 65 72 20 63 6f 6e 73 75 6c 74 73 20 74 68 65  ger consults the
0db0: 20 6d 61 69 6e 20 74 61 62 6c 65 20 69 66 20 69   main table if i
0dc0: 74 20 63 61 6e 20 67 65 74 0a 20 20 20 20 61 6c  t can get.    al
0dd0: 6c 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f  l the informatio
0de0: 6e 20 69 74 20 6e 65 65 64 73 20 66 72 6f 6d 20  n it needs from 
0df0: 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c  an index.</li>.<
0e00: 6c 69 3e 4d 61 6e 79 20 6e 75 69 73 61 6e 63 65  li>Many nuisance
0e10: 20 62 75 67 73 20 66 69 78 65 64 2e 3c 2f 6c 69   bugs fixed.</li
0e20: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
0e30: 4f 63 74 6f 62 65 72 20 31 31 20 28 33 2e 30 2e  October 11 (3.0.
0e40: 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 73 75  8)} {.<li>Add su
0e50: 70 70 6f 72 74 20 66 6f 72 20 44 45 46 45 52 52  pport for DEFERR
0e60: 45 44 2c 20 49 4d 4d 45 44 49 41 54 45 2c 20 61  ED, IMMEDIATE, a
0e70: 6e 64 20 45 58 43 4c 55 53 49 56 45 20 74 72 61  nd EXCLUSIVE tra
0e80: 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  nsactions.</li>.
0e90: 3c 6c 69 3e 41 6c 6c 6f 77 20 6e 65 77 20 75 73  <li>Allow new us
0ea0: 65 72 2d 64 65 66 69 6e 65 64 20 66 75 6e 63 74  er-defined funct
0eb0: 69 6f 6e 73 20 74 6f 20 62 65 20 63 72 65 61 74  ions to be creat
0ec0: 65 64 20 77 68 65 6e 20 74 68 65 72 65 20 61 72  ed when there ar
0ed0: 65 0a 61 6c 72 65 61 64 79 20 6f 6e 65 20 6f 72  e.already one or
0ee0: 20 6d 6f 72 65 20 70 72 65 63 6f 6d 70 69 6c 65   more precompile
0ef0: 64 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73  d SQL statements
0f00: 2e 3c 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 70 6f  .<li>.<li>Fix po
0f10: 72 74 61 62 69 6c 69 74 79 20 70 72 6f 62 6c 65  rtability proble
0f20: 6d 73 20 66 6f 72 20 4d 69 6e 67 77 2f 4d 53 59  ms for Mingw/MSY
0f30: 53 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  S.</li>.<li>Fix 
0f40: 61 20 62 79 74 65 20 61 6c 69 67 6e 6d 65 6e 74  a byte alignment
0f50: 20 70 72 6f 62 6c 65 6d 20 6f 6e 20 36 34 2d 62   problem on 64-b
0f60: 69 74 20 53 70 61 72 63 20 6d 61 63 68 69 6e 65  it Sparc machine
0f70: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
0f80: 74 68 65 20 22 2e 69 6d 70 6f 72 74 22 20 63 6f  the ".import" co
0f90: 6d 6d 61 6e 64 20 6f 66 20 74 68 65 20 73 68 65  mmand of the she
0fa0: 6c 6c 20 73 6f 20 74 68 61 74 20 69 74 20 69 67  ll so that it ig
0fb0: 6e 6f 72 65 73 20 5c 72 0a 63 68 61 72 61 63 74  nores \r.charact
0fc0: 65 72 73 20 61 74 20 74 68 65 20 65 6e 64 20 6f  ers at the end o
0fd0: 66 20 6c 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  f lines.</li>.<l
0fe0: 69 3e 54 68 65 20 22 63 73 76 22 20 6d 6f 64 65  i>The "csv" mode
0ff0: 20 6f 70 74 69 6f 6e 20 69 6e 20 74 68 65 20 73   option in the s
1000: 68 65 6c 6c 20 70 75 74 73 20 73 74 72 69 6e 67  hell puts string
1010: 73 20 69 6e 73 69 64 65 20 64 6f 75 62 6c 65 2d  s inside double-
1020: 71 75 6f 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  quotes.</li>.<li
1030: 3e 46 69 78 20 74 79 70 6f 73 20 69 6e 20 64 6f  >Fix typos in do
1040: 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69  cumentation.</li
1050: 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 61 72  >.<li>Convert ar
1060: 72 61 79 20 63 6f 6e 73 74 61 6e 74 73 20 69 6e  ray constants in
1070: 20 74 68 65 20 63 6f 64 65 20 74 6f 20 68 61 76   the code to hav
1080: 65 20 74 79 70 65 20 22 63 6f 6e 73 74 22 2e 3c  e type "const".<
1090: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75  /li>.<li>Numerou
10a0: 73 20 63 6f 64 65 20 6f 70 74 69 6d 69 7a 61 74  s code optimizat
10b0: 69 6f 6e 73 2c 20 73 70 65 63 69 61 6c 6c 79 20  ions, specially 
10c0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 64 65  optimizations de
10d0: 73 69 67 6e 65 64 20 74 6f 0a 6d 61 6b 65 20 74  signed to.make t
10e0: 68 65 20 63 6f 64 65 20 66 6f 6f 74 70 72 69 6e  he code footprin
10f0: 74 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a  t smaller.</li>.
1100: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 53 65  }..chng {2004 Se
1110: 70 74 65 6d 62 65 72 20 31 38 20 28 33 2e 30 2e  ptember 18 (3.0.
1120: 37 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 42 54  7)} {.<li>The BT
1130: 72 65 65 20 6d 6f 64 75 6c 65 20 61 6c 6c 6f 63  ree module alloc
1140: 61 74 65 73 20 6c 61 72 67 65 20 62 75 66 66 65  ates large buffe
1150: 72 73 20 75 73 69 6e 67 20 6d 61 6c 6c 6f 63 28  rs using malloc(
1160: 29 20 69 6e 73 74 65 61 64 20 6f 66 0a 20 20 20  ) instead of.   
1170: 20 6f 66 66 20 6f 66 20 74 68 65 20 73 74 61 63   off of the stac
1180: 6b 2c 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70  k, in order to p
1190: 6c 61 79 20 62 65 74 74 65 72 20 6f 6e 20 6d 61  lay better on ma
11a0: 63 68 69 6e 65 73 20 77 69 74 68 20 6c 69 6d 69  chines with limi
11b0: 74 65 64 0a 20 20 20 20 73 74 61 63 6b 20 73 70  ted.    stack sp
11c0: 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ace.</li>.<li>Fi
11d0: 78 65 64 20 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c  xed naming confl
11e0: 69 63 74 73 20 73 6f 20 74 68 61 74 20 76 65 72  icts so that ver
11f0: 73 69 6f 6e 73 20 32 2e 38 20 61 6e 64 20 33 2e  sions 2.8 and 3.
1200: 30 20 63 61 6e 20 62 65 0a 20 20 20 20 6c 69 6e  0 can be.    lin
1210: 6b 65 64 20 61 6e 64 20 75 73 65 64 20 74 6f 67  ked and used tog
1220: 65 74 68 65 72 20 69 6e 20 74 68 65 20 73 61 6d  ether in the sam
1230: 65 20 41 4e 53 49 2d 43 20 73 6f 75 72 63 65 20  e ANSI-C source 
1240: 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  file.</li>.<li>N
1250: 65 77 20 69 6e 74 65 72 66 61 63 65 3a 20 73 71  ew interface: sq
1260: 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d  lite3_bind_param
1270: 65 74 65 72 5f 69 6e 64 65 78 28 29 3c 2f 6c 69  eter_index()</li
1280: 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72  >.<li>Add suppor
1290: 74 20 66 6f 72 20 77 69 6c 64 63 61 72 64 20 70  t for wildcard p
12a0: 61 72 61 6d 65 74 65 72 73 20 6f 66 20 74 68 65  arameters of the
12b0: 20 66 6f 72 6d 3a 20 22 3f 6e 6e 6e 22 3c 2f 6c   form: "?nnn"</l
12c0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 70 72 6f 62 6c  i>.<li>Fix probl
12d0: 65 6d 73 20 66 6f 75 6e 64 20 6f 6e 20 36 34 2d  ems found on 64-
12e0: 62 69 74 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69  bit systems.</li
12f0: 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 65 6e  >.<li>Removed en
1300: 63 6f 64 65 2e 63 20 66 69 6c 65 20 28 63 6f 6e  code.c file (con
1310: 74 61 69 6e 69 6e 67 20 75 6e 75 73 65 64 20 72  taining unused r
1320: 6f 75 74 69 6e 65 73 29 20 66 72 6f 6d 20 74 68  outines) from th
1330: 65 20 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 33  e .    version 3
1340: 2e 30 20 73 6f 75 72 63 65 20 74 72 65 65 2e 3c  .0 source tree.<
1350: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73 71 6c  /li>.<li>The sql
1360: 69 74 65 33 5f 74 72 61 63 65 28 29 20 63 61 6c  ite3_trace() cal
1370: 6c 62 61 63 6b 73 20 6f 63 63 75 72 20 62 65 66  lbacks occur bef
1380: 6f 72 65 20 65 61 63 68 20 73 74 61 74 65 6d 65  ore each stateme
1390: 6e 74 0a 20 20 20 20 69 73 20 65 78 65 63 75 74  nt.    is execut
13a0: 65 64 2c 20 6e 6f 74 20 77 68 65 6e 20 74 68 65  ed, not when the
13b0: 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 63 6f   statement is co
13c0: 6d 70 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  mpiled.</li>.<li
13d0: 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65  >Makefile update
13e0: 73 20 61 6e 64 20 6d 69 73 63 65 6c 6c 61 6e 65  s and miscellane
13f0: 6f 75 73 20 62 75 67 20 66 69 78 65 73 2e 3c 2f  ous bug fixes.</
1400: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
1410: 34 20 53 65 70 74 65 6d 62 65 72 20 30 32 20 28  4 September 02 (
1420: 33 2e 30 2e 36 20 62 65 74 61 29 7d 20 7b 0a 3c  3.0.6 beta)} {.<
1430: 6c 69 3e 42 65 74 74 65 72 20 64 65 74 65 63 74  li>Better detect
1440: 69 6f 6e 20 61 6e 64 20 68 61 6e 64 6c 69 6e 67  ion and handling
1450: 20 6f 66 20 63 6f 72 72 75 70 74 20 64 61 74 61   of corrupt data
1460: 62 61 73 65 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e  base files.</li>
1470: 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33  .<li>The sqlite3
1480: 5f 73 74 65 70 28 29 20 69 6e 74 65 72 66 61 63  _step() interfac
1490: 65 20 72 65 74 75 72 6e 73 20 53 51 4c 49 54 45  e returns SQLITE
14a0: 5f 42 55 53 59 20 69 66 20 69 74 20 69 73 20 75  _BUSY if it is u
14b0: 6e 61 62 6c 65 0a 20 20 20 20 74 6f 20 63 6f 6d  nable.    to com
14c0: 6d 69 74 20 61 20 63 68 61 6e 67 65 20 62 65 63  mit a change bec
14d0: 61 75 73 65 20 6f 66 20 61 20 6c 6f 63 6b 3c 2f  ause of a lock</
14e0: 6c 69 3e 0a 3c 6c 69 3e 43 6f 6d 62 69 6e 65 20  li>.<li>Combine 
14f0: 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69  the implementati
1500: 6f 6e 73 20 6f 66 20 4c 49 4b 45 20 61 6e 64 20  ons of LIKE and 
1510: 47 4c 4f 42 20 69 6e 74 6f 20 61 20 73 69 6e 67  GLOB into a sing
1520: 6c 65 0a 20 20 20 20 70 61 74 74 65 72 6e 2d 6d  le.    pattern-m
1530: 61 74 63 68 69 6e 67 20 73 75 62 72 6f 75 74 69  atching subrouti
1540: 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 73  ne.</li>.<li>Mis
1550: 63 65 6c 6c 61 6e 65 6f 75 73 20 63 6f 64 65 20  cellaneous code 
1560: 73 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f  size optimizatio
1570: 6e 73 20 61 6e 64 20 62 75 67 20 66 69 78 65 73  ns and bug fixes
1580: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1590: 30 30 34 20 41 75 67 75 73 74 20 32 39 20 28 33  004 August 29 (3
15a0: 2e 30 2e 35 20 62 65 74 61 29 7d 20 7b 0a 3c 6c  .0.5 beta)} {.<l
15b0: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 22 3a  i>Support for ":
15c0: 41 41 41 22 20 73 74 79 6c 65 20 62 69 6e 64 20  AAA" style bind 
15d0: 70 61 72 61 6d 65 74 65 72 20 6e 61 6d 65 73 2e  parameter names.
15e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
15f0: 74 68 65 20 6e 65 77 20 73 71 6c 69 74 65 33 5f  the new sqlite3_
1600: 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e  bind_parameter_n
1610: 61 6d 65 28 29 20 69 6e 74 65 72 66 61 63 65 2e  ame() interface.
1620: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72  </li>.<li>Suppor
1630: 74 20 66 6f 72 20 54 43 4c 20 76 61 72 69 61 62  t for TCL variab
1640: 6c 65 20 6e 61 6d 65 73 20 65 6d 62 65 64 64 65  le names embedde
1650: 64 20 69 6e 20 53 51 4c 20 73 74 61 74 65 6d 65  d in SQL stateme
1660: 6e 74 73 20 69 6e 20 74 68 65 0a 20 20 20 20 54  nts in the.    T
1670: 43 4c 20 62 69 6e 64 69 6e 67 73 2e 3c 2f 6c 69  CL bindings.</li
1680: 3e 0a 3c 6c 69 3e 54 68 65 20 54 43 4c 20 62 69  >.<li>The TCL bi
1690: 6e 64 69 6e 67 73 20 74 72 61 6e 73 66 65 72 20  ndings transfer 
16a0: 64 61 74 61 20 77 69 74 68 6f 75 74 20 6e 65 63  data without nec
16b0: 65 73 73 61 72 69 6c 79 20 64 6f 69 6e 67 20 61  essarily doing a
16c0: 20 63 6f 6e 76 65 72 73 69 6f 6e 0a 20 20 20 20   conversion.    
16d0: 74 6f 20 61 20 73 74 72 69 6e 67 2e 3c 2f 6c 69  to a string.</li
16e0: 3e 0a 3c 6c 69 3e 54 68 65 20 64 61 74 61 62 61  >.<li>The databa
16f0: 73 65 20 66 6f 72 20 54 45 4d 50 20 74 61 62 6c  se for TEMP tabl
1700: 65 73 20 69 73 20 6e 6f 74 20 63 72 65 61 74 65  es is not create
1710: 64 20 75 6e 74 69 6c 20 69 74 20 69 73 20 6e 65  d until it is ne
1720: 65 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  eded.</li>.<li>A
1730: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  dd the ability t
1740: 6f 20 73 70 65 63 69 66 79 20 61 6e 20 61 6c 74  o specify an alt
1750: 65 72 6e 61 74 69 76 65 20 74 65 6d 70 6f 72 61  ernative tempora
1760: 72 79 20 66 69 6c 65 20 64 69 72 65 63 74 6f 72  ry file director
1770: 79 0a 20 20 20 20 75 73 69 6e 67 20 74 68 65 20  y.    using the 
1780: 22 73 71 6c 69 74 65 5f 74 65 6d 70 5f 64 69 72  "sqlite_temp_dir
1790: 65 63 74 6f 72 79 22 20 67 6c 6f 62 61 6c 20 76  ectory" global v
17a0: 61 72 69 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  ariable.</li>.<l
17b0: 69 3e 41 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65  i>A compile-time
17c0: 20 6f 70 74 69 6f 6e 20 28 53 51 4c 49 54 45 5f   option (SQLITE_
17d0: 42 55 53 59 5f 52 45 53 45 52 56 45 44 5f 4c 4f  BUSY_RESERVED_LO
17e0: 43 4b 29 20 63 61 75 73 65 73 20 74 68 65 20 62  CK) causes the b
17f0: 75 73 79 0a 20 20 20 20 68 61 6e 64 6c 65 72 20  usy.    handler 
1800: 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65  to be called whe
1810: 6e 20 74 68 65 72 65 20 69 73 20 63 6f 6e 74 65  n there is conte
1820: 6e 74 69 6f 6e 20 66 6f 72 20 61 20 52 45 53 45  ntion for a RESE
1830: 52 56 45 44 20 6c 6f 63 6b 2e 3c 2f 6c 69 3e 0a  RVED lock.</li>.
1840: 3c 6c 69 3e 56 61 72 69 6f 75 73 20 62 75 67 20  <li>Various bug 
1850: 66 69 78 65 73 20 61 6e 64 20 6f 70 74 69 6d 69  fixes and optimi
1860: 7a 61 74 69 6f 6e 73 3c 2f 6c 69 3e 0a 7d 0a 0a  zations</li>.}..
1870: 63 68 6e 67 20 7b 32 30 30 34 20 41 75 67 75 73  chng {2004 Augus
1880: 74 20 38 20 28 33 2e 30 2e 34 20 62 65 74 61 29  t 8 (3.0.4 beta)
1890: 7d 20 7b 0a 3c 6c 69 3e 43 52 45 41 54 45 20 54  } {.<li>CREATE T
18a0: 41 42 4c 45 20 61 6e 64 20 44 52 4f 50 20 54 41  ABLE and DROP TA
18b0: 42 4c 45 20 6e 6f 77 20 77 6f 72 6b 20 63 6f 72  BLE now work cor
18c0: 72 65 63 74 6c 79 20 61 73 20 70 72 65 70 61 72  rectly as prepar
18d0: 65 64 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f  ed statements.</
18e0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
18f0: 67 20 69 6e 20 56 41 43 55 55 4d 20 61 6e 64 20  g in VACUUM and 
1900: 55 4e 49 51 55 45 20 69 6e 64 69 63 65 73 2e 3c  UNIQUE indices.<
1910: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65  /li>.<li>Add the
1920: 20 22 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d 61   ".import" comma
1930: 6e 64 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e  nd to the comman
1940: 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 2e 3c 2f 6c  d-line shell.</l
1950: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
1960: 20 74 68 61 74 20 63 6f 75 6c 64 20 63 61 75 73   that could caus
1970: 65 20 69 6e 64 65 78 20 63 6f 72 72 75 70 74 69  e index corrupti
1980: 6f 6e 20 77 68 65 6e 20 61 6e 20 61 74 74 65 6d  on when an attem
1990: 70 74 20 74 6f 0a 20 20 20 20 64 65 6c 65 74 65  pt to.    delete
19a0: 20 72 6f 77 73 20 6f 66 20 61 20 74 61 62 6c 65   rows of a table
19b0: 20 69 73 20 62 6c 6f 63 6b 65 64 20 62 79 20 61   is blocked by a
19c0: 20 70 65 6e 64 69 6e 67 20 71 75 65 72 79 2e 3c   pending query.<
19d0: 2f 6c 69 3e 0a 3c 6c 69 3e 4c 69 62 72 61 72 79  /li>.<li>Library
19e0: 20 73 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69   size optimizati
19f0: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  ons.</li>.<li>Ot
1a00: 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69  her minor bug fi
1a10: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
1a20: 67 20 7b 32 30 30 34 20 4a 75 6c 79 20 32 32 20  g {2004 July 22 
1a30: 28 32 2e 38 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e  (2.8.15)} {.<li>
1a40: 54 68 69 73 20 69 73 20 61 20 6d 61 69 6e 74 65  This is a mainte
1a50: 6e 61 6e 63 65 20 72 65 6c 65 61 73 65 20 6f 6e  nance release on
1a60: 6c 79 2e 20 20 56 61 72 69 6f 75 73 20 6d 69 6e  ly.  Various min
1a70: 6f 72 20 62 75 67 73 20 68 61 76 65 20 62 65 65  or bugs have bee
1a80: 6e 0a 66 69 78 65 64 20 61 6e 64 20 73 6f 6d 65  n.fixed and some
1a90: 20 70 6f 72 74 61 62 69 6c 69 74 79 20 65 6e 68   portability enh
1aa0: 61 6e 63 65 6d 65 6e 74 73 20 61 72 65 20 61 64  ancements are ad
1ab0: 64 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ded.</li>.}..chn
1ac0: 67 20 7b 32 30 30 34 20 4a 75 6c 79 20 32 32 20  g {2004 July 22 
1ad0: 28 33 2e 30 2e 33 20 62 65 74 61 29 7d 20 7b 0a  (3.0.3 beta)} {.
1ae0: 3c 6c 69 3e 54 68 65 20 73 65 63 6f 6e 64 20 62  <li>The second b
1af0: 65 74 61 20 72 65 6c 65 61 73 65 20 66 6f 72 20  eta release for 
1b00: 53 51 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e  SQLite 3.0.</li>
1b10: 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72 74  .<li>Add support
1b20: 20 66 6f 72 20 22 50 52 41 47 4d 41 20 70 61 67   for "PRAGMA pag
1b30: 65 5f 73 69 7a 65 22 20 74 6f 20 61 64 6a 75 73  e_size" to adjus
1b40: 74 20 74 68 65 20 70 61 67 65 20 73 69 7a 65 20  t the page size 
1b50: 6f 66 0a 74 68 65 20 64 61 74 61 62 61 73 65 2e  of.the database.
1b60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75  </li>.<li>Variou
1b70: 73 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20  s bug fixes and 
1b80: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70  documentation up
1b90: 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  dates.</li>.}..c
1ba0: 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 33  hng {2004 June 3
1bb0: 30 20 28 33 2e 30 2e 32 20 62 65 74 61 29 7d 20  0 (3.0.2 beta)} 
1bc0: 7b 0a 3c 6c 69 3e 54 68 65 20 66 69 72 73 74 20  {.<li>The first 
1bd0: 62 65 74 61 20 72 65 6c 65 61 73 65 20 66 6f 72  beta release for
1be0: 20 53 51 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c 69   SQLite 3.0.</li
1bf0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
1c00: 4a 75 6e 65 20 32 32 20 28 33 2e 30 2e 31 20 61  June 22 (3.0.1 a
1c10: 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f  lpha)} {.<li><fo
1c20: 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c  nt color="red"><
1c30: 62 3e 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61  b>.    *** Alpha
1c40: 20 52 65 6c 65 61 73 65 20 2d 20 52 65 73 65 61   Release - Resea
1c50: 72 63 68 20 41 6e 64 20 54 65 73 74 69 6e 67 20  rch And Testing 
1c60: 55 73 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e  Use Only ***</b>
1c70: 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 4c 6f 74 73  </font>.<li>Lots
1c80: 20 6f 66 20 62 75 67 20 66 69 78 65 73 2e 3c 2f   of bug fixes.</
1c90: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
1ca0: 34 20 4a 75 6e 65 20 31 38 20 28 33 2e 30 2e 30  4 June 18 (3.0.0
1cb0: 20 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c   alpha)} {.<li><
1cc0: 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22  font color="red"
1cd0: 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a 20 41 6c 70  ><b>.    *** Alp
1ce0: 68 61 20 52 65 6c 65 61 73 65 20 2d 20 52 65 73  ha Release - Res
1cf0: 65 61 72 63 68 20 41 6e 64 20 54 65 73 74 69 6e  earch And Testin
1d00: 67 20 55 73 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f  g Use Only ***</
1d10: 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 53 75  b></font>.<li>Su
1d20: 70 70 6f 72 74 20 66 6f 72 20 69 6e 74 65 72 6e  pport for intern
1d30: 61 74 69 6f 6e 61 6c 69 7a 61 74 69 6f 6e 20 69  ationalization i
1d40: 6e 63 6c 75 64 69 6e 67 20 55 54 46 2d 38 2c 20  ncluding UTF-8, 
1d50: 55 54 46 2d 31 36 2c 20 61 6e 64 0a 20 20 20 20  UTF-16, and.    
1d60: 75 73 65 72 20 64 65 66 69 6e 65 64 20 63 6f 6c  user defined col
1d70: 6c 61 74 69 6e 67 20 73 65 71 75 65 6e 63 65 73  lating sequences
1d80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 66  .</li>.<li>New f
1d90: 69 6c 65 20 66 6f 72 6d 61 74 20 74 68 61 74 20  ile format that 
1da0: 69 73 20 32 35 25 20 74 6f 20 33 35 25 20 73 6d  is 25% to 35% sm
1db0: 61 6c 6c 65 72 20 66 6f 72 20 74 79 70 69 63 61  aller for typica
1dc0: 6c 20 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  l use.</li>.<li>
1dd0: 49 6d 70 72 6f 76 65 64 20 63 6f 6e 63 75 72 72  Improved concurr
1de0: 65 6e 63 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ency.</li>.<li>A
1df0: 74 6f 6d 69 63 20 63 6f 6d 6d 69 74 73 20 66 6f  tomic commits fo
1e00: 72 20 41 54 54 41 43 48 65 64 20 64 61 74 61 62  r ATTACHed datab
1e10: 61 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52  ases.</li>.<li>R
1e20: 65 6d 6f 76 65 20 63 72 75 66 74 20 66 72 6f 6d  emove cruft from
1e30: 20 74 68 65 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a   the APIs.</li>.
1e40: 3c 6c 69 3e 42 4c 4f 42 20 73 75 70 70 6f 72 74  <li>BLOB support
1e50: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 36 34 2d 62 69  .</li>.<li>64-bi
1e60: 74 20 72 6f 77 69 64 73 2e 3c 2f 6c 69 3e 0a 3c  t rowids.</li>.<
1e70: 6c 69 3e 3c 61 20 68 72 65 66 3d 22 76 65 72 73  li><a href="vers
1e80: 69 6f 6e 33 2e 68 74 6d 6c 22 3e 4d 6f 72 65 20  ion3.html">More 
1e90: 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 61 3e 2e  information</a>.
1ea0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a  .}..chng {2004 J
1eb0: 75 6e 65 20 39 20 28 32 2e 38 2e 31 34 29 7d 20  une 9 (2.8.14)} 
1ec0: 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 6d 69  {.<li>Fix the mi
1ed0: 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20 6f 70  n() and max() op
1ee0: 74 69 6d 69 7a 65 72 20 73 6f 20 74 68 61 74 20  timizer so that 
1ef0: 69 74 20 77 6f 72 6b 73 20 77 68 65 6e 20 74 68  it works when th
1f00: 65 20 46 52 4f 4d 0a 20 20 20 20 63 6c 61 75 73  e FROM.    claus
1f10: 65 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 20  e consists of a 
1f20: 73 75 62 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c  subquery.</li>.<
1f30: 6c 69 3e 49 67 6e 6f 72 65 20 65 78 74 72 61 20  li>Ignore extra 
1f40: 77 68 69 74 65 73 70 61 63 65 20 61 74 20 74 68  whitespace at th
1f50: 65 20 65 6e 64 20 6f 66 20 6f 66 20 22 2e 22 20  e end of of "." 
1f60: 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20  commands in the 
1f70: 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  shell.</li>.<li>
1f80: 42 75 6e 64 6c 65 20 73 71 6c 69 74 65 5f 65 6e  Bundle sqlite_en
1f90: 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 61 6e  code_binary() an
1fa0: 64 20 73 71 6c 69 74 65 5f 64 65 63 6f 64 65 5f  d sqlite_decode_
1fb0: 62 69 6e 61 72 79 28 29 20 77 69 74 68 20 74 68  binary() with th
1fc0: 65 20 0a 20 20 20 20 6c 69 62 72 61 72 79 2e 3c  e .    library.<
1fd0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 54 45 4d  /li>.<li>The TEM
1fe0: 50 5f 53 54 4f 52 45 20 61 6e 64 20 44 45 46 41  P_STORE and DEFA
1ff0: 55 4c 54 5f 54 45 4d 50 5f 53 54 4f 52 45 20 70  ULT_TEMP_STORE p
2000: 72 61 67 6d 61 73 20 6e 6f 77 20 77 6f 72 6b 2e  ragmas now work.
2010: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 64 65 20 63  </li>.<li>Code c
2020: 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d 70 69 6c  hanges to compil
2030: 65 20 63 6c 65 61 6e 6c 79 20 75 73 69 6e 67 20  e cleanly using 
2040: 4f 70 65 6e 57 61 74 63 6f 6d 2e 3c 2f 6c 69 3e  OpenWatcom.</li>
2050: 0a 3c 6c 69 3e 46 69 78 20 56 44 42 45 20 73 74  .<li>Fix VDBE st
2060: 61 63 6b 20 6f 76 65 72 66 6c 6f 77 20 70 72 6f  ack overflow pro
2070: 62 6c 65 6d 73 20 77 69 74 68 20 49 4e 53 54 45  blems with INSTE
2080: 41 44 20 4f 46 20 74 72 69 67 67 65 72 73 20 61  AD OF triggers a
2090: 6e 64 0a 20 20 20 20 4e 55 4c 4c 73 20 69 6e 20  nd.    NULLs in 
20a0: 49 4e 20 6f 70 65 72 61 74 6f 72 73 2e 3c 2f 6c  IN operators.</l
20b0: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 67  i>.<li>Add the g
20c0: 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 73  lobal variable s
20d0: 71 6c 69 74 65 5f 74 65 6d 70 5f 64 69 72 65 63  qlite_temp_direc
20e0: 74 6f 72 79 20 77 68 69 63 68 20 69 66 20 73 65  tory which if se
20f0: 74 20 64 65 66 69 6e 65 73 20 74 68 65 0a 20 20  t defines the.  
2100: 20 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 77    directory in w
2110: 68 69 63 68 20 74 65 6d 70 6f 72 61 72 79 20 66  hich temporary f
2120: 69 6c 65 73 20 61 72 65 20 73 74 6f 72 65 64 2e  iles are stored.
2130: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65  </li>.<li>sqlite
2140: 5f 69 6e 74 65 72 72 75 70 74 28 29 20 70 6c 61  _interrupt() pla
2150: 79 73 20 77 65 6c 6c 20 77 69 74 68 20 56 41 43  ys well with VAC
2160: 55 55 4d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  UUM.</li>.<li>Ot
2170: 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69  her minor bug fi
2180: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
2190: 67 20 7b 32 30 30 34 20 4d 61 72 63 68 20 38 20  g {2004 March 8 
21a0: 28 32 2e 38 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e  (2.8.13)} {.<li>
21b0: 52 65 66 61 63 74 6f 72 20 70 61 72 74 73 20 6f  Refactor parts o
21c0: 66 20 74 68 65 20 63 6f 64 65 20 69 6e 20 6f 72  f the code in or
21d0: 64 65 72 20 74 6f 20 6d 61 6b 65 20 74 68 65 20  der to make the 
21e0: 63 6f 64 65 20 66 6f 6f 74 70 72 69 6e 74 0a 20  code footprint. 
21f0: 20 20 20 73 6d 61 6c 6c 65 72 2e 20 20 54 68 65     smaller.  The
2200: 20 63 6f 64 65 20 69 73 20 6e 6f 77 20 61 6c 73   code is now als
2210: 6f 20 61 20 6c 69 74 74 6c 65 20 62 69 74 20 66  o a little bit f
2220: 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  aster.</li>.<li>
2230: 73 71 6c 69 74 65 5f 65 78 65 63 28 29 20 69 73  sqlite_exec() is
2240: 20 6e 6f 77 20 69 6d 70 6c 65 6d 65 6e 74 65 64   now implemented
2250: 20 61 73 20 61 20 77 72 61 70 70 65 72 20 61 72   as a wrapper ar
2260: 6f 75 6e 64 20 73 71 6c 69 74 65 5f 63 6f 6d 70  ound sqlite_comp
2270: 69 6c 65 28 29 0a 20 20 20 20 61 6e 64 20 73 71  ile().    and sq
2280: 6c 69 74 65 5f 73 74 65 70 28 29 2e 3c 2f 6c 69  lite_step().</li
2290: 3e 0a 3c 6c 69 3e 54 68 65 20 62 75 69 6c 74 2d  >.<li>The built-
22a0: 69 6e 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78  in min() and max
22b0: 28 29 20 66 75 6e 63 74 69 6f 6e 73 20 6e 6f 77  () functions now
22c0: 20 68 6f 6e 6f 72 20 74 68 65 20 64 69 66 66 65   honor the diffe
22d0: 72 65 6e 63 65 20 62 65 74 77 65 65 6e 0a 20 20  rence between.  
22e0: 20 20 4e 55 4d 45 52 49 43 20 61 6e 64 20 54 45    NUMERIC and TE
22f0: 58 54 20 64 61 74 61 74 79 70 65 73 2e 20 20 46  XT datatypes.  F
2300: 6f 72 6d 65 72 6c 79 2c 20 6d 69 6e 28 29 20 61  ormerly, min() a
2310: 6e 64 20 6d 61 78 28 29 20 61 6c 77 61 79 73 20  nd max() always 
2320: 61 73 73 75 6d 65 64 0a 20 20 20 20 74 68 65 69  assumed.    thei
2330: 72 20 61 72 67 75 6d 65 6e 74 73 20 77 65 72 65  r arguments were
2340: 20 6f 66 20 74 79 70 65 20 4e 55 4d 45 52 49 43   of type NUMERIC
2350: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 48  .</li>.<li>New H
2360: 48 3a 4d 4d 3a 53 53 20 6d 6f 64 69 66 69 65 72  H:MM:SS modifier
2370: 20 74 6f 20 74 68 65 20 62 75 69 6c 74 2d 69 6e   to the built-in
2380: 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74   date/time funct
2390: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45  ions.</li>.<li>E
23a0: 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69  xperimental sqli
23b0: 74 65 5f 6c 61 73 74 5f 73 74 61 74 65 6d 65 6e  te_last_statemen
23c0: 74 5f 63 68 61 6e 67 65 73 28 29 20 41 50 49 20  t_changes() API 
23d0: 61 64 64 65 64 2e 20 20 46 69 78 65 64 20 74 68  added.  Fixed th
23e0: 65 0a 20 20 20 20 74 68 65 20 6c 61 73 74 5f 69  e.    the last_i
23f0: 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 20 66 75  nsert_rowid() fu
2400: 6e 63 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 69  nction so that i
2410: 74 20 77 6f 72 6b 73 20 63 6f 72 72 65 63 74 6c  t works correctl
2420: 79 20 77 69 74 68 0a 20 20 20 20 74 72 69 67 67  y with.    trigg
2430: 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ers.</li>.<li>Ad
2440: 64 20 66 75 6e 63 74 69 6f 6e 73 20 70 72 6f 74  d functions prot
2450: 6f 74 79 70 65 73 20 66 6f 72 20 74 68 65 20 64  otypes for the d
2460: 61 74 61 62 61 73 65 20 65 6e 63 72 79 70 74 69  atabase encrypti
2470: 6f 6e 20 41 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69  on API.</li>.<li
2480: 3e 46 69 78 20 73 65 76 65 72 61 6c 20 6e 75 69  >Fix several nui
2490: 73 61 6e 63 65 20 62 75 67 73 2e 3c 2f 6c 69 3e  sance bugs.</li>
24a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 46  .}..chng {2004 F
24b0: 65 62 72 75 61 72 79 20 38 20 28 32 2e 38 2e 31  ebruary 8 (2.8.1
24c0: 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  2)} {.<li>Fix a 
24d0: 62 75 67 20 74 68 61 74 20 77 69 6c 6c 20 6d 69  bug that will mi
24e0: 67 68 74 20 63 6f 72 72 75 70 74 20 74 68 65 20  ght corrupt the 
24f0: 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61 6c  rollback journal
2500: 20 69 66 20 61 20 70 6f 77 65 72 20 66 61 69 6c   if a power fail
2510: 75 72 65 0a 20 20 20 20 6f 72 20 65 78 74 65 72  ure.    or exter
2520: 6e 61 6c 20 70 72 6f 67 72 61 6d 20 68 61 6c 74  nal program halt
2530: 20 6f 63 63 75 72 73 20 69 6e 20 74 68 65 20 6d   occurs in the m
2540: 69 64 64 6c 65 20 6f 66 20 61 20 43 4f 4d 4d 49  iddle of a COMMI
2550: 54 2e 20 20 54 68 65 20 63 6f 72 72 75 70 74 0a  T.  The corrupt.
2560: 20 20 20 20 6a 6f 75 72 6e 61 6c 20 63 61 6e 20      journal can 
2570: 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65  lead to database
2580: 20 63 6f 72 72 75 70 74 69 6f 6e 20 77 68 65 6e   corruption when
2590: 20 69 74 20 69 73 20 72 6f 6c 6c 65 64 20 62 61   it is rolled ba
25a0: 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 64  ck.</li>.<li>Red
25b0: 75 63 65 20 74 68 65 20 73 69 7a 65 20 61 6e 64  uce the size and
25c0: 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 73 70   increase the sp
25d0: 65 65 64 20 6f 66 20 76 61 72 69 6f 75 73 20 6d  eed of various m
25e0: 6f 64 75 6c 65 73 2c 20 65 73 70 65 63 69 61 6c  odules, especial
25f0: 6c 79 0a 20 20 20 20 74 68 65 20 76 69 72 74 75  ly.    the virtu
2600: 61 6c 20 6d 61 63 68 69 6e 65 2e 3c 2f 6c 69 3e  al machine.</li>
2610: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22 26 6c 74 3b  .<li>Allow "&lt;
2620: 65 78 70 72 26 67 74 3b 20 49 4e 20 26 6c 74 3b  expr&gt; IN &lt;
2630: 74 61 62 6c 65 26 67 74 3b 22 20 61 73 20 61 20  table&gt;" as a 
2640: 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 0a 20 20  shorthand for.  
2650: 20 20 22 26 6c 74 3b 65 78 70 72 26 67 74 3b 20    "&lt;expr&gt; 
2660: 49 4e 20 28 53 45 4c 45 43 54 20 2a 20 46 52 4f  IN (SELECT * FRO
2670: 4d 20 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22  M &lt;table&gt;"
2680: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 70 74 69 6d  .</li>.<li>Optim
2690: 69 7a 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20  izations to the 
26a0: 73 71 6c 69 74 65 5f 6d 70 72 69 6e 74 66 28 29  sqlite_mprintf()
26b0: 20 72 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c   routine.</li>.<
26c0: 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 74 68 65  li>Make sure the
26d0: 20 4d 49 4e 28 29 20 61 6e 64 20 4d 41 58 28 29   MIN() and MAX()
26e0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 77   optimizations w
26f0: 6f 72 6b 20 77 69 74 68 69 6e 20 73 75 62 71 75  ork within subqu
2700: 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  eries.</li>.}..c
2710: 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75 61 72  hng {2004 Januar
2720: 79 20 31 34 20 28 32 2e 38 2e 31 31 29 7d 20 7b  y 14 (2.8.11)} {
2730: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
2740: 6e 20 68 6f 77 20 74 68 65 20 49 4e 20 6f 70 65  n how the IN ope
2750: 72 61 74 6f 72 20 68 61 6e 64 6c 65 73 20 4e 55  rator handles NU
2760: 4c 4c 73 20 69 6e 20 73 75 62 71 75 65 72 69 65  LLs in subquerie
2770: 73 2e 20 20 54 68 65 20 62 75 67 0a 20 20 20 20  s.  The bug.    
2780: 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 62  was introduced b
2790: 79 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72  y the previous r
27a0: 65 6c 65 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  elease.</li>.}..
27b0: 63 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75 61  chng {2004 Janua
27c0: 72 79 20 31 33 20 28 32 2e 38 2e 31 30 29 7d 20  ry 13 (2.8.10)} 
27d0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 6f 74 65  {.<li>Fix a pote
27e0: 6e 74 69 61 6c 20 64 61 74 61 62 61 73 65 20 63  ntial database c
27f0: 6f 72 72 75 70 74 69 6f 6e 20 70 72 6f 62 6c 65  orruption proble
2800: 6d 20 6f 6e 20 55 6e 69 78 20 63 61 75 73 65 64  m on Unix caused
2810: 20 62 79 20 74 68 65 20 66 61 63 74 0a 20 20 20   by the fact.   
2820: 20 74 68 61 74 20 61 6c 6c 20 70 6f 73 69 78 20   that all posix 
2830: 61 64 76 69 73 6f 72 79 20 6c 6f 63 6b 73 20 61  advisory locks a
2840: 72 65 20 63 6c 65 61 72 65 64 20 77 68 65 6e 65  re cleared whene
2850: 76 65 72 20 79 6f 75 20 63 6c 6f 73 65 28 29 20  ver you close() 
2860: 61 20 66 69 6c 65 2e 0a 20 20 20 20 54 68 65 20  a file..    The 
2870: 77 6f 72 6b 20 61 72 6f 75 6e 64 20 69 74 20 74  work around it t
2880: 6f 20 65 6d 62 61 72 67 6f 20 61 6c 6c 20 63 6c  o embargo all cl
2890: 6f 73 65 28 29 20 63 61 6c 6c 73 20 77 68 69 6c  ose() calls whil
28a0: 65 20 6c 6f 63 6b 73 20 61 72 65 20 0a 20 20 20  e locks are .   
28b0: 20 6f 75 74 73 74 61 6e 64 69 6e 67 2e 3c 2f 6c   outstanding.</l
28c0: 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e  i>.<li>Performan
28d0: 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20  ce enhancements 
28e0: 6f 6e 20 73 6f 6d 65 20 63 6f 72 6e 65 72 20 63  on some corner c
28f0: 61 73 65 73 20 6f 66 20 43 4f 55 4e 54 28 2a 29  ases of COUNT(*)
2900: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20  .</li>.<li>Make 
2910: 73 75 72 65 20 74 68 65 20 69 6e 2d 6d 65 6d 6f  sure the in-memo
2920: 72 79 20 62 61 63 6b 65 6e 64 20 72 65 73 70 6f  ry backend respo
2930: 6e 73 65 20 73 61 6e 65 6c 79 20 69 66 20 6d 61  nse sanely if ma
2940: 6c 6c 6f 63 28 29 20 66 61 69 6c 73 2e 3c 2f 6c  lloc() fails.</l
2950: 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 73 71 6c  i>.<li>Allow sql
2960: 69 74 65 5f 65 78 65 63 28 29 20 74 6f 20 62 65  ite_exec() to be
2970: 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 77 69 74   called from wit
2980: 68 69 6e 20 75 73 65 72 2d 64 65 66 69 6e 65 64  hin user-defined
2990: 20 53 51 4c 0a 20 20 20 20 66 75 6e 63 74 69 6f   SQL.    functio
29a0: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70  ns.</li>.<li>Imp
29b0: 72 6f 76 65 64 20 61 63 63 75 72 61 63 79 20 6f  roved accuracy o
29c0: 66 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74  f floating-point
29d0: 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 75 73 69   conversions usi
29e0: 6e 67 20 22 6c 6f 6e 67 20 64 6f 75 62 6c 65 22  ng "long double"
29f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
2a00: 69 78 65 73 20 69 6e 20 74 68 65 20 65 78 70 65  ixes in the expe
2a10: 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69  rimental date/ti
2a20: 6d 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c  me functions.</l
2a30: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
2a40: 20 4a 61 6e 75 61 72 79 20 35 20 28 32 2e 38 2e   January 5 (2.8.
2a50: 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  9)} {.<li>Fix a 
2a60: 33 32 2d 62 69 74 20 69 6e 74 65 67 65 72 20 6f  32-bit integer o
2a70: 76 65 72 66 6c 6f 77 20 70 72 6f 62 6c 65 6d 20  verflow problem 
2a80: 74 68 61 74 20 63 6f 75 6c 64 20 72 65 73 75 6c  that could resul
2a90: 74 20 69 6e 20 63 6f 72 72 75 70 74 0a 20 20 20  t in corrupt.   
2aa0: 20 69 6e 64 69 63 65 73 20 69 6e 20 61 20 64 61   indices in a da
2ab0: 74 61 62 61 73 65 20 69 66 20 6c 61 72 67 65 20  tabase if large 
2ac0: 6e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 73  negative numbers
2ad0: 20 28 6c 65 73 73 20 74 68 61 6e 20 2d 32 31 34   (less than -214
2ae0: 37 34 38 33 36 34 38 29 0a 20 20 20 20 77 65 72  7483648).    wer
2af0: 65 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20  e inserted into 
2b00: 61 20 69 6e 64 65 78 65 64 20 6e 75 6d 65 72 69  a indexed numeri
2b10: 63 20 63 6f 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0a 3c  c column.</li>.<
2b20: 6c 69 3e 46 69 78 20 61 20 6c 6f 63 6b 69 6e 67  li>Fix a locking
2b30: 20 70 72 6f 62 6c 65 6d 20 6f 6e 20 6d 75 6c 74   problem on mult
2b40: 69 2d 74 68 72 65 61 64 65 64 20 4c 69 6e 75 78  i-threaded Linux
2b50: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73   implementations
2b60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 77 61 79  .</li>.<li>Alway
2b70: 73 20 75 73 65 20 22 2e 22 20 69 6e 73 74 65 61  s use "." instea
2b80: 64 20 6f 66 20 22 2c 22 20 61 73 20 74 68 65 20  d of "," as the 
2b90: 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 20 65 76  decimal point ev
2ba0: 65 6e 20 69 66 20 74 68 65 20 6c 6f 63 61 6c 65  en if the locale
2bb0: 0a 20 20 20 20 72 65 71 75 65 73 74 73 20 22 2c  .    requests ",
2bc0: 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  ".</li>.<li>Adde
2bd0: 64 20 55 54 43 20 74 6f 20 6c 6f 63 61 6c 74 69  d UTC to localti
2be0: 6d 65 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 74  me conversions t
2bf0: 6f 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e 74  o the experiment
2c00: 61 6c 20 64 61 74 65 2f 74 69 6d 65 0a 20 20 20  al date/time.   
2c10: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
2c20: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20 74  .<li>Bug fixes t
2c30: 6f 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63  o date/time func
2c40: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tions.</li>.}..c
2c50: 68 6e 67 20 7b 32 30 30 33 20 44 65 63 65 6d 62  hng {2003 Decemb
2c60: 65 72 20 31 37 20 28 32 2e 38 2e 38 29 7d 20 7b  er 17 (2.8.8)} {
2c70: 0a 3c 6c 69 3e 46 69 78 20 61 20 63 72 69 74 69  .<li>Fix a criti
2c80: 63 61 6c 20 62 75 67 20 69 6e 74 72 6f 64 75 63  cal bug introduc
2c90: 65 64 20 69 6e 74 6f 20 32 2e 38 2e 30 20 77 68  ed into 2.8.0 wh
2ca0: 69 63 68 20 63 6f 75 6c 64 20 63 61 75 73 65 0a  ich could cause.
2cb0: 20 20 20 20 64 61 74 61 62 61 73 65 20 63 6f 72      database cor
2cc0: 72 75 70 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  ruption.</li>.<l
2cd0: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
2ce0: 77 69 74 68 20 33 2d 77 61 79 20 6a 6f 69 6e 73  with 3-way joins
2cf0: 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 75 73 65   that do not use
2d00: 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c   indices</li>.<l
2d10: 69 3e 54 68 65 20 56 41 43 55 55 4d 20 63 6f 6d  i>The VACUUM com
2d20: 6d 61 6e 64 20 6e 6f 77 20 77 6f 72 6b 73 20 77  mand now works w
2d30: 69 74 68 20 74 68 65 20 6e 6f 6e 2d 63 61 6c 6c  ith the non-call
2d40: 62 61 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c  back API</li>.<l
2d50: 69 3e 49 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74  i>Improvements t
2d60: 6f 20 74 68 65 20 22 50 52 41 47 4d 41 20 69 6e  o the "PRAGMA in
2d70: 74 65 67 72 69 74 79 5f 63 68 65 63 6b 22 20 63  tegrity_check" c
2d80: 6f 6d 6d 61 6e 64 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ommand</li>.}..c
2d90: 68 6e 67 20 7b 32 30 30 33 20 44 65 63 65 6d 62  hng {2003 Decemb
2da0: 65 72 20 34 20 28 32 2e 38 2e 37 29 7d 20 7b 0a  er 4 (2.8.7)} {.
2db0: 3c 6c 69 3e 41 64 64 65 64 20 65 78 70 65 72 69  <li>Added experi
2dc0: 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 62 69  mental sqlite_bi
2dd0: 6e 64 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f  nd() and sqlite_
2de0: 72 65 73 65 74 28 29 20 41 50 49 73 2e 3c 2f 6c  reset() APIs.</l
2df0: 69 3e 0a 3c 6c 69 3e 49 66 20 74 68 65 20 6e 61  i>.<li>If the na
2e00: 6d 65 20 6f 66 20 74 68 65 20 64 61 74 61 62 61  me of the databa
2e10: 73 65 20 69 73 20 61 6e 20 65 6d 70 74 79 20 73  se is an empty s
2e20: 74 72 69 6e 67 2c 20 6f 70 65 6e 20 61 20 6e 65  tring, open a ne
2e30: 77 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 69  w database.    i
2e40: 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69  n a temporary fi
2e50: 6c 65 20 74 68 61 74 20 69 73 20 61 75 74 6f 6d  le that is autom
2e60: 61 74 69 63 61 6c 6c 79 20 64 65 6c 65 74 65 64  atically deleted
2e70: 20 77 68 65 6e 20 74 68 65 20 64 61 74 61 62 61   when the databa
2e80: 73 65 0a 20 20 20 20 69 73 20 63 6c 6f 73 65 64  se.    is closed
2e90: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f  .</li>.<li>Perfo
2ea0: 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65  rmance enhanceme
2eb0: 6e 74 73 20 69 6e 20 74 68 65 20 6c 65 6d 6f 6e  nts in the lemon
2ec0: 2d 67 65 6e 65 72 61 74 65 64 20 70 61 72 73 65  -generated parse
2ed0: 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72  r</li>.<li>Exper
2ee0: 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d  imental date/tim
2ef0: 65 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 76 69  e functions revi
2f00: 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 69  sed.</li>.<li>Di
2f10: 73 61 6c 6c 6f 77 20 74 65 6d 70 6f 72 61 72 79  sallow temporary
2f20: 20 69 6e 64 69 63 65 73 20 6f 6e 20 70 65 72 6d   indices on perm
2f30: 61 6e 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f 6c  anent tables.</l
2f40: 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61  i>.<li>Documenta
2f50: 74 69 6f 6e 20 75 70 64 61 74 65 73 20 61 6e 64  tion updates and
2f60: 20 74 79 70 6f 20 66 69 78 65 73 3c 2f 6c 69 3e   typo fixes</li>
2f70: 0a 3c 6c 69 3e 41 64 64 65 64 20 65 78 70 65 72  .<li>Added exper
2f80: 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 70  imental sqlite_p
2f90: 72 6f 67 72 65 73 73 5f 68 61 6e 64 6c 65 72 28  rogress_handler(
2fa0: 29 20 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f  ) callback API</
2fb0: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20  li>.<li>Removed 
2fc0: 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20  support for the 
2fd0: 4f 72 61 63 6c 65 38 20 6f 75 74 65 72 20 6a 6f  Oracle8 outer jo
2fe0: 69 6e 20 73 79 6e 74 61 78 2e 3c 2f 6c 69 3e 0a  in syntax.</li>.
2ff0: 3c 6c 69 3e 41 6c 6c 6f 77 20 47 4c 4f 42 20 61  <li>Allow GLOB a
3000: 6e 64 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72  nd LIKE operator
3010: 73 20 74 6f 20 77 6f 72 6b 20 61 73 20 66 75 6e  s to work as fun
3020: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
3030: 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 64 6f 63  >Other minor doc
3040: 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20 6d  umentation and m
3050: 61 6b 65 66 69 6c 65 20 63 68 61 6e 67 65 73 20  akefile changes 
3060: 61 6e 64 20 62 75 67 20 66 69 78 65 73 2e 3c 2f  and bug fixes.</
3070: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
3080: 33 20 41 75 67 75 73 74 20 32 31 20 28 32 2e 38  3 August 21 (2.8
3090: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 76 65 64  .6)} {.<li>Moved
30a0: 20 74 68 65 20 43 56 53 20 72 65 70 6f 73 69 74   the CVS reposit
30b0: 6f 72 79 20 74 6f 20 77 77 77 2e 73 71 6c 69 74  ory to www.sqlit
30c0: 65 2e 6f 72 67 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  e.org</li>.<li>U
30d0: 70 64 61 74 65 20 74 68 65 20 4e 55 4c 4c 2d 68  pdate the NULL-h
30e0: 61 6e 64 6c 69 6e 67 20 64 6f 63 75 6d 65 6e 74  andling document
30f0: 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ation.</li>.<li>
3100: 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74  Experimental dat
3110: 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73  e/time functions
3120: 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69   added.</li>.<li
3130: 3e 42 75 67 20 66 69 78 3a 20 63 6f 72 72 65 63  >Bug fix: correc
3140: 74 6c 79 20 65 76 61 6c 75 61 74 65 20 61 20 76  tly evaluate a v
3150: 69 65 77 20 6f 66 20 61 20 76 69 65 77 20 77 69  iew of a view wi
3160: 74 68 6f 75 74 20 73 65 67 66 61 75 6c 74 69 6e  thout segfaultin
3170: 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  g.</li>.<li>Bug 
3180: 66 69 78 3a 20 70 72 65 76 65 6e 74 20 64 61 74  fix: prevent dat
3190: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
31a0: 20 69 66 20 79 6f 75 20 64 72 6f 70 70 65 64 20   if you dropped 
31b0: 61 0a 20 20 20 20 74 72 69 67 67 65 72 20 74 68  a.    trigger th
31c0: 61 74 20 68 61 64 20 74 68 65 20 73 61 6d 65 20  at had the same 
31d0: 6e 61 6d 65 20 61 73 20 61 20 74 61 62 6c 65 2e  name as a table.
31e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
31f0: 78 3a 20 61 6c 6c 6f 77 20 61 20 56 41 43 55 55  x: allow a VACUU
3200: 4d 20 28 77 69 74 68 6f 75 74 20 73 65 67 66 61  M (without segfa
3210: 75 6c 74 69 6e 67 29 20 6f 6e 20 61 6e 20 65 6d  ulting) on an em
3220: 70 74 79 0a 20 20 20 20 64 61 74 61 62 61 73 65  pty.    database
3230: 20 61 66 74 65 72 20 73 65 74 74 69 6e 67 20 74   after setting t
3240: 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c 54 5f  he EMPTY_RESULT_
3250: 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67 6d 61  CALLBACKS pragma
3260: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
3270: 69 78 3a 20 69 66 20 61 6e 20 69 6e 74 65 67 65  ix: if an intege
3280: 72 20 76 61 6c 75 65 20 77 69 6c 6c 20 6e 6f 74  r value will not
3290: 20 66 69 74 20 69 6e 20 61 20 33 32 2d 62 69 74   fit in a 32-bit
32a0: 20 69 6e 74 2c 20 73 74 6f 72 65 20 69 74 20 69   int, store it i
32b0: 6e 0a 20 20 20 20 61 20 64 6f 75 62 6c 65 20 69  n.    a double i
32c0: 6e 73 74 65 61 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  nstead.</li>.<li
32d0: 3e 42 75 67 20 66 69 78 3a 20 4d 61 6b 65 20 73  >Bug fix: Make s
32e0: 75 72 65 20 74 68 65 20 6a 6f 75 72 6e 61 6c 20  ure the journal 
32f0: 66 69 6c 65 20 64 69 72 65 63 74 6f 72 79 20 65  file directory e
3300: 6e 74 72 79 20 69 73 20 63 6f 6d 6d 69 74 74 65  ntry is committe
3310: 64 20 74 6f 20 64 69 73 6b 0a 20 20 20 20 62 65  d to disk.    be
3320: 66 6f 72 65 20 77 72 69 74 69 6e 67 20 74 68 65  fore writing the
3330: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c   database file.<
3340: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3350: 30 33 20 4a 75 6c 79 20 32 32 20 28 32 2e 38 2e  03 July 22 (2.8.
3360: 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 4c  5)} {.<li>Make L
3370: 49 4d 49 54 20 77 6f 72 6b 20 6f 6e 20 61 20 63  IMIT work on a c
3380: 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 73  ompound SELECT s
3390: 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c  tatement.</li>.<
33a0: 6c 69 3e 4c 49 4d 49 54 20 30 20 6e 6f 77 20 73  li>LIMIT 0 now s
33b0: 68 6f 77 73 20 6e 6f 20 72 6f 77 73 2e 20 20 55  hows no rows.  U
33c0: 73 65 20 4c 49 4d 49 54 20 2d 31 20 74 6f 20 73  se LIMIT -1 to s
33d0: 65 65 20 61 6c 6c 20 72 6f 77 73 2e 3c 2f 6c 69  ee all rows.</li
33e0: 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20  >.<li>Correctly 
33f0: 68 61 6e 64 6c 65 20 63 6f 6d 70 61 72 69 73 6f  handle compariso
3400: 6e 73 20 62 65 74 77 65 65 6e 20 61 6e 20 49 4e  ns between an IN
3410: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45  TEGER PRIMARY KE
3420: 59 20 61 6e 64 0a 20 20 20 20 61 20 66 6c 6f 61  Y and.    a floa
3430: 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65  ting point numbe
3440: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  r.</li>.<li>Fix 
3450: 73 65 76 65 72 61 6c 20 69 6d 70 6f 72 74 61 6e  several importan
3460: 74 20 62 75 67 73 20 69 6e 20 74 68 65 20 6e 65  t bugs in the ne
3470: 77 20 41 54 54 41 43 48 20 61 6e 64 20 44 45 54  w ATTACH and DET
3480: 41 43 48 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c  ACH commands.</l
3490: 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 64 20 74  i>.<li>Updated t
34a0: 68 65 20 3c 61 20 68 72 65 66 3d 22 6e 75 6c 6c  he <a href="null
34b0: 73 2e 68 74 6d 6c 22 3e 4e 55 4c 4c 2d 68 61 6e  s.html">NULL-han
34c0: 64 6c 69 6e 67 20 64 6f 63 75 6d 65 6e 74 3c 2f  dling document</
34d0: 61 3e 2e 3c 2f 6c 69 3e 20 0a 3c 6c 69 3e 41 6c  a>.</li> .<li>Al
34e0: 6c 6f 77 20 4e 55 4c 4c 20 61 72 67 75 6d 65 6e  low NULL argumen
34f0: 74 73 20 69 6e 20 73 71 6c 69 74 65 5f 63 6f 6d  ts in sqlite_com
3500: 70 69 6c 65 28 29 20 61 6e 64 20 73 71 6c 69 74  pile() and sqlit
3510: 65 5f 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c  e_step().</li>.<
3520: 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75  li>Many minor bu
3530: 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a  g fixes</li>.}..
3540: 63 68 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65 20  chng {2003 June 
3550: 32 39 20 28 32 2e 38 2e 34 29 7d 20 7b 0a 3c 6c  29 (2.8.4)} {.<l
3560: 69 3e 45 6e 68 61 6e 63 65 64 20 74 68 65 20 22  i>Enhanced the "
3570: 50 52 41 47 4d 41 20 69 6e 74 65 67 72 69 74 79  PRAGMA integrity
3580: 5f 63 68 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 20  _check" command 
3590: 74 6f 20 76 65 72 69 66 79 20 69 6e 64 69 63 65  to verify indice
35a0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
35b0: 64 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20  d authorization 
35c0: 68 6f 6f 6b 73 20 66 6f 72 20 74 68 65 20 6e 65  hooks for the ne
35d0: 77 20 41 54 54 41 43 48 20 61 6e 64 20 44 45 54  w ATTACH and DET
35e0: 41 43 48 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c  ACH commands.</l
35f0: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 64 6f 63 75  i>.<li>Many docu
3600: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
3610: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20  s</li>.<li>Many 
3620: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c  minor bug fixes<
3630: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3640: 30 33 20 4a 75 6e 65 20 34 20 28 32 2e 38 2e 33  03 June 4 (2.8.3
3650: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70  )} {.<li>Fix a p
3660: 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c  roblem that will
3670: 20 63 6f 72 72 75 70 74 20 74 68 65 20 69 6e 64   corrupt the ind
3680: 69 63 65 73 20 6f 6e 20 61 20 74 61 62 6c 65 20  ices on a table 
3690: 69 66 20 79 6f 75 0a 20 20 20 20 64 6f 20 61 6e  if you.    do an
36a0: 20 49 4e 53 45 52 54 20 4f 52 20 52 45 50 4c 41   INSERT OR REPLA
36b0: 43 45 20 6f 72 20 61 6e 20 55 50 44 41 54 45 20  CE or an UPDATE 
36c0: 4f 52 20 52 45 50 4c 41 43 45 20 6f 6e 20 61 20  OR REPLACE on a 
36d0: 74 61 62 6c 65 20 74 68 61 74 0a 20 20 20 20 63  table that.    c
36e0: 6f 6e 74 61 69 6e 73 20 61 6e 20 49 4e 54 45 47  ontains an INTEG
36f0: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 70  ER PRIMARY KEY p
3700: 6c 75 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20  lus one or more 
3710: 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  indices.</li>.<l
3720: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 77  i>Fix a bug in w
3730: 69 6e 64 6f 77 73 20 6c 6f 63 6b 69 6e 67 20 63  indows locking c
3740: 6f 64 65 20 73 6f 20 74 68 61 74 20 6c 6f 63 6b  ode so that lock
3750: 73 20 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c 79  s work correctly
3760: 0a 20 20 20 20 77 68 65 6e 20 73 69 6d 75 6c 74  .    when simult
3770: 61 6e 65 6f 75 73 6c 79 20 61 63 63 65 73 73 65  aneously accesse
3780: 64 20 62 79 20 57 69 6e 39 35 20 61 6e 64 20 57  d by Win95 and W
3790: 69 6e 4e 54 20 73 79 73 74 65 6d 73 2e 3c 2f 6c  inNT systems.</l
37a0: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61  i>.<li>Add the a
37b0: 62 69 6c 69 74 79 20 66 6f 72 20 49 4e 53 45 52  bility for INSER
37c0: 54 20 61 6e 64 20 55 50 44 41 54 45 20 73 74 61  T and UPDATE sta
37d0: 74 65 6d 65 6e 74 73 20 74 6f 20 72 65 66 65 72  tements to refer
37e0: 20 74 6f 20 74 68 65 0a 20 20 20 20 22 72 6f 77   to the.    "row
37f0: 69 64 22 20 28 6f 72 20 22 5f 72 6f 77 69 64 5f  id" (or "_rowid_
3800: 22 20 6f 72 20 22 6f 69 64 22 29 20 63 6f 6c 75  " or "oid") colu
3810: 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  mns.</li>.<li>Ot
3820: 68 65 72 20 69 6d 70 6f 72 74 61 6e 74 20 62 75  her important bu
3830: 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a  g fixes</li>.}..
3840: 63 68 6e 67 20 7b 32 30 30 33 20 4d 61 79 20 31  chng {2003 May 1
3850: 37 20 28 32 2e 38 2e 32 29 7d 20 7b 0a 3c 6c 69  7 (2.8.2)} {.<li
3860: 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74  >Fix a problem t
3870: 68 61 74 20 77 69 6c 6c 20 63 6f 72 72 75 70 74  hat will corrupt
3880: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69   the database fi
3890: 6c 65 20 69 66 20 79 6f 75 20 64 72 6f 70 20 61  le if you drop a
38a0: 0a 20 20 20 20 74 61 62 6c 65 20 66 72 6f 6d 20  .    table from 
38b0: 74 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73  the main databas
38c0: 65 20 74 68 61 74 20 68 61 73 20 61 20 54 45 4d  e that has a TEM
38d0: 50 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 7d 0a  P index.</li>.}.
38e0: 0a 63 68 6e 67 20 7b 32 30 30 33 20 4d 61 79 20  .chng {2003 May 
38f0: 31 36 20 28 32 2e 38 2e 31 29 7d 20 7b 0a 3c 6c  16 (2.8.1)} {.<l
3900: 69 3e 52 65 61 63 74 69 76 61 74 65 64 20 74 68  i>Reactivated th
3910: 65 20 56 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64  e VACUUM command
3920: 20 74 68 61 74 20 72 65 63 6c 61 69 6d 73 20 75   that reclaims u
3930: 6e 75 73 65 64 20 64 69 73 6b 20 73 70 61 63 65  nused disk space
3940: 20 69 6e 20 0a 20 20 20 20 61 20 64 61 74 61 62   in .    a datab
3950: 61 73 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c  ase file.</li>.<
3960: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 41 54 54  li>Added the ATT
3970: 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20 63  ACH and DETACH c
3980: 6f 6d 6d 61 6e 64 73 20 74 6f 20 61 6c 6c 6f 77  ommands to allow
3990: 20 69 6e 74 65 72 61 63 74 69 6e 67 20 77 69 74   interacting wit
39a0: 68 20 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20 64  h multiple.    d
39b0: 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 61 74  atabase files at
39c0: 20 74 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 3c   the same time.<
39d0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
39e0: 75 70 70 6f 72 74 20 66 6f 72 20 54 45 4d 50 20  upport for TEMP 
39f0: 74 72 69 67 67 65 72 73 20 61 6e 64 20 69 6e 64  triggers and ind
3a00: 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ices.</li>.<li>A
3a10: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
3a20: 20 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61 62   in-memory datab
3a30: 61 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52  ases.</li>.<li>R
3a40: 65 6d 6f 76 65 64 20 74 68 65 20 65 78 70 65 72  emoved the exper
3a50: 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 6f  imental sqlite_o
3a60: 70 65 6e 5f 61 75 78 5f 66 69 6c 65 28 29 2e 20  pen_aux_file(). 
3a70: 20 49 74 73 20 66 75 6e 63 74 69 6f 6e 20 69 73   Its function is
3a80: 0a 20 20 20 20 73 75 62 73 75 6d 65 64 20 69 6e  .    subsumed in
3a90: 20 74 68 65 20 6e 65 77 20 41 54 54 41 43 48 20   the new ATTACH 
3aa0: 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c  command.</li>.<l
3ab0: 69 3e 54 68 65 20 70 72 65 63 65 64 65 6e 63 65  i>The precedence
3ac0: 20 6f 72 64 65 72 20 66 6f 72 20 4f 4e 20 43 4f   order for ON CO
3ad0: 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73 20 77  NFLICT clauses w
3ae0: 61 73 20 63 68 61 6e 67 65 64 20 73 6f 20 74 68  as changed so th
3af0: 61 74 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49  at.    ON CONFLI
3b00: 43 54 20 63 6c 61 75 73 65 73 20 6f 6e 20 42 45  CT clauses on BE
3b10: 47 49 4e 20 73 74 61 74 65 6d 65 6e 74 73 20 68  GIN statements h
3b20: 61 76 65 20 61 20 68 69 67 68 65 72 20 70 72 65  ave a higher pre
3b30: 63 65 64 65 6e 63 65 20 74 68 61 6e 0a 20 20 20  cedence than.   
3b40: 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61   ON CONFLICT cla
3b50: 75 73 65 73 20 6f 6e 20 63 6f 6e 73 74 72 61 69  uses on constrai
3b60: 6e 74 73 2e 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d  nts..<li>Many, m
3b70: 61 6e 79 20 62 75 67 20 66 69 78 65 73 20 61 6e  any bug fixes an
3b80: 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20  d compatibility 
3b90: 65 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c  enhancements.</l
3ba0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
3bb0: 20 46 65 62 20 31 36 20 28 32 2e 38 2e 30 29 7d   Feb 16 (2.8.0)}
3bc0: 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20   {.<li>Modified 
3bd0: 74 68 65 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65  the journal file
3be0: 20 66 6f 72 6d 61 74 20 74 6f 20 6d 61 6b 65 20   format to make 
3bf0: 69 74 20 6d 6f 72 65 20 72 65 73 69 73 74 61 6e  it more resistan
3c00: 74 20 74 6f 20 63 6f 72 72 75 70 74 69 6f 6e 0a  t to corruption.
3c10: 20 20 20 20 74 68 61 74 20 63 61 6e 20 6f 63 63      that can occ
3c20: 75 72 20 61 66 74 65 72 20 61 6e 20 4f 53 20 63  ur after an OS c
3c30: 72 61 73 68 20 6f 72 20 70 6f 77 65 72 20 66 61  rash or power fa
3c40: 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ilure.</li>.<li>
3c50: 41 64 64 65 64 20 61 20 6e 65 77 20 43 2f 43 2b  Added a new C/C+
3c60: 2b 20 41 50 49 20 74 68 61 74 20 64 6f 65 73 20  + API that does 
3c70: 6e 6f 74 20 75 73 65 20 63 61 6c 6c 62 61 63 6b  not use callback
3c80: 20 66 6f 72 20 72 65 74 75 72 6e 69 6e 67 20 64   for returning d
3c90: 61 74 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ata.</li>.}..chn
3ca0: 67 20 7b 32 30 30 33 20 4a 61 6e 20 32 35 20 28  g {2003 Jan 25 (
3cb0: 32 2e 37 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 50 65  2.7.6)} {.<li>Pe
3cc0: 72 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76  rformance improv
3cd0: 65 6d 65 6e 74 73 2e 20 20 54 68 65 20 6c 69 62  ements.  The lib
3ce0: 72 61 72 79 20 69 73 20 6e 6f 77 20 6d 75 63 68  rary is now much
3cf0: 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   faster.</li>.<l
3d00: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
3d10: 71 6c 69 74 65 5f 73 65 74 5f 61 75 74 68 6f 72  qlite_set_author
3d20: 69 7a 65 72 28 29 3c 2f 62 3e 20 41 50 49 2e 20  izer()</b> API. 
3d30: 20 46 6f 72 6d 61 6c 20 64 6f 63 75 6d 65 6e 74   Formal document
3d40: 61 74 69 6f 6e 20 68 61 73 0a 20 20 20 20 6e 6f  ation has.    no
3d50: 74 20 62 65 65 6e 20 77 72 69 74 74 65 6e 20 2d  t been written -
3d60: 20 73 65 65 20 74 68 65 20 73 6f 75 72 63 65 20   see the source 
3d70: 63 6f 64 65 20 63 6f 6d 6d 65 6e 74 73 20 66 6f  code comments fo
3d80: 72 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 6f  r instructions o
3d90: 6e 0a 20 20 20 20 68 6f 77 20 74 6f 20 75 73 65  n.    how to use
3da0: 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 3c   this function.<
3db0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
3dc0: 75 67 20 69 6e 20 74 68 65 20 47 4c 4f 42 20 6f  ug in the GLOB o
3dd0: 70 65 72 61 74 6f 72 20 74 68 61 74 20 77 61 73  perator that was
3de0: 20 70 72 65 76 65 6e 74 69 6e 67 20 69 74 20 66   preventing it f
3df0: 72 6f 6d 20 77 6f 72 6b 69 6e 67 0a 20 20 20 20  rom working.    
3e00: 77 69 74 68 20 75 70 70 65 72 2d 63 61 73 65 20  with upper-case 
3e10: 6c 65 74 74 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  letters.</li>.<l
3e20: 69 3e 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20  i>Various minor 
3e30: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
3e40: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 44 65  }..chng {2002 De
3e50: 63 20 32 37 20 28 32 2e 37 2e 35 29 7d 20 7b 0a  c 27 (2.7.5)} {.
3e60: 3c 6c 69 3e 46 69 78 20 61 6e 20 75 6e 69 6e 69  <li>Fix an unini
3e70: 74 69 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c  tialized variabl
3e80: 65 20 69 6e 20 70 61 67 65 72 2e 63 20 77 68 69  e in pager.c whi
3e90: 63 68 20 63 6f 75 6c 64 20 28 77 69 74 68 20 61  ch could (with a
3ea0: 20 70 72 6f 62 61 62 69 6c 69 74 79 0a 20 20 20   probability.   
3eb0: 20 6f 66 20 61 62 6f 75 74 20 31 20 69 6e 20 34   of about 1 in 4
3ec0: 20 62 69 6c 6c 69 6f 6e 29 20 72 65 73 75 6c 74   billion) result
3ed0: 20 69 6e 20 61 20 63 6f 72 72 75 70 74 65 64 20   in a corrupted 
3ee0: 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 7d  database.</li>.}
3ef0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 44 65 63  ..chng {2002 Dec
3f00: 20 31 37 20 28 32 2e 37 2e 34 29 7d 20 7b 0a 3c   17 (2.7.4)} {.<
3f10: 6c 69 3e 44 61 74 61 62 61 73 65 20 66 69 6c 65  li>Database file
3f20: 73 20 63 61 6e 20 6e 6f 77 20 67 72 6f 77 20 74  s can now grow t
3f30: 6f 20 62 65 20 75 70 20 74 6f 20 32 5e 34 31 20  o be up to 2^41 
3f40: 62 79 74 65 73 2e 20 20 54 68 65 20 6f 6c 64 20  bytes.  The old 
3f50: 6c 69 6d 69 74 0a 20 20 20 20 77 61 73 20 32 5e  limit.    was 2^
3f60: 33 31 20 62 79 74 65 73 2e 3c 2f 6c 69 3e 0a 3c  31 bytes.</li>.<
3f70: 6c 69 3e 54 68 65 20 6f 70 74 69 6d 69 7a 65 72  li>The optimizer
3f80: 20 77 69 6c 6c 20 6e 6f 77 20 73 63 61 6e 20 74   will now scan t
3f90: 61 62 6c 65 73 20 69 6e 20 74 68 65 20 72 65 76  ables in the rev
3fa0: 65 72 73 65 20 69 66 20 64 6f 69 6e 67 20 73 6f  erse if doing so
3fb0: 20 77 69 6c 6c 0a 20 20 20 20 73 61 74 69 73 66   will.    satisf
3fc0: 79 20 61 6e 20 4f 52 44 45 52 20 42 59 20 2e 2e  y an ORDER BY ..
3fd0: 2e 20 44 45 53 43 20 63 6c 61 75 73 65 2e 3c 2f  . DESC clause.</
3fe0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 66 75 6c 6c  li>.<li>The full
3ff0: 20 70 61 74 68 6e 61 6d 65 20 6f 66 20 74 68 65   pathname of the
4000: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 69   database file i
4010: 73 20 6e 6f 77 20 72 65 6d 65 6d 62 65 72 65 64  s now remembered
4020: 20 65 76 65 6e 20 69 66 0a 20 20 20 20 61 20 72   even if.    a r
4030: 65 6c 61 74 69 76 65 20 70 61 74 68 20 69 73 20  elative path is 
4040: 70 61 73 73 65 64 20 69 6e 74 6f 20 73 71 6c 69  passed into sqli
4050: 74 65 5f 6f 70 65 6e 28 29 2e 20 20 54 68 69 73  te_open().  This
4060: 20 61 6c 6c 6f 77 73 20 0a 20 20 20 20 74 68 65   allows .    the
4070: 20 6c 69 62 72 61 72 79 20 74 6f 20 63 6f 6e 74   library to cont
4080: 69 6e 75 65 20 6f 70 65 72 61 74 69 6e 67 20 63  inue operating c
4090: 6f 72 72 65 63 74 6c 79 20 61 66 74 65 72 20 61  orrectly after a
40a0: 20 63 68 64 69 72 28 29 2e 3c 2f 6c 69 3e 0a 3c   chdir().</li>.<
40b0: 6c 69 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65  li>Speed improve
40c0: 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 56 44 42  ments in the VDB
40d0: 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 6f 74 73  E.</li>.<li>Lots
40e0: 20 6f 66 20 6c 69 74 74 6c 65 20 62 75 67 20 66   of little bug f
40f0: 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixes.</li>.}..ch
4100: 6e 67 20 7b 32 30 30 32 20 4f 63 74 20 33 30 20  ng {2002 Oct 30 
4110: 28 32 2e 37 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 56  (2.7.3)} {.<li>V
4120: 61 72 69 6f 75 73 20 63 6f 6d 70 69 6c 65 72 20  arious compiler 
4130: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 66 69  compatibility fi
4140: 78 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  xes.</li>.<li>Fi
4150: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 22  x a bug in the "
4160: 65 78 70 72 20 49 4e 20 28 29 22 20 6f 70 65 72  expr IN ()" oper
4170: 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ator.</li>.<li>A
4180: 63 63 65 70 74 20 63 6f 6c 75 6d 6e 20 6e 61 6d  ccept column nam
4190: 65 73 20 69 6e 20 70 61 72 65 6e 74 68 65 73 65  es in parenthese
41a0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
41b0: 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 73  a problem with s
41c0: 74 72 69 6e 67 20 6d 65 6d 6f 72 79 20 6d 61 6e  tring memory man
41d0: 61 67 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 56  agement in the V
41e0: 44 42 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  DBE</li>.<li>Fix
41f0: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 22 74   a bug in the "t
4200: 61 62 6c 65 5f 69 6e 66 6f 22 20 70 72 61 67 6d  able_info" pragm
4210: 61 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f  a"</li>.<li>Expo
4220: 72 74 20 74 68 65 20 73 71 6c 69 74 65 5f 66 75  rt the sqlite_fu
4230: 6e 63 74 69 6f 6e 5f 74 79 70 65 28 29 20 41 50  nction_type() AP
4240: 49 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68  I function in th
4250: 65 20 57 69 6e 64 6f 77 73 20 44 4c 4c 3c 2f 6c  e Windows DLL</l
4260: 69 3e 0a 3c 6c 69 3e 46 69 78 20 6c 6f 63 6b 69  i>.<li>Fix locki
4270: 6e 67 20 62 65 68 61 76 69 6f 72 20 75 6e 64 65  ng behavior unde
4280: 72 20 77 69 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 3c  r windows</li>.<
4290: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
42a0: 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c  LEFT OUTER JOIN<
42b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
42c0: 30 32 20 53 65 70 20 32 35 20 28 32 2e 37 2e 32  02 Sep 25 (2.7.2
42d0: 29 7d 20 7b 0a 3c 6c 69 3e 50 72 65 76 65 6e 74  )} {.<li>Prevent
42e0: 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 6f 76   journal file ov
42f0: 65 72 66 6c 6f 77 73 20 6f 6e 20 68 75 67 65 20  erflows on huge 
4300: 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c  transactions.</l
4310: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d  i>.<li>Fix a mem
4320: 6f 72 79 20 6c 65 61 6b 20 74 68 61 74 20 6f 63  ory leak that oc
4330: 63 75 72 72 65 64 20 77 68 65 6e 20 73 71 6c 69  curred when sqli
4340: 74 65 5f 6f 70 65 6e 28 29 20 66 61 69 6c 65 64  te_open() failed
4350: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 48 6f 6e 6f 72  .</li>.<li>Honor
4360: 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 61 6e   the ORDER BY an
4370: 64 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6f  d LIMIT clause o
4380: 66 20 61 20 53 45 4c 45 43 54 20 65 76 65 6e 20  f a SELECT even 
4390: 69 66 20 74 68 65 0a 20 20 20 20 72 65 73 75 6c  if the.    resul
43a0: 74 20 73 65 74 20 69 73 20 75 73 65 64 20 66 6f  t set is used fo
43b0: 72 20 61 6e 20 49 4e 53 45 52 54 2e 3c 2f 6c 69  r an INSERT.</li
43c0: 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 70 75 74  >.<li>Do not put
43d0: 20 77 72 69 74 65 20 6c 6f 63 6b 73 20 6f 6e 20   write locks on 
43e0: 74 68 65 20 66 69 6c 65 20 75 73 65 64 20 74 6f  the file used to
43f0: 20 68 6f 6c 64 20 54 45 4d 50 20 74 61 62 6c 65   hold TEMP table
4400: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
4410: 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  d documentation 
4420: 6f 6e 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e  on SELECT DISTIN
4430: 43 54 20 61 6e 64 20 6f 6e 20 68 6f 77 20 53 51  CT and on how SQ
4440: 4c 69 74 65 20 68 61 6e 64 6c 65 73 20 4e 55 4c  Lite handles NUL
4450: 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  Ls.</li>.<li>Fix
4460: 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20   a problem that 
4470: 77 61 73 20 63 61 75 73 69 6e 67 20 70 6f 6f 72  was causing poor
4480: 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 77 68 65   performance whe
4490: 6e 20 6d 61 6e 79 20 74 68 6f 75 73 61 6e 64 73  n many thousands
44a0: 0a 20 20 20 20 6f 66 20 53 51 4c 20 73 74 61 74  .    of SQL stat
44b0: 65 6d 65 6e 74 73 20 77 65 72 65 20 65 78 65 63  ements were exec
44c0: 75 74 65 64 20 62 79 20 61 20 73 69 6e 67 6c 65  uted by a single
44d0: 20 73 71 6c 69 74 65 5f 65 78 65 63 28 29 20 63   sqlite_exec() c
44e0: 61 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  all.</li>.}..chn
44f0: 67 20 7b 32 30 30 32 20 41 75 67 20 33 31 20 28  g {2002 Aug 31 (
4500: 32 2e 37 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.7.1)} {.<li>Fi
4510: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 4f  x a bug in the O
4520: 52 44 45 52 20 42 59 20 6c 6f 67 69 63 20 74 68  RDER BY logic th
4530: 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65  at was introduce
4540: 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 37  d in version 2.7
4550: 2e 30 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 2d 73 74  .0</li>.<li>C-st
4560: 79 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65  yle comments are
4570: 20 6e 6f 77 20 61 63 63 65 70 74 65 64 20 62 79   now accepted by
4580: 20 74 68 65 20 74 6f 6b 65 6e 69 7a 65 72 2e 3c   the tokenizer.<
4590: 2f 6c 69 3e 0a 3c 6c 69 3e 49 4e 53 45 52 54 20  /li>.<li>INSERT 
45a0: 72 75 6e 73 20 61 20 6c 69 74 74 6c 65 20 66 61  runs a little fa
45b0: 73 74 65 72 20 77 68 65 6e 20 74 68 65 20 73 6f  ster when the so
45c0: 75 72 63 65 20 69 73 20 61 20 53 45 4c 45 43 54  urce is a SELECT
45d0: 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e   statement.</li>
45e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41  .}..chng {2002 A
45f0: 75 67 20 32 35 20 28 32 2e 37 2e 30 29 7d 20 7b  ug 25 (2.7.0)} {
4600: 0a 3c 6c 69 3e 4d 61 6b 65 20 61 20 64 69 73 74  .<li>Make a dist
4610: 69 6e 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20  inction between 
4620: 6e 75 6d 65 72 69 63 20 61 6e 64 20 74 65 78 74  numeric and text
4630: 20 76 61 6c 75 65 73 20 77 68 65 6e 20 73 6f 72   values when sor
4640: 74 69 6e 67 2e 0a 20 20 20 20 54 65 78 74 20 76  ting..    Text v
4650: 61 6c 75 65 73 20 73 6f 72 74 20 61 63 63 6f 72  alues sort accor
4660: 64 69 6e 67 20 74 6f 20 6d 65 6d 63 6d 70 28 29  ding to memcmp()
4670: 2e 20 20 4e 75 6d 65 72 69 63 20 76 61 6c 75 65  .  Numeric value
4680: 73 20 73 6f 72 74 20 69 6e 0a 20 20 20 20 6e 75  s sort in.    nu
4690: 6d 65 72 69 63 20 6f 72 64 65 72 2e 3c 2f 6c 69  meric order.</li
46a0: 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 6d 75 6c 74  >.<li>Allow mult
46b0: 69 70 6c 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75  iple simultaneou
46c0: 73 20 72 65 61 64 65 72 73 20 75 6e 64 65 72 20  s readers under 
46d0: 77 69 6e 64 6f 77 73 20 62 79 20 73 69 6d 75 6c  windows by simul
46e0: 61 74 69 6e 67 0a 20 20 20 20 74 68 65 20 72 65  ating.    the re
46f0: 61 64 65 72 2f 77 72 69 74 65 72 73 20 6c 6f 63  ader/writers loc
4700: 6b 73 20 74 68 61 74 20 61 72 65 20 6d 69 73 73  ks that are miss
4710: 69 6e 67 20 66 72 6f 6d 20 57 69 6e 39 35 2f 39  ing from Win95/9
4720: 38 2f 4d 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  8/ME.</li>.<li>A
4730: 6e 20 65 72 72 6f 72 20 69 73 20 6e 6f 77 20 72  n error is now r
4740: 65 74 75 72 6e 65 64 20 77 68 65 6e 20 74 72 79  eturned when try
4750: 69 6e 67 20 74 6f 20 73 74 61 72 74 20 61 20 74  ing to start a t
4760: 72 61 6e 73 61 63 74 69 6f 6e 20 69 66 0a 20 20  ransaction if.  
4770: 20 20 61 6e 6f 74 68 65 72 20 74 72 61 6e 73 61    another transa
4780: 63 74 69 6f 6e 20 69 73 20 61 6c 72 65 61 64 79  ction is already
4790: 20 61 63 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a   active.</li>.}.
47a0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20  .chng {2002 Aug 
47b0: 31 32 20 28 32 2e 36 2e 33 29 7d 20 7b 0a 3c 6c  12 (2.6.3)} {.<l
47c0: 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74  i>Add the abilit
47d0: 79 20 74 6f 20 72 65 61 64 20 62 6f 74 68 20 6c  y to read both l
47e0: 69 74 74 6c 65 2d 65 6e 64 69 61 6e 20 61 6e 64  ittle-endian and
47f0: 20 62 69 67 2d 65 6e 64 69 61 6e 20 64 61 74 61   big-endian data
4800: 62 61 73 65 73 2e 0a 20 20 20 20 53 6f 20 64 61  bases..    So da
4810: 74 61 62 61 73 65 20 63 72 65 61 74 65 64 20 75  tabase created u
4820: 6e 64 65 72 20 53 75 6e 4f 53 20 6f 72 20 4d 61  nder SunOS or Ma
4830: 63 4f 53 58 20 63 61 6e 20 62 65 20 72 65 61 64  cOSX can be read
4840: 20 61 6e 64 20 77 72 69 74 74 65 6e 0a 20 20 20   and written.   
4850: 20 75 6e 64 65 72 20 4c 69 6e 75 78 20 6f 72 20   under Linux or 
4860: 57 69 6e 64 6f 77 73 20 61 6e 64 20 76 69 63 65  Windows and vice
4870: 20 76 65 72 73 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69   versa.</li>.<li
4880: 3e 43 6f 6e 76 65 72 74 20 74 6f 20 74 68 65 20  >Convert to the 
4890: 6e 65 77 20 77 65 62 73 69 74 65 3a 20 68 74 74  new website: htt
48a0: 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f  p://www.sqlite.o
48b0: 72 67 2f 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  rg/</li>.<li>All
48c0: 6f 77 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20  ow transactions 
48d0: 74 6f 20 73 70 61 6e 20 4c 69 6e 75 78 20 54 68  to span Linux Th
48e0: 72 65 61 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  reads</li>.<li>B
48f0: 75 67 20 66 69 78 20 69 6e 20 74 68 65 20 70 72  ug fix in the pr
4900: 6f 63 65 73 73 69 6e 67 20 6f 66 20 74 68 65 20  ocessing of the 
4910: 4f 52 44 45 52 20 42 59 20 63 6c 61 75 73 65 20  ORDER BY clause 
4920: 66 6f 72 20 47 52 4f 55 50 20 42 59 20 71 75 65  for GROUP BY que
4930: 72 69 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ries</li>.}..chn
4940: 67 20 7b 32 30 30 32 20 4a 6c 79 20 33 30 20 28  g {2002 Jly 30 (
4950: 32 2e 36 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 54 65  2.6.2)} {.<li>Te
4960: 78 74 20 66 69 6c 65 73 20 72 65 61 64 20 62 79  xt files read by
4970: 20 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e   the COPY comman
4980: 64 20 63 61 6e 20 6e 6f 77 20 68 61 76 65 20 6c  d can now have l
4990: 69 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 73 0a  ine terminators.
49a0: 20 20 20 20 6f 66 20 4c 46 2c 20 20 43 52 4c 46      of LF,  CRLF
49b0: 2c 20 6f 72 20 43 52 2e 3c 2f 6c 69 3e 0a 3c 6c  , or CR.</li>.<l
49c0: 69 3e 53 51 4c 49 54 45 5f 42 55 53 59 20 69 73  i>SQLITE_BUSY is
49d0: 20 68 61 6e 64 6c 65 64 20 63 6f 72 72 65 63 74   handled correct
49e0: 6c 79 20 69 66 20 65 6e 63 6f 75 6e 74 65 72 65  ly if encountere
49f0: 64 20 64 75 72 69 6e 67 20 64 61 74 61 62 61 73  d during databas
4a00: 65 0a 20 20 20 20 69 6e 69 74 69 61 6c 69 7a 61  e.    initializa
4a10: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  tion.</li>.<li>F
4a20: 69 78 20 74 6f 20 55 50 44 41 54 45 20 74 72 69  ix to UPDATE tri
4a30: 67 67 65 72 73 20 6f 6e 20 54 45 4d 50 20 74 61  ggers on TEMP ta
4a40: 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  bles.</li>.<li>D
4a50: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
4a60: 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ates.</li>.}..ch
4a70: 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 39 20  ng {2002 Jly 19 
4a80: 28 32 2e 36 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 49  (2.6.1)} {.<li>I
4a90: 6e 63 6c 75 64 65 20 61 20 73 74 61 74 69 63 20  nclude a static 
4aa0: 73 74 72 69 6e 67 20 69 6e 20 74 68 65 20 6c 69  string in the li
4ab0: 62 72 61 72 79 20 74 68 61 74 20 72 65 73 70 6f  brary that respo
4ac0: 6e 64 73 20 74 6f 20 74 68 65 20 52 43 53 0a 20  nds to the RCS. 
4ad0: 20 20 20 22 69 64 65 6e 74 22 20 63 6f 6d 6d 61     "ident" comma
4ae0: 6e 64 20 61 6e 64 20 77 68 69 63 68 20 63 6f 6e  nd and which con
4af0: 74 61 69 6e 73 20 74 68 65 20 6c 69 62 72 61 72  tains the librar
4b00: 79 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  y version number
4b10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
4b20: 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c  n assertion fail
4b30: 75 72 65 20 74 68 61 74 20 6f 63 63 75 72 72 65  ure that occurre
4b40: 64 20 77 68 65 6e 20 64 65 6c 65 74 69 6e 67 20  d when deleting 
4b50: 61 6c 6c 20 72 6f 77 73 20 6f 66 0a 20 20 20 20  all rows of.    
4b60: 61 20 74 61 62 6c 65 20 77 69 74 68 20 74 68 65  a table with the
4b70: 20 22 63 6f 75 6e 74 5f 63 68 61 6e 67 65 73 22   "count_changes"
4b80: 20 70 72 61 67 6d 61 20 74 75 72 6e 65 64 20 6f   pragma turned o
4b90: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 74 74  n.</li>.<li>Bett
4ba0: 65 72 20 65 72 72 6f 72 20 72 65 70 6f 72 74 69  er error reporti
4bb0: 6e 67 20 77 68 65 6e 20 70 72 6f 62 6c 65 6d 73  ng when problems
4bc0: 20 6f 63 63 75 72 20 64 75 72 69 6e 67 20 74 68   occur during th
4bd0: 65 20 61 75 74 6f 6d 61 74 69 63 0a 20 20 20 20  e automatic.    
4be0: 32 2e 35 2e 36 20 74 6f 20 32 2e 36 2e 30 20 64  2.5.6 to 2.6.0 d
4bf0: 61 74 61 62 61 73 65 20 66 6f 72 6d 61 74 20 75  atabase format u
4c00: 70 67 72 61 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  pgrade.</li>.}..
4c10: 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 31  chng {2002 Jly 1
4c20: 37 20 28 32 2e 36 2e 30 29 7d 20 7b 0a 3c 6c 69  7 (2.6.0)} {.<li
4c30: 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d  >Change the form
4c40: 61 74 20 6f 66 20 69 6e 64 69 63 65 73 20 74 6f  at of indices to
4c50: 20 63 6f 72 72 65 63 74 20 61 20 64 65 73 69 67   correct a desig
4c60: 6e 20 66 6c 61 77 20 74 68 65 20 6f 72 69 67 69  n flaw the origi
4c70: 6e 61 74 65 64 0a 20 20 20 20 77 69 74 68 20 76  nated.    with v
4c80: 65 72 73 69 6f 6e 20 32 2e 31 2e 30 2e 20 20 3c  ersion 2.1.0.  <
4c90: 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22  font color="red"
4ca0: 3e 2a 2a 2a 20 54 68 69 73 20 69 73 20 61 6e 20  >*** This is an 
4cb0: 69 6e 63 6f 6d 70 61 74 69 62 6c 65 0a 20 20 20  incompatible.   
4cc0: 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 63 68 61   file format cha
4cd0: 6e 67 65 20 2a 2a 2a 3c 2f 66 6f 6e 74 3e 20 20  nge ***</font>  
4ce0: 57 68 65 6e 20 76 65 72 73 69 6f 6e 20 32 2e 36  When version 2.6
4cf0: 2e 30 20 6f 72 20 6c 61 74 65 72 20 6f 66 20 74  .0 or later of t
4d00: 68 65 0a 20 20 20 20 6c 69 62 72 61 72 79 20 61  he.    library a
4d10: 74 74 65 6d 70 74 73 20 74 6f 20 6f 70 65 6e 20  ttempts to open 
4d20: 61 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20  a database file 
4d30: 63 72 65 61 74 65 64 20 62 79 20 76 65 72 73 69  created by versi
4d40: 6f 6e 20 32 2e 35 2e 36 20 6f 72 0a 20 20 20 20  on 2.5.6 or.    
4d50: 65 61 72 6c 69 65 72 2c 20 69 74 20 77 69 6c 6c  earlier, it will
4d60: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61   automatically a
4d70: 6e 64 20 69 72 72 65 76 65 72 73 69 62 6c 79 20  nd irreversibly 
4d80: 63 6f 6e 76 65 72 74 20 74 68 65 20 66 69 6c 65  convert the file
4d90: 20 66 6f 72 6d 61 74 2e 0a 20 20 20 20 3c 62 3e   format..    <b>
4da0: 4d 61 6b 65 20 62 61 63 6b 75 70 20 63 6f 70 69  Make backup copi
4db0: 65 73 20 6f 66 20 6f 6c 64 65 72 20 64 61 74 61  es of older data
4dc0: 62 61 73 65 20 66 69 6c 65 73 20 62 65 66 6f 72  base files befor
4dd0: 65 20 6f 70 65 6e 69 6e 67 20 74 68 65 6d 20 77  e opening them w
4de0: 69 74 68 0a 20 20 20 20 76 65 72 73 69 6f 6e 20  ith.    version 
4df0: 32 2e 36 2e 30 20 6f 66 20 74 68 65 20 6c 69 62  2.6.0 of the lib
4e00: 72 61 72 79 2e 3c 2f 62 3e 0a 20 20 20 20 3c 2f  rary.</b>.    </
4e10: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4e20: 32 20 4a 6c 79 20 37 20 28 32 2e 35 2e 36 29 7d  2 Jly 7 (2.5.6)}
4e30: 20 7b 0a 3c 6c 69 3e 46 69 78 20 6d 6f 72 65 20   {.<li>Fix more 
4e40: 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 72 6f  problems with ro
4e50: 6c 6c 62 61 63 6b 2e 20 20 45 6e 68 61 6e 63 65  llback.  Enhance
4e60: 20 74 68 65 20 74 65 73 74 20 73 75 69 74 65 20   the test suite 
4e70: 74 6f 20 65 78 65 72 63 69 73 65 0a 20 20 20 20  to exercise.    
4e80: 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6c 6f 67  the rollback log
4e90: 69 63 20 65 78 74 65 6e 73 69 76 65 6c 79 20 69  ic extensively i
4ea0: 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 65 76 65  n order to preve
4eb0: 6e 74 20 61 6e 79 20 66 75 74 75 72 65 20 70 72  nt any future pr
4ec0: 6f 62 6c 65 6d 73 2e 0a 20 20 20 20 3c 2f 6c 69  oblems..    </li
4ed0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
4ee0: 4a 6c 79 20 36 20 28 32 2e 35 2e 35 29 7d 20 7b  Jly 6 (2.5.5)} {
4ef0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 77  .<li>Fix a bug w
4f00: 68 69 63 68 20 63 6f 75 6c 64 20 63 61 75 73 65  hich could cause
4f10: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
4f20: 74 69 6f 6e 20 64 75 72 69 6e 67 20 61 20 72 6f  tion during a ro
4f30: 6c 6c 62 61 63 6b 2e 0a 20 20 20 20 54 68 69 73  llback..    This
4f40: 20 62 75 67 73 20 77 61 73 20 69 6e 74 72 6f 64   bugs was introd
4f50: 75 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20  uced in version 
4f60: 32 2e 34 2e 30 20 62 79 20 74 68 65 20 66 72 65  2.4.0 by the fre
4f70: 65 6c 69 73 74 0a 20 20 20 20 6f 70 74 69 6d 69  elist.    optimi
4f80: 7a 61 74 69 6f 6e 20 6f 66 20 63 68 65 63 6b 69  zation of checki
4f90: 6e 67 20 5b 34 31 30 5d 2e 3c 2f 6c 69 3e 0a 3c  ng [410].</li>.<
4fa0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
4fb0: 61 67 67 72 65 67 61 74 65 20 66 75 6e 63 74 69  aggregate functi
4fc0: 6f 6e 73 20 66 6f 72 20 56 49 45 57 73 2e 3c 2f  ons for VIEWs.</
4fd0: 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69  li>.<li>Other mi
4fe0: 6e 6f 72 20 63 68 61 6e 67 65 73 20 61 6e 64 20  nor changes and 
4ff0: 65 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c  enhancements.</l
5000: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
5010: 20 4a 6c 79 20 31 20 28 32 2e 35 2e 34 29 7d 20   Jly 1 (2.5.4)} 
5020: 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 22  {.<li>Make the "
5030: 41 53 22 20 6b 65 79 77 6f 72 64 20 6f 70 74 69  AS" keyword opti
5040: 6f 6e 61 6c 20 61 67 61 69 6e 2e 3c 2f 6c 69 3e  onal again.</li>
5050: 0a 3c 6c 69 3e 54 68 65 20 64 61 74 61 74 79 70  .<li>The datatyp
5060: 65 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 6e 6f 77  e of columns now
5070: 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 34   appear in the 4
5080: 74 68 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74  th argument to t
5090: 68 65 0a 20 20 20 20 63 61 6c 6c 62 61 63 6b 2e  he.    callback.
50a0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
50b0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70  the <b>sqlite_op
50c0: 65 6e 5f 61 75 78 5f 66 69 6c 65 28 29 3c 2f 62  en_aux_file()</b
50d0: 3e 20 41 50 49 2c 20 74 68 6f 75 67 68 20 69 74  > API, though it
50e0: 20 69 73 20 73 74 69 6c 6c 0a 20 20 20 20 6d 6f   is still.    mo
50f0: 73 74 6c 79 20 75 6e 64 6f 63 75 6d 65 6e 74 65  stly undocumente
5100: 64 20 61 6e 64 20 75 6e 74 65 73 74 65 64 2e 3c  d and untested.<
5110: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
5120: 64 64 69 74 69 6f 6e 61 6c 20 74 65 73 74 20 63  dditional test c
5130: 61 73 65 73 20 61 6e 64 20 66 69 78 65 64 20 61  ases and fixed a
5140: 20 66 65 77 20 62 75 67 73 20 74 68 61 74 20 74   few bugs that t
5150: 68 6f 73 65 0a 20 20 20 20 74 65 73 74 20 63 61  hose.    test ca
5160: 73 65 73 20 66 6f 75 6e 64 2e 3c 2f 6c 69 3e 0a  ses found.</li>.
5170: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75  }..chng {2002 Ju
5180: 6e 20 32 34 20 28 32 2e 35 2e 33 29 7d 20 7b 0a  n 24 (2.5.3)} {.
5190: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 20 44 61  <li>Bug fix:  Da
51a0: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
51b0: 6e 20 63 61 6e 20 6f 63 63 75 72 20 64 75 65 20  n can occur due 
51c0: 74 6f 20 74 68 65 20 6f 70 74 69 6d 69 7a 61 74  to the optimizat
51d0: 69 6f 6e 0a 20 20 20 20 74 68 61 74 20 77 61 73  ion.    that was
51e0: 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76   introduced in v
51f0: 65 72 73 69 6f 6e 20 32 2e 34 2e 30 20 28 63 68  ersion 2.4.0 (ch
5200: 65 63 6b 2d 69 6e 20 5b 34 31 30 5d 29 2e 20 20  eck-in [410]).  
5210: 54 68 65 20 70 72 6f 62 6c 65 6d 0a 20 20 20 20  The problem.    
5220: 73 68 6f 75 6c 64 20 6e 6f 77 20 62 65 20 66 69  should now be fi
5230: 78 65 64 2e 20 20 54 68 65 20 75 73 65 20 6f 66  xed.  The use of
5240: 20 76 65 72 73 69 6f 6e 73 20 32 2e 34 2e 30 20   versions 2.4.0 
5250: 74 68 72 6f 75 67 68 20 32 2e 35 2e 32 20 69 73  through 2.5.2 is
5260: 0a 20 20 20 20 6e 6f 74 20 72 65 63 6f 6d 6d 65  .    not recomme
5270: 6e 64 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  nded.</li>.}..ch
5280: 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 32 34 20  ng {2002 Jun 24 
5290: 28 32 2e 35 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.5.2)} {.<li>A
52a0: 64 64 65 64 20 74 68 65 20 6e 65 77 20 3c 62 3e  dded the new <b>
52b0: 53 51 4c 49 54 45 5f 54 45 4d 50 5f 4d 41 53 54  SQLITE_TEMP_MAST
52c0: 45 52 3c 2f 62 3e 20 74 61 62 6c 65 20 77 68 69  ER</b> table whi
52d0: 63 68 20 72 65 63 6f 72 64 73 20 74 68 65 20 73  ch records the s
52e0: 63 68 65 6d 61 0a 20 20 20 20 66 6f 72 20 74 65  chema.    for te
52f0: 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 73 20 69  mporary tables i
5300: 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74  n the same way t
5310: 68 61 74 20 3c 62 3e 53 51 4c 49 54 45 5f 4d 41  hat <b>SQLITE_MA
5320: 53 54 45 52 3c 2f 62 3e 20 64 6f 65 73 20 66 6f  STER</b> does fo
5330: 72 0a 20 20 20 20 70 65 72 73 69 73 74 65 6e 74  r.    persistent
5340: 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c   tables.</li>.<l
5350: 69 3e 41 64 64 65 64 20 61 6e 20 6f 70 74 69 6d  i>Added an optim
5360: 69 7a 61 74 69 6f 6e 20 74 6f 20 55 4e 49 4f 4e  ization to UNION
5370: 20 41 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69   ALL</li>.<li>Fi
5380: 78 65 64 20 61 20 62 75 67 20 69 6e 20 74 68 65  xed a bug in the
5390: 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 4c   processing of L
53a0: 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f  EFT OUTER JOIN</
53b0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 4c 49 4d 49  li>.<li>The LIMI
53c0: 54 20 63 6c 61 75 73 65 20 6e 6f 77 20 77 6f 72  T clause now wor
53d0: 6b 73 20 6f 6e 20 73 75 62 73 65 6c 65 63 74 73  ks on subselects
53e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20  </li>.<li>ORDER 
53f0: 42 59 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73  BY works on subs
5400: 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  elects</li>.<li>
5410: 54 68 65 72 65 20 69 73 20 61 20 6e 65 77 20 54  There is a new T
5420: 79 70 65 4f 66 28 29 20 66 75 6e 63 74 69 6f 6e  ypeOf() function
5430: 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69   used to determi
5440: 6e 65 20 69 66 20 61 6e 20 65 78 70 72 65 73 73  ne if an express
5450: 69 6f 6e 0a 20 20 20 20 69 73 20 6e 75 6d 65 72  ion.    is numer
5460: 69 63 20 6f 72 20 74 65 78 74 2e 3c 2f 6c 69 3e  ic or text.</li>
5470: 0a 3c 6c 69 3e 41 75 74 6f 69 6e 63 72 65 6d 65  .<li>Autoincreme
5480: 6e 74 20 6e 6f 77 20 77 6f 72 6b 73 20 66 6f 72  nt now works for
5490: 20 49 4e 53 45 52 54 20 66 72 6f 6d 20 61 20 53   INSERT from a S
54a0: 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ELECT.</li>.}..c
54b0: 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 31 39  hng {2002 Jun 19
54c0: 20 28 32 2e 35 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.5.1)} {.<li>
54d0: 54 68 65 20 71 75 65 72 79 20 6f 70 74 69 6d 69  The query optimi
54e0: 7a 65 72 20 6e 6f 77 20 61 74 74 65 6d 70 74 73  zer now attempts
54f0: 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68   to implement th
5500: 65 20 4f 52 44 45 52 20 42 59 20 63 6c 61 75 73  e ORDER BY claus
5510: 65 0a 20 20 20 20 75 73 69 6e 67 20 61 6e 20 69  e.    using an i
5520: 6e 64 65 78 2e 20 20 53 6f 72 74 69 6e 67 20 69  ndex.  Sorting i
5530: 73 20 73 74 69 6c 6c 20 75 73 65 64 20 69 66 20  s still used if 
5540: 6e 6f 74 20 73 75 69 74 61 62 6c 65 20 69 6e 64  not suitable ind
5550: 65 78 20 69 73 0a 20 20 20 20 61 76 61 69 6c 61  ex is.    availa
5560: 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ble.</li>.}..chn
5570: 67 20 7b 32 30 30 32 20 4a 75 6e 20 31 37 20 28  g {2002 Jun 17 (
5580: 32 2e 35 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64  2.5.0)} {.<li>Ad
5590: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
55a0: 72 6f 77 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c  row triggers.</l
55b0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 53 51 4c  i>.<li>Added SQL
55c0: 2d 39 32 20 63 6f 6d 70 6c 69 61 6e 74 20 68 61  -92 compliant ha
55d0: 6e 64 6c 69 6e 67 20 6f 66 20 4e 55 4c 4c 73 2e  ndling of NULLs.
55e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75  </li>.<li>Add su
55f0: 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 66 75  pport for the fu
5600: 6c 6c 20 53 51 4c 2d 39 32 20 6a 6f 69 6e 20 73  ll SQL-92 join s
5610: 79 6e 74 61 78 20 61 6e 64 20 4c 45 46 54 20 4f  yntax and LEFT O
5620: 55 54 45 52 20 4a 4f 49 4e 73 2e 3c 2f 6c 69 3e  UTER JOINs.</li>
5630: 0a 3c 6c 69 3e 44 6f 75 62 6c 65 2d 71 75 6f 74  .<li>Double-quot
5640: 65 64 20 73 74 72 69 6e 67 73 20 69 6e 74 65 72  ed strings inter
5650: 70 72 65 74 65 64 20 61 73 20 63 6f 6c 75 6d 6e  preted as column
5660: 20 6e 61 6d 65 73 20 6e 6f 74 20 74 65 78 74 20   names not text 
5670: 6c 69 74 65 72 61 6c 73 2e 3c 2f 6c 69 3e 0a 3c  literals.</li>.<
5680: 6c 69 3e 50 61 72 73 65 20 28 62 75 74 20 64 6f  li>Parse (but do
5690: 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 29 20   not implement) 
56a0: 66 6f 72 65 69 67 6e 20 6b 65 79 73 2e 3c 2f 6c  foreign keys.</l
56b0: 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e  i>.<li>Performan
56c0: 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20  ce improvements 
56d0: 69 6e 20 74 68 65 20 70 61 72 73 65 72 2c 20 70  in the parser, p
56e0: 61 67 65 72 2c 20 61 6e 64 20 57 48 45 52 45 20  ager, and WHERE 
56f0: 63 6c 61 75 73 65 20 63 6f 64 65 0a 20 20 20 20  clause code.    
5700: 67 65 6e 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a  generator.</li>.
5710: 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 4c 49 4d  <li>Make the LIM
5720: 49 54 20 63 6c 61 75 73 65 20 77 6f 72 6b 20 6f  IT clause work o
5730: 6e 20 73 75 62 71 75 65 72 69 65 73 2e 20 20 28  n subqueries.  (
5740: 4f 52 44 45 52 20 42 59 20 73 74 69 6c 6c 20 64  ORDER BY still d
5750: 6f 65 73 20 6e 6f 74 0a 20 20 20 20 77 6f 72 6b  oes not.    work
5760: 2c 20 74 68 6f 75 67 68 2e 29 3c 2f 6c 69 3e 0a  , though.)</li>.
5770: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22 25  <li>Added the "%
5780: 51 22 20 65 78 70 61 6e 73 69 6f 6e 20 74 6f 20  Q" expansion to 
5790: 73 71 6c 69 74 65 5f 2a 5f 70 72 69 6e 74 66 28  sqlite_*_printf(
57a0: 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  ).</li>.<li>Bug 
57b0: 66 69 78 65 73 20 74 6f 6f 20 6e 75 6d 65 72 6f  fixes too numero
57c0: 75 73 20 74 6f 20 6d 65 6e 74 69 6f 6e 20 28 73  us to mention (s
57d0: 65 65 20 74 68 65 20 63 68 61 6e 67 65 20 6c 6f  ee the change lo
57e0: 67 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  g).</li>.}..chng
57f0: 20 7b 32 30 30 32 20 4d 61 79 20 30 39 20 28 32   {2002 May 09 (2
5800: 2e 34 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64  .4.12)} {.<li>Ad
5810: 64 65 64 20 6c 6f 67 69 63 20 74 6f 20 64 65 74  ded logic to det
5820: 65 63 74 20 77 68 65 6e 20 74 68 65 20 6c 69 62  ect when the lib
5830: 72 61 72 79 20 41 50 49 20 72 6f 75 74 69 6e 65  rary API routine
5840: 73 20 61 72 65 20 63 61 6c 6c 65 64 20 6f 75 74  s are called out
5850: 0a 20 20 20 20 6f 66 20 73 65 71 75 65 6e 63 65  .    of sequence
5860: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5870: 32 30 30 32 20 4d 61 79 20 30 38 20 28 32 2e 34  2002 May 08 (2.4
5880: 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  .11)} {.<li>Bug 
5890: 66 69 78 3a 20 43 6f 6c 75 6d 6e 20 6e 61 6d 65  fix: Column name
58a0: 73 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 20  s in the result 
58b0: 73 65 74 20 77 65 72 65 20 6e 6f 74 20 62 65 69  set were not bei
58c0: 6e 67 20 67 65 6e 65 72 61 74 65 64 0a 20 20 20  ng generated.   
58d0: 20 63 6f 72 72 65 63 74 6c 79 20 66 6f 72 20 73   correctly for s
58e0: 6f 6d 65 20 28 72 61 74 68 65 72 20 63 6f 6d 70  ome (rather comp
58f0: 6c 65 78 29 20 56 49 45 57 73 2e 20 20 54 68 69  lex) VIEWs.  Thi
5900: 73 20 63 6f 75 6c 64 20 63 61 75 73 65 20 61 0a  s could cause a.
5910: 20 20 20 20 73 65 67 66 61 75 6c 74 20 75 6e 64      segfault und
5920: 65 72 20 63 65 72 74 61 69 6e 20 63 69 72 63 75  er certain circu
5930: 6d 73 74 61 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 7d  mstances.</li>.}
5940: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79  ..chng {2002 May
5950: 20 30 32 20 28 32 2e 34 2e 31 30 29 7d 20 7b 0a   02 (2.4.10)} {.
5960: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 47 65 6e  <li>Bug fix: Gen
5970: 65 72 61 74 65 20 63 6f 72 72 65 63 74 20 63 6f  erate correct co
5980: 6c 75 6d 6e 20 68 65 61 64 65 72 73 20 77 68 65  lumn headers whe
5990: 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c  n a compound SEL
59a0: 45 43 54 20 69 73 20 75 73 65 64 0a 20 20 20 20  ECT is used.    
59b0: 61 73 20 61 20 73 75 62 71 75 65 72 79 2e 3c 2f  as a subquery.</
59c0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
59d0: 65 20 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65 5f  e sqlite_encode_
59e0: 62 69 6e 61 72 79 28 29 20 61 6e 64 20 73 71 6c  binary() and sql
59f0: 69 74 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61 72  ite_decode_binar
5a00: 79 28 29 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f  y() functions to
5a10: 0a 20 20 20 20 74 68 65 20 73 6f 75 72 63 65 20  .    the source 
5a20: 74 72 65 65 2e 20 20 42 75 74 20 74 68 65 79 20  tree.  But they 
5a30: 61 72 65 20 6e 6f 74 20 79 65 74 20 6c 69 6e 6b  are not yet link
5a40: 65 64 20 69 6e 74 6f 20 74 68 65 20 6c 69 62 72  ed into the libr
5a50: 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f  ary.</li>.<li>Do
5a60: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
5a70: 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78  tes.</li>.<li>Ex
5a80: 70 6f 72 74 20 74 68 65 20 73 71 6c 69 74 65 5f  port the sqlite_
5a90: 63 68 61 6e 67 65 73 28 29 20 66 75 6e 63 74 69  changes() functi
5aa0: 6f 6e 20 66 72 6f 6d 20 77 69 6e 64 6f 77 73 20  on from windows 
5ab0: 44 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  DLLs.</li>.<li>B
5ac0: 75 67 20 66 69 78 3a 20 44 6f 20 6e 6f 74 20 61  ug fix: Do not a
5ad0: 74 74 65 6d 70 74 20 74 68 65 20 73 75 62 71 75  ttempt the subqu
5ae0: 65 72 79 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f  ery flattening o
5af0: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 6e 20 71  ptimization on q
5b00: 75 65 72 69 65 73 0a 20 20 20 20 74 68 61 74 20  ueries.    that 
5b10: 6c 61 63 6b 20 61 20 46 52 4f 4d 20 63 6c 61 75  lack a FROM clau
5b20: 73 65 2e 20 20 54 6f 20 64 6f 20 73 6f 20 63 61  se.  To do so ca
5b30: 75 73 65 73 20 61 20 73 65 67 66 61 75 6c 74 2e  uses a segfault.
5b40: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5b50: 30 30 32 20 41 70 72 20 32 31 20 28 32 2e 34 2e  002 Apr 21 (2.4.
5b60: 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  9)} {.<li>Fix a 
5b70: 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61 75  bug that was cau
5b80: 73 69 6e 67 20 74 68 65 20 70 72 65 63 6f 6d 70  sing the precomp
5b90: 69 6c 65 64 20 62 69 6e 61 72 79 20 6f 66 20 53  iled binary of S
5ba0: 51 4c 49 54 45 2e 45 58 45 20 74 6f 0a 20 20 20  QLITE.EXE to.   
5bb0: 20 72 65 70 6f 72 74 20 22 6f 75 74 20 6f 66 20   report "out of 
5bc0: 6d 65 6d 6f 72 79 22 20 75 6e 64 65 72 20 57 69  memory" under Wi
5bd0: 6e 64 6f 77 73 20 39 38 2e 3c 2f 6c 69 3e 0a 7d  ndows 98.</li>.}
5be0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72  ..chng {2002 Apr
5bf0: 20 32 30 20 28 32 2e 34 2e 38 29 7d 20 7b 0a 3c   20 (2.4.8)} {.<
5c00: 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 56 49 45  li>Make sure VIE
5c10: 57 73 20 61 72 65 20 63 72 65 61 74 65 64 20 61  Ws are created a
5c20: 66 74 65 72 20 74 68 65 69 72 20 63 6f 72 72 65  fter their corre
5c30: 73 70 6f 6e 64 69 6e 67 20 54 41 42 4c 45 73 20  sponding TABLEs 
5c40: 69 6e 20 74 68 65 0a 20 20 20 20 6f 75 74 70 75  in the.    outpu
5c50: 74 20 6f 66 20 74 68 65 20 3c 62 3e 2e 64 75 6d  t of the <b>.dum
5c60: 70 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e  p</b> command in
5c70: 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e   the shell.</li>
5c80: 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70 72 6f  .<li>Speed impro
5c90: 76 65 6d 65 6e 74 73 3a 20 44 6f 20 6e 6f 74 20  vements: Do not 
5ca0: 64 6f 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 75  do synchronous u
5cb0: 70 64 61 74 65 73 20 6f 6e 20 54 45 4d 50 20 74  pdates on TEMP t
5cc0: 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ables.</li>.<li>
5cd0: 4d 61 6e 79 20 69 6d 70 72 6f 76 65 6d 65 6e 74  Many improvement
5ce0: 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e  s and enhancemen
5cf0: 74 73 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e  ts to the shell.
5d00: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74  </li>.<li>Make t
5d10: 68 65 20 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45  he GLOB and LIKE
5d20: 20 6f 70 65 72 61 74 6f 72 73 20 66 75 6e 63 74   operators funct
5d30: 69 6f 6e 73 20 74 68 61 74 20 63 61 6e 20 62 65  ions that can be
5d40: 20 6f 76 65 72 72 69 64 64 65 6e 0a 20 20 20 20   overridden.    
5d50: 62 79 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 2e  by a programmer.
5d60: 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 2c 20 66    This allows, f
5d70: 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20  or example, the 
5d80: 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 20 74 6f  LIKE operator to
5d90: 0a 20 20 20 20 62 65 20 63 68 61 6e 67 65 64 20  .    be changed 
5da0: 74 6f 20 62 65 20 63 61 73 65 20 73 65 6e 73 69  to be case sensi
5db0: 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tive.</li>.}..ch
5dc0: 6e 67 20 7b 32 30 30 32 20 41 70 72 20 30 36 20  ng {2002 Apr 06 
5dd0: 28 32 2e 34 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.4.7)} {.<li>A
5de0: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  dd the ability t
5df0: 6f 20 70 75 74 20 54 41 42 4c 45 2e 2a 20 69 6e  o put TABLE.* in
5e00: 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74   the column list
5e10: 20 6f 66 20 61 0a 20 20 20 20 53 45 4c 45 43 54   of a.    SELECT
5e20: 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e   statement.</li>
5e30: 0a 3c 6c 69 3e 50 65 72 6d 69 74 20 53 45 4c 45  .<li>Permit SELE
5e40: 43 54 20 73 74 61 74 65 6d 65 6e 74 73 20 77 69  CT statements wi
5e50: 74 68 6f 75 74 20 61 20 46 52 4f 4d 20 63 6c 61  thout a FROM cla
5e60: 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  use.</li>.<li>Ad
5e70: 64 65 64 20 74 68 65 20 3c 62 3e 6c 61 73 74 5f  ded the <b>last_
5e80: 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f  insert_rowid()</
5e90: 62 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e  b> SQL function.
5ea0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
5eb0: 20 63 6f 75 6e 74 20 72 6f 77 73 20 77 68 65 72   count rows wher
5ec0: 65 20 74 68 65 20 49 47 4e 4f 52 45 20 63 6f 6e  e the IGNORE con
5ed0: 66 6c 69 63 74 20 72 65 73 6f 6c 75 74 69 6f 6e  flict resolution
5ee0: 20 6f 63 63 75 72 73 20 69 6e 0a 20 20 20 20 74   occurs in.    t
5ef0: 68 65 20 72 6f 77 20 63 6f 75 6e 74 2e 3c 2f 6c  he row count.</l
5f00: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65  i>.<li>Make sure
5f10: 20 66 75 6e 63 74 69 6f 6e 73 20 65 78 70 72 65   functions expre
5f20: 73 73 69 6f 6e 73 20 69 6e 20 74 68 65 20 56 41  ssions in the VA
5f30: 4c 55 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61  LUES clause of a
5f40: 6e 20 49 4e 53 45 52 54 0a 20 20 20 20 61 72 65  n INSERT.    are
5f50: 20 63 6f 72 72 65 63 74 2e 3c 2f 6c 69 3e 0a 3c   correct.</li>.<
5f60: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e  li>Added the <b>
5f70: 73 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 29  sqlite_changes()
5f80: 3c 2f 62 3e 20 41 50 49 20 66 75 6e 63 74 69 6f  </b> API functio
5f90: 6e 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20  n to return the 
5fa0: 6e 75 6d 62 65 72 0a 20 20 20 20 6f 66 20 72 6f  number.    of ro
5fb0: 77 20 74 68 61 74 20 63 68 61 6e 67 65 64 20 69  w that changed i
5fc0: 6e 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e  n the most recen
5fd0: 74 20 6f 70 65 72 61 74 69 6f 6e 2e 3c 2f 6c 69  t operation.</li
5fe0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
5ff0: 41 70 72 20 30 32 20 28 32 2e 34 2e 36 29 7d 20  Apr 02 (2.4.6)} 
6000: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43  {.<li>Bug fix: C
6010: 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20  orrectly handle 
6020: 74 65 72 6d 73 20 69 6e 20 74 68 65 20 57 48 45  terms in the WHE
6030: 52 45 20 63 6c 61 75 73 65 20 6f 66 20 61 20 6a  RE clause of a j
6040: 6f 69 6e 20 74 68 61 74 0a 20 20 20 20 64 6f 20  oin that.    do 
6050: 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 61 20 63 6f  not contain a co
6060: 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f  mparison operato
6070: 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  r.</li>.}..chng 
6080: 7b 32 30 30 32 20 41 70 72 20 30 31 20 28 32 2e  {2002 Apr 01 (2.
6090: 34 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  4.5)} {.<li>Bug 
60a0: 66 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68  fix: Correctly h
60b0: 61 6e 64 6c 65 20 66 75 6e 63 74 69 6f 6e 73 20  andle functions 
60c0: 74 68 61 74 20 61 70 70 65 61 72 20 69 6e 20 74  that appear in t
60d0: 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 0a  he WHERE clause.
60e0: 20 20 20 20 6f 66 20 61 20 6a 6f 69 6e 2e 3c 2f      of a join.</
60f0: 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 74 68 65  li>.<li>When the
6100: 20 50 52 41 47 4d 41 20 76 64 62 65 5f 74 72 61   PRAGMA vdbe_tra
6110: 63 65 3d 4f 4e 20 69 73 20 73 65 74 2c 20 63 6f  ce=ON is set, co
6120: 72 72 65 63 74 6c 79 20 70 72 69 6e 74 20 74 68  rrectly print th
6130: 65 20 50 33 20 6f 70 65 72 61 6e 64 0a 20 20 20  e P3 operand.   
6140: 20 76 61 6c 75 65 20 77 68 65 6e 20 69 74 20 69   value when it i
6150: 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61  s a pointer to a
6160: 20 73 74 72 75 63 74 75 72 65 20 72 61 74 68 65   structure rathe
6170: 72 20 74 68 61 6e 20 61 20 70 6f 69 6e 74 65 72  r than a pointer
6180: 20 74 6f 0a 20 20 20 20 61 20 73 74 72 69 6e 67   to.    a string
6190: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20  .</li>.<li>When 
61a0: 69 6e 73 65 72 74 69 6e 67 20 61 6e 20 65 78 70  inserting an exp
61b0: 6c 69 63 69 74 20 4e 55 4c 4c 20 69 6e 74 6f 20  licit NULL into 
61c0: 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41  an INTEGER PRIMA
61d0: 52 59 20 4b 45 59 2c 20 63 6f 6e 76 65 72 74 0a  RY KEY, convert.
61e0: 20 20 20 20 74 68 65 20 4e 55 4c 4c 20 76 61 6c      the NULL val
61f0: 75 65 20 69 6e 74 6f 20 61 20 75 6e 69 71 75 65  ue into a unique
6200: 20 6b 65 79 20 61 75 74 6f 6d 61 74 69 63 61 6c   key automatical
6210: 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ly.</li>.}..chng
6220: 20 7b 32 30 30 32 20 4d 61 72 20 32 34 20 28 32   {2002 Mar 24 (2
6230: 2e 34 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c  .4.4)} {.<li>All
6240: 6f 77 20 22 56 49 45 57 22 20 74 6f 20 62 65 20  ow "VIEW" to be 
6250: 61 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 3c 2f 6c  a column name</l
6260: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
6270: 70 6f 72 74 20 66 6f 72 20 43 41 53 45 20 65 78  port for CASE ex
6280: 70 72 65 73 73 69 6f 6e 73 20 28 70 61 74 63 68  pressions (patch
6290: 20 66 72 6f 6d 20 44 61 6e 20 4b 65 6e 6e 65 64   from Dan Kenned
62a0: 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  y)</li>.<li>Adde
62b0: 64 20 52 50 4d 53 20 74 6f 20 74 68 65 20 64 65  d RPMS to the de
62c0: 6c 69 76 65 72 79 20 28 70 61 74 63 68 65 73 20  livery (patches 
62d0: 66 72 6f 6d 20 44 6f 75 67 20 48 65 6e 72 79 29  from Doug Henry)
62e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79  </li>.<li>Fix ty
62f0: 70 6f 73 20 69 6e 20 74 68 65 20 64 6f 63 75 6d  pos in the docum
6300: 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c  entation</li>.<l
6310: 69 3e 43 75 74 20 6f 76 65 72 20 63 6f 6e 66 69  i>Cut over confi
6320: 67 75 72 61 74 69 6f 6e 20 6d 61 6e 61 67 65 6d  guration managem
6330: 65 6e 74 20 74 6f 20 61 20 6e 65 77 20 43 56 53  ent to a new CVS
6340: 20 72 65 70 6f 73 69 74 6f 72 79 20 77 69 74 68   repository with
6350: 0a 20 20 20 20 69 74 73 20 6f 77 6e 20 43 56 53  .    its own CVS
6360: 54 72 61 63 20 62 75 67 20 74 72 61 63 6b 69 6e  Trac bug trackin
6370: 67 20 73 79 73 74 65 6d 2e 3c 2f 6c 69 3e 0a 7d  g system.</li>.}
6380: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72  ..chng {2002 Mar
6390: 20 32 32 20 28 32 2e 34 2e 33 29 7d 20 7b 0a 3c   22 (2.4.3)} {.<
63a0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
63b0: 53 45 4c 45 43 54 20 74 68 61 74 20 6f 63 63 75  SELECT that occu
63c0: 72 73 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75  rs when a compou
63d0: 6e 64 20 53 45 4c 45 43 54 20 69 73 20 75 73 65  nd SELECT is use
63e0: 64 20 61 73 20 61 0a 20 20 20 20 73 75 62 71 75  d as a.    subqu
63f0: 65 72 79 20 69 6e 20 74 68 65 20 46 52 4f 4d 20  ery in the FROM 
6400: 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69  of a SELECT.</li
6410: 3e 0a 3c 6c 69 3e 54 68 65 20 3c 62 3e 73 71 6c  >.<li>The <b>sql
6420: 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c  ite_get_table()<
6430: 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 77  /b> function now
6440: 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f   returns an erro
6450: 72 20 69 66 20 79 6f 75 0a 20 20 20 20 67 69 76  r if you.    giv
6460: 65 20 69 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65  e it two or more
6470: 20 53 45 4c 45 43 54 73 20 74 68 61 74 20 72 65   SELECTs that re
6480: 74 75 72 6e 20 64 69 66 66 65 72 65 6e 74 20 6e  turn different n
6490: 75 6d 62 65 72 73 20 6f 66 20 63 6f 6c 75 6d 6e  umbers of column
64a0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
64b0: 7b 32 30 30 32 20 4d 61 72 20 31 34 20 28 32 2e  {2002 Mar 14 (2.
64c0: 34 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  4.2)} {.<li>Bug 
64d0: 66 69 78 3a 20 46 69 78 20 61 6e 20 61 73 73 65  fix: Fix an asse
64e0: 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 74 68  rtion failure th
64f0: 61 74 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e  at occurred when
6500: 20 52 4f 57 49 44 20 77 61 73 20 61 20 63 6f 6c   ROWID was a col
6510: 75 6d 6e 0a 20 20 20 20 69 6e 20 61 20 53 45 4c  umn.    in a SEL
6520: 45 43 54 20 73 74 61 74 65 6d 65 6e 74 20 6f 6e  ECT statement on
6530: 20 61 20 76 69 65 77 2e 3c 2f 6c 69 3e 0a 3c 6c   a view.</li>.<l
6540: 69 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20 61  i>Bug fix: Fix a
6550: 6e 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20  n uninitialized 
6560: 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20  variable in the 
6570: 56 44 42 45 20 74 68 61 74 20 77 6f 75 6c 64 20  VDBE that would 
6580: 63 6f 75 6c 64 20 61 6e 0a 20 20 20 20 61 73 73  could an.    ass
6590: 65 72 74 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69  ert failure.</li
65a0: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6f  >.<li>Make the o
65b0: 73 2e 68 20 68 65 61 64 65 72 20 66 69 6c 65 20  s.h header file 
65c0: 6d 6f 72 65 20 72 6f 62 75 73 74 20 69 6e 20 64  more robust in d
65d0: 65 74 65 63 74 69 6e 67 20 77 68 65 6e 20 74 68  etecting when th
65e0: 65 20 63 6f 6d 70 69 6c 65 20 69 73 0a 20 20 20  e compile is.   
65f0: 20 66 6f 72 20 77 69 6e 64 6f 77 73 20 61 6e 64   for windows and
6600: 20 77 68 65 6e 20 69 74 20 69 73 20 66 6f 72 20   when it is for 
6610: 75 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  unix.</li>.}..ch
6620: 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 31 33 20  ng {2002 Mar 13 
6630: 28 32 2e 34 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 55  (2.4.1)} {.<li>U
6640: 73 69 6e 67 20 61 6e 20 75 6e 6e 61 6d 65 64 20  sing an unnamed 
6650: 73 75 62 71 75 65 72 79 20 69 6e 20 61 20 46 52  subquery in a FR
6660: 4f 4d 20 63 6c 61 75 73 65 20 77 6f 75 6c 64 20  OM clause would 
6670: 63 61 75 73 65 20 61 20 73 65 67 66 61 75 6c 74  cause a segfault
6680: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70  .</li>.<li>The p
6690: 61 72 73 65 72 20 6e 6f 77 20 69 6e 73 69 73 74  arser now insist
66a0: 73 20 6f 6e 20 73 65 65 69 6e 67 20 61 20 73 65  s on seeing a se
66b0: 6d 69 63 6f 6c 6f 6e 20 6f 72 20 74 68 65 20 65  micolon or the e
66c0: 6e 64 20 6f 66 20 69 6e 70 75 74 20 62 65 66 6f  nd of input befo
66d0: 72 65 0a 20 20 20 20 65 78 65 63 75 74 69 6e 67  re.    executing
66e0: 20 61 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 54   a statement.  T
66f0: 68 69 73 20 61 76 6f 69 64 73 20 61 6e 20 61 63  his avoids an ac
6700: 63 69 64 65 6e 74 61 6c 20 64 69 73 61 73 74 65  cidental disaste
6710: 72 20 69 66 20 74 68 65 0a 20 20 20 20 57 48 45  r if the.    WHE
6720: 52 45 20 6b 65 79 77 6f 72 64 20 69 73 20 6d 69  RE keyword is mi
6730: 73 73 70 65 6c 6c 65 64 20 69 6e 20 61 6e 20 55  sspelled in an U
6740: 50 44 41 54 45 20 6f 72 20 44 45 4c 45 54 45 20  PDATE or DELETE 
6750: 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a  statement.</li>.
6760: 7d 0a 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  }...chng {2002 M
6770: 61 72 20 31 30 20 28 32 2e 34 2e 30 29 7d 20 7b  ar 10 (2.4.0)} {
6780: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
6790: 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 61 6e 69  name of the sani
67a0: 74 79 5f 63 68 65 63 6b 20 50 52 41 47 4d 41 20  ty_check PRAGMA 
67b0: 74 6f 20 3c 62 3e 69 6e 74 65 67 72 69 74 79 5f  to <b>integrity_
67c0: 63 68 65 63 6b 3c 2f 62 3e 0a 20 20 20 20 61 6e  check</b>.    an
67d0: 64 20 6d 61 6b 65 20 69 74 20 61 76 61 69 6c 61  d make it availa
67e0: 62 6c 65 20 69 6e 20 61 6c 6c 20 63 6f 6d 70 69  ble in all compi
67f0: 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 45  les.</li>.<li>SE
6800: 4c 45 43 54 20 6d 69 6e 28 29 20 6f 72 20 6d 61  LECT min() or ma
6810: 78 28 29 20 6f 66 20 61 6e 20 69 6e 64 65 78 65  x() of an indexe
6820: 64 20 63 6f 6c 75 6d 6e 20 77 69 74 68 20 6e 6f  d column with no
6830: 20 57 48 45 52 45 20 6f 72 20 47 52 4f 55 50 20   WHERE or GROUP 
6840: 42 59 0a 20 20 20 20 63 6c 61 75 73 65 20 69 73  BY.    clause is
6850: 20 68 61 6e 64 6c 65 64 20 61 73 20 61 20 73 70   handled as a sp
6860: 65 63 69 61 6c 20 63 61 73 65 20 77 68 69 63 68  ecial case which
6870: 20 61 76 6f 69 64 73 20 61 20 63 6f 6d 70 6c 65   avoids a comple
6880: 74 65 20 74 61 62 6c 65 20 73 63 61 6e 2e 3c 2f  te table scan.</
6890: 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69  li>.<li>Automati
68a0: 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20  cally generated 
68b0: 52 4f 57 49 44 73 20 61 72 65 20 6e 6f 77 20 73  ROWIDs are now s
68c0: 65 71 75 65 6e 74 69 61 6c 2e 3c 2f 6c 69 3e 0a  equential.</li>.
68d0: 3c 6c 69 3e 44 6f 20 6e 6f 74 20 61 6c 6c 6f 77  <li>Do not allow
68e0: 20 64 6f 74 2d 63 6f 6d 6d 61 6e 64 73 20 6f 66   dot-commands of
68f0: 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e   the command-lin
6900: 65 20 73 68 65 6c 6c 20 74 6f 20 6f 63 63 75 72  e shell to occur
6910: 20 69 6e 20 74 68 65 0a 20 20 20 20 6d 69 64 64   in the.    midd
6920: 6c 65 20 6f 66 20 61 20 72 65 61 6c 20 53 51 4c  le of a real SQL
6930: 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c   command.</li>.<
6940: 6c 69 3e 4d 6f 64 69 66 69 63 61 74 69 6f 6e 73  li>Modifications
6950: 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20   to the "lemon" 
6960: 70 61 72 73 65 72 20 67 65 6e 65 72 61 74 6f 72  parser generator
6970: 20 73 6f 20 74 68 61 74 20 74 68 65 20 70 61 72   so that the par
6980: 73 65 72 20 74 61 62 6c 65 73 0a 20 20 20 20 61  ser tables.    a
6990: 72 65 20 34 20 74 69 6d 65 73 20 73 6d 61 6c 6c  re 4 times small
69a0: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  er.</li>.<li>Add
69b0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 75  ed support for u
69c0: 73 65 72 2d 64 65 66 69 6e 65 64 20 66 75 6e 63  ser-defined func
69d0: 74 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 65  tions implemente
69e0: 64 20 69 6e 20 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69  d in C.</li>.<li
69f0: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
6a00: 6f 72 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73  or new functions
6a10: 3a 20 3c 62 3e 63 6f 61 6c 65 73 63 65 28 29 3c  : <b>coalesce()<
6a20: 2f 62 3e 2c 20 3c 62 3e 6c 6f 77 65 72 28 29 3c  /b>, <b>lower()<
6a30: 2f 62 3e 2c 0a 20 20 20 20 3c 62 3e 75 70 70 65  /b>,.    <b>uppe
6a40: 72 28 29 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e  r()</b>, and <b>
6a50: 72 61 6e 64 6f 6d 28 29 3c 2f 62 3e 0a 3c 6c 69  random()</b>.<li
6a60: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
6a70: 6f 72 20 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c  or VIEWs.</li>.<
6a80: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73 75 62  li>Added the sub
6a90: 71 75 65 72 79 20 66 6c 61 74 74 65 6e 69 6e 67  query flattening
6aa0: 20 6f 70 74 69 6d 69 7a 65 72 2e 3c 2f 6c 69 3e   optimizer.</li>
6ab0: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
6ac0: 65 20 42 2d 54 72 65 65 20 61 6e 64 20 50 61 67  e B-Tree and Pag
6ad0: 65 72 20 6d 6f 64 75 6c 65 73 20 73 6f 20 74 68  er modules so th
6ae0: 61 74 20 64 69 73 6b 20 70 61 67 65 73 20 74 68  at disk pages th
6af0: 61 74 20 64 6f 20 6e 6f 74 0a 20 20 20 20 63 6f  at do not.    co
6b00: 6e 74 61 69 6e 20 72 65 61 6c 20 64 61 74 61 20  ntain real data 
6b10: 28 66 72 65 65 20 70 61 67 65 73 29 20 61 72 65  (free pages) are
6b20: 20 6e 6f 74 20 6a 6f 75 72 6e 61 6c 65 64 20 61   not journaled a
6b30: 6e 64 20 61 72 65 20 6e 6f 74 0a 20 20 20 20 77  nd are not.    w
6b40: 72 69 74 74 65 6e 20 66 72 6f 6d 20 6d 65 6d 6f  ritten from memo
6b50: 72 79 20 62 61 63 6b 20 74 6f 20 74 68 65 20 64  ry back to the d
6b60: 69 73 6b 20 77 68 65 6e 20 74 68 65 79 20 63 68  isk when they ch
6b70: 61 6e 67 65 2e 20 20 54 68 69 73 20 64 6f 65 73  ange.  This does
6b80: 20 6e 6f 74 20 0a 20 20 20 20 69 6d 70 61 63 74   not .    impact
6b90: 20 64 61 74 61 62 61 73 65 20 69 6e 74 65 67 72   database integr
6ba0: 69 74 79 2c 20 73 69 6e 63 65 20 74 68 65 0a 20  ity, since the. 
6bb0: 20 20 20 70 61 67 65 73 20 63 6f 6e 74 61 69 6e     pages contain
6bc0: 20 6e 6f 20 72 65 61 6c 20 64 61 74 61 2c 20 62   no real data, b
6bd0: 75 74 20 69 74 20 64 6f 65 73 20 6d 61 6b 65 20  ut it does make 
6be0: 6c 61 72 67 65 20 49 4e 53 45 52 54 20 6f 70 65  large INSERT ope
6bf0: 72 61 74 69 6f 6e 73 0a 20 20 20 20 61 62 6f 75  rations.    abou
6c00: 74 20 32 2e 35 20 74 69 6d 65 73 20 66 61 73 74  t 2.5 times fast
6c10: 65 72 20 61 6e 64 20 6c 61 72 67 65 20 44 45 4c  er and large DEL
6c20: 45 54 45 73 20 61 62 6f 75 74 20 35 20 74 69 6d  ETEs about 5 tim
6c30: 65 73 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a  es faster.</li>.
6c40: 3c 6c 69 3e 4d 61 64 65 20 74 68 65 20 43 41 43  <li>Made the CAC
6c50: 48 45 5f 53 49 5a 45 20 70 72 61 67 6d 61 20 70  HE_SIZE pragma p
6c60: 65 72 73 69 73 74 65 6e 74 3c 2f 6c 69 3e 0a 3c  ersistent</li>.<
6c70: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 53 59 4e  li>Added the SYN
6c80: 43 48 52 4f 4e 4f 55 53 20 70 72 61 67 6d 61 3c  CHRONOUS pragma<
6c90: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61  /li>.<li>Fixed a
6ca0: 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61   bug that was ca
6cb0: 75 73 69 6e 67 20 75 70 64 61 74 65 73 20 74 6f  using updates to
6cc0: 20 66 61 69 6c 20 69 6e 73 69 64 65 20 6f 66 20   fail inside of 
6cd0: 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 68 65  transactions whe
6ce0: 6e 0a 20 20 20 20 74 68 65 20 64 61 74 61 62 61  n.    the databa
6cf0: 73 65 20 63 6f 6e 74 61 69 6e 65 64 20 61 20 74  se contained a t
6d00: 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 2e 3c  emporary table.<
6d10: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6d20: 30 32 20 46 65 62 20 31 38 20 28 32 2e 33 2e 33  02 Feb 18 (2.3.3
6d30: 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 69  )} {.<li>Allow i
6d40: 64 65 6e 74 69 66 69 65 72 73 20 74 6f 20 62 65  dentifiers to be
6d50: 20 71 75 6f 74 65 64 20 69 6e 20 73 71 75 61 72   quoted in squar
6d60: 65 20 62 72 61 63 6b 65 74 73 2c 20 66 6f 72 20  e brackets, for 
6d70: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 20 20  compatibility.  
6d80: 20 20 77 69 74 68 20 4d 53 2d 41 63 63 65 73 73    with MS-Access
6d90: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
6da0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 73 75 62   support for sub
6db0: 2d 71 75 65 72 69 65 73 20 69 6e 20 74 68 65 20  -queries in the 
6dc0: 46 52 4f 4d 20 63 6c 61 75 73 65 20 6f 66 20 61  FROM clause of a
6dd0: 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c   SELECT.</li>.<l
6de0: 69 3e 4d 6f 72 65 20 65 66 66 69 63 69 65 6e 74  i>More efficient
6df0: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20   implementation 
6e00: 6f 66 20 73 71 6c 69 74 65 46 69 6c 65 45 78 69  of sqliteFileExi
6e10: 73 74 73 28 29 20 75 6e 64 65 72 20 57 69 6e 64  sts() under Wind
6e20: 6f 77 73 2e 0a 20 20 20 20 28 62 79 20 4a 6f 65  ows..    (by Joe
6e30: 6c 20 4c 75 73 63 79 29 3c 2f 6c 69 3e 0a 3c 6c  l Luscy)</li>.<l
6e40: 69 3e 54 68 65 20 56 41 4c 55 45 53 20 63 6c 61  i>The VALUES cla
6e50: 75 73 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54  use of an INSERT
6e60: 20 63 61 6e 20 6e 6f 77 20 63 6f 6e 74 61 69 6e   can now contain
6e70: 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 69 6e   expressions, in
6e80: 63 6c 75 64 69 6e 67 0a 20 20 20 20 73 63 61 6c  cluding.    scal
6e90: 61 72 20 53 45 4c 45 43 54 20 63 6c 61 75 73 65  ar SELECT clause
6ea0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
6eb0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 52  d support for CR
6ec0: 45 41 54 45 20 54 41 42 4c 45 20 41 53 20 53 45  EATE TABLE AS SE
6ed0: 4c 45 43 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  LECT</li>.<li>Bu
6ee0: 67 20 66 69 78 3a 20 43 72 65 61 74 69 6e 67 20  g fix: Creating 
6ef0: 61 6e 64 20 64 72 6f 70 70 69 6e 67 20 61 20 74  and dropping a t
6f00: 61 62 6c 65 20 61 6c 6c 20 77 69 74 68 69 6e 20  able all within 
6f10: 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 74 72 61  a single.    tra
6f20: 6e 73 61 63 74 69 6f 6e 20 77 61 73 20 6e 6f 74  nsaction was not
6f30: 20 77 6f 72 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d   working.</li>.}
6f40: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62  ..chng {2002 Feb
6f50: 20 31 34 20 28 32 2e 33 2e 32 29 7d 20 7b 0a 3c   14 (2.3.2)} {.<
6f60: 6c 69 3e 42 75 67 20 66 69 78 3a 20 54 68 65 72  li>Bug fix: Ther
6f70: 65 20 77 61 73 20 61 6e 20 69 6e 63 6f 72 72 65  e was an incorre
6f80: 63 74 20 61 73 73 65 72 74 28 29 20 69 6e 20 70  ct assert() in p
6f90: 61 67 65 72 2e 63 2e 20 20 54 68 65 20 72 65 61  ager.c.  The rea
6fa0: 6c 20 63 6f 64 65 20 77 61 73 0a 20 20 20 20 61  l code was.    a
6fb0: 6c 6c 20 63 6f 72 72 65 63 74 20 28 61 73 20 66  ll correct (as f
6fc0: 61 72 20 61 73 20 69 73 20 6b 6e 6f 77 6e 29 20  ar as is known) 
6fd0: 73 6f 20 65 76 65 72 79 74 68 69 6e 67 20 73 68  so everything sh
6fe0: 6f 75 6c 64 20 77 6f 72 6b 20 4f 4b 20 69 66 20  ould work OK if 
6ff0: 79 6f 75 0a 20 20 20 20 63 6f 6d 70 69 6c 65 20  you.    compile 
7000: 77 69 74 68 20 2d 44 4e 44 45 42 55 47 3d 31 2e  with -DNDEBUG=1.
7010: 20 20 57 68 65 6e 20 61 73 73 65 72 74 73 20 61    When asserts a
7020: 72 65 20 6e 6f 74 20 64 69 73 61 62 6c 65 64 2c  re not disabled,
7030: 20 74 68 65 72 65 0a 20 20 20 20 63 6f 75 6c 64   there.    could
7040: 20 62 65 20 61 20 66 61 75 6c 74 2e 3c 2f 6c 69   be a fault.</li
7050: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
7060: 46 65 62 20 31 33 20 28 32 2e 33 2e 31 29 7d 20  Feb 13 (2.3.1)} 
7070: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41  {.<li>Bug fix: A
7080: 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20  n assertion was 
7090: 66 61 69 6c 69 6e 67 20 69 66 20 22 50 52 41 47  failing if "PRAG
70a0: 4d 41 20 66 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e  MA full_column_n
70b0: 61 6d 65 73 3d 4f 4e 3b 22 20 77 61 73 0a 20 20  ames=ON;" was.  
70c0: 20 20 73 65 74 20 61 6e 64 20 79 6f 75 20 64 69    set and you di
70d0: 64 20 61 20 71 75 65 72 79 20 74 68 61 74 20 75  d a query that u
70e0: 73 65 64 20 61 20 72 6f 77 69 64 2c 20 6c 69 6b  sed a rowid, lik
70f0: 65 20 74 68 69 73 3a 20 20 0a 20 20 20 20 22 53  e this:  .    "S
7100: 45 4c 45 43 54 20 72 6f 77 69 64 2c 20 2a 20 46  ELECT rowid, * F
7110: 52 4f 4d 20 2e 2e 2e 22 2e 3c 2f 6c 69 3e 0a 7d  ROM ...".</li>.}
7120: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e  ..chng {2002 Jan
7130: 20 33 30 20 28 32 2e 33 2e 30 29 7d 20 7b 0a 3c   30 (2.3.0)} {.<
7140: 6c 69 3e 46 69 78 20 61 20 73 65 72 69 6f 75 73  li>Fix a serious
7150: 20 62 75 67 20 69 6e 20 74 68 65 20 49 4e 53 45   bug in the INSE
7160: 52 54 20 63 6f 6d 6d 61 6e 64 20 77 68 69 63 68  RT command which
7170: 20 77 61 73 20 63 61 75 73 69 6e 67 20 64 61 74   was causing dat
7180: 61 20 74 6f 20 67 6f 0a 20 20 20 20 69 6e 74 6f  a to go.    into
7190: 20 74 68 65 20 77 72 6f 6e 67 20 63 6f 6c 75 6d   the wrong colum
71a0: 6e 73 20 69 66 20 74 68 65 20 64 61 74 61 20 73  ns if the data s
71b0: 6f 75 72 63 65 20 77 61 73 20 61 20 53 45 4c 45  ource was a SELE
71c0: 43 54 20 61 6e 64 20 74 68 65 20 49 4e 53 45 52  CT and the INSER
71d0: 54 0a 20 20 20 20 63 6c 61 75 73 65 73 20 73 70  T.    clauses sp
71e0: 65 63 69 66 69 65 64 20 69 74 73 20 63 6f 6c 75  ecified its colu
71f0: 6d 6e 73 20 69 6e 20 73 6f 6d 65 20 6f 72 64 65  mns in some orde
7200: 72 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65  r other than the
7210: 20 64 65 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c   default.</li>.<
7220: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 61 62 69  li>Added the abi
7230: 6c 69 74 79 20 74 6f 20 72 65 73 6f 6c 76 65 20  lity to resolve 
7240: 63 6f 6e 73 74 72 61 69 6e 74 20 63 6f 6e 66 6c  constraint confl
7250: 69 63 74 73 20 69 73 20 77 61 79 73 20 6f 74 68  icts is ways oth
7260: 65 72 20 74 68 61 6e 0a 20 20 20 20 61 6e 20 61  er than.    an a
7270: 62 6f 72 74 20 61 6e 64 20 72 6f 6c 6c 62 61 63  bort and rollbac
7280: 6b 2e 20 20 53 65 65 20 74 68 65 20 64 6f 63 75  k.  See the docu
7290: 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65  mentation on the
72a0: 20 22 4f 4e 20 43 4f 4e 46 4c 49 43 54 22 0a 20   "ON CONFLICT". 
72b0: 20 20 20 63 6c 61 75 73 65 20 66 6f 72 20 64 65     clause for de
72c0: 74 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tails.</li>.<li>
72d0: 54 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20  Temporary files 
72e0: 61 72 65 20 6e 6f 77 20 61 75 74 6f 6d 61 74 69  are now automati
72f0: 63 61 6c 6c 79 20 64 65 6c 65 74 65 64 20 62 79  cally deleted by
7300: 20 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73   the operating s
7310: 79 73 74 65 6d 0a 20 20 20 20 77 68 65 6e 20 63  ystem.    when c
7320: 6c 6f 73 65 64 2e 20 20 54 68 65 72 65 20 61 72  losed.  There ar
7330: 65 20 6e 6f 20 6d 6f 72 65 20 64 61 6e 67 6c 69  e no more dangli
7340: 6e 67 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c  ng temporary fil
7350: 65 73 20 6f 6e 20 61 20 70 72 6f 67 72 61 6d 0a  es on a program.
7360: 20 20 20 20 63 72 61 73 68 2e 20 20 28 49 66 20      crash.  (If 
7370: 74 68 65 20 4f 53 20 63 72 61 73 68 65 73 2c 20  the OS crashes, 
7380: 66 73 63 6b 20 77 69 6c 6c 20 64 65 6c 65 74 65  fsck will delete
7390: 20 74 68 65 20 66 69 6c 65 20 61 66 74 65 72 20   the file after 
73a0: 72 65 62 6f 6f 74 20 0a 20 20 20 20 75 6e 64 65  reboot .    unde
73b0: 72 20 55 6e 69 78 2e 20 20 49 20 64 6f 20 6e 6f  r Unix.  I do no
73c0: 74 20 6b 6e 6f 77 20 77 68 61 74 20 68 61 70 70  t know what happ
73d0: 65 6e 73 20 75 6e 64 65 72 20 57 69 6e 64 6f 77  ens under Window
73e0: 73 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 4f 54  s.)</li>.<li>NOT
73f0: 20 4e 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e 74   NULL constraint
7400: 73 20 61 72 65 20 68 6f 6e 6f 72 65 64 2e 3c 2f  s are honored.</
7410: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 43 4f 50 59  li>.<li>The COPY
7420: 20 63 6f 6d 6d 61 6e 64 20 70 75 74 73 20 4e 55   command puts NU
7430: 4c 4c 73 20 69 6e 20 63 6f 6c 75 6d 6e 73 20 77  LLs in columns w
7440: 68 6f 73 65 20 64 61 74 61 20 69 73 20 27 5c 4e  hose data is '\N
7450: 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74  '.</li>.<li>In t
7460: 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2c  he COPY command,
7470: 20 62 61 63 6b 73 6c 61 73 68 20 63 61 6e 20 6e   backslash can n
7480: 6f 77 20 62 65 20 75 73 65 64 20 74 6f 20 65 73  ow be used to es
7490: 63 61 70 65 20 61 20 6e 65 77 6c 69 6e 65 2e 3c  cape a newline.<
74a0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
74b0: 68 65 20 53 41 4e 49 54 59 5f 43 48 45 43 4b 20  he SANITY_CHECK 
74c0: 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  pragma.</li>.}..
74d0: 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 32  chng {2002 Jan 2
74e0: 38 20 28 32 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69  8 (2.2.5)} {.<li
74f0: 3e 49 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66  >Important bug f
7500: 69 78 3a 20 74 68 65 20 49 4e 20 6f 70 65 72 61  ix: the IN opera
7510: 74 6f 72 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b  tor was not work
7520: 69 6e 67 20 69 66 20 65 69 74 68 65 72 20 74 68  ing if either th
7530: 65 0a 20 20 20 20 6c 65 66 74 2d 68 61 6e 64 20  e.    left-hand 
7540: 6f 72 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69  or right-hand si
7550: 64 65 20 77 61 73 20 64 65 72 69 76 65 64 20 66  de was derived f
7560: 72 6f 6d 20 61 6e 20 49 4e 54 45 47 45 52 20 50  rom an INTEGER P
7570: 52 49 4d 41 52 59 20 4b 45 59 2e 3c 2f 6c 69 3e  RIMARY KEY.</li>
7580: 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 65 73 63 61  .<li>Do not esca
7590: 70 65 20 74 68 65 20 62 61 63 6b 73 6c 61 73 68  pe the backslash
75a0: 20 27 5c 27 20 63 68 61 72 61 63 74 65 72 20 69   '\' character i
75b0: 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20  n the output of 
75c0: 74 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74  the.    <b>sqlit
75d0: 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69  e</b> command-li
75e0: 6e 65 20 61 63 63 65 73 73 20 70 72 6f 67 72 61  ne access progra
75f0: 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  m.</li>.}..chng 
7600: 7b 32 30 30 32 20 4a 61 6e 20 32 32 20 28 32 2e  {2002 Jan 22 (2.
7610: 32 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  2.4)} {.<li>The 
7620: 6c 61 62 65 6c 20 74 6f 20 74 68 65 20 72 69 67  label to the rig
7630: 68 74 20 6f 66 20 61 6e 20 41 53 20 69 6e 20 74  ht of an AS in t
7640: 68 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f  he column list o
7650: 66 20 61 20 53 45 4c 45 43 54 20 63 61 6e 20 6e  f a SELECT can n
7660: 6f 77 0a 20 20 20 20 62 65 20 75 73 65 64 20 61  ow.    be used a
7670: 73 20 70 61 72 74 20 6f 66 20 61 6e 20 65 78 70  s part of an exp
7680: 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 65 20 57  ression in the W
7690: 48 45 52 45 2c 20 4f 52 44 45 52 20 42 59 2c 20  HERE, ORDER BY, 
76a0: 47 52 4f 55 50 20 42 59 2c 20 61 6e 64 2f 6f 72  GROUP BY, and/or
76b0: 0a 20 20 20 20 48 41 56 49 4e 47 20 63 6c 61 75  .    HAVING clau
76c0: 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ses.</li>.<li>Fi
76d0: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 3c  x a bug in the <
76e0: 62 3e 2d 73 65 70 61 72 61 74 6f 72 3c 2f 62 3e  b>-separator</b>
76f0: 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70   command-line op
7700: 74 69 6f 6e 20 74 6f 20 74 68 65 20 3c 62 3e 73  tion to the <b>s
7710: 71 6c 69 74 65 3c 2f 62 3e 0a 20 20 20 20 63 6f  qlite</b>.    co
7720: 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  mmand.</li>.<li>
7730: 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69  Fix a problem wi
7740: 74 68 20 74 68 65 20 73 6f 72 74 20 6f 72 64 65  th the sort orde
7750: 72 20 77 68 65 6e 20 63 6f 6d 70 61 72 69 6e 67  r when comparing
7760: 20 75 70 70 65 72 2d 63 61 73 65 20 73 74 72 69   upper-case stri
7770: 6e 67 73 20 61 67 61 69 6e 73 74 0a 20 20 20 20  ngs against.    
7780: 63 68 61 72 61 63 74 65 72 73 20 67 72 65 61 74  characters great
7790: 65 72 20 74 68 61 6e 20 27 5a 27 20 62 75 74 20  er than 'Z' but 
77a0: 6c 65 73 73 20 74 68 61 6e 20 27 61 27 2e 3c 2f  less than 'a'.</
77b0: 6c 69 3e 0a 3c 6c 69 3e 52 65 70 6f 72 74 20 61  li>.<li>Report a
77c0: 6e 20 65 72 72 6f 72 20 69 66 20 61 6e 20 4f 52  n error if an OR
77d0: 44 45 52 20 42 59 20 6f 72 20 47 52 4f 55 50 20  DER BY or GROUP 
77e0: 42 59 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73  BY expression is
77f0: 20 63 6f 6e 73 74 61 6e 74 2e 3c 2f 6c 69 3e 0a   constant.</li>.
7800: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61  }..chng {2002 Ja
7810: 6e 20 31 36 20 28 32 2e 32 2e 33 29 7d 20 7b 0a  n 16 (2.2.3)} {.
7820: 3c 6c 69 3e 46 69 78 20 77 61 72 6e 69 6e 67 20  <li>Fix warning 
7830: 6d 65 73 73 61 67 65 73 20 69 6e 20 56 43 2b 2b  messages in VC++
7840: 20 37 2e 30 2e 20 20 28 50 61 74 63 68 65 73 20   7.0.  (Patches 
7850: 66 72 6f 6d 20 6e 69 63 6f 6c 61 73 33 35 32 30  from nicolas3520
7860: 30 31 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  01)</li>.<li>Mak
7870: 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 68  e the library th
7880: 72 65 61 64 2d 73 61 66 65 2e 20 20 28 54 68 65  read-safe.  (The
7890: 20 63 6f 64 65 20 69 73 20 74 68 65 72 65 20 61   code is there a
78a0: 6e 64 20 61 70 70 65 61 72 73 20 74 6f 20 77 6f  nd appears to wo
78b0: 72 6b 0a 20 20 20 20 62 75 74 20 68 61 73 20 6e  rk.    but has n
78c0: 6f 74 20 62 65 65 6e 20 73 74 72 65 73 73 65 64  ot been stressed
78d0: 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  .)</li>.<li>Adde
78e0: 64 20 74 68 65 20 6e 65 77 20 3c 62 3e 73 71 6c  d the new <b>sql
78f0: 69 74 65 5f 6c 61 73 74 5f 69 6e 73 65 72 74 5f  ite_last_insert_
7900: 72 6f 77 69 64 28 29 3c 2f 62 3e 20 41 50 49 20  rowid()</b> API 
7910: 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d  function.</li>.}
7920: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e  ..chng {2002 Jan
7930: 20 31 33 20 28 32 2e 32 2e 32 29 7d 20 7b 0a 3c   13 (2.2.2)} {.<
7940: 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61  li>Bug fix: An a
7950: 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69  ssertion was fai
7960: 6c 69 6e 67 20 77 68 65 6e 20 61 20 74 65 6d 70  ling when a temp
7970: 6f 72 61 72 79 20 74 61 62 6c 65 20 77 69 74 68  orary table with
7980: 20 61 6e 20 69 6e 64 65 78 0a 20 20 20 20 68 61   an index.    ha
7990: 64 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20  d the same name 
79a0: 61 73 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 74  as a permanent t
79b0: 61 62 6c 65 20 63 72 65 61 74 65 64 20 62 79 20  able created by 
79c0: 61 20 73 65 70 61 72 61 74 65 20 70 72 6f 63 65  a separate proce
79d0: 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ss.</li>.<li>Bug
79e0: 20 66 69 78 3a 20 55 70 64 61 74 65 73 20 74 6f   fix: Updates to
79f0: 20 74 61 62 6c 65 73 20 63 6f 6e 74 61 69 6e 69   tables containi
7a00: 6e 67 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52  ng an INTEGER PR
7a10: 49 4d 41 52 59 20 4b 45 59 20 61 6e 64 20 61 6e  IMARY KEY and an
7a20: 0a 20 20 20 20 69 6e 64 65 78 20 63 6f 75 6c 64  .    index could
7a30: 20 66 61 69 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   fail.</li>.}..c
7a40: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 39 20  hng {2002 Jan 9 
7a50: 28 32 2e 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.2.1)} {.<li>B
7a60: 75 67 20 66 69 78 3a 20 41 6e 20 61 74 74 65 6d  ug fix: An attem
7a70: 70 74 20 74 6f 20 64 65 6c 65 74 65 20 61 20 73  pt to delete a s
7a80: 69 6e 67 6c 65 20 72 6f 77 20 6f 66 20 61 20 74  ingle row of a t
7a90: 61 62 6c 65 20 77 69 74 68 20 61 20 57 48 45 52  able with a WHER
7aa0: 45 0a 20 20 20 20 63 6c 61 75 73 65 20 6f 66 20  E.    clause of 
7ab0: 22 52 4f 57 49 44 3d 78 22 20 77 68 65 6e 20 6e  "ROWID=x" when n
7ac0: 6f 20 73 75 63 68 20 72 6f 77 69 64 20 65 78 69  o such rowid exi
7ad0: 73 74 73 20 77 61 73 20 63 61 75 73 69 6e 67 20  sts was causing 
7ae0: 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c  an error.</li>.<
7af0: 6c 69 3e 42 75 67 20 66 69 78 3a 20 50 61 73 73  li>Bug fix: Pass
7b00: 69 6e 67 20 69 6e 20 61 20 4e 55 4c 4c 20 61 73  ing in a NULL as
7b10: 20 74 68 65 20 33 72 64 20 70 61 72 61 6d 65 74   the 3rd paramet
7b20: 65 72 20 74 6f 20 3c 62 3e 73 71 6c 69 74 65 5f  er to <b>sqlite_
7b30: 6f 70 65 6e 28 29 3c 2f 62 3e 0a 20 20 20 20 77  open()</b>.    w
7b40: 6f 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20 63  ould sometimes c
7b50: 61 75 73 65 20 61 20 63 6f 72 65 64 75 6d 70 2e  ause a coredump.
7b60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
7b70: 78 3a 20 44 52 4f 50 20 54 41 42 4c 45 20 66 6f  x: DROP TABLE fo
7b80: 6c 6c 6f 77 65 64 20 62 79 20 61 20 43 52 45 41  llowed by a CREA
7b90: 54 45 20 54 41 42 4c 45 20 77 69 74 68 20 74 68  TE TABLE with th
7ba0: 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 6c 6c 0a  e same name all.
7bb0: 20 20 20 20 77 69 74 68 69 6e 20 61 20 73 69 6e      within a sin
7bc0: 67 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20  gle transaction 
7bd0: 77 61 73 20 63 61 75 73 69 6e 67 20 61 20 63 6f  was causing a co
7be0: 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69  redump.</li>.<li
7bf0: 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65  >Makefile update
7c00: 73 20 66 72 6f 6d 20 41 2e 20 52 6f 74 74 6d 61  s from A. Rottma
7c10: 6e 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  nn</li>.}..chng 
7c20: 7b 32 30 30 31 20 44 65 63 20 32 32 20 28 32 2e  {2001 Dec 22 (2.
7c30: 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75  2.0)} {.<li>Colu
7c40: 6d 6e 73 20 6f 66 20 74 79 70 65 20 49 4e 54 45  mns of type INTE
7c50: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20  GER PRIMARY KEY 
7c60: 61 72 65 20 61 63 74 75 61 6c 6c 79 20 75 73 65  are actually use
7c70: 64 20 61 73 20 74 68 65 20 70 72 69 6d 61 72 79  d as the primary
7c80: 0a 20 20 20 20 6b 65 79 20 69 6e 20 75 6e 64 65  .    key in unde
7c90: 72 6c 79 69 6e 67 20 42 2d 54 72 65 65 20 72 65  rlying B-Tree re
7ca0: 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20  presentation of 
7cb0: 74 68 65 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  the table.</li>.
7cc0: 3c 6c 69 3e 53 65 76 65 72 61 6c 20 6f 62 73 63  <li>Several obsc
7cd0: 75 72 65 2c 20 75 6e 72 65 6c 61 74 65 64 20 62  ure, unrelated b
7ce0: 75 67 73 20 77 65 72 65 20 66 6f 75 6e 64 20 61  ugs were found a
7cf0: 6e 64 20 66 69 78 65 64 20 77 68 69 6c 65 20 0a  nd fixed while .
7d00: 20 20 20 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20      implemented 
7d10: 74 68 65 20 69 6e 74 65 67 65 72 20 70 72 69 6d  the integer prim
7d20: 61 72 79 20 6b 65 79 20 63 68 61 6e 67 65 20 6f  ary key change o
7d30: 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 62  f the previous b
7d40: 75 6c 6c 65 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ullet.</li>.<li>
7d50: 41 64 64 65 64 20 74 68 65 20 61 62 69 6c 69 74  Added the abilit
7d60: 79 20 74 6f 20 73 70 65 63 69 66 79 20 22 2a 22  y to specify "*"
7d70: 20 61 73 20 70 61 72 74 20 6f 66 20 61 20 6c 61   as part of a la
7d80: 72 67 65 72 20 63 6f 6c 75 6d 6e 20 6c 69 73 74  rger column list
7d90: 20 69 6e 0a 20 20 20 20 74 68 65 20 72 65 73 75   in.    the resu
7da0: 6c 74 20 73 65 63 74 69 6f 6e 20 6f 66 20 61 20  lt section of a 
7db0: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
7dc0: 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a  .  For example:.
7dd0: 20 20 20 20 3c 6e 6f 62 72 3e 22 3c 62 3e 53 45      <nobr>"<b>SE
7de0: 4c 45 43 54 20 72 6f 77 69 64 2c 20 2a 20 46 52  LECT rowid, * FR
7df0: 4f 4d 20 74 61 62 6c 65 31 3b 3c 2f 62 3e 22 3c  OM table1;</b>"<
7e00: 2f 6e 6f 62 72 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  /nobr>.</li>.<li
7e10: 3e 55 70 64 61 74 65 73 20 74 6f 20 63 6f 6d 6d  >Updates to comm
7e20: 65 6e 74 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e  ents and documen
7e30: 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  tation.</li>.}..
7e40: 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 31  chng {2001 Dec 1
7e50: 34 20 28 32 2e 31 2e 37 29 7d 20 7b 0a 3c 6c 69  4 (2.1.7)} {.<li
7e60: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 3c 62  >Fix a bug in <b
7e70: 3e 43 52 45 41 54 45 20 54 45 4d 50 4f 52 41 52  >CREATE TEMPORAR
7e80: 59 20 54 41 42 4c 45 3c 2f 62 3e 20 77 68 69 63  Y TABLE</b> whic
7e90: 68 20 77 61 73 20 63 61 75 73 69 6e 67 20 74 68  h was causing th
7ea0: 65 0a 20 20 20 20 74 61 62 6c 65 20 74 6f 20 62  e.    table to b
7eb0: 65 20 69 6e 69 74 69 61 6c 6c 79 20 61 6c 6c 6f  e initially allo
7ec0: 63 61 74 65 64 20 69 6e 20 74 68 65 20 6d 61 69  cated in the mai
7ed0: 6e 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20  n database file 
7ee0: 69 6e 73 74 65 61 64 0a 20 20 20 20 6f 66 20 69  instead.    of i
7ef0: 6e 20 74 68 65 20 73 65 70 61 72 61 74 65 20 74  n the separate t
7f00: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e 20 20  emporary file.  
7f10: 54 68 69 73 20 62 75 67 20 63 6f 75 6c 64 20 63  This bug could c
7f20: 61 75 73 65 20 74 68 65 20 6c 69 62 72 61 72 79  ause the library
7f30: 0a 20 20 20 20 74 6f 20 73 75 66 66 65 72 20 61  .    to suffer a
7f40: 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c  n assertion fail
7f50: 75 72 65 20 61 6e 64 20 69 74 20 63 6f 75 6c 64  ure and it could
7f60: 20 63 61 75 73 65 20 22 70 61 67 65 20 6c 65 61   cause "page lea
7f70: 6b 73 22 20 69 6e 20 74 68 65 0a 20 20 20 20 6d  ks" in the.    m
7f80: 61 69 6e 20 64 61 74 61 62 61 73 65 20 66 69 6c  ain database fil
7f90: 65 2e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  e..<li>Fix a bug
7fa0: 20 69 6e 20 74 68 65 20 62 2d 74 72 65 65 20 73   in the b-tree s
7fb0: 75 62 73 79 73 74 65 6d 20 74 68 61 74 20 63 6f  ubsystem that co
7fc0: 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20 63 61  uld sometimes ca
7fd0: 75 73 65 20 74 68 65 20 66 69 72 73 74 0a 20 20  use the first.  
7fe0: 20 20 72 6f 77 20 6f 66 20 61 20 74 61 62 6c 65    row of a table
7ff0: 20 74 6f 20 62 65 20 72 65 70 65 61 74 65 64 20   to be repeated 
8000: 64 75 72 69 6e 67 20 61 20 64 61 74 61 62 61 73  during a databas
8010: 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e scan.</li>.}..
8020: 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 31  chng {2001 Dec 1
8030: 34 20 28 32 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69  4 (2.1.6)} {.<li
8040: 3e 46 69 78 20 74 68 65 20 6c 6f 63 6b 69 6e 67  >Fix the locking
8050: 20 6d 65 63 68 61 6e 69 73 6d 20 79 65 74 20 61   mechanism yet a
8060: 67 61 69 6e 20 74 6f 20 70 72 65 76 65 6e 74 0a  gain to prevent.
8070: 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78      <b>sqlite_ex
8080: 65 63 28 29 3c 2f 62 3e 20 66 72 6f 6d 20 72 65  ec()</b> from re
8090: 74 75 72 6e 69 6e 67 20 53 51 4c 49 54 45 5f 50  turning SQLITE_P
80a0: 52 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65  ROTOCOL.    unne
80b0: 63 65 73 73 61 72 69 6c 79 2e 20 20 54 68 69 73  cessarily.  This
80c0: 20 74 69 6d 65 20 74 68 65 20 62 75 67 20 77 61   time the bug wa
80d0: 73 20 61 20 72 61 63 65 20 63 6f 6e 64 69 74 69  s a race conditi
80e0: 6f 6e 20 69 6e 0a 20 20 20 20 74 68 65 20 6c 6f  on in.    the lo
80f0: 63 6b 69 6e 67 20 63 6f 64 65 2e 20 20 54 68 69  cking code.  Thi
8100: 73 20 63 68 61 6e 67 65 20 65 66 66 65 63 74 73  s change effects
8110: 20 62 6f 74 68 20 50 4f 53 49 58 20 61 6e 64 20   both POSIX and 
8120: 57 69 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f  Windows users.</
8130: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8140: 31 20 44 65 63 20 36 20 28 32 2e 31 2e 35 29 7d  1 Dec 6 (2.1.5)}
8150: 20 7b 0a 3c 6c 69 3e 46 69 78 20 66 6f 72 20 61   {.<li>Fix for a
8160: 6e 6f 74 68 65 72 20 70 72 6f 62 6c 65 6d 20 28  nother problem (
8170: 75 6e 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65  unrelated to the
8180: 20 6f 6e 65 20 66 69 78 65 64 20 69 6e 20 32 2e   one fixed in 2.
8190: 31 2e 34 29 20 0a 20 20 20 20 74 68 61 74 20 73  1.4) .    that s
81a0: 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 73 20  ometimes causes 
81b0: 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29  <b>sqlite_exec()
81c0: 3c 2f 62 3e 20 74 6f 20 72 65 74 75 72 6e 20 53  </b> to return S
81d0: 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20  QLITE_PROTOCOL. 
81e0: 20 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79     unnecessarily
81f0: 2e 20 20 54 68 69 73 20 74 69 6d 65 20 74 68 65  .  This time the
8200: 20 62 75 67 20 77 61 73 0a 20 20 20 20 69 6e 20   bug was.    in 
8210: 74 68 65 20 50 4f 53 49 58 20 6c 6f 63 6b 69 6e  the POSIX lockin
8220: 67 20 63 6f 64 65 20 61 6e 64 20 73 68 6f 75 6c  g code and shoul
8230: 64 20 6e 6f 74 20 65 66 66 65 63 74 20 77 69 6e  d not effect win
8240: 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e  dows users.</li>
8250: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44  .}..chng {2001 D
8260: 65 63 20 34 20 28 32 2e 31 2e 34 29 7d 20 7b 0a  ec 4 (2.1.4)} {.
8270: 3c 6c 69 3e 53 6f 6d 65 74 69 6d 65 73 20 3c 62  <li>Sometimes <b
8280: 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f  >sqlite_exec()</
8290: 62 3e 20 77 6f 75 6c 64 20 72 65 74 75 72 6e 20  b> would return 
82a0: 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 20  SQLITE_PROTOCOL 
82b0: 77 68 65 6e 20 69 74 0a 20 20 20 20 73 68 6f 75  when it.    shou
82c0: 6c 64 20 68 61 76 65 20 72 65 74 75 72 6e 65 64  ld have returned
82d0: 20 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c   SQLITE_BUSY.</l
82e0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 66 69 78 20 74  i>.<li>The fix t
82f0: 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 62  o the previous b
8300: 75 67 20 75 6e 63 6f 76 65 72 65 64 20 61 20 64  ug uncovered a d
8310: 65 61 64 6c 6f 63 6b 20 77 68 69 63 68 20 77 61  eadlock which wa
8320: 73 20 61 6c 73 6f 0a 20 20 20 20 66 69 78 65 64  s also.    fixed
8330: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
8340: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75  he ability to pu
8350: 74 20 61 20 73 69 6e 67 6c 65 20 2e 63 6f 6d 6d  t a single .comm
8360: 61 6e 64 20 69 6e 20 74 68 65 20 73 65 63 6f 6e  and in the secon
8370: 64 20 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 6f  d argument.    o
8380: 66 20 74 68 65 20 73 71 6c 69 74 65 20 73 68 65  f the sqlite she
8390: 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61  ll</li>.<li>Upda
83a0: 74 65 73 20 74 6f 20 74 68 65 20 46 41 51 3c 2f  tes to the FAQ</
83b0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
83c0: 31 20 4e 6f 76 20 32 33 20 28 32 2e 31 2e 33 29  1 Nov 23 (2.1.3)
83d0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20  } {.<li>Fix the 
83e0: 62 65 68 61 76 69 6f 72 20 6f 66 20 63 6f 6d 70  behavior of comp
83f0: 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 73  arison operators
8400: 20 0a 20 20 20 20 28 65 78 3a 20 22 3c 62 3e 26   .    (ex: "<b>&
8410: 6c 74 3c 2f 62 3e 22 2c 20 22 3c 62 3e 3d 3d 3c  lt</b>", "<b>==<
8420: 2f 62 3e 22 2c 20 65 74 63 2e 29 0a 20 20 20 20  /b>", etc.).    
8430: 73 6f 20 74 68 61 74 20 74 68 65 79 20 61 72 65  so that they are
8440: 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68   consistent with
8450: 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 65 6e   the order of en
8460: 74 72 69 65 73 20 69 6e 20 61 6e 20 69 6e 64 65  tries in an inde
8470: 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72  x.</li>.<li>Corr
8480: 65 63 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  ect handling of 
8490: 69 6e 74 65 67 65 72 73 20 69 6e 20 53 51 4c 20  integers in SQL 
84a0: 65 78 70 72 65 73 73 69 6f 6e 73 20 74 68 61 74  expressions that
84b0: 20 61 72 65 20 6c 61 72 67 65 72 20 74 68 61 6e   are larger than
84c0: 0a 20 20 20 20 77 68 61 74 20 63 61 6e 20 62 65  .    what can be
84d0: 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20   represented by 
84e0: 74 68 65 20 6d 61 63 68 69 6e 65 20 69 6e 74 65  the machine inte
84f0: 67 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ger.</li>.}..chn
8500: 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 32 20 28  g {2001 Nov 22 (
8510: 32 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 43 68  2.1.2)} {.<li>Ch
8520: 61 6e 67 65 73 20 74 6f 20 73 75 70 70 6f 72 74  anges to support
8530: 20 36 34 2d 62 69 74 20 61 72 63 68 69 74 65 63   64-bit architec
8540: 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tures.</li>.<li>
8550: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
8560: 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f   locking protoco
8570: 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  l.</li>.<li>Fix 
8580: 61 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64  a bug that could
8590: 20 28 72 61 72 65 6c 79 29 20 63 61 75 73 65 20   (rarely) cause 
85a0: 74 68 65 20 64 61 74 61 62 61 73 65 20 74 6f 20  the database to 
85b0: 62 65 63 6f 6d 65 20 0a 20 20 20 20 75 6e 72 65  become .    unre
85c0: 61 64 61 62 6c 65 20 61 66 74 65 72 20 61 20 44  adable after a D
85d0: 52 4f 50 20 54 41 42 4c 45 20 64 75 65 20 74 6f  ROP TABLE due to
85e0: 20 63 6f 72 72 75 70 74 69 6f 6e 20 74 6f 20 74   corruption to t
85f0: 68 65 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52  he SQLITE_MASTER
8600: 0a 20 20 20 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e  .    table.</li>
8610: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
8620: 63 6f 64 65 20 73 6f 20 74 68 61 74 20 76 65 72  code so that ver
8630: 73 69 6f 6e 20 32 2e 31 2e 31 20 64 61 74 61 62  sion 2.1.1 datab
8640: 61 73 65 73 20 74 68 61 74 20 77 65 72 65 20 72  ases that were r
8650: 65 6e 64 65 72 65 64 20 0a 20 20 20 20 75 6e 72  endered .    unr
8660: 65 61 64 61 62 6c 65 20 62 79 20 74 68 65 20 61  eadable by the a
8670: 62 6f 76 65 20 62 75 67 20 63 61 6e 20 62 65 20  bove bug can be 
8680: 72 65 61 64 20 62 79 20 74 68 69 73 20 76 65 72  read by this ver
8690: 73 69 6f 6e 20 6f 66 0a 20 20 20 20 74 68 65 20  sion of.    the 
86a0: 6c 69 62 72 61 72 79 20 65 76 65 6e 20 74 68 6f  library even tho
86b0: 75 67 68 20 74 68 65 20 53 51 4c 49 54 45 5f 4d  ugh the SQLITE_M
86c0: 41 53 54 45 52 20 74 61 62 6c 65 20 69 73 20 28  ASTER table is (
86d0: 73 6c 69 67 68 74 6c 79 29 0a 20 20 20 20 63 6f  slightly).    co
86e0: 72 72 75 70 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  rrupted.</li>.}.
86f0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20  .chng {2001 Nov 
8700: 31 33 20 28 32 2e 31 2e 31 29 7d 20 7b 0a 3c 6c  13 (2.1.1)} {.<l
8710: 69 3e 42 75 67 20 66 69 78 3a 20 53 6f 6d 65 74  i>Bug fix: Somet
8720: 69 6d 65 73 20 61 72 62 69 74 72 61 72 79 20 73  imes arbitrary s
8730: 74 72 69 6e 67 73 20 77 65 72 65 20 70 61 73 73  trings were pass
8740: 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61  ed to the callba
8750: 63 6b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20  ck.    function 
8760: 77 68 65 6e 20 74 68 65 20 61 63 74 75 61 6c 20  when the actual 
8770: 76 61 6c 75 65 20 6f 66 20 61 20 63 6f 6c 75 6d  value of a colum
8780: 6e 20 77 61 73 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e  n was NULL.</li>
8790: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e  .}..chng {2001 N
87a0: 6f 76 20 31 32 20 28 32 2e 31 2e 30 29 7d 20 7b  ov 12 (2.1.0)} {
87b0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
87c0: 66 6f 72 6d 61 74 20 6f 66 20 64 61 74 61 20 72  format of data r
87d0: 65 63 6f 72 64 73 20 73 6f 20 74 68 61 74 20 72  ecords so that r
87e0: 65 63 6f 72 64 73 20 75 70 20 74 6f 20 31 36 4d  ecords up to 16M
87f0: 42 20 69 6e 20 73 69 7a 65 0a 20 20 20 20 63 61  B in size.    ca
8800: 6e 20 62 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69  n be stored.</li
8810: 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  >.<li>Change the
8820: 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69 63   format of indic
8830: 65 73 20 74 6f 20 61 6c 6c 6f 77 20 66 6f 72 20  es to allow for 
8840: 62 65 74 74 65 72 20 71 75 65 72 79 20 6f 70 74  better query opt
8850: 69 6d 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a  imization.</li>.
8860: 3c 6c 69 3e 49 6d 70 6c 65 6d 65 6e 74 20 74 68  <li>Implement th
8870: 65 20 22 4c 49 4d 49 54 20 2e 2e 2e 20 4f 46 46  e "LIMIT ... OFF
8880: 53 45 54 20 2e 2e 2e 22 20 63 6c 61 75 73 65 20  SET ..." clause 
8890: 6f 6e 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d  on SELECT statem
88a0: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ents.</li>.}..ch
88b0: 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 33 20 28  ng {2001 Nov 3 (
88c0: 32 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61  2.0.8)} {.<li>Ma
88d0: 64 65 20 73 65 6c 65 63 74 65 64 20 70 61 72 61  de selected para
88e0: 6d 65 74 65 72 73 20 69 6e 20 41 50 49 20 66 75  meters in API fu
88f0: 6e 63 74 69 6f 6e 73 20 3c 62 3e 63 6f 6e 73 74  nctions <b>const
8900: 3c 2f 62 3e 2e 20 54 68 69 73 20 73 68 6f 75 6c  </b>. This shoul
8910: 64 0a 20 20 20 20 62 65 20 66 75 6c 6c 79 20 62  d.    be fully b
8920: 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69  ackwards compati
8930: 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f  ble.</li>.<li>Do
8940: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
8950: 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 69 6d  tes</li>.<li>Sim
8960: 70 6c 69 66 79 20 74 68 65 20 64 65 73 69 67 6e  plify the design
8970: 20 6f 66 20 74 68 65 20 56 44 42 45 20 62 79 20   of the VDBE by 
8980: 72 65 73 74 72 69 63 74 69 6e 67 20 74 68 65 20  restricting the 
8990: 6e 75 6d 62 65 72 20 6f 66 20 73 6f 72 74 65 72  number of sorter
89a0: 73 0a 20 20 20 20 61 6e 64 20 6c 69 73 74 73 20  s.    and lists 
89b0: 74 6f 20 31 2e 0a 20 20 20 20 49 6e 20 70 72 61  to 1..    In pra
89c0: 63 74 69 63 65 2c 20 6e 6f 20 6d 6f 72 65 20 74  ctice, no more t
89d0: 68 61 6e 20 6f 6e 65 20 73 6f 72 74 65 72 20 61  han one sorter a
89e0: 6e 64 20 6f 6e 65 20 6c 69 73 74 20 77 61 73 20  nd one list was 
89f0: 65 76 65 72 20 75 73 65 64 20 61 6e 79 68 6f 77  ever used anyhow
8a00: 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ..    </li>.}..c
8a10: 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32 31  hng {2001 Oct 21
8a20: 20 28 32 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.7)} {.<li>
8a30: 41 6e 79 20 55 54 46 2d 38 20 63 68 61 72 61 63  Any UTF-8 charac
8a40: 74 65 72 20 6f 72 20 49 53 4f 38 38 35 39 20 63  ter or ISO8859 c
8a50: 68 61 72 61 63 74 65 72 20 63 61 6e 20 62 65 20  haracter can be 
8a60: 75 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 0a  used as part of.
8a70: 20 20 20 20 61 6e 20 69 64 65 6e 74 69 66 69 65      an identifie
8a80: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 74 63  r.</li>.<li>Patc
8a90: 68 65 73 20 66 72 6f 6d 20 43 68 72 69 73 74 69  hes from Christi
8aa0: 61 6e 20 57 65 72 6e 65 72 20 74 6f 20 69 6d 70  an Werner to imp
8ab0: 72 6f 76 65 20 4f 44 42 43 20 63 6f 6d 70 61 74  rove ODBC compat
8ac0: 69 62 69 6c 69 74 79 20 61 6e 64 20 74 6f 0a 20  ibility and to. 
8ad0: 20 20 20 66 69 78 20 61 20 62 75 67 20 69 6e 20     fix a bug in 
8ae0: 74 68 65 20 72 6f 75 6e 64 28 29 20 66 75 6e 63  the round() func
8af0: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  tion.</li>.<li>P
8b00: 6c 75 67 20 73 6f 6d 65 20 6d 65 6d 6f 72 79 20  lug some memory 
8b10: 6c 65 61 6b 73 20 74 68 61 74 20 75 73 65 20 74  leaks that use t
8b20: 6f 20 6f 63 63 75 72 20 69 66 20 6d 61 6c 6c 6f  o occur if mallo
8b30: 63 28 29 20 66 61 69 6c 65 64 2e 0a 20 20 20 20  c() failed..    
8b40: 57 65 20 68 61 76 65 20 62 65 65 6e 20 61 6e 64  We have been and
8b50: 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 62 65 20   continue to be 
8b60: 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 66 72 65 65  memory leak free
8b70: 20 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20   as long as.    
8b80: 6d 61 6c 6c 6f 63 28 29 20 77 6f 72 6b 73 2e 3c  malloc() works.<
8b90: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  /li>.<li>Changes
8ba0: 20 74 6f 20 73 6f 6d 65 20 74 65 73 74 20 73 63   to some test sc
8bb0: 72 69 70 74 73 20 73 6f 20 74 68 61 74 20 74 68  ripts so that th
8bc0: 65 79 20 77 6f 72 6b 20 6f 6e 20 57 69 6e 64 6f  ey work on Windo
8bd0: 77 73 20 69 6e 0a 20 20 20 20 61 64 64 69 74 69  ws in.    additi
8be0: 6f 6e 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e  on to Unix.</li>
8bf0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f  .}..chng {2001 O
8c00: 63 74 20 31 39 20 28 32 2e 30 2e 36 29 7d 20 7b  ct 19 (2.0.6)} {
8c10: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 45  .<li>Added the E
8c20: 4d 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c  MPTY_RESULT_CALL
8c30: 42 41 43 4b 53 20 70 72 61 67 6d 61 3c 2f 6c 69  BACKS pragma</li
8c40: 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  >.<li>Support fo
8c50: 72 20 55 54 46 2d 38 20 61 6e 64 20 49 53 4f 38  r UTF-8 and ISO8
8c60: 38 35 39 20 63 68 61 72 61 63 74 65 72 73 20 69  859 characters i
8c70: 6e 20 63 6f 6c 75 6d 6e 20 61 6e 64 20 74 61 62  n column and tab
8c80: 6c 65 20 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c  le names.</li>.<
8c90: 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6d 70  li>Bug fix: Comp
8ca0: 75 74 65 20 63 6f 72 72 65 63 74 20 74 61 62 6c  ute correct tabl
8cb0: 65 20 6e 61 6d 65 73 20 77 69 74 68 20 74 68 65  e names with the
8cc0: 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d   FULL_COLUMN_NAM
8cd0: 45 53 20 70 72 61 67 6d 61 0a 20 20 20 20 69 73  ES pragma.    is
8ce0: 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e   turned on.</li>
8cf0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f  .}..chng {2001 O
8d00: 63 74 20 31 34 20 28 32 2e 30 2e 35 29 7d 20 7b  ct 14 (2.0.5)} {
8d10: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 43  .<li>Added the C
8d20: 4f 55 4e 54 5f 43 48 41 4e 47 45 53 20 70 72 61  OUNT_CHANGES pra
8d30: 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68  gma.</li>.<li>Ch
8d40: 61 6e 67 65 73 20 74 6f 20 74 68 65 20 46 55 4c  anges to the FUL
8d50: 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70  L_COLUMN_NAMES p
8d60: 72 61 67 6d 61 20 74 6f 20 68 65 6c 70 20 6f 75  ragma to help ou
8d70: 74 20 74 68 65 20 4f 44 42 43 20 64 72 69 76 65  t the ODBC drive
8d80: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  r.</li>.<li>Bug 
8d90: 66 69 78 3a 20 22 53 45 4c 45 43 54 20 63 6f 75  fix: "SELECT cou
8da0: 6e 74 28 2a 29 22 20 77 61 73 20 72 65 74 75 72  nt(*)" was retur
8db0: 6e 69 6e 67 20 4e 55 4c 4c 20 66 6f 72 20 65 6d  ning NULL for em
8dc0: 70 74 79 20 74 61 62 6c 65 73 2e 0a 20 20 20 20  pty tables..    
8dd0: 4e 6f 77 20 69 74 20 72 65 74 75 72 6e 73 20 30  Now it returns 0
8de0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8df0: 32 30 30 31 20 4f 63 74 20 31 33 20 28 32 2e 30  2001 Oct 13 (2.0
8e00: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .4)} {.<li>Bug f
8e10: 69 78 3a 20 61 6e 20 6f 62 73 63 75 72 65 20 61  ix: an obscure a
8e20: 6e 64 20 72 65 6c 61 74 69 76 65 6c 79 20 68 61  nd relatively ha
8e30: 72 6d 6c 65 73 73 20 62 75 67 20 77 61 73 20 63  rmless bug was c
8e40: 61 75 73 69 6e 67 20 6f 6e 65 20 6f 66 0a 20 20  ausing one of.  
8e50: 20 20 74 68 65 20 74 65 73 74 73 20 74 6f 20 66    the tests to f
8e60: 61 69 6c 20 77 68 65 6e 20 67 63 63 20 6f 70 74  ail when gcc opt
8e70: 69 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 74  imizations are t
8e80: 75 72 6e 65 64 20 6f 6e 2e 20 20 54 68 69 73 20  urned on.  This 
8e90: 72 65 6c 65 61 73 65 0a 20 20 20 20 66 69 78 65  release.    fixe
8ea0: 73 20 74 68 65 20 70 72 6f 62 6c 65 6d 2e 3c 2f  s the problem.</
8eb0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8ec0: 31 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 33 29  1 Oct 13 (2.0.3)
8ed0: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
8ee0: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62   the <b>sqlite_b
8ef0: 75 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f 62  usy_timeout()</b
8f00: 3e 20 66 75 6e 63 74 69 6f 6e 20 77 61 73 20 64  > function was d
8f10: 65 6c 61 79 69 6e 67 20 31 30 30 30 0a 20 20 20  elaying 1000.   
8f20: 20 74 69 6d 65 73 20 74 6f 6f 20 6c 6f 6e 67 20   times too long 
8f30: 62 65 66 6f 72 65 20 66 61 69 6c 69 6e 67 2e 3c  before failing.<
8f40: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
8f50: 3a 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 77  : an assertion w
8f60: 61 73 20 66 61 69 6c 69 6e 67 20 69 66 20 74 68  as failing if th
8f70: 65 20 64 69 73 6b 20 68 6f 6c 64 69 6e 67 20 74  e disk holding t
8f80: 68 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20  he database.    
8f90: 66 69 6c 65 20 62 65 63 61 6d 65 20 66 75 6c 6c  file became full
8fa0: 20 6f 72 20 73 74 6f 70 70 65 64 20 61 63 63 65   or stopped acce
8fb0: 70 74 69 6e 67 20 77 72 69 74 65 73 20 66 6f 72  pting writes for
8fc0: 20 73 6f 6d 65 20 6f 74 68 65 72 20 72 65 61 73   some other reas
8fd0: 6f 6e 2e 0a 20 20 20 20 4e 65 77 20 74 65 73 74  on..    New test
8fe0: 73 20 77 65 72 65 20 61 64 64 65 64 20 74 6f 20  s were added to 
8ff0: 64 65 74 65 63 74 20 73 69 6d 69 6c 61 72 20 70  detect similar p
9000: 72 6f 62 6c 65 6d 73 20 69 6e 20 74 68 65 20 66  roblems in the f
9010: 75 74 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  uture.</li>.<li>
9020: 41 64 64 65 64 20 6e 65 77 20 6f 70 65 72 61 74  Added new operat
9030: 6f 72 73 3a 20 3c 62 3e 26 61 6d 70 3b 3c 2f 62  ors: <b>&amp;</b
9040: 3e 20 28 62 69 74 77 69 73 65 2d 61 6e 64 29 0a  > (bitwise-and).
9050: 20 20 20 20 3c 62 3e 7c 3c 2f 62 3e 20 28 62 69      <b>|</b> (bi
9060: 74 77 69 73 65 2d 6f 72 29 2c 20 3c 62 3e 7e 3c  twise-or), <b>~<
9070: 2f 62 3e 20 28 6f 6e 65 73 2d 63 6f 6d 70 6c 65  /b> (ones-comple
9080: 6d 65 6e 74 29 2c 0a 20 20 20 20 3c 62 3e 26 6c  ment),.    <b>&l
9090: 74 3b 26 6c 74 3b 3c 2f 62 3e 20 28 73 68 69 66  t;&lt;</b> (shif
90a0: 74 20 6c 65 66 74 29 2c 20 3c 62 3e 26 67 74 3b  t left), <b>&gt;
90b0: 26 67 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20  &gt;</b> (shift 
90c0: 72 69 67 68 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69  right).</li>.<li
90d0: 3e 41 64 64 65 64 20 6e 65 77 20 66 75 6e 63 74  >Added new funct
90e0: 69 6f 6e 73 3a 20 3c 62 3e 72 6f 75 6e 64 28 29  ions: <b>round()
90f0: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 61 62 73 28  </b> and <b>abs(
9100: 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  )</b>.</li>.}..c
9110: 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 39 20  hng {2001 Oct 9 
9120: 28 32 2e 30 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.0.2)} {.<li>F
9130: 69 78 20 74 77 6f 20 62 75 67 73 20 69 6e 20 74  ix two bugs in t
9140: 68 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f  he locking proto
9150: 63 6f 6c 2e 20 20 28 4f 6e 65 20 77 61 73 20 6d  col.  (One was m
9160: 61 73 6b 69 6e 67 20 74 68 65 20 6f 74 68 65 72  asking the other
9170: 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  .)</li>.<li>Remo
9180: 76 65 64 20 73 6f 6d 65 20 75 6e 75 73 65 64 20  ved some unused 
9190: 22 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74  "#include <unist
91a0: 64 2e 68 3e 22 20 74 68 61 74 20 77 65 72 65 20  d.h>" that were 
91b0: 63 61 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73  causing problems
91c0: 0a 20 20 20 20 66 6f 72 20 56 43 2b 2b 2e 3c 2f  .    for VC++.</
91d0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 3c 62  li>.<li>Fixed <b
91e0: 3e 73 71 6c 69 74 65 2e 68 3c 2f 62 3e 20 73 6f  >sqlite.h</b> so
91f0: 20 74 68 61 74 20 69 74 20 69 73 20 75 73 61 62   that it is usab
9200: 6c 65 20 66 72 6f 6d 20 43 2b 2b 3c 2f 6c 69 3e  le from C++</li>
9210: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 46  .<li>Added the F
9220: 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53  ULL_COLUMN_NAMES
9230: 20 70 72 61 67 6d 61 2e 20 20 57 68 65 6e 20 73   pragma.  When s
9240: 65 74 20 74 6f 20 22 4f 4e 22 2c 20 74 68 65 20  et to "ON", the 
9250: 6e 61 6d 65 73 20 6f 66 0a 20 20 20 20 63 6f 6c  names of.    col
9260: 75 6d 6e 73 20 61 72 65 20 72 65 70 6f 72 74 65  umns are reporte
9270: 64 20 62 61 63 6b 20 61 73 20 54 41 42 4c 45 2e  d back as TABLE.
9280: 43 4f 4c 55 4d 4e 20 69 6e 73 74 65 61 64 20 6f  COLUMN instead o
9290: 66 20 6a 75 73 74 20 43 4f 4c 55 4d 4e 2e 3c 2f  f just COLUMN.</
92a0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
92b0: 65 20 54 41 42 4c 45 5f 49 4e 46 4f 28 29 20 61  e TABLE_INFO() a
92c0: 6e 64 20 49 4e 44 45 58 5f 49 4e 46 4f 28 29 20  nd INDEX_INFO() 
92d0: 70 72 61 67 6d 61 73 20 74 6f 20 68 65 6c 70 20  pragmas to help 
92e0: 73 75 70 70 6f 72 74 20 74 68 65 0a 20 20 20 20  support the.    
92f0: 4f 44 42 43 20 69 6e 74 65 72 66 61 63 65 2e 3c  ODBC interface.<
9300: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
9310: 75 70 70 6f 72 74 20 66 6f 72 20 54 45 4d 50 4f  upport for TEMPO
9320: 52 41 52 59 20 74 61 62 6c 65 73 20 61 6e 64 20  RARY tables and 
9330: 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  indices.</li>.}.
9340: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20  .chng {2001 Oct 
9350: 32 20 28 32 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69  2 (2.0.1)} {.<li
9360: 3e 52 65 6d 6f 76 65 20 73 6f 6d 65 20 43 2b 2b  >Remove some C++
9370: 20 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73 20   style comments 
9380: 66 72 6f 6d 20 62 74 72 65 65 2e 63 20 73 6f 20  from btree.c so 
9390: 74 68 61 74 20 69 74 20 77 69 6c 6c 20 63 6f 6d  that it will com
93a0: 70 69 6c 65 0a 20 20 20 20 75 73 69 6e 67 20 63  pile.    using c
93b0: 6f 6d 70 69 6c 65 72 73 20 6f 74 68 65 72 20 74  ompilers other t
93c0: 68 61 6e 20 67 63 63 2e 3c 2f 6c 69 3e 0a 3c 6c  han gcc.</li>.<l
93d0: 69 3e 54 68 65 20 22 2e 64 75 6d 70 22 20 6f 75  i>The ".dump" ou
93e0: 74 70 75 74 20 66 72 6f 6d 20 74 68 65 20 73 68  tput from the sh
93f0: 65 6c 6c 20 64 6f 65 73 20 6e 6f 74 20 77 6f 72  ell does not wor
9400: 6b 20 69 66 20 74 68 65 72 65 20 61 72 65 20 65  k if there are e
9410: 6d 62 65 64 64 65 64 0a 20 20 20 20 6e 65 77 6c  mbedded.    newl
9420: 69 6e 65 73 20 61 6e 79 77 68 65 72 65 20 69 6e  ines anywhere in
9430: 20 74 68 65 20 64 61 74 61 2e 20 20 54 68 69 73   the data.  This
9440: 20 69 73 20 61 6e 20 6f 6c 64 20 62 75 67 20 74   is an old bug t
9450: 68 61 74 20 77 61 73 20 63 61 72 72 69 65 64 0a  hat was carried.
9460: 20 20 20 20 66 6f 72 77 61 72 64 20 66 72 6f 6d      forward from
9470: 20 76 65 72 73 69 6f 6e 20 31 2e 30 2e 20 20 54   version 1.0.  T
9480: 6f 20 66 69 78 20 69 74 2c 20 74 68 65 20 22 2e  o fix it, the ".
9490: 64 75 6d 70 22 20 6f 75 74 70 75 74 20 6e 6f 20  dump" output no 
94a0: 6c 6f 6e 67 65 72 0a 20 20 20 20 75 73 65 73 20  longer.    uses 
94b0: 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64  the COPY command
94c0: 2e 20 20 49 74 20 69 6e 73 74 65 61 64 20 67 65  .  It instead ge
94d0: 6e 65 72 61 74 65 73 20 49 4e 53 45 52 54 20 73  nerates INSERT s
94e0: 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  tatements.</li>.
94f0: 3c 6c 69 3e 45 78 74 65 6e 64 20 74 68 65 20 65  <li>Extend the e
9500: 78 70 72 65 73 73 69 6f 6e 20 73 79 6e 74 61 78  xpression syntax
9510: 20 74 6f 20 73 75 70 70 6f 72 74 20 22 65 78 70   to support "exp
9520: 72 20 4e 4f 54 20 4e 55 4c 4c 22 20 28 77 69 74  r NOT NULL" (wit
9530: 68 20 61 0a 20 20 20 20 73 70 61 63 65 20 62 65  h a.    space be
9540: 74 77 65 65 6e 20 74 68 65 20 22 4e 4f 54 22 20  tween the "NOT" 
9550: 61 6e 64 20 74 68 65 20 22 4e 55 4c 4c 22 29 20  and the "NULL") 
9560: 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 22  in addition to "
9570: 65 78 70 72 20 4e 4f 54 4e 55 4c 4c 22 0a 20 20  expr NOTNULL".  
9580: 20 20 28 77 69 74 68 20 6e 6f 20 73 70 61 63 65    (with no space
9590: 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ).</li>.}..chng 
95a0: 7b 32 30 30 31 20 53 65 70 20 32 38 20 28 32 2e  {2001 Sep 28 (2.
95b0: 30 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f  0.0)} {.<li>Auto
95c0: 6d 61 74 69 63 61 6c 6c 79 20 62 75 69 6c 64 20  matically build 
95d0: 62 69 6e 61 72 69 65 73 20 66 6f 72 20 4c 69 6e  binaries for Lin
95e0: 75 78 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 61  ux and Windows a
95f0: 6e 64 20 70 75 74 20 74 68 65 6d 20 6f 6e 0a 20  nd put them on. 
9600: 20 20 20 74 68 65 20 77 65 62 73 69 74 65 2e 3c     the website.<
9610: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9620: 30 31 20 53 65 70 20 32 38 20 28 32 2e 30 2d 61  01 Sep 28 (2.0-a
9630: 6c 70 68 61 2d 34 29 7d 20 7b 0a 3c 6c 69 3e 49  lpha-4)} {.<li>I
9640: 6e 63 6f 72 70 6f 72 61 74 65 20 6d 61 6b 65 66  ncorporate makef
9650: 69 6c 65 20 70 61 74 63 68 65 73 20 66 6f 72 6d  ile patches form
9660: 20 41 2e 20 52 6f 74 74 6d 61 6e 6e 20 74 6f 20   A. Rottmann to 
9670: 75 73 65 20 4c 49 42 54 4f 4f 4c 3c 2f 6c 69 3e  use LIBTOOL</li>
9680: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53  .}..chng {2001 S
9690: 65 70 20 32 37 20 28 32 2e 30 2d 61 6c 70 68 61  ep 27 (2.0-alpha
96a0: 2d 33 29 7d 20 7b 0a 3c 6c 69 3e 53 51 4c 69 74  -3)} {.<li>SQLit
96b0: 65 20 6e 6f 77 20 68 6f 6e 6f 72 73 20 74 68 65  e now honors the
96c0: 20 55 4e 49 51 55 45 20 6b 65 79 77 6f 72 64 20   UNIQUE keyword 
96d0: 69 6e 20 43 52 45 41 54 45 20 55 4e 49 51 55 45  in CREATE UNIQUE
96e0: 20 49 4e 44 45 58 2e 20 20 50 72 69 6d 61 72 79   INDEX.  Primary
96f0: 0a 20 20 20 20 6b 65 79 73 20 61 72 65 20 72 65  .    keys are re
9700: 71 75 69 72 65 64 20 74 6f 20 62 65 20 75 6e 69  quired to be uni
9710: 71 75 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  que.</li>.<li>Fi
9720: 6c 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67 65  le format change
9730: 64 20 62 61 63 6b 20 74 6f 20 77 68 61 74 20 69  d back to what i
9740: 74 20 77 61 73 20 66 6f 72 20 61 6c 70 68 61 2d  t was for alpha-
9750: 31 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 73  1</li>.<li>Fixes
9760: 20 74 6f 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b   to the rollback
9770: 20 61 6e 64 20 6c 6f 63 6b 69 6e 67 20 62 65 68   and locking beh
9780: 61 76 69 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  avior</li>.}..ch
9790: 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 30 20  ng {2001 Sep 20 
97a0: 28 32 2e 30 2d 61 6c 70 68 61 2d 32 29 7d 20 7b  (2.0-alpha-2)} {
97b0: 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 72 65 6c  .<li>Initial rel
97c0: 65 61 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 20  ease of version 
97d0: 32 2e 30 2e 20 20 54 68 65 20 69 64 65 61 20 6f  2.0.  The idea o
97e0: 66 20 72 65 6e 61 6d 69 6e 67 20 74 68 65 20 6c  f renaming the l
97f0: 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20 22 53  ibrary.    to "S
9800: 51 4c 75 73 22 20 77 61 73 20 61 62 61 6e 64 6f  QLus" was abando
9810: 6e 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20  ned in favor of 
9820: 6b 65 65 70 69 6e 67 20 74 68 65 20 22 53 51 4c  keeping the "SQL
9830: 69 74 65 22 20 6e 61 6d 65 20 61 6e 64 0a 20 20  ite" name and.  
9840: 20 20 62 75 6d 70 69 6e 67 20 74 68 65 20 6d 61    bumping the ma
9850: 6a 6f 72 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62  jor version numb
9860: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  er.</li>.<li>The
9870: 20 70 61 67 65 72 20 61 6e 64 20 62 74 72 65 65   pager and btree
9880: 20 73 75 62 73 79 73 74 65 6d 73 20 61 64 64 65   subsystems adde
9890: 64 20 62 61 63 6b 2e 20 54 68 65 79 20 61 72 65  d back. They are
98a0: 20 6e 6f 77 20 74 68 65 20 6f 6e 6c 79 0a 20 20   now the only.  
98b0: 20 20 61 76 61 69 6c 61 62 6c 65 20 62 61 63 6b    available back
98c0: 65 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  end.</li>.<li>Th
98d0: 65 20 44 62 62 65 20 61 62 73 74 72 61 63 74 69  e Dbbe abstracti
98e0: 6f 6e 20 61 6e 64 20 74 68 65 20 47 44 42 4d 20  on and the GDBM 
98f0: 61 6e 64 20 6d 65 6d 6f 72 79 20 64 72 69 76 65  and memory drive
9900: 72 73 20 77 65 72 65 20 72 65 6d 6f 76 65 64 2e  rs were removed.
9910: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 70 79 72 69  </li>.<li>Copyri
9920: 67 68 74 20 6f 6e 20 61 6c 6c 20 63 6f 64 65 20  ght on all code 
9930: 77 61 73 20 64 69 73 63 6c 61 69 6d 65 64 2e 20  was disclaimed. 
9940: 20 54 68 65 20 6c 69 62 72 61 72 79 20 69 73 20   The library is 
9950: 6e 6f 77 20 69 6e 20 74 68 65 0a 20 20 20 20 70  now in the.    p
9960: 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 3c 2f 6c  ublic domain.</l
9970: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
9980: 20 4a 75 6c 20 32 33 20 28 31 2e 30 2e 33 32 29   Jul 23 (1.0.32)
9990: 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 61 6e  } {.<li>Pager an
99a0: 64 20 62 74 72 65 65 20 73 75 62 73 79 73 74 65  d btree subsyste
99b0: 6d 73 20 72 65 6d 6f 76 65 64 2e 20 20 54 68 65  ms removed.  The
99c0: 73 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20  se will be used 
99d0: 69 6e 20 61 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a 20  in a follow-on. 
99e0: 20 20 20 53 51 4c 20 73 65 72 76 65 72 20 6c 69     SQL server li
99f0: 62 72 61 72 79 20 6e 61 6d 65 64 20 22 53 51 4c  brary named "SQL
9a00: 75 73 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  us".</li>.<li>Ad
9a10: 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f  d the ability to
9a20: 20 75 73 65 20 71 75 6f 74 65 64 20 73 74 72 69   use quoted stri
9a30: 6e 67 73 20 61 73 20 74 61 62 6c 65 20 61 6e 64  ngs as table and
9a40: 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e   column names in
9a50: 0a 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 73  .    expressions
9a60: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9a70: 32 30 30 31 20 41 70 72 20 31 34 20 28 31 2e 30  2001 Apr 14 (1.0
9a80: 2e 33 31 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65  .31)} {.<li>Page
9a90: 72 20 73 75 62 73 79 73 74 65 6d 20 61 64 64 65  r subsystem adde
9aa0: 64 20 62 75 74 20 6e 6f 74 20 79 65 74 20 75 73  d but not yet us
9ab0: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72  ed.</li>.<li>Mor
9ac0: 65 20 72 6f 62 75 73 74 20 68 61 6e 64 6c 69 6e  e robust handlin
9ad0: 67 20 6f 66 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f  g of out-of-memo
9ae0: 72 79 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a  ry errors.</li>.
9af0: 3c 6c 69 3e 4e 65 77 20 74 65 73 74 73 20 61 64  <li>New tests ad
9b00: 64 65 64 20 74 6f 20 74 68 65 20 74 65 73 74 20  ded to the test 
9b10: 73 75 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  suite.</li>.}..c
9b20: 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 36 20  hng {2001 Apr 6 
9b30: 28 31 2e 30 2e 33 30 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.30)} {.<li>
9b40: 52 65 6d 6f 76 65 20 74 68 65 20 3c 62 3e 73 71  Remove the <b>sq
9b50: 6c 69 74 65 5f 65 6e 63 6f 64 69 6e 67 3c 2f 62  lite_encoding</b
9b60: 3e 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20 74  > TCL variable t
9b70: 68 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63  hat was introduc
9b80: 65 64 0a 20 20 20 20 69 6e 20 74 68 65 20 70 72  ed.    in the pr
9b90: 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 2e 3c  evious version.<
9ba0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 6f 70 74  /li>.<li>Add opt
9bb0: 69 6f 6e 73 20 3c 62 3e 2d 65 6e 63 6f 64 69 6e  ions <b>-encodin
9bc0: 67 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 2d 74 63  g</b> and <b>-tc
9bd0: 6c 2d 75 73 65 73 2d 75 74 66 3c 2f 62 3e 20 74  l-uses-utf</b> t
9be0: 6f 20 74 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c  o the.    <b>sql
9bf0: 69 74 65 3c 2f 62 3e 20 54 43 4c 20 63 6f 6d 6d  ite</b> TCL comm
9c00: 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  and.</li>.<li>Ad
9c10: 64 20 74 65 73 74 73 20 74 6f 20 6d 61 6b 65 20  d tests to make 
9c20: 73 75 72 65 20 74 68 61 74 20 74 63 6c 73 71 6c  sure that tclsql
9c30: 69 74 65 20 77 61 73 20 63 6f 6d 70 69 6c 65 64  ite was compiled
9c40: 20 75 73 69 6e 67 20 54 63 6c 20 68 65 61 64 65   using Tcl heade
9c50: 72 0a 20 20 20 20 66 69 6c 65 73 20 61 6e 64 20  r.    files and 
9c60: 6c 69 62 72 61 72 69 65 73 20 74 68 61 74 20 6d  libraries that m
9c70: 61 74 63 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  atch.</li>.}..ch
9c80: 6e 67 20 7b 32 30 30 31 20 41 70 72 20 35 20 28  ng {2001 Apr 5 (
9c90: 31 2e 30 2e 32 39 29 7d 20 7b 0a 3c 6c 69 3e 54  1.0.29)} {.<li>T
9ca0: 68 65 20 6c 69 62 72 61 72 79 20 6e 6f 77 20 61  he library now a
9cb0: 73 73 75 6d 65 73 20 64 61 74 61 20 69 73 20 73  ssumes data is s
9cc0: 74 6f 72 65 64 20 61 73 20 55 54 46 2d 38 20 69  tored as UTF-8 i
9cd0: 66 20 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 75  f the --enable-u
9ce0: 74 66 38 0a 20 20 20 20 6f 70 74 69 6f 6e 20 69  tf8.    option i
9cf0: 73 20 67 69 76 65 6e 20 74 6f 20 63 6f 6e 66 69  s given to confi
9d00: 67 75 72 65 2e 20 20 54 68 65 20 64 65 66 61 75  gure.  The defau
9d10: 6c 74 20 62 65 68 61 76 69 6f 72 20 69 73 20 74  lt behavior is t
9d20: 6f 20 61 73 73 75 6d 65 0a 20 20 20 20 69 73 6f  o assume.    iso
9d30: 38 38 35 39 2d 78 2c 20 61 73 20 69 74 20 68 61  8859-x, as it ha
9d40: 73 20 61 6c 77 61 79 73 20 64 6f 6e 65 2e 20 20  s always done.  
9d50: 54 68 69 73 20 6f 6e 6c 79 20 6d 61 6b 65 73 20  This only makes 
9d60: 61 20 64 69 66 66 65 72 65 6e 63 65 20 66 6f 72  a difference for
9d70: 0a 20 20 20 20 4c 49 4b 45 20 61 6e 64 20 47 4c  .    LIKE and GL
9d80: 4f 42 20 6f 70 65 72 61 74 6f 72 73 20 61 6e 64  OB operators and
9d90: 20 74 68 65 20 4c 45 4e 47 54 48 20 61 6e 64 20   the LENGTH and 
9da0: 53 55 42 53 54 52 20 66 75 6e 63 74 69 6f 6e 73  SUBSTR functions
9db0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74 68  .</li>.<li>If th
9dc0: 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 74  e library is not
9dd0: 20 63 6f 6e 66 69 67 75 72 65 64 20 66 6f 72 20   configured for 
9de0: 55 54 46 2d 38 20 61 6e 64 20 74 68 65 20 54 63  UTF-8 and the Tc
9df0: 6c 20 6c 69 62 72 61 72 79 0a 20 20 20 20 69 73  l library.    is
9e00: 20 6f 6e 65 20 6f 66 20 74 68 65 20 6e 65 77 65   one of the newe
9e10: 72 20 6f 6e 65 73 20 74 68 61 74 20 75 73 65 73  r ones that uses
9e20: 20 55 54 46 2d 38 20 69 6e 74 65 72 6e 61 6c 6c   UTF-8 internall
9e30: 79 2c 0a 20 20 20 20 74 68 65 6e 20 61 20 63 6f  y,.    then a co
9e40: 6e 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 55 54  nversion from UT
9e50: 46 2d 38 20 74 6f 20 69 73 6f 38 38 35 39 20 61  F-8 to iso8859 a
9e60: 6e 64 0a 20 20 20 20 62 61 63 6b 20 61 67 61 69  nd.    back agai
9e70: 6e 20 69 73 20 64 6f 6e 65 20 69 6e 73 69 64 65  n is done inside
9e80: 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61   the TCL interfa
9e90: 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ce.</li>.}..chng
9ea0: 20 7b 32 30 30 31 20 41 70 72 20 34 20 28 31 2e   {2001 Apr 4 (1.
9eb0: 30 2e 32 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  0.28)} {.<li>Add
9ec0: 65 64 20 6c 69 6d 69 74 65 64 20 73 75 70 70 6f  ed limited suppo
9ed0: 72 74 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69  rt for transacti
9ee0: 6f 6e 73 2e 20 20 41 74 20 74 68 69 73 20 70 6f  ons.  At this po
9ef0: 69 6e 74 2c 20 74 72 61 6e 73 61 63 74 69 6f 6e  int, transaction
9f00: 73 0a 20 20 20 20 77 69 6c 6c 20 64 6f 20 74 61  s.    will do ta
9f10: 62 6c 65 20 6c 6f 63 6b 69 6e 67 20 6f 6e 20 74  ble locking on t
9f20: 68 65 20 47 44 42 4d 20 62 61 63 6b 65 6e 64 2e  he GDBM backend.
9f30: 20 20 54 68 65 72 65 20 69 73 20 6e 6f 20 73 75    There is no su
9f40: 70 70 6f 72 74 20 28 79 65 74 29 0a 20 20 20 20  pport (yet).    
9f50: 66 6f 72 20 72 6f 6c 6c 62 61 63 6b 20 6f 72 20  for rollback or 
9f60: 61 74 6f 6d 69 63 20 63 6f 6d 6d 69 74 2e 3c 2f  atomic commit.</
9f70: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 70  li>.<li>Added sp
9f80: 65 63 69 61 6c 20 63 6f 6c 75 6d 6e 20 6e 61 6d  ecial column nam
9f90: 65 73 20 52 4f 57 49 44 2c 20 4f 49 44 2c 20 61  es ROWID, OID, a
9fa0: 6e 64 20 5f 52 4f 57 49 44 5f 20 74 68 61 74 20  nd _ROWID_ that 
9fb0: 72 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20 20  refer to the.   
9fc0: 20 75 6e 69 71 75 65 20 72 61 6e 64 6f 6d 20 69   unique random i
9fd0: 6e 74 65 67 65 72 20 6b 65 79 20 61 73 73 6f 63  nteger key assoc
9fe0: 69 61 74 65 64 20 77 69 74 68 20 65 76 65 72 79  iated with every
9ff0: 20 72 6f 77 20 6f 66 20 65 76 65 72 79 20 74 61   row of every ta
a000: 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ble.</li>.<li>Ad
a010: 64 69 74 69 6f 6e 61 6c 20 74 65 73 74 73 20 61  ditional tests a
a020: 64 64 65 64 20 74 6f 20 74 68 65 20 72 65 67 72  dded to the regr
a030: 65 73 73 69 6f 6e 20 73 75 69 74 65 20 74 6f 20  ession suite to 
a040: 63 6f 76 65 72 20 74 68 65 20 6e 65 77 20 52 4f  cover the new RO
a050: 57 49 44 0a 20 20 20 20 66 65 61 74 75 72 65 20  WID.    feature 
a060: 61 6e 64 20 74 68 65 20 54 43 4c 20 69 6e 74 65  and the TCL inte
a070: 72 66 61 63 65 20 62 75 67 73 20 6d 65 6e 74 69  rface bugs menti
a080: 6f 6e 65 64 20 62 65 6c 6f 77 2e 3c 2f 6c 69 3e  oned below.</li>
a090: 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20  .<li>Changes to 
a0a0: 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73  the "lemon" pars
a0b0: 65 72 20 67 65 6e 65 72 61 74 6f 72 20 74 6f 20  er generator to 
a0c0: 68 65 6c 70 20 69 74 20 77 6f 72 6b 20 62 65 74  help it work bet
a0d0: 74 65 72 20 77 68 65 6e 0a 20 20 20 20 63 6f 6d  ter when.    com
a0e0: 70 69 6c 65 64 20 75 73 69 6e 67 20 4d 53 56 43  piled using MSVC
a0f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
a100: 69 78 65 73 20 69 6e 20 74 68 65 20 54 43 4c 20  ixes in the TCL 
a110: 69 6e 74 65 72 66 61 63 65 20 69 64 65 6e 74 69  interface identi
a120: 66 69 65 64 20 62 79 20 4f 6c 65 67 20 4f 6c 65  fied by Oleg Ole
a130: 69 6e 69 63 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  inick.</li>.}..c
a140: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30  hng {2001 Mar 20
a150: 20 28 31 2e 30 2e 32 37 29 7d 20 7b 0a 3c 6c 69   (1.0.27)} {.<li
a160: 3e 57 68 65 6e 20 64 6f 69 6e 67 20 44 45 4c 45  >When doing DELE
a170: 54 45 20 61 6e 64 20 55 50 44 41 54 45 2c 20 74  TE and UPDATE, t
a180: 68 65 20 6c 69 62 72 61 72 79 20 75 73 65 64 20  he library used 
a190: 74 6f 20 77 72 69 74 65 20 74 68 65 20 72 65 63  to write the rec
a1a0: 6f 72 64 0a 20 20 20 20 6e 75 6d 62 65 72 73 20  ord.    numbers 
a1b0: 6f 66 20 72 65 63 6f 72 64 73 20 74 6f 20 62 65  of records to be
a1c0: 20 64 65 6c 65 74 65 64 20 6f 72 20 75 70 64 61   deleted or upda
a1d0: 74 65 64 20 69 6e 74 6f 20 61 20 74 65 6d 70 6f  ted into a tempo
a1e0: 72 61 72 79 20 66 69 6c 65 2e 0a 20 20 20 20 54  rary file..    T
a1f0: 68 69 73 20 69 73 20 63 68 61 6e 67 65 64 20 73  his is changed s
a200: 6f 20 74 68 61 74 20 74 68 65 20 72 65 63 6f 72  o that the recor
a210: 64 20 6e 75 6d 62 65 72 73 20 61 72 65 20 68 65  d numbers are he
a220: 6c 64 20 69 6e 20 6d 65 6d 6f 72 79 2e 3c 2f 6c  ld in memory.</l
a230: 69 3e 0a 3c 6c 69 3e 54 68 65 20 44 45 4c 45 54  i>.<li>The DELET
a240: 45 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 6f 75  E command withou
a250: 74 20 61 20 57 48 49 4c 45 20 63 6c 61 75 73 65  t a WHILE clause
a260: 20 6a 75 73 74 20 72 65 6d 6f 76 65 73 20 74 68   just removes th
a270: 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 66  e database.    f
a280: 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 64 69  iles from the di
a290: 73 6b 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20  sk, rather than 
a2a0: 67 6f 69 6e 67 20 74 68 72 6f 75 67 68 20 61 6e  going through an
a2b0: 64 20 64 65 6c 65 74 69 6e 67 20 72 65 63 6f 72  d deleting recor
a2c0: 64 0a 20 20 20 20 62 79 20 72 65 63 6f 72 64 2e  d.    by record.
a2d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a2e0: 30 30 31 20 4d 61 72 20 32 30 20 28 31 2e 30 2e  001 Mar 20 (1.0.
a2f0: 32 36 29 7d 20 7b 0a 3c 6c 69 3e 41 20 73 65 72  26)} {.<li>A ser
a300: 69 6f 75 73 20 62 75 67 20 66 69 78 65 64 20 6f  ious bug fixed o
a310: 6e 20 57 69 6e 64 6f 77 73 2e 20 20 57 69 6e 64  n Windows.  Wind
a320: 6f 77 73 20 75 73 65 72 73 20 73 68 6f 75 6c 64  ows users should
a330: 20 75 70 67 72 61 64 65 2e 0a 20 20 20 20 4e 6f   upgrade..    No
a340: 20 69 6d 70 61 63 74 20 74 6f 20 55 6e 69 78 2e   impact to Unix.
a350: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a360: 30 30 31 20 4d 61 72 20 31 35 20 28 31 2e 30 2e  001 Mar 15 (1.0.
a370: 32 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66  25)} {.<li>Modif
a380: 79 20 74 68 65 20 74 65 73 74 20 73 63 72 69 70  y the test scrip
a390: 74 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74  ts to identify t
a3a0: 65 73 74 73 20 74 68 61 74 20 64 65 70 65 6e 64  ests that depend
a3b0: 20 6f 6e 20 73 79 73 74 65 6d 0a 20 20 20 20 6c   on system.    l
a3c0: 6f 61 64 20 61 6e 64 20 70 72 6f 63 65 73 73 6f  oad and processo
a3d0: 72 20 73 70 65 65 64 20 61 6e 64 0a 20 20 20 20  r speed and.    
a3e0: 74 6f 20 77 61 72 6e 20 74 68 65 20 75 73 65 72  to warn the user
a3f0: 20 74 68 61 74 20 61 20 66 61 69 6c 75 72 65 20   that a failure 
a400: 6f 66 20 6f 6e 65 20 6f 66 20 74 68 6f 73 65 20  of one of those 
a410: 28 72 61 72 65 29 20 74 65 73 74 73 20 64 6f 65  (rare) tests doe
a420: 73 0a 20 20 20 20 6e 6f 74 20 6e 65 63 65 73 73  s.    not necess
a430: 61 72 69 6c 79 20 6d 65 61 6e 20 74 68 65 20 6c  arily mean the l
a440: 69 62 72 61 72 79 20 69 73 20 6d 61 6c 66 75 6e  ibrary is malfun
a450: 63 74 69 6f 6e 69 6e 67 2e 20 20 4e 6f 20 63 68  ctioning.  No ch
a460: 61 6e 67 65 73 20 74 6f 0a 20 20 20 20 63 6f 64  anges to.    cod
a470: 65 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a  e..    </li>.}..
a480: 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31  chng {2001 Mar 1
a490: 34 20 28 31 2e 30 2e 32 34 29 7d 20 7b 0a 3c 6c  4 (1.0.24)} {.<l
a4a0: 69 3e 46 69 78 20 61 20 62 75 67 20 77 68 69 63  i>Fix a bug whic
a4b0: 68 20 77 61 73 20 63 61 75 73 69 6e 67 0a 20 20  h was causing.  
a4c0: 20 20 74 68 65 20 55 50 44 41 54 45 20 63 6f 6d    the UPDATE com
a4d0: 6d 61 6e 64 20 74 6f 20 66 61 69 6c 20 6f 6e 20  mand to fail on 
a4e0: 73 79 73 74 65 6d 73 20 77 68 65 72 65 20 22 6d  systems where "m
a4f0: 61 6c 6c 6f 63 28 30 29 22 20 72 65 74 75 72 6e  alloc(0)" return
a500: 73 0a 20 20 20 20 4e 55 4c 4c 2e 20 20 54 68 65  s.    NULL.  The
a510: 20 70 72 6f 62 6c 65 6d 20 64 6f 65 73 20 6e 6f   problem does no
a520: 74 20 61 70 70 65 61 72 20 57 69 6e 64 6f 77 73  t appear Windows
a530: 2c 20 4c 69 6e 75 78 2c 20 6f 72 20 48 50 55 58  , Linux, or HPUX
a540: 20 62 75 74 20 64 6f 65 73 20 0a 20 20 20 20 63   but does .    c
a550: 61 75 73 65 20 74 68 65 20 6c 69 62 72 61 72 79  ause the library
a560: 20 74 6f 20 66 61 69 6c 20 6f 6e 20 51 4e 58 2e   to fail on QNX.
a570: 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  .    </li>.}..ch
a580: 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31 39 20  ng {2001 Feb 19 
a590: 28 31 2e 30 2e 32 33 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.23)} {.<li>
a5a0: 41 6e 20 75 6e 72 65 6c 61 74 65 64 20 28 61 6e  An unrelated (an
a5b0: 64 20 6d 69 6e 6f 72 29 20 62 75 67 20 66 72 6f  d minor) bug fro
a5c0: 6d 20 4d 61 72 6b 20 4d 75 72 61 6e 77 73 6b 69  m Mark Muranwski
a5d0: 20 66 69 78 65 64 2e 20 20 54 68 65 20 61 6c 67   fixed.  The alg
a5e0: 6f 72 69 74 68 6d 0a 20 20 20 20 66 6f 72 20 66  orithm.    for f
a5f0: 69 67 75 72 69 6e 67 20 6f 75 74 20 77 68 65 72  iguring out wher
a600: 65 20 74 6f 20 70 75 74 20 74 65 6d 70 6f 72 61  e to put tempora
a610: 72 79 20 66 69 6c 65 73 20 66 6f 72 20 61 20 22  ry files for a "
a620: 6d 65 6d 6f 72 79 3a 22 20 64 61 74 61 62 61 73  memory:" databas
a630: 65 0a 20 20 20 20 77 61 73 20 6e 6f 74 20 77 6f  e.    was not wo
a640: 72 6b 69 6e 67 20 71 75 69 74 65 20 72 69 67 68  rking quite righ
a650: 74 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a  t..    </li>.}..
a660: 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31  chng {2001 Feb 1
a670: 39 20 28 31 2e 30 2e 32 32 29 7d 20 7b 0a 3c 6c  9 (1.0.22)} {.<l
a680: 69 3e 54 68 65 20 70 72 65 76 69 6f 75 73 20 66  i>The previous f
a690: 69 78 20 77 61 73 20 6e 6f 74 20 71 75 69 74 65  ix was not quite
a6a0: 20 72 69 67 68 74 2e 20 20 54 68 69 73 20 6f 6e   right.  This on
a6b0: 65 20 73 65 65 6d 73 20 74 6f 20 77 6f 72 6b 20  e seems to work 
a6c0: 62 65 74 74 65 72 2e 0a 20 20 20 20 3c 2f 6c 69  better..    </li
a6d0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a6e0: 46 65 62 20 31 39 20 28 31 2e 30 2e 32 31 29 7d  Feb 19 (1.0.21)}
a6f0: 20 7b 0a 3c 6c 69 3e 54 68 65 20 55 50 44 41 54   {.<li>The UPDAT
a700: 45 20 73 74 61 74 65 6d 65 6e 74 20 77 61 73 20  E statement was 
a710: 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 77 68 65 6e  not working when
a720: 20 74 68 65 20 57 48 45 52 45 20 63 6c 61 75 73   the WHERE claus
a730: 65 20 63 6f 6e 74 61 69 6e 65 64 0a 20 20 20 20  e contained.    
a740: 73 6f 6d 65 20 74 65 72 6d 73 20 74 68 61 74 20  some terms that 
a750: 63 6f 75 6c 64 20 62 65 20 73 61 74 69 73 66 69  could be satisfi
a760: 65 64 20 75 73 69 6e 67 20 69 6e 64 69 63 65 73  ed using indices
a770: 20 61 6e 64 20 6f 74 68 65 72 20 74 65 72 6d 73   and other terms
a780: 20 74 68 61 74 0a 20 20 20 20 63 6f 75 6c 64 20   that.    could 
a790: 6e 6f 74 2e 20 20 46 69 78 65 64 2e 3c 2f 6c 69  not.  Fixed.</li
a7a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a7b0: 46 65 62 20 31 31 20 28 31 2e 30 2e 32 30 29 7d  Feb 11 (1.0.20)}
a7c0: 20 7b 0a 3c 6c 69 3e 4d 65 72 67 65 20 64 65 76   {.<li>Merge dev
a7d0: 65 6c 6f 70 6d 65 6e 74 20 63 68 61 6e 67 65 73  elopment changes
a7e0: 20 69 6e 74 6f 20 74 68 65 20 6d 61 69 6e 20 74   into the main t
a7f0: 72 75 6e 6b 2e 20 20 46 75 74 75 72 65 20 77 6f  runk.  Future wo
a800: 72 6b 20 74 6f 77 61 72 64 0a 20 20 20 20 75 73  rk toward.    us
a810: 69 6e 67 20 61 20 42 54 72 65 65 20 66 69 6c 65  ing a BTree file
a820: 20 73 74 72 75 63 74 75 72 65 20 77 69 6c 6c 20   structure will 
a830: 75 73 65 20 61 20 73 65 70 61 72 61 74 65 20 43  use a separate C
a840: 56 53 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20  VS source tree. 
a850: 20 54 68 69 73 0a 20 20 20 20 43 56 53 20 74 72   This.    CVS tr
a860: 65 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65  ee will continue
a870: 20 74 6f 20 73 75 70 70 6f 72 74 20 74 68 65 20   to support the 
a880: 47 44 42 4d 20 76 65 72 73 69 6f 6e 20 6f 66 20  GDBM version of 
a890: 53 51 4c 69 74 65 20 6f 6e 6c 79 2e 3c 2f 6c 69  SQLite only.</li
a8a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a8b0: 46 65 62 20 36 20 28 31 2e 30 2e 31 39 29 7d 20  Feb 6 (1.0.19)} 
a8c0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 73 74 72 61  {.<li>Fix a stra
a8d0: 6e 67 65 20 28 62 75 74 20 76 61 6c 69 64 29 20  nge (but valid) 
a8e0: 43 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 68  C declaration th
a8f0: 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 70  at was causing p
a900: 72 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20  roblems.    for 
a910: 51 4e 58 2e 20 20 4e 6f 20 6c 6f 67 69 63 61 6c  QNX.  No logical
a920: 20 63 68 61 6e 67 65 73 2e 3c 2f 6c 69 3e 0a 7d   changes.</li>.}
a930: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 61 6e  ..chng {2001 Jan
a940: 20 34 20 28 31 2e 30 2e 31 38 29 7d 20 7b 0a 3c   4 (1.0.18)} {.<
a950: 6c 69 3e 50 72 69 6e 74 20 74 68 65 20 6f 66 66  li>Print the off
a960: 65 6e 64 69 6e 67 20 53 51 4c 20 73 74 61 74 65  ending SQL state
a970: 6d 65 6e 74 20 77 68 65 6e 20 61 6e 20 65 72 72  ment when an err
a980: 6f 72 20 6f 63 63 75 72 73 2e 3c 2f 6c 69 3e 0a  or occurs.</li>.
a990: 3c 6c 69 3e 44 6f 20 6e 6f 74 20 72 65 71 75 69  <li>Do not requi
a9a0: 72 65 20 63 6f 6d 6d 61 73 20 62 65 74 77 65 65  re commas betwee
a9b0: 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69 6e  n constraints in
a9c0: 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 73 74   CREATE TABLE st
a9d0: 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c  atements.</li>.<
a9e0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22 2d 65  li>Added the "-e
a9f0: 63 68 6f 22 20 6f 70 74 69 6f 6e 20 74 6f 20 74  cho" option to t
aa00: 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c  he shell.</li>.<
aa10: 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 63 6f  li>Changes to co
aa20: 6d 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  mments.</li>.}..
aa30: 63 68 6e 67 20 7b 32 30 30 30 20 44 65 63 20 31  chng {2000 Dec 1
aa40: 30 20 28 31 2e 30 2e 31 37 29 7d 20 7b 0a 3c 6c  0 (1.0.17)} {.<l
aa50: 69 3e 52 65 77 72 6f 74 65 20 3c 62 3e 73 71 6c  i>Rewrote <b>sql
aa60: 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f  ite_complete()</
aa70: 62 3e 20 74 6f 20 6d 61 6b 65 20 69 74 20 66 61  b> to make it fa
aa80: 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ster.</li>.<li>M
aa90: 69 6e 6f 72 20 74 77 65 61 6b 73 20 74 6f 20 6f  inor tweaks to o
aaa0: 74 68 65 72 20 63 6f 64 65 20 74 6f 20 6d 61 6b  ther code to mak
aab0: 65 20 69 74 20 72 75 6e 20 61 20 6c 69 74 74 6c  e it run a littl
aac0: 65 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c  e faster.</li>.<
aad0: 6c 69 3e 41 64 64 65 64 20 6e 65 77 20 74 65 73  li>Added new tes
aae0: 74 73 20 66 6f 72 20 3c 62 3e 73 71 6c 69 74 65  ts for <b>sqlite
aaf0: 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20  _complete()</b> 
ab00: 61 6e 64 20 66 6f 72 20 6d 65 6d 6f 72 79 20 6c  and for memory l
ab10: 65 61 6b 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  eaks.</li>.}..ch
ab20: 6e 67 20 7b 32 30 30 30 20 44 65 63 20 34 20 28  ng {2000 Dec 4 (
ab30: 31 2e 30 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 44  1.0.16)} {.<li>D
ab40: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
ab50: 61 74 65 73 2e 20 20 4d 6f 73 74 6c 79 20 66 69  ates.  Mostly fi
ab60: 78 69 6e 67 20 6f 66 20 74 79 70 6f 73 20 61 6e  xing of typos an
ab70: 64 20 73 70 65 6c 6c 69 6e 67 20 65 72 72 6f 72  d spelling error
ab80: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
ab90: 7b 32 30 30 30 20 4f 63 74 20 32 33 20 28 31 2e  {2000 Oct 23 (1.
aba0: 30 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63  0.15)} {.<li>Doc
abb0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
abc0: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d 65  es</li>.<li>Some
abd0: 20 73 61 6e 69 74 79 20 63 68 65 63 6b 69 6e 67   sanity checking
abe0: 20 63 6f 64 65 20 77 61 73 20 72 65 6d 6f 76 65   code was remove
abf0: 64 20 66 72 6f 6d 20 74 68 65 20 69 6e 6e 65 72  d from the inner
ac00: 20 6c 6f 6f 70 20 6f 66 20 76 64 62 65 2e 63 0a   loop of vdbe.c.
ac10: 20 20 20 20 74 6f 20 68 65 6c 70 20 74 68 65 20      to help the 
ac20: 6c 69 62 72 61 72 79 20 74 6f 20 72 75 6e 20 61  library to run a
ac30: 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 20   little faster. 
ac40: 20 54 68 65 20 63 6f 64 65 20 69 73 20 6f 6e 6c   The code is onl
ac50: 79 0a 20 20 20 20 72 65 6d 6f 76 65 64 20 69 66  y.    removed if
ac60: 20 79 6f 75 20 63 6f 6d 70 69 6c 65 20 77 69 74   you compile wit
ac70: 68 20 2d 44 4e 44 45 42 55 47 2e 3c 2f 6c 69 3e  h -DNDEBUG.</li>
ac80: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f  .}..chng {2000 O
ac90: 63 74 20 31 39 20 28 31 2e 30 2e 31 34 29 7d 20  ct 19 (1.0.14)} 
aca0: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 22 6d  {.<li>Added a "m
acb0: 65 6d 6f 72 79 3a 22 20 62 61 63 6b 65 6e 64 20  emory:" backend 
acc0: 64 72 69 76 65 72 20 74 68 61 74 20 73 74 6f 72  driver that stor
acd0: 65 73 20 69 74 73 20 64 61 74 61 62 61 73 65 20  es its database 
ace0: 69 6e 20 61 6e 0a 20 20 20 20 69 6e 2d 6d 65 6d  in an.    in-mem
acf0: 6f 72 79 20 68 61 73 68 20 74 61 62 6c 65 2e 3c  ory hash table.<
ad00: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
ad10: 30 30 20 4f 63 74 20 31 38 20 28 31 2e 30 2e 31  00 Oct 18 (1.0.1
ad20: 33 29 7d 20 7b 0a 3c 6c 69 3e 42 72 65 61 6b 20  3)} {.<li>Break 
ad30: 6f 75 74 20 74 68 65 20 47 44 42 4d 20 64 72 69  out the GDBM dri
ad40: 76 65 72 20 69 6e 74 6f 20 61 20 73 65 70 61 72  ver into a separ
ad50: 61 74 65 20 66 69 6c 65 20 69 6e 20 61 6e 74 69  ate file in anti
ad60: 63 69 70 61 74 69 6f 6e 0a 20 20 20 20 74 6f 20  cipation.    to 
ad70: 61 64 64 65 64 20 6e 65 77 20 64 72 69 76 65 72  added new driver
ad80: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  s.</li>.<li>Allo
ad90: 77 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20  w the name of a 
ada0: 64 61 74 61 62 61 73 65 20 74 6f 20 62 65 20 70  database to be p
adb0: 72 65 66 69 78 65 64 20 62 79 20 74 68 65 20 64  refixed by the d
adc0: 72 69 76 65 72 20 74 79 70 65 2e 0a 20 20 20 20  river type..    
add0: 46 6f 72 20 6e 6f 77 2c 20 74 68 65 20 6f 6e 6c  For now, the onl
ade0: 79 20 64 72 69 76 65 72 20 74 79 70 65 20 69 73  y driver type is
adf0: 20 22 67 64 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d   "gdbm:".</li>.}
ae00: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
ae10: 20 31 36 20 28 31 2e 30 2e 31 32 29 7d 20 7b 0a   16 (1.0.12)} {.
ae20: 3c 6c 69 3e 46 69 78 65 64 20 61 6e 20 6f 66 66  <li>Fixed an off
ae30: 2d 62 79 2d 6f 6e 65 20 65 72 72 6f 72 20 74 68  -by-one error th
ae40: 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 61  at was causing a
ae50: 20 63 6f 72 65 64 75 6d 70 20 69 6e 20 0a 20 20   coredump in .  
ae60: 20 20 74 68 65 20 27 25 71 27 20 66 6f 72 6d 61    the '%q' forma
ae70: 74 20 64 69 72 65 63 74 69 76 65 20 6f 66 20 74  t directive of t
ae80: 68 65 20 6e 65 77 0a 20 20 20 20 3c 62 3e 73 71  he new.    <b>sq
ae90: 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28  lite_..._printf(
aea0: 29 3c 2f 62 3e 20 72 6f 75 74 69 6e 65 73 2e 3c  )</b> routines.<
aeb0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
aec0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74  he <b>sqlite_int
aed0: 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 6e 74  errupt()</b> int
aee0: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  erface.</li>.<li
aef0: 3e 49 6e 20 74 68 65 20 73 68 65 6c 6c 2c 20 3c  >In the shell, <
af00: 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75  b>sqlite_interru
af10: 70 74 28 29 3c 2f 62 3e 20 69 73 20 69 6e 76 6f  pt()</b> is invo
af20: 6b 65 64 20 77 68 65 6e 20 74 68 65 0a 20 20 20  ked when the.   
af30: 20 75 73 65 72 20 70 72 65 73 73 65 73 20 43 6f   user presses Co
af40: 6e 74 72 6f 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69  ntrol-C</li>.<li
af50: 3e 46 69 78 65 64 20 73 6f 6d 65 20 69 6e 73 74  >Fixed some inst
af60: 61 6e 63 65 73 20 77 68 65 72 65 20 3c 62 3e 73  ances where <b>s
af70: 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e  qlite_exec()</b>
af80: 20 77 61 73 0a 20 20 20 20 72 65 74 75 72 6e 69   was.    returni
af90: 6e 67 20 74 68 65 20 77 72 6f 6e 67 20 65 72 72  ng the wrong err
afa0: 6f 72 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a  or code.</li>.}.
afb0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
afc0: 31 31 20 28 31 2e 30 2e 31 30 29 7d 20 7b 0a 3c  11 (1.0.10)} {.<
afd0: 6c 69 3e 41 64 64 65 64 20 6e 6f 74 65 73 20 6f  li>Added notes o
afe0: 6e 20 68 6f 77 20 74 6f 20 63 6f 6d 70 69 6c 65  n how to compile
aff0: 20 66 6f 72 20 57 69 6e 64 6f 77 73 39 35 2f 39   for Windows95/9
b000: 38 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  8.</li>.<li>Remo
b010: 76 65 64 20 61 20 66 65 77 20 76 61 72 69 61 62  ved a few variab
b020: 6c 65 73 20 74 68 61 74 20 77 65 72 65 20 6e 6f  les that were no
b030: 74 20 62 65 69 6e 67 20 75 73 65 64 2e 20 20 45  t being used.  E
b040: 74 63 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  tc.</li>.}..chng
b050: 20 7b 32 30 30 30 20 4f 63 74 20 38 20 28 31 2e   {2000 Oct 8 (1.
b060: 30 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  0.9)} {.<li>Adde
b070: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  d the <b>sqlite_
b080: 2e 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e  ..._printf()</b>
b090: 20 69 6e 74 65 72 66 61 63 65 20 72 6f 75 74 69   interface routi
b0a0: 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  nes.</li>.<li>Mo
b0b0: 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71  dified the <b>sq
b0c0: 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70  lite</b> shell p
b0d0: 72 6f 67 72 61 6d 20 74 6f 20 75 73 65 20 74 68  rogram to use th
b0e0: 65 20 6e 65 77 20 69 6e 74 65 72 66 61 63 65 20  e new interface 
b0f0: 0a 20 20 20 20 72 6f 75 74 69 6e 65 73 2e 3c 2f  .    routines.</
b100: 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64  li>.<li>Modified
b110: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f   the <b>sqlite</
b120: 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d  b> shell program
b130: 20 74 6f 20 70 72 69 6e 74 20 74 68 65 20 73 63   to print the sc
b140: 68 65 6d 61 20 66 6f 72 0a 20 20 20 20 74 68 65  hema for.    the
b150: 20 62 75 69 6c 74 2d 69 6e 20 53 51 4c 49 54 45   built-in SQLITE
b160: 5f 4d 41 53 54 45 52 20 74 61 62 6c 65 2c 20 69  _MASTER table, i
b170: 66 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65 71  f explicitly req
b180: 75 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  uested.</li>.}..
b190: 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 33  chng {2000 Sep 3
b1a0: 30 20 28 31 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69  0 (1.0.8)} {.<li
b1b0: 3e 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20 64  >Begin writing d
b1c0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20  ocumentation on 
b1d0: 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
b1e0: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
b1f0: 7b 32 30 30 30 20 53 65 70 20 32 39 20 28 4e 6f  {2000 Sep 29 (No
b200: 74 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c  t Released)} {.<
b210: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e  li>Added the <b>
b220: 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65  sqlite_get_table
b230: 28 29 3c 2f 62 3e 20 41 50 49 3c 2f 6c 69 3e 0a  ()</b> API</li>.
b240: 3c 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65 20  <li>Updated the 
b250: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f  documentation fo
b260: 72 20 64 75 65 20 74 6f 20 74 68 65 20 61 62 6f  r due to the abo
b270: 76 65 20 63 68 61 6e 67 65 2e 3c 2f 6c 69 3e 0a  ve change.</li>.
b280: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
b290: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
b2a0: 68 65 6c 6c 20 74 6f 20 6d 61 6b 65 20 75 73 65  hell to make use
b2b0: 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20 20   of the new.    
b2c0: 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65  sqlite_get_table
b2d0: 28 29 20 41 50 49 20 69 6e 20 6f 72 64 65 72 20  () API in order 
b2e0: 74 6f 20 70 72 69 6e 74 20 61 20 6c 69 73 74 20  to print a list 
b2f0: 6f 66 20 74 61 62 6c 65 73 0a 20 20 20 20 69 6e  of tables.    in
b300: 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6c 75 6d 6e   multiple column
b310: 73 2c 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68  s, similar to th
b320: 65 20 77 61 79 20 22 6c 73 22 20 70 72 69 6e 74  e way "ls" print
b330: 73 20 66 69 6c 65 6e 61 6d 65 73 2e 3c 2f 6c 69  s filenames.</li
b340: 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74  >.<li>Modified t
b350: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
b360: 20 73 68 65 6c 6c 20 74 6f 20 70 72 69 6e 74 20   shell to print 
b370: 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 61 74 20 74  a semicolon at t
b380: 68 65 0a 20 20 20 20 65 6e 64 20 6f 66 20 65 61  he.    end of ea
b390: 63 68 20 43 52 45 41 54 45 20 73 74 61 74 65 6d  ch CREATE statem
b3a0: 65 6e 74 20 69 6e 20 74 68 65 20 6f 75 74 70 75  ent in the outpu
b3b0: 74 20 6f 66 20 74 68 65 20 22 2e 73 63 68 65 6d  t of the ".schem
b3c0: 61 22 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e  a" command.</li>
b3d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53  .}..chng {2000 S
b3e0: 65 70 20 32 31 20 28 4e 6f 74 20 52 65 6c 65 61  ep 21 (Not Relea
b3f0: 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e  sed)} {.<li>Chan
b400: 67 65 20 74 68 65 20 74 63 6c 73 71 6c 69 74 65  ge the tclsqlite
b410: 20 22 65 76 61 6c 22 20 6d 65 74 68 6f 64 20 74   "eval" method t
b420: 6f 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20  o return a list 
b430: 6f 66 20 72 65 73 75 6c 74 73 20 69 66 0a 20 20  of results if.  
b440: 20 20 6e 6f 20 63 61 6c 6c 62 61 63 6b 20 73 63    no callback sc
b450: 72 69 70 74 20 69 73 20 73 70 65 63 69 66 69 65  ript is specifie
b460: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  d.</li>.<li>Chan
b470: 67 65 20 74 63 6c 73 71 6c 69 74 65 2e 63 20 74  ge tclsqlite.c t
b480: 6f 20 75 73 65 20 74 68 65 20 54 63 6c 5f 4f 62  o use the Tcl_Ob
b490: 6a 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e  j interface</li>
b4a0: 0a 3c 6c 69 3e 41 64 64 20 74 63 6c 73 71 6c 69  .<li>Add tclsqli
b4b0: 74 65 2e 63 20 74 6f 20 74 68 65 20 6c 69 62 73  te.c to the libs
b4c0: 71 6c 69 74 65 2e 61 20 6c 69 62 72 61 72 79 3c  qlite.a library<
b4d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
b4e0: 30 30 20 53 65 70 20 31 33 20 28 56 65 72 73 69  00 Sep 13 (Versi
b4f0: 6f 6e 20 31 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69  on 1.0.5)} {.<li
b500: 3e 43 68 61 6e 67 65 64 20 74 68 65 20 70 72 69  >Changed the pri
b510: 6e 74 20 66 6f 72 6d 61 74 20 66 6f 72 20 66 6c  nt format for fl
b520: 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 76 61 6c  oating point val
b530: 75 65 73 20 66 72 6f 6d 20 22 25 67 22 20 74 6f  ues from "%g" to
b540: 20 22 25 2e 31 35 67 22 2e 0a 20 20 20 20 3c 2f   "%.15g"..    </
b550: 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20  li>.<li>Changed 
b560: 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66  the comparison f
b570: 75 6e 63 74 69 6f 6e 20 73 6f 20 74 68 61 74 20  unction so that 
b580: 6e 75 6d 62 65 72 73 20 69 6e 20 65 78 70 6f 6e  numbers in expon
b590: 65 6e 74 69 61 6c 20 6e 6f 74 61 74 69 6f 6e 0a  ential notation.
b5a0: 20 20 20 20 28 65 78 3a 20 31 2e 32 33 34 65 2b      (ex: 1.234e+
b5b0: 30 35 29 20 73 6f 72 74 20 69 6e 20 6e 75 6d 65  05) sort in nume
b5c0: 72 69 63 61 6c 20 6f 72 64 65 72 2e 3c 2f 6c 69  rical order.</li
b5d0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
b5e0: 41 75 67 20 32 38 20 28 56 65 72 73 69 6f 6e 20  Aug 28 (Version 
b5f0: 31 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64  1.0.4)} {.<li>Ad
b600: 64 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62  ded functions <b
b610: 3e 6c 65 6e 67 74 68 28 29 3c 2f 62 3e 20 61 6e  >length()</b> an
b620: 64 20 3c 62 3e 73 75 62 73 74 72 28 29 3c 2f 62  d <b>substr()</b
b630: 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  >.</li>.<li>Fix 
b640: 61 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e  a bug in the <b>
b650: 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c  sqlite</b> shell
b660: 20 70 72 6f 67 72 61 6d 20 74 68 61 74 20 77 61   program that wa
b670: 73 20 63 61 75 73 69 6e 67 0a 20 20 20 20 61 20  s causing.    a 
b680: 63 6f 72 65 64 75 6d 70 20 77 68 65 6e 20 74 68  coredump when th
b690: 65 20 6f 75 74 70 75 74 20 6d 6f 64 65 20 77 61  e output mode wa
b6a0: 73 20 22 63 6f 6c 75 6d 6e 22 20 61 6e 64 20 74  s "column" and t
b6b0: 68 65 20 66 69 72 73 74 20 72 6f 77 0a 20 20 20  he first row.   
b6c0: 20 6f 66 20 64 61 74 61 20 63 6f 6e 74 61 69 6e   of data contain
b6d0: 65 64 20 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a  ed a NULL.</li>.
b6e0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
b6f0: 67 20 32 32 20 28 56 65 72 73 69 6f 6e 20 31 2e  g 22 (Version 1.
b700: 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 20 74  0.3)} {.<li>In t
b710: 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c  he sqlite shell,
b720: 20 70 72 69 6e 74 20 74 68 65 20 22 44 61 74 61   print the "Data
b730: 62 61 73 65 20 6f 70 65 6e 65 64 20 52 45 41 44  base opened READ
b740: 20 4f 4e 4c 59 22 20 6d 65 73 73 61 67 65 0a 20   ONLY" message. 
b750: 20 20 20 74 6f 20 73 74 64 65 72 72 20 69 6e 73     to stderr ins
b760: 74 65 61 64 20 6f 66 20 73 74 64 6f 75 74 2e 3c  tead of stdout.<
b770: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20  /li>.<li>In the 
b780: 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 6e 6f  sqlite shell, no
b790: 77 20 70 72 69 6e 74 20 74 68 65 20 76 65 72 73  w print the vers
b7a0: 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 6e 20 69 6e  ion number on in
b7b0: 69 74 69 61 6c 20 73 74 61 72 74 75 70 2e 3c 2f  itial startup.</
b7c0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  li>.<li>Add the 
b7d0: 3c 62 3e 73 71 6c 69 74 65 5f 76 65 72 73 69 6f  <b>sqlite_versio
b7e0: 6e 5b 5d 3c 2f 62 3e 20 73 74 72 69 6e 67 20 63  n[]</b> string c
b7f0: 6f 6e 73 74 61 6e 74 20 74 6f 20 74 68 65 20 6c  onstant to the l
b800: 69 62 72 61 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ibrary</li>.<li>
b810: 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73  Makefile updates
b820: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
b830: 78 3a 20 69 6e 63 6f 72 72 65 63 74 20 56 44 42  x: incorrect VDB
b840: 45 20 63 6f 64 65 20 77 61 73 20 62 65 69 6e 67  E code was being
b850: 20 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20 74   generated for t
b860: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 20 20 20  he following.   
b870: 20 63 69 72 63 75 6d 73 74 61 6e 63 65 3a 20 61   circumstance: a
b880: 20 71 75 65 72 79 20 6f 6e 20 61 6e 20 69 6e 64   query on an ind
b890: 65 78 65 64 20 74 61 62 6c 65 20 63 6f 6e 74 61  exed table conta
b8a0: 69 6e 69 6e 67 20 61 20 57 48 45 52 45 20 63 6c  ining a WHERE cl
b8b0: 61 75 73 65 20 77 69 74 68 0a 20 20 20 20 61 6e  ause with.    an
b8c0: 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 74 68 61   IN operator tha
b8d0: 74 20 68 61 64 20 61 20 73 75 62 71 75 65 72 79  t had a subquery
b8e0: 20 6f 6e 20 69 74 73 20 72 69 67 68 74 2d 68 61   on its right-ha
b8f0: 6e 64 20 73 69 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a  nd side.</li>.}.
b900: 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
b910: 31 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e  18 (Version 1.0.
b920: 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  1)} {.<li>Fix a 
b930: 62 75 67 20 69 6e 20 74 68 65 20 63 6f 6e 66 69  bug in the confi
b940: 67 75 72 65 20 73 63 72 69 70 74 2e 3c 2f 6c 69  gure script.</li
b950: 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 72 65 76 69  >.<li>Minor revi
b960: 73 69 6f 6e 73 20 74 6f 20 74 68 65 20 77 65 62  sions to the web
b970: 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  site.</li>.}..ch
b980: 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31 37 20  ng {2000 Aug 17 
b990: 28 56 65 72 73 69 6f 6e 20 31 2e 30 29 7d 20 7b  (Version 1.0)} {
b9a0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
b9b0: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 70 72  <b>sqlite</b> pr
b9c0: 6f 67 72 61 6d 20 73 6f 20 74 68 61 74 20 69 74  ogram so that it
b9d0: 20 63 61 6e 20 72 65 61 64 0a 20 20 20 20 64 61   can read.    da
b9e0: 74 61 62 61 73 65 73 20 66 6f 72 20 77 68 69 63  tabases for whic
b9f0: 68 20 69 74 20 6c 61 63 6b 73 20 77 72 69 74 65  h it lacks write
ba00: 20 70 65 72 6d 69 73 73 69 6f 6e 2e 20 20 28 49   permission.  (I
ba10: 74 20 75 73 65 64 20 74 6f 0a 20 20 20 20 72 65  t used to.    re
ba20: 66 75 73 65 20 61 6c 6c 20 61 63 63 65 73 73 20  fuse all access 
ba30: 69 66 20 69 74 20 63 6f 75 6c 64 20 6e 6f 74 20  if it could not 
ba40: 77 72 69 74 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a  write.)</li>.}..
ba50: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 39  chng {2000 Aug 9
ba60: 7d 20 7b 0a 3c 6c 69 3e 54 72 65 61 74 20 63 61  } {.<li>Treat ca
ba70: 72 72 69 61 67 65 20 72 65 74 75 72 6e 73 20 61  rriage returns a
ba80: 73 20 77 68 69 74 65 20 73 70 61 63 65 2e 3c 2f  s white space.</
ba90: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
baa0: 30 20 41 75 67 20 38 7d 20 7b 0a 3c 6c 69 3e 41  0 Aug 8} {.<li>A
bab0: 64 64 65 64 20 70 61 74 74 65 72 6e 20 6d 61 74  dded pattern mat
bac0: 63 68 69 6e 67 20 74 6f 20 74 68 65 20 22 2e 74  ching to the ".t
bad0: 61 62 6c 65 22 20 63 6f 6d 6d 61 6e 64 20 69 6e  able" command in
bae0: 20 74 68 65 20 22 73 71 6c 69 74 65 22 0a 63 6f   the "sqlite".co
baf0: 6d 6d 61 6e 64 20 73 68 65 6c 6c 2e 3c 2f 6c 69  mmand shell.</li
bb00: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
bb10: 41 75 67 20 34 7d 20 7b 0a 3c 6c 69 3e 44 6f 63  Aug 4} {.<li>Doc
bb20: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
bb30: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  es</li>.<li>Adde
bb40: 64 20 22 62 75 73 79 22 20 61 6e 64 20 22 74 69  d "busy" and "ti
bb50: 6d 65 6f 75 74 22 20 6d 65 74 68 6f 64 73 20 74  meout" methods t
bb60: 6f 20 74 68 65 20 54 63 6c 20 69 6e 74 65 72 66  o the Tcl interf
bb70: 61 63 65 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ace</li>.}..chng
bb80: 20 7b 32 30 30 30 20 41 75 67 20 33 7d 20 7b 0a   {2000 Aug 3} {.
bb90: 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20  <li>File format 
bba0: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 77  version number w
bbb0: 61 73 20 62 65 69 6e 67 20 73 74 6f 72 65 64 20  as being stored 
bbc0: 69 6e 20 73 71 6c 69 74 65 5f 6d 61 73 74 65 72  in sqlite_master
bbd0: 2e 74 63 6c 0a 20 20 20 20 6d 75 6c 74 69 70 6c  .tcl.    multipl
bbe0: 65 20 74 69 6d 65 73 2e 20 54 68 69 73 20 77 61  e times. This wa
bbf0: 73 20 68 61 72 6d 6c 65 73 73 2c 20 62 75 74 20  s harmless, but 
bc00: 75 6e 6e 65 63 65 73 73 61 72 79 2e 20 49 74 20  unnecessary. It 
bc10: 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c  is now fixed.</l
bc20: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
bc30: 20 41 75 67 20 32 7d 20 7b 0a 3c 6c 69 3e 54 68   Aug 2} {.<li>Th
bc40: 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 66 6f  e file format fo
bc50: 72 20 69 6e 64 69 63 65 73 20 77 61 73 20 63 68  r indices was ch
bc60: 61 6e 67 65 64 20 73 6c 69 67 68 74 6c 79 20 69  anged slightly i
bc70: 6e 20 6f 72 64 65 72 20 74 6f 20 77 6f 72 6b 0a  n order to work.
bc80: 20 20 20 20 61 72 6f 75 6e 64 20 61 6e 20 69 6e      around an in
bc90: 65 66 66 69 63 69 65 6e 63 79 20 74 68 61 74 20  efficiency that 
bca0: 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63 6f  can sometimes co
bcb0: 6d 65 20 75 70 20 77 69 74 68 20 47 44 42 4d 20  me up with GDBM 
bcc0: 77 68 65 6e 0a 20 20 20 20 74 68 65 72 65 20 61  when.    there a
bcd0: 72 65 20 6c 61 72 67 65 20 69 6e 64 69 63 65 73  re large indices
bce0: 20 68 61 76 69 6e 67 20 6d 61 6e 79 20 65 6e 74   having many ent
bcf0: 72 69 65 73 20 77 69 74 68 20 74 68 65 20 73 61  ries with the sa
bd00: 6d 65 20 6b 65 79 2e 0a 20 20 20 20 3c 66 6f 6e  me key..    <fon
bd10: 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a  t color="red">**
bd20: 20 49 6e 63 6f 6d 70 61 74 69 62 6c 65 20 43 68   Incompatible Ch
bd30: 61 6e 67 65 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f  ange **</font></
bd40: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
bd50: 30 20 41 75 67 20 31 7d 20 7b 0a 3c 6c 69 3e 54  0 Aug 1} {.<li>T
bd60: 68 65 20 70 61 72 73 65 72 27 73 20 73 74 61 63  he parser's stac
bd70: 6b 20 77 61 73 20 6f 76 65 72 66 6c 6f 77 69 6e  k was overflowin
bd80: 67 20 6f 6e 20 61 20 76 65 72 79 20 6c 6f 6e 67  g on a very long
bd90: 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e   UPDATE statemen
bda0: 74 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 6e  t..    This is n
bdb0: 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d  ow fixed.</li>.}
bdc0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c  ..chng {2000 Jul
bdd0: 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 46 69 6e 69  y 31} {.<li>Fini
bde0: 73 68 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22  sh the <a href="
bdf0: 76 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20  vdbe.html">VDBE 
be00: 74 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c  tutorial</a>.</l
be10: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63  i>.<li>Added doc
be20: 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 63 6f  umentation on co
be30: 6d 70 69 6c 69 6e 67 20 74 6f 20 57 69 6e 64 6f  mpiling to Windo
be40: 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  wsNT.</li>.<li>F
be50: 69 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69  ix a configurati
be60: 6f 6e 20 70 72 6f 67 72 61 6d 20 66 6f 72 20 57  on program for W
be70: 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c  indowsNT.</li>.<
be80: 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67 75  li>Fix a configu
be90: 72 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 66  ration problem f
bea0: 6f 72 20 48 50 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a  or HPUX.</li>.}.
beb0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79  .chng {2000 July
bec0: 20 32 39 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65   29} {.<li>Bette
bed0: 72 20 6c 61 62 65 6c 73 20 6f 6e 20 63 6f 6c 75  r labels on colu
bee0: 6d 6e 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20  mn names of the 
bef0: 72 65 73 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  result.</li>.}..
bf00: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20  chng {2000 July 
bf10: 32 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  28} {.<li>Added 
bf20: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75  the <b>sqlite_bu
bf30: 73 79 5f 68 61 6e 64 6c 65 72 28 29 3c 2f 62 3e  sy_handler()</b>
bf40: 20 0a 20 20 20 20 61 6e 64 20 3c 62 3e 73 71 6c   .    and <b>sql
bf50: 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74  ite_busy_timeout
bf60: 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65  ()</b> interface
bf70: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
bf80: 32 30 30 30 20 4a 75 6e 65 20 32 33 7d 20 7b 0a  2000 June 23} {.
bf90: 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69 74 69 6e  <li>Begin writin
bfa0: 67 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76  g the <a href="v
bfb0: 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74  dbe.html">VDBE t
bfc0: 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69  utorial</a>.</li
bfd0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
bfe0: 4a 75 6e 65 20 32 31 7d 20 7b 0a 3c 6c 69 3e 43  June 21} {.<li>C
bff0: 6c 65 61 6e 20 75 70 20 63 6f 6d 6d 65 6e 74 73  lean up comments
c000: 20 61 6e 64 20 76 61 72 69 61 62 6c 65 20 6e 61   and variable na
c010: 6d 65 73 2e 20 20 43 68 61 6e 67 65 73 20 74 6f  mes.  Changes to
c020: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a   documentation..
c030: 20 20 20 20 4e 6f 20 66 75 6e 63 74 69 6f 6e 61      No functiona
c040: 6c 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65  l changes to the
c050: 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   code.</li>.}..c
c060: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31  hng {2000 June 1
c070: 39 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 20  9} {.<li>Column 
c080: 6e 61 6d 65 73 20 69 6e 20 55 50 44 41 54 45 20  names in UPDATE 
c090: 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65 20  statements were 
c0a0: 63 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e 0a  case sensitive..
c0b0: 20 20 20 20 54 68 69 73 20 6d 69 73 74 61 6b 65      This mistake
c0c0: 20 68 61 73 20 6e 6f 77 20 62 65 65 6e 20 66 69   has now been fi
c0d0: 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xed.</li>.}..chn
c0e0: 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 36 7d  g {2000 June 16}
c0f0: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
c100: 20 63 6f 6e 63 61 74 65 6e 61 74 65 20 73 74 72   concatenate str
c110: 69 6e 67 20 6f 70 65 72 61 74 6f 72 20 28 7c 7c  ing operator (||
c120: 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  )</li>.}..chng {
c130: 32 30 30 30 20 4a 75 6e 65 20 31 32 7d 20 7b 0a  2000 June 12} {.
c140: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 66 63  <li>Added the fc
c150: 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e 20 74 6f  nt() function to
c160: 20 74 68 65 20 53 51 4c 20 69 6e 74 65 72 70 72   the SQL interpr
c170: 65 74 65 72 2e 20 20 54 68 65 20 66 63 6e 74 28  eter.  The fcnt(
c180: 29 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 72  ) function.    r
c190: 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65  eturns the numbe
c1a0: 72 20 6f 66 20 64 61 74 61 62 61 73 65 20 22 46  r of database "F
c1b0: 65 74 63 68 22 20 6f 70 65 72 61 74 69 6f 6e 73  etch" operations
c1c0: 20 74 68 61 74 20 68 61 76 65 20 6f 63 63 75 72   that have occur
c1d0: 72 65 64 2e 0a 20 20 20 20 54 68 69 73 20 66 75  red..    This fu
c1e0: 6e 63 74 69 6f 6e 20 69 73 20 64 65 73 69 67 6e  nction is design
c1f0: 65 64 20 66 6f 72 20 75 73 65 20 69 6e 20 74 65  ed for use in te
c200: 73 74 20 73 63 72 69 70 74 73 20 74 6f 20 76 65  st scripts to ve
c210: 72 69 66 79 20 74 68 61 74 0a 20 20 20 20 71 75  rify that.    qu
c220: 65 72 69 65 73 20 61 72 65 20 65 66 66 69 63 69  eries are effici
c230: 65 6e 74 20 61 6e 64 20 61 70 70 72 6f 70 72 69  ent and appropri
c240: 61 74 65 6c 79 20 6f 70 74 69 6d 69 7a 65 64 2e  ately optimized.
c250: 20 20 46 63 6e 74 28 29 20 68 61 73 20 6e 6f 20    Fcnt() has no 
c260: 6f 74 68 65 72 0a 20 20 20 20 75 73 65 66 75 6c  other.    useful
c270: 20 70 75 72 70 6f 73 65 2c 20 61 73 20 66 61 72   purpose, as far
c280: 20 61 73 20 49 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e   as I know.</li>
c290: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 62 75 6e  .<li>Added a bun
c2a0: 63 68 20 6d 6f 72 65 20 74 65 73 74 73 20 74 68  ch more tests th
c2b0: 61 74 20 74 61 6b 65 20 61 64 76 61 6e 74 61 67  at take advantag
c2c0: 65 20 6f 66 20 74 68 65 20 6e 65 77 20 66 63 6e  e of the new fcn
c2d0: 74 28 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20  t() function..  
c2e0: 20 20 54 68 65 20 6e 65 77 20 74 65 73 74 73 20    The new tests 
c2f0: 64 69 64 20 6e 6f 74 20 75 6e 63 6f 76 65 72 20  did not uncover 
c300: 61 6e 79 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73  any new problems
c310: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c320: 32 30 30 30 20 4a 75 6e 65 20 38 7d 20 7b 0a 3c  2000 June 8} {.<
c330: 6c 69 3e 41 64 64 65 64 20 6c 6f 74 73 20 6f 66  li>Added lots of
c340: 20 6e 65 77 20 74 65 73 74 20 63 61 73 65 73 3c   new test cases<
c350: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 66  /li>.<li>Fix a f
c360: 65 77 20 62 75 67 73 20 64 69 73 63 6f 76 65 72  ew bugs discover
c370: 65 64 20 77 68 69 6c 65 20 61 64 64 69 6e 67 20  ed while adding 
c380: 74 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a  test cases</li>.
c390: 3c 6c 69 3e 42 65 67 69 6e 20 61 64 64 69 6e 67  <li>Begin adding
c3a0: 20 6c 6f 74 73 20 6f 66 20 6e 65 77 20 64 6f 63   lots of new doc
c3b0: 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a  umentation</li>.
c3c0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
c3d0: 6e 65 20 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  ne 6} {.<li>Adde
c3e0: 64 20 63 6f 6d 70 6f 75 6e 64 20 73 65 6c 65 63  d compound selec
c3f0: 74 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 42 3e  t operators: <B>
c400: 55 4e 49 4f 4e 3c 2f 62 3e 2c 20 3c 62 3e 55 4e  UNION</b>, <b>UN
c410: 49 4f 4e 20 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e  ION ALL</B>,.<b>
c420: 49 4e 54 45 52 53 45 43 54 3c 2f 62 3e 2c 20 61  INTERSECT</b>, a
c430: 6e 64 20 3c 62 3e 45 58 43 45 50 54 3c 2f 62 3e  nd <b>EXCEPT</b>
c440: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
c450: 73 75 70 70 6f 72 74 20 66 6f 72 20 75 73 69 6e  support for usin
c460: 67 20 3c 62 3e 28 53 45 4c 45 43 54 20 2e 2e 2e  g <b>(SELECT ...
c470: 29 3c 2f 62 3e 20 77 69 74 68 69 6e 20 65 78 70  )</b> within exp
c480: 72 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c  ressions</li>.<l
c490: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
c4a0: 66 6f 72 20 3c 62 3e 49 4e 3c 2f 62 3e 20 61 6e  for <b>IN</b> an
c4b0: 64 20 3c 62 3e 42 45 54 57 45 45 4e 3c 2f 62 3e  d <b>BETWEEN</b>
c4c0: 20 6f 70 65 72 61 74 6f 72 73 3c 2f 6c 69 3e 0a   operators</li>.
c4d0: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
c4e0: 74 20 66 6f 72 20 3c 62 3e 47 52 4f 55 50 20 42  t for <b>GROUP B
c4f0: 59 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 48 41 56  Y</b> and <b>HAV
c500: 49 4e 47 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69  ING</b></li>.<li
c510: 3e 4e 55 4c 4c 20 76 61 6c 75 65 73 20 61 72 65  >NULL values are
c520: 20 6e 6f 77 20 72 65 70 6f 72 74 65 64 20 74 6f   now reported to
c530: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61 73   the callback as
c540: 20 61 20 4e 55 4c 4c 20 70 6f 69 6e 74 65 72 0a   a NULL pointer.
c550: 20 20 20 20 72 61 74 68 65 72 20 74 68 61 6e 20      rather than 
c560: 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e  an empty string.
c570: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c580: 30 30 30 20 4a 75 6e 65 20 33 7d 20 7b 0a 3c 6c  000 June 3} {.<l
c590: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
c5a0: 66 6f 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75  for default valu
c5b0: 65 73 20 6f 6e 20 63 6f 6c 75 6d 6e 73 20 6f 66  es on columns of
c5c0: 20 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c   a table.</li>.<
c5d0: 6c 69 3e 49 6d 70 72 6f 76 65 64 20 74 65 73 74  li>Improved test
c5e0: 20 63 6f 76 65 72 61 67 65 2e 20 20 46 69 78 65   coverage.  Fixe
c5f0: 64 20 61 20 66 65 77 20 6f 62 73 63 75 72 65 20  d a few obscure 
c600: 62 75 67 73 20 66 6f 75 6e 64 20 62 79 20 74 68  bugs found by th
c610: 65 0a 69 6d 70 72 6f 76 65 64 20 74 65 73 74 73  e.improved tests
c620: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c630: 32 30 30 30 20 4a 75 6e 65 20 32 7d 20 7b 0a 3c  2000 June 2} {.<
c640: 6c 69 3e 41 6c 6c 20 64 61 74 61 62 61 73 65 20  li>All database 
c650: 66 69 6c 65 73 20 74 6f 20 62 65 20 6d 6f 64 69  files to be modi
c660: 66 69 65 64 20 62 79 20 61 6e 20 55 50 44 41 54  fied by an UPDAT
c670: 45 2c 20 49 4e 53 45 52 54 20 6f 72 20 44 45 4c  E, INSERT or DEL
c680: 45 54 45 20 61 72 65 20 0a 6e 6f 77 20 6c 6f 63  ETE are .now loc
c690: 6b 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20 63  ked before any c
c6a0: 68 61 6e 67 65 73 20 61 72 65 20 6d 61 64 65 20  hanges are made 
c6b0: 74 6f 20 61 6e 79 20 66 69 6c 65 73 2e 20 20 0a  to any files.  .
c6c0: 54 68 69 73 20 6d 61 6b 65 73 20 69 74 20 73 61  This makes it sa
c6d0: 66 65 20 28 49 20 74 68 69 6e 6b 29 20 74 6f 20  fe (I think) to 
c6e0: 61 63 63 65 73 73 0a 74 68 65 20 73 61 6d 65 20  access.the same 
c6f0: 64 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74 61  database simulta
c700: 6e 65 6f 75 73 6c 79 20 66 72 6f 6d 20 6d 75 6c  neously from mul
c710: 74 69 70 6c 65 20 70 72 6f 63 65 73 73 65 73 2e  tiple processes.
c720: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f  </li>.<li>The co
c730: 64 65 20 61 70 70 65 61 72 73 20 73 74 61 62 6c  de appears stabl
c740: 65 20 73 6f 20 77 65 20 61 72 65 20 6e 6f 77 20  e so we are now 
c750: 63 61 6c 6c 69 6e 67 20 69 74 20 22 62 65 74 61  calling it "beta
c760: 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ".</li>.}..chng 
c770: 7b 32 30 30 30 20 4a 75 6e 65 20 31 7d 20 7b 0a  {2000 June 1} {.
c780: 3c 6c 69 3e 42 65 74 74 65 72 20 73 75 70 70 6f  <li>Better suppo
c790: 72 74 20 66 6f 72 20 66 69 6c 65 20 6c 6f 63 6b  rt for file lock
c7a0: 69 6e 67 20 73 6f 20 74 68 61 74 20 74 77 6f 20  ing so that two 
c7b0: 6f 72 20 6d 6f 72 65 20 70 72 6f 63 65 73 73 65  or more processe
c7c0: 73 20 0a 28 6f 72 20 74 68 72 65 61 64 73 29 0a  s .(or threads).
c7d0: 63 61 6e 20 61 63 63 65 73 73 20 74 68 65 20 73  can access the s
c7e0: 61 6d 65 20 64 61 74 61 62 61 73 65 20 73 69 6d  ame database sim
c7f0: 75 6c 74 61 6e 65 6f 75 73 6c 79 2e 20 20 4d 6f  ultaneously.  Mo
c800: 72 65 20 77 6f 72 6b 20 6e 65 65 64 65 64 20 69  re work needed i
c810: 6e 0a 74 68 69 73 20 61 72 65 61 2c 20 74 68 6f  n.this area, tho
c820: 75 67 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ugh.</li>.}..chn
c830: 67 20 7b 32 30 30 30 20 4d 61 79 20 33 31 7d 20  g {2000 May 31} 
c840: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  {.<li>Added supp
c850: 6f 72 74 20 66 6f 72 20 61 67 67 72 65 67 61 74  ort for aggregat
c860: 65 20 66 75 6e 63 74 69 6f 6e 73 20 28 45 78 3a  e functions (Ex:
c870: 20 3c 62 3e 43 4f 55 4e 54 28 2a 29 3c 2f 62 3e   <b>COUNT(*)</b>
c880: 2c 20 3c 62 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f 62  , <b>MIN(...)</b
c890: 3e 29 0a 74 6f 20 74 68 65 20 53 45 4c 45 43 54  >).to the SELECT
c8a0: 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e   statement.</li>
c8b0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
c8c0: 72 74 20 66 6f 72 20 3c 42 3e 53 45 4c 45 43 54  rt for <B>SELECT
c8d0: 20 44 49 53 54 49 4e 43 54 20 2e 2e 2e 3c 2f 42   DISTINCT ...</B
c8e0: 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  ></li>.}..chng {
c8f0: 32 30 30 30 20 4d 61 79 20 33 30 7d 20 7b 0a 3c  2000 May 30} {.<
c900: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e  li>Added the <b>
c910: 4c 49 4b 45 3c 2f 62 3e 20 6f 70 65 72 61 74 6f  LIKE</b> operato
c920: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  r.</li>.<li>Adde
c930: 64 20 61 20 3c 62 3e 47 4c 4f 42 3c 2f 62 3e 20  d a <b>GLOB</b> 
c940: 6f 70 65 72 61 74 6f 72 3a 20 73 69 6d 69 6c 61  operator: simila
c950: 72 20 74 6f 20 3c 42 3e 4c 49 4b 45 3c 2f 42 3e  r to <B>LIKE</B>
c960: 20 0a 62 75 74 20 69 74 20 75 73 65 73 20 55 6e   .but it uses Un
c970: 69 78 20 73 68 65 6c 6c 20 67 6c 6f 62 62 69 6e  ix shell globbin
c980: 67 20 77 69 6c 64 63 61 72 64 73 20 69 6e 73 74  g wildcards inst
c990: 65 61 64 20 6f 66 20 74 68 65 20 27 25 27 20 0a  ead of the '%' .
c9a0: 61 6e 64 20 27 5f 27 20 77 69 6c 64 63 61 72 64  and '_' wildcard
c9b0: 73 20 6f 66 20 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c  s of SQL.</li>.<
c9c0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 42 3e  li>Added the <B>
c9d0: 43 4f 50 59 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64  COPY</b> command
c9e0: 20 70 61 74 74 65 72 6e 65 64 20 61 66 74 65 72   patterned after
c9f0: 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a   .<a href="http:
ca00: 2f 2f 77 77 77 2e 70 6f 73 74 67 72 65 73 71 6c  //www.postgresql
ca10: 2e 6f 72 67 2f 22 3e 50 6f 73 74 67 72 65 53 51  .org/">PostgreSQ
ca20: 4c 3c 2f 61 3e 20 73 6f 20 74 68 61 74 20 53 51  L</a> so that SQ
ca30: 4c 69 74 65 0a 63 61 6e 20 6e 6f 77 20 72 65 61  Lite.can now rea
ca40: 64 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20  d the output of 
ca50: 74 68 65 20 3c 62 3e 70 67 5f 64 75 6d 70 3c 2f  the <b>pg_dump</
ca60: 62 3e 20 64 61 74 61 62 61 73 65 20 64 75 6d 70  b> database dump
ca70: 20 75 74 69 6c 69 74 79 0a 6f 66 20 50 6f 73 74   utility.of Post
ca80: 67 72 65 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69  greSQL.</li>.<li
ca90: 3e 41 64 64 65 64 20 61 20 3c 42 3e 56 41 43 55  >Added a <B>VACU
caa0: 55 4d 3c 2f 42 3e 20 63 6f 6d 6d 61 6e 64 20 74  UM</B> command t
cab0: 68 61 74 20 74 68 61 74 20 63 61 6c 6c 73 20 74  hat that calls t
cac0: 68 65 20 0a 3c 62 3e 67 64 62 6d 5f 72 65 6f 72  he .<b>gdbm_reor
cad0: 67 61 6e 69 7a 65 28 29 3c 2f 62 3e 20 66 75 6e  ganize()</b> fun
cae0: 63 74 69 6f 6e 20 6f 6e 20 74 68 65 20 75 6e 64  ction on the und
caf0: 65 72 6c 79 69 6e 67 20 64 61 74 61 62 61 73 65  erlying database
cb00: 0a 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  .files.</li>.<li
cb10: 3e 41 6e 64 20 6d 61 6e 79 2c 20 6d 61 6e 79 20  >And many, many 
cb20: 62 75 67 20 66 69 78 65 73 2e 2e 2e 3c 2f 6c 69  bug fixes...</li
cb30: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
cb40: 4d 61 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 49 6e  May 29} {.<li>In
cb50: 69 74 69 61 6c 20 50 75 62 6c 69 63 20 52 65 6c  itial Public Rel
cb60: 65 61 73 65 20 6f 66 20 41 6c 70 68 61 20 63 6f  ease of Alpha co
cb70: 64 65 3c 2f 6c 69 3e 0a 7d 0a 0a 70 75 74 73 20  de</li>.}..puts 
cb80: 7b 0a 3c 2f 44 4c 3e 0a 7d 0a 66 6f 6f 74 65 72  {.</DL>.}.footer
cb90: 20 7b 24 49 64 3a 7d 0a                           {$Id:}.