/ Hex Artifact Content
Login

Artifact 8b78425c6eedbe457a0cdf461f94f165bfc2b77d:


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 36 20 28 33 2e 31 2e 36 29 7d 20 7b 0a 3c   16 (3.1.6)} {.<
01e0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
01f0: 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61  t could cause da
0200: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
0210: 6e 20 77 68 65 6e 20 69 6e 73 65 72 74 69 6e 67  n when inserting
0220: 0a 20 20 20 20 72 65 63 6f 72 64 20 69 6e 74 6f  .    record into
0230: 20 74 61 62 6c 65 73 20 77 69 74 68 20 61 72 6f   tables with aro
0240: 75 6e 64 20 31 32 35 20 63 6f 6c 75 6d 6e 73 2e  und 125 columns.
0250: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65  </li>.<li>sqlite
0260: 33 5f 73 74 65 70 28 29 20 69 73 20 6e 6f 77 20  3_step() is now 
0270: 6d 75 63 68 20 6d 6f 72 65 20 6c 69 6b 65 6c 79  much more likely
0280: 20 74 6f 20 69 6e 76 6f 6b 65 20 74 68 65 20 62   to invoke the b
0290: 75 73 79 20 68 61 6e 64 6c 65 72 0a 20 20 20 20  usy handler.    
02a0: 61 6e 64 20 6c 65 73 73 20 6c 69 6b 65 6c 79 20  and less likely 
02b0: 74 6f 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45  to return SQLITE
02c0: 5f 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  _BUSY.</li>.<li>
02d0: 46 69 78 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73  Fix memory leaks
02e0: 20 74 68 61 74 20 75 73 65 64 20 74 6f 20 6f 63   that used to oc
02f0: 63 75 72 20 61 66 74 65 72 20 61 20 6d 61 6c 6c  cur after a mall
0300: 6f 63 28 29 20 66 61 69 6c 75 72 65 2e 3c 2f 6c  oc() failure.</l
0310: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
0320: 20 4d 61 72 63 68 20 31 31 20 28 33 2e 31 2e 35   March 11 (3.1.5
0330: 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 69 6f 63  )} {.<li>The ioc
0340: 74 6c 20 6f 6e 20 4f 53 2d 58 20 74 6f 20 63 6f  tl on OS-X to co
0350: 6e 74 72 6f 6c 20 73 79 6e 63 69 6e 67 20 74 6f  ntrol syncing to
0360: 20 64 69 73 6b 20 69 73 20 46 5f 46 55 4c 4c 46   disk is F_FULLF
0370: 53 59 4e 43 2c 0a 20 20 20 20 6e 6f 74 20 46 5f  SYNC,.    not F_
0380: 46 55 4c 4c 53 59 4e 43 2e 20 20 54 68 65 20 70  FULLSYNC.  The p
0390: 72 65 76 69 6f 75 73 20 72 65 6c 65 61 73 65 20  revious release 
03a0: 68 61 64 20 69 74 20 77 72 6f 6e 67 2e 3c 2f 6c  had it wrong.</l
03b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
03c0: 20 4d 61 72 63 68 20 31 30 20 28 33 2e 31 2e 34   March 10 (3.1.4
03d0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
03e0: 75 67 20 69 6e 20 61 75 74 6f 76 61 63 75 75 6d  ug in autovacuum
03f0: 20 74 68 61 74 20 63 6f 75 6c 64 20 63 61 75 73   that could caus
0400: 65 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  e database corru
0410: 70 74 69 6f 6e 20 69 66 0a 61 20 43 52 45 41 54  ption if.a CREAT
0420: 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20 66  E UNIQUE INDEX f
0430: 61 69 6c 73 20 62 65 63 61 75 73 65 20 6f 66 20  ails because of 
0440: 61 20 63 6f 6e 73 74 72 61 69 6e 74 20 76 69 6f  a constraint vio
0450: 6c 61 74 69 6f 6e 2e 0a 54 68 69 73 20 70 72 6f  lation..This pro
0460: 62 6c 65 6d 20 6f 6e 6c 79 20 6f 63 63 75 72 73  blem only occurs
0470: 20 69 66 20 74 68 65 20 6e 65 77 20 61 75 74 6f   if the new auto
0480: 76 61 63 75 75 6d 20 66 65 61 74 75 72 65 20 69  vacuum feature i
0490: 6e 74 72 6f 64 75 63 65 64 20 69 6e 0a 76 65 72  ntroduced in.ver
04a0: 73 69 6f 6e 20 33 2e 31 20 69 73 20 74 75 72 6e  sion 3.1 is turn
04b0: 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ed on.</li>.<li>
04c0: 54 68 65 20 46 5f 46 55 4c 4c 53 59 4e 43 20 69  The F_FULLSYNC i
04d0: 6f 63 74 6c 20 28 63 75 72 72 65 6e 74 6c 79 20  octl (currently 
04e0: 6f 6e 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f  only supported o
04f0: 6e 20 4f 53 2d 58 29 20 69 73 20 64 69 73 61 62  n OS-X) is disab
0500: 6c 65 64 0a 69 66 20 74 68 65 20 73 79 6e 63 68  led.if the synch
0510: 72 6f 6e 6f 75 73 20 70 72 61 67 6d 61 20 69 73  ronous pragma is
0520: 20 73 65 74 20 74 6f 20 73 6f 6d 65 74 68 69 6e   set to somethin
0530: 67 20 6f 74 68 65 72 20 74 68 61 6e 20 22 66 75  g other than "fu
0540: 6c 6c 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ll".</li>.<li>Ad
0550: 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 66 6f 72  d additional for
0560: 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69  ward compatibili
0570: 74 79 20 74 6f 20 74 68 65 20 66 75 74 75 72 65  ty to the future
0580: 20 76 65 72 73 69 6f 6e 20 33 2e 32 20 64 61 74   version 3.2 dat
0590: 61 62 61 73 65 20 0a 66 69 6c 65 20 66 6f 72 6d  abase .file form
05a0: 61 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  at.</li>.<li>Fix
05b0: 20 61 20 62 75 67 20 69 6e 20 57 48 45 52 45 20   a bug in WHERE 
05c0: 63 6c 61 75 73 65 73 20 6f 66 20 74 68 65 20 66  clauses of the f
05d0: 6f 72 6d 20 28 72 6f 77 69 64 3c 27 32 27 29 3c  orm (rowid<'2')<
05e0: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 53 51 4c  /li>.<li>New SQL
05f0: 49 54 45 5f 4f 4d 49 54 5f 2e 2e 2e 20 63 6f 6d  ITE_OMIT_... com
0600: 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e  pile-time option
0610: 73 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69  s added</li>.<li
0620: 3e 55 70 64 61 74 65 73 20 74 6f 20 74 68 65 20  >Updates to the 
0630: 6d 61 6e 20 70 61 67 65 3c 2f 6c 69 3e 0a 3c 6c  man page</li>.<l
0640: 69 3e 52 65 6d 6f 76 65 20 74 68 65 20 75 73 65  i>Remove the use
0650: 20 6f 66 20 73 74 72 63 61 73 65 63 6d 70 28 29   of strcasecmp()
0660: 20 66 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c 3c   from the shell<
0670: 2f 6c 69 3e 0a 3c 6c 69 3e 57 69 6e 64 6f 77 73  /li>.<li>Windows
0680: 20 44 4c 4c 20 65 78 70 6f 72 74 73 20 73 79 6d   DLL exports sym
0690: 62 6f 6c 73 20 54 63 6c 73 71 6c 69 74 65 5f 49  bols Tclsqlite_I
06a0: 6e 69 74 20 61 6e 64 20 53 71 6c 69 74 65 5f 49  nit and Sqlite_I
06b0: 6e 69 74 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nit</li>.}..chng
06c0: 20 7b 32 30 30 35 20 46 65 62 72 75 61 72 79 20   {2005 February 
06d0: 31 39 20 28 33 2e 31 2e 33 29 7d 20 7b 0a 3c 6c  19 (3.1.3)} {.<l
06e0: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
06f0: 77 69 74 68 20 56 41 43 55 55 4d 20 6f 6e 20 64  with VACUUM on d
0700: 61 74 61 62 61 73 65 73 20 66 72 6f 6d 20 77 68  atabases from wh
0710: 69 63 68 20 74 61 62 6c 65 73 20 63 6f 6e 74 61  ich tables conta
0720: 69 6e 69 6e 67 0a 41 55 54 4f 49 4e 43 52 45 4d  ining.AUTOINCREM
0730: 45 4e 54 20 68 61 76 65 20 62 65 65 6e 20 64 72  ENT have been dr
0740: 6f 70 70 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  opped.</li>.<li>
0750: 41 64 64 20 66 6f 72 77 61 72 64 20 63 6f 6d 70  Add forward comp
0760: 61 74 69 62 69 6c 69 74 79 20 74 6f 20 74 68 65  atibility to the
0770: 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20   future version 
0780: 33 2e 32 20 64 61 74 61 62 61 73 65 20 66 69 6c  3.2 database fil
0790: 65 0a 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c  e.format.</li>.<
07a0: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
07b0: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 7d 0a   updates</li>.}.
07c0: 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72  .chng {2005 Febr
07d0: 75 61 72 79 20 31 35 20 28 33 2e 31 2e 32 29 7d  uary 15 (3.1.2)}
07e0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
07f0: 20 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74   that can lead t
0800: 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  o database corru
0810: 70 74 69 6f 6e 20 69 66 20 74 68 65 72 65 20 61  ption if there a
0820: 72 65 20 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e  re two.open conn
0830: 65 63 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73  ections to the s
0840: 61 6d 65 20 64 61 74 61 62 61 73 65 20 61 6e 64  ame database and
0850: 20 6f 6e 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20   one connection 
0860: 64 6f 65 73 20 61 20 56 41 43 55 55 4d 0a 61 6e  does a VACUUM.an
0870: 64 20 74 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b  d the second mak
0880: 65 73 20 73 6f 6d 65 20 63 68 61 6e 67 65 20 74  es some change t
0890: 6f 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c  o the database.<
08a0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22  /li>.<li>Allow "
08b0: 3f 22 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e  ?" parameters in
08c0: 20 74 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73   the LIMIT claus
08d0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  e.</li>.<li>Fix 
08e0: 56 41 43 55 55 4d 20 73 6f 20 74 68 61 74 20 69  VACUUM so that i
08f0: 74 20 77 6f 72 6b 73 20 77 69 74 68 20 41 55 54  t works with AUT
0900: 4f 49 4e 43 52 45 4d 45 4e 54 2e 3c 2f 6c 69 3e  OINCREMENT.</li>
0910: 0a 3c 6c 69 3e 46 69 78 20 61 20 72 61 63 65 20  .<li>Fix a race 
0920: 63 6f 6e 64 69 74 69 6f 6e 20 69 6e 20 41 55 54  condition in AUT
0930: 4f 56 41 43 55 55 4d 20 74 68 61 74 20 63 61 6e  OVACUUM that can
0940: 20 6c 65 61 64 20 74 6f 20 63 6f 72 72 75 70 74   lead to corrupt
0950: 20 64 61 74 61 62 61 73 65 73 3c 2f 6c 69 3e 0a   databases</li>.
0960: 3c 6c 69 3e 41 64 64 20 61 20 6e 75 6d 65 72 69  <li>Add a numeri
0970: 63 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  c version number
0980: 20 74 6f 20 74 68 65 20 73 71 6c 69 74 65 33 2e   to the sqlite3.
0990: 68 20 69 6e 63 6c 75 64 65 20 66 69 6c 65 2e 3c  h include file.<
09a0: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
09b0: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 61  inor bug fixes a
09c0: 6e 64 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 65  nd performance e
09d0: 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69  nhancements.</li
09e0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
09f0: 46 65 62 72 75 61 72 79 20 31 35 20 28 32 2e 38  February 15 (2.8
0a00: 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .16)} {.<li>Fix 
0a10: 61 20 62 75 67 20 74 68 61 74 20 63 61 6e 20 6c  a bug that can l
0a20: 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65 20  ead to database 
0a30: 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 74 68  corruption if th
0a40: 65 72 65 20 61 72 65 20 74 77 6f 0a 6f 70 65 6e  ere are two.open
0a50: 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f 20   connections to 
0a60: 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73  the same databas
0a70: 65 20 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65 63  e and one connec
0a80: 74 69 6f 6e 20 64 6f 65 73 20 61 20 56 41 43 55  tion does a VACU
0a90: 55 4d 0a 61 6e 64 20 74 68 65 20 73 65 63 6f 6e  UM.and the secon
0aa0: 64 20 6d 61 6b 65 73 20 73 6f 6d 65 20 63 68 61  d makes some cha
0ab0: 6e 67 65 20 74 6f 20 74 68 65 20 64 61 74 61 62  nge to the datab
0ac0: 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ase.</li>.<li>Co
0ad0: 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 71  rrectly handle q
0ae0: 75 6f 74 65 64 20 6e 61 6d 65 73 20 69 6e 20 43  uoted names in C
0af0: 52 45 41 54 45 20 49 4e 44 45 58 20 73 74 61 74  REATE INDEX stat
0b00: 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ements.</li>.<li
0b10: 3e 46 69 78 20 61 20 6e 61 6d 69 6e 67 20 63 6f  >Fix a naming co
0b20: 6e 66 6c 69 63 74 20 62 65 74 77 65 65 6e 20 73  nflict between s
0b30: 71 6c 69 74 65 2e 68 20 61 6e 64 20 73 71 6c 69  qlite.h and sqli
0b40: 74 65 33 2e 68 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  te3.h.</li>.<li>
0b50: 41 76 6f 69 64 20 65 78 63 65 73 73 20 68 65 61  Avoid excess hea
0b60: 70 20 75 73 61 67 65 20 77 68 65 6e 20 63 6f 70  p usage when cop
0b70: 79 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 73  ying expressions
0b80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72  .</li>.<li>Other
0b90: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
0ba0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
0bb0: 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31 20  2005 February 1 
0bc0: 28 33 2e 31 2e 31 20 42 45 54 41 29 7d 20 7b 0a  (3.1.1 BETA)} {.
0bd0: 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 20 63 61  <li>Automatic ca
0be0: 63 68 69 6e 67 20 6f 66 20 70 72 65 70 61 72 65  ching of prepare
0bf0: 64 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20  d statements in 
0c00: 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
0c10: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 54 54 41 43  e</li>.<li>ATTAC
0c20: 48 20 61 6e 64 20 44 45 54 41 43 48 20 61 73 20  H and DETACH as 
0c30: 77 65 6c 6c 20 61 73 20 73 6f 6d 65 20 6f 74 68  well as some oth
0c40: 65 72 20 6f 70 65 72 61 74 69 6f 6e 73 20 63 61  er operations ca
0c50: 75 73 65 20 65 78 69 73 74 69 6e 67 0a 20 20 20  use existing.   
0c60: 20 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d   prepared statem
0c70: 65 6e 74 73 20 74 6f 20 65 78 70 69 72 65 2e 3c  ents to expire.<
0c80: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 69 6f  /li>.<li>Numerio
0c90: 75 73 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  us minor bug fix
0ca0: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
0cb0: 7b 32 30 30 35 20 4a 61 6e 75 61 72 79 20 32 31  {2005 January 21
0cc0: 20 28 33 2e 31 2e 30 20 41 4c 50 48 41 29 7d 20   (3.1.0 ALPHA)} 
0cd0: 7b 0a 3c 6c 69 3e 41 75 74 6f 76 61 63 75 75 6d  {.<li>Autovacuum
0ce0: 20 73 75 70 70 6f 72 74 20 61 64 64 65 64 3c 2f   support added</
0cf0: 6c 69 3e 0a 3c 6c 69 3e 43 55 52 52 45 4e 54 5f  li>.<li>CURRENT_
0d00: 54 49 4d 45 2c 20 43 55 52 52 45 4e 54 5f 44 41  TIME, CURRENT_DA
0d10: 54 45 2c 20 61 6e 64 20 43 55 52 52 45 4e 54 5f  TE, and CURRENT_
0d20: 54 49 4d 45 53 54 41 4d 50 20 61 64 64 65 64 3c  TIMESTAMP added<
0d30: 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74  /li>.<li>Support
0d40: 20 66 6f 72 20 74 68 65 20 45 58 49 53 54 53 20   for the EXISTS 
0d50: 63 6c 61 75 73 65 20 61 64 64 65 64 2e 3c 2f 6c  clause added.</l
0d60: 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  i>.<li>Support f
0d70: 6f 72 20 63 6f 72 72 65 6c 61 74 65 64 20 73 75  or correlated su
0d80: 62 71 75 65 72 69 65 73 20 61 64 64 65 64 2e 3c  bqueries added.<
0d90: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
0da0: 68 65 20 45 53 43 41 50 45 20 63 6c 61 75 73 65  he ESCAPE clause
0db0: 20 6f 6e 20 74 68 65 20 4c 49 4b 45 20 6f 70 65   on the LIKE ope
0dc0: 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rator.</li>.<li>
0dd0: 53 75 70 70 6f 72 74 20 66 6f 72 20 41 4c 54 45  Support for ALTE
0de0: 52 20 54 41 42 4c 45 20 2e 2e 2e 20 52 45 4e 41  R TABLE ... RENA
0df0: 4d 45 20 54 41 42 4c 45 20 2e 2e 2e 20 61 64 64  ME TABLE ... add
0e00: 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 55 54 4f  ed</li>.<li>AUTO
0e10: 49 4e 43 52 45 4d 45 4e 54 20 6b 65 79 77 6f 72  INCREMENT keywor
0e20: 64 20 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 49  d supported on I
0e30: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
0e40: 45 59 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79  EY</li>.<li>Many
0e50: 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 20 6d 61   SQLITE_OMIT_ ma
0e60: 63 72 6f 73 20 69 6e 73 65 72 74 73 20 74 6f 20  cros inserts to 
0e70: 6f 6d 69 74 20 66 65 61 74 75 72 65 73 20 61 74  omit features at
0e80: 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 20 20   compile-time.  
0e90: 20 20 61 6e 64 20 72 65 64 75 63 65 20 74 68 65    and reduce the
0ea0: 20 6c 69 62 72 61 72 79 20 66 6f 6f 74 70 72 69   library footpri
0eb0: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  nt.</li>.<li>The
0ec0: 20 52 45 49 4e 44 45 58 20 63 6f 6d 6d 61 6e 64   REINDEX command
0ed0: 20 77 61 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e   was added.</li>
0ee0: 0a 3c 6c 69 3e 54 68 65 20 65 6e 67 69 6e 65 20  .<li>The engine 
0ef0: 6e 6f 20 6c 6f 6e 67 65 72 20 63 6f 6e 73 75 6c  no longer consul
0f00: 74 73 20 74 68 65 20 6d 61 69 6e 20 74 61 62 6c  ts the main tabl
0f10: 65 20 69 66 20 69 74 20 63 61 6e 20 67 65 74 0a  e if it can get.
0f20: 20 20 20 20 61 6c 6c 20 74 68 65 20 69 6e 66 6f      all the info
0f30: 72 6d 61 74 69 6f 6e 20 69 74 20 6e 65 65 64 73  rmation it needs
0f40: 20 66 72 6f 6d 20 61 6e 20 69 6e 64 65 78 2e 3c   from an index.<
0f50: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6e 75  /li>.<li>Many nu
0f60: 69 73 61 6e 63 65 20 62 75 67 73 20 66 69 78 65  isance bugs fixe
0f70: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
0f80: 7b 32 30 30 34 20 4f 63 74 6f 62 65 72 20 31 31  {2004 October 11
0f90: 20 28 33 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (3.0.8)} {.<li>
0fa0: 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  Add support for 
0fb0: 44 45 46 45 52 52 45 44 2c 20 49 4d 4d 45 44 49  DEFERRED, IMMEDI
0fc0: 41 54 45 2c 20 61 6e 64 20 45 58 43 4c 55 53 49  ATE, and EXCLUSI
0fd0: 56 45 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e  VE transactions.
0fe0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
0ff0: 6e 65 77 20 75 73 65 72 2d 64 65 66 69 6e 65 64  new user-defined
1000: 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 62 65   functions to be
1010: 20 63 72 65 61 74 65 64 20 77 68 65 6e 20 74 68   created when th
1020: 65 72 65 20 61 72 65 0a 61 6c 72 65 61 64 79 20  ere are.already 
1030: 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 70 72 65 63  one or more prec
1040: 6f 6d 70 69 6c 65 64 20 53 51 4c 20 73 74 61 74  ompiled SQL stat
1050: 65 6d 65 6e 74 73 2e 3c 6c 69 3e 0a 3c 6c 69 3e  ements.<li>.<li>
1060: 46 69 78 20 70 6f 72 74 61 62 69 6c 69 74 79 20  Fix portability 
1070: 70 72 6f 62 6c 65 6d 73 20 66 6f 72 20 4d 69 6e  problems for Min
1080: 67 77 2f 4d 53 59 53 2e 3c 2f 6c 69 3e 0a 3c 6c  gw/MSYS.</li>.<l
1090: 69 3e 46 69 78 20 61 20 62 79 74 65 20 61 6c 69  i>Fix a byte ali
10a0: 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 20 6f  gnment problem o
10b0: 6e 20 36 34 2d 62 69 74 20 53 70 61 72 63 20 6d  n 64-bit Sparc m
10c0: 61 63 68 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  achines.</li>.<l
10d0: 69 3e 46 69 78 20 74 68 65 20 22 2e 69 6d 70 6f  i>Fix the ".impo
10e0: 72 74 22 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 74  rt" command of t
10f0: 68 65 20 73 68 65 6c 6c 20 73 6f 20 74 68 61 74  he shell so that
1100: 20 69 74 20 69 67 6e 6f 72 65 73 20 5c 72 0a 63   it ignores \r.c
1110: 68 61 72 61 63 74 65 72 73 20 61 74 20 74 68 65  haracters at the
1120: 20 65 6e 64 20 6f 66 20 6c 69 6e 65 73 2e 3c 2f   end of lines.</
1130: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 63 73 76  li>.<li>The "csv
1140: 22 20 6d 6f 64 65 20 6f 70 74 69 6f 6e 20 69 6e  " mode option in
1150: 20 74 68 65 20 73 68 65 6c 6c 20 70 75 74 73 20   the shell puts 
1160: 73 74 72 69 6e 67 73 20 69 6e 73 69 64 65 20 64  strings inside d
1170: 6f 75 62 6c 65 2d 71 75 6f 74 65 73 2e 3c 2f 6c  ouble-quotes.</l
1180: 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73  i>.<li>Fix typos
1190: 20 69 6e 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f   in documentatio
11a0: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e 76  n.</li>.<li>Conv
11b0: 65 72 74 20 61 72 72 61 79 20 63 6f 6e 73 74 61  ert array consta
11c0: 6e 74 73 20 69 6e 20 74 68 65 20 63 6f 64 65 20  nts in the code 
11d0: 74 6f 20 68 61 76 65 20 74 79 70 65 20 22 63 6f  to have type "co
11e0: 6e 73 74 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  nst".</li>.<li>N
11f0: 75 6d 65 72 6f 75 73 20 63 6f 64 65 20 6f 70 74  umerous code opt
1200: 69 6d 69 7a 61 74 69 6f 6e 73 2c 20 73 70 65 63  imizations, spec
1210: 69 61 6c 6c 79 20 6f 70 74 69 6d 69 7a 61 74 69  ially optimizati
1220: 6f 6e 73 20 64 65 73 69 67 6e 65 64 20 74 6f 0a  ons designed to.
1230: 6d 61 6b 65 20 74 68 65 20 63 6f 64 65 20 66 6f  make the code fo
1240: 6f 74 70 72 69 6e 74 20 73 6d 61 6c 6c 65 72 2e  otprint smaller.
1250: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1260: 30 30 34 20 53 65 70 74 65 6d 62 65 72 20 31 38  004 September 18
1270: 20 28 33 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e   (3.0.7)} {.<li>
1280: 54 68 65 20 42 54 72 65 65 20 6d 6f 64 75 6c 65  The BTree module
1290: 20 61 6c 6c 6f 63 61 74 65 73 20 6c 61 72 67 65   allocates large
12a0: 20 62 75 66 66 65 72 73 20 75 73 69 6e 67 20 6d   buffers using m
12b0: 61 6c 6c 6f 63 28 29 20 69 6e 73 74 65 61 64 20  alloc() instead 
12c0: 6f 66 0a 20 20 20 20 6f 66 66 20 6f 66 20 74 68  of.    off of th
12d0: 65 20 73 74 61 63 6b 2c 20 69 6e 20 6f 72 64 65  e stack, in orde
12e0: 72 20 74 6f 20 70 6c 61 79 20 62 65 74 74 65 72  r to play better
12f0: 20 6f 6e 20 6d 61 63 68 69 6e 65 73 20 77 69 74   on machines wit
1300: 68 20 6c 69 6d 69 74 65 64 0a 20 20 20 20 73 74  h limited.    st
1310: 61 63 6b 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a  ack space.</li>.
1320: 3c 6c 69 3e 46 69 78 65 64 20 6e 61 6d 69 6e 67  <li>Fixed naming
1330: 20 63 6f 6e 66 6c 69 63 74 73 20 73 6f 20 74 68   conflicts so th
1340: 61 74 20 76 65 72 73 69 6f 6e 73 20 32 2e 38 20  at versions 2.8 
1350: 61 6e 64 20 33 2e 30 20 63 61 6e 20 62 65 0a 20  and 3.0 can be. 
1360: 20 20 20 6c 69 6e 6b 65 64 20 61 6e 64 20 75 73     linked and us
1370: 65 64 20 74 6f 67 65 74 68 65 72 20 69 6e 20 74  ed together in t
1380: 68 65 20 73 61 6d 65 20 41 4e 53 49 2d 43 20 73  he same ANSI-C s
1390: 6f 75 72 63 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e  ource file.</li>
13a0: 0a 3c 6c 69 3e 4e 65 77 20 69 6e 74 65 72 66 61  .<li>New interfa
13b0: 63 65 3a 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  ce: sqlite3_bind
13c0: 5f 70 61 72 61 6d 65 74 65 72 5f 69 6e 64 65 78  _parameter_index
13d0: 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  ()</li>.<li>Add 
13e0: 73 75 70 70 6f 72 74 20 66 6f 72 20 77 69 6c 64  support for wild
13f0: 63 61 72 64 20 70 61 72 61 6d 65 74 65 72 73 20  card parameters 
1400: 6f 66 20 74 68 65 20 66 6f 72 6d 3a 20 22 3f 6e  of the form: "?n
1410: 6e 6e 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  nn"</li>.<li>Fix
1420: 20 70 72 6f 62 6c 65 6d 73 20 66 6f 75 6e 64 20   problems found 
1430: 6f 6e 20 36 34 2d 62 69 74 20 73 79 73 74 65 6d  on 64-bit system
1440: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  s.</li>.<li>Remo
1450: 76 65 64 20 65 6e 63 6f 64 65 2e 63 20 66 69 6c  ved encode.c fil
1460: 65 20 28 63 6f 6e 74 61 69 6e 69 6e 67 20 75 6e  e (containing un
1470: 75 73 65 64 20 72 6f 75 74 69 6e 65 73 29 20 66  used routines) f
1480: 72 6f 6d 20 74 68 65 20 0a 20 20 20 20 76 65 72  rom the .    ver
1490: 73 69 6f 6e 20 33 2e 30 20 73 6f 75 72 63 65 20  sion 3.0 source 
14a0: 74 72 65 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  tree.</li>.<li>T
14b0: 68 65 20 73 71 6c 69 74 65 33 5f 74 72 61 63 65  he sqlite3_trace
14c0: 28 29 20 63 61 6c 6c 62 61 63 6b 73 20 6f 63 63  () callbacks occ
14d0: 75 72 20 62 65 66 6f 72 65 20 65 61 63 68 20 73  ur before each s
14e0: 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 69 73 20  tatement.    is 
14f0: 65 78 65 63 75 74 65 64 2c 20 6e 6f 74 20 77 68  executed, not wh
1500: 65 6e 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74  en the statement
1510: 20 69 73 20 63 6f 6d 70 69 6c 65 64 2e 3c 2f 6c   is compiled.</l
1520: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20  i>.<li>Makefile 
1530: 75 70 64 61 74 65 73 20 61 6e 64 20 6d 69 73 63  updates and misc
1540: 65 6c 6c 61 6e 65 6f 75 73 20 62 75 67 20 66 69  ellaneous bug fi
1550: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
1560: 67 20 7b 32 30 30 34 20 53 65 70 74 65 6d 62 65  g {2004 Septembe
1570: 72 20 30 32 20 28 33 2e 30 2e 36 20 62 65 74 61  r 02 (3.0.6 beta
1580: 29 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20  )} {.<li>Better 
1590: 64 65 74 65 63 74 69 6f 6e 20 61 6e 64 20 68 61  detection and ha
15a0: 6e 64 6c 69 6e 67 20 6f 66 20 63 6f 72 72 75 70  ndling of corrup
15b0: 74 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73  t database files
15c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73  .</li>.<li>The s
15d0: 71 6c 69 74 65 33 5f 73 74 65 70 28 29 20 69 6e  qlite3_step() in
15e0: 74 65 72 66 61 63 65 20 72 65 74 75 72 6e 73 20  terface returns 
15f0: 53 51 4c 49 54 45 5f 42 55 53 59 20 69 66 20 69  SQLITE_BUSY if i
1600: 74 20 69 73 20 75 6e 61 62 6c 65 0a 20 20 20 20  t is unable.    
1610: 74 6f 20 63 6f 6d 6d 69 74 20 61 20 63 68 61 6e  to commit a chan
1620: 67 65 20 62 65 63 61 75 73 65 20 6f 66 20 61 20  ge because of a 
1630: 6c 6f 63 6b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  lock</li>.<li>Co
1640: 6d 62 69 6e 65 20 74 68 65 20 69 6d 70 6c 65 6d  mbine the implem
1650: 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 4c 49 4b  entations of LIK
1660: 45 20 61 6e 64 20 47 4c 4f 42 20 69 6e 74 6f 20  E and GLOB into 
1670: 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 70 61 74  a single.    pat
1680: 74 65 72 6e 2d 6d 61 74 63 68 69 6e 67 20 73 75  tern-matching su
1690: 62 72 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c  broutine.</li>.<
16a0: 6c 69 3e 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73  li>Miscellaneous
16b0: 20 63 6f 64 65 20 73 69 7a 65 20 6f 70 74 69 6d   code size optim
16c0: 69 7a 61 74 69 6f 6e 73 20 61 6e 64 20 62 75 67  izations and bug
16d0: 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63   fixes</li>.}..c
16e0: 68 6e 67 20 7b 32 30 30 34 20 41 75 67 75 73 74  hng {2004 August
16f0: 20 32 39 20 28 33 2e 30 2e 35 20 62 65 74 61 29   29 (3.0.5 beta)
1700: 7d 20 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20  } {.<li>Support 
1710: 66 6f 72 20 22 3a 41 41 41 22 20 73 74 79 6c 65  for ":AAA" style
1720: 20 62 69 6e 64 20 70 61 72 61 6d 65 74 65 72 20   bind parameter 
1730: 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  names.</li>.<li>
1740: 41 64 64 65 64 20 74 68 65 20 6e 65 77 20 73 71  Added the new sq
1750: 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d  lite3_bind_param
1760: 65 74 65 72 5f 6e 61 6d 65 28 29 20 69 6e 74 65  eter_name() inte
1770: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rface.</li>.<li>
1780: 53 75 70 70 6f 72 74 20 66 6f 72 20 54 43 4c 20  Support for TCL 
1790: 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 20 65  variable names e
17a0: 6d 62 65 64 64 65 64 20 69 6e 20 53 51 4c 20 73  mbedded in SQL s
17b0: 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 74 68 65  tatements in the
17c0: 0a 20 20 20 20 54 43 4c 20 62 69 6e 64 69 6e 67  .    TCL binding
17d0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  s.</li>.<li>The 
17e0: 54 43 4c 20 62 69 6e 64 69 6e 67 73 20 74 72 61  TCL bindings tra
17f0: 6e 73 66 65 72 20 64 61 74 61 20 77 69 74 68 6f  nsfer data witho
1800: 75 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 64  ut necessarily d
1810: 6f 69 6e 67 20 61 20 63 6f 6e 76 65 72 73 69 6f  oing a conversio
1820: 6e 0a 20 20 20 20 74 6f 20 61 20 73 74 72 69 6e  n.    to a strin
1830: 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  g.</li>.<li>The 
1840: 64 61 74 61 62 61 73 65 20 66 6f 72 20 54 45 4d  database for TEM
1850: 50 20 74 61 62 6c 65 73 20 69 73 20 6e 6f 74 20  P tables is not 
1860: 63 72 65 61 74 65 64 20 75 6e 74 69 6c 20 69 74  created until it
1870: 20 69 73 20 6e 65 65 64 65 64 2e 3c 2f 6c 69 3e   is needed.</li>
1880: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69  .<li>Add the abi
1890: 6c 69 74 79 20 74 6f 20 73 70 65 63 69 66 79 20  lity to specify 
18a0: 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74  an alternative t
18b0: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 64 69  emporary file di
18c0: 72 65 63 74 6f 72 79 0a 20 20 20 20 75 73 69 6e  rectory.    usin
18d0: 67 20 74 68 65 20 22 73 71 6c 69 74 65 5f 74 65  g the "sqlite_te
18e0: 6d 70 5f 64 69 72 65 63 74 6f 72 79 22 20 67 6c  mp_directory" gl
18f0: 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 2e 3c 2f  obal variable.</
1900: 6c 69 3e 0a 3c 6c 69 3e 41 20 63 6f 6d 70 69 6c  li>.<li>A compil
1910: 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20 28 53  e-time option (S
1920: 51 4c 49 54 45 5f 42 55 53 59 5f 52 45 53 45 52  QLITE_BUSY_RESER
1930: 56 45 44 5f 4c 4f 43 4b 29 20 63 61 75 73 65 73  VED_LOCK) causes
1940: 20 74 68 65 20 62 75 73 79 0a 20 20 20 20 68 61   the busy.    ha
1950: 6e 64 6c 65 72 20 74 6f 20 62 65 20 63 61 6c 6c  ndler to be call
1960: 65 64 20 77 68 65 6e 20 74 68 65 72 65 20 69 73  ed when there is
1970: 20 63 6f 6e 74 65 6e 74 69 6f 6e 20 66 6f 72 20   contention for 
1980: 61 20 52 45 53 45 52 56 45 44 20 6c 6f 63 6b 2e  a RESERVED lock.
1990: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75  </li>.<li>Variou
19a0: 73 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20  s bug fixes and 
19b0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 3c 2f 6c  optimizations</l
19c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
19d0: 20 41 75 67 75 73 74 20 38 20 28 33 2e 30 2e 34   August 8 (3.0.4
19e0: 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 43 52   beta)} {.<li>CR
19f0: 45 41 54 45 20 54 41 42 4c 45 20 61 6e 64 20 44  EATE TABLE and D
1a00: 52 4f 50 20 54 41 42 4c 45 20 6e 6f 77 20 77 6f  ROP TABLE now wo
1a10: 72 6b 20 63 6f 72 72 65 63 74 6c 79 20 61 73 20  rk correctly as 
1a20: 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65  prepared stateme
1a30: 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  nts.</li>.<li>Fi
1a40: 78 20 61 20 62 75 67 20 69 6e 20 56 41 43 55 55  x a bug in VACUU
1a50: 4d 20 61 6e 64 20 55 4e 49 51 55 45 20 69 6e 64  M and UNIQUE ind
1a60: 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ices.</li>.<li>A
1a70: 64 64 20 74 68 65 20 22 2e 69 6d 70 6f 72 74 22  dd the ".import"
1a80: 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20   command to the 
1a90: 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65  command-line she
1aa0: 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ll.</li>.<li>Fix
1ab0: 20 61 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c   a bug that coul
1ac0: 64 20 63 61 75 73 65 20 69 6e 64 65 78 20 63 6f  d cause index co
1ad0: 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 61 6e  rruption when an
1ae0: 20 61 74 74 65 6d 70 74 20 74 6f 0a 20 20 20 20   attempt to.    
1af0: 64 65 6c 65 74 65 20 72 6f 77 73 20 6f 66 20 61  delete rows of a
1b00: 20 74 61 62 6c 65 20 69 73 20 62 6c 6f 63 6b 65   table is blocke
1b10: 64 20 62 79 20 61 20 70 65 6e 64 69 6e 67 20 71  d by a pending q
1b20: 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c  uery.</li>.<li>L
1b30: 69 62 72 61 72 79 20 73 69 7a 65 20 6f 70 74 69  ibrary size opti
1b40: 6d 69 7a 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  mizations.</li>.
1b50: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
1b60: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
1b70: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
1b80: 6c 79 20 32 32 20 28 32 2e 38 2e 31 35 29 7d 20  ly 22 (2.8.15)} 
1b90: 7b 0a 3c 6c 69 3e 54 68 69 73 20 69 73 20 61 20  {.<li>This is a 
1ba0: 6d 61 69 6e 74 65 6e 61 6e 63 65 20 72 65 6c 65  maintenance rele
1bb0: 61 73 65 20 6f 6e 6c 79 2e 20 20 56 61 72 69 6f  ase only.  Vario
1bc0: 75 73 20 6d 69 6e 6f 72 20 62 75 67 73 20 68 61  us minor bugs ha
1bd0: 76 65 20 62 65 65 6e 0a 66 69 78 65 64 20 61 6e  ve been.fixed an
1be0: 64 20 73 6f 6d 65 20 70 6f 72 74 61 62 69 6c 69  d some portabili
1bf0: 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20  ty enhancements 
1c00: 61 72 65 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a  are added.</li>.
1c10: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
1c20: 6c 79 20 32 32 20 28 33 2e 30 2e 33 20 62 65 74  ly 22 (3.0.3 bet
1c30: 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 73 65  a)} {.<li>The se
1c40: 63 6f 6e 64 20 62 65 74 61 20 72 65 6c 65 61 73  cond beta releas
1c50: 65 20 66 6f 72 20 53 51 4c 69 74 65 20 33 2e 30  e for SQLite 3.0
1c60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73  .</li>.<li>Add s
1c70: 75 70 70 6f 72 74 20 66 6f 72 20 22 50 52 41 47  upport for "PRAG
1c80: 4d 41 20 70 61 67 65 5f 73 69 7a 65 22 20 74 6f  MA page_size" to
1c90: 20 61 64 6a 75 73 74 20 74 68 65 20 70 61 67 65   adjust the page
1ca0: 20 73 69 7a 65 20 6f 66 0a 74 68 65 20 64 61 74   size of.the dat
1cb0: 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  abase.</li>.<li>
1cc0: 56 61 72 69 6f 75 73 20 62 75 67 20 66 69 78 65  Various bug fixe
1cd0: 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74  s and documentat
1ce0: 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69  ion updates.</li
1cf0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
1d00: 4a 75 6e 65 20 33 30 20 28 33 2e 30 2e 32 20 62  June 30 (3.0.2 b
1d10: 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  eta)} {.<li>The 
1d20: 66 69 72 73 74 20 62 65 74 61 20 72 65 6c 65 61  first beta relea
1d30: 73 65 20 66 6f 72 20 53 51 4c 69 74 65 20 33 2e  se for SQLite 3.
1d40: 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  0.</li>.}..chng 
1d50: 7b 32 30 30 34 20 4a 75 6e 65 20 32 32 20 28 33  {2004 June 22 (3
1d60: 2e 30 2e 31 20 61 6c 70 68 61 29 7d 20 7b 0a 3c  .0.1 alpha)} {.<
1d70: 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22  li><font color="
1d80: 72 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a  red"><b>.    ***
1d90: 20 41 6c 70 68 61 20 52 65 6c 65 61 73 65 20 2d   Alpha Release -
1da0: 20 52 65 73 65 61 72 63 68 20 41 6e 64 20 54 65   Research And Te
1db0: 73 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79 20 2a  sting Use Only *
1dc0: 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c  **</b></font>.<l
1dd0: 69 3e 4c 6f 74 73 20 6f 66 20 62 75 67 20 66 69  i>Lots of bug fi
1de0: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
1df0: 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 31 38 20  g {2004 June 18 
1e00: 28 33 2e 30 2e 30 20 61 6c 70 68 61 29 7d 20 7b  (3.0.0 alpha)} {
1e10: 0a 3c 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72  .<li><font color
1e20: 3d 22 72 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a  ="red"><b>.    *
1e30: 2a 2a 20 41 6c 70 68 61 20 52 65 6c 65 61 73 65  ** Alpha Release
1e40: 20 2d 20 52 65 73 65 61 72 63 68 20 41 6e 64 20   - Research And 
1e50: 54 65 73 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79  Testing Use Only
1e60: 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a   ***</b></font>.
1e70: 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20  <li>Support for 
1e80: 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 69 7a 61  internationaliza
1e90: 74 69 6f 6e 20 69 6e 63 6c 75 64 69 6e 67 20 55  tion including U
1ea0: 54 46 2d 38 2c 20 55 54 46 2d 31 36 2c 20 61 6e  TF-8, UTF-16, an
1eb0: 64 0a 20 20 20 20 75 73 65 72 20 64 65 66 69 6e  d.    user defin
1ec0: 65 64 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71  ed collating seq
1ed0: 75 65 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  uences.</li>.<li
1ee0: 3e 4e 65 77 20 66 69 6c 65 20 66 6f 72 6d 61 74  >New file format
1ef0: 20 74 68 61 74 20 69 73 20 32 35 25 20 74 6f 20   that is 25% to 
1f00: 33 35 25 20 73 6d 61 6c 6c 65 72 20 66 6f 72 20  35% smaller for 
1f10: 74 79 70 69 63 61 6c 20 75 73 65 2e 3c 2f 6c 69  typical use.</li
1f20: 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 63  >.<li>Improved c
1f30: 6f 6e 63 75 72 72 65 6e 63 79 2e 3c 2f 6c 69 3e  oncurrency.</li>
1f40: 0a 3c 6c 69 3e 41 74 6f 6d 69 63 20 63 6f 6d 6d  .<li>Atomic comm
1f50: 69 74 73 20 66 6f 72 20 41 54 54 41 43 48 65 64  its for ATTACHed
1f60: 20 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e   databases.</li>
1f70: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 63 72 75 66  .<li>Remove cruf
1f80: 74 20 66 72 6f 6d 20 74 68 65 20 41 50 49 73 2e  t from the APIs.
1f90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 4c 4f 42 20 73  </li>.<li>BLOB s
1fa0: 75 70 70 6f 72 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  upport.</li>.<li
1fb0: 3e 36 34 2d 62 69 74 20 72 6f 77 69 64 73 2e 3c  >64-bit rowids.<
1fc0: 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66  /li>.<li><a href
1fd0: 3d 22 76 65 72 73 69 6f 6e 33 2e 68 74 6d 6c 22  ="version3.html"
1fe0: 3e 4d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f  >More informatio
1ff0: 6e 3c 2f 61 3e 2e 0a 7d 0a 0a 63 68 6e 67 20 7b  n</a>..}..chng {
2000: 32 30 30 34 20 4a 75 6e 65 20 39 20 28 32 2e 38  2004 June 9 (2.8
2010: 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .14)} {.<li>Fix 
2020: 74 68 65 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61  the min() and ma
2030: 78 28 29 20 6f 70 74 69 6d 69 7a 65 72 20 73 6f  x() optimizer so
2040: 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77   that it works w
2050: 68 65 6e 20 74 68 65 20 46 52 4f 4d 0a 20 20 20  hen the FROM.   
2060: 20 63 6c 61 75 73 65 20 63 6f 6e 73 69 73 74 73   clause consists
2070: 20 6f 66 20 61 20 73 75 62 71 75 65 72 79 2e 3c   of a subquery.<
2080: 2f 6c 69 3e 0a 3c 6c 69 3e 49 67 6e 6f 72 65 20  /li>.<li>Ignore 
2090: 65 78 74 72 61 20 77 68 69 74 65 73 70 61 63 65  extra whitespace
20a0: 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6f   at the end of o
20b0: 66 20 22 2e 22 20 63 6f 6d 6d 61 6e 64 73 20 69  f "." commands i
20c0: 6e 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69  n the shell.</li
20d0: 3e 0a 3c 6c 69 3e 42 75 6e 64 6c 65 20 73 71 6c  >.<li>Bundle sql
20e0: 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72  ite_encode_binar
20f0: 79 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 64  y() and sqlite_d
2100: 65 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 77  ecode_binary() w
2110: 69 74 68 20 74 68 65 20 0a 20 20 20 20 6c 69 62  ith the .    lib
2120: 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  rary.</li>.<li>T
2130: 68 65 20 54 45 4d 50 5f 53 54 4f 52 45 20 61 6e  he TEMP_STORE an
2140: 64 20 44 45 46 41 55 4c 54 5f 54 45 4d 50 5f 53  d DEFAULT_TEMP_S
2150: 54 4f 52 45 20 70 72 61 67 6d 61 73 20 6e 6f 77  TORE pragmas now
2160: 20 77 6f 72 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   work.</li>.<li>
2170: 43 6f 64 65 20 63 68 61 6e 67 65 73 20 74 6f 20  Code changes to 
2180: 63 6f 6d 70 69 6c 65 20 63 6c 65 61 6e 6c 79 20  compile cleanly 
2190: 75 73 69 6e 67 20 4f 70 65 6e 57 61 74 63 6f 6d  using OpenWatcom
21a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 56  .</li>.<li>Fix V
21b0: 44 42 45 20 73 74 61 63 6b 20 6f 76 65 72 66 6c  DBE stack overfl
21c0: 6f 77 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68  ow problems with
21d0: 20 49 4e 53 54 45 41 44 20 4f 46 20 74 72 69 67   INSTEAD OF trig
21e0: 67 65 72 73 20 61 6e 64 0a 20 20 20 20 4e 55 4c  gers and.    NUL
21f0: 4c 73 20 69 6e 20 49 4e 20 6f 70 65 72 61 74 6f  Ls in IN operato
2200: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  rs.</li>.<li>Add
2210: 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69   the global vari
2220: 61 62 6c 65 20 73 71 6c 69 74 65 5f 74 65 6d 70  able sqlite_temp
2230: 5f 64 69 72 65 63 74 6f 72 79 20 77 68 69 63 68  _directory which
2240: 20 69 66 20 73 65 74 20 64 65 66 69 6e 65 73 20   if set defines 
2250: 74 68 65 0a 20 20 20 20 64 69 72 65 63 74 6f 72  the.    director
2260: 79 20 69 6e 20 77 68 69 63 68 20 74 65 6d 70 6f  y in which tempo
2270: 72 61 72 79 20 66 69 6c 65 73 20 61 72 65 20 73  rary files are s
2280: 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tored.</li>.<li>
2290: 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74  sqlite_interrupt
22a0: 28 29 20 70 6c 61 79 73 20 77 65 6c 6c 20 77 69  () plays well wi
22b0: 74 68 20 56 41 43 55 55 4d 2e 3c 2f 6c 69 3e 0a  th VACUUM.</li>.
22c0: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
22d0: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
22e0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4d 61  }..chng {2004 Ma
22f0: 72 63 68 20 38 20 28 32 2e 38 2e 31 33 29 7d 20  rch 8 (2.8.13)} 
2300: 7b 0a 3c 6c 69 3e 52 65 66 61 63 74 6f 72 20 70  {.<li>Refactor p
2310: 61 72 74 73 20 6f 66 20 74 68 65 20 63 6f 64 65  arts of the code
2320: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61 6b   in order to mak
2330: 65 20 74 68 65 20 63 6f 64 65 20 66 6f 6f 74 70  e the code footp
2340: 72 69 6e 74 0a 20 20 20 20 73 6d 61 6c 6c 65 72  rint.    smaller
2350: 2e 20 20 54 68 65 20 63 6f 64 65 20 69 73 20 6e  .  The code is n
2360: 6f 77 20 61 6c 73 6f 20 61 20 6c 69 74 74 6c 65  ow also a little
2370: 20 62 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69   bit faster.</li
2380: 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 65 78 65  >.<li>sqlite_exe
2390: 63 28 29 20 69 73 20 6e 6f 77 20 69 6d 70 6c 65  c() is now imple
23a0: 6d 65 6e 74 65 64 20 61 73 20 61 20 77 72 61 70  mented as a wrap
23b0: 70 65 72 20 61 72 6f 75 6e 64 20 73 71 6c 69 74  per around sqlit
23c0: 65 5f 63 6f 6d 70 69 6c 65 28 29 0a 20 20 20 20  e_compile().    
23d0: 61 6e 64 20 73 71 6c 69 74 65 5f 73 74 65 70 28  and sqlite_step(
23e0: 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  ).</li>.<li>The 
23f0: 62 75 69 6c 74 2d 69 6e 20 6d 69 6e 28 29 20 61  built-in min() a
2400: 6e 64 20 6d 61 78 28 29 20 66 75 6e 63 74 69 6f  nd max() functio
2410: 6e 73 20 6e 6f 77 20 68 6f 6e 6f 72 20 74 68 65  ns now honor the
2420: 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77   difference betw
2430: 65 65 6e 0a 20 20 20 20 4e 55 4d 45 52 49 43 20  een.    NUMERIC 
2440: 61 6e 64 20 54 45 58 54 20 64 61 74 61 74 79 70  and TEXT datatyp
2450: 65 73 2e 20 20 46 6f 72 6d 65 72 6c 79 2c 20 6d  es.  Formerly, m
2460: 69 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20 61  in() and max() a
2470: 6c 77 61 79 73 20 61 73 73 75 6d 65 64 0a 20 20  lways assumed.  
2480: 20 20 74 68 65 69 72 20 61 72 67 75 6d 65 6e 74    their argument
2490: 73 20 77 65 72 65 20 6f 66 20 74 79 70 65 20 4e  s were of type N
24a0: 55 4d 45 52 49 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69  UMERIC.</li>.<li
24b0: 3e 4e 65 77 20 48 48 3a 4d 4d 3a 53 53 20 6d 6f  >New HH:MM:SS mo
24c0: 64 69 66 69 65 72 20 74 6f 20 74 68 65 20 62 75  difier to the bu
24d0: 69 6c 74 2d 69 6e 20 64 61 74 65 2f 74 69 6d 65  ilt-in date/time
24e0: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
24f0: 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61  .<li>Experimenta
2500: 6c 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f 73 74  l sqlite_last_st
2510: 61 74 65 6d 65 6e 74 5f 63 68 61 6e 67 65 73 28  atement_changes(
2520: 29 20 41 50 49 20 61 64 64 65 64 2e 20 20 46 69  ) API added.  Fi
2530: 78 65 64 20 74 68 65 0a 20 20 20 20 74 68 65 20  xed the.    the 
2540: 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69  last_insert_rowi
2550: 64 28 29 20 66 75 6e 63 74 69 6f 6e 20 73 6f 20  d() function so 
2560: 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 63 6f  that it works co
2570: 72 72 65 63 74 6c 79 20 77 69 74 68 0a 20 20 20  rrectly with.   
2580: 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a   triggers.</li>.
2590: 3c 6c 69 3e 41 64 64 20 66 75 6e 63 74 69 6f 6e  <li>Add function
25a0: 73 20 70 72 6f 74 6f 74 79 70 65 73 20 66 6f 72  s prototypes for
25b0: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 65 6e   the database en
25c0: 63 72 79 70 74 69 6f 6e 20 41 50 49 2e 3c 2f 6c  cryption API.</l
25d0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65 72  i>.<li>Fix sever
25e0: 61 6c 20 6e 75 69 73 61 6e 63 65 20 62 75 67 73  al nuisance bugs
25f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2600: 32 30 30 34 20 46 65 62 72 75 61 72 79 20 38 20  2004 February 8 
2610: 28 32 2e 38 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e  (2.8.12)} {.<li>
2620: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 77  Fix a bug that w
2630: 69 6c 6c 20 6d 69 67 68 74 20 63 6f 72 72 75 70  ill might corrup
2640: 74 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6a  t the rollback j
2650: 6f 75 72 6e 61 6c 20 69 66 20 61 20 70 6f 77 65  ournal if a powe
2660: 72 20 66 61 69 6c 75 72 65 0a 20 20 20 20 6f 72  r failure.    or
2670: 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61   external progra
2680: 6d 20 68 61 6c 74 20 6f 63 63 75 72 73 20 69 6e  m halt occurs in
2690: 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 61   the middle of a
26a0: 20 43 4f 4d 4d 49 54 2e 20 20 54 68 65 20 63 6f   COMMIT.  The co
26b0: 72 72 75 70 74 0a 20 20 20 20 6a 6f 75 72 6e 61  rrupt.    journa
26c0: 6c 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61  l can lead to da
26d0: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
26e0: 6e 20 77 68 65 6e 20 69 74 20 69 73 20 72 6f 6c  n when it is rol
26f0: 6c 65 64 20 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c  led back.</li>.<
2700: 6c 69 3e 52 65 64 75 63 65 20 74 68 65 20 73 69  li>Reduce the si
2710: 7a 65 20 61 6e 64 20 69 6e 63 72 65 61 73 65 20  ze and increase 
2720: 74 68 65 20 73 70 65 65 64 20 6f 66 20 76 61 72  the speed of var
2730: 69 6f 75 73 20 6d 6f 64 75 6c 65 73 2c 20 65 73  ious modules, es
2740: 70 65 63 69 61 6c 6c 79 0a 20 20 20 20 74 68 65  pecially.    the
2750: 20 76 69 72 74 75 61 6c 20 6d 61 63 68 69 6e 65   virtual machine
2760: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
2770: 20 22 26 6c 74 3b 65 78 70 72 26 67 74 3b 20 49   "&lt;expr&gt; I
2780: 4e 20 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22  N &lt;table&gt;"
2790: 20 61 73 20 61 20 73 68 6f 72 74 68 61 6e 64 20   as a shorthand 
27a0: 66 6f 72 0a 20 20 20 20 22 26 6c 74 3b 65 78 70  for.    "&lt;exp
27b0: 72 26 67 74 3b 20 49 4e 20 28 53 45 4c 45 43 54  r&gt; IN (SELECT
27c0: 20 2a 20 46 52 4f 4d 20 26 6c 74 3b 74 61 62 6c   * FROM &lt;tabl
27d0: 65 26 67 74 3b 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e&gt;".</li>.<li
27e0: 3e 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 74  >Optimizations t
27f0: 6f 20 74 68 65 20 73 71 6c 69 74 65 5f 6d 70 72  o the sqlite_mpr
2800: 69 6e 74 66 28 29 20 72 6f 75 74 69 6e 65 2e 3c  intf() routine.<
2810: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75  /li>.<li>Make su
2820: 72 65 20 74 68 65 20 4d 49 4e 28 29 20 61 6e 64  re the MIN() and
2830: 20 4d 41 58 28 29 20 6f 70 74 69 6d 69 7a 61 74   MAX() optimizat
2840: 69 6f 6e 73 20 77 6f 72 6b 20 77 69 74 68 69 6e  ions work within
2850: 20 73 75 62 71 75 65 72 69 65 73 2e 3c 2f 6c 69   subqueries.</li
2860: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
2870: 4a 61 6e 75 61 72 79 20 31 34 20 28 32 2e 38 2e  January 14 (2.8.
2880: 31 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  11)} {.<li>Fix a
2890: 20 62 75 67 20 69 6e 20 68 6f 77 20 74 68 65 20   bug in how the 
28a0: 49 4e 20 6f 70 65 72 61 74 6f 72 20 68 61 6e 64  IN operator hand
28b0: 6c 65 73 20 4e 55 4c 4c 73 20 69 6e 20 73 75 62  les NULLs in sub
28c0: 71 75 65 72 69 65 73 2e 20 20 54 68 65 20 62 75  queries.  The bu
28d0: 67 0a 20 20 20 20 77 61 73 20 69 6e 74 72 6f 64  g.    was introd
28e0: 75 63 65 64 20 62 79 20 74 68 65 20 70 72 65 76  uced by the prev
28f0: 69 6f 75 73 20 72 65 6c 65 61 73 65 2e 3c 2f 6c  ious release.</l
2900: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
2910: 20 4a 61 6e 75 61 72 79 20 31 33 20 28 32 2e 38   January 13 (2.8
2920: 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .10)} {.<li>Fix 
2930: 61 20 70 6f 74 65 6e 74 69 61 6c 20 64 61 74 61  a potential data
2940: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
2950: 70 72 6f 62 6c 65 6d 20 6f 6e 20 55 6e 69 78 20  problem on Unix 
2960: 63 61 75 73 65 64 20 62 79 20 74 68 65 20 66 61  caused by the fa
2970: 63 74 0a 20 20 20 20 74 68 61 74 20 61 6c 6c 20  ct.    that all 
2980: 70 6f 73 69 78 20 61 64 76 69 73 6f 72 79 20 6c  posix advisory l
2990: 6f 63 6b 73 20 61 72 65 20 63 6c 65 61 72 65 64  ocks are cleared
29a0: 20 77 68 65 6e 65 76 65 72 20 79 6f 75 20 63 6c   whenever you cl
29b0: 6f 73 65 28 29 20 61 20 66 69 6c 65 2e 0a 20 20  ose() a file..  
29c0: 20 20 54 68 65 20 77 6f 72 6b 20 61 72 6f 75 6e    The work aroun
29d0: 64 20 69 74 20 74 6f 20 65 6d 62 61 72 67 6f 20  d it to embargo 
29e0: 61 6c 6c 20 63 6c 6f 73 65 28 29 20 63 61 6c 6c  all close() call
29f0: 73 20 77 68 69 6c 65 20 6c 6f 63 6b 73 20 61 72  s while locks ar
2a00: 65 20 0a 20 20 20 20 6f 75 74 73 74 61 6e 64 69  e .    outstandi
2a10: 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72  ng.</li>.<li>Per
2a20: 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65  formance enhance
2a30: 6d 65 6e 74 73 20 6f 6e 20 73 6f 6d 65 20 63 6f  ments on some co
2a40: 72 6e 65 72 20 63 61 73 65 73 20 6f 66 20 43 4f  rner cases of CO
2a50: 55 4e 54 28 2a 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69  UNT(*).</li>.<li
2a60: 3e 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 69  >Make sure the i
2a70: 6e 2d 6d 65 6d 6f 72 79 20 62 61 63 6b 65 6e 64  n-memory backend
2a80: 20 72 65 73 70 6f 6e 73 65 20 73 61 6e 65 6c 79   response sanely
2a90: 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69   if malloc() fai
2aa0: 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  ls.</li>.<li>All
2ab0: 6f 77 20 73 71 6c 69 74 65 5f 65 78 65 63 28 29  ow sqlite_exec()
2ac0: 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 66 72   to be called fr
2ad0: 6f 6d 20 77 69 74 68 69 6e 20 75 73 65 72 2d 64  om within user-d
2ae0: 65 66 69 6e 65 64 20 53 51 4c 0a 20 20 20 20 66  efined SQL.    f
2af0: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  unctions.</li>.<
2b00: 6c 69 3e 49 6d 70 72 6f 76 65 64 20 61 63 63 75  li>Improved accu
2b10: 72 61 63 79 20 6f 66 20 66 6c 6f 61 74 69 6e 67  racy of floating
2b20: 2d 70 6f 69 6e 74 20 63 6f 6e 76 65 72 73 69 6f  -point conversio
2b30: 6e 73 20 75 73 69 6e 67 20 22 6c 6f 6e 67 20 64  ns using "long d
2b40: 6f 75 62 6c 65 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ouble".</li>.<li
2b50: 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68  >Bug fixes in th
2b60: 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64  e experimental d
2b70: 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f  ate/time functio
2b80: 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ns.</li>.}..chng
2b90: 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 35   {2004 January 5
2ba0: 20 28 32 2e 38 2e 39 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.9)} {.<li>
2bb0: 46 69 78 20 61 20 33 32 2d 62 69 74 20 69 6e 74  Fix a 32-bit int
2bc0: 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 70 72  eger overflow pr
2bd0: 6f 62 6c 65 6d 20 74 68 61 74 20 63 6f 75 6c 64  oblem that could
2be0: 20 72 65 73 75 6c 74 20 69 6e 20 63 6f 72 72 75   result in corru
2bf0: 70 74 0a 20 20 20 20 69 6e 64 69 63 65 73 20 69  pt.    indices i
2c00: 6e 20 61 20 64 61 74 61 62 61 73 65 20 69 66 20  n a database if 
2c10: 6c 61 72 67 65 20 6e 65 67 61 74 69 76 65 20 6e  large negative n
2c20: 75 6d 62 65 72 73 20 28 6c 65 73 73 20 74 68 61  umbers (less tha
2c30: 6e 20 2d 32 31 34 37 34 38 33 36 34 38 29 0a 20  n -2147483648). 
2c40: 20 20 20 77 65 72 65 20 69 6e 73 65 72 74 65 64     were inserted
2c50: 20 69 6e 74 6f 20 61 20 69 6e 64 65 78 65 64 20   into a indexed 
2c60: 6e 75 6d 65 72 69 63 20 63 6f 6c 75 6d 6e 2e 3c  numeric column.<
2c70: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6c  /li>.<li>Fix a l
2c80: 6f 63 6b 69 6e 67 20 70 72 6f 62 6c 65 6d 20 6f  ocking problem o
2c90: 6e 20 6d 75 6c 74 69 2d 74 68 72 65 61 64 65 64  n multi-threaded
2ca0: 20 4c 69 6e 75 78 20 69 6d 70 6c 65 6d 65 6e 74   Linux implement
2cb0: 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ations.</li>.<li
2cc0: 3e 41 6c 77 61 79 73 20 75 73 65 20 22 2e 22 20  >Always use "." 
2cd0: 69 6e 73 74 65 61 64 20 6f 66 20 22 2c 22 20 61  instead of "," a
2ce0: 73 20 74 68 65 20 64 65 63 69 6d 61 6c 20 70 6f  s the decimal po
2cf0: 69 6e 74 20 65 76 65 6e 20 69 66 20 74 68 65 20  int even if the 
2d00: 6c 6f 63 61 6c 65 0a 20 20 20 20 72 65 71 75 65  locale.    reque
2d10: 73 74 73 20 22 2c 22 2e 3c 2f 6c 69 3e 0a 3c 6c  sts ",".</li>.<l
2d20: 69 3e 41 64 64 65 64 20 55 54 43 20 74 6f 20 6c  i>Added UTC to l
2d30: 6f 63 61 6c 74 69 6d 65 20 63 6f 6e 76 65 72 73  ocaltime convers
2d40: 69 6f 6e 73 20 74 6f 20 74 68 65 20 65 78 70 65  ions to the expe
2d50: 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69  rimental date/ti
2d60: 6d 65 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73  me.    functions
2d70: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
2d80: 69 78 65 73 20 74 6f 20 64 61 74 65 2f 74 69 6d  ixes to date/tim
2d90: 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69  e functions.</li
2da0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
2db0: 44 65 63 65 6d 62 65 72 20 31 37 20 28 32 2e 38  December 17 (2.8
2dc0: 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .8)} {.<li>Fix a
2dd0: 20 63 72 69 74 69 63 61 6c 20 62 75 67 20 69 6e   critical bug in
2de0: 74 72 6f 64 75 63 65 64 20 69 6e 74 6f 20 32 2e  troduced into 2.
2df0: 38 2e 30 20 77 68 69 63 68 20 63 6f 75 6c 64 20  8.0 which could 
2e00: 63 61 75 73 65 0a 20 20 20 20 64 61 74 61 62 61  cause.    databa
2e10: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 2e 3c 2f  se corruption.</
2e20: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  li>.<li>Fix a pr
2e30: 6f 62 6c 65 6d 20 77 69 74 68 20 33 2d 77 61 79  oblem with 3-way
2e40: 20 6a 6f 69 6e 73 20 74 68 61 74 20 64 6f 20 6e   joins that do n
2e50: 6f 74 20 75 73 65 20 69 6e 64 69 63 65 73 3c 2f  ot use indices</
2e60: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 43 55  li>.<li>The VACU
2e70: 55 4d 20 63 6f 6d 6d 61 6e 64 20 6e 6f 77 20 77  UM command now w
2e80: 6f 72 6b 73 20 77 69 74 68 20 74 68 65 20 6e 6f  orks with the no
2e90: 6e 2d 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f  n-callback API</
2ea0: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 6d  li>.<li>Improvem
2eb0: 65 6e 74 73 20 74 6f 20 74 68 65 20 22 50 52 41  ents to the "PRA
2ec0: 47 4d 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68  GMA integrity_ch
2ed0: 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 3c 2f 6c 69  eck" command</li
2ee0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
2ef0: 44 65 63 65 6d 62 65 72 20 34 20 28 32 2e 38 2e  December 4 (2.8.
2f00: 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  7)} {.<li>Added 
2f10: 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c  experimental sql
2f20: 69 74 65 5f 62 69 6e 64 28 29 20 61 6e 64 20 73  ite_bind() and s
2f30: 71 6c 69 74 65 5f 72 65 73 65 74 28 29 20 41 50  qlite_reset() AP
2f40: 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20  Is.</li>.<li>If 
2f50: 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  the name of the 
2f60: 64 61 74 61 62 61 73 65 20 69 73 20 61 6e 20 65  database is an e
2f70: 6d 70 74 79 20 73 74 72 69 6e 67 2c 20 6f 70 65  mpty string, ope
2f80: 6e 20 61 20 6e 65 77 20 64 61 74 61 62 61 73 65  n a new database
2f90: 0a 20 20 20 20 69 6e 20 61 20 74 65 6d 70 6f 72  .    in a tempor
2fa0: 61 72 79 20 66 69 6c 65 20 74 68 61 74 20 69 73  ary file that is
2fb0: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64   automatically d
2fc0: 65 6c 65 74 65 64 20 77 68 65 6e 20 74 68 65 20  eleted when the 
2fd0: 64 61 74 61 62 61 73 65 0a 20 20 20 20 69 73 20  database.    is 
2fe0: 63 6c 6f 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  closed.</li>.<li
2ff0: 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68  >Performance enh
3000: 61 6e 63 65 6d 65 6e 74 73 20 69 6e 20 74 68 65  ancements in the
3010: 20 6c 65 6d 6f 6e 2d 67 65 6e 65 72 61 74 65 64   lemon-generated
3020: 20 70 61 72 73 65 72 3c 2f 6c 69 3e 0a 3c 6c 69   parser</li>.<li
3030: 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61  >Experimental da
3040: 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e  te/time function
3050: 73 20 72 65 76 69 73 65 64 2e 3c 2f 6c 69 3e 0a  s revised.</li>.
3060: 3c 6c 69 3e 44 69 73 61 6c 6c 6f 77 20 74 65 6d  <li>Disallow tem
3070: 70 6f 72 61 72 79 20 69 6e 64 69 63 65 73 20 6f  porary indices o
3080: 6e 20 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c  n permanent tabl
3090: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  es.</li>.<li>Doc
30a0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
30b0: 65 73 20 61 6e 64 20 74 79 70 6f 20 66 69 78 65  es and typo fixe
30c0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
30d0: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71   experimental sq
30e0: 6c 69 74 65 5f 70 72 6f 67 72 65 73 73 5f 68 61  lite_progress_ha
30f0: 6e 64 6c 65 72 28 29 20 63 61 6c 6c 62 61 63 6b  ndler() callback
3100: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65   API</li>.<li>Re
3110: 6d 6f 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f  moved support fo
3120: 72 20 74 68 65 20 4f 72 61 63 6c 65 38 20 6f 75  r the Oracle8 ou
3130: 74 65 72 20 6a 6f 69 6e 20 73 79 6e 74 61 78 2e  ter join syntax.
3140: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
3150: 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70  GLOB and LIKE op
3160: 65 72 61 74 6f 72 73 20 74 6f 20 77 6f 72 6b 20  erators to work 
3170: 61 73 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c  as functions.</l
3180: 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e  i>.<li>Other min
3190: 6f 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  or documentation
31a0: 20 61 6e 64 20 6d 61 6b 65 66 69 6c 65 20 63 68   and makefile ch
31b0: 61 6e 67 65 73 20 61 6e 64 20 62 75 67 20 66 69  anges and bug fi
31c0: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
31d0: 67 20 7b 32 30 30 33 20 41 75 67 75 73 74 20 32  g {2003 August 2
31e0: 31 20 28 32 2e 38 2e 36 29 7d 20 7b 0a 3c 6c 69  1 (2.8.6)} {.<li
31f0: 3e 4d 6f 76 65 64 20 74 68 65 20 43 56 53 20 72  >Moved the CVS r
3200: 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 77 77 77  epository to www
3210: 2e 73 71 6c 69 74 65 2e 6f 72 67 3c 2f 6c 69 3e  .sqlite.org</li>
3220: 0a 3c 6c 69 3e 55 70 64 61 74 65 20 74 68 65 20  .<li>Update the 
3230: 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f  NULL-handling do
3240: 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69  cumentation.</li
3250: 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74  >.<li>Experiment
3260: 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e  al date/time fun
3270: 63 74 69 6f 6e 73 20 61 64 64 65 64 2e 3c 2f 6c  ctions added.</l
3280: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
3290: 63 6f 72 72 65 63 74 6c 79 20 65 76 61 6c 75 61  correctly evalua
32a0: 74 65 20 61 20 76 69 65 77 20 6f 66 20 61 20 76  te a view of a v
32b0: 69 65 77 20 77 69 74 68 6f 75 74 20 73 65 67 66  iew without segf
32c0: 61 75 6c 74 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c  aulting.</li>.<l
32d0: 69 3e 42 75 67 20 66 69 78 3a 20 70 72 65 76 65  i>Bug fix: preve
32e0: 6e 74 20 64 61 74 61 62 61 73 65 20 63 6f 72 72  nt database corr
32f0: 75 70 74 69 6f 6e 20 69 66 20 79 6f 75 20 64 72  uption if you dr
3300: 6f 70 70 65 64 20 61 0a 20 20 20 20 74 72 69 67  opped a.    trig
3310: 67 65 72 20 74 68 61 74 20 68 61 64 20 74 68 65  ger that had the
3320: 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 61 20   same name as a 
3330: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  table.</li>.<li>
3340: 42 75 67 20 66 69 78 3a 20 61 6c 6c 6f 77 20 61  Bug fix: allow a
3350: 20 56 41 43 55 55 4d 20 28 77 69 74 68 6f 75 74   VACUUM (without
3360: 20 73 65 67 66 61 75 6c 74 69 6e 67 29 20 6f 6e   segfaulting) on
3370: 20 61 6e 20 65 6d 70 74 79 0a 20 20 20 20 64 61   an empty.    da
3380: 74 61 62 61 73 65 20 61 66 74 65 72 20 73 65 74  tabase after set
3390: 74 69 6e 67 20 74 68 65 20 45 4d 50 54 59 5f 52  ting the EMPTY_R
33a0: 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20  ESULT_CALLBACKS 
33b0: 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69  pragma.</li>.<li
33c0: 3e 42 75 67 20 66 69 78 3a 20 69 66 20 61 6e 20  >Bug fix: if an 
33d0: 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 77 69  integer value wi
33e0: 6c 6c 20 6e 6f 74 20 66 69 74 20 69 6e 20 61 20  ll not fit in a 
33f0: 33 32 2d 62 69 74 20 69 6e 74 2c 20 73 74 6f 72  32-bit int, stor
3400: 65 20 69 74 20 69 6e 0a 20 20 20 20 61 20 64 6f  e it in.    a do
3410: 75 62 6c 65 20 69 6e 73 74 65 61 64 2e 3c 2f 6c  uble instead.</l
3420: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
3430: 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 6a 6f  Make sure the jo
3440: 75 72 6e 61 6c 20 66 69 6c 65 20 64 69 72 65 63  urnal file direc
3450: 74 6f 72 79 20 65 6e 74 72 79 20 69 73 20 63 6f  tory entry is co
3460: 6d 6d 69 74 74 65 64 20 74 6f 20 64 69 73 6b 0a  mmitted to disk.
3470: 20 20 20 20 62 65 66 6f 72 65 20 77 72 69 74 69      before writi
3480: 6e 67 20 74 68 65 20 64 61 74 61 62 61 73 65 20  ng the database 
3490: 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  file.</li>.}..ch
34a0: 6e 67 20 7b 32 30 30 33 20 4a 75 6c 79 20 32 32  ng {2003 July 22
34b0: 20 28 32 2e 38 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.5)} {.<li>
34c0: 4d 61 6b 65 20 4c 49 4d 49 54 20 77 6f 72 6b 20  Make LIMIT work 
34d0: 6f 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45  on a compound SE
34e0: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
34f0: 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4d 49 54 20 30  /li>.<li>LIMIT 0
3500: 20 6e 6f 77 20 73 68 6f 77 73 20 6e 6f 20 72 6f   now shows no ro
3510: 77 73 2e 20 20 55 73 65 20 4c 49 4d 49 54 20 2d  ws.  Use LIMIT -
3520: 31 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 6f 77  1 to see all row
3530: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72  s.</li>.<li>Corr
3540: 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 63 6f 6d  ectly handle com
3550: 70 61 72 69 73 6f 6e 73 20 62 65 74 77 65 65 6e  parisons between
3560: 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d   an INTEGER PRIM
3570: 41 52 59 20 4b 45 59 20 61 6e 64 0a 20 20 20 20  ARY KEY and.    
3580: 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  a floating point
3590: 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   number.</li>.<l
35a0: 69 3e 46 69 78 20 73 65 76 65 72 61 6c 20 69 6d  i>Fix several im
35b0: 70 6f 72 74 61 6e 74 20 62 75 67 73 20 69 6e 20  portant bugs in 
35c0: 74 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 61  the new ATTACH a
35d0: 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e  nd DETACH comman
35e0: 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64  ds.</li>.<li>Upd
35f0: 61 74 65 64 20 74 68 65 20 3c 61 20 68 72 65 66  ated the <a href
3600: 3d 22 6e 75 6c 6c 73 2e 68 74 6d 6c 22 3e 4e 55  ="nulls.html">NU
3610: 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75  LL-handling docu
3620: 6d 65 6e 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 20 0a  ment</a>.</li> .
3630: 3c 6c 69 3e 41 6c 6c 6f 77 20 4e 55 4c 4c 20 61  <li>Allow NULL a
3640: 72 67 75 6d 65 6e 74 73 20 69 6e 20 73 71 6c 69  rguments in sqli
3650: 74 65 5f 63 6f 6d 70 69 6c 65 28 29 20 61 6e 64  te_compile() and
3660: 20 73 71 6c 69 74 65 5f 73 74 65 70 28 29 2e 3c   sqlite_step().<
3670: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69  /li>.<li>Many mi
3680: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  nor bug fixes</l
3690: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
36a0: 20 4a 75 6e 65 20 32 39 20 28 32 2e 38 2e 34 29   June 29 (2.8.4)
36b0: 7d 20 7b 0a 3c 6c 69 3e 45 6e 68 61 6e 63 65 64  } {.<li>Enhanced
36c0: 20 74 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74   the "PRAGMA int
36d0: 65 67 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f  egrity_check" co
36e0: 6d 6d 61 6e 64 20 74 6f 20 76 65 72 69 66 79 20  mmand to verify 
36f0: 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  indices.</li>.<l
3700: 69 3e 41 64 64 65 64 20 61 75 74 68 6f 72 69 7a  i>Added authoriz
3710: 61 74 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f 72 20  ation hooks for 
3720: 74 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 61  the new ATTACH a
3730: 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e  nd DETACH comman
3740: 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e  ds.</li>.<li>Man
3750: 79 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  y documentation 
3760: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  updates</li>.<li
3770: 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20  >Many minor bug 
3780: 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  fixes</li>.}..ch
3790: 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65 20 34 20  ng {2003 June 4 
37a0: 28 32 2e 38 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.8.3)} {.<li>F
37b0: 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61  ix a problem tha
37c0: 74 20 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74  t will corrupt t
37d0: 68 65 20 69 6e 64 69 63 65 73 20 6f 6e 20 61 20  he indices on a 
37e0: 74 61 62 6c 65 20 69 66 20 79 6f 75 0a 20 20 20  table if you.   
37f0: 20 64 6f 20 61 6e 20 49 4e 53 45 52 54 20 4f 52   do an INSERT OR
3800: 20 52 45 50 4c 41 43 45 20 6f 72 20 61 6e 20 55   REPLACE or an U
3810: 50 44 41 54 45 20 4f 52 20 52 45 50 4c 41 43 45  PDATE OR REPLACE
3820: 20 6f 6e 20 61 20 74 61 62 6c 65 20 74 68 61 74   on a table that
3830: 0a 20 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 6e  .    contains an
3840: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59   INTEGER PRIMARY
3850: 20 4b 45 59 20 70 6c 75 73 20 6f 6e 65 20 6f 72   KEY plus one or
3860: 20 6d 6f 72 65 20 69 6e 64 69 63 65 73 2e 3c 2f   more indices.</
3870: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
3880: 67 20 69 6e 20 77 69 6e 64 6f 77 73 20 6c 6f 63  g in windows loc
3890: 6b 69 6e 67 20 63 6f 64 65 20 73 6f 20 74 68 61  king code so tha
38a0: 74 20 6c 6f 63 6b 73 20 77 6f 72 6b 20 63 6f 72  t locks work cor
38b0: 72 65 63 74 6c 79 0a 20 20 20 20 77 68 65 6e 20  rectly.    when 
38c0: 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 61  simultaneously a
38d0: 63 63 65 73 73 65 64 20 62 79 20 57 69 6e 39 35  ccessed by Win95
38e0: 20 61 6e 64 20 57 69 6e 4e 54 20 73 79 73 74 65   and WinNT syste
38f0: 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ms.</li>.<li>Add
3900: 20 74 68 65 20 61 62 69 6c 69 74 79 20 66 6f 72   the ability for
3910: 20 49 4e 53 45 52 54 20 61 6e 64 20 55 50 44 41   INSERT and UPDA
3920: 54 45 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f  TE statements to
3930: 20 72 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20   refer to the.  
3940: 20 20 22 72 6f 77 69 64 22 20 28 6f 72 20 22 5f    "rowid" (or "_
3950: 72 6f 77 69 64 5f 22 20 6f 72 20 22 6f 69 64 22  rowid_" or "oid"
3960: 29 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a  ) columns.</li>.
3970: 3c 6c 69 3e 4f 74 68 65 72 20 69 6d 70 6f 72 74  <li>Other import
3980: 61 6e 74 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  ant bug fixes</l
3990: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
39a0: 20 4d 61 79 20 31 37 20 28 32 2e 38 2e 32 29 7d   May 17 (2.8.2)}
39b0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f   {.<li>Fix a pro
39c0: 62 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63  blem that will c
39d0: 6f 72 72 75 70 74 20 74 68 65 20 64 61 74 61 62  orrupt the datab
39e0: 61 73 65 20 66 69 6c 65 20 69 66 20 79 6f 75 20  ase file if you 
39f0: 64 72 6f 70 20 61 0a 20 20 20 20 74 61 62 6c 65  drop a.    table
3a00: 20 66 72 6f 6d 20 74 68 65 20 6d 61 69 6e 20 64   from the main d
3a10: 61 74 61 62 61 73 65 20 74 68 61 74 20 68 61 73  atabase that has
3a20: 20 61 20 54 45 4d 50 20 69 6e 64 65 78 2e 3c 2f   a TEMP index.</
3a30: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
3a40: 33 20 4d 61 79 20 31 36 20 28 32 2e 38 2e 31 29  3 May 16 (2.8.1)
3a50: 7d 20 7b 0a 3c 6c 69 3e 52 65 61 63 74 69 76 61  } {.<li>Reactiva
3a60: 74 65 64 20 74 68 65 20 56 41 43 55 55 4d 20 63  ted the VACUUM c
3a70: 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72 65 63 6c  ommand that recl
3a80: 61 69 6d 73 20 75 6e 75 73 65 64 20 64 69 73 6b  aims unused disk
3a90: 20 73 70 61 63 65 20 69 6e 20 0a 20 20 20 20 61   space in .    a
3aa0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c   database file.<
3ab0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
3ac0: 68 65 20 41 54 54 41 43 48 20 61 6e 64 20 44 45  he ATTACH and DE
3ad0: 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73 20 74 6f  TACH commands to
3ae0: 20 61 6c 6c 6f 77 20 69 6e 74 65 72 61 63 74 69   allow interacti
3af0: 6e 67 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65  ng with multiple
3b00: 0a 20 20 20 20 64 61 74 61 62 61 73 65 20 66 69  .    database fi
3b10: 6c 65 73 20 61 74 20 74 68 65 20 73 61 6d 65 20  les at the same 
3b20: 74 69 6d 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  time.</li>.<li>A
3b30: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
3b40: 20 54 45 4d 50 20 74 72 69 67 67 65 72 73 20 61   TEMP triggers a
3b50: 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e  nd indices.</li>
3b60: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
3b70: 72 74 20 66 6f 72 20 69 6e 2d 6d 65 6d 6f 72 79  rt for in-memory
3b80: 20 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e   databases.</li>
3b90: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 74 68 65  .<li>Removed the
3ba0: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71   experimental sq
3bb0: 6c 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69  lite_open_aux_fi
3bc0: 6c 65 28 29 2e 20 20 49 74 73 20 66 75 6e 63 74  le().  Its funct
3bd0: 69 6f 6e 20 69 73 0a 20 20 20 20 73 75 62 73 75  ion is.    subsu
3be0: 6d 65 64 20 69 6e 20 74 68 65 20 6e 65 77 20 41  med in the new A
3bf0: 54 54 41 43 48 20 63 6f 6d 6d 61 6e 64 2e 3c 2f  TTACH command.</
3c00: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 63  li>.<li>The prec
3c10: 65 64 65 6e 63 65 20 6f 72 64 65 72 20 66 6f 72  edence order for
3c20: 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61   ON CONFLICT cla
3c30: 75 73 65 73 20 77 61 73 20 63 68 61 6e 67 65 64  uses was changed
3c40: 20 73 6f 20 74 68 61 74 0a 20 20 20 20 4f 4e 20   so that.    ON 
3c50: 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73  CONFLICT clauses
3c60: 20 6f 6e 20 42 45 47 49 4e 20 73 74 61 74 65 6d   on BEGIN statem
3c70: 65 6e 74 73 20 68 61 76 65 20 61 20 68 69 67 68  ents have a high
3c80: 65 72 20 70 72 65 63 65 64 65 6e 63 65 20 74 68  er precedence th
3c90: 61 6e 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49  an.    ON CONFLI
3ca0: 43 54 20 63 6c 61 75 73 65 73 20 6f 6e 20 63 6f  CT clauses on co
3cb0: 6e 73 74 72 61 69 6e 74 73 2e 0a 3c 6c 69 3e 4d  nstraints..<li>M
3cc0: 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20 66 69  any, many bug fi
3cd0: 78 65 73 20 61 6e 64 20 63 6f 6d 70 61 74 69 62  xes and compatib
3ce0: 69 6c 69 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e  ility enhancemen
3cf0: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
3d00: 20 7b 32 30 30 33 20 46 65 62 20 31 36 20 28 32   {2003 Feb 16 (2
3d10: 2e 38 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64  .8.0)} {.<li>Mod
3d20: 69 66 69 65 64 20 74 68 65 20 6a 6f 75 72 6e 61  ified the journa
3d30: 6c 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 74 6f  l file format to
3d40: 20 6d 61 6b 65 20 69 74 20 6d 6f 72 65 20 72 65   make it more re
3d50: 73 69 73 74 61 6e 74 20 74 6f 20 63 6f 72 72 75  sistant to corru
3d60: 70 74 69 6f 6e 0a 20 20 20 20 74 68 61 74 20 63  ption.    that c
3d70: 61 6e 20 6f 63 63 75 72 20 61 66 74 65 72 20 61  an occur after a
3d80: 6e 20 4f 53 20 63 72 61 73 68 20 6f 72 20 70 6f  n OS crash or po
3d90: 77 65 72 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69  wer failure.</li
3da0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 6e 65  >.<li>Added a ne
3db0: 77 20 43 2f 43 2b 2b 20 41 50 49 20 74 68 61 74  w C/C++ API that
3dc0: 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20 63 61   does not use ca
3dd0: 6c 6c 62 61 63 6b 20 66 6f 72 20 72 65 74 75 72  llback for retur
3de0: 6e 69 6e 67 20 64 61 74 61 2e 3c 2f 6c 69 3e 0a  ning data.</li>.
3df0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 61  }..chng {2003 Ja
3e00: 6e 20 32 35 20 28 32 2e 37 2e 36 29 7d 20 7b 0a  n 25 (2.7.6)} {.
3e10: 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20  <li>Performance 
3e20: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 20 20 54  improvements.  T
3e30: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f  he library is no
3e40: 77 20 6d 75 63 68 20 66 61 73 74 65 72 2e 3c 2f  w much faster.</
3e50: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
3e60: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 73 65 74 5f  e <b>sqlite_set_
3e70: 61 75 74 68 6f 72 69 7a 65 72 28 29 3c 2f 62 3e  authorizer()</b>
3e80: 20 41 50 49 2e 20 20 46 6f 72 6d 61 6c 20 64 6f   API.  Formal do
3e90: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73 0a  cumentation has.
3ea0: 20 20 20 20 6e 6f 74 20 62 65 65 6e 20 77 72 69      not been wri
3eb0: 74 74 65 6e 20 2d 20 73 65 65 20 74 68 65 20 73  tten - see the s
3ec0: 6f 75 72 63 65 20 63 6f 64 65 20 63 6f 6d 6d 65  ource code comme
3ed0: 6e 74 73 20 66 6f 72 20 69 6e 73 74 72 75 63 74  nts for instruct
3ee0: 69 6f 6e 73 20 6f 6e 0a 20 20 20 20 68 6f 77 20  ions on.    how 
3ef0: 74 6f 20 75 73 65 20 74 68 69 73 20 66 75 6e 63  to use this func
3f00: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  tion.</li>.<li>F
3f10: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
3f20: 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72 20 74 68  GLOB operator th
3f30: 61 74 20 77 61 73 20 70 72 65 76 65 6e 74 69 6e  at was preventin
3f40: 67 20 69 74 20 66 72 6f 6d 20 77 6f 72 6b 69 6e  g it from workin
3f50: 67 0a 20 20 20 20 77 69 74 68 20 75 70 70 65 72  g.    with upper
3f60: 2d 63 61 73 65 20 6c 65 74 74 65 72 73 2e 3c 2f  -case letters.</
3f70: 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20  li>.<li>Various 
3f80: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e  minor bug fixes.
3f90: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
3fa0: 30 30 32 20 44 65 63 20 32 37 20 28 32 2e 37 2e  002 Dec 27 (2.7.
3fb0: 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e  5)} {.<li>Fix an
3fc0: 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76   uninitialized v
3fd0: 61 72 69 61 62 6c 65 20 69 6e 20 70 61 67 65 72  ariable in pager
3fe0: 2e 63 20 77 68 69 63 68 20 63 6f 75 6c 64 20 28  .c which could (
3ff0: 77 69 74 68 20 61 20 70 72 6f 62 61 62 69 6c 69  with a probabili
4000: 74 79 0a 20 20 20 20 6f 66 20 61 62 6f 75 74 20  ty.    of about 
4010: 31 20 69 6e 20 34 20 62 69 6c 6c 69 6f 6e 29 20  1 in 4 billion) 
4020: 72 65 73 75 6c 74 20 69 6e 20 61 20 63 6f 72 72  result in a corr
4030: 75 70 74 65 64 20 64 61 74 61 62 61 73 65 2e 3c  upted database.<
4040: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
4050: 30 32 20 44 65 63 20 31 37 20 28 32 2e 37 2e 34  02 Dec 17 (2.7.4
4060: 29 7d 20 7b 0a 3c 6c 69 3e 44 61 74 61 62 61 73  )} {.<li>Databas
4070: 65 20 66 69 6c 65 73 20 63 61 6e 20 6e 6f 77 20  e files can now 
4080: 67 72 6f 77 20 74 6f 20 62 65 20 75 70 20 74 6f  grow to be up to
4090: 20 32 5e 34 31 20 62 79 74 65 73 2e 20 20 54 68   2^41 bytes.  Th
40a0: 65 20 6f 6c 64 20 6c 69 6d 69 74 0a 20 20 20 20  e old limit.    
40b0: 77 61 73 20 32 5e 33 31 20 62 79 74 65 73 2e 3c  was 2^31 bytes.<
40c0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74  /li>.<li>The opt
40d0: 69 6d 69 7a 65 72 20 77 69 6c 6c 20 6e 6f 77 20  imizer will now 
40e0: 73 63 61 6e 20 74 61 62 6c 65 73 20 69 6e 20 74  scan tables in t
40f0: 68 65 20 72 65 76 65 72 73 65 20 69 66 20 64 6f  he reverse if do
4100: 69 6e 67 20 73 6f 20 77 69 6c 6c 0a 20 20 20 20  ing so will.    
4110: 73 61 74 69 73 66 79 20 61 6e 20 4f 52 44 45 52  satisfy an ORDER
4120: 20 42 59 20 2e 2e 2e 20 44 45 53 43 20 63 6c 61   BY ... DESC cla
4130: 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  use.</li>.<li>Th
4140: 65 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65 20  e full pathname 
4150: 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65 20  of the database 
4160: 66 69 6c 65 20 69 73 20 6e 6f 77 20 72 65 6d 65  file is now reme
4170: 6d 62 65 72 65 64 20 65 76 65 6e 20 69 66 0a 20  mbered even if. 
4180: 20 20 20 61 20 72 65 6c 61 74 69 76 65 20 70 61     a relative pa
4190: 74 68 20 69 73 20 70 61 73 73 65 64 20 69 6e 74  th is passed int
41a0: 6f 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 2e  o sqlite_open().
41b0: 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 0a 20    This allows . 
41c0: 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 74     the library t
41d0: 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 70 65 72 61  o continue opera
41e0: 74 69 6e 67 20 63 6f 72 72 65 63 74 6c 79 20 61  ting correctly a
41f0: 66 74 65 72 20 61 20 63 68 64 69 72 28 29 2e 3c  fter a chdir().<
4200: 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69  /li>.<li>Speed i
4210: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74  mprovements in t
4220: 68 65 20 56 44 42 45 2e 3c 2f 6c 69 3e 0a 3c 6c  he VDBE.</li>.<l
4230: 69 3e 4c 6f 74 73 20 6f 66 20 6c 69 74 74 6c 65  i>Lots of little
4240: 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e   bug fixes.</li>
4250: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4f  .}..chng {2002 O
4260: 63 74 20 33 30 20 28 32 2e 37 2e 33 29 7d 20 7b  ct 30 (2.7.3)} {
4270: 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 63 6f 6d  .<li>Various com
4280: 70 69 6c 65 72 20 63 6f 6d 70 61 74 69 62 69 6c  piler compatibil
4290: 69 74 79 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  ity fixes.</li>.
42a0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
42b0: 20 74 68 65 20 22 65 78 70 72 20 49 4e 20 28 29   the "expr IN ()
42c0: 22 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e  " operator.</li>
42d0: 0a 3c 6c 69 3e 41 63 63 65 70 74 20 63 6f 6c 75  .<li>Accept colu
42e0: 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 70 61 72 65  mn names in pare
42f0: 6e 74 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ntheses.</li>.<l
4300: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
4310: 77 69 74 68 20 73 74 72 69 6e 67 20 6d 65 6d 6f  with string memo
4320: 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 20 69 6e  ry management in
4330: 20 74 68 65 20 56 44 42 45 3c 2f 6c 69 3e 0a 3c   the VDBE</li>.<
4340: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
4350: 74 68 65 20 22 74 61 62 6c 65 5f 69 6e 66 6f 22  the "table_info"
4360: 20 70 72 61 67 6d 61 22 3c 2f 6c 69 3e 0a 3c 6c   pragma"</li>.<l
4370: 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73 71 6c  i>Export the sql
4380: 69 74 65 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70  ite_function_typ
4390: 65 28 29 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  e() API function
43a0: 20 69 6e 20 74 68 65 20 57 69 6e 64 6f 77 73 20   in the Windows 
43b0: 44 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  DLL</li>.<li>Fix
43c0: 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f   locking behavio
43d0: 72 20 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 3c  r under windows<
43e0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
43f0: 75 67 20 69 6e 20 4c 45 46 54 20 4f 55 54 45 52  ug in LEFT OUTER
4400: 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68   JOIN</li>.}..ch
4410: 6e 67 20 7b 32 30 30 32 20 53 65 70 20 32 35 20  ng {2002 Sep 25 
4420: 28 32 2e 37 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 50  (2.7.2)} {.<li>P
4430: 72 65 76 65 6e 74 20 6a 6f 75 72 6e 61 6c 20 66  revent journal f
4440: 69 6c 65 20 6f 76 65 72 66 6c 6f 77 73 20 6f 6e  ile overflows on
4450: 20 68 75 67 65 20 74 72 61 6e 73 61 63 74 69 6f   huge transactio
4460: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ns.</li>.<li>Fix
4470: 20 61 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 74   a memory leak t
4480: 68 61 74 20 6f 63 63 75 72 72 65 64 20 77 68 65  hat occurred whe
4490: 6e 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 20  n sqlite_open() 
44a0: 66 61 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  failed.</li>.<li
44b0: 3e 48 6f 6e 6f 72 20 74 68 65 20 4f 52 44 45 52  >Honor the ORDER
44c0: 20 42 59 20 61 6e 64 20 4c 49 4d 49 54 20 63 6c   BY and LIMIT cl
44d0: 61 75 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54  ause of a SELECT
44e0: 20 65 76 65 6e 20 69 66 20 74 68 65 0a 20 20 20   even if the.   
44f0: 20 72 65 73 75 6c 74 20 73 65 74 20 69 73 20 75   result set is u
4500: 73 65 64 20 66 6f 72 20 61 6e 20 49 4e 53 45 52  sed for an INSER
4510: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e  T.</li>.<li>Do n
4520: 6f 74 20 70 75 74 20 77 72 69 74 65 20 6c 6f 63  ot put write loc
4530: 6b 73 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 75  ks on the file u
4540: 73 65 64 20 74 6f 20 68 6f 6c 64 20 54 45 4d 50  sed to hold TEMP
4550: 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c   tables.</li>.<l
4560: 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65 6e 74  i>Added document
4570: 61 74 69 6f 6e 20 6f 6e 20 53 45 4c 45 43 54 20  ation on SELECT 
4580: 44 49 53 54 49 4e 43 54 20 61 6e 64 20 6f 6e 20  DISTINCT and on 
4590: 68 6f 77 20 53 51 4c 69 74 65 20 68 61 6e 64 6c  how SQLite handl
45a0: 65 73 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c  es NULLs.</li>.<
45b0: 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d  li>Fix a problem
45c0: 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e   that was causin
45d0: 67 20 70 6f 6f 72 20 70 65 72 66 6f 72 6d 61 6e  g poor performan
45e0: 63 65 20 77 68 65 6e 20 6d 61 6e 79 20 74 68 6f  ce when many tho
45f0: 75 73 61 6e 64 73 0a 20 20 20 20 6f 66 20 53 51  usands.    of SQ
4600: 4c 20 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72  L statements wer
4610: 65 20 65 78 65 63 75 74 65 64 20 62 79 20 61 20  e executed by a 
4620: 73 69 6e 67 6c 65 20 73 71 6c 69 74 65 5f 65 78  single sqlite_ex
4630: 65 63 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69 3e 0a  ec() call.</li>.
4640: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75  }..chng {2002 Au
4650: 67 20 33 31 20 28 32 2e 37 2e 31 29 7d 20 7b 0a  g 31 (2.7.1)} {.
4660: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
4670: 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 6c 6f   the ORDER BY lo
4680: 67 69 63 20 74 68 61 74 20 77 61 73 20 69 6e 74  gic that was int
4690: 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73 69  roduced in versi
46a0: 6f 6e 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a 3c 6c  on 2.7.0</li>.<l
46b0: 69 3e 43 2d 73 74 79 6c 65 20 63 6f 6d 6d 65 6e  i>C-style commen
46c0: 74 73 20 61 72 65 20 6e 6f 77 20 61 63 63 65 70  ts are now accep
46d0: 74 65 64 20 62 79 20 74 68 65 20 74 6f 6b 65 6e  ted by the token
46e0: 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  izer.</li>.<li>I
46f0: 4e 53 45 52 54 20 72 75 6e 73 20 61 20 6c 69 74  NSERT runs a lit
4700: 74 6c 65 20 66 61 73 74 65 72 20 77 68 65 6e 20  tle faster when 
4710: 74 68 65 20 73 6f 75 72 63 65 20 69 73 20 61 20  the source is a 
4720: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
4730: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
4740: 32 30 30 32 20 41 75 67 20 32 35 20 28 32 2e 37  2002 Aug 25 (2.7
4750: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20  .0)} {.<li>Make 
4760: 61 20 64 69 73 74 69 6e 63 74 69 6f 6e 20 62 65  a distinction be
4770: 74 77 65 65 6e 20 6e 75 6d 65 72 69 63 20 61 6e  tween numeric an
4780: 64 20 74 65 78 74 20 76 61 6c 75 65 73 20 77 68  d text values wh
4790: 65 6e 20 73 6f 72 74 69 6e 67 2e 0a 20 20 20 20  en sorting..    
47a0: 54 65 78 74 20 76 61 6c 75 65 73 20 73 6f 72 74  Text values sort
47b0: 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 6d 65   according to me
47c0: 6d 63 6d 70 28 29 2e 20 20 4e 75 6d 65 72 69 63  mcmp().  Numeric
47d0: 20 76 61 6c 75 65 73 20 73 6f 72 74 20 69 6e 0a   values sort in.
47e0: 20 20 20 20 6e 75 6d 65 72 69 63 20 6f 72 64 65      numeric orde
47f0: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  r.</li>.<li>Allo
4800: 77 20 6d 75 6c 74 69 70 6c 65 20 73 69 6d 75 6c  w multiple simul
4810: 74 61 6e 65 6f 75 73 20 72 65 61 64 65 72 73 20  taneous readers 
4820: 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 20 62 79  under windows by
4830: 20 73 69 6d 75 6c 61 74 69 6e 67 0a 20 20 20 20   simulating.    
4840: 74 68 65 20 72 65 61 64 65 72 2f 77 72 69 74 65  the reader/write
4850: 72 73 20 6c 6f 63 6b 73 20 74 68 61 74 20 61 72  rs locks that ar
4860: 65 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 57  e missing from W
4870: 69 6e 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c 69 3e  in95/98/ME.</li>
4880: 0a 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20 69 73  .<li>An error is
4890: 20 6e 6f 77 20 72 65 74 75 72 6e 65 64 20 77 68   now returned wh
48a0: 65 6e 20 74 72 79 69 6e 67 20 74 6f 20 73 74 61  en trying to sta
48b0: 72 74 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e  rt a transaction
48c0: 20 69 66 0a 20 20 20 20 61 6e 6f 74 68 65 72 20   if.    another 
48d0: 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 61  transaction is a
48e0: 6c 72 65 61 64 79 20 61 63 74 69 76 65 2e 3c 2f  lready active.</
48f0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4900: 32 20 41 75 67 20 31 32 20 28 32 2e 36 2e 33 29  2 Aug 12 (2.6.3)
4910: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  } {.<li>Add the 
4920: 61 62 69 6c 69 74 79 20 74 6f 20 72 65 61 64 20  ability to read 
4930: 62 6f 74 68 20 6c 69 74 74 6c 65 2d 65 6e 64 69  both little-endi
4940: 61 6e 20 61 6e 64 20 62 69 67 2d 65 6e 64 69 61  an and big-endia
4950: 6e 20 64 61 74 61 62 61 73 65 73 2e 0a 20 20 20  n databases..   
4960: 20 53 6f 20 64 61 74 61 62 61 73 65 20 63 72 65   So database cre
4970: 61 74 65 64 20 75 6e 64 65 72 20 53 75 6e 4f 53  ated under SunOS
4980: 20 6f 72 20 4d 61 63 4f 53 58 20 63 61 6e 20 62   or MacOSX can b
4990: 65 20 72 65 61 64 20 61 6e 64 20 77 72 69 74 74  e read and writt
49a0: 65 6e 0a 20 20 20 20 75 6e 64 65 72 20 4c 69 6e  en.    under Lin
49b0: 75 78 20 6f 72 20 57 69 6e 64 6f 77 73 20 61 6e  ux or Windows an
49c0: 64 20 76 69 63 65 20 76 65 72 73 61 2e 3c 2f 6c  d vice versa.</l
49d0: 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 74  i>.<li>Convert t
49e0: 6f 20 74 68 65 20 6e 65 77 20 77 65 62 73 69 74  o the new websit
49f0: 65 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  e: http://www.sq
4a00: 6c 69 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e 0a 3c  lite.org/</li>.<
4a10: 6c 69 3e 41 6c 6c 6f 77 20 74 72 61 6e 73 61 63  li>Allow transac
4a20: 74 69 6f 6e 73 20 74 6f 20 73 70 61 6e 20 4c 69  tions to span Li
4a30: 6e 75 78 20 54 68 72 65 61 64 73 3c 2f 6c 69 3e  nux Threads</li>
4a40: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 20 69 6e 20  .<li>Bug fix in 
4a50: 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f  the processing o
4a60: 66 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 63  f the ORDER BY c
4a70: 6c 61 75 73 65 20 66 6f 72 20 47 52 4f 55 50 20  lause for GROUP 
4a80: 42 59 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a  BY queries</li>.
4a90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
4aa0: 79 20 33 30 20 28 32 2e 36 2e 32 29 7d 20 7b 0a  y 30 (2.6.2)} {.
4ab0: 3c 6c 69 3e 54 65 78 74 20 66 69 6c 65 73 20 72  <li>Text files r
4ac0: 65 61 64 20 62 79 20 74 68 65 20 43 4f 50 59 20  ead by the COPY 
4ad0: 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f 77 20  command can now 
4ae0: 68 61 76 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e  have line termin
4af0: 61 74 6f 72 73 0a 20 20 20 20 6f 66 20 4c 46 2c  ators.    of LF,
4b00: 20 20 43 52 4c 46 2c 20 6f 72 20 43 52 2e 3c 2f    CRLF, or CR.</
4b10: 6c 69 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45 5f 42  li>.<li>SQLITE_B
4b20: 55 53 59 20 69 73 20 68 61 6e 64 6c 65 64 20 63  USY is handled c
4b30: 6f 72 72 65 63 74 6c 79 20 69 66 20 65 6e 63 6f  orrectly if enco
4b40: 75 6e 74 65 72 65 64 20 64 75 72 69 6e 67 20 64  untered during d
4b50: 61 74 61 62 61 73 65 0a 20 20 20 20 69 6e 69 74  atabase.    init
4b60: 69 61 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  ialization.</li>
4b70: 0a 3c 6c 69 3e 46 69 78 20 74 6f 20 55 50 44 41  .<li>Fix to UPDA
4b80: 54 45 20 74 72 69 67 67 65 72 73 20 6f 6e 20 54  TE triggers on T
4b90: 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e  EMP tables.</li>
4ba0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
4bb0: 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e  on updates.</li>
4bc0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
4bd0: 6c 79 20 31 39 20 28 32 2e 36 2e 31 29 7d 20 7b  ly 19 (2.6.1)} {
4be0: 0a 3c 6c 69 3e 49 6e 63 6c 75 64 65 20 61 20 73  .<li>Include a s
4bf0: 74 61 74 69 63 20 73 74 72 69 6e 67 20 69 6e 20  tatic string in 
4c00: 74 68 65 20 6c 69 62 72 61 72 79 20 74 68 61 74  the library that
4c10: 20 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65   responds to the
4c20: 20 52 43 53 0a 20 20 20 20 22 69 64 65 6e 74 22   RCS.    "ident"
4c30: 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 77 68 69   command and whi
4c40: 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20  ch contains the 
4c50: 6c 69 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20  library version 
4c60: 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  number.</li>.<li
4c70: 3e 46 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f  >Fix an assertio
4c80: 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f  n failure that o
4c90: 63 63 75 72 72 65 64 20 77 68 65 6e 20 64 65 6c  ccurred when del
4ca0: 65 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 6f  eting all rows o
4cb0: 66 0a 20 20 20 20 61 20 74 61 62 6c 65 20 77 69  f.    a table wi
4cc0: 74 68 20 74 68 65 20 22 63 6f 75 6e 74 5f 63 68  th the "count_ch
4cd0: 61 6e 67 65 73 22 20 70 72 61 67 6d 61 20 74 75  anges" pragma tu
4ce0: 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  rned on.</li>.<l
4cf0: 69 3e 42 65 74 74 65 72 20 65 72 72 6f 72 20 72  i>Better error r
4d00: 65 70 6f 72 74 69 6e 67 20 77 68 65 6e 20 70 72  eporting when pr
4d10: 6f 62 6c 65 6d 73 20 6f 63 63 75 72 20 64 75 72  oblems occur dur
4d20: 69 6e 67 20 74 68 65 20 61 75 74 6f 6d 61 74 69  ing the automati
4d30: 63 0a 20 20 20 20 32 2e 35 2e 36 20 74 6f 20 32  c.    2.5.6 to 2
4d40: 2e 36 2e 30 20 64 61 74 61 62 61 73 65 20 66 6f  .6.0 database fo
4d50: 72 6d 61 74 20 75 70 67 72 61 64 65 2e 3c 2f 6c  rmat upgrade.</l
4d60: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
4d70: 20 4a 6c 79 20 31 37 20 28 32 2e 36 2e 30 29 7d   Jly 17 (2.6.0)}
4d80: 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68   {.<li>Change th
4d90: 65 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69  e format of indi
4da0: 63 65 73 20 74 6f 20 63 6f 72 72 65 63 74 20 61  ces to correct a
4db0: 20 64 65 73 69 67 6e 20 66 6c 61 77 20 74 68 65   design flaw the
4dc0: 20 6f 72 69 67 69 6e 61 74 65 64 0a 20 20 20 20   originated.    
4dd0: 77 69 74 68 20 76 65 72 73 69 6f 6e 20 32 2e 31  with version 2.1
4de0: 2e 30 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72  .0.  <font color
4df0: 3d 22 72 65 64 22 3e 2a 2a 2a 20 54 68 69 73 20  ="red">*** This 
4e00: 69 73 20 61 6e 20 69 6e 63 6f 6d 70 61 74 69 62  is an incompatib
4e10: 6c 65 0a 20 20 20 20 66 69 6c 65 20 66 6f 72 6d  le.    file form
4e20: 61 74 20 63 68 61 6e 67 65 20 2a 2a 2a 3c 2f 66  at change ***</f
4e30: 6f 6e 74 3e 20 20 57 68 65 6e 20 76 65 72 73 69  ont>  When versi
4e40: 6f 6e 20 32 2e 36 2e 30 20 6f 72 20 6c 61 74 65  on 2.6.0 or late
4e50: 72 20 6f 66 20 74 68 65 0a 20 20 20 20 6c 69 62  r of the.    lib
4e60: 72 61 72 79 20 61 74 74 65 6d 70 74 73 20 74 6f  rary attempts to
4e70: 20 6f 70 65 6e 20 61 20 64 61 74 61 62 61 73 65   open a database
4e80: 20 66 69 6c 65 20 63 72 65 61 74 65 64 20 62 79   file created by
4e90: 20 76 65 72 73 69 6f 6e 20 32 2e 35 2e 36 20 6f   version 2.5.6 o
4ea0: 72 0a 20 20 20 20 65 61 72 6c 69 65 72 2c 20 69  r.    earlier, i
4eb0: 74 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63  t will automatic
4ec0: 61 6c 6c 79 20 61 6e 64 20 69 72 72 65 76 65 72  ally and irrever
4ed0: 73 69 62 6c 79 20 63 6f 6e 76 65 72 74 20 74 68  sibly convert th
4ee0: 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e 0a 20  e file format.. 
4ef0: 20 20 20 3c 62 3e 4d 61 6b 65 20 62 61 63 6b 75     <b>Make backu
4f00: 70 20 63 6f 70 69 65 73 20 6f 66 20 6f 6c 64 65  p copies of olde
4f10: 72 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73  r database files
4f20: 20 62 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20   before opening 
4f30: 74 68 65 6d 20 77 69 74 68 0a 20 20 20 20 76 65  them with.    ve
4f40: 72 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 66 20 74  rsion 2.6.0 of t
4f50: 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f 62 3e 0a  he library.</b>.
4f60: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
4f70: 67 20 7b 32 30 30 32 20 4a 6c 79 20 37 20 28 32  g {2002 Jly 7 (2
4f80: 2e 35 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .5.6)} {.<li>Fix
4f90: 20 6d 6f 72 65 20 70 72 6f 62 6c 65 6d 73 20 77   more problems w
4fa0: 69 74 68 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 45  ith rollback.  E
4fb0: 6e 68 61 6e 63 65 20 74 68 65 20 74 65 73 74 20  nhance the test 
4fc0: 73 75 69 74 65 20 74 6f 20 65 78 65 72 63 69 73  suite to exercis
4fd0: 65 0a 20 20 20 20 74 68 65 20 72 6f 6c 6c 62 61  e.    the rollba
4fe0: 63 6b 20 6c 6f 67 69 63 20 65 78 74 65 6e 73 69  ck logic extensi
4ff0: 76 65 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f  vely in order to
5000: 20 70 72 65 76 65 6e 74 20 61 6e 79 20 66 75 74   prevent any fut
5010: 75 72 65 20 70 72 6f 62 6c 65 6d 73 2e 0a 20 20  ure problems..  
5020: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
5030: 7b 32 30 30 32 20 4a 6c 79 20 36 20 28 32 2e 35  {2002 Jly 6 (2.5
5040: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .5)} {.<li>Fix a
5050: 20 62 75 67 20 77 68 69 63 68 20 63 6f 75 6c 64   bug which could
5060: 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20   cause database 
5070: 63 6f 72 72 75 70 74 69 6f 6e 20 64 75 72 69 6e  corruption durin
5080: 67 20 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a 20 20  g a rollback..  
5090: 20 20 54 68 69 73 20 62 75 67 73 20 77 61 73 20    This bugs was 
50a0: 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65  introduced in ve
50b0: 72 73 69 6f 6e 20 32 2e 34 2e 30 20 62 79 20 74  rsion 2.4.0 by t
50c0: 68 65 20 66 72 65 65 6c 69 73 74 0a 20 20 20 20  he freelist.    
50d0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 66 20  optimization of 
50e0: 63 68 65 63 6b 69 6e 67 20 5b 34 31 30 5d 2e 3c  checking [410].<
50f0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
5100: 75 67 20 69 6e 20 61 67 67 72 65 67 61 74 65 20  ug in aggregate 
5110: 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 56 49  functions for VI
5120: 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  EWs.</li>.<li>Ot
5130: 68 65 72 20 6d 69 6e 6f 72 20 63 68 61 6e 67 65  her minor change
5140: 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e  s and enhancemen
5150: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
5160: 20 7b 32 30 30 32 20 4a 6c 79 20 31 20 28 32 2e   {2002 Jly 1 (2.
5170: 35 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65  5.4)} {.<li>Make
5180: 20 74 68 65 20 22 41 53 22 20 6b 65 79 77 6f 72   the "AS" keywor
5190: 64 20 6f 70 74 69 6f 6e 61 6c 20 61 67 61 69 6e  d optional again
51a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64  .</li>.<li>The d
51b0: 61 74 61 74 79 70 65 20 6f 66 20 63 6f 6c 75 6d  atatype of colum
51c0: 6e 73 20 6e 6f 77 20 61 70 70 65 61 72 20 69 6e  ns now appear in
51d0: 20 74 68 65 20 34 74 68 20 61 72 67 75 6d 65 6e   the 4th argumen
51e0: 74 20 74 6f 20 74 68 65 0a 20 20 20 20 63 61 6c  t to the.    cal
51f0: 6c 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lback.</li>.<li>
5200: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
5210: 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c  ite_open_aux_fil
5220: 65 28 29 3c 2f 62 3e 20 41 50 49 2c 20 74 68 6f  e()</b> API, tho
5230: 75 67 68 20 69 74 20 69 73 20 73 74 69 6c 6c 0a  ugh it is still.
5240: 20 20 20 20 6d 6f 73 74 6c 79 20 75 6e 64 6f 63      mostly undoc
5250: 75 6d 65 6e 74 65 64 20 61 6e 64 20 75 6e 74 65  umented and unte
5260: 73 74 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  sted.</li>.<li>A
5270: 64 64 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 20  dded additional 
5280: 74 65 73 74 20 63 61 73 65 73 20 61 6e 64 20 66  test cases and f
5290: 69 78 65 64 20 61 20 66 65 77 20 62 75 67 73 20  ixed a few bugs 
52a0: 74 68 61 74 20 74 68 6f 73 65 0a 20 20 20 20 74  that those.    t
52b0: 65 73 74 20 63 61 73 65 73 20 66 6f 75 6e 64 2e  est cases found.
52c0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
52d0: 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e  002 Jun 24 (2.5.
52e0: 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  3)} {.<li>Bug fi
52f0: 78 3a 20 20 44 61 74 61 62 61 73 65 20 63 6f 72  x:  Database cor
5300: 72 75 70 74 69 6f 6e 20 63 61 6e 20 6f 63 63 75  ruption can occu
5310: 72 20 64 75 65 20 74 6f 20 74 68 65 20 6f 70 74  r due to the opt
5320: 69 6d 69 7a 61 74 69 6f 6e 0a 20 20 20 20 74 68  imization.    th
5330: 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65  at was introduce
5340: 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34  d in version 2.4
5350: 2e 30 20 28 63 68 65 63 6b 2d 69 6e 20 5b 34 31  .0 (check-in [41
5360: 30 5d 29 2e 20 20 54 68 65 20 70 72 6f 62 6c 65  0]).  The proble
5370: 6d 0a 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 77  m.    should now
5380: 20 62 65 20 66 69 78 65 64 2e 20 20 54 68 65 20   be fixed.  The 
5390: 75 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 73 20  use of versions 
53a0: 32 2e 34 2e 30 20 74 68 72 6f 75 67 68 20 32 2e  2.4.0 through 2.
53b0: 35 2e 32 20 69 73 0a 20 20 20 20 6e 6f 74 20 72  5.2 is.    not r
53c0: 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c 69 3e  ecommended.</li>
53d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
53e0: 75 6e 20 32 34 20 28 32 2e 35 2e 32 29 7d 20 7b  un 24 (2.5.2)} {
53f0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e  .<li>Added the n
5400: 65 77 20 3c 62 3e 53 51 4c 49 54 45 5f 54 45 4d  ew <b>SQLITE_TEM
5410: 50 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 74 61 62  P_MASTER</b> tab
5420: 6c 65 20 77 68 69 63 68 20 72 65 63 6f 72 64 73  le which records
5430: 20 74 68 65 20 73 63 68 65 6d 61 0a 20 20 20 20   the schema.    
5440: 66 6f 72 20 74 65 6d 70 6f 72 61 72 79 20 74 61  for temporary ta
5450: 62 6c 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65  bles in the same
5460: 20 77 61 79 20 74 68 61 74 20 3c 62 3e 53 51 4c   way that <b>SQL
5470: 49 54 45 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 64  ITE_MASTER</b> d
5480: 6f 65 73 20 66 6f 72 0a 20 20 20 20 70 65 72 73  oes for.    pers
5490: 69 73 74 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f  istent tables.</
54a0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 6e  li>.<li>Added an
54b0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 74 6f   optimization to
54c0: 20 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69 3e 0a   UNION ALL</li>.
54d0: 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67 20  <li>Fixed a bug 
54e0: 69 6e 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e  in the processin
54f0: 67 20 6f 66 20 4c 45 46 54 20 4f 55 54 45 52 20  g of LEFT OUTER 
5500: 4a 4f 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  JOIN</li>.<li>Th
5510: 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6e  e LIMIT clause n
5520: 6f 77 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73  ow works on subs
5530: 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  elects</li>.<li>
5540: 4f 52 44 45 52 20 42 59 20 77 6f 72 6b 73 20 6f  ORDER BY works o
5550: 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69  n subselects</li
5560: 3e 0a 3c 6c 69 3e 54 68 65 72 65 20 69 73 20 61  >.<li>There is a
5570: 20 6e 65 77 20 54 79 70 65 4f 66 28 29 20 66 75   new TypeOf() fu
5580: 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 64  nction used to d
5590: 65 74 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 65  etermine if an e
55a0: 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 69 73  xpression.    is
55b0: 20 6e 75 6d 65 72 69 63 20 6f 72 20 74 65 78 74   numeric or text
55c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 69  .</li>.<li>Autoi
55d0: 6e 63 72 65 6d 65 6e 74 20 6e 6f 77 20 77 6f 72  ncrement now wor
55e0: 6b 73 20 66 6f 72 20 49 4e 53 45 52 54 20 66 72  ks for INSERT fr
55f0: 6f 6d 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69  om a SELECT.</li
5600: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
5610: 4a 75 6e 20 31 39 20 28 32 2e 35 2e 31 29 7d 20  Jun 19 (2.5.1)} 
5620: 7b 0a 3c 6c 69 3e 54 68 65 20 71 75 65 72 79 20  {.<li>The query 
5630: 6f 70 74 69 6d 69 7a 65 72 20 6e 6f 77 20 61 74  optimizer now at
5640: 74 65 6d 70 74 73 20 74 6f 20 69 6d 70 6c 65 6d  tempts to implem
5650: 65 6e 74 20 74 68 65 20 4f 52 44 45 52 20 42 59  ent the ORDER BY
5660: 20 63 6c 61 75 73 65 0a 20 20 20 20 75 73 69 6e   clause.    usin
5670: 67 20 61 6e 20 69 6e 64 65 78 2e 20 20 53 6f 72  g an index.  Sor
5680: 74 69 6e 67 20 69 73 20 73 74 69 6c 6c 20 75 73  ting is still us
5690: 65 64 20 69 66 20 6e 6f 74 20 73 75 69 74 61 62  ed if not suitab
56a0: 6c 65 20 69 6e 64 65 78 20 69 73 0a 20 20 20 20  le index is.    
56b0: 61 76 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  available.</li>.
56c0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75  }..chng {2002 Ju
56d0: 6e 20 31 37 20 28 32 2e 35 2e 30 29 7d 20 7b 0a  n 17 (2.5.0)} {.
56e0: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
56f0: 74 20 66 6f 72 20 72 6f 77 20 74 72 69 67 67 65  t for row trigge
5700: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  rs.</li>.<li>Add
5710: 65 64 20 53 51 4c 2d 39 32 20 63 6f 6d 70 6c 69  ed SQL-92 compli
5720: 61 6e 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  ant handling of 
5730: 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  NULLs.</li>.<li>
5740: 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  Add support for 
5750: 74 68 65 20 66 75 6c 6c 20 53 51 4c 2d 39 32 20  the full SQL-92 
5760: 6a 6f 69 6e 20 73 79 6e 74 61 78 20 61 6e 64 20  join syntax and 
5770: 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73  LEFT OUTER JOINs
5780: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75 62 6c  .</li>.<li>Doubl
5790: 65 2d 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73  e-quoted strings
57a0: 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20   interpreted as 
57b0: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e 6f 74  column names not
57c0: 20 74 65 78 74 20 6c 69 74 65 72 61 6c 73 2e 3c   text literals.<
57d0: 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73 65 20 28  /li>.<li>Parse (
57e0: 62 75 74 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65  but do not imple
57f0: 6d 65 6e 74 29 20 66 6f 72 65 69 67 6e 20 6b 65  ment) foreign ke
5800: 79 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72  ys.</li>.<li>Per
5810: 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65  formance improve
5820: 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 70 61 72  ments in the par
5830: 73 65 72 2c 20 70 61 67 65 72 2c 20 61 6e 64 20  ser, pager, and 
5840: 57 48 45 52 45 20 63 6c 61 75 73 65 20 63 6f 64  WHERE clause cod
5850: 65 0a 20 20 20 20 67 65 6e 65 72 61 74 6f 72 2e  e.    generator.
5860: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74  </li>.<li>Make t
5870: 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20  he LIMIT clause 
5880: 77 6f 72 6b 20 6f 6e 20 73 75 62 71 75 65 72 69  work on subqueri
5890: 65 73 2e 20 20 28 4f 52 44 45 52 20 42 59 20 73  es.  (ORDER BY s
58a0: 74 69 6c 6c 20 64 6f 65 73 20 6e 6f 74 0a 20 20  till does not.  
58b0: 20 20 77 6f 72 6b 2c 20 74 68 6f 75 67 68 2e 29    work, though.)
58c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
58d0: 74 68 65 20 22 25 51 22 20 65 78 70 61 6e 73 69  the "%Q" expansi
58e0: 6f 6e 20 74 6f 20 73 71 6c 69 74 65 5f 2a 5f 70  on to sqlite_*_p
58f0: 72 69 6e 74 66 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c  rintf().</li>.<l
5900: 69 3e 42 75 67 20 66 69 78 65 73 20 74 6f 6f 20  i>Bug fixes too 
5910: 6e 75 6d 65 72 6f 75 73 20 74 6f 20 6d 65 6e 74  numerous to ment
5920: 69 6f 6e 20 28 73 65 65 20 74 68 65 20 63 68 61  ion (see the cha
5930: 6e 67 65 20 6c 6f 67 29 2e 3c 2f 6c 69 3e 0a 7d  nge log).</li>.}
5940: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79  ..chng {2002 May
5950: 20 30 39 20 28 32 2e 34 2e 31 32 29 7d 20 7b 0a   09 (2.4.12)} {.
5960: 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 67 69 63 20  <li>Added logic 
5970: 74 6f 20 64 65 74 65 63 74 20 77 68 65 6e 20 74  to detect when t
5980: 68 65 20 6c 69 62 72 61 72 79 20 41 50 49 20 72  he library API r
5990: 6f 75 74 69 6e 65 73 20 61 72 65 20 63 61 6c 6c  outines are call
59a0: 65 64 20 6f 75 74 0a 20 20 20 20 6f 66 20 73 65  ed out.    of se
59b0: 71 75 65 6e 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  quence.</li>.}..
59c0: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30  chng {2002 May 0
59d0: 38 20 28 32 2e 34 2e 31 31 29 7d 20 7b 0a 3c 6c  8 (2.4.11)} {.<l
59e0: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6c 75 6d  i>Bug fix: Colum
59f0: 6e 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 72  n names in the r
5a00: 65 73 75 6c 74 20 73 65 74 20 77 65 72 65 20 6e  esult set were n
5a10: 6f 74 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74  ot being generat
5a20: 65 64 0a 20 20 20 20 63 6f 72 72 65 63 74 6c 79  ed.    correctly
5a30: 20 66 6f 72 20 73 6f 6d 65 20 28 72 61 74 68 65   for some (rathe
5a40: 72 20 63 6f 6d 70 6c 65 78 29 20 56 49 45 57 73  r complex) VIEWs
5a50: 2e 20 20 54 68 69 73 20 63 6f 75 6c 64 20 63 61  .  This could ca
5a60: 75 73 65 20 61 0a 20 20 20 20 73 65 67 66 61 75  use a.    segfau
5a70: 6c 74 20 75 6e 64 65 72 20 63 65 72 74 61 69 6e  lt under certain
5a80: 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 2e 3c   circumstances.<
5a90: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
5aa0: 30 32 20 4d 61 79 20 30 32 20 28 32 2e 34 2e 31  02 May 02 (2.4.1
5ab0: 30 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  0)} {.<li>Bug fi
5ac0: 78 3a 20 47 65 6e 65 72 61 74 65 20 63 6f 72 72  x: Generate corr
5ad0: 65 63 74 20 63 6f 6c 75 6d 6e 20 68 65 61 64 65  ect column heade
5ae0: 72 73 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75  rs when a compou
5af0: 6e 64 20 53 45 4c 45 43 54 20 69 73 20 75 73 65  nd SELECT is use
5b00: 64 0a 20 20 20 20 61 73 20 61 20 73 75 62 71 75  d.    as a subqu
5b10: 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ery.</li>.<li>Ad
5b20: 64 65 64 20 74 68 65 20 73 71 6c 69 74 65 5f 65  ded the sqlite_e
5b30: 6e 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 61  ncode_binary() a
5b40: 6e 64 20 73 71 6c 69 74 65 5f 64 65 63 6f 64 65  nd sqlite_decode
5b50: 5f 62 69 6e 61 72 79 28 29 20 66 75 6e 63 74 69  _binary() functi
5b60: 6f 6e 73 20 74 6f 0a 20 20 20 20 74 68 65 20 73  ons to.    the s
5b70: 6f 75 72 63 65 20 74 72 65 65 2e 20 20 42 75 74  ource tree.  But
5b80: 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 79 65   they are not ye
5b90: 74 20 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 74 68  t linked into th
5ba0: 65 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a  e library.</li>.
5bb0: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
5bc0: 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a  n updates.</li>.
5bd0: 3c 6c 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73  <li>Export the s
5be0: 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 29 20  qlite_changes() 
5bf0: 66 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 77 69  function from wi
5c00: 6e 64 6f 77 73 20 44 4c 4c 73 2e 3c 2f 6c 69 3e  ndows DLLs.</li>
5c10: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 44 6f  .<li>Bug fix: Do
5c20: 20 6e 6f 74 20 61 74 74 65 6d 70 74 20 74 68 65   not attempt the
5c30: 20 73 75 62 71 75 65 72 79 20 66 6c 61 74 74 65   subquery flatte
5c40: 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 61 74 69 6f  ning optimizatio
5c50: 6e 20 6f 6e 20 71 75 65 72 69 65 73 0a 20 20 20  n on queries.   
5c60: 20 74 68 61 74 20 6c 61 63 6b 20 61 20 46 52 4f   that lack a FRO
5c70: 4d 20 63 6c 61 75 73 65 2e 20 20 54 6f 20 64 6f  M clause.  To do
5c80: 20 73 6f 20 63 61 75 73 65 73 20 61 20 73 65 67   so causes a seg
5c90: 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fault.</li>.}..c
5ca0: 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 32 31  hng {2002 Apr 21
5cb0: 20 28 32 2e 34 2e 39 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.9)} {.<li>
5cc0: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 77  Fix a bug that w
5cd0: 61 73 20 63 61 75 73 69 6e 67 20 74 68 65 20 70  as causing the p
5ce0: 72 65 63 6f 6d 70 69 6c 65 64 20 62 69 6e 61 72  recompiled binar
5cf0: 79 20 6f 66 20 53 51 4c 49 54 45 2e 45 58 45 20  y of SQLITE.EXE 
5d00: 74 6f 0a 20 20 20 20 72 65 70 6f 72 74 20 22 6f  to.    report "o
5d10: 75 74 20 6f 66 20 6d 65 6d 6f 72 79 22 20 75 6e  ut of memory" un
5d20: 64 65 72 20 57 69 6e 64 6f 77 73 20 39 38 2e 3c  der Windows 98.<
5d30: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
5d40: 30 32 20 41 70 72 20 32 30 20 28 32 2e 34 2e 38  02 Apr 20 (2.4.8
5d50: 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75  )} {.<li>Make su
5d60: 72 65 20 56 49 45 57 73 20 61 72 65 20 63 72 65  re VIEWs are cre
5d70: 61 74 65 64 20 61 66 74 65 72 20 74 68 65 69 72  ated after their
5d80: 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 54   corresponding T
5d90: 41 42 4c 45 73 20 69 6e 20 74 68 65 0a 20 20 20  ABLEs in the.   
5da0: 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 3c   output of the <
5db0: 62 3e 2e 64 75 6d 70 3c 2f 62 3e 20 63 6f 6d 6d  b>.dump</b> comm
5dc0: 61 6e 64 20 69 6e 20 74 68 65 20 73 68 65 6c 6c  and in the shell
5dd0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64  .</li>.<li>Speed
5de0: 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 3a 20 44   improvements: D
5df0: 6f 20 6e 6f 74 20 64 6f 20 73 79 6e 63 68 72 6f  o not do synchro
5e00: 6e 6f 75 73 20 75 70 64 61 74 65 73 20 6f 6e 20  nous updates on 
5e10: 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69  TEMP tables.</li
5e20: 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70 72 6f  >.<li>Many impro
5e30: 76 65 6d 65 6e 74 73 20 61 6e 64 20 65 6e 68 61  vements and enha
5e40: 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20  ncements to the 
5e50: 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  shell.</li>.<li>
5e60: 4d 61 6b 65 20 74 68 65 20 47 4c 4f 42 20 61 6e  Make the GLOB an
5e70: 64 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 73  d LIKE operators
5e80: 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20   functions that 
5e90: 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65  can be overridde
5ea0: 6e 0a 20 20 20 20 62 79 20 61 20 70 72 6f 67 72  n.    by a progr
5eb0: 61 6d 6d 65 72 2e 20 20 54 68 69 73 20 61 6c 6c  ammer.  This all
5ec0: 6f 77 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65  ows, for example
5ed0: 2c 20 74 68 65 20 4c 49 4b 45 20 6f 70 65 72 61  , the LIKE opera
5ee0: 74 6f 72 20 74 6f 0a 20 20 20 20 62 65 20 63 68  tor to.    be ch
5ef0: 61 6e 67 65 64 20 74 6f 20 62 65 20 63 61 73 65  anged to be case
5f00: 20 73 65 6e 73 69 74 69 76 65 2e 3c 2f 6c 69 3e   sensitive.</li>
5f10: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41  .}..chng {2002 A
5f20: 70 72 20 30 36 20 28 32 2e 34 2e 37 29 7d 20 7b  pr 06 (2.4.7)} {
5f30: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69  .<li>Add the abi
5f40: 6c 69 74 79 20 74 6f 20 70 75 74 20 54 41 42 4c  lity to put TABL
5f50: 45 2e 2a 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d  E.* in the colum
5f60: 6e 20 6c 69 73 74 20 6f 66 20 61 0a 20 20 20 20  n list of a.    
5f70: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
5f80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 6d 69  .</li>.<li>Permi
5f90: 74 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  t SELECT stateme
5fa0: 6e 74 73 20 77 69 74 68 6f 75 74 20 61 20 46 52  nts without a FR
5fb0: 4f 4d 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a  OM clause.</li>.
5fc0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
5fd0: 3e 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77  >last_insert_row
5fe0: 69 64 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75 6e  id()</b> SQL fun
5ff0: 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ction.</li>.<li>
6000: 44 6f 20 6e 6f 74 20 63 6f 75 6e 74 20 72 6f 77  Do not count row
6010: 73 20 77 68 65 72 65 20 74 68 65 20 49 47 4e 4f  s where the IGNO
6020: 52 45 20 63 6f 6e 66 6c 69 63 74 20 72 65 73 6f  RE conflict reso
6030: 6c 75 74 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e  lution occurs in
6040: 0a 20 20 20 20 74 68 65 20 72 6f 77 20 63 6f 75  .    the row cou
6050: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  nt.</li>.<li>Mak
6060: 65 20 73 75 72 65 20 66 75 6e 63 74 69 6f 6e 73  e sure functions
6070: 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20   expressions in 
6080: 74 68 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73  the VALUES claus
6090: 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54 0a 20  e of an INSERT. 
60a0: 20 20 20 61 72 65 20 63 6f 72 72 65 63 74 2e 3c     are correct.<
60b0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
60c0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63 68 61  he <b>sqlite_cha
60d0: 6e 67 65 73 28 29 3c 2f 62 3e 20 41 50 49 20 66  nges()</b> API f
60e0: 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72  unction to retur
60f0: 6e 20 74 68 65 20 6e 75 6d 62 65 72 0a 20 20 20  n the number.   
6100: 20 6f 66 20 72 6f 77 20 74 68 61 74 20 63 68 61   of row that cha
6110: 6e 67 65 64 20 69 6e 20 74 68 65 20 6d 6f 73 74  nged in the most
6120: 20 72 65 63 65 6e 74 20 6f 70 65 72 61 74 69 6f   recent operatio
6130: 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  n.</li>.}..chng 
6140: 7b 32 30 30 32 20 41 70 72 20 30 32 20 28 32 2e  {2002 Apr 02 (2.
6150: 34 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  4.6)} {.<li>Bug 
6160: 66 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68  fix: Correctly h
6170: 61 6e 64 6c 65 20 74 65 72 6d 73 20 69 6e 20 74  andle terms in t
6180: 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 20  he WHERE clause 
6190: 6f 66 20 61 20 6a 6f 69 6e 20 74 68 61 74 0a 20  of a join that. 
61a0: 20 20 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69     do not contai
61b0: 6e 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f  n a comparison o
61c0: 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 7d 0a  perator.</li>.}.
61d0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20  .chng {2002 Apr 
61e0: 30 31 20 28 32 2e 34 2e 35 29 7d 20 7b 0a 3c 6c  01 (2.4.5)} {.<l
61f0: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65  i>Bug fix: Corre
6200: 63 74 6c 79 20 68 61 6e 64 6c 65 20 66 75 6e 63  ctly handle func
6210: 74 69 6f 6e 73 20 74 68 61 74 20 61 70 70 65 61  tions that appea
6220: 72 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63  r in the WHERE c
6230: 6c 61 75 73 65 0a 20 20 20 20 6f 66 20 61 20 6a  lause.    of a j
6240: 6f 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68  oin.</li>.<li>Wh
6250: 65 6e 20 74 68 65 20 50 52 41 47 4d 41 20 76 64  en the PRAGMA vd
6260: 62 65 5f 74 72 61 63 65 3d 4f 4e 20 69 73 20 73  be_trace=ON is s
6270: 65 74 2c 20 63 6f 72 72 65 63 74 6c 79 20 70 72  et, correctly pr
6280: 69 6e 74 20 74 68 65 20 50 33 20 6f 70 65 72 61  int the P3 opera
6290: 6e 64 0a 20 20 20 20 76 61 6c 75 65 20 77 68 65  nd.    value whe
62a0: 6e 20 69 74 20 69 73 20 61 20 70 6f 69 6e 74 65  n it is a pointe
62b0: 72 20 74 6f 20 61 20 73 74 72 75 63 74 75 72 65  r to a structure
62c0: 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 70   rather than a p
62d0: 6f 69 6e 74 65 72 20 74 6f 0a 20 20 20 20 61 20  ointer to.    a 
62e0: 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69  string.</li>.<li
62f0: 3e 57 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 20  >When inserting 
6300: 61 6e 20 65 78 70 6c 69 63 69 74 20 4e 55 4c 4c  an explicit NULL
6310: 20 69 6e 74 6f 20 61 6e 20 49 4e 54 45 47 45 52   into an INTEGER
6320: 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 63 6f   PRIMARY KEY, co
6330: 6e 76 65 72 74 0a 20 20 20 20 74 68 65 20 4e 55  nvert.    the NU
6340: 4c 4c 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20  LL value into a 
6350: 75 6e 69 71 75 65 20 6b 65 79 20 61 75 74 6f 6d  unique key autom
6360: 61 74 69 63 61 6c 6c 79 2e 3c 2f 6c 69 3e 0a 7d  atically.</li>.}
6370: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72  ..chng {2002 Mar
6380: 20 32 34 20 28 32 2e 34 2e 34 29 7d 20 7b 0a 3c   24 (2.4.4)} {.<
6390: 6c 69 3e 41 6c 6c 6f 77 20 22 56 49 45 57 22 20  li>Allow "VIEW" 
63a0: 74 6f 20 62 65 20 61 20 63 6f 6c 75 6d 6e 20 6e  to be a column n
63b0: 61 6d 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ame</li>.<li>Add
63c0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43  ed support for C
63d0: 41 53 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20  ASE expressions 
63e0: 28 70 61 74 63 68 20 66 72 6f 6d 20 44 61 6e 20  (patch from Dan 
63f0: 4b 65 6e 6e 65 64 79 29 3c 2f 6c 69 3e 0a 3c 6c  Kennedy)</li>.<l
6400: 69 3e 41 64 64 65 64 20 52 50 4d 53 20 74 6f 20  i>Added RPMS to 
6410: 74 68 65 20 64 65 6c 69 76 65 72 79 20 28 70 61  the delivery (pa
6420: 74 63 68 65 73 20 66 72 6f 6d 20 44 6f 75 67 20  tches from Doug 
6430: 48 65 6e 72 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  Henry)</li>.<li>
6440: 46 69 78 20 74 79 70 6f 73 20 69 6e 20 74 68 65  Fix typos in the
6450: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f   documentation</
6460: 6c 69 3e 0a 3c 6c 69 3e 43 75 74 20 6f 76 65 72  li>.<li>Cut over
6470: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d   configuration m
6480: 61 6e 61 67 65 6d 65 6e 74 20 74 6f 20 61 20 6e  anagement to a n
6490: 65 77 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72  ew CVS repositor
64a0: 79 20 77 69 74 68 0a 20 20 20 20 69 74 73 20 6f  y with.    its o
64b0: 77 6e 20 43 56 53 54 72 61 63 20 62 75 67 20 74  wn CVSTrac bug t
64c0: 72 61 63 6b 69 6e 67 20 73 79 73 74 65 6d 2e 3c  racking system.<
64d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
64e0: 30 32 20 4d 61 72 20 32 32 20 28 32 2e 34 2e 33  02 Mar 22 (2.4.3
64f0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
6500: 75 67 20 69 6e 20 53 45 4c 45 43 54 20 74 68 61  ug in SELECT tha
6510: 74 20 6f 63 63 75 72 73 20 77 68 65 6e 20 61 20  t occurs when a 
6520: 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20  compound SELECT 
6530: 69 73 20 75 73 65 64 20 61 73 20 61 0a 20 20 20  is used as a.   
6540: 20 73 75 62 71 75 65 72 79 20 69 6e 20 74 68 65   subquery in the
6550: 20 46 52 4f 4d 20 6f 66 20 61 20 53 45 4c 45 43   FROM of a SELEC
6560: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  T.</li>.<li>The 
6570: 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74 61  <b>sqlite_get_ta
6580: 62 6c 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69  ble()</b> functi
6590: 6f 6e 20 6e 6f 77 20 72 65 74 75 72 6e 73 20 61  on now returns a
65a0: 6e 20 65 72 72 6f 72 20 69 66 20 79 6f 75 0a 20  n error if you. 
65b0: 20 20 20 67 69 76 65 20 69 74 20 74 77 6f 20 6f     give it two o
65c0: 72 20 6d 6f 72 65 20 53 45 4c 45 43 54 73 20 74  r more SELECTs t
65d0: 68 61 74 20 72 65 74 75 72 6e 20 64 69 66 66 65  hat return diffe
65e0: 72 65 6e 74 20 6e 75 6d 62 65 72 73 20 6f 66 20  rent numbers of 
65f0: 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a  columns.</li>.}.
6600: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20  .chng {2002 Mar 
6610: 31 34 20 28 32 2e 34 2e 32 29 7d 20 7b 0a 3c 6c  14 (2.4.2)} {.<l
6620: 69 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20 61  i>Bug fix: Fix a
6630: 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c  n assertion fail
6640: 75 72 65 20 74 68 61 74 20 6f 63 63 75 72 72 65  ure that occurre
6650: 64 20 77 68 65 6e 20 52 4f 57 49 44 20 77 61 73  d when ROWID was
6660: 20 61 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 69 6e   a column.    in
6670: 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d   a SELECT statem
6680: 65 6e 74 20 6f 6e 20 61 20 76 69 65 77 2e 3c 2f  ent on a view.</
6690: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
66a0: 20 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61   Fix an uninitia
66b0: 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69  lized variable i
66c0: 6e 20 74 68 65 20 56 44 42 45 20 74 68 61 74 20  n the VDBE that 
66d0: 77 6f 75 6c 64 20 63 6f 75 6c 64 20 61 6e 0a 20  would could an. 
66e0: 20 20 20 61 73 73 65 72 74 20 66 61 69 6c 75 72     assert failur
66f0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  e.</li>.<li>Make
6700: 20 74 68 65 20 6f 73 2e 68 20 68 65 61 64 65 72   the os.h header
6710: 20 66 69 6c 65 20 6d 6f 72 65 20 72 6f 62 75 73   file more robus
6720: 74 20 69 6e 20 64 65 74 65 63 74 69 6e 67 20 77  t in detecting w
6730: 68 65 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 20  hen the compile 
6740: 69 73 0a 20 20 20 20 66 6f 72 20 77 69 6e 64 6f  is.    for windo
6750: 77 73 20 61 6e 64 20 77 68 65 6e 20 69 74 20 69  ws and when it i
6760: 73 20 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c 69 3e  s for unix.</li>
6770: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
6780: 61 72 20 31 33 20 28 32 2e 34 2e 31 29 7d 20 7b  ar 13 (2.4.1)} {
6790: 0a 3c 6c 69 3e 55 73 69 6e 67 20 61 6e 20 75 6e  .<li>Using an un
67a0: 6e 61 6d 65 64 20 73 75 62 71 75 65 72 79 20 69  named subquery i
67b0: 6e 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 20  n a FROM clause 
67c0: 77 6f 75 6c 64 20 63 61 75 73 65 20 61 20 73 65  would cause a se
67d0: 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  gfault.</li>.<li
67e0: 3e 54 68 65 20 70 61 72 73 65 72 20 6e 6f 77 20  >The parser now 
67f0: 69 6e 73 69 73 74 73 20 6f 6e 20 73 65 65 69 6e  insists on seein
6800: 67 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 6f 72  g a semicolon or
6810: 20 74 68 65 20 65 6e 64 20 6f 66 20 69 6e 70 75   the end of inpu
6820: 74 20 62 65 66 6f 72 65 0a 20 20 20 20 65 78 65  t before.    exe
6830: 63 75 74 69 6e 67 20 61 20 73 74 61 74 65 6d 65  cuting a stateme
6840: 6e 74 2e 20 20 54 68 69 73 20 61 76 6f 69 64 73  nt.  This avoids
6850: 20 61 6e 20 61 63 63 69 64 65 6e 74 61 6c 20 64   an accidental d
6860: 69 73 61 73 74 65 72 20 69 66 20 74 68 65 0a 20  isaster if the. 
6870: 20 20 20 57 48 45 52 45 20 6b 65 79 77 6f 72 64     WHERE keyword
6880: 20 69 73 20 6d 69 73 73 70 65 6c 6c 65 64 20 69   is misspelled i
6890: 6e 20 61 6e 20 55 50 44 41 54 45 20 6f 72 20 44  n an UPDATE or D
68a0: 45 4c 45 54 45 20 73 74 61 74 65 6d 65 6e 74 2e  ELETE statement.
68b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67 20 7b  </li>.}...chng {
68c0: 32 30 30 32 20 4d 61 72 20 31 30 20 28 32 2e 34  2002 Mar 10 (2.4
68d0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
68e0: 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  e the name of th
68f0: 65 20 73 61 6e 69 74 79 5f 63 68 65 63 6b 20 50  e sanity_check P
6900: 52 41 47 4d 41 20 74 6f 20 3c 62 3e 69 6e 74 65  RAGMA to <b>inte
6910: 67 72 69 74 79 5f 63 68 65 63 6b 3c 2f 62 3e 0a  grity_check</b>.
6920: 20 20 20 20 61 6e 64 20 6d 61 6b 65 20 69 74 20      and make it 
6930: 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 6c 6c  available in all
6940: 20 63 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69 3e 0a   compiles.</li>.
6950: 3c 6c 69 3e 53 45 4c 45 43 54 20 6d 69 6e 28 29  <li>SELECT min()
6960: 20 6f 72 20 6d 61 78 28 29 20 6f 66 20 61 6e 20   or max() of an 
6970: 69 6e 64 65 78 65 64 20 63 6f 6c 75 6d 6e 20 77  indexed column w
6980: 69 74 68 20 6e 6f 20 57 48 45 52 45 20 6f 72 20  ith no WHERE or 
6990: 47 52 4f 55 50 20 42 59 0a 20 20 20 20 63 6c 61  GROUP BY.    cla
69a0: 75 73 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61  use is handled a
69b0: 73 20 61 20 73 70 65 63 69 61 6c 20 63 61 73 65  s a special case
69c0: 20 77 68 69 63 68 20 61 76 6f 69 64 73 20 61 20   which avoids a 
69d0: 63 6f 6d 70 6c 65 74 65 20 74 61 62 6c 65 20 73  complete table s
69e0: 63 61 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75  can.</li>.<li>Au
69f0: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65  tomatically gene
6a00: 72 61 74 65 64 20 52 4f 57 49 44 73 20 61 72 65  rated ROWIDs are
6a10: 20 6e 6f 77 20 73 65 71 75 65 6e 74 69 61 6c 2e   now sequential.
6a20: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
6a30: 20 61 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d 6d 61   allow dot-comma
6a40: 6e 64 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61  nds of the comma
6a50: 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74 6f  nd-line shell to
6a60: 20 6f 63 63 75 72 20 69 6e 20 74 68 65 0a 20 20   occur in the.  
6a70: 20 20 6d 69 64 64 6c 65 20 6f 66 20 61 20 72 65    middle of a re
6a80: 61 6c 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e 3c  al SQL command.<
6a90: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 63  /li>.<li>Modific
6aa0: 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 22 6c  ations to the "l
6ab0: 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e  emon" parser gen
6ac0: 65 72 61 74 6f 72 20 73 6f 20 74 68 61 74 20 74  erator so that t
6ad0: 68 65 20 70 61 72 73 65 72 20 74 61 62 6c 65 73  he parser tables
6ae0: 0a 20 20 20 20 61 72 65 20 34 20 74 69 6d 65 73  .    are 4 times
6af0: 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 3c   smaller.</li>.<
6b00: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
6b10: 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e 65   for user-define
6b20: 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6d 70 6c  d functions impl
6b30: 65 6d 65 6e 74 65 64 20 69 6e 20 43 2e 3c 2f 6c  emented in C.</l
6b40: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
6b50: 70 6f 72 74 20 66 6f 72 20 6e 65 77 20 66 75 6e  port for new fun
6b60: 63 74 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61 6c 65  ctions: <b>coale
6b70: 73 63 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e 6c 6f  sce()</b>, <b>lo
6b80: 77 65 72 28 29 3c 2f 62 3e 2c 0a 20 20 20 20 3c  wer()</b>,.    <
6b90: 62 3e 75 70 70 65 72 28 29 3c 2f 62 3e 2c 20 61  b>upper()</b>, a
6ba0: 6e 64 20 3c 62 3e 72 61 6e 64 6f 6d 28 29 3c 2f  nd <b>random()</
6bb0: 62 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  b>.<li>Added sup
6bc0: 70 6f 72 74 20 66 6f 72 20 56 49 45 57 73 2e 3c  port for VIEWs.<
6bd0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
6be0: 68 65 20 73 75 62 71 75 65 72 79 20 66 6c 61 74  he subquery flat
6bf0: 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 65 72  tening optimizer
6c00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66  .</li>.<li>Modif
6c10: 69 65 64 20 74 68 65 20 42 2d 54 72 65 65 20 61  ied the B-Tree a
6c20: 6e 64 20 50 61 67 65 72 20 6d 6f 64 75 6c 65 73  nd Pager modules
6c30: 20 73 6f 20 74 68 61 74 20 64 69 73 6b 20 70 61   so that disk pa
6c40: 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 0a  ges that do not.
6c50: 20 20 20 20 63 6f 6e 74 61 69 6e 20 72 65 61 6c      contain real
6c60: 20 64 61 74 61 20 28 66 72 65 65 20 70 61 67 65   data (free page
6c70: 73 29 20 61 72 65 20 6e 6f 74 20 6a 6f 75 72 6e  s) are not journ
6c80: 61 6c 65 64 20 61 6e 64 20 61 72 65 20 6e 6f 74  aled and are not
6c90: 0a 20 20 20 20 77 72 69 74 74 65 6e 20 66 72 6f  .    written fro
6ca0: 6d 20 6d 65 6d 6f 72 79 20 62 61 63 6b 20 74 6f  m memory back to
6cb0: 20 74 68 65 20 64 69 73 6b 20 77 68 65 6e 20 74   the disk when t
6cc0: 68 65 79 20 63 68 61 6e 67 65 2e 20 20 54 68 69  hey change.  Thi
6cd0: 73 20 64 6f 65 73 20 6e 6f 74 20 0a 20 20 20 20  s does not .    
6ce0: 69 6d 70 61 63 74 20 64 61 74 61 62 61 73 65 20  impact database 
6cf0: 69 6e 74 65 67 72 69 74 79 2c 20 73 69 6e 63 65  integrity, since
6d00: 20 74 68 65 0a 20 20 20 20 70 61 67 65 73 20 63   the.    pages c
6d10: 6f 6e 74 61 69 6e 20 6e 6f 20 72 65 61 6c 20 64  ontain no real d
6d20: 61 74 61 2c 20 62 75 74 20 69 74 20 64 6f 65 73  ata, but it does
6d30: 20 6d 61 6b 65 20 6c 61 72 67 65 20 49 4e 53 45   make large INSE
6d40: 52 54 20 6f 70 65 72 61 74 69 6f 6e 73 0a 20 20  RT operations.  
6d50: 20 20 61 62 6f 75 74 20 32 2e 35 20 74 69 6d 65    about 2.5 time
6d60: 73 20 66 61 73 74 65 72 20 61 6e 64 20 6c 61 72  s faster and lar
6d70: 67 65 20 44 45 4c 45 54 45 73 20 61 62 6f 75 74  ge DELETEs about
6d80: 20 35 20 74 69 6d 65 73 20 66 61 73 74 65 72 2e   5 times faster.
6d90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65 20 74  </li>.<li>Made t
6da0: 68 65 20 43 41 43 48 45 5f 53 49 5a 45 20 70 72  he CACHE_SIZE pr
6db0: 61 67 6d 61 20 70 65 72 73 69 73 74 65 6e 74 3c  agma persistent<
6dc0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
6dd0: 68 65 20 53 59 4e 43 48 52 4f 4e 4f 55 53 20 70  he SYNCHRONOUS p
6de0: 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ragma</li>.<li>F
6df0: 69 78 65 64 20 61 20 62 75 67 20 74 68 61 74 20  ixed a bug that 
6e00: 77 61 73 20 63 61 75 73 69 6e 67 20 75 70 64 61  was causing upda
6e10: 74 65 73 20 74 6f 20 66 61 69 6c 20 69 6e 73 69  tes to fail insi
6e20: 64 65 20 6f 66 20 74 72 61 6e 73 61 63 74 69 6f  de of transactio
6e30: 6e 73 20 77 68 65 6e 0a 20 20 20 20 74 68 65 20  ns when.    the 
6e40: 64 61 74 61 62 61 73 65 20 63 6f 6e 74 61 69 6e  database contain
6e50: 65 64 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74  ed a temporary t
6e60: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  able.</li>.}..ch
6e70: 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31 38 20  ng {2002 Feb 18 
6e80: 28 32 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.3.3)} {.<li>A
6e90: 6c 6c 6f 77 20 69 64 65 6e 74 69 66 69 65 72 73  llow identifiers
6ea0: 20 74 6f 20 62 65 20 71 75 6f 74 65 64 20 69 6e   to be quoted in
6eb0: 20 73 71 75 61 72 65 20 62 72 61 63 6b 65 74 73   square brackets
6ec0: 2c 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c  , for compatibil
6ed0: 69 74 79 0a 20 20 20 20 77 69 74 68 20 4d 53 2d  ity.    with MS-
6ee0: 41 63 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  Access.</li>.<li
6ef0: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
6f00: 6f 72 20 73 75 62 2d 71 75 65 72 69 65 73 20 69  or sub-queries i
6f10: 6e 20 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73  n the FROM claus
6f20: 65 20 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f  e of a SELECT.</
6f30: 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65 66 66  li>.<li>More eff
6f40: 69 63 69 65 6e 74 20 69 6d 70 6c 65 6d 65 6e 74  icient implement
6f50: 61 74 69 6f 6e 20 6f 66 20 73 71 6c 69 74 65 46  ation of sqliteF
6f60: 69 6c 65 45 78 69 73 74 73 28 29 20 75 6e 64 65  ileExists() unde
6f70: 72 20 57 69 6e 64 6f 77 73 2e 0a 20 20 20 20 28  r Windows..    (
6f80: 62 79 20 4a 6f 65 6c 20 4c 75 73 63 79 29 3c 2f  by Joel Luscy)</
6f90: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 4c 55  li>.<li>The VALU
6fa0: 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20  ES clause of an 
6fb0: 49 4e 53 45 52 54 20 63 61 6e 20 6e 6f 77 20 63  INSERT can now c
6fc0: 6f 6e 74 61 69 6e 20 65 78 70 72 65 73 73 69 6f  ontain expressio
6fd0: 6e 73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 20 20  ns, including.  
6fe0: 20 20 73 63 61 6c 61 72 20 53 45 4c 45 43 54 20    scalar SELECT 
6ff0: 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  clauses.</li>.<l
7000: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
7010: 66 6f 72 20 43 52 45 41 54 45 20 54 41 42 4c 45  for CREATE TABLE
7020: 20 41 53 20 53 45 4c 45 43 54 3c 2f 6c 69 3e 0a   AS SELECT</li>.
7030: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 72 65  <li>Bug fix: Cre
7040: 61 74 69 6e 67 20 61 6e 64 20 64 72 6f 70 70 69  ating and droppi
7050: 6e 67 20 61 20 74 61 62 6c 65 20 61 6c 6c 20 77  ng a table all w
7060: 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 0a 20  ithin a single. 
7070: 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77     transaction w
7080: 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 2e 3c  as not working.<
7090: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
70a0: 30 32 20 46 65 62 20 31 34 20 28 32 2e 33 2e 32  02 Feb 14 (2.3.2
70b0: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
70c0: 3a 20 54 68 65 72 65 20 77 61 73 20 61 6e 20 69  : There was an i
70d0: 6e 63 6f 72 72 65 63 74 20 61 73 73 65 72 74 28  ncorrect assert(
70e0: 29 20 69 6e 20 70 61 67 65 72 2e 63 2e 20 20 54  ) in pager.c.  T
70f0: 68 65 20 72 65 61 6c 20 63 6f 64 65 20 77 61 73  he real code was
7100: 0a 20 20 20 20 61 6c 6c 20 63 6f 72 72 65 63 74  .    all correct
7110: 20 28 61 73 20 66 61 72 20 61 73 20 69 73 20 6b   (as far as is k
7120: 6e 6f 77 6e 29 20 73 6f 20 65 76 65 72 79 74 68  nown) so everyth
7130: 69 6e 67 20 73 68 6f 75 6c 64 20 77 6f 72 6b 20  ing should work 
7140: 4f 4b 20 69 66 20 79 6f 75 0a 20 20 20 20 63 6f  OK if you.    co
7150: 6d 70 69 6c 65 20 77 69 74 68 20 2d 44 4e 44 45  mpile with -DNDE
7160: 42 55 47 3d 31 2e 20 20 57 68 65 6e 20 61 73 73  BUG=1.  When ass
7170: 65 72 74 73 20 61 72 65 20 6e 6f 74 20 64 69 73  erts are not dis
7180: 61 62 6c 65 64 2c 20 74 68 65 72 65 0a 20 20 20  abled, there.   
7190: 20 63 6f 75 6c 64 20 62 65 20 61 20 66 61 75 6c   could be a faul
71a0: 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  t.</li>.}..chng 
71b0: 7b 32 30 30 32 20 46 65 62 20 31 33 20 28 32 2e  {2002 Feb 13 (2.
71c0: 33 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  3.1)} {.<li>Bug 
71d0: 66 69 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f  fix: An assertio
71e0: 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20 69 66  n was failing if
71f0: 20 22 50 52 41 47 4d 41 20 66 75 6c 6c 5f 63 6f   "PRAGMA full_co
7200: 6c 75 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b 22 20  lumn_names=ON;" 
7210: 77 61 73 0a 20 20 20 20 73 65 74 20 61 6e 64 20  was.    set and 
7220: 79 6f 75 20 64 69 64 20 61 20 71 75 65 72 79 20  you did a query 
7230: 74 68 61 74 20 75 73 65 64 20 61 20 72 6f 77 69  that used a rowi
7240: 64 2c 20 6c 69 6b 65 20 74 68 69 73 3a 20 20 0a  d, like this:  .
7250: 20 20 20 20 22 53 45 4c 45 43 54 20 72 6f 77 69      "SELECT rowi
7260: 64 2c 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22 2e 3c  d, * FROM ...".<
7270: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
7280: 30 32 20 4a 61 6e 20 33 30 20 28 32 2e 33 2e 30  02 Jan 30 (2.3.0
7290: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 73  )} {.<li>Fix a s
72a0: 65 72 69 6f 75 73 20 62 75 67 20 69 6e 20 74 68  erious bug in th
72b0: 65 20 49 4e 53 45 52 54 20 63 6f 6d 6d 61 6e 64  e INSERT command
72c0: 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69   which was causi
72d0: 6e 67 20 64 61 74 61 20 74 6f 20 67 6f 0a 20 20  ng data to go.  
72e0: 20 20 69 6e 74 6f 20 74 68 65 20 77 72 6f 6e 67    into the wrong
72f0: 20 63 6f 6c 75 6d 6e 73 20 69 66 20 74 68 65 20   columns if the 
7300: 64 61 74 61 20 73 6f 75 72 63 65 20 77 61 73 20  data source was 
7310: 61 20 53 45 4c 45 43 54 20 61 6e 64 20 74 68 65  a SELECT and the
7320: 20 49 4e 53 45 52 54 0a 20 20 20 20 63 6c 61 75   INSERT.    clau
7330: 73 65 73 20 73 70 65 63 69 66 69 65 64 20 69 74  ses specified it
7340: 73 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 73 6f 6d  s columns in som
7350: 65 20 6f 72 64 65 72 20 6f 74 68 65 72 20 74 68  e order other th
7360: 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 2e 3c  an the default.<
7370: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
7380: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65  he ability to re
7390: 73 6f 6c 76 65 20 63 6f 6e 73 74 72 61 69 6e 74  solve constraint
73a0: 20 63 6f 6e 66 6c 69 63 74 73 20 69 73 20 77 61   conflicts is wa
73b0: 79 73 20 6f 74 68 65 72 20 74 68 61 6e 0a 20 20  ys other than.  
73c0: 20 20 61 6e 20 61 62 6f 72 74 20 61 6e 64 20 72    an abort and r
73d0: 6f 6c 6c 62 61 63 6b 2e 20 20 53 65 65 20 74 68  ollback.  See th
73e0: 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  e documentation 
73f0: 6f 6e 20 74 68 65 20 22 4f 4e 20 43 4f 4e 46 4c  on the "ON CONFL
7400: 49 43 54 22 0a 20 20 20 20 63 6c 61 75 73 65 20  ICT".    clause 
7410: 66 6f 72 20 64 65 74 61 69 6c 73 2e 3c 2f 6c 69  for details.</li
7420: 3e 0a 3c 6c 69 3e 54 65 6d 70 6f 72 61 72 79 20  >.<li>Temporary 
7430: 66 69 6c 65 73 20 61 72 65 20 6e 6f 77 20 61 75  files are now au
7440: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c 65  tomatically dele
7450: 74 65 64 20 62 79 20 74 68 65 20 6f 70 65 72 61  ted by the opera
7460: 74 69 6e 67 20 73 79 73 74 65 6d 0a 20 20 20 20  ting system.    
7470: 77 68 65 6e 20 63 6c 6f 73 65 64 2e 20 20 54 68  when closed.  Th
7480: 65 72 65 20 61 72 65 20 6e 6f 20 6d 6f 72 65 20  ere are no more 
7490: 64 61 6e 67 6c 69 6e 67 20 74 65 6d 70 6f 72 61  dangling tempora
74a0: 72 79 20 66 69 6c 65 73 20 6f 6e 20 61 20 70 72  ry files on a pr
74b0: 6f 67 72 61 6d 0a 20 20 20 20 63 72 61 73 68 2e  ogram.    crash.
74c0: 20 20 28 49 66 20 74 68 65 20 4f 53 20 63 72 61    (If the OS cra
74d0: 73 68 65 73 2c 20 66 73 63 6b 20 77 69 6c 6c 20  shes, fsck will 
74e0: 64 65 6c 65 74 65 20 74 68 65 20 66 69 6c 65 20  delete the file 
74f0: 61 66 74 65 72 20 72 65 62 6f 6f 74 20 0a 20 20  after reboot .  
7500: 20 20 75 6e 64 65 72 20 55 6e 69 78 2e 20 20 49    under Unix.  I
7510: 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77 68 61   do not know wha
7520: 74 20 68 61 70 70 65 6e 73 20 75 6e 64 65 72 20  t happens under 
7530: 57 69 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e 0a 3c  Windows.)</li>.<
7540: 6c 69 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f 6e 73  li>NOT NULL cons
7550: 74 72 61 69 6e 74 73 20 61 72 65 20 68 6f 6e 6f  traints are hono
7560: 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  red.</li>.<li>Th
7570: 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 70  e COPY command p
7580: 75 74 73 20 4e 55 4c 4c 73 20 69 6e 20 63 6f 6c  uts NULLs in col
7590: 75 6d 6e 73 20 77 68 6f 73 65 20 64 61 74 61 20  umns whose data 
75a0: 69 73 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a 3c 6c  is '\N'.</li>.<l
75b0: 69 3e 49 6e 20 74 68 65 20 43 4f 50 59 20 63 6f  i>In the COPY co
75c0: 6d 6d 61 6e 64 2c 20 62 61 63 6b 73 6c 61 73 68  mmand, backslash
75d0: 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64   can now be used
75e0: 20 74 6f 20 65 73 63 61 70 65 20 61 20 6e 65 77   to escape a new
75f0: 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  line.</li>.<li>A
7600: 64 64 65 64 20 74 68 65 20 53 41 4e 49 54 59 5f  dded the SANITY_
7610: 43 48 45 43 4b 20 70 72 61 67 6d 61 2e 3c 2f 6c  CHECK pragma.</l
7620: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
7630: 20 4a 61 6e 20 32 38 20 28 32 2e 32 2e 35 29 7d   Jan 28 (2.2.5)}
7640: 20 7b 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61 6e 74   {.<li>Important
7650: 20 62 75 67 20 66 69 78 3a 20 74 68 65 20 49 4e   bug fix: the IN
7660: 20 6f 70 65 72 61 74 6f 72 20 77 61 73 20 6e 6f   operator was no
7670: 74 20 77 6f 72 6b 69 6e 67 20 69 66 20 65 69 74  t working if eit
7680: 68 65 72 20 74 68 65 0a 20 20 20 20 6c 65 66 74  her the.    left
7690: 2d 68 61 6e 64 20 6f 72 20 72 69 67 68 74 2d 68  -hand or right-h
76a0: 61 6e 64 20 73 69 64 65 20 77 61 73 20 64 65 72  and side was der
76b0: 69 76 65 64 20 66 72 6f 6d 20 61 6e 20 49 4e 54  ived from an INT
76c0: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59  EGER PRIMARY KEY
76d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f  .</li>.<li>Do no
76e0: 74 20 65 73 63 61 70 65 20 74 68 65 20 62 61 63  t escape the bac
76f0: 6b 73 6c 61 73 68 20 27 5c 27 20 63 68 61 72 61  kslash '\' chara
7700: 63 74 65 72 20 69 6e 20 74 68 65 20 6f 75 74 70  cter in the outp
7710: 75 74 20 6f 66 20 74 68 65 0a 20 20 20 20 3c 62  ut of the.    <b
7720: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 63 6f 6d 6d  >sqlite</b> comm
7730: 61 6e 64 2d 6c 69 6e 65 20 61 63 63 65 73 73 20  and-line access 
7740: 70 72 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a 7d 0a  program.</li>.}.
7750: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20  .chng {2002 Jan 
7760: 32 32 20 28 32 2e 32 2e 34 29 7d 20 7b 0a 3c 6c  22 (2.2.4)} {.<l
7770: 69 3e 54 68 65 20 6c 61 62 65 6c 20 74 6f 20 74  i>The label to t
7780: 68 65 20 72 69 67 68 74 20 6f 66 20 61 6e 20 41  he right of an A
7790: 53 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20  S in the column 
77a0: 6c 69 73 74 20 6f 66 20 61 20 53 45 4c 45 43 54  list of a SELECT
77b0: 20 63 61 6e 20 6e 6f 77 0a 20 20 20 20 62 65 20   can now.    be 
77c0: 75 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 20  used as part of 
77d0: 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e  an expression in
77e0: 20 74 68 65 20 57 48 45 52 45 2c 20 4f 52 44 45   the WHERE, ORDE
77f0: 52 20 42 59 2c 20 47 52 4f 55 50 20 42 59 2c 20  R BY, GROUP BY, 
7800: 61 6e 64 2f 6f 72 0a 20 20 20 20 48 41 56 49 4e  and/or.    HAVIN
7810: 47 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a  G clauses.</li>.
7820: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
7830: 20 74 68 65 20 3c 62 3e 2d 73 65 70 61 72 61 74   the <b>-separat
7840: 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c  or</b> command-l
7850: 69 6e 65 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68  ine option to th
7860: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 0a  e <b>sqlite</b>.
7870: 20 20 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69      command.</li
7880: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62  >.<li>Fix a prob
7890: 6c 65 6d 20 77 69 74 68 20 74 68 65 20 73 6f 72  lem with the sor
78a0: 74 20 6f 72 64 65 72 20 77 68 65 6e 20 63 6f 6d  t order when com
78b0: 70 61 72 69 6e 67 20 75 70 70 65 72 2d 63 61 73  paring upper-cas
78c0: 65 20 73 74 72 69 6e 67 73 20 61 67 61 69 6e 73  e strings agains
78d0: 74 0a 20 20 20 20 63 68 61 72 61 63 74 65 72 73  t.    characters
78e0: 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 27 5a   greater than 'Z
78f0: 27 20 62 75 74 20 6c 65 73 73 20 74 68 61 6e 20  ' but less than 
7900: 27 61 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65  'a'.</li>.<li>Re
7910: 70 6f 72 74 20 61 6e 20 65 72 72 6f 72 20 69 66  port an error if
7920: 20 61 6e 20 4f 52 44 45 52 20 42 59 20 6f 72 20   an ORDER BY or 
7930: 47 52 4f 55 50 20 42 59 20 65 78 70 72 65 73 73  GROUP BY express
7940: 69 6f 6e 20 69 73 20 63 6f 6e 73 74 61 6e 74 2e  ion is constant.
7950: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
7960: 30 30 32 20 4a 61 6e 20 31 36 20 28 32 2e 32 2e  002 Jan 16 (2.2.
7970: 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 77 61  3)} {.<li>Fix wa
7980: 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 20 69  rning messages i
7990: 6e 20 56 43 2b 2b 20 37 2e 30 2e 20 20 28 50 61  n VC++ 7.0.  (Pa
79a0: 74 63 68 65 73 20 66 72 6f 6d 20 6e 69 63 6f 6c  tches from nicol
79b0: 61 73 33 35 32 30 30 31 29 3c 2f 6c 69 3e 0a 3c  as352001)</li>.<
79c0: 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6c 69 62 72  li>Make the libr
79d0: 61 72 79 20 74 68 72 65 61 64 2d 73 61 66 65 2e  ary thread-safe.
79e0: 20 20 28 54 68 65 20 63 6f 64 65 20 69 73 20 74    (The code is t
79f0: 68 65 72 65 20 61 6e 64 20 61 70 70 65 61 72 73  here and appears
7a00: 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20 62 75 74   to work.    but
7a10: 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 73 74   has not been st
7a20: 72 65 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a 3c 6c  ressed.)</li>.<l
7a30: 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65 77 20  i>Added the new 
7a40: 3c 62 3e 73 71 6c 69 74 65 5f 6c 61 73 74 5f 69  <b>sqlite_last_i
7a50: 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62  nsert_rowid()</b
7a60: 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 2e 3c  > API function.<
7a70: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
7a80: 30 32 20 4a 61 6e 20 31 33 20 28 32 2e 32 2e 32  02 Jan 13 (2.2.2
7a90: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
7aa0: 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e 20 77  : An assertion w
7ab0: 61 73 20 66 61 69 6c 69 6e 67 20 77 68 65 6e 20  as failing when 
7ac0: 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c  a temporary tabl
7ad0: 65 20 77 69 74 68 20 61 6e 20 69 6e 64 65 78 0a  e with an index.
7ae0: 20 20 20 20 68 61 64 20 74 68 65 20 73 61 6d 65      had the same
7af0: 20 6e 61 6d 65 20 61 73 20 61 20 70 65 72 6d 61   name as a perma
7b00: 6e 65 6e 74 20 74 61 62 6c 65 20 63 72 65 61 74  nent table creat
7b10: 65 64 20 62 79 20 61 20 73 65 70 61 72 61 74 65  ed by a separate
7b20: 20 70 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c   process.</li>.<
7b30: 6c 69 3e 42 75 67 20 66 69 78 3a 20 55 70 64 61  li>Bug fix: Upda
7b40: 74 65 73 20 74 6f 20 74 61 62 6c 65 73 20 63 6f  tes to tables co
7b50: 6e 74 61 69 6e 69 6e 67 20 61 6e 20 49 4e 54 45  ntaining an INTE
7b60: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20  GER PRIMARY KEY 
7b70: 61 6e 64 20 61 6e 0a 20 20 20 20 69 6e 64 65 78  and an.    index
7b80: 20 63 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f 6c 69   could fail.</li
7b90: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
7ba0: 4a 61 6e 20 39 20 28 32 2e 32 2e 31 29 7d 20 7b  Jan 9 (2.2.1)} {
7bb0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e  .<li>Bug fix: An
7bc0: 20 61 74 74 65 6d 70 74 20 74 6f 20 64 65 6c 65   attempt to dele
7bd0: 74 65 20 61 20 73 69 6e 67 6c 65 20 72 6f 77 20  te a single row 
7be0: 6f 66 20 61 20 74 61 62 6c 65 20 77 69 74 68 20  of a table with 
7bf0: 61 20 57 48 45 52 45 0a 20 20 20 20 63 6c 61 75  a WHERE.    clau
7c00: 73 65 20 6f 66 20 22 52 4f 57 49 44 3d 78 22 20  se of "ROWID=x" 
7c10: 77 68 65 6e 20 6e 6f 20 73 75 63 68 20 72 6f 77  when no such row
7c20: 69 64 20 65 78 69 73 74 73 20 77 61 73 20 63 61  id exists was ca
7c30: 75 73 69 6e 67 20 61 6e 20 65 72 72 6f 72 2e 3c  using an error.<
7c40: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
7c50: 3a 20 50 61 73 73 69 6e 67 20 69 6e 20 61 20 4e  : Passing in a N
7c60: 55 4c 4c 20 61 73 20 74 68 65 20 33 72 64 20 70  ULL as the 3rd p
7c70: 61 72 61 6d 65 74 65 72 20 74 6f 20 3c 62 3e 73  arameter to <b>s
7c80: 71 6c 69 74 65 5f 6f 70 65 6e 28 29 3c 2f 62 3e  qlite_open()</b>
7c90: 0a 20 20 20 20 77 6f 75 6c 64 20 73 6f 6d 65 74  .    would somet
7ca0: 69 6d 65 73 20 63 61 75 73 65 20 61 20 63 6f 72  imes cause a cor
7cb0: 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  edump.</li>.<li>
7cc0: 42 75 67 20 66 69 78 3a 20 44 52 4f 50 20 54 41  Bug fix: DROP TA
7cd0: 42 4c 45 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20  BLE followed by 
7ce0: 61 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 77  a CREATE TABLE w
7cf0: 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d  ith the same nam
7d00: 65 20 61 6c 6c 0a 20 20 20 20 77 69 74 68 69 6e  e all.    within
7d10: 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61   a single transa
7d20: 63 74 69 6f 6e 20 77 61 73 20 63 61 75 73 69 6e  ction was causin
7d30: 67 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c  g a coredump.</l
7d40: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20  i>.<li>Makefile 
7d50: 75 70 64 61 74 65 73 20 66 72 6f 6d 20 41 2e 20  updates from A. 
7d60: 52 6f 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a 7d 0a  Rottmann</li>.}.
7d70: 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20  .chng {2001 Dec 
7d80: 32 32 20 28 32 2e 32 2e 30 29 7d 20 7b 0a 3c 6c  22 (2.2.0)} {.<l
7d90: 69 3e 43 6f 6c 75 6d 6e 73 20 6f 66 20 74 79 70  i>Columns of typ
7da0: 65 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  e INTEGER PRIMAR
7db0: 59 20 4b 45 59 20 61 72 65 20 61 63 74 75 61 6c  Y KEY are actual
7dc0: 6c 79 20 75 73 65 64 20 61 73 20 74 68 65 20 70  ly used as the p
7dd0: 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 20 69  rimary.    key i
7de0: 6e 20 75 6e 64 65 72 6c 79 69 6e 67 20 42 2d 54  n underlying B-T
7df0: 72 65 65 20 72 65 70 72 65 73 65 6e 74 61 74 69  ree representati
7e00: 6f 6e 20 6f 66 20 74 68 65 20 74 61 62 6c 65 2e  on of the table.
7e10: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65 72 61  </li>.<li>Severa
7e20: 6c 20 6f 62 73 63 75 72 65 2c 20 75 6e 72 65 6c  l obscure, unrel
7e30: 61 74 65 64 20 62 75 67 73 20 77 65 72 65 20 66  ated bugs were f
7e40: 6f 75 6e 64 20 61 6e 64 20 66 69 78 65 64 20 77  ound and fixed w
7e50: 68 69 6c 65 20 0a 20 20 20 20 69 6d 70 6c 65 6d  hile .    implem
7e60: 65 6e 74 65 64 20 74 68 65 20 69 6e 74 65 67 65  ented the intege
7e70: 72 20 70 72 69 6d 61 72 79 20 6b 65 79 20 63 68  r primary key ch
7e80: 61 6e 67 65 20 6f 66 20 74 68 65 20 70 72 65 76  ange of the prev
7e90: 69 6f 75 73 20 62 75 6c 6c 65 74 2e 3c 2f 6c 69  ious bullet.</li
7ea0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
7eb0: 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65 63 69  ability to speci
7ec0: 66 79 20 22 2a 22 20 61 73 20 70 61 72 74 20 6f  fy "*" as part o
7ed0: 66 20 61 20 6c 61 72 67 65 72 20 63 6f 6c 75 6d  f a larger colum
7ee0: 6e 20 6c 69 73 74 20 69 6e 0a 20 20 20 20 74 68  n list in.    th
7ef0: 65 20 72 65 73 75 6c 74 20 73 65 63 74 69 6f 6e  e result section
7f00: 20 6f 66 20 61 20 53 45 4c 45 43 54 20 73 74 61   of a SELECT sta
7f10: 74 65 6d 65 6e 74 2e 20 20 46 6f 72 20 65 78 61  tement.  For exa
7f20: 6d 70 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62 72 3e  mple:.    <nobr>
7f30: 22 3c 62 3e 53 45 4c 45 43 54 20 72 6f 77 69 64  "<b>SELECT rowid
7f40: 2c 20 2a 20 46 52 4f 4d 20 74 61 62 6c 65 31 3b  , * FROM table1;
7f50: 3c 2f 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c 2f 6c  </b>"</nobr>.</l
7f60: 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74  i>.<li>Updates t
7f70: 6f 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 64  o comments and d
7f80: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c  ocumentation.</l
7f90: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
7fa0: 20 44 65 63 20 31 34 20 28 32 2e 31 2e 37 29 7d   Dec 14 (2.1.7)}
7fb0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
7fc0: 20 69 6e 20 3c 62 3e 43 52 45 41 54 45 20 54 45   in <b>CREATE TE
7fd0: 4d 50 4f 52 41 52 59 20 54 41 42 4c 45 3c 2f 62  MPORARY TABLE</b
7fe0: 3e 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73  > which was caus
7ff0: 69 6e 67 20 74 68 65 0a 20 20 20 20 74 61 62 6c  ing the.    tabl
8000: 65 20 74 6f 20 62 65 20 69 6e 69 74 69 61 6c 6c  e to be initiall
8010: 79 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20 74  y allocated in t
8020: 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65  he main database
8030: 20 66 69 6c 65 20 69 6e 73 74 65 61 64 0a 20 20   file instead.  
8040: 20 20 6f 66 20 69 6e 20 74 68 65 20 73 65 70 61    of in the sepa
8050: 72 61 74 65 20 74 65 6d 70 6f 72 61 72 79 20 66  rate temporary f
8060: 69 6c 65 2e 20 20 54 68 69 73 20 62 75 67 20 63  ile.  This bug c
8070: 6f 75 6c 64 20 63 61 75 73 65 20 74 68 65 20 6c  ould cause the l
8080: 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20 73 75  ibrary.    to su
8090: 66 66 65 72 20 61 6e 20 61 73 73 65 72 74 69 6f  ffer an assertio
80a0: 6e 20 66 61 69 6c 75 72 65 20 61 6e 64 20 69 74  n failure and it
80b0: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 22 70 61   could cause "pa
80c0: 67 65 20 6c 65 61 6b 73 22 20 69 6e 20 74 68 65  ge leaks" in the
80d0: 0a 20 20 20 20 6d 61 69 6e 20 64 61 74 61 62 61  .    main databa
80e0: 73 65 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46 69 78  se file..<li>Fix
80f0: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 62 2d   a bug in the b-
8100: 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 20 74  tree subsystem t
8110: 68 61 74 20 63 6f 75 6c 64 20 73 6f 6d 65 74 69  hat could someti
8120: 6d 65 73 20 63 61 75 73 65 20 74 68 65 20 66 69  mes cause the fi
8130: 72 73 74 0a 20 20 20 20 72 6f 77 20 6f 66 20 61  rst.    row of a
8140: 20 74 61 62 6c 65 20 74 6f 20 62 65 20 72 65 70   table to be rep
8150: 65 61 74 65 64 20 64 75 72 69 6e 67 20 61 20 64  eated during a d
8160: 61 74 61 62 61 73 65 20 73 63 61 6e 2e 3c 2f 6c  atabase scan.</l
8170: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
8180: 20 44 65 63 20 31 34 20 28 32 2e 31 2e 36 29 7d   Dec 14 (2.1.6)}
8190: 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 6c   {.<li>Fix the l
81a0: 6f 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d  ocking mechanism
81b0: 20 79 65 74 20 61 67 61 69 6e 20 74 6f 20 70 72   yet again to pr
81c0: 65 76 65 6e 74 0a 20 20 20 20 3c 62 3e 73 71 6c  event.    <b>sql
81d0: 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 66  ite_exec()</b> f
81e0: 72 6f 6d 20 72 65 74 75 72 6e 69 6e 67 20 53 51  rom returning SQ
81f0: 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20  LITE_PROTOCOL.  
8200: 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e    unnecessarily.
8210: 20 20 54 68 69 73 20 74 69 6d 65 20 74 68 65 20    This time the 
8220: 62 75 67 20 77 61 73 20 61 20 72 61 63 65 20 63  bug was a race c
8230: 6f 6e 64 69 74 69 6f 6e 20 69 6e 0a 20 20 20 20  ondition in.    
8240: 74 68 65 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65  the locking code
8250: 2e 20 20 54 68 69 73 20 63 68 61 6e 67 65 20 65  .  This change e
8260: 66 66 65 63 74 73 20 62 6f 74 68 20 50 4f 53 49  ffects both POSI
8270: 58 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 75 73  X and Windows us
8280: 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ers.</li>.}..chn
8290: 67 20 7b 32 30 30 31 20 44 65 63 20 36 20 28 32  g {2001 Dec 6 (2
82a0: 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.5)} {.<li>Fix
82b0: 20 66 6f 72 20 61 6e 6f 74 68 65 72 20 70 72 6f   for another pro
82c0: 62 6c 65 6d 20 28 75 6e 72 65 6c 61 74 65 64 20  blem (unrelated 
82d0: 74 6f 20 74 68 65 20 6f 6e 65 20 66 69 78 65 64  to the one fixed
82e0: 20 69 6e 20 32 2e 31 2e 34 29 20 0a 20 20 20 20   in 2.1.4) .    
82f0: 74 68 61 74 20 73 6f 6d 65 74 69 6d 65 73 20 63  that sometimes c
8300: 61 75 73 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f  auses <b>sqlite_
8310: 65 78 65 63 28 29 3c 2f 62 3e 20 74 6f 20 72 65  exec()</b> to re
8320: 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54  turn SQLITE_PROT
8330: 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73  OCOL.    unneces
8340: 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69  sarily.  This ti
8350: 6d 65 20 74 68 65 20 62 75 67 20 77 61 73 0a 20  me the bug was. 
8360: 20 20 20 69 6e 20 74 68 65 20 50 4f 53 49 58 20     in the POSIX 
8370: 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 61 6e 64  locking code and
8380: 20 73 68 6f 75 6c 64 20 6e 6f 74 20 65 66 66 65   should not effe
8390: 63 74 20 77 69 6e 64 6f 77 73 20 75 73 65 72 73  ct windows users
83a0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
83b0: 32 30 30 31 20 44 65 63 20 34 20 28 32 2e 31 2e  2001 Dec 4 (2.1.
83c0: 34 29 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65 74 69  4)} {.<li>Someti
83d0: 6d 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78  mes <b>sqlite_ex
83e0: 65 63 28 29 3c 2f 62 3e 20 77 6f 75 6c 64 20 72  ec()</b> would r
83f0: 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f  eturn SQLITE_PRO
8400: 54 4f 43 4f 4c 20 77 68 65 6e 20 69 74 0a 20 20  TOCOL when it.  
8410: 20 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65    should have re
8420: 74 75 72 6e 65 64 20 53 51 4c 49 54 45 5f 42 55  turned SQLITE_BU
8430: 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  SY.</li>.<li>The
8440: 20 66 69 78 20 74 6f 20 74 68 65 20 70 72 65 76   fix to the prev
8450: 69 6f 75 73 20 62 75 67 20 75 6e 63 6f 76 65 72  ious bug uncover
8460: 65 64 20 61 20 64 65 61 64 6c 6f 63 6b 20 77 68  ed a deadlock wh
8470: 69 63 68 20 77 61 73 20 61 6c 73 6f 0a 20 20 20  ich was also.   
8480: 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69   fixed.</li>.<li
8490: 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79  >Add the ability
84a0: 20 74 6f 20 70 75 74 20 61 20 73 69 6e 67 6c 65   to put a single
84b0: 20 2e 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65   .command in the
84c0: 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74   second argument
84d0: 0a 20 20 20 20 6f 66 20 74 68 65 20 73 71 6c 69  .    of the sqli
84e0: 74 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c  te shell</li>.<l
84f0: 69 3e 55 70 64 61 74 65 73 20 74 6f 20 74 68 65  i>Updates to the
8500: 20 46 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e   FAQ</li>.}..chn
8510: 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 33 20 28  g {2001 Nov 23 (
8520: 32 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.1.3)} {.<li>Fi
8530: 78 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f  x the behavior o
8540: 66 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65  f comparison ope
8550: 72 61 74 6f 72 73 20 0a 20 20 20 20 28 65 78 3a  rators .    (ex:
8560: 20 22 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c 20 22   "<b>&lt</b>", "
8570: 3c 62 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74 63 2e  <b>==</b>", etc.
8580: 29 0a 20 20 20 20 73 6f 20 74 68 61 74 20 74 68  ).    so that th
8590: 65 79 20 61 72 65 20 63 6f 6e 73 69 73 74 65 6e  ey are consisten
85a0: 74 20 77 69 74 68 20 74 68 65 20 6f 72 64 65 72  t with the order
85b0: 20 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20 61   of entries in a
85c0: 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c  n index.</li>.<l
85d0: 69 3e 43 6f 72 72 65 63 74 20 68 61 6e 64 6c 69  i>Correct handli
85e0: 6e 67 20 6f 66 20 69 6e 74 65 67 65 72 73 20 69  ng of integers i
85f0: 6e 20 53 51 4c 20 65 78 70 72 65 73 73 69 6f 6e  n SQL expression
8600: 73 20 74 68 61 74 20 61 72 65 20 6c 61 72 67 65  s that are large
8610: 72 20 74 68 61 6e 0a 20 20 20 20 77 68 61 74 20  r than.    what 
8620: 63 61 6e 20 62 65 20 72 65 70 72 65 73 65 6e 74  can be represent
8630: 65 64 20 62 79 20 74 68 65 20 6d 61 63 68 69 6e  ed by the machin
8640: 65 20 69 6e 74 65 67 65 72 2e 3c 2f 6c 69 3e 0a  e integer.</li>.
8650: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f  }..chng {2001 No
8660: 76 20 32 32 20 28 32 2e 31 2e 32 29 7d 20 7b 0a  v 22 (2.1.2)} {.
8670: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 73  <li>Changes to s
8680: 75 70 70 6f 72 74 20 36 34 2d 62 69 74 20 61 72  upport 64-bit ar
8690: 63 68 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69  chitectures.</li
86a0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
86b0: 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70  in the locking p
86c0: 72 6f 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  rotocol.</li>.<l
86d0: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
86e0: 20 63 6f 75 6c 64 20 28 72 61 72 65 6c 79 29 20   could (rarely) 
86f0: 63 61 75 73 65 20 74 68 65 20 64 61 74 61 62 61  cause the databa
8700: 73 65 20 74 6f 20 62 65 63 6f 6d 65 20 0a 20 20  se to become .  
8710: 20 20 75 6e 72 65 61 64 61 62 6c 65 20 61 66 74    unreadable aft
8720: 65 72 20 61 20 44 52 4f 50 20 54 41 42 4c 45 20  er a DROP TABLE 
8730: 64 75 65 20 74 6f 20 63 6f 72 72 75 70 74 69 6f  due to corruptio
8740: 6e 20 74 6f 20 74 68 65 20 53 51 4c 49 54 45 5f  n to the SQLITE_
8750: 4d 41 53 54 45 52 0a 20 20 20 20 74 61 62 6c 65  MASTER.    table
8760: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
8770: 65 20 74 68 65 20 63 6f 64 65 20 73 6f 20 74 68  e the code so th
8780: 61 74 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e 31  at version 2.1.1
8790: 20 64 61 74 61 62 61 73 65 73 20 74 68 61 74 20   databases that 
87a0: 77 65 72 65 20 72 65 6e 64 65 72 65 64 20 0a 20  were rendered . 
87b0: 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20 62 79     unreadable by
87c0: 20 74 68 65 20 61 62 6f 76 65 20 62 75 67 20 63   the above bug c
87d0: 61 6e 20 62 65 20 72 65 61 64 20 62 79 20 74 68  an be read by th
87e0: 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20 20  is version of.  
87f0: 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 65 76    the library ev
8800: 65 6e 20 74 68 6f 75 67 68 20 74 68 65 20 53 51  en though the SQ
8810: 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61 62 6c  LITE_MASTER tabl
8820: 65 20 69 73 20 28 73 6c 69 67 68 74 6c 79 29 0a  e is (slightly).
8830: 20 20 20 20 63 6f 72 72 75 70 74 65 64 2e 3c 2f      corrupted.</
8840: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8850: 31 20 4e 6f 76 20 31 33 20 28 32 2e 31 2e 31 29  1 Nov 13 (2.1.1)
8860: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
8870: 20 53 6f 6d 65 74 69 6d 65 73 20 61 72 62 69 74   Sometimes arbit
8880: 72 61 72 79 20 73 74 72 69 6e 67 73 20 77 65 72  rary strings wer
8890: 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20  e passed to the 
88a0: 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 66 75 6e  callback.    fun
88b0: 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 61  ction when the a
88c0: 63 74 75 61 6c 20 76 61 6c 75 65 20 6f 66 20 61  ctual value of a
88d0: 20 63 6f 6c 75 6d 6e 20 77 61 73 20 4e 55 4c 4c   column was NULL
88e0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
88f0: 32 30 30 31 20 4e 6f 76 20 31 32 20 28 32 2e 31  2001 Nov 12 (2.1
8900: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
8910: 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20  e the format of 
8920: 64 61 74 61 20 72 65 63 6f 72 64 73 20 73 6f 20  data records so 
8930: 74 68 61 74 20 72 65 63 6f 72 64 73 20 75 70 20  that records up 
8940: 74 6f 20 31 36 4d 42 20 69 6e 20 73 69 7a 65 0a  to 16MB in size.
8950: 20 20 20 20 63 61 6e 20 62 65 20 73 74 6f 72 65      can be store
8960: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  d.</li>.<li>Chan
8970: 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66  ge the format of
8980: 20 69 6e 64 69 63 65 73 20 74 6f 20 61 6c 6c 6f   indices to allo
8990: 77 20 66 6f 72 20 62 65 74 74 65 72 20 71 75 65  w for better que
89a0: 72 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e  ry optimization.
89b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c 65 6d  </li>.<li>Implem
89c0: 65 6e 74 20 74 68 65 20 22 4c 49 4d 49 54 20 2e  ent the "LIMIT .
89d0: 2e 2e 20 4f 46 46 53 45 54 20 2e 2e 2e 22 20 63  .. OFFSET ..." c
89e0: 6c 61 75 73 65 20 6f 6e 20 53 45 4c 45 43 54 20  lause on SELECT 
89f0: 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  statements.</li>
8a00: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e  .}..chng {2001 N
8a10: 6f 76 20 33 20 28 32 2e 30 2e 38 29 7d 20 7b 0a  ov 3 (2.0.8)} {.
8a20: 3c 6c 69 3e 4d 61 64 65 20 73 65 6c 65 63 74 65  <li>Made selecte
8a30: 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20  d parameters in 
8a40: 41 50 49 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62  API functions <b
8a50: 3e 63 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68 69 73  >const</b>. This
8a60: 20 73 68 6f 75 6c 64 0a 20 20 20 20 62 65 20 66   should.    be f
8a70: 75 6c 6c 79 20 62 61 63 6b 77 61 72 64 73 20 63  ully backwards c
8a80: 6f 6d 70 61 74 69 62 6c 65 2e 3c 2f 6c 69 3e 0a  ompatible.</li>.
8a90: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
8aa0: 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c  n updates</li>.<
8ab0: 6c 69 3e 53 69 6d 70 6c 69 66 79 20 74 68 65 20  li>Simplify the 
8ac0: 64 65 73 69 67 6e 20 6f 66 20 74 68 65 20 56 44  design of the VD
8ad0: 42 45 20 62 79 20 72 65 73 74 72 69 63 74 69 6e  BE by restrictin
8ae0: 67 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20  g the number of 
8af0: 73 6f 72 74 65 72 73 0a 20 20 20 20 61 6e 64 20  sorters.    and 
8b00: 6c 69 73 74 73 20 74 6f 20 31 2e 0a 20 20 20 20  lists to 1..    
8b10: 49 6e 20 70 72 61 63 74 69 63 65 2c 20 6e 6f 20  In practice, no 
8b20: 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 73 6f  more than one so
8b30: 72 74 65 72 20 61 6e 64 20 6f 6e 65 20 6c 69 73  rter and one lis
8b40: 74 20 77 61 73 20 65 76 65 72 20 75 73 65 64 20  t was ever used 
8b50: 61 6e 79 68 6f 77 2e 0a 20 20 20 20 3c 2f 6c 69  anyhow..    </li
8b60: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
8b70: 4f 63 74 20 32 31 20 28 32 2e 30 2e 37 29 7d 20  Oct 21 (2.0.7)} 
8b80: 7b 0a 3c 6c 69 3e 41 6e 79 20 55 54 46 2d 38 20  {.<li>Any UTF-8 
8b90: 63 68 61 72 61 63 74 65 72 20 6f 72 20 49 53 4f  character or ISO
8ba0: 38 38 35 39 20 63 68 61 72 61 63 74 65 72 20 63  8859 character c
8bb0: 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 70 61  an be used as pa
8bc0: 72 74 20 6f 66 0a 20 20 20 20 61 6e 20 69 64 65  rt of.    an ide
8bd0: 6e 74 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  ntifier.</li>.<l
8be0: 69 3e 50 61 74 63 68 65 73 20 66 72 6f 6d 20 43  i>Patches from C
8bf0: 68 72 69 73 74 69 61 6e 20 57 65 72 6e 65 72 20  hristian Werner 
8c00: 74 6f 20 69 6d 70 72 6f 76 65 20 4f 44 42 43 20  to improve ODBC 
8c10: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e  compatibility an
8c20: 64 20 74 6f 0a 20 20 20 20 66 69 78 20 61 20 62  d to.    fix a b
8c30: 75 67 20 69 6e 20 74 68 65 20 72 6f 75 6e 64 28  ug in the round(
8c40: 29 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e  ) function.</li>
8c50: 0a 3c 6c 69 3e 50 6c 75 67 20 73 6f 6d 65 20 6d  .<li>Plug some m
8c60: 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74  emory leaks that
8c70: 20 75 73 65 20 74 6f 20 6f 63 63 75 72 20 69 66   use to occur if
8c80: 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 65 64   malloc() failed
8c90: 2e 0a 20 20 20 20 57 65 20 68 61 76 65 20 62 65  ..    We have be
8ca0: 65 6e 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20  en and continue 
8cb0: 74 6f 20 62 65 20 6d 65 6d 6f 72 79 20 6c 65 61  to be memory lea
8cc0: 6b 20 66 72 65 65 20 61 73 20 6c 6f 6e 67 20 61  k free as long a
8cd0: 73 0a 20 20 20 20 6d 61 6c 6c 6f 63 28 29 20 77  s.    malloc() w
8ce0: 6f 72 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  orks.</li>.<li>C
8cf0: 68 61 6e 67 65 73 20 74 6f 20 73 6f 6d 65 20 74  hanges to some t
8d00: 65 73 74 20 73 63 72 69 70 74 73 20 73 6f 20 74  est scripts so t
8d10: 68 61 74 20 74 68 65 79 20 77 6f 72 6b 20 6f 6e  hat they work on
8d20: 20 57 69 6e 64 6f 77 73 20 69 6e 0a 20 20 20 20   Windows in.    
8d30: 61 64 64 69 74 69 6f 6e 20 74 6f 20 55 6e 69 78  addition to Unix
8d40: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8d50: 32 30 30 31 20 4f 63 74 20 31 39 20 28 32 2e 30  2001 Oct 19 (2.0
8d60: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .6)} {.<li>Added
8d70: 20 74 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c   the EMPTY_RESUL
8d80: 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67  T_CALLBACKS prag
8d90: 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70  ma</li>.<li>Supp
8da0: 6f 72 74 20 66 6f 72 20 55 54 46 2d 38 20 61 6e  ort for UTF-8 an
8db0: 64 20 49 53 4f 38 38 35 39 20 63 68 61 72 61 63  d ISO8859 charac
8dc0: 74 65 72 73 20 69 6e 20 63 6f 6c 75 6d 6e 20 61  ters in column a
8dd0: 6e 64 20 74 61 62 6c 65 20 6e 61 6d 65 73 2e 3c  nd table names.<
8de0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
8df0: 3a 20 43 6f 6d 70 75 74 65 20 63 6f 72 72 65 63  : Compute correc
8e00: 74 20 74 61 62 6c 65 20 6e 61 6d 65 73 20 77 69  t table names wi
8e10: 74 68 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55  th the FULL_COLU
8e20: 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 0a  MN_NAMES pragma.
8e30: 20 20 20 20 69 73 20 74 75 72 6e 65 64 20 6f 6e      is turned on
8e40: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8e50: 32 30 30 31 20 4f 63 74 20 31 34 20 28 32 2e 30  2001 Oct 14 (2.0
8e60: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .5)} {.<li>Added
8e70: 20 74 68 65 20 43 4f 55 4e 54 5f 43 48 41 4e 47   the COUNT_CHANG
8e80: 45 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a  ES pragma.</li>.
8e90: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74  <li>Changes to t
8ea0: 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e  he FULL_COLUMN_N
8eb0: 41 4d 45 53 20 70 72 61 67 6d 61 20 74 6f 20 68  AMES pragma to h
8ec0: 65 6c 70 20 6f 75 74 20 74 68 65 20 4f 44 42 43  elp out the ODBC
8ed0: 20 64 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   driver.</li>.<l
8ee0: 69 3e 42 75 67 20 66 69 78 3a 20 22 53 45 4c 45  i>Bug fix: "SELE
8ef0: 43 54 20 63 6f 75 6e 74 28 2a 29 22 20 77 61 73  CT count(*)" was
8f00: 20 72 65 74 75 72 6e 69 6e 67 20 4e 55 4c 4c 20   returning NULL 
8f10: 66 6f 72 20 65 6d 70 74 79 20 74 61 62 6c 65 73  for empty tables
8f20: 2e 0a 20 20 20 20 4e 6f 77 20 69 74 20 72 65 74  ..    Now it ret
8f30: 75 72 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  urns 0.</li>.}..
8f40: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
8f50: 33 20 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69  3 (2.0.4)} {.<li
8f60: 3e 42 75 67 20 66 69 78 3a 20 61 6e 20 6f 62 73  >Bug fix: an obs
8f70: 63 75 72 65 20 61 6e 64 20 72 65 6c 61 74 69 76  cure and relativ
8f80: 65 6c 79 20 68 61 72 6d 6c 65 73 73 20 62 75 67  ely harmless bug
8f90: 20 77 61 73 20 63 61 75 73 69 6e 67 20 6f 6e 65   was causing one
8fa0: 20 6f 66 0a 20 20 20 20 74 68 65 20 74 65 73 74   of.    the test
8fb0: 73 20 74 6f 20 66 61 69 6c 20 77 68 65 6e 20 67  s to fail when g
8fc0: 63 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  cc optimizations
8fd0: 20 61 72 65 20 74 75 72 6e 65 64 20 6f 6e 2e 20   are turned on. 
8fe0: 20 54 68 69 73 20 72 65 6c 65 61 73 65 0a 20 20   This release.  
8ff0: 20 20 66 69 78 65 73 20 74 68 65 20 70 72 6f 62    fixes the prob
9000: 6c 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  lem.</li>.}..chn
9010: 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28  g {2001 Oct 13 (
9020: 32 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.0.3)} {.<li>Bu
9030: 67 20 66 69 78 3a 20 74 68 65 20 3c 62 3e 73 71  g fix: the <b>sq
9040: 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75  lite_busy_timeou
9050: 74 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e  t()</b> function
9060: 20 77 61 73 20 64 65 6c 61 79 69 6e 67 20 31 30   was delaying 10
9070: 30 30 0a 20 20 20 20 74 69 6d 65 73 20 74 6f 6f  00.    times too
9080: 20 6c 6f 6e 67 20 62 65 66 6f 72 65 20 66 61 69   long before fai
9090: 6c 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ling.</li>.<li>B
90a0: 75 67 20 66 69 78 3a 20 61 6e 20 61 73 73 65 72  ug fix: an asser
90b0: 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67  tion was failing
90c0: 20 69 66 20 74 68 65 20 64 69 73 6b 20 68 6f 6c   if the disk hol
90d0: 64 69 6e 67 20 74 68 65 20 64 61 74 61 62 61 73  ding the databas
90e0: 65 0a 20 20 20 20 66 69 6c 65 20 62 65 63 61 6d  e.    file becam
90f0: 65 20 66 75 6c 6c 20 6f 72 20 73 74 6f 70 70 65  e full or stoppe
9100: 64 20 61 63 63 65 70 74 69 6e 67 20 77 72 69 74  d accepting writ
9110: 65 73 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68 65  es for some othe
9120: 72 20 72 65 61 73 6f 6e 2e 0a 20 20 20 20 4e 65  r reason..    Ne
9130: 77 20 74 65 73 74 73 20 77 65 72 65 20 61 64 64  w tests were add
9140: 65 64 20 74 6f 20 64 65 74 65 63 74 20 73 69 6d  ed to detect sim
9150: 69 6c 61 72 20 70 72 6f 62 6c 65 6d 73 20 69 6e  ilar problems in
9160: 20 74 68 65 20 66 75 74 75 72 65 2e 3c 2f 6c 69   the future.</li
9170: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20  >.<li>Added new 
9180: 6f 70 65 72 61 74 6f 72 73 3a 20 3c 62 3e 26 61  operators: <b>&a
9190: 6d 70 3b 3c 2f 62 3e 20 28 62 69 74 77 69 73 65  mp;</b> (bitwise
91a0: 2d 61 6e 64 29 0a 20 20 20 20 3c 62 3e 7c 3c 2f  -and).    <b>|</
91b0: 62 3e 20 28 62 69 74 77 69 73 65 2d 6f 72 29 2c  b> (bitwise-or),
91c0: 20 3c 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65 73 2d   <b>~</b> (ones-
91d0: 63 6f 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20 20 20  complement),.   
91e0: 20 3c 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 62 3e   <b>&lt;&lt;</b>
91f0: 20 28 73 68 69 66 74 20 6c 65 66 74 29 2c 20 3c   (shift left), <
9200: 62 3e 26 67 74 3b 26 67 74 3b 3c 2f 62 3e 20 28  b>&gt;&gt;</b> (
9210: 73 68 69 66 74 20 72 69 67 68 74 29 2e 3c 2f 6c  shift right).</l
9220: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77  i>.<li>Added new
9230: 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 72   functions: <b>r
9240: 6f 75 6e 64 28 29 3c 2f 62 3e 20 61 6e 64 20 3c  ound()</b> and <
9250: 62 3e 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f 6c 69  b>abs()</b>.</li
9260: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
9270: 4f 63 74 20 39 20 28 32 2e 30 2e 32 29 7d 20 7b  Oct 9 (2.0.2)} {
9280: 0a 3c 6c 69 3e 46 69 78 20 74 77 6f 20 62 75 67  .<li>Fix two bug
9290: 73 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67  s in the locking
92a0: 20 70 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f 6e 65   protocol.  (One
92b0: 20 77 61 73 20 6d 61 73 6b 69 6e 67 20 74 68 65   was masking the
92c0: 20 6f 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c   other.)</li>.<l
92d0: 69 3e 52 65 6d 6f 76 65 64 20 73 6f 6d 65 20 75  i>Removed some u
92e0: 6e 75 73 65 64 20 22 23 69 6e 63 6c 75 64 65 20  nused "#include 
92f0: 3c 75 6e 69 73 74 64 2e 68 3e 22 20 74 68 61 74  <unistd.h>" that
9300: 20 77 65 72 65 20 63 61 75 73 69 6e 67 20 70 72   were causing pr
9310: 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 56  oblems.    for V
9320: 43 2b 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  C++.</li>.<li>Fi
9330: 78 65 64 20 3c 62 3e 73 71 6c 69 74 65 2e 68 3c  xed <b>sqlite.h<
9340: 2f 62 3e 20 73 6f 20 74 68 61 74 20 69 74 20 69  /b> so that it i
9350: 73 20 75 73 61 62 6c 65 20 66 72 6f 6d 20 43 2b  s usable from C+
9360: 2b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  +</li>.<li>Added
9370: 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e   the FULL_COLUMN
9380: 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 2e 20 20  _NAMES pragma.  
9390: 57 68 65 6e 20 73 65 74 20 74 6f 20 22 4f 4e 22  When set to "ON"
93a0: 2c 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 0a 20  , the names of. 
93b0: 20 20 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 72     columns are r
93c0: 65 70 6f 72 74 65 64 20 62 61 63 6b 20 61 73 20  eported back as 
93d0: 54 41 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69 6e 73  TABLE.COLUMN ins
93e0: 74 65 61 64 20 6f 66 20 6a 75 73 74 20 43 4f 4c  tead of just COL
93f0: 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  UMN.</li>.<li>Ad
9400: 64 65 64 20 74 68 65 20 54 41 42 4c 45 5f 49 4e  ded the TABLE_IN
9410: 46 4f 28 29 20 61 6e 64 20 49 4e 44 45 58 5f 49  FO() and INDEX_I
9420: 4e 46 4f 28 29 20 70 72 61 67 6d 61 73 20 74 6f  NFO() pragmas to
9430: 20 68 65 6c 70 20 73 75 70 70 6f 72 74 20 74 68   help support th
9440: 65 0a 20 20 20 20 4f 44 42 43 20 69 6e 74 65 72  e.    ODBC inter
9450: 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  face.</li>.<li>A
9460: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
9470: 20 54 45 4d 50 4f 52 41 52 59 20 74 61 62 6c 65   TEMPORARY table
9480: 73 20 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f  s and indices.</
9490: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
94a0: 31 20 4f 63 74 20 32 20 28 32 2e 30 2e 31 29 7d  1 Oct 2 (2.0.1)}
94b0: 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 73 6f   {.<li>Remove so
94c0: 6d 65 20 43 2b 2b 20 73 74 79 6c 65 20 63 6f 6d  me C++ style com
94d0: 6d 65 6e 74 73 20 66 72 6f 6d 20 62 74 72 65 65  ments from btree
94e0: 2e 63 20 73 6f 20 74 68 61 74 20 69 74 20 77 69  .c so that it wi
94f0: 6c 6c 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 75  ll compile.    u
9500: 73 69 6e 67 20 63 6f 6d 70 69 6c 65 72 73 20 6f  sing compilers o
9510: 74 68 65 72 20 74 68 61 6e 20 67 63 63 2e 3c 2f  ther than gcc.</
9520: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e 64 75  li>.<li>The ".du
9530: 6d 70 22 20 6f 75 74 70 75 74 20 66 72 6f 6d 20  mp" output from 
9540: 74 68 65 20 73 68 65 6c 6c 20 64 6f 65 73 20 6e  the shell does n
9550: 6f 74 20 77 6f 72 6b 20 69 66 20 74 68 65 72 65  ot work if there
9560: 20 61 72 65 20 65 6d 62 65 64 64 65 64 0a 20 20   are embedded.  
9570: 20 20 6e 65 77 6c 69 6e 65 73 20 61 6e 79 77 68    newlines anywh
9580: 65 72 65 20 69 6e 20 74 68 65 20 64 61 74 61 2e  ere in the data.
9590: 20 20 54 68 69 73 20 69 73 20 61 6e 20 6f 6c 64    This is an old
95a0: 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61   bug that was ca
95b0: 72 72 69 65 64 0a 20 20 20 20 66 6f 72 77 61 72  rried.    forwar
95c0: 64 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20 31  d from version 1
95d0: 2e 30 2e 20 20 54 6f 20 66 69 78 20 69 74 2c 20  .0.  To fix it, 
95e0: 74 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70  the ".dump" outp
95f0: 75 74 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20 20 20  ut no longer.   
9600: 20 75 73 65 73 20 74 68 65 20 43 4f 50 59 20 63   uses the COPY c
9610: 6f 6d 6d 61 6e 64 2e 20 20 49 74 20 69 6e 73 74  ommand.  It inst
9620: 65 61 64 20 67 65 6e 65 72 61 74 65 73 20 49 4e  ead generates IN
9630: 53 45 52 54 20 73 74 61 74 65 6d 65 6e 74 73 2e  SERT statements.
9640: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65 6e 64  </li>.<li>Extend
9650: 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20   the expression 
9660: 73 79 6e 74 61 78 20 74 6f 20 73 75 70 70 6f 72  syntax to suppor
9670: 74 20 22 65 78 70 72 20 4e 4f 54 20 4e 55 4c 4c  t "expr NOT NULL
9680: 22 20 28 77 69 74 68 20 61 0a 20 20 20 20 73 70  " (with a.    sp
9690: 61 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20  ace between the 
96a0: 22 4e 4f 54 22 20 61 6e 64 20 74 68 65 20 22 4e  "NOT" and the "N
96b0: 55 4c 4c 22 29 20 69 6e 20 61 64 64 69 74 69 6f  ULL") in additio
96c0: 6e 20 74 6f 20 22 65 78 70 72 20 4e 4f 54 4e 55  n to "expr NOTNU
96d0: 4c 4c 22 0a 20 20 20 20 28 77 69 74 68 20 6e 6f  LL".    (with no
96e0: 20 73 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a   space).</li>.}.
96f0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20  .chng {2001 Sep 
9700: 32 38 20 28 32 2e 30 2e 30 29 7d 20 7b 0a 3c 6c  28 (2.0.0)} {.<l
9710: 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  i>Automatically 
9720: 62 75 69 6c 64 20 62 69 6e 61 72 69 65 73 20 66  build binaries f
9730: 6f 72 20 4c 69 6e 75 78 20 61 6e 64 20 57 69 6e  or Linux and Win
9740: 64 6f 77 73 20 61 6e 64 20 70 75 74 20 74 68 65  dows and put the
9750: 6d 20 6f 6e 0a 20 20 20 20 74 68 65 20 77 65 62  m on.    the web
9760: 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  site.</li>.}..ch
9770: 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 38 20  ng {2001 Sep 28 
9780: 28 32 2e 30 2d 61 6c 70 68 61 2d 34 29 7d 20 7b  (2.0-alpha-4)} {
9790: 0a 3c 6c 69 3e 49 6e 63 6f 72 70 6f 72 61 74 65  .<li>Incorporate
97a0: 20 6d 61 6b 65 66 69 6c 65 20 70 61 74 63 68 65   makefile patche
97b0: 73 20 66 6f 72 6d 20 41 2e 20 52 6f 74 74 6d 61  s form A. Rottma
97c0: 6e 6e 20 74 6f 20 75 73 65 20 4c 49 42 54 4f 4f  nn to use LIBTOO
97d0: 4c 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  L</li>.}..chng {
97e0: 32 30 30 31 20 53 65 70 20 32 37 20 28 32 2e 30  2001 Sep 27 (2.0
97f0: 2d 61 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c 6c 69  -alpha-3)} {.<li
9800: 3e 53 51 4c 69 74 65 20 6e 6f 77 20 68 6f 6e 6f  >SQLite now hono
9810: 72 73 20 74 68 65 20 55 4e 49 51 55 45 20 6b 65  rs the UNIQUE ke
9820: 79 77 6f 72 64 20 69 6e 20 43 52 45 41 54 45 20  yword in CREATE 
9830: 55 4e 49 51 55 45 20 49 4e 44 45 58 2e 20 20 50  UNIQUE INDEX.  P
9840: 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 73 20  rimary.    keys 
9850: 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20  are required to 
9860: 62 65 20 75 6e 69 71 75 65 2e 3c 2f 6c 69 3e 0a  be unique.</li>.
9870: 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20  <li>File format 
9880: 63 68 61 6e 67 65 64 20 62 61 63 6b 20 74 6f 20  changed back to 
9890: 77 68 61 74 20 69 74 20 77 61 73 20 66 6f 72 20  what it was for 
98a0: 61 6c 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69  alpha-1</li>.<li
98b0: 3e 46 69 78 65 73 20 74 6f 20 74 68 65 20 72 6f  >Fixes to the ro
98c0: 6c 6c 62 61 63 6b 20 61 6e 64 20 6c 6f 63 6b 69  llback and locki
98d0: 6e 67 20 62 65 68 61 76 69 6f 72 3c 2f 6c 69 3e  ng behavior</li>
98e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53  .}..chng {2001 S
98f0: 65 70 20 32 30 20 28 32 2e 30 2d 61 6c 70 68 61  ep 20 (2.0-alpha
9900: 2d 32 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69  -2)} {.<li>Initi
9910: 61 6c 20 72 65 6c 65 61 73 65 20 6f 66 20 76 65  al release of ve
9920: 72 73 69 6f 6e 20 32 2e 30 2e 20 20 54 68 65 20  rsion 2.0.  The 
9930: 69 64 65 61 20 6f 66 20 72 65 6e 61 6d 69 6e 67  idea of renaming
9940: 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20   the library.   
9950: 20 74 6f 20 22 53 51 4c 75 73 22 20 77 61 73 20   to "SQLus" was 
9960: 61 62 61 6e 64 6f 6e 65 64 20 69 6e 20 66 61 76  abandoned in fav
9970: 6f 72 20 6f 66 20 6b 65 65 70 69 6e 67 20 74 68  or of keeping th
9980: 65 20 22 53 51 4c 69 74 65 22 20 6e 61 6d 65 20  e "SQLite" name 
9990: 61 6e 64 0a 20 20 20 20 62 75 6d 70 69 6e 67 20  and.    bumping 
99a0: 74 68 65 20 6d 61 6a 6f 72 20 76 65 72 73 69 6f  the major versio
99b0: 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c  n number.</li>.<
99c0: 6c 69 3e 54 68 65 20 70 61 67 65 72 20 61 6e 64  li>The pager and
99d0: 20 62 74 72 65 65 20 73 75 62 73 79 73 74 65 6d   btree subsystem
99e0: 73 20 61 64 64 65 64 20 62 61 63 6b 2e 20 54 68  s added back. Th
99f0: 65 79 20 61 72 65 20 6e 6f 77 20 74 68 65 20 6f  ey are now the o
9a00: 6e 6c 79 0a 20 20 20 20 61 76 61 69 6c 61 62 6c  nly.    availabl
9a10: 65 20 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a  e backend.</li>.
9a20: 3c 6c 69 3e 54 68 65 20 44 62 62 65 20 61 62 73  <li>The Dbbe abs
9a30: 74 72 61 63 74 69 6f 6e 20 61 6e 64 20 74 68 65  traction and the
9a40: 20 47 44 42 4d 20 61 6e 64 20 6d 65 6d 6f 72 79   GDBM and memory
9a50: 20 64 72 69 76 65 72 73 20 77 65 72 65 20 72 65   drivers were re
9a60: 6d 6f 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  moved.</li>.<li>
9a70: 43 6f 70 79 72 69 67 68 74 20 6f 6e 20 61 6c 6c  Copyright on all
9a80: 20 63 6f 64 65 20 77 61 73 20 64 69 73 63 6c 61   code was discla
9a90: 69 6d 65 64 2e 20 20 54 68 65 20 6c 69 62 72 61  imed.  The libra
9aa0: 72 79 20 69 73 20 6e 6f 77 20 69 6e 20 74 68 65  ry is now in the
9ab0: 0a 20 20 20 20 70 75 62 6c 69 63 20 64 6f 6d 61  .    public doma
9ac0: 69 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  in.</li>.}..chng
9ad0: 20 7b 32 30 30 31 20 4a 75 6c 20 32 33 20 28 31   {2001 Jul 23 (1
9ae0: 2e 30 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e 50 61  .0.32)} {.<li>Pa
9af0: 67 65 72 20 61 6e 64 20 62 74 72 65 65 20 73 75  ger and btree su
9b00: 62 73 79 73 74 65 6d 73 20 72 65 6d 6f 76 65 64  bsystems removed
9b10: 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20 62 65  .  These will be
9b20: 20 75 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c 6f   used in a follo
9b30: 77 2d 6f 6e 0a 20 20 20 20 53 51 4c 20 73 65 72  w-on.    SQL ser
9b40: 76 65 72 20 6c 69 62 72 61 72 79 20 6e 61 6d 65  ver library name
9b50: 64 20 22 53 51 4c 75 73 22 2e 3c 2f 6c 69 3e 0a  d "SQLus".</li>.
9b60: 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c  <li>Add the abil
9b70: 69 74 79 20 74 6f 20 75 73 65 20 71 75 6f 74 65  ity to use quote
9b80: 64 20 73 74 72 69 6e 67 73 20 61 73 20 74 61 62  d strings as tab
9b90: 6c 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 6e 61  le and column na
9ba0: 6d 65 73 20 69 6e 0a 20 20 20 20 65 78 70 72 65  mes in.    expre
9bb0: 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ssions.</li>.}..
9bc0: 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 31  chng {2001 Apr 1
9bd0: 34 20 28 31 2e 30 2e 33 31 29 7d 20 7b 0a 3c 6c  4 (1.0.31)} {.<l
9be0: 69 3e 50 61 67 65 72 20 73 75 62 73 79 73 74 65  i>Pager subsyste
9bf0: 6d 20 61 64 64 65 64 20 62 75 74 20 6e 6f 74 20  m added but not 
9c00: 79 65 74 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 3c  yet used.</li>.<
9c10: 6c 69 3e 4d 6f 72 65 20 72 6f 62 75 73 74 20 68  li>More robust h
9c20: 61 6e 64 6c 69 6e 67 20 6f 66 20 6f 75 74 2d 6f  andling of out-o
9c30: 66 2d 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73 2e  f-memory errors.
9c40: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 74 65  </li>.<li>New te
9c50: 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68 65  sts added to the
9c60: 20 74 65 73 74 20 73 75 69 74 65 2e 3c 2f 6c 69   test suite.</li
9c70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
9c80: 41 70 72 20 36 20 28 31 2e 30 2e 33 30 29 7d 20  Apr 6 (1.0.30)} 
9c90: 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65  {.<li>Remove the
9ca0: 20 3c 62 3e 73 71 6c 69 74 65 5f 65 6e 63 6f 64   <b>sqlite_encod
9cb0: 69 6e 67 3c 2f 62 3e 20 54 43 4c 20 76 61 72 69  ing</b> TCL vari
9cc0: 61 62 6c 65 20 74 68 61 74 20 77 61 73 20 69 6e  able that was in
9cd0: 74 72 6f 64 75 63 65 64 0a 20 20 20 20 69 6e 20  troduced.    in 
9ce0: 74 68 65 20 70 72 65 76 69 6f 75 73 20 76 65 72  the previous ver
9cf0: 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  sion.</li>.<li>A
9d00: 64 64 20 6f 70 74 69 6f 6e 73 20 3c 62 3e 2d 65  dd options <b>-e
9d10: 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e 64 20  ncoding</b> and 
9d20: 3c 62 3e 2d 74 63 6c 2d 75 73 65 73 2d 75 74 66  <b>-tcl-uses-utf
9d30: 3c 2f 62 3e 20 74 6f 20 74 68 65 0a 20 20 20 20  </b> to the.    
9d40: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 54 43  <b>sqlite</b> TC
9d50: 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a  L command.</li>.
9d60: 3c 6c 69 3e 41 64 64 20 74 65 73 74 73 20 74 6f  <li>Add tests to
9d70: 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20   make sure that 
9d80: 74 63 6c 73 71 6c 69 74 65 20 77 61 73 20 63 6f  tclsqlite was co
9d90: 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 54 63 6c  mpiled using Tcl
9da0: 20 68 65 61 64 65 72 0a 20 20 20 20 66 69 6c 65   header.    file
9db0: 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 20  s and libraries 
9dc0: 74 68 61 74 20 6d 61 74 63 68 2e 3c 2f 6c 69 3e  that match.</li>
9dd0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41  .}..chng {2001 A
9de0: 70 72 20 35 20 28 31 2e 30 2e 32 39 29 7d 20 7b  pr 5 (1.0.29)} {
9df0: 0a 3c 6c 69 3e 54 68 65 20 6c 69 62 72 61 72 79  .<li>The library
9e00: 20 6e 6f 77 20 61 73 73 75 6d 65 73 20 64 61 74   now assumes dat
9e10: 61 20 69 73 20 73 74 6f 72 65 64 20 61 73 20 55  a is stored as U
9e20: 54 46 2d 38 20 69 66 20 74 68 65 20 2d 2d 65 6e  TF-8 if the --en
9e30: 61 62 6c 65 2d 75 74 66 38 0a 20 20 20 20 6f 70  able-utf8.    op
9e40: 74 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 74 6f  tion is given to
9e50: 20 63 6f 6e 66 69 67 75 72 65 2e 20 20 54 68 65   configure.  The
9e60: 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f   default behavio
9e70: 72 20 69 73 20 74 6f 20 61 73 73 75 6d 65 0a 20  r is to assume. 
9e80: 20 20 20 69 73 6f 38 38 35 39 2d 78 2c 20 61 73     iso8859-x, as
9e90: 20 69 74 20 68 61 73 20 61 6c 77 61 79 73 20 64   it has always d
9ea0: 6f 6e 65 2e 20 20 54 68 69 73 20 6f 6e 6c 79 20  one.  This only 
9eb0: 6d 61 6b 65 73 20 61 20 64 69 66 66 65 72 65 6e  makes a differen
9ec0: 63 65 20 66 6f 72 0a 20 20 20 20 4c 49 4b 45 20  ce for.    LIKE 
9ed0: 61 6e 64 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f  and GLOB operato
9ee0: 72 73 20 61 6e 64 20 74 68 65 20 4c 45 4e 47 54  rs and the LENGT
9ef0: 48 20 61 6e 64 20 53 55 42 53 54 52 20 66 75 6e  H and SUBSTR fun
9f00: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
9f10: 3e 49 66 20 74 68 65 20 6c 69 62 72 61 72 79 20  >If the library 
9f20: 69 73 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 65  is not configure
9f30: 64 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20  d for UTF-8 and 
9f40: 74 68 65 20 54 63 6c 20 6c 69 62 72 61 72 79 0a  the Tcl library.
9f50: 20 20 20 20 69 73 20 6f 6e 65 20 6f 66 20 74 68      is one of th
9f60: 65 20 6e 65 77 65 72 20 6f 6e 65 73 20 74 68 61  e newer ones tha
9f70: 74 20 75 73 65 73 20 55 54 46 2d 38 20 69 6e 74  t uses UTF-8 int
9f80: 65 72 6e 61 6c 6c 79 2c 0a 20 20 20 20 74 68 65  ernally,.    the
9f90: 6e 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66  n a conversion f
9fa0: 72 6f 6d 20 55 54 46 2d 38 20 74 6f 20 69 73 6f  rom UTF-8 to iso
9fb0: 38 38 35 39 20 61 6e 64 0a 20 20 20 20 62 61 63  8859 and.    bac
9fc0: 6b 20 61 67 61 69 6e 20 69 73 20 64 6f 6e 65 20  k again is done 
9fd0: 69 6e 73 69 64 65 20 74 68 65 20 54 43 4c 20 69  inside the TCL i
9fe0: 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d  nterface.</li>.}
9ff0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72  ..chng {2001 Apr
a000: 20 34 20 28 31 2e 30 2e 32 38 29 7d 20 7b 0a 3c   4 (1.0.28)} {.<
a010: 6c 69 3e 41 64 64 65 64 20 6c 69 6d 69 74 65 64  li>Added limited
a020: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 72 61   support for tra
a030: 6e 73 61 63 74 69 6f 6e 73 2e 20 20 41 74 20 74  nsactions.  At t
a040: 68 69 73 20 70 6f 69 6e 74 2c 20 74 72 61 6e 73  his point, trans
a050: 61 63 74 69 6f 6e 73 0a 20 20 20 20 77 69 6c 6c  actions.    will
a060: 20 64 6f 20 74 61 62 6c 65 20 6c 6f 63 6b 69 6e   do table lockin
a070: 67 20 6f 6e 20 74 68 65 20 47 44 42 4d 20 62 61  g on the GDBM ba
a080: 63 6b 65 6e 64 2e 20 20 54 68 65 72 65 20 69 73  ckend.  There is
a090: 20 6e 6f 20 73 75 70 70 6f 72 74 20 28 79 65 74   no support (yet
a0a0: 29 0a 20 20 20 20 66 6f 72 20 72 6f 6c 6c 62 61  ).    for rollba
a0b0: 63 6b 20 6f 72 20 61 74 6f 6d 69 63 20 63 6f 6d  ck or atomic com
a0c0: 6d 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  mit.</li>.<li>Ad
a0d0: 64 65 64 20 73 70 65 63 69 61 6c 20 63 6f 6c 75  ded special colu
a0e0: 6d 6e 20 6e 61 6d 65 73 20 52 4f 57 49 44 2c 20  mn names ROWID, 
a0f0: 4f 49 44 2c 20 61 6e 64 20 5f 52 4f 57 49 44 5f  OID, and _ROWID_
a100: 20 74 68 61 74 20 72 65 66 65 72 20 74 6f 20 74   that refer to t
a110: 68 65 0a 20 20 20 20 75 6e 69 71 75 65 20 72 61  he.    unique ra
a120: 6e 64 6f 6d 20 69 6e 74 65 67 65 72 20 6b 65 79  ndom integer key
a130: 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68   associated with
a140: 20 65 76 65 72 79 20 72 6f 77 20 6f 66 20 65 76   every row of ev
a150: 65 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  ery table.</li>.
a160: 3c 6c 69 3e 41 64 64 69 74 69 6f 6e 61 6c 20 74  <li>Additional t
a170: 65 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68  ests added to th
a180: 65 20 72 65 67 72 65 73 73 69 6f 6e 20 73 75 69  e regression sui
a190: 74 65 20 74 6f 20 63 6f 76 65 72 20 74 68 65 20  te to cover the 
a1a0: 6e 65 77 20 52 4f 57 49 44 0a 20 20 20 20 66 65  new ROWID.    fe
a1b0: 61 74 75 72 65 20 61 6e 64 20 74 68 65 20 54 43  ature and the TC
a1c0: 4c 20 69 6e 74 65 72 66 61 63 65 20 62 75 67 73  L interface bugs
a1d0: 20 6d 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f 77   mentioned below
a1e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
a1f0: 65 73 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e  es to the "lemon
a200: 22 20 70 61 72 73 65 72 20 67 65 6e 65 72 61 74  " parser generat
a210: 6f 72 20 74 6f 20 68 65 6c 70 20 69 74 20 77 6f  or to help it wo
a220: 72 6b 20 62 65 74 74 65 72 20 77 68 65 6e 0a 20  rk better when. 
a230: 20 20 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e     compiled usin
a240: 67 20 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69  g MSVC.</li>.<li
a250: 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68  >Bug fixes in th
a260: 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20  e TCL interface 
a270: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 4f 6c  identified by Ol
a280: 65 67 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f 6c 69  eg Oleinick.</li
a290: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a2a0: 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 37 29 7d  Mar 20 (1.0.27)}
a2b0: 20 7b 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f 69 6e   {.<li>When doin
a2c0: 67 20 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44  g DELETE and UPD
a2d0: 41 54 45 2c 20 74 68 65 20 6c 69 62 72 61 72 79  ATE, the library
a2e0: 20 75 73 65 64 20 74 6f 20 77 72 69 74 65 20 74   used to write t
a2f0: 68 65 20 72 65 63 6f 72 64 0a 20 20 20 20 6e 75  he record.    nu
a300: 6d 62 65 72 73 20 6f 66 20 72 65 63 6f 72 64 73  mbers of records
a310: 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64 20 6f   to be deleted o
a320: 72 20 75 70 64 61 74 65 64 20 69 6e 74 6f 20 61  r updated into a
a330: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e   temporary file.
a340: 0a 20 20 20 20 54 68 69 73 20 69 73 20 63 68 61  .    This is cha
a350: 6e 67 65 64 20 73 6f 20 74 68 61 74 20 74 68 65  nged so that the
a360: 20 72 65 63 6f 72 64 20 6e 75 6d 62 65 72 73 20   record numbers 
a370: 61 72 65 20 68 65 6c 64 20 69 6e 20 6d 65 6d 6f  are held in memo
a380: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ry.</li>.<li>The
a390: 20 44 45 4c 45 54 45 20 63 6f 6d 6d 61 6e 64 20   DELETE command 
a3a0: 77 69 74 68 6f 75 74 20 61 20 57 48 49 4c 45 20  without a WHILE 
a3b0: 63 6c 61 75 73 65 20 6a 75 73 74 20 72 65 6d 6f  clause just remo
a3c0: 76 65 73 20 74 68 65 20 64 61 74 61 62 61 73 65  ves the database
a3d0: 0a 20 20 20 20 66 69 6c 65 73 20 66 72 6f 6d 20  .    files from 
a3e0: 74 68 65 20 64 69 73 6b 2c 20 72 61 74 68 65 72  the disk, rather
a3f0: 20 74 68 61 6e 20 67 6f 69 6e 67 20 74 68 72 6f   than going thro
a400: 75 67 68 20 61 6e 64 20 64 65 6c 65 74 69 6e 67  ugh and deleting
a410: 20 72 65 63 6f 72 64 0a 20 20 20 20 62 79 20 72   record.    by r
a420: 65 63 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ecord.</li>.}..c
a430: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30  hng {2001 Mar 20
a440: 20 28 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c 6c 69   (1.0.26)} {.<li
a450: 3e 41 20 73 65 72 69 6f 75 73 20 62 75 67 20 66  >A serious bug f
a460: 69 78 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 2e  ixed on Windows.
a470: 20 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73 20    Windows users 
a480: 73 68 6f 75 6c 64 20 75 70 67 72 61 64 65 2e 0a  should upgrade..
a490: 20 20 20 20 4e 6f 20 69 6d 70 61 63 74 20 74 6f      No impact to
a4a0: 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   Unix.</li>.}..c
a4b0: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31 35  hng {2001 Mar 15
a4c0: 20 28 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c 6c 69   (1.0.25)} {.<li
a4d0: 3e 4d 6f 64 69 66 79 20 74 68 65 20 74 65 73 74  >Modify the test
a4e0: 20 73 63 72 69 70 74 73 20 74 6f 20 69 64 65 6e   scripts to iden
a4f0: 74 69 66 79 20 74 65 73 74 73 20 74 68 61 74 20  tify tests that 
a500: 64 65 70 65 6e 64 20 6f 6e 20 73 79 73 74 65 6d  depend on system
a510: 0a 20 20 20 20 6c 6f 61 64 20 61 6e 64 20 70 72  .    load and pr
a520: 6f 63 65 73 73 6f 72 20 73 70 65 65 64 20 61 6e  ocessor speed an
a530: 64 0a 20 20 20 20 74 6f 20 77 61 72 6e 20 74 68  d.    to warn th
a540: 65 20 75 73 65 72 20 74 68 61 74 20 61 20 66 61  e user that a fa
a550: 69 6c 75 72 65 20 6f 66 20 6f 6e 65 20 6f 66 20  ilure of one of 
a560: 74 68 6f 73 65 20 28 72 61 72 65 29 20 74 65 73  those (rare) tes
a570: 74 73 20 64 6f 65 73 0a 20 20 20 20 6e 6f 74 20  ts does.    not 
a580: 6e 65 63 65 73 73 61 72 69 6c 79 20 6d 65 61 6e  necessarily mean
a590: 20 74 68 65 20 6c 69 62 72 61 72 79 20 69 73 20   the library is 
a5a0: 6d 61 6c 66 75 6e 63 74 69 6f 6e 69 6e 67 2e 20  malfunctioning. 
a5b0: 20 4e 6f 20 63 68 61 6e 67 65 73 20 74 6f 0a 20   No changes to. 
a5c0: 20 20 20 63 6f 64 65 2e 0a 20 20 20 20 3c 2f 6c     code..    </l
a5d0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
a5e0: 20 4d 61 72 20 31 34 20 28 31 2e 30 2e 32 34 29   Mar 14 (1.0.24)
a5f0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
a600: 67 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73  g which was caus
a610: 69 6e 67 0a 20 20 20 20 74 68 65 20 55 50 44 41  ing.    the UPDA
a620: 54 45 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66 61  TE command to fa
a630: 69 6c 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68  il on systems wh
a640: 65 72 65 20 22 6d 61 6c 6c 6f 63 28 30 29 22 20  ere "malloc(0)" 
a650: 72 65 74 75 72 6e 73 0a 20 20 20 20 4e 55 4c 4c  returns.    NULL
a660: 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 64  .  The problem d
a670: 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 57  oes not appear W
a680: 69 6e 64 6f 77 73 2c 20 4c 69 6e 75 78 2c 20 6f  indows, Linux, o
a690: 72 20 48 50 55 58 20 62 75 74 20 64 6f 65 73 20  r HPUX but does 
a6a0: 0a 20 20 20 20 63 61 75 73 65 20 74 68 65 20 6c  .    cause the l
a6b0: 69 62 72 61 72 79 20 74 6f 20 66 61 69 6c 20 6f  ibrary to fail o
a6c0: 6e 20 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c 69 3e  n QNX..    </li>
a6d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
a6e0: 65 62 20 31 39 20 28 31 2e 30 2e 32 33 29 7d 20  eb 19 (1.0.23)} 
a6f0: 7b 0a 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c 61 74  {.<li>An unrelat
a700: 65 64 20 28 61 6e 64 20 6d 69 6e 6f 72 29 20 62  ed (and minor) b
a710: 75 67 20 66 72 6f 6d 20 4d 61 72 6b 20 4d 75 72  ug from Mark Mur
a720: 61 6e 77 73 6b 69 20 66 69 78 65 64 2e 20 20 54  anwski fixed.  T
a730: 68 65 20 61 6c 67 6f 72 69 74 68 6d 0a 20 20 20  he algorithm.   
a740: 20 66 6f 72 20 66 69 67 75 72 69 6e 67 20 6f 75   for figuring ou
a750: 74 20 77 68 65 72 65 20 74 6f 20 70 75 74 20 74  t where to put t
a760: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 66  emporary files f
a770: 6f 72 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 64  or a "memory:" d
a780: 61 74 61 62 61 73 65 0a 20 20 20 20 77 61 73 20  atabase.    was 
a790: 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 71 75 69 74  not working quit
a7a0: 65 20 72 69 67 68 74 2e 0a 20 20 20 20 3c 2f 6c  e right..    </l
a7b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
a7c0: 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 32 29   Feb 19 (1.0.22)
a7d0: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 72 65 76  } {.<li>The prev
a7e0: 69 6f 75 73 20 66 69 78 20 77 61 73 20 6e 6f 74  ious fix was not
a7f0: 20 71 75 69 74 65 20 72 69 67 68 74 2e 20 20 54   quite right.  T
a800: 68 69 73 20 6f 6e 65 20 73 65 65 6d 73 20 74 6f  his one seems to
a810: 20 77 6f 72 6b 20 62 65 74 74 65 72 2e 0a 20 20   work better..  
a820: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
a830: 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e  {2001 Feb 19 (1.
a840: 30 2e 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65  0.21)} {.<li>The
a850: 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e   UPDATE statemen
a860: 74 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e  t was not workin
a870: 67 20 77 68 65 6e 20 74 68 65 20 57 48 45 52 45  g when the WHERE
a880: 20 63 6c 61 75 73 65 20 63 6f 6e 74 61 69 6e 65   clause containe
a890: 64 0a 20 20 20 20 73 6f 6d 65 20 74 65 72 6d 73  d.    some terms
a8a0: 20 74 68 61 74 20 63 6f 75 6c 64 20 62 65 20 73   that could be s
a8b0: 61 74 69 73 66 69 65 64 20 75 73 69 6e 67 20 69  atisfied using i
a8c0: 6e 64 69 63 65 73 20 61 6e 64 20 6f 74 68 65 72  ndices and other
a8d0: 20 74 65 72 6d 73 20 74 68 61 74 0a 20 20 20 20   terms that.    
a8e0: 63 6f 75 6c 64 20 6e 6f 74 2e 20 20 46 69 78 65  could not.  Fixe
a8f0: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
a900: 7b 32 30 30 31 20 46 65 62 20 31 31 20 28 31 2e  {2001 Feb 11 (1.
a910: 30 2e 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 65 72  0.20)} {.<li>Mer
a920: 67 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63  ge development c
a930: 68 61 6e 67 65 73 20 69 6e 74 6f 20 74 68 65 20  hanges into the 
a940: 6d 61 69 6e 20 74 72 75 6e 6b 2e 20 20 46 75 74  main trunk.  Fut
a950: 75 72 65 20 77 6f 72 6b 20 74 6f 77 61 72 64 0a  ure work toward.
a960: 20 20 20 20 75 73 69 6e 67 20 61 20 42 54 72 65      using a BTre
a970: 65 20 66 69 6c 65 20 73 74 72 75 63 74 75 72 65  e file structure
a980: 20 77 69 6c 6c 20 75 73 65 20 61 20 73 65 70 61   will use a sepa
a990: 72 61 74 65 20 43 56 53 20 73 6f 75 72 63 65 20  rate CVS source 
a9a0: 74 72 65 65 2e 20 20 54 68 69 73 0a 20 20 20 20  tree.  This.    
a9b0: 43 56 53 20 74 72 65 65 20 77 69 6c 6c 20 63 6f  CVS tree will co
a9c0: 6e 74 69 6e 75 65 20 74 6f 20 73 75 70 70 6f 72  ntinue to suppor
a9d0: 74 20 74 68 65 20 47 44 42 4d 20 76 65 72 73 69  t the GDBM versi
a9e0: 6f 6e 20 6f 66 20 53 51 4c 69 74 65 20 6f 6e 6c  on of SQLite onl
a9f0: 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  y.</li>.}..chng 
aa00: 7b 32 30 30 31 20 46 65 62 20 36 20 28 31 2e 30  {2001 Feb 6 (1.0
aa10: 2e 31 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .19)} {.<li>Fix 
aa20: 61 20 73 74 72 61 6e 67 65 20 28 62 75 74 20 76  a strange (but v
aa30: 61 6c 69 64 29 20 43 20 64 65 63 6c 61 72 61 74  alid) C declarat
aa40: 69 6f 6e 20 74 68 61 74 20 77 61 73 20 63 61 75  ion that was cau
aa50: 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20  sing problems.  
aa60: 20 20 66 6f 72 20 51 4e 58 2e 20 20 4e 6f 20 6c    for QNX.  No l
aa70: 6f 67 69 63 61 6c 20 63 68 61 6e 67 65 73 2e 3c  ogical changes.<
aa80: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
aa90: 30 31 20 4a 61 6e 20 34 20 28 31 2e 30 2e 31 38  01 Jan 4 (1.0.18
aaa0: 29 7d 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74 20 74  )} {.<li>Print t
aab0: 68 65 20 6f 66 66 65 6e 64 69 6e 67 20 53 51 4c  he offending SQL
aac0: 20 73 74 61 74 65 6d 65 6e 74 20 77 68 65 6e 20   statement when 
aad0: 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 2e  an error occurs.
aae0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
aaf0: 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 73 20   require commas 
ab00: 62 65 74 77 65 65 6e 20 63 6f 6e 73 74 72 61 69  between constrai
ab10: 6e 74 73 20 69 6e 20 43 52 45 41 54 45 20 54 41  nts in CREATE TA
ab20: 42 4c 45 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c  BLE statements.<
ab30: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
ab40: 68 65 20 22 2d 65 63 68 6f 22 20 6f 70 74 69 6f  he "-echo" optio
ab50: 6e 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c  n to the shell.<
ab60: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  /li>.<li>Changes
ab70: 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c   to comments.</l
ab80: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
ab90: 20 44 65 63 20 31 30 20 28 31 2e 30 2e 31 37 29   Dec 10 (1.0.17)
aba0: 7d 20 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74 65 20  } {.<li>Rewrote 
abb0: 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65  <b>sqlite_comple
abc0: 74 65 28 29 3c 2f 62 3e 20 74 6f 20 6d 61 6b 65  te()</b> to make
abd0: 20 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e   it faster.</li>
abe0: 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 74 77 65 61 6b  .<li>Minor tweak
abf0: 73 20 74 6f 20 6f 74 68 65 72 20 63 6f 64 65 20  s to other code 
ac00: 74 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e 20 61  to make it run a
ac10: 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 3c   little faster.<
ac20: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  /li>.<li>Added n
ac30: 65 77 20 74 65 73 74 73 20 66 6f 72 20 3c 62 3e  ew tests for <b>
ac40: 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28  sqlite_complete(
ac50: 29 3c 2f 62 3e 20 61 6e 64 20 66 6f 72 20 6d 65  )</b> and for me
ac60: 6d 6f 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c 69 3e  mory leaks.</li>
ac70: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44  .}..chng {2000 D
ac80: 65 63 20 34 20 28 31 2e 30 2e 31 36 29 7d 20 7b  ec 4 (1.0.16)} {
ac90: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
aca0: 6f 6e 20 75 70 64 61 74 65 73 2e 20 20 4d 6f 73  on updates.  Mos
acb0: 74 6c 79 20 66 69 78 69 6e 67 20 6f 66 20 74 79  tly fixing of ty
acc0: 70 6f 73 20 61 6e 64 20 73 70 65 6c 6c 69 6e 67  pos and spelling
acd0: 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a   errors.</li>.}.
ace0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
acf0: 32 33 20 28 31 2e 30 2e 31 35 29 7d 20 7b 0a 3c  23 (1.0.15)} {.<
ad00: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
ad10: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
ad20: 69 3e 53 6f 6d 65 20 73 61 6e 69 74 79 20 63 68  i>Some sanity ch
ad30: 65 63 6b 69 6e 67 20 63 6f 64 65 20 77 61 73 20  ecking code was 
ad40: 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65  removed from the
ad50: 20 69 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66 20 76   inner loop of v
ad60: 64 62 65 2e 63 0a 20 20 20 20 74 6f 20 68 65 6c  dbe.c.    to hel
ad70: 70 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f  p the library to
ad80: 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61   run a little fa
ad90: 73 74 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20  ster.  The code 
ada0: 69 73 20 6f 6e 6c 79 0a 20 20 20 20 72 65 6d 6f  is only.    remo
adb0: 76 65 64 20 69 66 20 79 6f 75 20 63 6f 6d 70 69  ved if you compi
adc0: 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42 55 47  le with -DNDEBUG
add0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
ade0: 32 30 30 30 20 4f 63 74 20 31 39 20 28 31 2e 30  2000 Oct 19 (1.0
adf0: 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  .14)} {.<li>Adde
ae00: 64 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 62 61  d a "memory:" ba
ae10: 63 6b 65 6e 64 20 64 72 69 76 65 72 20 74 68 61  ckend driver tha
ae20: 74 20 73 74 6f 72 65 73 20 69 74 73 20 64 61 74  t stores its dat
ae30: 61 62 61 73 65 20 69 6e 20 61 6e 0a 20 20 20 20  abase in an.    
ae40: 69 6e 2d 6d 65 6d 6f 72 79 20 68 61 73 68 20 74  in-memory hash t
ae50: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  able.</li>.}..ch
ae60: 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 38 20  ng {2000 Oct 18 
ae70: 28 31 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.13)} {.<li>
ae80: 42 72 65 61 6b 20 6f 75 74 20 74 68 65 20 47 44  Break out the GD
ae90: 42 4d 20 64 72 69 76 65 72 20 69 6e 74 6f 20 61  BM driver into a
aea0: 20 73 65 70 61 72 61 74 65 20 66 69 6c 65 20 69   separate file i
aeb0: 6e 20 61 6e 74 69 63 69 70 61 74 69 6f 6e 0a 20  n anticipation. 
aec0: 20 20 20 74 6f 20 61 64 64 65 64 20 6e 65 77 20     to added new 
aed0: 64 72 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  drivers.</li>.<l
aee0: 69 3e 41 6c 6c 6f 77 20 74 68 65 20 6e 61 6d 65  i>Allow the name
aef0: 20 6f 66 20 61 20 64 61 74 61 62 61 73 65 20 74   of a database t
af00: 6f 20 62 65 20 70 72 65 66 69 78 65 64 20 62 79  o be prefixed by
af10: 20 74 68 65 20 64 72 69 76 65 72 20 74 79 70 65   the driver type
af20: 2e 0a 20 20 20 20 46 6f 72 20 6e 6f 77 2c 20 74  ..    For now, t
af30: 68 65 20 6f 6e 6c 79 20 64 72 69 76 65 72 20 74  he only driver t
af40: 79 70 65 20 69 73 20 22 67 64 62 6d 3a 22 2e 3c  ype is "gdbm:".<
af50: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
af60: 30 30 20 4f 63 74 20 31 36 20 28 31 2e 30 2e 31  00 Oct 16 (1.0.1
af70: 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65 64 20  2)} {.<li>Fixed 
af80: 61 6e 20 6f 66 66 2d 62 79 2d 6f 6e 65 20 65 72  an off-by-one er
af90: 72 6f 72 20 74 68 61 74 20 77 61 73 20 63 61 75  ror that was cau
afa0: 73 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 20  sing a coredump 
afb0: 69 6e 20 0a 20 20 20 20 74 68 65 20 27 25 71 27  in .    the '%q'
afc0: 20 66 6f 72 6d 61 74 20 64 69 72 65 63 74 69 76   format directiv
afd0: 65 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20  e of the new.   
afe0: 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70   <b>sqlite_..._p
aff0: 72 69 6e 74 66 28 29 3c 2f 62 3e 20 72 6f 75 74  rintf()</b> rout
b000: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ines.</li>.<li>A
b010: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
b020: 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f  te_interrupt()</
b030: 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  b> interface.</l
b040: 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 68  i>.<li>In the sh
b050: 65 6c 6c 2c 20 3c 62 3e 73 71 6c 69 74 65 5f 69  ell, <b>sqlite_i
b060: 6e 74 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69  nterrupt()</b> i
b070: 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74  s invoked when t
b080: 68 65 0a 20 20 20 20 75 73 65 72 20 70 72 65 73  he.    user pres
b090: 73 65 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c  ses Control-C</l
b0a0: 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d  i>.<li>Fixed som
b0b0: 65 20 69 6e 73 74 61 6e 63 65 73 20 77 68 65 72  e instances wher
b0c0: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63  e <b>sqlite_exec
b0d0: 28 29 3c 2f 62 3e 20 77 61 73 0a 20 20 20 20 72  ()</b> was.    r
b0e0: 65 74 75 72 6e 69 6e 67 20 74 68 65 20 77 72 6f  eturning the wro
b0f0: 6e 67 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c 2f  ng error code.</
b100: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
b110: 30 20 4f 63 74 20 31 31 20 28 31 2e 30 2e 31 30  0 Oct 11 (1.0.10
b120: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  )} {.<li>Added n
b130: 6f 74 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20 63  otes on how to c
b140: 6f 6d 70 69 6c 65 20 66 6f 72 20 57 69 6e 64 6f  ompile for Windo
b150: 77 73 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c  ws95/98.</li>.<l
b160: 69 3e 52 65 6d 6f 76 65 64 20 61 20 66 65 77 20  i>Removed a few 
b170: 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 77  variables that w
b180: 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 75 73  ere not being us
b190: 65 64 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e 0a 7d  ed.  Etc.</li>.}
b1a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
b1b0: 20 38 20 28 31 2e 30 2e 39 29 7d 20 7b 0a 3c 6c   8 (1.0.9)} {.<l
b1c0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
b1d0: 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66  qlite_..._printf
b1e0: 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65  ()</b> interface
b1f0: 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a   routines.</li>.
b200: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
b210: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
b220: 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20  hell program to 
b230: 75 73 65 20 74 68 65 20 6e 65 77 20 69 6e 74 65  use the new inte
b240: 72 66 61 63 65 20 0a 20 20 20 20 72 6f 75 74 69  rface .    routi
b250: 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  nes.</li>.<li>Mo
b260: 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71  dified the <b>sq
b270: 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70  lite</b> shell p
b280: 72 6f 67 72 61 6d 20 74 6f 20 70 72 69 6e 74 20  rogram to print 
b290: 74 68 65 20 73 63 68 65 6d 61 20 66 6f 72 0a 20  the schema for. 
b2a0: 20 20 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20     the built-in 
b2b0: 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61  SQLITE_MASTER ta
b2c0: 62 6c 65 2c 20 69 66 20 65 78 70 6c 69 63 69 74  ble, if explicit
b2d0: 6c 79 20 72 65 71 75 65 73 74 65 64 2e 3c 2f 6c  ly requested.</l
b2e0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
b2f0: 20 53 65 70 20 33 30 20 28 31 2e 30 2e 38 29 7d   Sep 30 (1.0.8)}
b300: 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69   {.<li>Begin wri
b310: 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69  ting documentati
b320: 6f 6e 20 6f 6e 20 74 68 65 20 54 43 4c 20 69 6e  on on the TCL in
b330: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a  terface.</li>.}.
b340: 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20  .chng {2000 Sep 
b350: 32 39 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64  29 (Not Released
b360: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
b370: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74  he <b>sqlite_get
b380: 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20 41 50 49  _table()</b> API
b390: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65  </li>.<li>Update
b3a0: 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74  d the documentat
b3b0: 69 6f 6e 20 66 6f 72 20 64 75 65 20 74 6f 20 74  ion for due to t
b3c0: 68 65 20 61 62 6f 76 65 20 63 68 61 6e 67 65 2e  he above change.
b3d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
b3e0: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
b3f0: 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 6d 61  </b> shell to ma
b400: 6b 65 20 75 73 65 20 6f 66 20 74 68 65 20 6e 65  ke use of the ne
b410: 77 0a 20 20 20 20 73 71 6c 69 74 65 5f 67 65 74  w.    sqlite_get
b420: 5f 74 61 62 6c 65 28 29 20 41 50 49 20 69 6e 20  _table() API in 
b430: 6f 72 64 65 72 20 74 6f 20 70 72 69 6e 74 20 61  order to print a
b440: 20 6c 69 73 74 20 6f 66 20 74 61 62 6c 65 73 0a   list of tables.
b450: 20 20 20 20 69 6e 20 6d 75 6c 74 69 70 6c 65 20      in multiple 
b460: 63 6f 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c 61 72  columns, similar
b470: 20 74 6f 20 74 68 65 20 77 61 79 20 22 6c 73 22   to the way "ls"
b480: 20 70 72 69 6e 74 73 20 66 69 6c 65 6e 61 6d 65   prints filename
b490: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  s.</li>.<li>Modi
b4a0: 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  fied the <b>sqli
b4b0: 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20  te</b> shell to 
b4c0: 70 72 69 6e 74 20 61 20 73 65 6d 69 63 6f 6c 6f  print a semicolo
b4d0: 6e 20 61 74 20 74 68 65 0a 20 20 20 20 65 6e 64  n at the.    end
b4e0: 20 6f 66 20 65 61 63 68 20 43 52 45 41 54 45 20   of each CREATE 
b4f0: 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65  statement in the
b500: 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 22   output of the "
b510: 2e 73 63 68 65 6d 61 22 20 63 6f 6d 6d 61 6e 64  .schema" command
b520: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
b530: 32 30 30 30 20 53 65 70 20 32 31 20 28 4e 6f 74  2000 Sep 21 (Not
b540: 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c   Released)} {.<l
b550: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 74 63 6c  i>Change the tcl
b560: 73 71 6c 69 74 65 20 22 65 76 61 6c 22 20 6d 65  sqlite "eval" me
b570: 74 68 6f 64 20 74 6f 20 72 65 74 75 72 6e 20 61  thod to return a
b580: 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73   list of results
b590: 20 69 66 0a 20 20 20 20 6e 6f 20 63 61 6c 6c 62   if.    no callb
b5a0: 61 63 6b 20 73 63 72 69 70 74 20 69 73 20 73 70  ack script is sp
b5b0: 65 63 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  ecified.</li>.<l
b5c0: 69 3e 43 68 61 6e 67 65 20 74 63 6c 73 71 6c 69  i>Change tclsqli
b5d0: 74 65 2e 63 20 74 6f 20 75 73 65 20 74 68 65 20  te.c to use the 
b5e0: 54 63 6c 5f 4f 62 6a 20 69 6e 74 65 72 66 61 63  Tcl_Obj interfac
b5f0: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  e</li>.<li>Add t
b600: 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 74 68  clsqlite.c to th
b610: 65 20 6c 69 62 73 71 6c 69 74 65 2e 61 20 6c 69  e libsqlite.a li
b620: 62 72 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  brary</li>.}..ch
b630: 6e 67 20 7b 32 30 30 30 20 53 65 70 20 31 33 20  ng {2000 Sep 13 
b640: 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 35 29 7d  (Version 1.0.5)}
b650: 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74   {.<li>Changed t
b660: 68 65 20 70 72 69 6e 74 20 66 6f 72 6d 61 74 20  he print format 
b670: 66 6f 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69  for floating poi
b680: 6e 74 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 22  nt values from "
b690: 25 67 22 20 74 6f 20 22 25 2e 31 35 67 22 2e 0a  %g" to "%.15g"..
b6a0: 20 20 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68      </li>.<li>Ch
b6b0: 61 6e 67 65 64 20 74 68 65 20 63 6f 6d 70 61 72  anged the compar
b6c0: 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 73 6f  ison function so
b6d0: 20 74 68 61 74 20 6e 75 6d 62 65 72 73 20 69 6e   that numbers in
b6e0: 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20 6e 6f 74   exponential not
b6f0: 61 74 69 6f 6e 0a 20 20 20 20 28 65 78 3a 20 31  ation.    (ex: 1
b700: 2e 32 33 34 65 2b 30 35 29 20 73 6f 72 74 20 69  .234e+05) sort i
b710: 6e 20 6e 75 6d 65 72 69 63 61 6c 20 6f 72 64 65  n numerical orde
b720: 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  r.</li>.}..chng 
b730: 7b 32 30 30 30 20 41 75 67 20 32 38 20 28 56 65  {2000 Aug 28 (Ve
b740: 72 73 69 6f 6e 20 31 2e 30 2e 34 29 7d 20 7b 0a  rsion 1.0.4)} {.
b750: 3c 6c 69 3e 41 64 64 65 64 20 66 75 6e 63 74 69  <li>Added functi
b760: 6f 6e 73 20 3c 62 3e 6c 65 6e 67 74 68 28 29 3c  ons <b>length()<
b770: 2f 62 3e 20 61 6e 64 20 3c 62 3e 73 75 62 73 74  /b> and <b>subst
b780: 72 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c  r()</b>.</li>.<l
b790: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
b7a0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
b7b0: 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74   shell program t
b7c0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 0a  hat was causing.
b7d0: 20 20 20 20 61 20 63 6f 72 65 64 75 6d 70 20 77      a coredump w
b7e0: 68 65 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6d  hen the output m
b7f0: 6f 64 65 20 77 61 73 20 22 63 6f 6c 75 6d 6e 22  ode was "column"
b800: 20 61 6e 64 20 74 68 65 20 66 69 72 73 74 20 72   and the first r
b810: 6f 77 0a 20 20 20 20 6f 66 20 64 61 74 61 20 63  ow.    of data c
b820: 6f 6e 74 61 69 6e 65 64 20 61 20 4e 55 4c 4c 2e  ontained a NULL.
b830: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
b840: 30 30 30 20 41 75 67 20 32 32 20 28 56 65 72 73  000 Aug 22 (Vers
b850: 69 6f 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a 3c 6c  ion 1.0.3)} {.<l
b860: 69 3e 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20  i>In the sqlite 
b870: 73 68 65 6c 6c 2c 20 70 72 69 6e 74 20 74 68 65  shell, print the
b880: 20 22 44 61 74 61 62 61 73 65 20 6f 70 65 6e 65   "Database opene
b890: 64 20 52 45 41 44 20 4f 4e 4c 59 22 20 6d 65 73  d READ ONLY" mes
b8a0: 73 61 67 65 0a 20 20 20 20 74 6f 20 73 74 64 65  sage.    to stde
b8b0: 72 72 20 69 6e 73 74 65 61 64 20 6f 66 20 73 74  rr instead of st
b8c0: 64 6f 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  dout.</li>.<li>I
b8d0: 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73 68 65  n the sqlite she
b8e0: 6c 6c 2c 20 6e 6f 77 20 70 72 69 6e 74 20 74 68  ll, now print th
b8f0: 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  e version number
b900: 20 6f 6e 20 69 6e 69 74 69 61 6c 20 73 74 61 72   on initial star
b910: 74 75 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  tup.</li>.<li>Ad
b920: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  d the <b>sqlite_
b930: 76 65 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20 73 74  version[]</b> st
b940: 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 20 74 6f  ring constant to
b950: 20 74 68 65 20 6c 69 62 72 61 72 79 3c 2f 6c 69   the library</li
b960: 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75  >.<li>Makefile u
b970: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
b980: 42 75 67 20 66 69 78 3a 20 69 6e 63 6f 72 72 65  Bug fix: incorre
b990: 63 74 20 56 44 42 45 20 63 6f 64 65 20 77 61 73  ct VDBE code was
b9a0: 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64   being generated
b9b0: 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69   for the followi
b9c0: 6e 67 0a 20 20 20 20 63 69 72 63 75 6d 73 74 61  ng.    circumsta
b9d0: 6e 63 65 3a 20 61 20 71 75 65 72 79 20 6f 6e 20  nce: a query on 
b9e0: 61 6e 20 69 6e 64 65 78 65 64 20 74 61 62 6c 65  an indexed table
b9f0: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 48   containing a WH
ba00: 45 52 45 20 63 6c 61 75 73 65 20 77 69 74 68 0a  ERE clause with.
ba10: 20 20 20 20 61 6e 20 49 4e 20 6f 70 65 72 61 74      an IN operat
ba20: 6f 72 20 74 68 61 74 20 68 61 64 20 61 20 73 75  or that had a su
ba30: 62 71 75 65 72 79 20 6f 6e 20 69 74 73 20 72 69  bquery on its ri
ba40: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 2e 3c 2f  ght-hand side.</
ba50: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
ba60: 30 20 41 75 67 20 31 38 20 28 56 65 72 73 69 6f  0 Aug 18 (Versio
ba70: 6e 20 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.1)} {.<li>
ba80: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
ba90: 20 63 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70   configure scrip
baa0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f  t.</li>.<li>Mino
bab0: 72 20 72 65 76 69 73 69 6f 6e 73 20 74 6f 20 74  r revisions to t
bac0: 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e  he website.</li>
bad0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
bae0: 75 67 20 31 37 20 28 56 65 72 73 69 6f 6e 20 31  ug 17 (Version 1
baf0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
bb00: 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  e the <b>sqlite<
bb10: 2f 62 3e 20 70 72 6f 67 72 61 6d 20 73 6f 20 74  /b> program so t
bb20: 68 61 74 20 69 74 20 63 61 6e 20 72 65 61 64 0a  hat it can read.
bb30: 20 20 20 20 64 61 74 61 62 61 73 65 73 20 66 6f      databases fo
bb40: 72 20 77 68 69 63 68 20 69 74 20 6c 61 63 6b 73  r which it lacks
bb50: 20 77 72 69 74 65 20 70 65 72 6d 69 73 73 69 6f   write permissio
bb60: 6e 2e 20 20 28 49 74 20 75 73 65 64 20 74 6f 0a  n.  (It used to.
bb70: 20 20 20 20 72 65 66 75 73 65 20 61 6c 6c 20 61      refuse all a
bb80: 63 63 65 73 73 20 69 66 20 69 74 20 63 6f 75 6c  ccess if it coul
bb90: 64 20 6e 6f 74 20 77 72 69 74 65 2e 29 3c 2f 6c  d not write.)</l
bba0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
bbb0: 20 41 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e 54 72   Aug 9} {.<li>Tr
bbc0: 65 61 74 20 63 61 72 72 69 61 67 65 20 72 65 74  eat carriage ret
bbd0: 75 72 6e 73 20 61 73 20 77 68 69 74 65 20 73 70  urns as white sp
bbe0: 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ace.</li>.}..chn
bbf0: 67 20 7b 32 30 30 30 20 41 75 67 20 38 7d 20 7b  g {2000 Aug 8} {
bc00: 0a 3c 6c 69 3e 41 64 64 65 64 20 70 61 74 74 65  .<li>Added patte
bc10: 72 6e 20 6d 61 74 63 68 69 6e 67 20 74 6f 20 74  rn matching to t
bc20: 68 65 20 22 2e 74 61 62 6c 65 22 20 63 6f 6d 6d  he ".table" comm
bc30: 61 6e 64 20 69 6e 20 74 68 65 20 22 73 71 6c 69  and in the "sqli
bc40: 74 65 22 0a 63 6f 6d 6d 61 6e 64 20 73 68 65 6c  te".command shel
bc50: 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  l.</li>.}..chng 
bc60: 7b 32 30 30 30 20 41 75 67 20 34 7d 20 7b 0a 3c  {2000 Aug 4} {.<
bc70: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
bc80: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
bc90: 69 3e 41 64 64 65 64 20 22 62 75 73 79 22 20 61  i>Added "busy" a
bca0: 6e 64 20 22 74 69 6d 65 6f 75 74 22 20 6d 65 74  nd "timeout" met
bcb0: 68 6f 64 73 20 74 6f 20 74 68 65 20 54 63 6c 20  hods to the Tcl 
bcc0: 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 7d  interface</li>.}
bcd0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
bce0: 20 33 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65 20 66   3} {.<li>File f
bcf0: 6f 72 6d 61 74 20 76 65 72 73 69 6f 6e 20 6e 75  ormat version nu
bd00: 6d 62 65 72 20 77 61 73 20 62 65 69 6e 67 20 73  mber was being s
bd10: 74 6f 72 65 64 20 69 6e 20 73 71 6c 69 74 65 5f  tored in sqlite_
bd20: 6d 61 73 74 65 72 2e 74 63 6c 0a 20 20 20 20 6d  master.tcl.    m
bd30: 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 20 54  ultiple times. T
bd40: 68 69 73 20 77 61 73 20 68 61 72 6d 6c 65 73 73  his was harmless
bd50: 2c 20 62 75 74 20 75 6e 6e 65 63 65 73 73 61 72  , but unnecessar
bd60: 79 2e 20 49 74 20 69 73 20 6e 6f 77 20 66 69 78  y. It is now fix
bd70: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
bd80: 20 7b 32 30 30 30 20 41 75 67 20 32 7d 20 7b 0a   {2000 Aug 2} {.
bd90: 3c 6c 69 3e 54 68 65 20 66 69 6c 65 20 66 6f 72  <li>The file for
bda0: 6d 61 74 20 66 6f 72 20 69 6e 64 69 63 65 73 20  mat for indices 
bdb0: 77 61 73 20 63 68 61 6e 67 65 64 20 73 6c 69 67  was changed slig
bdc0: 68 74 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f  htly in order to
bdd0: 20 77 6f 72 6b 0a 20 20 20 20 61 72 6f 75 6e 64   work.    around
bde0: 20 61 6e 20 69 6e 65 66 66 69 63 69 65 6e 63 79   an inefficiency
bdf0: 20 74 68 61 74 20 63 61 6e 20 73 6f 6d 65 74 69   that can someti
be00: 6d 65 73 20 63 6f 6d 65 20 75 70 20 77 69 74 68  mes come up with
be10: 20 47 44 42 4d 20 77 68 65 6e 0a 20 20 20 20 74   GDBM when.    t
be20: 68 65 72 65 20 61 72 65 20 6c 61 72 67 65 20 69  here are large i
be30: 6e 64 69 63 65 73 20 68 61 76 69 6e 67 20 6d 61  ndices having ma
be40: 6e 79 20 65 6e 74 72 69 65 73 20 77 69 74 68 20  ny entries with 
be50: 74 68 65 20 73 61 6d 65 20 6b 65 79 2e 0a 20 20  the same key..  
be60: 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72    <font color="r
be70: 65 64 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61 74 69  ed">** Incompati
be80: 62 6c 65 20 43 68 61 6e 67 65 20 2a 2a 3c 2f 66  ble Change **</f
be90: 6f 6e 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ont></li>.}..chn
bea0: 67 20 7b 32 30 30 30 20 41 75 67 20 31 7d 20 7b  g {2000 Aug 1} {
beb0: 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65 72 27  .<li>The parser'
bec0: 73 20 73 74 61 63 6b 20 77 61 73 20 6f 76 65 72  s stack was over
bed0: 66 6c 6f 77 69 6e 67 20 6f 6e 20 61 20 76 65 72  flowing on a ver
bee0: 79 20 6c 6f 6e 67 20 55 50 44 41 54 45 20 73 74  y long UPDATE st
bef0: 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20 54 68 69  atement..    Thi
bf00: 73 20 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c  s is now fixed.<
bf10: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
bf20: 30 30 20 4a 75 6c 79 20 33 31 7d 20 7b 0a 3c 6c  00 July 31} {.<l
bf30: 69 3e 46 69 6e 69 73 68 20 74 68 65 20 3c 61 20  i>Finish the <a 
bf40: 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22  href="vdbe.html"
bf50: 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f  >VDBE tutorial</
bf60: 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  a>.</li>.<li>Add
bf70: 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ed documentation
bf80: 20 6f 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 74 6f   on compiling to
bf90: 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e   WindowsNT.</li>
bfa0: 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69  .<li>Fix a confi
bfb0: 67 75 72 61 74 69 6f 6e 20 70 72 6f 67 72 61 6d  guration program
bfc0: 20 66 6f 72 20 57 69 6e 64 6f 77 73 4e 54 2e 3c   for WindowsNT.<
bfd0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63  /li>.<li>Fix a c
bfe0: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f  onfiguration pro
bff0: 62 6c 65 6d 20 66 6f 72 20 48 50 55 58 2e 3c 2f  blem for HPUX.</
c000: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
c010: 30 20 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c 6c 69  0 July 29} {.<li
c020: 3e 42 65 74 74 65 72 20 6c 61 62 65 6c 73 20 6f  >Better labels o
c030: 6e 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6f  n column names o
c040: 66 20 74 68 65 20 72 65 73 75 6c 74 2e 3c 2f 6c  f the result.</l
c050: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
c060: 20 4a 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c 69 3e   July 28} {.<li>
c070: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
c080: 69 74 65 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72  ite_busy_handler
c090: 28 29 3c 2f 62 3e 20 0a 20 20 20 20 61 6e 64 20  ()</b> .    and 
c0a0: 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74  <b>sqlite_busy_t
c0b0: 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 69 6e 74  imeout()</b> int
c0c0: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  erface.</li>.}..
c0d0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
c0e0: 32 33 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20  23} {.<li>Begin 
c0f0: 77 72 69 74 69 6e 67 20 74 68 65 20 3c 61 20 68  writing the <a h
c100: 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e  ref="vdbe.html">
c110: 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61  VDBE tutorial</a
c120: 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  >.</li>.}..chng 
c130: 7b 32 30 30 30 20 4a 75 6e 65 20 32 31 7d 20 7b  {2000 June 21} {
c140: 0a 3c 6c 69 3e 43 6c 65 61 6e 20 75 70 20 63 6f  .<li>Clean up co
c150: 6d 6d 65 6e 74 73 20 61 6e 64 20 76 61 72 69 61  mments and varia
c160: 62 6c 65 20 6e 61 6d 65 73 2e 20 20 43 68 61 6e  ble names.  Chan
c170: 67 65 73 20 74 6f 20 64 6f 63 75 6d 65 6e 74 61  ges to documenta
c180: 74 69 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66 75 6e  tion..    No fun
c190: 63 74 69 6f 6e 61 6c 20 63 68 61 6e 67 65 73 20  ctional changes 
c1a0: 74 6f 20 74 68 65 20 63 6f 64 65 2e 3c 2f 6c 69  to the code.</li
c1b0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
c1c0: 4a 75 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69 3e 43  June 19} {.<li>C
c1d0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 55  olumn names in U
c1e0: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73  PDATE statements
c1f0: 20 77 65 72 65 20 63 61 73 65 20 73 65 6e 73 69   were case sensi
c200: 74 69 76 65 2e 0a 20 20 20 20 54 68 69 73 20 6d  tive..    This m
c210: 69 73 74 61 6b 65 20 68 61 73 20 6e 6f 77 20 62  istake has now b
c220: 65 65 6e 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a  een fixed.</li>.
c230: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
c240: 6e 65 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64  ne 16} {.<li>Add
c250: 65 64 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61  ed the concatena
c260: 74 65 20 73 74 72 69 6e 67 20 6f 70 65 72 61 74  te string operat
c270: 6f 72 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a  or (||)</li>.}..
c280: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
c290: 31 32 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  12} {.<li>Added 
c2a0: 74 68 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74  the fcnt() funct
c2b0: 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 20 69  ion to the SQL i
c2c0: 6e 74 65 72 70 72 65 74 65 72 2e 20 20 54 68 65  nterpreter.  The
c2d0: 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e   fcnt() function
c2e0: 0a 20 20 20 20 72 65 74 75 72 6e 73 20 74 68 65  .    returns the
c2f0: 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 74 61 62   number of datab
c300: 61 73 65 20 22 46 65 74 63 68 22 20 6f 70 65 72  ase "Fetch" oper
c310: 61 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65  ations that have
c320: 20 6f 63 63 75 72 72 65 64 2e 0a 20 20 20 20 54   occurred..    T
c330: 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20  his function is 
c340: 64 65 73 69 67 6e 65 64 20 66 6f 72 20 75 73 65  designed for use
c350: 20 69 6e 20 74 65 73 74 20 73 63 72 69 70 74 73   in test scripts
c360: 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 0a   to verify that.
c370: 20 20 20 20 71 75 65 72 69 65 73 20 61 72 65 20      queries are 
c380: 65 66 66 69 63 69 65 6e 74 20 61 6e 64 20 61 70  efficient and ap
c390: 70 72 6f 70 72 69 61 74 65 6c 79 20 6f 70 74 69  propriately opti
c3a0: 6d 69 7a 65 64 2e 20 20 46 63 6e 74 28 29 20 68  mized.  Fcnt() h
c3b0: 61 73 20 6e 6f 20 6f 74 68 65 72 0a 20 20 20 20  as no other.    
c3c0: 75 73 65 66 75 6c 20 70 75 72 70 6f 73 65 2c 20  useful purpose, 
c3d0: 61 73 20 66 61 72 20 61 73 20 49 20 6b 6e 6f 77  as far as I know
c3e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
c3f0: 20 61 20 62 75 6e 63 68 20 6d 6f 72 65 20 74 65   a bunch more te
c400: 73 74 73 20 74 68 61 74 20 74 61 6b 65 20 61 64  sts that take ad
c410: 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65 20 6e  vantage of the n
c420: 65 77 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69  ew fcnt() functi
c430: 6f 6e 2e 0a 20 20 20 20 54 68 65 20 6e 65 77 20  on..    The new 
c440: 74 65 73 74 73 20 64 69 64 20 6e 6f 74 20 75 6e  tests did not un
c450: 63 6f 76 65 72 20 61 6e 79 20 6e 65 77 20 70 72  cover any new pr
c460: 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  oblems.</li>.}..
c470: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
c480: 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c  8} {.<li>Added l
c490: 6f 74 73 20 6f 66 20 6e 65 77 20 74 65 73 74 20  ots of new test 
c4a0: 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  cases</li>.<li>F
c4b0: 69 78 20 61 20 66 65 77 20 62 75 67 73 20 64 69  ix a few bugs di
c4c0: 73 63 6f 76 65 72 65 64 20 77 68 69 6c 65 20 61  scovered while a
c4d0: 64 64 69 6e 67 20 74 65 73 74 20 63 61 73 65 73  dding test cases
c4e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69 6e 20  </li>.<li>Begin 
c4f0: 61 64 64 69 6e 67 20 6c 6f 74 73 20 6f 66 20 6e  adding lots of n
c500: 65 77 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ew documentation
c510: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c520: 30 30 30 20 4a 75 6e 65 20 36 7d 20 7b 0a 3c 6c  000 June 6} {.<l
c530: 69 3e 41 64 64 65 64 20 63 6f 6d 70 6f 75 6e 64  i>Added compound
c540: 20 73 65 6c 65 63 74 20 6f 70 65 72 61 74 6f 72   select operator
c550: 73 3a 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c  s: <B>UNION</b>,
c560: 20 3c 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 42   <b>UNION ALL</B
c570: 3e 2c 0a 3c 62 3e 49 4e 54 45 52 53 45 43 54 3c  >,.<b>INTERSECT<
c580: 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 45 58 43 45  /b>, and <b>EXCE
c590: 50 54 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  PT</b></li>.<li>
c5a0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
c5b0: 72 20 75 73 69 6e 67 20 3c 62 3e 28 53 45 4c 45  r using <b>(SELE
c5c0: 43 54 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69 74 68  CT ...)</b> with
c5d0: 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f  in expressions</
c5e0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
c5f0: 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 49 4e 3c  pport for <b>IN<
c600: 2f 62 3e 20 61 6e 64 20 3c 62 3e 42 45 54 57 45  /b> and <b>BETWE
c610: 45 4e 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 73  EN</b> operators
c620: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
c630: 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 47  support for <b>G
c640: 52 4f 55 50 20 42 59 3c 2f 62 3e 20 61 6e 64 20  ROUP BY</b> and 
c650: 3c 62 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c 2f 6c  <b>HAVING</b></l
c660: 69 3e 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61 6c 75  i>.<li>NULL valu
c670: 65 73 20 61 72 65 20 6e 6f 77 20 72 65 70 6f 72  es are now repor
c680: 74 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62  ted to the callb
c690: 61 63 6b 20 61 73 20 61 20 4e 55 4c 4c 20 70 6f  ack as a NULL po
c6a0: 69 6e 74 65 72 0a 20 20 20 20 72 61 74 68 65 72  inter.    rather
c6b0: 20 74 68 61 6e 20 61 6e 20 65 6d 70 74 79 20 73   than an empty s
c6c0: 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tring.</li>.}..c
c6d0: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 33  hng {2000 June 3
c6e0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  } {.<li>Added su
c6f0: 70 70 6f 72 74 20 66 6f 72 20 64 65 66 61 75 6c  pport for defaul
c700: 74 20 76 61 6c 75 65 73 20 6f 6e 20 63 6f 6c 75  t values on colu
c710: 6d 6e 73 20 6f 66 20 61 20 74 61 62 6c 65 2e 3c  mns of a table.<
c720: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
c730: 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65 2e  d test coverage.
c740: 20 20 46 69 78 65 64 20 61 20 66 65 77 20 6f 62    Fixed a few ob
c750: 73 63 75 72 65 20 62 75 67 73 20 66 6f 75 6e 64  scure bugs found
c760: 20 62 79 20 74 68 65 0a 69 6d 70 72 6f 76 65 64   by the.improved
c770: 20 74 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   tests.</li>.}..
c780: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
c790: 32 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64 61 74  2} {.<li>All dat
c7a0: 61 62 61 73 65 20 66 69 6c 65 73 20 74 6f 20 62  abase files to b
c7b0: 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 61 6e  e modified by an
c7c0: 20 55 50 44 41 54 45 2c 20 49 4e 53 45 52 54 20   UPDATE, INSERT 
c7d0: 6f 72 20 44 45 4c 45 54 45 20 61 72 65 20 0a 6e  or DELETE are .n
c7e0: 6f 77 20 6c 6f 63 6b 65 64 20 62 65 66 6f 72 65  ow locked before
c7f0: 20 61 6e 79 20 63 68 61 6e 67 65 73 20 61 72 65   any changes are
c800: 20 6d 61 64 65 20 74 6f 20 61 6e 79 20 66 69 6c   made to any fil
c810: 65 73 2e 20 20 0a 54 68 69 73 20 6d 61 6b 65 73  es.  .This makes
c820: 20 69 74 20 73 61 66 65 20 28 49 20 74 68 69 6e   it safe (I thin
c830: 6b 29 20 74 6f 20 61 63 63 65 73 73 0a 74 68 65  k) to access.the
c840: 20 73 61 6d 65 20 64 61 74 61 62 61 73 65 20 73   same database s
c850: 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 66 72  imultaneously fr
c860: 6f 6d 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 63  om multiple proc
c870: 65 73 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  esses.</li>.<li>
c880: 54 68 65 20 63 6f 64 65 20 61 70 70 65 61 72 73  The code appears
c890: 20 73 74 61 62 6c 65 20 73 6f 20 77 65 20 61 72   stable so we ar
c8a0: 65 20 6e 6f 77 20 63 61 6c 6c 69 6e 67 20 69 74  e now calling it
c8b0: 20 22 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a   "beta".</li>.}.
c8c0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
c8d0: 20 31 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72   1} {.<li>Better
c8e0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 69 6c   support for fil
c8f0: 65 20 6c 6f 63 6b 69 6e 67 20 73 6f 20 74 68 61  e locking so tha
c900: 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 70 72  t two or more pr
c910: 6f 63 65 73 73 65 73 20 0a 28 6f 72 20 74 68 72  ocesses .(or thr
c920: 65 61 64 73 29 0a 63 61 6e 20 61 63 63 65 73 73  eads).can access
c930: 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61   the same databa
c940: 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c  se simultaneousl
c950: 79 2e 20 20 4d 6f 72 65 20 77 6f 72 6b 20 6e 65  y.  More work ne
c960: 65 64 65 64 20 69 6e 0a 74 68 69 73 20 61 72 65  eded in.this are
c970: 61 2c 20 74 68 6f 75 67 68 2e 3c 2f 6c 69 3e 0a  a, though.</li>.
c980: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61  }..chng {2000 Ma
c990: 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  y 31} {.<li>Adde
c9a0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 67  d support for ag
c9b0: 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e  gregate function
c9c0: 73 20 28 45 78 3a 20 3c 62 3e 43 4f 55 4e 54 28  s (Ex: <b>COUNT(
c9d0: 2a 29 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e 28 2e  *)</b>, <b>MIN(.
c9e0: 2e 2e 29 3c 2f 62 3e 29 0a 74 6f 20 74 68 65 20  ..)</b>).to the 
c9f0: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
ca00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
ca10: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 42 3e   support for <B>
ca20: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
ca30: 2e 2e 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a  ...</B></li>.}..
ca40: 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33  chng {2000 May 3
ca50: 30 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  0} {.<li>Added t
ca60: 68 65 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e 20 6f  he <b>LIKE</b> o
ca70: 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c  perator.</li>.<l
ca80: 69 3e 41 64 64 65 64 20 61 20 3c 62 3e 47 4c 4f  i>Added a <b>GLO
ca90: 42 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 3a 20  B</b> operator: 
caa0: 73 69 6d 69 6c 61 72 20 74 6f 20 3c 42 3e 4c 49  similar to <B>LI
cab0: 4b 45 3c 2f 42 3e 20 0a 62 75 74 20 69 74 20 75  KE</B> .but it u
cac0: 73 65 73 20 55 6e 69 78 20 73 68 65 6c 6c 20 67  ses Unix shell g
cad0: 6c 6f 62 62 69 6e 67 20 77 69 6c 64 63 61 72 64  lobbing wildcard
cae0: 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65  s instead of the
caf0: 20 27 25 27 20 0a 61 6e 64 20 27 5f 27 20 77 69   '%' .and '_' wi
cb00: 6c 64 63 61 72 64 73 20 6f 66 20 53 51 4c 2e 3c  ldcards of SQL.<
cb10: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
cb20: 68 65 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e 20 63  he <B>COPY</b> c
cb30: 6f 6d 6d 61 6e 64 20 70 61 74 74 65 72 6e 65 64  ommand patterned
cb40: 20 61 66 74 65 72 20 0a 3c 61 20 68 72 65 66 3d   after .<a href=
cb50: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74  "http://www.post
cb60: 67 72 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f 73  gresql.org/">Pos
cb70: 74 67 72 65 53 51 4c 3c 2f 61 3e 20 73 6f 20 74  tgreSQL</a> so t
cb80: 68 61 74 20 53 51 4c 69 74 65 0a 63 61 6e 20 6e  hat SQLite.can n
cb90: 6f 77 20 72 65 61 64 20 74 68 65 20 6f 75 74 70  ow read the outp
cba0: 75 74 20 6f 66 20 74 68 65 20 3c 62 3e 70 67 5f  ut of the <b>pg_
cbb0: 64 75 6d 70 3c 2f 62 3e 20 64 61 74 61 62 61 73  dump</b> databas
cbc0: 65 20 64 75 6d 70 20 75 74 69 6c 69 74 79 0a 6f  e dump utility.o
cbd0: 66 20 50 6f 73 74 67 72 65 53 51 4c 2e 3c 2f 6c  f PostgreSQL.</l
cbe0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c  i>.<li>Added a <
cbf0: 42 3e 56 41 43 55 55 4d 3c 2f 42 3e 20 63 6f 6d  B>VACUUM</B> com
cc00: 6d 61 6e 64 20 74 68 61 74 20 74 68 61 74 20 63  mand that that c
cc10: 61 6c 6c 73 20 74 68 65 20 0a 3c 62 3e 67 64 62  alls the .<b>gdb
cc20: 6d 5f 72 65 6f 72 67 61 6e 69 7a 65 28 29 3c 2f  m_reorganize()</
cc30: 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74  b> function on t
cc40: 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 64 61  he underlying da
cc50: 74 61 62 61 73 65 0a 66 69 6c 65 73 2e 3c 2f 6c  tabase.files.</l
cc60: 69 3e 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e 79 2c  i>.<li>And many,
cc70: 20 6d 61 6e 79 20 62 75 67 20 66 69 78 65 73 2e   many bug fixes.
cc80: 2e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ..</li>.}..chng 
cc90: 7b 32 30 30 30 20 4d 61 79 20 32 39 7d 20 7b 0a  {2000 May 29} {.
cca0: 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 50 75 62 6c  <li>Initial Publ
ccb0: 69 63 20 52 65 6c 65 61 73 65 20 6f 66 20 41 6c  ic Release of Al
ccc0: 70 68 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a  pha code</li>.}.
ccd0: 0a 70 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a 7d 0a  .puts {.</DL>.}.
cce0: 66 6f 6f 74 65 72 20 7b 24 49 64 3a 7d 0a        footer {$Id:}.