/ Hex Artifact Content
Login

Artifact 4d75f4c2a8bba2bb26b0fd4f3a48999e06b4025f:


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 34 20 4a 75 6e 65 20  chng {2004 June 
01d0: 31 38 20 28 33 2e 30 2e 30 20 61 6c 70 68 61 29  18 (3.0.0 alpha)
01e0: 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74 20 63 6f  } {.<li><font co
01f0: 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e 0a 20 20  lor="red"><b>.  
0200: 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52 65 6c 65    *** Alpha Rele
0210: 61 73 65 20 2d 20 52 65 73 65 61 72 63 68 20 41  ase - Research A
0220: 6e 64 20 54 65 73 74 69 6e 67 20 55 73 65 20 4f  nd Testing Use O
0230: 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e  nly ***</b></fon
0240: 74 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  t>.<li>Support f
0250: 6f 72 20 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c  or international
0260: 69 7a 61 74 69 6f 6e 20 69 6e 63 6c 75 64 69 6e  ization includin
0270: 67 20 55 54 46 2d 38 2c 20 55 54 46 2d 31 36 2c  g UTF-8, UTF-16,
0280: 20 61 6e 64 0a 20 20 20 20 75 73 65 72 20 64 65   and.    user de
0290: 66 69 6e 65 64 20 63 6f 6c 6c 61 74 69 6e 67 20  fined collating 
02a0: 73 65 71 75 65 6e 63 65 73 2e 3c 2f 6c 69 3e 0a  sequences.</li>.
02b0: 3c 6c 69 3e 4e 65 77 20 66 69 6c 65 20 66 6f 72  <li>New file for
02c0: 6d 61 74 20 74 68 61 74 20 69 73 20 32 35 25 20  mat that is 25% 
02d0: 74 6f 20 33 35 25 20 73 6d 61 6c 6c 65 72 20 66  to 35% smaller f
02e0: 6f 72 20 74 79 70 69 63 61 6c 20 75 73 65 2e 3c  or typical use.<
02f0: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
0300: 64 20 63 6f 6e 63 75 72 72 65 6e 63 79 2e 3c 2f  d concurrency.</
0310: 6c 69 3e 0a 3c 6c 69 3e 41 74 6f 6d 69 63 20 63  li>.<li>Atomic c
0320: 6f 6d 6d 69 74 73 20 66 6f 72 20 41 54 54 41 43  ommits for ATTAC
0330: 48 65 64 20 64 61 74 61 62 61 73 65 73 2e 3c 2f  Hed databases.</
0340: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 63  li>.<li>Remove c
0350: 72 75 66 74 20 66 72 6f 6d 20 74 68 65 20 41 50  ruft from the AP
0360: 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 4c 4f  Is.</li>.<li>BLO
0370: 42 20 73 75 70 70 6f 72 74 2e 3c 2f 6c 69 3e 0a  B support.</li>.
0380: 3c 6c 69 3e 36 34 2d 62 69 74 20 72 6f 77 69 64  <li>64-bit rowid
0390: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68  s.</li>.<li><a h
03a0: 72 65 66 3d 22 76 65 72 73 69 6f 6e 33 2e 68 74  ref="version3.ht
03b0: 6d 6c 22 3e 4d 6f 72 65 20 69 6e 66 6f 72 6d 61  ml">More informa
03c0: 74 69 6f 6e 3c 2f 61 3e 2e 0a 7d 0a 0a 63 68 6e  tion</a>..}..chn
03d0: 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 39 20 28  g {2004 June 9 (
03e0: 32 2e 38 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 46  2.8.14)} {.<li>F
03f0: 69 78 20 74 68 65 20 6d 69 6e 28 29 20 61 6e 64  ix the min() and
0400: 20 6d 61 78 28 29 20 6f 70 74 69 6d 69 7a 65 72   max() optimizer
0410: 20 73 6f 20 74 68 61 74 20 69 74 20 77 6f 72 6b   so that it work
0420: 73 20 77 68 65 6e 20 74 68 65 20 46 52 4f 4d 0a  s when the FROM.
0430: 20 20 20 20 63 6c 61 75 73 65 20 63 6f 6e 73 69      clause consi
0440: 73 74 73 20 6f 66 20 61 20 73 75 62 71 75 65 72  sts of a subquer
0450: 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 67 6e 6f  y.</li>.<li>Igno
0460: 72 65 20 65 78 74 72 61 20 77 68 69 74 65 73 70  re extra whitesp
0470: 61 63 65 20 61 74 20 74 68 65 20 65 6e 64 20 6f  ace at the end o
0480: 66 20 6f 66 20 22 2e 22 20 63 6f 6d 6d 61 6e 64  f of "." command
0490: 73 20 69 6e 20 74 68 65 20 73 68 65 6c 6c 2e 3c  s in the shell.<
04a0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 6e 64 6c 65 20  /li>.<li>Bundle 
04b0: 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69  sqlite_encode_bi
04c0: 6e 61 72 79 28 29 20 61 6e 64 20 73 71 6c 69 74  nary() and sqlit
04d0: 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61 72 79 28  e_decode_binary(
04e0: 29 20 77 69 74 68 20 74 68 65 20 0a 20 20 20 20  ) with the .    
04f0: 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c  library.</li>.<l
0500: 69 3e 54 68 65 20 54 45 4d 50 5f 53 54 4f 52 45  i>The TEMP_STORE
0510: 20 61 6e 64 20 44 45 46 41 55 4c 54 5f 54 45 4d   and DEFAULT_TEM
0520: 50 5f 53 54 4f 52 45 20 70 72 61 67 6d 61 73 20  P_STORE pragmas 
0530: 6e 6f 77 20 77 6f 72 6b 2e 3c 2f 6c 69 3e 0a 3c  now work.</li>.<
0540: 6c 69 3e 43 6f 64 65 20 63 68 61 6e 67 65 73 20  li>Code changes 
0550: 74 6f 20 63 6f 6d 70 69 6c 65 20 63 6c 65 61 6e  to compile clean
0560: 6c 79 20 75 73 69 6e 67 20 4f 70 65 6e 57 61 74  ly using OpenWat
0570: 63 6f 6d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  com.</li>.<li>Fi
0580: 78 20 56 44 42 45 20 73 74 61 63 6b 20 6f 76 65  x VDBE stack ove
0590: 72 66 6c 6f 77 20 70 72 6f 62 6c 65 6d 73 20 77  rflow problems w
05a0: 69 74 68 20 49 4e 53 54 45 41 44 20 4f 46 20 74  ith INSTEAD OF t
05b0: 72 69 67 67 65 72 73 20 61 6e 64 0a 20 20 20 20  riggers and.    
05c0: 4e 55 4c 4c 73 20 69 6e 20 49 4e 20 6f 70 65 72  NULLs in IN oper
05d0: 61 74 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ators.</li>.<li>
05e0: 41 64 64 20 74 68 65 20 67 6c 6f 62 61 6c 20 76  Add the global v
05f0: 61 72 69 61 62 6c 65 20 73 71 6c 69 74 65 5f 74  ariable sqlite_t
0600: 65 6d 70 5f 64 69 72 65 63 74 6f 72 79 20 77 68  emp_directory wh
0610: 69 63 68 20 69 66 20 73 65 74 20 64 65 66 69 6e  ich if set defin
0620: 65 73 20 74 68 65 0a 20 20 20 20 64 69 72 65 63  es the.    direc
0630: 74 6f 72 79 20 69 6e 20 77 68 69 63 68 20 74 65  tory in which te
0640: 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 61 72  mporary files ar
0650: 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c  e stored.</li>.<
0660: 6c 69 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72  li>sqlite_interr
0670: 75 70 74 28 29 20 70 6c 61 79 73 20 77 65 6c 6c  upt() plays well
0680: 20 77 69 74 68 20 56 41 43 55 55 4d 2e 3c 2f 6c   with VACUUM.</l
0690: 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e  i>.<li>Other min
06a0: 6f 72 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c  or bug fixes.</l
06b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
06c0: 20 4d 61 72 63 68 20 38 20 28 32 2e 38 2e 31 33   March 8 (2.8.13
06d0: 29 7d 20 7b 0a 3c 6c 69 3e 52 65 66 61 63 74 6f  )} {.<li>Refacto
06e0: 72 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 63  r parts of the c
06f0: 6f 64 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ode in order to 
0700: 6d 61 6b 65 20 74 68 65 20 63 6f 64 65 20 66 6f  make the code fo
0710: 6f 74 70 72 69 6e 74 0a 20 20 20 20 73 6d 61 6c  otprint.    smal
0720: 6c 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20 69  ler.  The code i
0730: 73 20 6e 6f 77 20 61 6c 73 6f 20 61 20 6c 69 74  s now also a lit
0740: 74 6c 65 20 62 69 74 20 66 61 73 74 65 72 2e 3c  tle bit faster.<
0750: 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f  /li>.<li>sqlite_
0760: 65 78 65 63 28 29 20 69 73 20 6e 6f 77 20 69 6d  exec() is now im
0770: 70 6c 65 6d 65 6e 74 65 64 20 61 73 20 61 20 77  plemented as a w
0780: 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 73 71  rapper around sq
0790: 6c 69 74 65 5f 63 6f 6d 70 69 6c 65 28 29 0a 20  lite_compile(). 
07a0: 20 20 20 61 6e 64 20 73 71 6c 69 74 65 5f 73 74     and sqlite_st
07b0: 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ep().</li>.<li>T
07c0: 68 65 20 62 75 69 6c 74 2d 69 6e 20 6d 69 6e 28  he built-in min(
07d0: 29 20 61 6e 64 20 6d 61 78 28 29 20 66 75 6e 63  ) and max() func
07e0: 74 69 6f 6e 73 20 6e 6f 77 20 68 6f 6e 6f 72 20  tions now honor 
07f0: 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62  the difference b
0800: 65 74 77 65 65 6e 0a 20 20 20 20 4e 55 4d 45 52  etween.    NUMER
0810: 49 43 20 61 6e 64 20 54 45 58 54 20 64 61 74 61  IC and TEXT data
0820: 74 79 70 65 73 2e 20 20 46 6f 72 6d 65 72 6c 79  types.  Formerly
0830: 2c 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78 28  , min() and max(
0840: 29 20 61 6c 77 61 79 73 20 61 73 73 75 6d 65 64  ) always assumed
0850: 0a 20 20 20 20 74 68 65 69 72 20 61 72 67 75 6d  .    their argum
0860: 65 6e 74 73 20 77 65 72 65 20 6f 66 20 74 79 70  ents were of typ
0870: 65 20 4e 55 4d 45 52 49 43 2e 3c 2f 6c 69 3e 0a  e NUMERIC.</li>.
0880: 3c 6c 69 3e 4e 65 77 20 48 48 3a 4d 4d 3a 53 53  <li>New HH:MM:SS
0890: 20 6d 6f 64 69 66 69 65 72 20 74 6f 20 74 68 65   modifier to the
08a0: 20 62 75 69 6c 74 2d 69 6e 20 64 61 74 65 2f 74   built-in date/t
08b0: 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f  ime functions.</
08c0: 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65  li>.<li>Experime
08d0: 6e 74 61 6c 20 73 71 6c 69 74 65 5f 6c 61 73 74  ntal sqlite_last
08e0: 5f 73 74 61 74 65 6d 65 6e 74 5f 63 68 61 6e 67  _statement_chang
08f0: 65 73 28 29 20 41 50 49 20 61 64 64 65 64 2e 20  es() API added. 
0900: 20 46 69 78 65 64 20 74 68 65 0a 20 20 20 20 74   Fixed the.    t
0910: 68 65 20 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72  he last_insert_r
0920: 6f 77 69 64 28 29 20 66 75 6e 63 74 69 6f 6e 20  owid() function 
0930: 73 6f 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73  so that it works
0940: 20 63 6f 72 72 65 63 74 6c 79 20 77 69 74 68 0a   correctly with.
0950: 20 20 20 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c      triggers.</l
0960: 69 3e 0a 3c 6c 69 3e 41 64 64 20 66 75 6e 63 74  i>.<li>Add funct
0970: 69 6f 6e 73 20 70 72 6f 74 6f 74 79 70 65 73 20  ions prototypes 
0980: 66 6f 72 20 74 68 65 20 64 61 74 61 62 61 73 65  for the database
0990: 20 65 6e 63 72 79 70 74 69 6f 6e 20 41 50 49 2e   encryption API.
09a0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65  </li>.<li>Fix se
09b0: 76 65 72 61 6c 20 6e 75 69 73 61 6e 63 65 20 62  veral nuisance b
09c0: 75 67 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ugs.</li>.}..chn
09d0: 67 20 7b 32 30 30 34 20 46 65 62 72 75 61 72 79  g {2004 February
09e0: 20 38 20 28 32 2e 38 2e 31 32 29 7d 20 7b 0a 3c   8 (2.8.12)} {.<
09f0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
0a00: 74 20 77 69 6c 6c 20 6d 69 67 68 74 20 63 6f 72  t will might cor
0a10: 72 75 70 74 20 74 68 65 20 72 6f 6c 6c 62 61 63  rupt the rollbac
0a20: 6b 20 6a 6f 75 72 6e 61 6c 20 69 66 20 61 20 70  k journal if a p
0a30: 6f 77 65 72 20 66 61 69 6c 75 72 65 0a 20 20 20  ower failure.   
0a40: 20 6f 72 20 65 78 74 65 72 6e 61 6c 20 70 72 6f   or external pro
0a50: 67 72 61 6d 20 68 61 6c 74 20 6f 63 63 75 72 73  gram halt occurs
0a60: 20 69 6e 20 74 68 65 20 6d 69 64 64 6c 65 20 6f   in the middle o
0a70: 66 20 61 20 43 4f 4d 4d 49 54 2e 20 20 54 68 65  f a COMMIT.  The
0a80: 20 63 6f 72 72 75 70 74 0a 20 20 20 20 6a 6f 75   corrupt.    jou
0a90: 72 6e 61 6c 20 63 61 6e 20 6c 65 61 64 20 74 6f  rnal can lead to
0aa0: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
0ab0: 74 69 6f 6e 20 77 68 65 6e 20 69 74 20 69 73 20  tion when it is 
0ac0: 72 6f 6c 6c 65 64 20 62 61 63 6b 2e 3c 2f 6c 69  rolled back.</li
0ad0: 3e 0a 3c 6c 69 3e 52 65 64 75 63 65 20 74 68 65  >.<li>Reduce the
0ae0: 20 73 69 7a 65 20 61 6e 64 20 69 6e 63 72 65 61   size and increa
0af0: 73 65 20 74 68 65 20 73 70 65 65 64 20 6f 66 20  se the speed of 
0b00: 76 61 72 69 6f 75 73 20 6d 6f 64 75 6c 65 73 2c  various modules,
0b10: 20 65 73 70 65 63 69 61 6c 6c 79 0a 20 20 20 20   especially.    
0b20: 74 68 65 20 76 69 72 74 75 61 6c 20 6d 61 63 68  the virtual mach
0b30: 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c  ine.</li>.<li>Al
0b40: 6c 6f 77 20 22 26 6c 74 3b 65 78 70 72 26 67 74  low "&lt;expr&gt
0b50: 3b 20 49 4e 20 26 6c 74 3b 74 61 62 6c 65 26 67  ; IN &lt;table&g
0b60: 74 3b 22 20 61 73 20 61 20 73 68 6f 72 74 68 61  t;" as a shortha
0b70: 6e 64 20 66 6f 72 0a 20 20 20 20 22 26 6c 74 3b  nd for.    "&lt;
0b80: 65 78 70 72 26 67 74 3b 20 49 4e 20 28 53 45 4c  expr&gt; IN (SEL
0b90: 45 43 54 20 2a 20 46 52 4f 4d 20 26 6c 74 3b 74  ECT * FROM &lt;t
0ba0: 61 62 6c 65 26 67 74 3b 22 2e 3c 2f 6c 69 3e 0a  able&gt;".</li>.
0bb0: 3c 6c 69 3e 4f 70 74 69 6d 69 7a 61 74 69 6f 6e  <li>Optimization
0bc0: 73 20 74 6f 20 74 68 65 20 73 71 6c 69 74 65 5f  s to the sqlite_
0bd0: 6d 70 72 69 6e 74 66 28 29 20 72 6f 75 74 69 6e  mprintf() routin
0be0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  e.</li>.<li>Make
0bf0: 20 73 75 72 65 20 74 68 65 20 4d 49 4e 28 29 20   sure the MIN() 
0c00: 61 6e 64 20 4d 41 58 28 29 20 6f 70 74 69 6d 69  and MAX() optimi
0c10: 7a 61 74 69 6f 6e 73 20 77 6f 72 6b 20 77 69 74  zations work wit
0c20: 68 69 6e 20 73 75 62 71 75 65 72 69 65 73 2e 3c  hin subqueries.<
0c30: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
0c40: 30 34 20 4a 61 6e 75 61 72 79 20 31 34 20 28 32  04 January 14 (2
0c50: 2e 38 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .8.11)} {.<li>Fi
0c60: 78 20 61 20 62 75 67 20 69 6e 20 68 6f 77 20 74  x a bug in how t
0c70: 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 68  he IN operator h
0c80: 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 20 69 6e 20  andles NULLs in 
0c90: 73 75 62 71 75 65 72 69 65 73 2e 20 20 54 68 65  subqueries.  The
0ca0: 20 62 75 67 0a 20 20 20 20 77 61 73 20 69 6e 74   bug.    was int
0cb0: 72 6f 64 75 63 65 64 20 62 79 20 74 68 65 20 70  roduced by the p
0cc0: 72 65 76 69 6f 75 73 20 72 65 6c 65 61 73 65 2e  revious release.
0cd0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0ce0: 30 30 34 20 4a 61 6e 75 61 72 79 20 31 33 20 28  004 January 13 (
0cf0: 32 2e 38 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 46  2.8.10)} {.<li>F
0d00: 69 78 20 61 20 70 6f 74 65 6e 74 69 61 6c 20 64  ix a potential d
0d10: 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69  atabase corrupti
0d20: 6f 6e 20 70 72 6f 62 6c 65 6d 20 6f 6e 20 55 6e  on problem on Un
0d30: 69 78 20 63 61 75 73 65 64 20 62 79 20 74 68 65  ix caused by the
0d40: 20 66 61 63 74 0a 20 20 20 20 74 68 61 74 20 61   fact.    that a
0d50: 6c 6c 20 70 6f 73 69 78 20 61 64 76 69 73 6f 72  ll posix advisor
0d60: 79 20 6c 6f 63 6b 73 20 61 72 65 20 63 6c 65 61  y locks are clea
0d70: 72 65 64 20 77 68 65 6e 65 76 65 72 20 79 6f 75  red whenever you
0d80: 20 63 6c 6f 73 65 28 29 20 61 20 66 69 6c 65 2e   close() a file.
0d90: 0a 20 20 20 20 54 68 65 20 77 6f 72 6b 20 61 72  .    The work ar
0da0: 6f 75 6e 64 20 69 74 20 74 6f 20 65 6d 62 61 72  ound it to embar
0db0: 67 6f 20 61 6c 6c 20 63 6c 6f 73 65 28 29 20 63  go all close() c
0dc0: 61 6c 6c 73 20 77 68 69 6c 65 20 6c 6f 63 6b 73  alls while locks
0dd0: 20 61 72 65 20 0a 20 20 20 20 6f 75 74 73 74 61   are .    outsta
0de0: 6e 64 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nding.</li>.<li>
0df0: 50 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61  Performance enha
0e00: 6e 63 65 6d 65 6e 74 73 20 6f 6e 20 73 6f 6d 65  ncements on some
0e10: 20 63 6f 72 6e 65 72 20 63 61 73 65 73 20 6f 66   corner cases of
0e20: 20 43 4f 55 4e 54 28 2a 29 2e 3c 2f 6c 69 3e 0a   COUNT(*).</li>.
0e30: 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 74 68  <li>Make sure th
0e40: 65 20 69 6e 2d 6d 65 6d 6f 72 79 20 62 61 63 6b  e in-memory back
0e50: 65 6e 64 20 72 65 73 70 6f 6e 73 65 20 73 61 6e  end response san
0e60: 65 6c 79 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20  ely if malloc() 
0e70: 66 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  fails.</li>.<li>
0e80: 41 6c 6c 6f 77 20 73 71 6c 69 74 65 5f 65 78 65  Allow sqlite_exe
0e90: 63 28 29 20 74 6f 20 62 65 20 63 61 6c 6c 65 64  c() to be called
0ea0: 20 66 72 6f 6d 20 77 69 74 68 69 6e 20 75 73 65   from within use
0eb0: 72 2d 64 65 66 69 6e 65 64 20 53 51 4c 0a 20 20  r-defined SQL.  
0ec0: 20 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69    functions.</li
0ed0: 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 61  >.<li>Improved a
0ee0: 63 63 75 72 61 63 79 20 6f 66 20 66 6c 6f 61 74  ccuracy of float
0ef0: 69 6e 67 2d 70 6f 69 6e 74 20 63 6f 6e 76 65 72  ing-point conver
0f00: 73 69 6f 6e 73 20 75 73 69 6e 67 20 22 6c 6f 6e  sions using "lon
0f10: 67 20 64 6f 75 62 6c 65 22 2e 3c 2f 6c 69 3e 0a  g double".</li>.
0f20: 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20 69 6e  <li>Bug fixes in
0f30: 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61   the experimenta
0f40: 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63  l date/time func
0f50: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tions.</li>.}..c
0f60: 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75 61 72  hng {2004 Januar
0f70: 79 20 35 20 28 32 2e 38 2e 39 29 7d 20 7b 0a 3c  y 5 (2.8.9)} {.<
0f80: 6c 69 3e 46 69 78 20 61 20 33 32 2d 62 69 74 20  li>Fix a 32-bit 
0f90: 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77  integer overflow
0fa0: 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 63 6f   problem that co
0fb0: 75 6c 64 20 72 65 73 75 6c 74 20 69 6e 20 63 6f  uld result in co
0fc0: 72 72 75 70 74 0a 20 20 20 20 69 6e 64 69 63 65  rrupt.    indice
0fd0: 73 20 69 6e 20 61 20 64 61 74 61 62 61 73 65 20  s in a database 
0fe0: 69 66 20 6c 61 72 67 65 20 6e 65 67 61 74 69 76  if large negativ
0ff0: 65 20 6e 75 6d 62 65 72 73 20 28 6c 65 73 73 20  e numbers (less 
1000: 74 68 61 6e 20 2d 32 31 34 37 34 38 33 36 34 38  than -2147483648
1010: 29 0a 20 20 20 20 77 65 72 65 20 69 6e 73 65 72  ).    were inser
1020: 74 65 64 20 69 6e 74 6f 20 61 20 69 6e 64 65 78  ted into a index
1030: 65 64 20 6e 75 6d 65 72 69 63 20 63 6f 6c 75 6d  ed numeric colum
1040: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  n.</li>.<li>Fix 
1050: 61 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 62 6c 65  a locking proble
1060: 6d 20 6f 6e 20 6d 75 6c 74 69 2d 74 68 72 65 61  m on multi-threa
1070: 64 65 64 20 4c 69 6e 75 78 20 69 6d 70 6c 65 6d  ded Linux implem
1080: 65 6e 74 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  entations.</li>.
1090: 3c 6c 69 3e 41 6c 77 61 79 73 20 75 73 65 20 22  <li>Always use "
10a0: 2e 22 20 69 6e 73 74 65 61 64 20 6f 66 20 22 2c  ." instead of ",
10b0: 22 20 61 73 20 74 68 65 20 64 65 63 69 6d 61 6c  " as the decimal
10c0: 20 70 6f 69 6e 74 20 65 76 65 6e 20 69 66 20 74   point even if t
10d0: 68 65 20 6c 6f 63 61 6c 65 0a 20 20 20 20 72 65  he locale.    re
10e0: 71 75 65 73 74 73 20 22 2c 22 2e 3c 2f 6c 69 3e  quests ",".</li>
10f0: 0a 3c 6c 69 3e 41 64 64 65 64 20 55 54 43 20 74  .<li>Added UTC t
1100: 6f 20 6c 6f 63 61 6c 74 69 6d 65 20 63 6f 6e 76  o localtime conv
1110: 65 72 73 69 6f 6e 73 20 74 6f 20 74 68 65 20 65  ersions to the e
1120: 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74 65  xperimental date
1130: 2f 74 69 6d 65 0a 20 20 20 20 66 75 6e 63 74 69  /time.    functi
1140: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ons.</li>.<li>Bu
1150: 67 20 66 69 78 65 73 20 74 6f 20 64 61 74 65 2f  g fixes to date/
1160: 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c  time functions.<
1170: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
1180: 30 33 20 44 65 63 65 6d 62 65 72 20 31 37 20 28  03 December 17 (
1190: 32 2e 38 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.8.8)} {.<li>Fi
11a0: 78 20 61 20 63 72 69 74 69 63 61 6c 20 62 75 67  x a critical bug
11b0: 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 74 6f   introduced into
11c0: 20 32 2e 38 2e 30 20 77 68 69 63 68 20 63 6f 75   2.8.0 which cou
11d0: 6c 64 20 63 61 75 73 65 0a 20 20 20 20 64 61 74  ld cause.    dat
11e0: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
11f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
1200: 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 33 2d   problem with 3-
1210: 77 61 79 20 6a 6f 69 6e 73 20 74 68 61 74 20 64  way joins that d
1220: 6f 20 6e 6f 74 20 75 73 65 20 69 6e 64 69 63 65  o not use indice
1230: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56  s</li>.<li>The V
1240: 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20 6e 6f  ACUUM command no
1250: 77 20 77 6f 72 6b 73 20 77 69 74 68 20 74 68 65  w works with the
1260: 20 6e 6f 6e 2d 63 61 6c 6c 62 61 63 6b 20 41 50   non-callback AP
1270: 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f  I</li>.<li>Impro
1280: 76 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 22  vements to the "
1290: 50 52 41 47 4d 41 20 69 6e 74 65 67 72 69 74 79  PRAGMA integrity
12a0: 5f 63 68 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 3c  _check" command<
12b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
12c0: 30 33 20 44 65 63 65 6d 62 65 72 20 34 20 28 32  03 December 4 (2
12d0: 2e 38 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .8.7)} {.<li>Add
12e0: 65 64 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20  ed experimental 
12f0: 73 71 6c 69 74 65 5f 62 69 6e 64 28 29 20 61 6e  sqlite_bind() an
1300: 64 20 73 71 6c 69 74 65 5f 72 65 73 65 74 28 29  d sqlite_reset()
1310: 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   APIs.</li>.<li>
1320: 49 66 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74  If the name of t
1330: 68 65 20 64 61 74 61 62 61 73 65 20 69 73 20 61  he database is a
1340: 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2c 20  n empty string, 
1350: 6f 70 65 6e 20 61 20 6e 65 77 20 64 61 74 61 62  open a new datab
1360: 61 73 65 0a 20 20 20 20 69 6e 20 61 20 74 65 6d  ase.    in a tem
1370: 70 6f 72 61 72 79 20 66 69 6c 65 20 74 68 61 74  porary file that
1380: 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c   is automaticall
1390: 79 20 64 65 6c 65 74 65 64 20 77 68 65 6e 20 74  y deleted when t
13a0: 68 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20  he database.    
13b0: 69 73 20 63 6c 6f 73 65 64 2e 3c 2f 6c 69 3e 0a  is closed.</li>.
13c0: 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20  <li>Performance 
13d0: 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 69 6e 20  enhancements in 
13e0: 74 68 65 20 6c 65 6d 6f 6e 2d 67 65 6e 65 72 61  the lemon-genera
13f0: 74 65 64 20 70 61 72 73 65 72 3c 2f 6c 69 3e 0a  ted parser</li>.
1400: 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c  <li>Experimental
1410: 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74   date/time funct
1420: 69 6f 6e 73 20 72 65 76 69 73 65 64 2e 3c 2f 6c  ions revised.</l
1430: 69 3e 0a 3c 6c 69 3e 44 69 73 61 6c 6c 6f 77 20  i>.<li>Disallow 
1440: 74 65 6d 70 6f 72 61 72 79 20 69 6e 64 69 63 65  temporary indice
1450: 73 20 6f 6e 20 70 65 72 6d 61 6e 65 6e 74 20 74  s on permanent t
1460: 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ables.</li>.<li>
1470: 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70  Documentation up
1480: 64 61 74 65 73 20 61 6e 64 20 74 79 70 6f 20 66  dates and typo f
1490: 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ixes</li>.<li>Ad
14a0: 64 65 64 20 65 78 70 65 72 69 6d 65 6e 74 61 6c  ded experimental
14b0: 20 73 71 6c 69 74 65 5f 70 72 6f 67 72 65 73 73   sqlite_progress
14c0: 5f 68 61 6e 64 6c 65 72 28 29 20 63 61 6c 6c 62  _handler() callb
14d0: 61 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69  ack API</li>.<li
14e0: 3e 52 65 6d 6f 76 65 64 20 73 75 70 70 6f 72 74  >Removed support
14f0: 20 66 6f 72 20 74 68 65 20 4f 72 61 63 6c 65 38   for the Oracle8
1500: 20 6f 75 74 65 72 20 6a 6f 69 6e 20 73 79 6e 74   outer join synt
1510: 61 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  ax.</li>.<li>All
1520: 6f 77 20 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45  ow GLOB and LIKE
1530: 20 6f 70 65 72 61 74 6f 72 73 20 74 6f 20 77 6f   operators to wo
1540: 72 6b 20 61 73 20 66 75 6e 63 74 69 6f 6e 73 2e  rk as functions.
1550: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
1560: 6d 69 6e 6f 72 20 64 6f 63 75 6d 65 6e 74 61 74  minor documentat
1570: 69 6f 6e 20 61 6e 64 20 6d 61 6b 65 66 69 6c 65  ion and makefile
1580: 20 63 68 61 6e 67 65 73 20 61 6e 64 20 62 75 67   changes and bug
1590: 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   fixes.</li>.}..
15a0: 63 68 6e 67 20 7b 32 30 30 33 20 41 75 67 75 73  chng {2003 Augus
15b0: 74 20 32 31 20 28 32 2e 38 2e 36 29 7d 20 7b 0a  t 21 (2.8.6)} {.
15c0: 3c 6c 69 3e 4d 6f 76 65 64 20 74 68 65 20 43 56  <li>Moved the CV
15d0: 53 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20  S repository to 
15e0: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 3c 2f  www.sqlite.org</
15f0: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 20 74  li>.<li>Update t
1600: 68 65 20 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67  he NULL-handling
1610: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c   documentation.<
1620: 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d  /li>.<li>Experim
1630: 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20  ental date/time 
1640: 66 75 6e 63 74 69 6f 6e 73 20 61 64 64 65 64 2e  functions added.
1650: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
1660: 78 3a 20 63 6f 72 72 65 63 74 6c 79 20 65 76 61  x: correctly eva
1670: 6c 75 61 74 65 20 61 20 76 69 65 77 20 6f 66 20  luate a view of 
1680: 61 20 76 69 65 77 20 77 69 74 68 6f 75 74 20 73  a view without s
1690: 65 67 66 61 75 6c 74 69 6e 67 2e 3c 2f 6c 69 3e  egfaulting.</li>
16a0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 70 72  .<li>Bug fix: pr
16b0: 65 76 65 6e 74 20 64 61 74 61 62 61 73 65 20 63  event database c
16c0: 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 79 6f 75  orruption if you
16d0: 20 64 72 6f 70 70 65 64 20 61 0a 20 20 20 20 74   dropped a.    t
16e0: 72 69 67 67 65 72 20 74 68 61 74 20 68 61 64 20  rigger that had 
16f0: 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 73  the same name as
1700: 20 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c   a table.</li>.<
1710: 6c 69 3e 42 75 67 20 66 69 78 3a 20 61 6c 6c 6f  li>Bug fix: allo
1720: 77 20 61 20 56 41 43 55 55 4d 20 28 77 69 74 68  w a VACUUM (with
1730: 6f 75 74 20 73 65 67 66 61 75 6c 74 69 6e 67 29  out segfaulting)
1740: 20 6f 6e 20 61 6e 20 65 6d 70 74 79 0a 20 20 20   on an empty.   
1750: 20 64 61 74 61 62 61 73 65 20 61 66 74 65 72 20   database after 
1760: 73 65 74 74 69 6e 67 20 74 68 65 20 45 4d 50 54  setting the EMPT
1770: 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43  Y_RESULT_CALLBAC
1780: 4b 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a  KS pragma.</li>.
1790: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 69 66 20  <li>Bug fix: if 
17a0: 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65  an integer value
17b0: 20 77 69 6c 6c 20 6e 6f 74 20 66 69 74 20 69 6e   will not fit in
17c0: 20 61 20 33 32 2d 62 69 74 20 69 6e 74 2c 20 73   a 32-bit int, s
17d0: 74 6f 72 65 20 69 74 20 69 6e 0a 20 20 20 20 61  tore it in.    a
17e0: 20 64 6f 75 62 6c 65 20 69 6e 73 74 65 61 64 2e   double instead.
17f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
1800: 78 3a 20 4d 61 6b 65 20 73 75 72 65 20 74 68 65  x: Make sure the
1810: 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 64 69   journal file di
1820: 72 65 63 74 6f 72 79 20 65 6e 74 72 79 20 69 73  rectory entry is
1830: 20 63 6f 6d 6d 69 74 74 65 64 20 74 6f 20 64 69   committed to di
1840: 73 6b 0a 20 20 20 20 62 65 66 6f 72 65 20 77 72  sk.    before wr
1850: 69 74 69 6e 67 20 74 68 65 20 64 61 74 61 62 61  iting the databa
1860: 73 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a  se file.</li>.}.
1870: 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 75 6c 79  .chng {2003 July
1880: 20 32 32 20 28 32 2e 38 2e 35 29 7d 20 7b 0a 3c   22 (2.8.5)} {.<
1890: 6c 69 3e 4d 61 6b 65 20 4c 49 4d 49 54 20 77 6f  li>Make LIMIT wo
18a0: 72 6b 20 6f 6e 20 61 20 63 6f 6d 70 6f 75 6e 64  rk on a compound
18b0: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
18c0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4d 49  t.</li>.<li>LIMI
18d0: 54 20 30 20 6e 6f 77 20 73 68 6f 77 73 20 6e 6f  T 0 now shows no
18e0: 20 72 6f 77 73 2e 20 20 55 73 65 20 4c 49 4d 49   rows.  Use LIMI
18f0: 54 20 2d 31 20 74 6f 20 73 65 65 20 61 6c 6c 20  T -1 to see all 
1900: 72 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  rows.</li>.<li>C
1910: 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20  orrectly handle 
1920: 63 6f 6d 70 61 72 69 73 6f 6e 73 20 62 65 74 77  comparisons betw
1930: 65 65 6e 20 61 6e 20 49 4e 54 45 47 45 52 20 50  een an INTEGER P
1940: 52 49 4d 41 52 59 20 4b 45 59 20 61 6e 64 0a 20  RIMARY KEY and. 
1950: 20 20 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f     a floating po
1960: 69 6e 74 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e  int number.</li>
1970: 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65 72 61 6c  .<li>Fix several
1980: 20 69 6d 70 6f 72 74 61 6e 74 20 62 75 67 73 20   important bugs 
1990: 69 6e 20 74 68 65 20 6e 65 77 20 41 54 54 41 43  in the new ATTAC
19a0: 48 20 61 6e 64 20 44 45 54 41 43 48 20 63 6f 6d  H and DETACH com
19b0: 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  mands.</li>.<li>
19c0: 55 70 64 61 74 65 64 20 74 68 65 20 3c 61 20 68  Updated the <a h
19d0: 72 65 66 3d 22 6e 75 6c 6c 73 2e 68 74 6d 6c 22  ref="nulls.html"
19e0: 3e 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64  >NULL-handling d
19f0: 6f 63 75 6d 65 6e 74 3c 2f 61 3e 2e 3c 2f 6c 69  ocument</a>.</li
1a00: 3e 20 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 4e 55 4c  > .<li>Allow NUL
1a10: 4c 20 61 72 67 75 6d 65 6e 74 73 20 69 6e 20 73  L arguments in s
1a20: 71 6c 69 74 65 5f 63 6f 6d 70 69 6c 65 28 29 20  qlite_compile() 
1a30: 61 6e 64 20 73 71 6c 69 74 65 5f 73 74 65 70 28  and sqlite_step(
1a40: 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79  ).</li>.<li>Many
1a50: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
1a60: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1a70: 30 30 33 20 4a 75 6e 65 20 32 39 20 28 32 2e 38  003 June 29 (2.8
1a80: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 45 6e 68 61 6e  .4)} {.<li>Enhan
1a90: 63 65 64 20 74 68 65 20 22 50 52 41 47 4d 41 20  ced the "PRAGMA 
1aa0: 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 22  integrity_check"
1ab0: 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 76 65 72 69   command to veri
1ac0: 66 79 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e  fy indices.</li>
1ad0: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 75 74 68 6f  .<li>Added autho
1ae0: 72 69 7a 61 74 69 6f 6e 20 68 6f 6f 6b 73 20 66  rization hooks f
1af0: 6f 72 20 74 68 65 20 6e 65 77 20 41 54 54 41 43  or the new ATTAC
1b00: 48 20 61 6e 64 20 44 45 54 41 43 48 20 63 6f 6d  H and DETACH com
1b10: 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  mands.</li>.<li>
1b20: 4d 61 6e 79 20 64 6f 63 75 6d 65 6e 74 61 74 69  Many documentati
1b30: 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a  on updates</li>.
1b40: 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62  <li>Many minor b
1b50: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
1b60: 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65  .chng {2003 June
1b70: 20 34 20 28 32 2e 38 2e 33 29 7d 20 7b 0a 3c 6c   4 (2.8.3)} {.<l
1b80: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
1b90: 74 68 61 74 20 77 69 6c 6c 20 63 6f 72 72 75 70  that will corrup
1ba0: 74 20 74 68 65 20 69 6e 64 69 63 65 73 20 6f 6e  t the indices on
1bb0: 20 61 20 74 61 62 6c 65 20 69 66 20 79 6f 75 0a   a table if you.
1bc0: 20 20 20 20 64 6f 20 61 6e 20 49 4e 53 45 52 54      do an INSERT
1bd0: 20 4f 52 20 52 45 50 4c 41 43 45 20 6f 72 20 61   OR REPLACE or a
1be0: 6e 20 55 50 44 41 54 45 20 4f 52 20 52 45 50 4c  n UPDATE OR REPL
1bf0: 41 43 45 20 6f 6e 20 61 20 74 61 62 6c 65 20 74  ACE on a table t
1c00: 68 61 74 0a 20 20 20 20 63 6f 6e 74 61 69 6e 73  hat.    contains
1c10: 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d   an INTEGER PRIM
1c20: 41 52 59 20 4b 45 59 20 70 6c 75 73 20 6f 6e 65  ARY KEY plus one
1c30: 20 6f 72 20 6d 6f 72 65 20 69 6e 64 69 63 65 73   or more indices
1c40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
1c50: 20 62 75 67 20 69 6e 20 77 69 6e 64 6f 77 73 20   bug in windows 
1c60: 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 73 6f 20  locking code so 
1c70: 74 68 61 74 20 6c 6f 63 6b 73 20 77 6f 72 6b 20  that locks work 
1c80: 63 6f 72 72 65 63 74 6c 79 0a 20 20 20 20 77 68  correctly.    wh
1c90: 65 6e 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c  en simultaneousl
1ca0: 79 20 61 63 63 65 73 73 65 64 20 62 79 20 57 69  y accessed by Wi
1cb0: 6e 39 35 20 61 6e 64 20 57 69 6e 4e 54 20 73 79  n95 and WinNT sy
1cc0: 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  stems.</li>.<li>
1cd0: 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20  Add the ability 
1ce0: 66 6f 72 20 49 4e 53 45 52 54 20 61 6e 64 20 55  for INSERT and U
1cf0: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73  PDATE statements
1d00: 20 74 6f 20 72 65 66 65 72 20 74 6f 20 74 68 65   to refer to the
1d10: 0a 20 20 20 20 22 72 6f 77 69 64 22 20 28 6f 72  .    "rowid" (or
1d20: 20 22 5f 72 6f 77 69 64 5f 22 20 6f 72 20 22 6f   "_rowid_" or "o
1d30: 69 64 22 29 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c  id") columns.</l
1d40: 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 69 6d 70  i>.<li>Other imp
1d50: 6f 72 74 61 6e 74 20 62 75 67 20 66 69 78 65 73  ortant bug fixes
1d60: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1d70: 30 30 33 20 4d 61 79 20 31 37 20 28 32 2e 38 2e  003 May 17 (2.8.
1d80: 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  2)} {.<li>Fix a 
1d90: 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 69 6c  problem that wil
1da0: 6c 20 63 6f 72 72 75 70 74 20 74 68 65 20 64 61  l corrupt the da
1db0: 74 61 62 61 73 65 20 66 69 6c 65 20 69 66 20 79  tabase file if y
1dc0: 6f 75 20 64 72 6f 70 20 61 0a 20 20 20 20 74 61  ou drop a.    ta
1dd0: 62 6c 65 20 66 72 6f 6d 20 74 68 65 20 6d 61 69  ble from the mai
1de0: 6e 20 64 61 74 61 62 61 73 65 20 74 68 61 74 20  n database that 
1df0: 68 61 73 20 61 20 54 45 4d 50 20 69 6e 64 65 78  has a TEMP index
1e00: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1e10: 32 30 30 33 20 4d 61 79 20 31 36 20 28 32 2e 38  2003 May 16 (2.8
1e20: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65 61 63 74  .1)} {.<li>React
1e30: 69 76 61 74 65 64 20 74 68 65 20 56 41 43 55 55  ivated the VACUU
1e40: 4d 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72  M command that r
1e50: 65 63 6c 61 69 6d 73 20 75 6e 75 73 65 64 20 64  eclaims unused d
1e60: 69 73 6b 20 73 70 61 63 65 20 69 6e 20 0a 20 20  isk space in .  
1e70: 20 20 61 20 64 61 74 61 62 61 73 65 20 66 69 6c    a database fil
1e80: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  e.</li>.<li>Adde
1e90: 64 20 74 68 65 20 41 54 54 41 43 48 20 61 6e 64  d the ATTACH and
1ea0: 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73   DETACH commands
1eb0: 20 74 6f 20 61 6c 6c 6f 77 20 69 6e 74 65 72 61   to allow intera
1ec0: 63 74 69 6e 67 20 77 69 74 68 20 6d 75 6c 74 69  cting with multi
1ed0: 70 6c 65 0a 20 20 20 20 64 61 74 61 62 61 73 65  ple.    database
1ee0: 20 66 69 6c 65 73 20 61 74 20 74 68 65 20 73 61   files at the sa
1ef0: 6d 65 20 74 69 6d 65 2e 3c 2f 6c 69 3e 0a 3c 6c  me time.</li>.<l
1f00: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
1f10: 66 6f 72 20 54 45 4d 50 20 74 72 69 67 67 65 72  for TEMP trigger
1f20: 73 20 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f  s and indices.</
1f30: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
1f40: 70 70 6f 72 74 20 66 6f 72 20 69 6e 2d 6d 65 6d  pport for in-mem
1f50: 6f 72 79 20 64 61 74 61 62 61 73 65 73 2e 3c 2f  ory databases.</
1f60: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20  li>.<li>Removed 
1f70: 74 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c  the experimental
1f80: 20 73 71 6c 69 74 65 5f 6f 70 65 6e 5f 61 75 78   sqlite_open_aux
1f90: 5f 66 69 6c 65 28 29 2e 20 20 49 74 73 20 66 75  _file().  Its fu
1fa0: 6e 63 74 69 6f 6e 20 69 73 0a 20 20 20 20 73 75  nction is.    su
1fb0: 62 73 75 6d 65 64 20 69 6e 20 74 68 65 20 6e 65  bsumed in the ne
1fc0: 77 20 41 54 54 41 43 48 20 63 6f 6d 6d 61 6e 64  w ATTACH command
1fd0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70  .</li>.<li>The p
1fe0: 72 65 63 65 64 65 6e 63 65 20 6f 72 64 65 72 20  recedence order 
1ff0: 66 6f 72 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20  for ON CONFLICT 
2000: 63 6c 61 75 73 65 73 20 77 61 73 20 63 68 61 6e  clauses was chan
2010: 67 65 64 20 73 6f 20 74 68 61 74 0a 20 20 20 20  ged so that.    
2020: 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75  ON CONFLICT clau
2030: 73 65 73 20 6f 6e 20 42 45 47 49 4e 20 73 74 61  ses on BEGIN sta
2040: 74 65 6d 65 6e 74 73 20 68 61 76 65 20 61 20 68  tements have a h
2050: 69 67 68 65 72 20 70 72 65 63 65 64 65 6e 63 65  igher precedence
2060: 20 74 68 61 6e 0a 20 20 20 20 4f 4e 20 43 4f 4e   than.    ON CON
2070: 46 4c 49 43 54 20 63 6c 61 75 73 65 73 20 6f 6e  FLICT clauses on
2080: 20 63 6f 6e 73 74 72 61 69 6e 74 73 2e 0a 3c 6c   constraints..<l
2090: 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67  i>Many, many bug
20a0: 20 66 69 78 65 73 20 61 6e 64 20 63 6f 6d 70 61   fixes and compa
20b0: 74 69 62 69 6c 69 74 79 20 65 6e 68 61 6e 63 65  tibility enhance
20c0: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ments.</li>.}..c
20d0: 68 6e 67 20 7b 32 30 30 33 20 46 65 62 20 31 36  hng {2003 Feb 16
20e0: 20 28 32 2e 38 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.0)} {.<li>
20f0: 4d 6f 64 69 66 69 65 64 20 74 68 65 20 6a 6f 75  Modified the jou
2100: 72 6e 61 6c 20 66 69 6c 65 20 66 6f 72 6d 61 74  rnal file format
2110: 20 74 6f 20 6d 61 6b 65 20 69 74 20 6d 6f 72 65   to make it more
2120: 20 72 65 73 69 73 74 61 6e 74 20 74 6f 20 63 6f   resistant to co
2130: 72 72 75 70 74 69 6f 6e 0a 20 20 20 20 74 68 61  rruption.    tha
2140: 74 20 63 61 6e 20 6f 63 63 75 72 20 61 66 74 65  t can occur afte
2150: 72 20 61 6e 20 4f 53 20 63 72 61 73 68 20 6f 72  r an OS crash or
2160: 20 70 6f 77 65 72 20 66 61 69 6c 75 72 65 2e 3c   power failure.<
2170: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
2180: 20 6e 65 77 20 43 2f 43 2b 2b 20 41 50 49 20 74   new C/C++ API t
2190: 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 75 73 65  hat does not use
21a0: 20 63 61 6c 6c 62 61 63 6b 20 66 6f 72 20 72 65   callback for re
21b0: 74 75 72 6e 69 6e 67 20 64 61 74 61 2e 3c 2f 6c  turning data.</l
21c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
21d0: 20 4a 61 6e 20 32 35 20 28 32 2e 37 2e 36 29 7d   Jan 25 (2.7.6)}
21e0: 20 7b 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e   {.<li>Performan
21f0: 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e  ce improvements.
2200: 20 20 54 68 65 20 6c 69 62 72 61 72 79 20 69 73    The library is
2210: 20 6e 6f 77 20 6d 75 63 68 20 66 61 73 74 65 72   now much faster
2220: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
2230: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 73   the <b>sqlite_s
2240: 65 74 5f 61 75 74 68 6f 72 69 7a 65 72 28 29 3c  et_authorizer()<
2250: 2f 62 3e 20 41 50 49 2e 20 20 46 6f 72 6d 61 6c  /b> API.  Formal
2260: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 68   documentation h
2270: 61 73 0a 20 20 20 20 6e 6f 74 20 62 65 65 6e 20  as.    not been 
2280: 77 72 69 74 74 65 6e 20 2d 20 73 65 65 20 74 68  written - see th
2290: 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 63 6f  e source code co
22a0: 6d 6d 65 6e 74 73 20 66 6f 72 20 69 6e 73 74 72  mments for instr
22b0: 75 63 74 69 6f 6e 73 20 6f 6e 0a 20 20 20 20 68  uctions on.    h
22c0: 6f 77 20 74 6f 20 75 73 65 20 74 68 69 73 20 66  ow to use this f
22d0: 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  unction.</li>.<l
22e0: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
22f0: 68 65 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72  he GLOB operator
2300: 20 74 68 61 74 20 77 61 73 20 70 72 65 76 65 6e   that was preven
2310: 74 69 6e 67 20 69 74 20 66 72 6f 6d 20 77 6f 72  ting it from wor
2320: 6b 69 6e 67 0a 20 20 20 20 77 69 74 68 20 75 70  king.    with up
2330: 70 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72 73  per-case letters
2340: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f  .</li>.<li>Vario
2350: 75 73 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  us minor bug fix
2360: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
2370: 20 7b 32 30 30 32 20 44 65 63 20 32 37 20 28 32   {2002 Dec 27 (2
2380: 2e 37 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .7.5)} {.<li>Fix
2390: 20 61 6e 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65   an uninitialize
23a0: 64 20 76 61 72 69 61 62 6c 65 20 69 6e 20 70 61  d variable in pa
23b0: 67 65 72 2e 63 20 77 68 69 63 68 20 63 6f 75 6c  ger.c which coul
23c0: 64 20 28 77 69 74 68 20 61 20 70 72 6f 62 61 62  d (with a probab
23d0: 69 6c 69 74 79 0a 20 20 20 20 6f 66 20 61 62 6f  ility.    of abo
23e0: 75 74 20 31 20 69 6e 20 34 20 62 69 6c 6c 69 6f  ut 1 in 4 billio
23f0: 6e 29 20 72 65 73 75 6c 74 20 69 6e 20 61 20 63  n) result in a c
2400: 6f 72 72 75 70 74 65 64 20 64 61 74 61 62 61 73  orrupted databas
2410: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
2420: 7b 32 30 30 32 20 44 65 63 20 31 37 20 28 32 2e  {2002 Dec 17 (2.
2430: 37 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 44 61 74 61  7.4)} {.<li>Data
2440: 62 61 73 65 20 66 69 6c 65 73 20 63 61 6e 20 6e  base files can n
2450: 6f 77 20 67 72 6f 77 20 74 6f 20 62 65 20 75 70  ow grow to be up
2460: 20 74 6f 20 32 5e 34 31 20 62 79 74 65 73 2e 20   to 2^41 bytes. 
2470: 20 54 68 65 20 6f 6c 64 20 6c 69 6d 69 74 0a 20   The old limit. 
2480: 20 20 20 77 61 73 20 32 5e 33 31 20 62 79 74 65     was 2^31 byte
2490: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  s.</li>.<li>The 
24a0: 6f 70 74 69 6d 69 7a 65 72 20 77 69 6c 6c 20 6e  optimizer will n
24b0: 6f 77 20 73 63 61 6e 20 74 61 62 6c 65 73 20 69  ow scan tables i
24c0: 6e 20 74 68 65 20 72 65 76 65 72 73 65 20 69 66  n the reverse if
24d0: 20 64 6f 69 6e 67 20 73 6f 20 77 69 6c 6c 0a 20   doing so will. 
24e0: 20 20 20 73 61 74 69 73 66 79 20 61 6e 20 4f 52     satisfy an OR
24f0: 44 45 52 20 42 59 20 2e 2e 2e 20 44 45 53 43 20  DER BY ... DESC 
2500: 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  clause.</li>.<li
2510: 3e 54 68 65 20 66 75 6c 6c 20 70 61 74 68 6e 61  >The full pathna
2520: 6d 65 20 6f 66 20 74 68 65 20 64 61 74 61 62 61  me of the databa
2530: 73 65 20 66 69 6c 65 20 69 73 20 6e 6f 77 20 72  se file is now r
2540: 65 6d 65 6d 62 65 72 65 64 20 65 76 65 6e 20 69  emembered even i
2550: 66 0a 20 20 20 20 61 20 72 65 6c 61 74 69 76 65  f.    a relative
2560: 20 70 61 74 68 20 69 73 20 70 61 73 73 65 64 20   path is passed 
2570: 69 6e 74 6f 20 73 71 6c 69 74 65 5f 6f 70 65 6e  into sqlite_open
2580: 28 29 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73  ().  This allows
2590: 20 0a 20 20 20 20 74 68 65 20 6c 69 62 72 61 72   .    the librar
25a0: 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 70  y to continue op
25b0: 65 72 61 74 69 6e 67 20 63 6f 72 72 65 63 74 6c  erating correctl
25c0: 79 20 61 66 74 65 72 20 61 20 63 68 64 69 72 28  y after a chdir(
25d0: 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65  ).</li>.<li>Spee
25e0: 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69  d improvements i
25f0: 6e 20 74 68 65 20 56 44 42 45 2e 3c 2f 6c 69 3e  n the VDBE.</li>
2600: 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20 6c 69 74  .<li>Lots of lit
2610: 74 6c 65 20 62 75 67 20 66 69 78 65 73 2e 3c 2f  tle bug fixes.</
2620: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
2630: 32 20 4f 63 74 20 33 30 20 28 32 2e 37 2e 33 29  2 Oct 30 (2.7.3)
2640: 7d 20 7b 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20  } {.<li>Various 
2650: 63 6f 6d 70 69 6c 65 72 20 63 6f 6d 70 61 74 69  compiler compati
2660: 62 69 6c 69 74 79 20 66 69 78 65 73 2e 3c 2f 6c  bility fixes.</l
2670: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
2680: 20 69 6e 20 74 68 65 20 22 65 78 70 72 20 49 4e   in the "expr IN
2690: 20 28 29 22 20 6f 70 65 72 61 74 6f 72 2e 3c 2f   ()" operator.</
26a0: 6c 69 3e 0a 3c 6c 69 3e 41 63 63 65 70 74 20 63  li>.<li>Accept c
26b0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 70  olumn names in p
26c0: 61 72 65 6e 74 68 65 73 65 73 2e 3c 2f 6c 69 3e  arentheses.</li>
26d0: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c  .<li>Fix a probl
26e0: 65 6d 20 77 69 74 68 20 73 74 72 69 6e 67 20 6d  em with string m
26f0: 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74  emory management
2700: 20 69 6e 20 74 68 65 20 56 44 42 45 3c 2f 6c 69   in the VDBE</li
2710: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
2720: 69 6e 20 74 68 65 20 22 74 61 62 6c 65 5f 69 6e  in the "table_in
2730: 66 6f 22 20 70 72 61 67 6d 61 22 3c 2f 6c 69 3e  fo" pragma"</li>
2740: 0a 3c 6c 69 3e 45 78 70 6f 72 74 20 74 68 65 20  .<li>Export the 
2750: 73 71 6c 69 74 65 5f 66 75 6e 63 74 69 6f 6e 5f  sqlite_function_
2760: 74 79 70 65 28 29 20 41 50 49 20 66 75 6e 63 74  type() API funct
2770: 69 6f 6e 20 69 6e 20 74 68 65 20 57 69 6e 64 6f  ion in the Windo
2780: 77 73 20 44 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ws DLL</li>.<li>
2790: 46 69 78 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61  Fix locking beha
27a0: 76 69 6f 72 20 75 6e 64 65 72 20 77 69 6e 64 6f  vior under windo
27b0: 77 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  ws</li>.<li>Fix 
27c0: 61 20 62 75 67 20 69 6e 20 4c 45 46 54 20 4f 55  a bug in LEFT OU
27d0: 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a  TER JOIN</li>.}.
27e0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 53 65 70 20  .chng {2002 Sep 
27f0: 32 35 20 28 32 2e 37 2e 32 29 7d 20 7b 0a 3c 6c  25 (2.7.2)} {.<l
2800: 69 3e 50 72 65 76 65 6e 74 20 6a 6f 75 72 6e 61  i>Prevent journa
2810: 6c 20 66 69 6c 65 20 6f 76 65 72 66 6c 6f 77 73  l file overflows
2820: 20 6f 6e 20 68 75 67 65 20 74 72 61 6e 73 61 63   on huge transac
2830: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
2840: 46 69 78 20 61 20 6d 65 6d 6f 72 79 20 6c 65 61  Fix a memory lea
2850: 6b 20 74 68 61 74 20 6f 63 63 75 72 72 65 64 20  k that occurred 
2860: 77 68 65 6e 20 73 71 6c 69 74 65 5f 6f 70 65 6e  when sqlite_open
2870: 28 29 20 66 61 69 6c 65 64 2e 3c 2f 6c 69 3e 0a  () failed.</li>.
2880: 3c 6c 69 3e 48 6f 6e 6f 72 20 74 68 65 20 4f 52  <li>Honor the OR
2890: 44 45 52 20 42 59 20 61 6e 64 20 4c 49 4d 49 54  DER BY and LIMIT
28a0: 20 63 6c 61 75 73 65 20 6f 66 20 61 20 53 45 4c   clause of a SEL
28b0: 45 43 54 20 65 76 65 6e 20 69 66 20 74 68 65 0a  ECT even if the.
28c0: 20 20 20 20 72 65 73 75 6c 74 20 73 65 74 20 69      result set i
28d0: 73 20 75 73 65 64 20 66 6f 72 20 61 6e 20 49 4e  s used for an IN
28e0: 53 45 52 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  SERT.</li>.<li>D
28f0: 6f 20 6e 6f 74 20 70 75 74 20 77 72 69 74 65 20  o not put write 
2900: 6c 6f 63 6b 73 20 6f 6e 20 74 68 65 20 66 69 6c  locks on the fil
2910: 65 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 54  e used to hold T
2920: 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e  EMP tables.</li>
2930: 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63 75 6d  .<li>Added docum
2940: 65 6e 74 69 6f 6e 20 6f 6e 20 53 45 4c 45 43 54  ention on SELECT
2950: 20 44 49 53 54 49 4e 43 54 20 61 6e 64 20 6f 6e   DISTINCT and on
2960: 20 68 6f 77 20 53 51 4c 69 74 65 20 68 61 6e 64   how SQLite hand
2970: 6c 65 73 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a  les NULLs.</li>.
2980: 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65  <li>Fix a proble
2990: 6d 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69  m that was causi
29a0: 6e 67 20 70 6f 6f 72 20 70 65 72 66 6f 72 6d 61  ng poor performa
29b0: 6e 63 65 20 77 68 65 6e 20 6d 61 6e 79 20 74 68  nce when many th
29c0: 6f 75 73 61 6e 64 73 0a 20 20 20 20 6f 66 20 53  ousands.    of S
29d0: 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 20 77 65  QL statements we
29e0: 72 65 20 65 78 65 63 75 74 65 64 20 62 79 20 61  re executed by a
29f0: 20 73 69 6e 67 6c 65 20 73 71 6c 69 74 65 5f 65   single sqlite_e
2a00: 78 65 63 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69 3e  xec() call.</li>
2a10: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41  .}..chng {2002 A
2a20: 75 67 20 33 31 20 28 32 2e 37 2e 31 29 7d 20 7b  ug 31 (2.7.1)} {
2a30: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
2a40: 6e 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 6c  n the ORDER BY l
2a50: 6f 67 69 63 20 74 68 61 74 20 77 61 73 20 69 6e  ogic that was in
2a60: 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73  troduced in vers
2a70: 69 6f 6e 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a 3c  ion 2.7.0</li>.<
2a80: 6c 69 3e 43 2d 73 74 79 6c 65 20 63 6f 6d 6d 65  li>C-style comme
2a90: 6e 74 73 20 61 72 65 20 6e 6f 77 20 61 63 63 65  nts are now acce
2aa0: 70 74 65 64 20 62 79 20 74 68 65 20 74 6f 6b 65  pted by the toke
2ab0: 6e 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nizer.</li>.<li>
2ac0: 49 4e 53 45 52 54 20 72 75 6e 73 20 61 20 6c 69  INSERT runs a li
2ad0: 74 74 6c 65 20 66 61 73 74 65 72 20 77 68 65 6e  ttle faster when
2ae0: 20 74 68 65 20 73 6f 75 72 63 65 20 69 73 20 61   the source is a
2af0: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
2b00: 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  t.</li>.}..chng 
2b10: 7b 32 30 30 32 20 41 75 67 20 32 35 20 28 32 2e  {2002 Aug 25 (2.
2b20: 37 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65  7.0)} {.<li>Make
2b30: 20 61 20 64 69 73 74 69 6e 63 74 69 6f 6e 20 62   a distinction b
2b40: 65 74 77 65 65 6e 20 6e 75 6d 65 72 69 63 20 61  etween numeric a
2b50: 6e 64 20 74 65 78 74 20 76 61 6c 75 65 73 20 77  nd text values w
2b60: 68 65 6e 20 73 6f 72 74 69 6e 67 2e 0a 20 20 20  hen sorting..   
2b70: 20 54 65 78 74 20 76 61 6c 75 65 73 20 73 6f 72   Text values sor
2b80: 74 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 6d  t according to m
2b90: 65 6d 63 6d 70 28 29 2e 20 20 4e 75 6d 65 72 69  emcmp().  Numeri
2ba0: 63 20 76 61 6c 75 65 73 20 73 6f 72 74 20 69 6e  c values sort in
2bb0: 0a 20 20 20 20 6e 75 6d 65 72 69 63 20 6f 72 64  .    numeric ord
2bc0: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  er.</li>.<li>All
2bd0: 6f 77 20 6d 75 6c 74 69 70 6c 65 20 73 69 6d 75  ow multiple simu
2be0: 6c 61 74 61 6e 65 6f 75 73 20 72 65 61 64 65 72  lataneous reader
2bf0: 73 20 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 20  s under windows 
2c00: 62 79 20 73 69 6d 75 6c 61 74 69 6e 67 0a 20 20  by simulating.  
2c10: 20 20 74 68 65 20 72 65 61 64 65 72 2f 77 72 69    the reader/wri
2c20: 74 65 72 73 20 6c 6f 63 6b 73 20 74 68 61 74 20  ters locks that 
2c30: 61 72 65 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d  are missing from
2c40: 20 57 69 6e 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c   Win95/98/ME.</l
2c50: 69 3e 0a 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20  i>.<li>An error 
2c60: 69 73 20 6e 6f 77 20 72 65 74 75 72 6e 65 64 20  is now returned 
2c70: 77 68 65 6e 20 74 72 79 69 6e 67 20 74 6f 20 73  when trying to s
2c80: 74 61 72 74 20 61 20 74 72 61 6e 73 61 63 74 69  tart a transacti
2c90: 6f 6e 20 69 66 0a 20 20 20 20 61 6e 6f 74 68 65  on if.    anothe
2ca0: 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73  r transaction is
2cb0: 20 61 6c 72 65 61 64 79 20 61 63 74 69 76 65 2e   already active.
2cc0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
2cd0: 30 30 32 20 41 75 67 20 31 32 20 28 32 2e 36 2e  002 Aug 12 (2.6.
2ce0: 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68  3)} {.<li>Add th
2cf0: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65 61  e ability to rea
2d00: 64 20 62 6f 74 68 20 6c 69 74 74 6c 65 2d 65 6e  d both little-en
2d10: 64 69 61 6e 20 61 6e 64 20 62 69 67 2d 65 6e 64  dian and big-end
2d20: 69 61 6e 20 64 61 74 61 62 61 73 65 73 2e 0a 20  ian databases.. 
2d30: 20 20 20 53 6f 20 64 61 74 61 62 61 73 65 20 63     So database c
2d40: 72 65 61 74 65 64 20 75 6e 64 65 72 20 53 75 6e  reated under Sun
2d50: 4f 53 20 6f 72 20 4d 61 63 4f 53 58 20 63 61 6e  OS or MacOSX can
2d60: 20 62 65 20 72 65 61 64 20 61 6e 64 20 77 72 69   be read and wri
2d70: 74 74 65 6e 0a 20 20 20 20 75 6e 64 65 72 20 4c  tten.    under L
2d80: 69 6e 75 78 20 6f 72 20 57 69 6e 64 6f 77 73 20  inux or Windows 
2d90: 61 6e 64 20 76 69 63 65 20 76 65 72 73 61 2e 3c  and vice versa.<
2da0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74  /li>.<li>Convert
2db0: 20 74 6f 20 74 68 65 20 6e 65 77 20 77 65 62 73   to the new webs
2dc0: 69 74 65 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e  ite: http://www.
2dd0: 73 71 6c 69 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e  sqlite.org/</li>
2de0: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 72 61 6e 73  .<li>Allow trans
2df0: 61 63 74 69 6f 6e 73 20 74 6f 20 73 70 61 6e 20  actions to span 
2e00: 4c 69 6e 75 78 20 54 68 72 65 61 64 73 3c 2f 6c  Linux Threads</l
2e10: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 20 69  i>.<li>Bug fix i
2e20: 6e 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67  n the processing
2e30: 20 6f 66 20 74 68 65 20 4f 52 44 45 52 20 42 59   of the ORDER BY
2e40: 20 63 6c 61 75 73 65 20 66 6f 72 20 47 52 4f 55   clause for GROU
2e50: 50 20 42 59 20 71 75 65 72 69 65 73 3c 2f 6c 69  P BY queries</li
2e60: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
2e70: 4a 6c 79 20 33 30 20 28 32 2e 36 2e 32 29 7d 20  Jly 30 (2.6.2)} 
2e80: 7b 0a 3c 6c 69 3e 54 65 78 74 20 66 69 6c 65 73  {.<li>Text files
2e90: 20 72 65 61 64 20 62 79 20 74 68 65 20 43 4f 50   read by the COP
2ea0: 59 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f  Y command can no
2eb0: 77 20 68 61 76 65 20 6c 69 6e 65 20 74 65 72 6d  w have line term
2ec0: 69 6e 61 74 6f 72 73 0a 20 20 20 20 6f 66 20 4c  inators.    of L
2ed0: 46 2c 20 20 43 52 4c 46 2c 20 6f 72 20 43 52 2e  F,  CRLF, or CR.
2ee0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45  </li>.<li>SQLITE
2ef0: 5f 42 55 53 59 20 69 73 20 68 61 6e 64 6c 65 64  _BUSY is handled
2f00: 20 63 6f 72 72 65 63 74 6c 79 20 69 66 20 65 6e   correctly if en
2f10: 63 6f 75 6e 74 65 72 65 64 20 64 75 72 69 6e 67  countered during
2f20: 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 69 6e   database.    in
2f30: 69 74 69 61 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c  itialization.</l
2f40: 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 6f 20 55 50  i>.<li>Fix to UP
2f50: 44 41 54 45 20 74 72 69 67 67 65 72 73 20 6f 6e  DATE triggers on
2f60: 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c   TEMP tables.</l
2f70: 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61  i>.<li>Documenta
2f80: 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c  tion updates.</l
2f90: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
2fa0: 20 4a 6c 79 20 31 39 20 28 32 2e 36 2e 31 29 7d   Jly 19 (2.6.1)}
2fb0: 20 7b 0a 3c 6c 69 3e 49 6e 63 6c 75 64 65 20 61   {.<li>Include a
2fc0: 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 69   static string i
2fd0: 6e 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 68  n the library th
2fe0: 61 74 20 72 65 73 70 6f 6e 64 73 20 74 6f 20 74  at responds to t
2ff0: 68 65 20 52 43 53 0a 20 20 20 20 22 69 64 65 6e  he RCS.    "iden
3000: 74 22 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 77  t" command and w
3010: 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68  hich contains th
3020: 65 20 6c 69 62 72 61 72 79 20 76 65 72 73 69 6f  e library versio
3030: 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c  n number.</li>.<
3040: 6c 69 3e 46 69 78 20 61 6e 20 61 73 73 65 72 74  li>Fix an assert
3050: 69 6f 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74  ion failure that
3060: 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e 20 64   occurred when d
3070: 65 6c 65 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73  eleting all rows
3080: 20 6f 66 0a 20 20 20 20 61 20 74 61 62 6c 65 20   of.    a table 
3090: 77 69 74 68 20 74 68 65 20 22 63 6f 75 6e 74 5f  with the "count_
30a0: 63 68 61 6e 67 65 73 22 20 70 72 61 67 6d 61 20  changes" pragma 
30b0: 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a  turned on.</li>.
30c0: 3c 6c 69 3e 42 65 74 74 65 72 20 65 72 72 6f 72  <li>Better error
30d0: 20 72 65 70 6f 72 74 69 6e 67 20 77 68 65 6e 20   reporting when 
30e0: 70 72 6f 62 6c 65 6d 73 20 6f 63 63 75 72 20 64  problems occur d
30f0: 75 72 69 6e 67 20 74 68 65 20 61 75 74 6f 6d 61  uring the automa
3100: 74 69 63 0a 20 20 20 20 32 2e 35 2e 36 20 74 6f  tic.    2.5.6 to
3110: 20 32 2e 36 2e 30 20 64 61 74 61 62 61 73 65 20   2.6.0 database 
3120: 66 6f 72 6d 61 74 20 75 70 67 72 61 64 65 2e 3c  format upgrade.<
3130: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3140: 30 32 20 4a 6c 79 20 31 37 20 28 32 2e 36 2e 30  02 Jly 17 (2.6.0
3150: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
3160: 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e  the format of in
3170: 64 69 63 65 73 20 74 6f 20 63 6f 72 72 65 63 74  dices to correct
3180: 20 61 20 64 65 73 69 67 6e 20 66 6c 61 77 20 74   a design flaw t
3190: 68 65 20 6f 72 69 67 69 6e 61 74 65 64 0a 20 20  he originated.  
31a0: 20 20 77 69 74 68 20 76 65 72 73 69 6f 6e 20 32    with version 2
31b0: 2e 31 2e 30 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c  .1.0.  <font col
31c0: 6f 72 3d 22 72 65 64 22 3e 2a 2a 2a 20 54 68 69  or="red">*** Thi
31d0: 73 20 69 73 20 61 6e 20 69 6e 63 6f 6d 70 61 74  s is an incompat
31e0: 69 62 6c 65 0a 20 20 20 20 66 69 6c 65 20 66 6f  ible.    file fo
31f0: 72 6d 61 74 20 63 68 61 6e 67 65 20 2a 2a 2a 3c  rmat change ***<
3200: 2f 66 6f 6e 74 3e 20 20 57 68 65 6e 20 76 65 72  /font>  When ver
3210: 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 72 20 6c 61  sion 2.6.0 or la
3220: 74 65 72 20 6f 66 20 74 68 65 0a 20 20 20 20 6c  ter of the.    l
3230: 69 62 72 61 72 79 20 61 74 74 65 6d 70 74 73 20  ibrary attempts 
3240: 74 6f 20 6f 70 65 6e 20 61 20 64 61 74 61 62 61  to open a databa
3250: 73 65 20 66 69 6c 65 20 63 72 65 61 74 65 64 20  se file created 
3260: 62 79 20 76 65 72 73 69 6f 6e 20 32 2e 35 2e 36  by version 2.5.6
3270: 20 6f 72 0a 20 20 20 20 65 61 72 6c 69 65 72 2c   or.    earlier,
3280: 20 69 74 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74   it will automat
3290: 69 63 61 6c 6c 79 20 61 6e 64 20 69 72 72 65 76  ically and irrev
32a0: 65 72 73 69 62 6c 79 20 63 6f 6e 76 65 72 74 20  ersibly convert 
32b0: 74 68 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e  the file format.
32c0: 0a 20 20 20 20 3c 62 3e 4d 61 6b 65 20 62 61 63  .    <b>Make bac
32d0: 6b 75 70 20 63 6f 70 69 65 73 20 6f 66 20 6f 6c  kup copies of ol
32e0: 64 65 72 20 64 61 74 61 62 61 73 65 20 66 69 6c  der database fil
32f0: 65 73 20 62 65 66 6f 72 65 20 6f 70 65 6e 69 6e  es before openin
3300: 67 20 74 68 65 6d 20 77 69 74 68 0a 20 20 20 20  g them with.    
3310: 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 66  version 2.6.0 of
3320: 20 74 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f 62   the library.</b
3330: 3e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  >.    </li>.}..c
3340: 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 37 20  hng {2002 Jly 7 
3350: 28 32 2e 35 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.5.6)} {.<li>F
3360: 69 78 20 6d 6f 72 65 20 70 72 6f 62 6c 65 6d 73  ix more problems
3370: 20 77 69 74 68 20 72 6f 6c 6c 62 61 63 6b 2e 20   with rollback. 
3380: 20 45 6e 68 61 6e 63 65 20 74 68 65 20 74 65 73   Enhance the tes
3390: 74 20 73 75 69 74 65 20 74 6f 20 65 78 65 72 63  t suite to exerc
33a0: 69 73 65 0a 20 20 20 20 74 68 65 20 72 6f 6c 6c  ise.    the roll
33b0: 62 61 63 6b 20 6c 6f 67 69 63 20 65 78 74 65 6e  back logic exten
33c0: 73 69 76 65 6c 79 20 69 6e 20 6f 72 64 65 72 20  sively in order 
33d0: 74 6f 20 70 72 65 76 65 6e 74 20 61 6e 79 20 66  to prevent any f
33e0: 75 74 75 72 65 20 70 72 6f 62 6c 65 6d 73 2e 0a  uture problems..
33f0: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
3400: 67 20 7b 32 30 30 32 20 4a 6c 79 20 36 20 28 32  g {2002 Jly 6 (2
3410: 2e 35 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .5.5)} {.<li>Fix
3420: 20 61 20 62 75 67 20 77 68 69 63 68 20 63 6f 75   a bug which cou
3430: 6c 64 20 63 61 75 73 65 20 64 61 74 61 62 61 73  ld cause databas
3440: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 64 75 72  e corruption dur
3450: 69 6e 67 20 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a  ing a rollback..
3460: 20 20 20 20 54 68 69 73 20 62 75 67 73 20 77 61      This bugs wa
3470: 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20  s introduced in 
3480: 76 65 72 73 69 6f 6e 20 32 2e 34 2e 30 20 62 79  version 2.4.0 by
3490: 20 74 68 65 20 66 72 65 65 6c 69 73 74 0a 20 20   the freelist.  
34a0: 20 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f    optimization o
34b0: 66 20 63 68 65 63 6b 69 6e 67 20 5b 34 31 30 5d  f checking [410]
34c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
34d0: 20 62 75 67 20 69 6e 20 61 67 67 72 65 67 61 74   bug in aggregat
34e0: 65 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20  e functions for 
34f0: 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  VIEWs.</li>.<li>
3500: 4f 74 68 65 72 20 6d 69 6e 6f 72 20 63 68 61 6e  Other minor chan
3510: 67 65 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d  ges and enhancem
3520: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ents.</li>.}..ch
3530: 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 20 28  ng {2002 Jly 1 (
3540: 32 2e 35 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61  2.5.4)} {.<li>Ma
3550: 6b 65 20 74 68 65 20 22 41 53 22 20 6b 65 79 77  ke the "AS" keyw
3560: 6f 72 64 20 6f 70 74 69 6f 6e 61 6c 20 61 67 61  ord optional aga
3570: 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  in.</li>.<li>The
3580: 20 64 61 74 61 74 79 70 65 20 6f 66 20 63 6f 6c   datatype of col
3590: 75 6d 6e 73 20 6e 6f 77 20 61 70 70 65 61 72 20  umns now appear 
35a0: 69 6e 20 74 68 65 20 34 74 68 20 61 72 67 75 6d  in the 4th argum
35b0: 65 6e 74 20 74 6f 20 74 68 65 0a 20 20 20 20 63  ent to the.    c
35c0: 61 6c 6c 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c  allback.</li>.<l
35d0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
35e0: 71 6c 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66  qlite_open_aux_f
35f0: 69 6c 65 28 29 3c 2f 62 3e 20 41 50 49 2c 20 74  ile()</b> API, t
3600: 68 6f 75 67 68 20 69 74 20 69 73 20 73 74 69 6c  hough it is stil
3610: 6c 0a 20 20 20 20 6d 6f 73 74 6c 79 20 75 6e 64  l.    mostly und
3620: 6f 63 75 6d 65 6e 74 65 64 20 61 6e 64 20 75 6e  ocumented and un
3630: 74 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tested.</li>.<li
3640: 3e 41 64 64 65 64 20 61 64 64 69 74 69 6f 6e 61  >Added additiona
3650: 6c 20 74 65 73 74 20 63 61 73 65 73 20 61 6e 64  l test cases and
3660: 20 66 69 78 65 64 20 61 20 66 65 77 20 62 75 67   fixed a few bug
3670: 73 20 74 68 61 74 20 74 68 6f 73 65 0a 20 20 20  s that those.   
3680: 20 74 65 73 74 20 63 61 73 65 73 20 66 6f 75 6e   test cases foun
3690: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
36a0: 7b 32 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e  {2002 Jun 24 (2.
36b0: 35 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  5.3)} {.<li>Bug 
36c0: 66 69 78 3a 20 20 44 61 74 61 62 61 73 65 20 63  fix:  Database c
36d0: 6f 72 72 75 70 74 69 6f 6e 20 63 61 6e 20 6f 63  orruption can oc
36e0: 63 75 72 20 64 75 65 20 74 6f 20 74 68 65 20 6f  cur due to the o
36f0: 70 74 69 6d 69 7a 61 74 69 6f 6e 0a 20 20 20 20  ptimization.    
3700: 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75  that was introdu
3710: 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32  ced in version 2
3720: 2e 34 2e 30 20 28 63 68 65 63 6b 2d 69 6e 20 5b  .4.0 (check-in [
3730: 34 31 30 5d 29 2e 20 20 54 68 65 20 70 72 6f 62  410]).  The prob
3740: 6c 65 6d 0a 20 20 20 20 73 68 6f 75 6c 64 20 6e  lem.    should n
3750: 6f 77 20 62 65 20 66 69 78 65 64 2e 20 20 54 68  ow be fixed.  Th
3760: 65 20 75 73 65 20 6f 66 20 76 65 72 73 69 6f 6e  e use of version
3770: 73 20 32 2e 34 2e 30 20 74 68 72 6f 75 67 68 20  s 2.4.0 through 
3780: 32 2e 35 2e 32 20 69 73 0a 20 20 20 20 6e 6f 74  2.5.2 is.    not
3790: 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c   recommended.</l
37a0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
37b0: 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e 32 29 7d   Jun 24 (2.5.2)}
37c0: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
37d0: 20 6e 65 77 20 3c 62 3e 53 51 4c 49 54 45 5f 54   new <b>SQLITE_T
37e0: 45 4d 50 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 74  EMP_MASTER</b> t
37f0: 61 62 6c 65 20 77 68 69 63 68 20 72 65 63 6f 72  able which recor
3800: 64 73 20 74 68 65 20 73 63 68 65 6d 61 0a 20 20  ds the schema.  
3810: 20 20 66 6f 72 20 74 65 6d 70 6f 72 61 72 79 20    for temporary 
3820: 74 61 62 6c 65 73 20 69 6e 20 74 68 65 20 73 61  tables in the sa
3830: 6d 65 20 77 61 79 20 74 68 61 74 20 3c 62 3e 53  me way that <b>S
3840: 51 4c 49 54 45 5f 4d 41 53 54 45 52 3c 2f 62 3e  QLITE_MASTER</b>
3850: 20 64 6f 65 73 20 66 6f 72 0a 20 20 20 20 70 65   does for.    pe
3860: 72 73 69 73 74 65 6e 74 20 74 61 62 6c 65 73 2e  rsistent tables.
3870: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
3880: 61 6e 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20  an optimization 
3890: 74 6f 20 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69  to UNION ALL</li
38a0: 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75  >.<li>Fixed a bu
38b0: 67 20 69 6e 20 74 68 65 20 70 72 6f 63 65 73 73  g in the process
38c0: 69 6e 67 20 6f 66 20 4c 45 46 54 20 4f 55 54 45  ing of LEFT OUTE
38d0: 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  R JOIN</li>.<li>
38e0: 54 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65  The LIMIT clause
38f0: 20 6e 6f 77 20 77 6f 72 6b 73 20 6f 6e 20 73 75   now works on su
3900: 62 73 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c  bselects</li>.<l
3910: 69 3e 4f 52 44 45 52 20 42 59 20 77 6f 72 6b 73  i>ORDER BY works
3920: 20 6f 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f   on subselects</
3930: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 72 65 20 69 73  li>.<li>There is
3940: 20 61 20 6e 65 77 20 54 79 70 65 4f 66 28 29 20   a new TypeOf() 
3950: 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f  function used to
3960: 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 61 6e   determine if an
3970: 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20   expression.    
3980: 69 73 20 6e 75 6d 65 72 69 63 20 6f 72 20 74 65  is numeric or te
3990: 78 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74  xt.</li>.<li>Aut
39a0: 6f 69 6e 63 72 65 6d 65 6e 74 20 6e 6f 77 20 77  oincrement now w
39b0: 6f 72 6b 73 20 66 6f 72 20 49 4e 53 45 52 54 20  orks for INSERT 
39c0: 66 72 6f 6d 20 61 20 53 45 4c 45 43 54 2e 3c 2f  from a SELECT.</
39d0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
39e0: 32 20 4a 75 6e 20 31 39 20 28 32 2e 35 2e 31 29  2 Jun 19 (2.5.1)
39f0: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 71 75 65 72  } {.<li>The quer
3a00: 79 20 6f 70 74 69 6d 69 7a 65 72 20 6e 6f 77 20  y optimizer now 
3a10: 61 74 74 65 6d 70 74 73 20 74 6f 20 69 6d 70 6c  attempts to impl
3a20: 65 6d 65 6e 74 20 74 68 65 20 4f 52 44 45 52 20  ement the ORDER 
3a30: 42 59 20 63 6c 61 75 73 65 0a 20 20 20 20 75 73  BY clause.    us
3a40: 69 6e 67 20 61 6e 20 69 6e 64 65 78 2e 20 20 53  ing an index.  S
3a50: 6f 72 74 69 6e 67 20 69 73 20 73 74 69 6c 6c 20  orting is still 
3a60: 75 73 65 64 20 69 66 20 6e 6f 74 20 73 75 69 74  used if not suit
3a70: 61 62 6c 65 20 69 6e 64 65 78 20 69 73 0a 20 20  able index is.  
3a80: 20 20 61 76 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69    available.</li
3a90: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
3aa0: 4a 75 6e 20 31 37 20 28 32 2e 35 2e 30 29 7d 20  Jun 17 (2.5.0)} 
3ab0: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  {.<li>Added supp
3ac0: 6f 72 74 20 66 6f 72 20 72 6f 77 20 74 72 69 67  ort for row trig
3ad0: 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  gers.</li>.<li>A
3ae0: 64 64 65 64 20 53 51 4c 2d 39 32 20 63 6f 6d 70  dded SQL-92 comp
3af0: 6c 69 61 6e 74 20 68 61 6e 64 6c 69 6e 67 20 6f  liant handling o
3b00: 66 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c  f NULLs.</li>.<l
3b10: 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f  i>Add support fo
3b20: 72 20 74 68 65 20 66 75 6c 6c 20 53 51 4c 2d 39  r the full SQL-9
3b30: 32 20 6a 6f 69 6e 20 73 79 6e 74 61 78 20 61 6e  2 join syntax an
3b40: 64 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49  d LEFT OUTER JOI
3b50: 4e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75  Ns.</li>.<li>Dou
3b60: 62 6c 65 2d 71 75 6f 74 65 64 20 73 74 72 69 6e  ble-quoted strin
3b70: 67 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61  gs interpreted a
3b80: 73 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e  s column names n
3b90: 6f 74 20 74 65 78 74 20 6c 69 74 65 72 61 6c 73  ot text literals
3ba0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73 65  .</li>.<li>Parse
3bb0: 20 28 62 75 74 20 64 6f 20 6e 6f 74 20 69 6d 70   (but do not imp
3bc0: 6c 65 6d 65 6e 74 29 20 66 6f 72 65 69 67 6e 20  lement) foreign 
3bd0: 6b 65 79 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  keys.</li>.<li>P
3be0: 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f  erformance impro
3bf0: 76 65 6d 65 6e 65 74 73 20 69 6e 20 74 68 65 20  vemenets in the 
3c00: 70 61 72 73 65 72 2c 20 70 61 67 65 72 2c 20 61  parser, pager, a
3c10: 6e 64 20 57 48 45 52 45 20 63 6c 61 75 73 65 20  nd WHERE clause 
3c20: 63 6f 64 65 0a 20 20 20 20 67 65 6e 65 72 61 74  code.    generat
3c30: 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  or.</li>.<li>Mak
3c40: 65 20 74 68 65 20 4c 49 4d 49 54 20 63 6c 61 75  e the LIMIT clau
3c50: 73 65 20 77 6f 72 6b 20 6f 6e 20 73 75 62 71 75  se work on subqu
3c60: 65 72 69 65 73 2e 20 20 28 4f 52 44 45 52 20 42  eries.  (ORDER B
3c70: 59 20 73 74 69 6c 6c 20 64 6f 65 73 20 6e 6f 74  Y still does not
3c80: 0a 20 20 20 20 77 6f 72 6b 2c 20 74 68 6f 75 67  .    work, thoug
3c90: 68 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  h.)</li>.<li>Add
3ca0: 65 64 20 74 68 65 20 22 25 51 22 20 65 78 70 61  ed the "%Q" expa
3cb0: 6e 73 69 6f 6e 20 74 6f 20 73 71 6c 69 74 65 5f  nsion to sqlite_
3cc0: 2a 5f 70 72 69 6e 74 66 28 29 2e 3c 2f 6c 69 3e  *_printf().</li>
3cd0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20 74  .<li>Bug fixes t
3ce0: 6f 6f 20 6e 75 6d 65 72 69 6f 75 73 20 74 6f 20  oo numerious to 
3cf0: 6d 65 6e 74 69 6f 6e 20 28 73 65 65 20 74 68 65  mention (see the
3d00: 20 63 68 61 6e 67 65 20 6c 6f 67 29 2e 3c 2f 6c   change log).</l
3d10: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
3d20: 20 4d 61 79 20 30 39 20 28 32 2e 34 2e 31 32 29   May 09 (2.4.12)
3d30: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 6f  } {.<li>Added lo
3d40: 67 69 63 20 74 6f 20 64 65 74 65 63 74 20 77 68  gic to detect wh
3d50: 65 6e 20 74 68 65 20 6c 69 62 72 61 72 79 20 41  en the library A
3d60: 50 49 20 72 6f 75 74 69 6e 65 73 20 61 72 65 20  PI routines are 
3d70: 63 61 6c 6c 65 64 20 6f 75 74 0a 20 20 20 20 6f  called out.    o
3d80: 66 20 73 65 71 75 65 6e 63 65 2e 3c 2f 6c 69 3e  f sequence.</li>
3d90: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
3da0: 61 79 20 30 38 20 28 32 2e 34 2e 31 31 29 7d 20  ay 08 (2.4.11)} 
3db0: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43  {.<li>Bug fix: C
3dc0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 74  olumn names in t
3dd0: 68 65 20 72 65 73 75 6c 74 20 73 65 74 20 77 65  he result set we
3de0: 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 67 65 6e  re not being gen
3df0: 65 72 61 74 65 64 0a 20 20 20 20 63 6f 72 72 65  erated.    corre
3e00: 63 74 6c 79 20 66 6f 72 20 73 6f 6d 65 20 28 72  ctly for some (r
3e10: 61 74 68 65 72 20 63 6f 6d 70 6c 65 78 29 20 56  ather complex) V
3e20: 49 45 57 73 2e 20 20 54 68 69 73 20 63 6f 75 6c  IEWs.  This coul
3e30: 64 20 63 61 75 73 65 20 61 0a 20 20 20 20 73 65  d cause a.    se
3e40: 67 66 61 75 6c 74 20 75 6e 64 65 72 20 63 65 72  gfault under cer
3e50: 74 61 69 6e 20 63 69 72 63 75 6d 73 74 61 6e 63  tain circumstanc
3e60: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
3e70: 20 7b 32 30 30 32 20 4d 61 79 20 30 32 20 28 32   {2002 May 02 (2
3e80: 2e 34 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 42 75  .4.10)} {.<li>Bu
3e90: 67 20 66 69 78 3a 20 47 65 6e 65 72 61 74 65 20  g fix: Generate 
3ea0: 63 6f 72 72 65 63 74 20 63 6f 6c 75 6d 6e 20 68  correct column h
3eb0: 65 61 64 65 72 73 20 77 68 65 6e 20 61 20 63 6f  eaders when a co
3ec0: 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 69 73  mpound SELECT is
3ed0: 20 75 73 65 64 0a 20 20 20 20 61 73 20 61 20 73   used.    as a s
3ee0: 75 62 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c  ubquery.</li>.<l
3ef0: 69 3e 41 64 64 65 64 20 74 68 65 20 73 71 6c 69  i>Added the sqli
3f00: 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72 79  te_encode_binary
3f10: 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 64 65  () and sqlite_de
3f20: 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 66 75  code_binary() fu
3f30: 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 74  nctions to.    t
3f40: 68 65 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20  he source tree. 
3f50: 20 42 75 74 20 74 68 65 79 20 61 72 65 20 6e 6f   But they are no
3f60: 74 20 79 65 74 20 6c 69 6e 6b 65 64 20 69 6e 74  t yet linked int
3f70: 6f 20 74 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f  o the library.</
3f80: 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74  li>.<li>Document
3f90: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f  ation updates.</
3fa0: 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74 20 74  li>.<li>Export t
3fb0: 68 65 20 73 71 6c 69 74 65 5f 63 68 61 6e 67 65  he sqlite_change
3fc0: 73 28 29 20 66 75 6e 63 74 69 6f 6e 20 66 72 6f  s() function fro
3fd0: 6d 20 77 69 6e 64 6f 77 73 20 44 4c 4c 73 2e 3c  m windows DLLs.<
3fe0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
3ff0: 3a 20 44 6f 20 6e 6f 74 20 61 74 74 65 6d 70 74  : Do not attempt
4000: 20 74 68 65 20 73 75 62 71 75 65 72 79 20 66 6c   the subquery fl
4010: 61 74 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a  attening optimiz
4020: 61 74 69 6f 6e 20 6f 6e 20 71 75 65 72 69 65 73  ation on queries
4030: 0a 20 20 20 20 74 68 61 74 20 6c 61 63 6b 20 61  .    that lack a
4040: 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 20 20 54   FROM clause.  T
4050: 6f 20 64 6f 20 73 6f 20 63 61 75 73 65 73 20 61  o do so causes a
4060: 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a   segfault.</li>.
4070: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70  }..chng {2002 Ap
4080: 72 20 32 31 20 28 32 2e 34 2e 39 29 7d 20 7b 0a  r 21 (2.4.9)} {.
4090: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68  <li>Fix a bug th
40a0: 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 74  at was causing t
40b0: 68 65 20 70 72 65 63 6f 6d 70 69 6c 65 64 20 62  he precompiled b
40c0: 69 6e 61 72 79 20 6f 66 20 53 51 4c 49 54 45 2e  inary of SQLITE.
40d0: 45 58 45 20 74 6f 0a 20 20 20 20 72 65 70 6f 72  EXE to.    repor
40e0: 74 20 22 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79  t "out of memory
40f0: 22 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 20  " under Windows 
4100: 39 38 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  98.</li>.}..chng
4110: 20 7b 32 30 30 32 20 41 70 72 20 32 30 20 28 32   {2002 Apr 20 (2
4120: 2e 34 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b  .4.8)} {.<li>Mak
4130: 65 20 73 75 72 65 20 56 49 45 57 73 20 61 72 65  e sure VIEWs are
4140: 20 63 72 65 61 74 65 64 20 61 66 74 65 72 20 74   created after t
4150: 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69  heir correspondi
4160: 6e 67 20 54 41 42 4c 45 73 20 69 6e 20 74 68 65  ng TABLEs in the
4170: 0a 20 20 20 20 6f 75 74 70 75 74 20 6f 66 20 74  .    output of t
4180: 68 65 20 3c 62 3e 2e 64 75 6d 70 3c 2f 62 3e 20  he <b>.dump</b> 
4190: 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 73  command in the s
41a0: 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  hell.</li>.<li>S
41b0: 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74  peed improvement
41c0: 73 3a 20 44 6f 20 6e 6f 74 20 64 6f 20 73 79 6e  s: Do not do syn
41d0: 63 68 72 6f 6e 6f 75 73 20 75 70 64 61 74 65 73  chronous updates
41e0: 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c 65 73 2e   on TEMP tables.
41f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 69  </li>.<li>Many i
4200: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20  mprovements and 
4210: 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 74 6f 20  enhancements to 
4220: 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a  the shell.</li>.
4230: 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 47 4c 4f  <li>Make the GLO
4240: 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70 65 72 61  B and LIKE opera
4250: 74 6f 72 73 20 66 75 6e 63 74 69 6f 6e 73 20 74  tors functions t
4260: 68 61 74 20 63 61 6e 20 62 65 20 6f 76 65 72 72  hat can be overr
4270: 69 64 64 65 6e 0a 20 20 20 20 62 79 20 61 20 70  idden.    by a p
4280: 72 6f 67 72 61 6d 6d 65 72 2e 20 20 54 68 69 73  rogrammer.  This
4290: 20 61 6c 6c 6f 77 73 2c 20 66 6f 72 20 65 78 61   allows, for exa
42a0: 6d 70 6c 65 2c 20 74 68 65 20 4c 49 4b 45 20 6f  mple, the LIKE o
42b0: 70 65 72 61 74 6f 72 20 74 6f 0a 20 20 20 20 62  perator to.    b
42c0: 65 20 63 68 61 6e 67 65 64 20 74 6f 20 62 65 20  e changed to be 
42d0: 63 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e 3c  case sensitive.<
42e0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
42f0: 30 32 20 41 70 72 20 30 36 20 28 32 2e 34 2e 37  02 Apr 06 (2.4.7
4300: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65  )} {.<li>Add the
4310: 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75 74 20   ability to put 
4320: 54 41 42 4c 45 2e 2a 20 69 6e 20 74 68 65 20 63  TABLE.* in the c
4330: 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61 0a  olumn list of a.
4340: 20 20 20 20 53 45 4c 45 43 54 20 73 74 61 74 65      SELECT state
4350: 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  ment.</li>.<li>P
4360: 65 72 6d 69 74 20 53 45 4c 45 43 54 20 73 74 61  ermit SELECT sta
4370: 74 65 6d 65 6e 74 73 20 77 69 74 68 6f 75 74 20  tements without 
4380: 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e 3c 2f  a FROM clause.</
4390: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
43a0: 65 20 3c 62 3e 6c 61 73 74 5f 69 6e 73 65 72 74  e <b>last_insert
43b0: 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20 53 51 4c  _rowid()</b> SQL
43c0: 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a   function.</li>.
43d0: 3c 6c 69 3e 44 6f 20 6e 6f 74 20 63 6f 75 6e 74  <li>Do not count
43e0: 20 72 6f 77 73 20 77 68 65 72 65 20 74 68 65 20   rows where the 
43f0: 49 47 4e 4f 52 45 20 63 6f 6e 66 6c 69 63 74 20  IGNORE conflict 
4400: 72 65 73 75 6c 74 69 6f 6e 20 6f 63 63 75 72 73  resultion occurs
4410: 20 69 6e 0a 20 20 20 20 74 68 65 20 72 6f 77 20   in.    the row 
4420: 63 6f 75 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  count.</li>.<li>
4430: 4d 61 6b 65 20 73 75 72 65 20 66 75 6e 63 74 69  Make sure functi
4440: 6f 6e 73 20 65 78 70 72 65 73 73 69 6f 6e 73 20  ons expressions 
4450: 69 6e 20 74 68 65 20 56 41 4c 55 45 53 20 63 6c  in the VALUES cl
4460: 61 75 73 65 20 6f 66 20 61 6e 20 49 4e 53 45 52  ause of an INSER
4470: 54 0a 20 20 20 20 61 72 65 20 63 6f 72 72 65 63  T.    are correc
4480: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  t.</li>.<li>Adde
4490: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  d the <b>sqlite_
44a0: 63 68 61 6e 67 65 73 28 29 3c 2f 62 3e 20 41 50  changes()</b> AP
44b0: 49 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65  I function to re
44c0: 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 0a  turn the number.
44d0: 20 20 20 20 6f 66 20 72 6f 77 20 74 68 61 74 20      of row that 
44e0: 63 68 61 6e 67 65 64 20 69 6e 20 74 68 65 20 6d  changed in the m
44f0: 6f 73 74 20 72 65 63 65 6e 74 20 6f 70 65 72 61  ost recent opera
4500: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tion.</li>.}..ch
4510: 6e 67 20 7b 32 30 30 32 20 41 70 72 20 30 32 20  ng {2002 Apr 02 
4520: 28 32 2e 34 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.4.6)} {.<li>B
4530: 75 67 20 66 69 78 3a 20 43 6f 72 72 65 63 74 6c  ug fix: Correctl
4540: 79 20 68 61 6e 64 6c 65 20 74 65 72 6d 73 20 69  y handle terms i
4550: 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c 61 75  n the WHERE clau
4560: 73 65 20 6f 66 20 61 20 6a 6f 69 6e 20 74 68 61  se of a join tha
4570: 74 0a 20 20 20 20 64 6f 20 6e 6f 74 20 63 6f 6e  t.    do not con
4580: 74 61 69 6e 20 61 20 63 6f 6d 70 61 72 69 73 6f  tain a compariso
4590: 6e 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e  n operator.</li>
45a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41  .}..chng {2002 A
45b0: 70 72 20 30 31 20 28 32 2e 34 2e 35 29 7d 20 7b  pr 01 (2.4.5)} {
45c0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f  .<li>Bug fix: Co
45d0: 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 66  rrectly handle f
45e0: 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 61 70  unctions that ap
45f0: 70 65 61 72 20 69 6e 20 74 68 65 20 57 48 45 52  pear in the WHER
4600: 45 20 63 6c 61 75 73 65 0a 20 20 20 20 6f 66 20  E clause.    of 
4610: 61 20 6a 6f 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  a join.</li>.<li
4620: 3e 57 68 65 6e 20 74 68 65 20 50 52 41 47 4d 41  >When the PRAGMA
4630: 20 76 64 62 65 5f 74 72 61 63 65 3d 4f 4e 20 69   vdbe_trace=ON i
4640: 73 20 73 65 74 2c 20 63 6f 72 72 65 63 74 6c 79  s set, correctly
4650: 20 70 72 69 6e 74 20 74 68 65 20 50 33 20 6f 70   print the P3 op
4660: 65 72 61 6e 64 0a 20 20 20 20 76 61 6c 75 65 20  erand.    value 
4670: 77 68 65 6e 20 69 74 20 69 73 20 61 20 70 6f 69  when it is a poi
4680: 6e 74 65 72 20 74 6f 20 61 20 73 74 72 75 63 74  nter to a struct
4690: 75 72 65 20 72 61 74 68 65 72 20 74 68 61 6e 20  ure rather than 
46a0: 61 20 70 6f 69 6e 74 65 72 20 74 6f 0a 20 20 20  a pointer to.   
46b0: 20 61 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a   a string.</li>.
46c0: 3c 6c 69 3e 57 68 65 6e 20 69 6e 73 65 72 74 69  <li>When inserti
46d0: 6e 67 20 61 6e 20 65 78 70 6c 69 63 69 74 20 4e  ng an explicit N
46e0: 55 4c 4c 20 69 6e 74 6f 20 61 6e 20 49 4e 54 45  ULL into an INTE
46f0: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c  GER PRIMARY KEY,
4700: 20 63 6f 6e 76 65 72 74 0a 20 20 20 20 74 68 65   convert.    the
4710: 20 4e 55 4c 4c 20 76 61 6c 75 65 20 69 6e 74 6f   NULL value into
4720: 20 61 20 75 6e 69 71 75 65 20 6b 65 79 20 61 75   a unique key au
4730: 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 3c 2f 6c 69  tomatically.</li
4740: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
4750: 4d 61 72 20 32 34 20 28 32 2e 34 2e 34 29 7d 20  Mar 24 (2.4.4)} 
4760: 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22 56 49 45  {.<li>Allow "VIE
4770: 57 22 20 74 6f 20 62 65 20 61 20 63 6f 6c 75 6d  W" to be a colum
4780: 6e 20 6e 61 6d 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  n name</li>.<li>
4790: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
47a0: 72 20 43 41 53 45 20 65 78 70 72 65 73 73 69 6f  r CASE expressio
47b0: 6e 73 20 28 70 61 74 63 68 20 66 72 6f 6d 20 44  ns (patch from D
47c0: 61 6e 20 4b 65 6e 6e 65 64 79 29 3c 2f 6c 69 3e  an Kennedy)</li>
47d0: 0a 3c 6c 69 3e 41 64 64 65 64 20 52 50 4d 53 20  .<li>Added RPMS 
47e0: 74 6f 20 74 68 65 20 64 65 6c 69 76 65 72 79 20  to the delivery 
47f0: 28 70 61 74 63 68 65 73 20 66 72 6f 6d 20 44 6f  (patches from Do
4800: 75 67 20 48 65 6e 72 79 29 3c 2f 6c 69 3e 0a 3c  ug Henry)</li>.<
4810: 6c 69 3e 46 69 78 20 74 79 70 6f 73 20 69 6e 20  li>Fix typos in 
4820: 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  the documentatio
4830: 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 75 74 20 6f  n</li>.<li>Cut o
4840: 76 65 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  ver configuratio
4850: 6e 20 6d 61 6e 61 67 65 6d 65 6e 74 20 74 6f 20  n management to 
4860: 61 20 6e 65 77 20 43 56 53 20 72 65 70 6f 73 69  a new CVS reposi
4870: 74 6f 72 79 20 77 69 74 68 0a 20 20 20 20 69 74  tory with.    it
4880: 73 20 6f 77 6e 20 43 56 53 54 72 61 63 20 62 75  s own CVSTrac bu
4890: 67 20 74 72 61 63 6b 69 6e 67 20 73 79 73 74 65  g tracking syste
48a0: 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  m.</li>.}..chng 
48b0: 7b 32 30 30 32 20 4d 61 72 20 32 32 20 28 32 2e  {2002 Mar 22 (2.
48c0: 34 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  4.3)} {.<li>Fix 
48d0: 61 20 62 75 67 20 69 6e 20 53 45 4c 45 43 54 20  a bug in SELECT 
48e0: 74 68 61 74 20 6f 63 63 75 72 73 20 77 68 65 6e  that occurs when
48f0: 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45   a compound SELE
4900: 43 54 20 69 73 20 75 73 65 64 20 61 73 20 61 0a  CT is used as a.
4910: 20 20 20 20 73 75 62 71 75 65 72 79 20 69 6e 20      subquery in 
4920: 74 68 65 20 46 52 4f 4d 20 6f 66 20 61 20 53 45  the FROM of a SE
4930: 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  LECT.</li>.<li>T
4940: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74  he <b>sqlite_get
4950: 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20 66 75 6e  _table()</b> fun
4960: 63 74 69 6f 6e 20 6e 6f 77 20 72 65 74 75 72 6e  ction now return
4970: 73 20 61 6e 20 65 72 72 6f 72 20 69 66 20 79 6f  s an error if yo
4980: 75 0a 20 20 20 20 67 69 76 65 20 69 74 20 74 77  u.    give it tw
4990: 6f 20 6f 72 20 6d 6f 72 65 20 53 45 4c 45 43 54  o or more SELECT
49a0: 73 20 74 68 61 74 20 72 65 74 75 72 6e 20 64 69  s that return di
49b0: 66 66 65 72 65 6e 74 20 6e 75 6d 62 65 72 73 20  fferent numbers 
49c0: 6f 66 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e  of columns.</li>
49d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
49e0: 61 72 20 31 34 20 28 32 2e 34 2e 32 29 7d 20 7b  ar 14 (2.4.2)} {
49f0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 46 69  .<li>Bug fix: Fi
4a00: 78 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 66  x an assertion f
4a10: 61 69 6c 75 72 65 20 74 68 61 74 20 6f 63 63 75  ailure that occu
4a20: 72 72 65 64 20 77 68 65 6e 20 52 4f 57 49 44 20  rred when ROWID 
4a30: 77 61 73 20 61 20 63 6f 6c 75 6d 6e 0a 20 20 20  was a column.   
4a40: 20 69 6e 20 61 20 53 45 4c 45 43 54 20 73 74 61   in a SELECT sta
4a50: 74 65 6d 65 6e 74 20 6f 6e 20 61 20 76 69 65 77  tement on a view
4a60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
4a70: 69 78 3a 20 46 69 78 20 61 6e 20 75 6e 69 6e 69  ix: Fix an unini
4a80: 74 69 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c  tialized variabl
4a90: 65 20 69 6e 20 74 68 65 20 56 44 42 45 20 74 68  e in the VDBE th
4aa0: 61 74 20 77 6f 75 6c 64 20 63 6f 75 6c 64 20 61  at would could a
4ab0: 6e 0a 20 20 20 20 61 73 73 65 72 74 20 66 61 69  n.    assert fai
4ac0: 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  lure.</li>.<li>M
4ad0: 61 6b 65 20 74 68 65 20 6f 73 2e 68 20 68 65 61  ake the os.h hea
4ae0: 64 65 72 20 66 69 6c 65 20 6d 6f 72 65 20 72 6f  der file more ro
4af0: 62 75 73 74 20 69 6e 20 64 65 74 65 63 74 69 6e  bust in detectin
4b00: 67 20 77 68 65 6e 20 74 68 65 20 63 6f 6d 70 69  g when the compi
4b10: 6c 65 20 69 73 0a 20 20 20 20 66 6f 72 20 77 69  le is.    for wi
4b20: 6e 64 6f 77 73 20 61 6e 64 20 77 68 65 6e 20 69  ndows and when i
4b30: 74 20 69 73 20 66 6f 72 20 75 6e 69 78 2e 3c 2f  t is for unix.</
4b40: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4b50: 32 20 4d 61 72 20 31 33 20 28 32 2e 34 2e 31 29  2 Mar 13 (2.4.1)
4b60: 7d 20 7b 0a 3c 6c 69 3e 55 73 69 6e 67 20 61 6e  } {.<li>Using an
4b70: 20 75 6e 6e 61 6d 65 64 20 73 75 62 71 75 65 72   unnamed subquer
4b80: 79 20 69 6e 20 61 20 46 52 4f 4d 20 63 6c 61 75  y in a FROM clau
4b90: 73 65 20 77 6f 75 6c 64 20 63 61 75 73 65 20 61  se would cause a
4ba0: 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a   segfault.</li>.
4bb0: 3c 6c 69 3e 54 68 65 20 70 61 72 73 65 72 20 6e  <li>The parser n
4bc0: 6f 77 20 69 6e 73 69 73 74 73 20 6f 6e 20 73 65  ow insists on se
4bd0: 65 69 6e 67 20 61 20 73 65 6d 69 63 6f 6c 6f 6e  eing a semicolon
4be0: 20 6f 72 20 74 68 65 20 65 6e 64 20 6f 66 20 69   or the end of i
4bf0: 6e 70 75 74 20 62 65 66 6f 72 65 0a 20 20 20 20  nput before.    
4c00: 65 78 65 63 75 74 69 6e 67 20 61 20 73 74 61 74  executing a stat
4c10: 65 6d 65 6e 74 2e 20 20 54 68 69 73 20 61 76 6f  ement.  This avo
4c20: 69 64 73 20 61 6e 20 61 63 63 69 64 65 6e 74 61  ids an accidenta
4c30: 6c 20 64 69 73 61 73 74 65 72 20 69 66 20 74 68  l disaster if th
4c40: 65 0a 20 20 20 20 57 48 45 52 45 20 6b 65 79 77  e.    WHERE keyw
4c50: 6f 72 64 20 69 73 20 6d 69 73 73 70 65 6c 6c 65  ord is misspelle
4c60: 64 20 69 6e 20 61 6e 20 55 50 44 41 54 45 20 6f  d in an UPDATE o
4c70: 72 20 44 45 4c 45 54 45 20 73 74 61 74 65 6d 65  r DELETE stateme
4c80: 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e  nt.</li>.}...chn
4c90: 67 20 7b 32 30 30 32 20 4d 61 72 20 31 30 20 28  g {2002 Mar 10 (
4ca0: 32 2e 34 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68  2.4.0)} {.<li>Ch
4cb0: 61 6e 67 65 20 74 68 65 20 6e 61 6d 65 20 6f 66  ange the name of
4cc0: 20 74 68 65 20 73 61 6e 69 74 79 5f 63 68 65 63   the sanity_chec
4cd0: 6b 20 50 52 41 47 4d 41 20 74 6f 20 3c 62 3e 69  k PRAGMA to <b>i
4ce0: 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 3c 2f  ntegrity_check</
4cf0: 62 3e 0a 20 20 20 20 61 6e 64 20 6d 61 6b 65 20  b>.    and make 
4d00: 69 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20  it available in 
4d10: 61 6c 6c 20 63 6f 6d 70 69 6c 65 73 2e 3c 2f 6c  all compiles.</l
4d20: 69 3e 0a 3c 6c 69 3e 53 45 4c 45 43 54 20 6d 69  i>.<li>SELECT mi
4d30: 6e 28 29 20 6f 72 20 6d 61 78 28 29 20 6f 66 20  n() or max() of 
4d40: 61 6e 20 69 6e 64 65 78 65 64 20 63 6f 6c 75 6d  an indexed colum
4d50: 6e 20 77 69 74 68 20 6e 6f 20 57 48 45 52 45 20  n with no WHERE 
4d60: 6f 72 20 47 52 4f 55 50 20 42 59 0a 20 20 20 20  or GROUP BY.    
4d70: 63 6c 61 75 73 65 20 69 73 20 68 61 6e 64 6c 65  clause is handle
4d80: 64 20 61 73 20 61 20 73 70 65 63 69 61 6c 20 63  d as a special c
4d90: 61 73 65 20 77 68 69 63 68 20 61 76 6f 69 64 73  ase which avoids
4da0: 20 61 20 63 6f 6d 70 6c 65 74 65 20 74 61 62 6c   a complete tabl
4db0: 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e scan.</li>.<li
4dc0: 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67  >Automatically g
4dd0: 65 6e 65 72 61 74 65 64 20 52 4f 57 49 44 73 20  enerated ROWIDs 
4de0: 61 72 65 20 6e 6f 77 20 73 65 71 75 65 6e 74 69  are now sequenti
4df0: 61 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20  al.</li>.<li>Do 
4e00: 6e 6f 74 20 61 6c 6c 6f 77 20 64 6f 74 2d 63 6f  not allow dot-co
4e10: 6d 6d 61 6e 64 73 20 6f 66 20 74 68 65 20 63 6f  mmands of the co
4e20: 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c  mmand-line shell
4e30: 20 74 6f 20 6f 63 63 75 72 20 69 6e 20 74 68 65   to occur in the
4e40: 0a 20 20 20 20 6d 69 64 64 6c 65 20 6f 66 20 61  .    middle of a
4e50: 20 72 65 61 6c 20 53 51 4c 20 63 6f 6d 6d 61 6e   real SQL comman
4e60: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  d.</li>.<li>Modi
4e70: 66 69 63 61 74 69 6f 6e 73 20 74 6f 20 74 68 65  fications to the
4e80: 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65 72 20   "lemon" parser 
4e90: 67 65 6e 65 72 61 74 6f 72 20 73 6f 20 74 68 61  generator so tha
4ea0: 74 20 74 68 65 20 70 61 72 73 65 72 20 74 61 62  t the parser tab
4eb0: 6c 65 73 0a 20 20 20 20 61 72 65 20 34 20 74 69  les.    are 4 ti
4ec0: 6d 65 73 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69  mes smaller.</li
4ed0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
4ee0: 6f 72 74 20 66 6f 72 20 75 73 65 72 2d 64 65 66  ort for user-def
4ef0: 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 69  ined functions i
4f00: 6d 70 6c 65 6d 65 6e 74 65 64 20 69 6e 20 43 2e  mplemented in C.
4f10: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
4f20: 73 75 70 70 6f 72 74 20 66 6f 72 20 6e 65 77 20  support for new 
4f30: 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 63 6f  functions: <b>co
4f40: 61 6c 65 73 63 65 28 29 3c 2f 62 3e 2c 20 3c 62  alesce()</b>, <b
4f50: 3e 6c 6f 77 65 72 28 29 3c 2f 62 3e 2c 0a 20 20  >lower()</b>,.  
4f60: 20 20 3c 62 3e 75 70 70 65 72 28 29 3c 2f 62 3e    <b>upper()</b>
4f70: 2c 20 61 6e 64 20 3c 62 3e 72 61 6e 64 6f 6d 28  , and <b>random(
4f80: 29 3c 2f 62 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  )</b>.<li>Added 
4f90: 73 75 70 70 6f 72 74 20 66 6f 72 20 56 49 45 57  support for VIEW
4fa0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
4fb0: 64 20 74 68 65 20 73 75 62 71 75 65 72 79 20 66  d the subquery f
4fc0: 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69  lattening optimi
4fd0: 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  zer.</li>.<li>Mo
4fe0: 64 69 66 69 65 64 20 74 68 65 20 42 2d 54 72 65  dified the B-Tre
4ff0: 65 20 61 6e 64 20 50 61 67 65 72 20 6d 6f 64 75  e and Pager modu
5000: 6c 65 73 20 73 6f 20 74 68 61 74 20 64 69 73 6b  les so that disk
5010: 20 70 61 67 65 73 20 74 68 61 74 20 64 6f 20 6e   pages that do n
5020: 6f 74 0a 20 20 20 20 63 6f 6e 74 61 69 6e 20 72  ot.    contain r
5030: 65 61 6c 20 64 61 74 61 20 28 66 72 65 65 20 70  eal data (free p
5040: 61 67 65 73 29 20 61 72 65 20 6e 6f 74 20 6a 6f  ages) are not jo
5050: 75 72 6e 61 6c 6c 65 64 20 61 6e 64 20 61 72 65  urnalled and are
5060: 20 6e 6f 74 0a 20 20 20 20 77 72 69 74 74 65 6e   not.    written
5070: 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 20 62 61 63   from memory bac
5080: 6b 20 74 6f 20 74 68 65 20 64 69 73 6b 20 77 68  k to the disk wh
5090: 65 6e 20 74 68 65 79 20 63 68 61 6e 67 65 2e 20  en they change. 
50a0: 20 54 68 69 73 20 64 6f 65 73 20 6e 6f 74 20 0a   This does not .
50b0: 20 20 20 20 69 6d 70 61 63 74 20 64 61 74 61 62      impact datab
50c0: 61 73 65 20 69 6e 74 65 67 72 69 74 79 2c 20 73  ase integrity, s
50d0: 69 6e 63 65 20 74 68 65 0a 20 20 20 20 70 61 67  ince the.    pag
50e0: 65 73 20 63 6f 6e 74 61 69 6e 20 6e 6f 20 72 65  es contain no re
50f0: 61 6c 20 64 61 74 61 2c 20 62 75 74 20 69 74 20  al data, but it 
5100: 64 6f 65 73 20 6d 61 6b 65 20 6c 61 72 67 65 20  does make large 
5110: 49 4e 53 45 52 54 20 6f 70 65 72 61 74 69 6f 6e  INSERT operation
5120: 73 0a 20 20 20 20 61 62 6f 75 74 20 32 2e 35 20  s.    about 2.5 
5130: 74 69 6d 65 73 20 66 61 73 74 65 72 20 61 6e 64  times faster and
5140: 20 6c 61 72 67 65 20 44 45 4c 45 54 45 73 20 61   large DELETEs a
5150: 62 6f 75 74 20 35 20 74 69 6d 65 73 20 66 61 73  bout 5 times fas
5160: 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  ter.</li>.<li>Ma
5170: 64 65 20 74 68 65 20 43 41 43 48 45 5f 53 49 5a  de the CACHE_SIZ
5180: 45 20 70 72 61 67 6d 61 20 70 65 72 73 69 73 74  E pragma persist
5190: 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ent</li>.<li>Add
51a0: 65 64 20 74 68 65 20 53 59 4e 43 48 52 4f 4e 4f  ed the SYNCHRONO
51b0: 55 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c  US pragma</li>.<
51c0: 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67 20 74  li>Fixed a bug t
51d0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
51e0: 75 70 64 61 74 65 73 20 74 6f 20 66 61 69 6c 20  updates to fail 
51f0: 69 6e 73 69 64 65 20 6f 66 20 74 72 61 6e 73 61  inside of transa
5200: 63 74 69 6f 6e 73 20 77 68 65 6e 0a 20 20 20 20  ctions when.    
5210: 74 68 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e  the database con
5220: 74 61 69 6e 65 64 20 61 20 74 65 6d 70 6f 72 61  tained a tempora
5230: 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d  ry table.</li>.}
5240: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62  ..chng {2002 Feb
5250: 20 31 38 20 28 32 2e 33 2e 33 29 7d 20 7b 0a 3c   18 (2.3.3)} {.<
5260: 6c 69 3e 41 6c 6c 6f 77 20 69 64 65 6e 74 69 66  li>Allow identif
5270: 69 65 72 73 20 74 6f 20 62 65 20 71 75 6f 74 65  iers to be quote
5280: 64 20 69 6e 20 73 71 75 61 72 65 20 62 72 61 63  d in square brac
5290: 6b 65 74 73 2c 20 66 6f 72 20 63 6f 6d 70 61 74  kets, for compat
52a0: 69 62 69 6c 69 74 79 0a 20 20 20 20 77 69 74 68  ibility.    with
52b0: 20 4d 53 2d 41 63 63 65 73 73 2e 3c 2f 6c 69 3e   MS-Access.</li>
52c0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
52d0: 72 74 20 66 6f 72 20 73 75 62 2d 71 75 65 72 69  rt for sub-queri
52e0: 65 73 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 63  es in the FROM c
52f0: 6c 61 75 73 65 20 6f 66 20 61 20 53 45 4c 45 43  lause of a SELEC
5300: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65  T.</li>.<li>More
5310: 20 65 66 66 69 63 69 65 6e 74 20 69 6d 70 6c 65   efficient imple
5320: 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 73 71 6c  mentation of sql
5330: 69 74 65 46 69 6c 65 45 78 69 73 74 73 28 29 20  iteFileExists() 
5340: 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e 0a 20  under Windows.. 
5350: 20 20 20 28 62 79 20 4a 6f 65 6c 20 4c 75 73 63     (by Joel Lusc
5360: 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  y)</li>.<li>The 
5370: 56 41 4c 55 45 53 20 63 6c 61 75 73 65 20 6f 66  VALUES clause of
5380: 20 61 6e 20 49 4e 53 45 52 54 20 63 61 6e 20 6e   an INSERT can n
5390: 6f 77 20 63 6f 6e 74 61 69 6e 20 65 78 70 72 65  ow contain expre
53a0: 73 73 69 6f 6e 73 2c 20 69 6e 63 6c 75 64 69 6e  ssions, includin
53b0: 67 0a 20 20 20 20 73 63 61 6c 61 72 20 53 45 4c  g.    scalar SEL
53c0: 45 43 54 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69  ECT clauses.</li
53d0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
53e0: 6f 72 74 20 66 6f 72 20 43 52 45 41 54 45 20 54  ort for CREATE T
53f0: 41 42 4c 45 20 41 53 20 53 45 4c 45 43 54 3c 2f  ABLE AS SELECT</
5400: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
5410: 20 43 72 65 61 74 69 6e 67 20 61 6e 64 20 64 72   Creating and dr
5420: 6f 70 70 69 6e 67 20 61 20 74 61 62 6c 65 20 61  opping a table a
5430: 6c 6c 20 77 69 74 68 69 6e 20 61 20 73 69 6e 67  ll within a sing
5440: 6c 65 0a 20 20 20 20 74 72 61 6e 73 61 63 74 69  le.    transacti
5450: 6f 6e 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69  on was not worki
5460: 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ng.</li>.}..chng
5470: 20 7b 32 30 30 32 20 46 65 62 20 31 34 20 28 32   {2002 Feb 14 (2
5480: 2e 33 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .3.2)} {.<li>Bug
5490: 20 66 69 78 3a 20 54 68 65 72 65 20 77 61 73 20   fix: There was 
54a0: 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 61 73 73  an incorrect ass
54b0: 65 72 74 28 29 20 69 6e 20 70 61 67 65 72 2e 63  ert() in pager.c
54c0: 2e 20 20 54 68 65 20 72 65 61 6c 20 63 6f 64 65  .  The real code
54d0: 20 77 61 73 0a 20 20 20 20 61 6c 6c 20 63 6f 72   was.    all cor
54e0: 72 65 63 74 20 28 61 73 20 66 61 72 20 61 73 20  rect (as far as 
54f0: 69 73 20 6b 6e 6f 77 6e 29 20 73 6f 20 65 76 65  is known) so eve
5500: 72 79 74 68 69 6e 67 20 73 68 6f 75 6c 64 20 77  rything should w
5510: 6f 72 6b 20 4f 4b 20 69 66 20 79 6f 75 0a 20 20  ork OK if you.  
5520: 20 20 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d    compile with -
5530: 44 4e 44 45 42 55 47 3d 31 2e 20 20 57 68 65 6e  DNDEBUG=1.  When
5540: 20 61 73 73 65 72 74 73 20 61 72 65 20 6e 6f 74   asserts are not
5550: 20 64 69 73 61 62 6c 65 64 2c 20 74 68 65 72 65   disabled, there
5560: 0a 20 20 20 20 63 6f 75 6c 64 20 62 65 20 61 20  .    could be a 
5570: 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fault.</li>.}..c
5580: 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31 33  hng {2002 Feb 13
5590: 20 28 32 2e 33 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.3.1)} {.<li>
55a0: 42 75 67 20 66 69 78 3a 20 41 6e 20 61 73 73 65  Bug fix: An asse
55b0: 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e  rtion was failin
55c0: 67 20 69 66 20 22 50 52 41 47 4d 41 20 66 75 6c  g if "PRAGMA ful
55d0: 6c 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 3d 4f  l_column_names=O
55e0: 4e 3b 22 20 77 61 73 0a 20 20 20 20 73 65 74 20  N;" was.    set 
55f0: 61 6e 64 20 79 6f 75 20 64 69 64 20 61 20 71 75  and you did a qu
5600: 65 72 79 20 74 68 61 74 20 75 73 65 64 20 61 20  ery that used a 
5610: 72 6f 77 69 64 2c 20 6c 69 6b 65 20 74 68 69 73  rowid, like this
5620: 3a 20 20 0a 20 20 20 20 22 53 45 4c 45 43 54 20  :  .    "SELECT 
5630: 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20 2e 2e  rowid, * FROM ..
5640: 2e 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  .".</li>.}..chng
5650: 20 7b 32 30 30 32 20 4a 61 6e 20 33 30 20 28 32   {2002 Jan 30 (2
5660: 2e 33 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .3.0)} {.<li>Fix
5670: 20 61 20 73 65 72 69 6f 75 73 20 62 75 67 20 69   a serious bug i
5680: 6e 20 74 68 65 20 49 4e 53 45 52 54 20 63 6f 6d  n the INSERT com
5690: 6d 61 6e 64 20 77 68 69 63 68 20 77 61 73 20 63  mand which was c
56a0: 61 75 73 69 6e 67 20 64 61 74 61 20 74 6f 20 67  ausing data to g
56b0: 6f 0a 20 20 20 20 69 6e 74 6f 20 74 68 65 20 77  o.    into the w
56c0: 72 6f 6e 67 20 63 6f 6c 75 6d 6e 73 20 69 66 20  rong columns if 
56d0: 74 68 65 20 64 61 74 61 20 73 6f 75 72 63 65 20  the data source 
56e0: 77 61 73 20 61 20 53 45 4c 45 43 54 20 61 6e 64  was a SELECT and
56f0: 20 74 68 65 20 49 4e 53 45 52 54 0a 20 20 20 20   the INSERT.    
5700: 63 6c 61 75 73 65 73 20 73 70 65 63 69 66 69 65  clauses specifie
5710: 64 20 69 74 73 20 63 6f 6c 75 6d 6e 73 20 69 6e  d its columns in
5720: 20 73 6f 6d 65 20 6f 72 64 65 72 20 6f 74 68 65   some order othe
5730: 72 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75  r than the defau
5740: 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  lt.</li>.<li>Add
5750: 65 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  ed the ability t
5760: 6f 20 72 65 73 6f 6c 76 65 20 63 6f 6e 73 74 72  o resolve constr
5770: 61 69 6e 74 20 63 6f 6e 66 6c 69 63 74 73 20 69  aint conflicts i
5780: 73 20 77 61 79 73 20 6f 74 68 65 72 20 74 68 61  s ways other tha
5790: 6e 0a 20 20 20 20 61 6e 20 61 62 6f 72 74 20 61  n.    an abort a
57a0: 6e 64 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 53 65  nd rollback.  Se
57b0: 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74  e the documentat
57c0: 69 6f 6e 20 6f 6e 20 74 68 65 20 22 4f 4e 20 43  ion on the "ON C
57d0: 4f 4e 46 4c 49 43 54 22 0a 20 20 20 20 63 6c 61  ONFLICT".    cla
57e0: 75 73 65 20 66 6f 72 20 64 65 74 61 69 6c 73 2e  use for details.
57f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 65 6d 70 6f 72  </li>.<li>Tempor
5800: 61 72 79 20 66 69 6c 65 73 20 61 72 65 20 6e 6f  ary files are no
5810: 77 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  w automatically 
5820: 64 65 6c 65 74 65 64 20 62 79 20 74 68 65 20 6f  deleted by the o
5830: 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 0a  perating system.
5840: 20 20 20 20 77 68 65 6e 20 63 6c 6f 73 65 64 2e      when closed.
5850: 20 20 54 68 65 72 65 20 61 72 65 20 6e 6f 20 6d    There are no m
5860: 6f 72 65 20 64 61 6e 67 6c 69 6e 67 20 74 65 6d  ore dangling tem
5870: 70 6f 72 61 72 79 20 66 69 6c 65 73 20 6f 6e 20  porary files on 
5880: 61 20 70 72 6f 67 72 61 6d 0a 20 20 20 20 63 72  a program.    cr
5890: 61 73 68 2e 20 20 28 49 66 20 74 68 65 20 4f 53  ash.  (If the OS
58a0: 20 63 72 61 73 68 65 73 2c 20 66 73 63 6b 20 77   crashes, fsck w
58b0: 69 6c 6c 20 64 65 6c 65 74 65 20 74 68 65 20 66  ill delete the f
58c0: 69 6c 65 20 61 66 74 65 72 20 72 65 62 6f 6f 74  ile after reboot
58d0: 20 0a 20 20 20 20 75 6e 64 65 72 20 55 6e 69 78   .    under Unix
58e0: 2e 20 20 49 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77  .  I do not know
58f0: 20 77 68 61 74 20 68 61 70 70 65 6e 73 20 75 6e   what happens un
5900: 64 65 72 20 57 69 6e 64 6f 77 73 2e 29 3c 2f 6c  der Windows.)</l
5910: 69 3e 0a 3c 6c 69 3e 4e 4f 54 20 4e 55 4c 4c 20  i>.<li>NOT NULL 
5920: 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20  constraints are 
5930: 68 6f 6e 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  honored.</li>.<l
5940: 69 3e 54 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61  i>The COPY comma
5950: 6e 64 20 70 75 74 73 20 4e 55 4c 4c 73 20 69 6e  nd puts NULLs in
5960: 20 63 6f 6c 75 6d 6e 73 20 77 68 6f 73 65 20 64   columns whose d
5970: 61 74 61 20 69 73 20 27 5c 4e 27 2e 3c 2f 6c 69  ata is '\N'.</li
5980: 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 43 4f 50  >.<li>In the COP
5990: 59 20 63 6f 6d 6d 61 6e 64 2c 20 62 61 63 6b 73  Y command, backs
59a0: 6c 61 73 68 20 63 61 6e 20 6e 6f 77 20 62 65 20  lash can now be 
59b0: 75 73 65 64 20 74 6f 20 65 73 63 61 70 65 20 61  used to escape a
59c0: 20 6e 65 77 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c   newline.</li>.<
59d0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 53 41 4e  li>Added the SAN
59e0: 49 54 59 5f 43 48 45 43 4b 20 70 72 61 67 6d 61  ITY_CHECK pragma
59f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5a00: 32 30 30 32 20 4a 61 6e 20 32 38 20 28 32 2e 32  2002 Jan 28 (2.2
5a10: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 49 6d 70 6f 72  .5)} {.<li>Impor
5a20: 74 61 6e 74 20 62 75 67 20 66 69 78 3a 20 74 68  tant bug fix: th
5a30: 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 77 61  e IN operator wa
5a40: 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 69 66  s not working if
5a50: 20 65 69 74 68 65 72 20 74 68 65 0a 20 20 20 20   either the.    
5a60: 6c 65 66 74 2d 68 61 6e 64 20 6f 72 20 72 69 67  left-hand or rig
5a70: 68 74 2d 68 61 6e 64 20 73 69 64 65 20 77 61 73  ht-hand side was
5a80: 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 61 6e   derived from an
5a90: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59   INTEGER PRIMARY
5aa0: 20 4b 45 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44   KEY.</li>.<li>D
5ab0: 6f 20 6e 6f 74 20 65 73 63 61 70 65 20 74 68 65  o not escape the
5ac0: 20 62 61 63 6b 73 6c 61 73 68 20 27 5c 27 20 63   backslash '\' c
5ad0: 68 61 72 61 63 74 65 72 20 69 6e 20 74 68 65 20  haracter in the 
5ae0: 6f 75 74 70 75 74 20 6f 66 20 74 68 65 0a 20 20  output of the.  
5af0: 20 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20    <b>sqlite</b> 
5b00: 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 63 63  command-line acc
5b10: 65 73 73 20 70 72 6f 67 72 61 6d 2e 3c 2f 6c 69  ess program.</li
5b20: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
5b30: 4a 61 6e 20 32 32 20 28 32 2e 32 2e 34 29 7d 20  Jan 22 (2.2.4)} 
5b40: 7b 0a 3c 6c 69 3e 54 68 65 20 6c 61 62 65 6c 20  {.<li>The label 
5b50: 74 6f 20 74 68 65 20 72 69 67 68 74 20 6f 66 20  to the right of 
5b60: 61 6e 20 41 53 20 69 6e 20 74 68 65 20 63 6f 6c  an AS in the col
5b70: 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61 20 53 45  umn list of a SE
5b80: 4c 45 43 54 20 63 61 6e 20 6e 6f 77 0a 20 20 20  LECT can now.   
5b90: 20 62 65 20 75 73 65 64 20 61 73 20 70 61 72 74   be used as part
5ba0: 20 6f 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f   of an expressio
5bb0: 6e 20 69 6e 20 74 68 65 20 57 48 45 52 45 2c 20  n in the WHERE, 
5bc0: 4f 52 44 45 52 20 42 59 2c 20 47 52 4f 55 50 20  ORDER BY, GROUP 
5bd0: 42 59 2c 20 61 6e 64 2f 6f 72 0a 20 20 20 20 48  BY, and/or.    H
5be0: 41 56 49 4e 47 20 63 6c 61 75 73 65 73 2e 3c 2f  AVING clauses.</
5bf0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
5c00: 67 20 69 6e 20 74 68 65 20 3c 62 3e 2d 73 65 70  g in the <b>-sep
5c10: 61 72 61 74 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61  arator</b> comma
5c20: 6e 64 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 74  nd-line option t
5c30: 6f 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  o the <b>sqlite<
5c40: 2f 62 3e 0a 20 20 20 20 63 6f 6d 6d 61 6e 64 2e  /b>.    command.
5c50: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
5c60: 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 74 68 65  problem with the
5c70: 20 73 6f 72 74 20 6f 72 64 65 72 20 77 68 65 6e   sort order when
5c80: 20 63 6f 6d 70 61 72 69 6e 67 20 75 70 70 65 72   comparing upper
5c90: 2d 63 61 73 65 20 73 74 72 69 6e 67 73 20 61 67  -case strings ag
5ca0: 61 69 6e 73 74 0a 20 20 20 20 63 68 61 72 61 63  ainst.    charac
5cb0: 74 65 72 73 20 67 72 65 61 74 65 72 20 74 68 61  ters greater tha
5cc0: 6e 20 27 5a 27 20 62 75 74 20 6c 65 73 73 20 74  n 'Z' but less t
5cd0: 68 61 6e 20 27 61 27 2e 3c 2f 6c 69 3e 0a 3c 6c  han 'a'.</li>.<l
5ce0: 69 3e 52 65 70 6f 72 74 20 61 6e 20 65 72 72 6f  i>Report an erro
5cf0: 72 20 69 66 20 61 6e 20 4f 52 44 45 52 20 42 59  r if an ORDER BY
5d00: 20 6f 72 20 47 52 4f 55 50 20 42 59 20 65 78 70   or GROUP BY exp
5d10: 72 65 73 73 69 6f 6e 20 69 73 20 63 6f 6e 73 74  ression is const
5d20: 61 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ant.</li>.}..chn
5d30: 67 20 7b 32 30 30 32 20 4a 61 6e 20 31 36 20 28  g {2002 Jan 16 (
5d40: 32 2e 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.2.3)} {.<li>Fi
5d50: 78 20 77 61 72 6e 69 6e 67 20 6d 65 73 73 61 67  x warning messag
5d60: 65 73 20 69 6e 20 56 43 2b 2b 20 37 2e 30 2e 20  es in VC++ 7.0. 
5d70: 20 28 50 61 74 63 68 65 73 20 66 72 6f 6d 20 6e   (Patches from n
5d80: 69 63 6f 6c 61 73 33 35 32 30 30 31 29 3c 2f 6c  icolas352001)</l
5d90: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20  i>.<li>Make the 
5da0: 6c 69 62 72 61 72 79 20 74 68 72 65 61 64 2d 73  library thread-s
5db0: 61 66 65 2e 20 20 28 54 68 65 20 63 6f 64 65 20  afe.  (The code 
5dc0: 69 73 20 74 68 65 72 65 20 61 6e 64 20 61 70 70  is there and app
5dd0: 65 61 72 73 20 74 6f 20 77 6f 72 6b 0a 20 20 20  ears to work.   
5de0: 20 62 75 74 20 68 61 73 20 6e 6f 74 20 62 65 65   but has not bee
5df0: 6e 20 73 74 72 65 73 73 65 64 2e 29 3c 2f 6c 69  n stressed.)</li
5e00: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
5e10: 6e 65 77 20 3c 62 3e 73 71 6c 69 74 65 5f 6c 61  new <b>sqlite_la
5e20: 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 28  st_insert_rowid(
5e30: 29 3c 2f 62 3e 20 41 50 49 20 66 75 6e 63 74 69  )</b> API functi
5e40: 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  on.</li>.}..chng
5e50: 20 7b 32 30 30 32 20 4a 61 6e 20 31 33 20 28 32   {2002 Jan 13 (2
5e60: 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .2.2)} {.<li>Bug
5e70: 20 66 69 78 3a 20 41 6e 20 61 73 73 65 72 74 69   fix: An asserti
5e80: 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20 77  on was failing w
5e90: 68 65 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20  hen a temporary 
5ea0: 74 61 62 6c 65 20 77 69 74 68 20 61 6e 20 69 6e  table with an in
5eb0: 64 65 78 0a 20 20 20 20 68 61 64 20 74 68 65 20  dex.    had the 
5ec0: 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 61 20 70  same name as a p
5ed0: 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c 65 20 63  ermanent table c
5ee0: 72 65 61 74 65 64 20 62 79 20 61 20 73 65 70 61  reated by a sepa
5ef0: 72 61 74 65 20 70 72 6f 63 65 73 73 2e 3c 2f 6c  rate process.</l
5f00: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
5f10: 55 70 64 61 74 65 73 20 74 6f 20 74 61 62 6c 65  Updates to table
5f20: 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20  s containing an 
5f30: 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20  INTEGER PRIMARY 
5f40: 4b 45 59 20 61 6e 64 20 61 6e 0a 20 20 20 20 69  KEY and an.    i
5f50: 6e 64 65 78 20 63 6f 75 6c 64 20 66 61 69 6c 2e  ndex could fail.
5f60: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5f70: 30 30 32 20 4a 61 6e 20 39 20 28 32 2e 32 2e 31  002 Jan 9 (2.2.1
5f80: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
5f90: 3a 20 41 6e 20 61 74 74 65 6d 70 74 20 74 6f 20  : An attempt to 
5fa0: 64 65 6c 65 74 65 20 61 20 73 69 6e 67 6c 65 20  delete a single 
5fb0: 72 6f 77 20 6f 66 20 61 20 74 61 62 6c 65 20 77  row of a table w
5fc0: 69 74 68 20 61 20 57 48 45 52 45 0a 20 20 20 20  ith a WHERE.    
5fd0: 63 6c 61 75 73 65 20 6f 66 20 22 52 4f 57 49 44  clause of "ROWID
5fe0: 3d 78 22 20 77 68 65 6e 20 6e 6f 20 73 75 63 68  =x" when no such
5ff0: 20 72 6f 77 69 64 20 65 78 69 73 74 73 20 77 61   rowid exists wa
6000: 73 20 63 61 75 73 69 6e 67 20 61 6e 20 65 72 72  s causing an err
6010: 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  or.</li>.<li>Bug
6020: 20 66 69 78 3a 20 50 61 73 73 69 6e 67 20 69 6e   fix: Passing in
6030: 20 61 20 4e 55 4c 4c 20 61 73 20 74 68 65 20 33   a NULL as the 3
6040: 72 64 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20  rd parameter to 
6050: 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29  <b>sqlite_open()
6060: 3c 2f 62 3e 0a 20 20 20 20 77 6f 75 6c 64 20 73  </b>.    would s
6070: 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 20 61  ometimes cause a
6080: 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a   coredump.</li>.
6090: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 44 52 4f  <li>Bug fix: DRO
60a0: 50 20 54 41 42 4c 45 20 66 6f 6c 6c 6f 77 65 64  P TABLE followed
60b0: 20 62 79 20 61 20 43 52 45 41 54 45 20 54 41 42   by a CREATE TAB
60c0: 4c 45 20 77 69 74 68 20 74 68 65 20 73 61 6d 65  LE with the same
60d0: 20 6e 61 6d 65 20 61 6c 6c 0a 20 20 20 20 77 69   name all.    wi
60e0: 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 20 74 72  thin a single tr
60f0: 61 6e 73 61 63 74 69 6f 6e 20 77 61 73 20 63 61  ansaction was ca
6100: 75 73 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70  using a coredump
6110: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66  .</li>.<li>Makef
6120: 69 6c 65 20 75 70 64 61 74 65 73 20 66 72 6f 6d  ile updates from
6130: 20 41 2e 20 52 6f 74 74 6d 61 6e 6e 3c 2f 6c 69   A. Rottmann</li
6140: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
6150: 44 65 63 20 32 32 20 28 32 2e 32 2e 30 29 7d 20  Dec 22 (2.2.0)} 
6160: 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 73 20 6f 66  {.<li>Columns of
6170: 20 74 79 70 65 20 49 4e 54 45 47 45 52 20 50 52   type INTEGER PR
6180: 49 4d 41 52 59 20 4b 45 59 20 61 72 65 20 61 63  IMARY KEY are ac
6190: 74 75 61 6c 6c 79 20 75 73 65 64 20 61 73 20 74  tually used as t
61a0: 68 65 20 70 72 69 6d 61 72 79 0a 20 20 20 20 6b  he primary.    k
61b0: 65 79 20 69 6e 20 75 6e 64 65 72 6c 79 69 6e 67  ey in underlying
61c0: 20 42 2d 54 72 65 65 20 72 65 70 72 65 73 65 6e   B-Tree represen
61d0: 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 61  tation of the ta
61e0: 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65  ble.</li>.<li>Se
61f0: 76 65 72 61 6c 20 6f 62 73 63 75 72 65 2c 20 75  veral obscure, u
6200: 6e 72 65 6c 61 74 65 64 20 62 75 67 73 20 77 65  nrelated bugs we
6210: 72 65 20 66 6f 75 6e 64 20 61 6e 64 20 66 69 78  re found and fix
6220: 65 64 20 77 68 69 6c 65 20 0a 20 20 20 20 69 6d  ed while .    im
6230: 70 6c 65 6d 65 6e 74 65 64 20 74 68 65 20 69 6e  plemented the in
6240: 74 65 67 65 72 20 70 72 69 6d 61 72 79 20 6b 65  teger primary ke
6250: 79 20 63 68 61 6e 67 65 20 6f 66 20 74 68 65 20  y change of the 
6260: 70 72 65 76 69 6f 75 73 20 62 75 6c 6c 65 74 2e  previous bullet.
6270: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
6280: 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73  the ability to s
6290: 70 65 63 69 66 79 20 22 2a 22 20 61 73 20 70 61  pecify "*" as pa
62a0: 72 74 20 6f 66 20 61 20 6c 61 72 67 65 72 20 63  rt of a larger c
62b0: 6f 6c 75 6d 6e 20 6c 69 73 74 20 69 6e 0a 20 20  olumn list in.  
62c0: 20 20 74 68 65 20 72 65 73 75 6c 74 20 73 65 63    the result sec
62d0: 74 69 6f 6e 20 6f 66 20 61 20 53 45 4c 45 43 54  tion of a SELECT
62e0: 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 46 6f 72   statement.  For
62f0: 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 3c 6e   example:.    <n
6300: 6f 62 72 3e 22 3c 62 3e 53 45 4c 45 43 54 20 72  obr>"<b>SELECT r
6310: 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20 74 61 62  owid, * FROM tab
6320: 6c 65 31 3b 3c 2f 62 3e 22 3c 2f 6e 6f 62 72 3e  le1;</b>"</nobr>
6330: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74  .</li>.<li>Updat
6340: 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 20 61  es to comments a
6350: 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  nd documentation
6360: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6370: 32 30 30 31 20 44 65 63 20 31 34 20 28 32 2e 31  2001 Dec 14 (2.1
6380: 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .7)} {.<li>Fix a
6390: 20 62 75 67 20 69 6e 20 3c 62 3e 43 52 45 41 54   bug in <b>CREAT
63a0: 45 20 54 45 4d 50 4f 52 41 52 59 20 54 41 42 4c  E TEMPORARY TABL
63b0: 45 3c 2f 62 3e 20 77 68 69 63 68 20 77 61 73 20  E</b> which was 
63c0: 63 61 75 73 69 6e 67 20 74 68 65 0a 20 20 20 20  causing the.    
63d0: 74 61 62 6c 65 20 74 6f 20 62 65 20 69 6e 69 74  table to be init
63e0: 69 61 6c 6c 79 20 61 6c 6c 6f 63 61 74 65 64 20  ially allocated 
63f0: 69 6e 20 74 68 65 20 6d 61 69 6e 20 64 61 74 61  in the main data
6400: 62 61 73 65 20 66 69 6c 65 20 69 6e 73 74 65 61  base file instea
6410: 64 0a 20 20 20 20 6f 66 20 69 6e 20 74 68 65 20  d.    of in the 
6420: 73 65 70 61 72 61 74 65 20 74 65 6d 70 6f 72 61  separate tempora
6430: 72 79 20 66 69 6c 65 2e 20 20 54 68 69 73 20 62  ry file.  This b
6440: 75 67 20 63 6f 75 6c 64 20 63 61 75 73 65 20 74  ug could cause t
6450: 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20 20 74  he library.    t
6460: 6f 20 73 75 66 66 65 72 20 61 6e 20 61 73 73 65  o suffer an asse
6470: 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 61 6e  rtion failure an
6480: 64 20 69 74 20 63 6f 75 6c 64 20 63 61 75 73 65  d it could cause
6490: 20 22 70 61 67 65 20 6c 65 61 6b 73 22 20 69 6e   "page leaks" in
64a0: 20 74 68 65 0a 20 20 20 20 6d 61 69 6e 20 64 61   the.    main da
64b0: 74 61 62 61 73 65 20 66 69 6c 65 2e 0a 3c 6c 69  tabase file..<li
64c0: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68  >Fix a bug in th
64d0: 65 20 62 2d 74 72 65 65 20 73 75 62 73 79 73 74  e b-tree subsyst
64e0: 65 6d 20 74 68 61 74 20 63 6f 75 6c 64 20 73 6f  em that could so
64f0: 6d 65 74 69 6d 65 73 20 63 61 75 73 65 20 74 68  metimes cause th
6500: 65 20 66 69 72 73 74 0a 20 20 20 20 72 6f 77 20  e first.    row 
6510: 6f 66 20 61 20 74 61 62 6c 65 20 74 6f 20 62 65  of a table to be
6520: 20 72 65 70 65 61 74 65 64 20 64 75 72 69 6e 67   repeated during
6530: 20 61 20 64 61 74 61 62 61 73 65 20 73 63 61 6e   a database scan
6540: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6550: 32 30 30 31 20 44 65 63 20 31 34 20 28 32 2e 31  2001 Dec 14 (2.1
6560: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74  .6)} {.<li>Fix t
6570: 68 65 20 6c 6f 63 6b 69 6e 67 20 6d 65 63 68 61  he locking mecha
6580: 6e 69 73 6d 20 79 65 74 20 61 67 61 69 6e 20 74  nism yet again t
6590: 6f 20 70 72 65 76 65 6e 74 0a 20 20 20 20 3c 62  o prevent.    <b
65a0: 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f  >sqlite_exec()</
65b0: 62 3e 20 66 72 6f 6d 20 72 65 74 75 72 6e 69 6e  b> from returnin
65c0: 67 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f  g SQLITE_PROTOCO
65d0: 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73 73 61 72  L.    unnecessar
65e0: 69 6c 79 2e 20 20 54 68 69 73 20 74 69 6d 65 20  ily.  This time 
65f0: 74 68 65 20 62 75 67 20 77 61 73 20 61 20 72 61  the bug was a ra
6600: 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69 6e 0a  ce condition in.
6610: 20 20 20 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20      the locking 
6620: 63 6f 64 65 2e 20 20 54 68 69 73 20 63 68 61 6e  code.  This chan
6630: 67 65 20 65 66 66 65 63 74 73 20 62 6f 74 68 20  ge effects both 
6640: 50 4f 53 49 58 20 61 6e 64 20 57 69 6e 64 6f 77  POSIX and Window
6650: 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a  s users.</li>.}.
6660: 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20  .chng {2001 Dec 
6670: 36 20 28 32 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69  6 (2.1.5)} {.<li
6680: 3e 46 69 78 20 66 6f 72 20 61 6e 6f 74 68 65 72  >Fix for another
6690: 20 70 72 6f 62 6c 65 6d 20 28 75 6e 72 65 6c 61   problem (unrela
66a0: 74 65 64 20 74 6f 20 74 68 65 20 6f 6e 65 20 66  ted to the one f
66b0: 69 78 65 64 20 69 6e 20 32 2e 31 2e 34 29 20 0a  ixed in 2.1.4) .
66c0: 20 20 20 20 74 68 61 74 20 73 6f 6d 65 74 69 6d      that sometim
66d0: 65 73 20 63 61 75 73 65 73 20 3c 62 3e 73 71 6c  es causes <b>sql
66e0: 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 74  ite_exec()</b> t
66f0: 6f 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f  o return SQLITE_
6700: 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e  PROTOCOL.    unn
6710: 65 63 65 73 73 61 72 69 6c 79 2e 20 20 54 68 69  ecessarily.  Thi
6720: 73 20 74 69 6d 65 20 74 68 65 20 62 75 67 20 77  s time the bug w
6730: 61 73 0a 20 20 20 20 69 6e 20 74 68 65 20 50 4f  as.    in the PO
6740: 53 49 58 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65  SIX locking code
6750: 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20   and should not 
6760: 65 66 66 65 63 74 20 77 69 6e 64 6f 77 73 20 75  effect windows u
6770: 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  sers.</li>.}..ch
6780: 6e 67 20 7b 32 30 30 31 20 44 65 63 20 34 20 28  ng {2001 Dec 4 (
6790: 32 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 53 6f  2.1.4)} {.<li>So
67a0: 6d 65 74 69 6d 65 73 20 3c 62 3e 73 71 6c 69 74  metimes <b>sqlit
67b0: 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77 6f 75  e_exec()</b> wou
67c0: 6c 64 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45  ld return SQLITE
67d0: 5f 50 52 4f 54 4f 43 4f 4c 20 77 68 65 6e 20 69  _PROTOCOL when i
67e0: 74 0a 20 20 20 20 73 68 6f 75 6c 64 20 68 61 76  t.    should hav
67f0: 65 20 72 65 74 75 72 6e 65 64 20 53 51 4c 49 54  e returned SQLIT
6800: 45 5f 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69  E_BUSY.</li>.<li
6810: 3e 54 68 65 20 66 69 78 20 74 6f 20 74 68 65 20  >The fix to the 
6820: 70 72 65 76 69 6f 75 73 20 62 75 67 20 75 6e 63  previous bug unc
6830: 6f 76 65 72 65 64 20 61 20 64 65 61 64 6c 6f 63  overed a deadloc
6840: 6b 20 77 68 69 63 68 20 77 61 73 20 61 6c 73 6f  k which was also
6850: 0a 20 20 20 20 66 69 78 65 64 2e 3c 2f 6c 69 3e  .    fixed.</li>
6860: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69  .<li>Add the abi
6870: 6c 69 74 79 20 74 6f 20 70 75 74 20 61 20 73 69  lity to put a si
6880: 6e 67 6c 65 20 2e 63 6f 6d 6d 61 6e 64 20 69 6e  ngle .command in
6890: 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75   the second argu
68a0: 6d 65 6e 74 0a 20 20 20 20 6f 66 20 74 68 65 20  ment.    of the 
68b0: 73 71 6c 69 74 65 20 73 68 65 6c 6c 3c 2f 6c 69  sqlite shell</li
68c0: 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74 6f  >.<li>Updates to
68d0: 20 74 68 65 20 46 41 51 3c 2f 6c 69 3e 0a 7d 0a   the FAQ</li>.}.
68e0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20  .chng {2001 Nov 
68f0: 32 33 20 28 32 2e 31 2e 33 29 7d 20 7b 0a 3c 6c  23 (2.1.3)} {.<l
6900: 69 3e 46 69 78 20 74 68 65 20 62 65 68 61 76 69  i>Fix the behavi
6910: 6f 72 20 6f 66 20 63 6f 6d 70 61 72 69 73 6f 6e  or of comparison
6920: 20 6f 70 65 72 61 74 6f 72 73 20 0a 20 20 20 20   operators .    
6930: 28 65 78 3a 20 22 3c 62 3e 26 6c 74 3c 2f 62 3e  (ex: "<b>&lt</b>
6940: 22 2c 20 22 3c 62 3e 3d 3d 3c 2f 62 3e 22 2c 20  ", "<b>==</b>", 
6950: 65 74 63 2e 29 0a 20 20 20 20 73 6f 20 74 68 61  etc.).    so tha
6960: 74 20 74 68 65 79 20 61 72 65 20 63 6f 6e 73 69  t they are consi
6970: 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 6f  stent with the o
6980: 72 64 65 72 20 6f 66 20 65 6e 74 72 69 65 73 20  rder of entries 
6990: 69 6e 20 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69  in an index.</li
69a0: 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 20 68 61  >.<li>Correct ha
69b0: 6e 64 6c 69 6e 67 20 6f 66 20 69 6e 74 65 67 65  ndling of intege
69c0: 72 73 20 69 6e 20 53 51 4c 20 65 78 70 72 65 73  rs in SQL expres
69d0: 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 6c  sions that are l
69e0: 61 72 67 65 72 20 74 68 61 6e 0a 20 20 20 20 77  arger than.    w
69f0: 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 72 65  hat can be repre
6a00: 73 65 6e 74 65 64 20 62 79 20 74 68 65 20 6d 61  sented by the ma
6a10: 63 68 69 6e 65 20 69 6e 74 65 67 65 72 2e 3c 2f  chine integer.</
6a20: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6a30: 31 20 4e 6f 76 20 32 32 20 28 32 2e 31 2e 32 29  1 Nov 22 (2.1.2)
6a40: 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20  } {.<li>Changes 
6a50: 74 6f 20 73 75 70 70 6f 72 74 20 36 34 2d 62 69  to support 64-bi
6a60: 74 20 61 72 63 68 69 74 65 63 74 75 72 65 73 2e  t architectures.
6a70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
6a80: 62 75 67 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69  bug in the locki
6a90: 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 3c 2f 6c 69  ng protocol.</li
6aa0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
6ab0: 74 68 61 74 20 63 6f 75 6c 64 20 28 72 61 72 65  that could (rare
6ac0: 6c 79 29 20 63 61 75 73 65 20 74 68 65 20 64 61  ly) cause the da
6ad0: 74 61 62 61 73 65 20 74 6f 20 62 65 63 6f 6d 65  tabase to become
6ae0: 20 0a 20 20 20 20 75 6e 72 65 61 64 61 62 6c 65   .    unreadable
6af0: 20 61 66 74 65 72 20 61 20 44 52 4f 50 20 54 41   after a DROP TA
6b00: 42 4c 45 20 64 75 65 20 74 6f 20 63 6f 72 72 75  BLE due to corru
6b10: 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c  ption to the SQL
6b20: 49 54 45 5f 4d 41 53 54 45 52 0a 20 20 20 20 74  ITE_MASTER.    t
6b30: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  able.</li>.<li>C
6b40: 68 61 6e 67 65 20 74 68 65 20 63 6f 64 65 20 73  hange the code s
6b50: 6f 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 32  o that version 2
6b60: 2e 31 2e 31 20 64 61 74 61 62 61 73 65 73 20 74  .1.1 databases t
6b70: 68 61 74 20 77 65 72 65 20 72 65 6e 64 65 72 65  hat were rendere
6b80: 64 20 0a 20 20 20 20 75 6e 72 65 61 64 61 62 6c  d .    unreadabl
6b90: 65 20 62 79 20 74 68 65 20 61 62 6f 76 65 20 62  e by the above b
6ba0: 75 67 20 63 61 6e 20 62 65 20 72 65 61 64 20 62  ug can be read b
6bb0: 79 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20 6f  y this version o
6bc0: 66 0a 20 20 20 20 74 68 65 20 6c 69 62 72 61 72  f.    the librar
6bd0: 79 20 65 76 65 6e 20 74 68 6f 75 67 68 20 74 68  y even though th
6be0: 65 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20  e SQLITE_MASTER 
6bf0: 74 61 62 6c 65 20 69 73 20 28 73 6c 69 67 68 74  table is (slight
6c00: 6c 79 29 0a 20 20 20 20 63 6f 72 72 75 70 74 65  ly).    corrupte
6c10: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
6c20: 7b 32 30 30 31 20 4e 6f 76 20 31 33 20 28 32 2e  {2001 Nov 13 (2.
6c30: 31 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  1.1)} {.<li>Bug 
6c40: 66 69 78 3a 20 53 6f 6d 65 74 69 6d 65 73 20 61  fix: Sometimes a
6c50: 72 62 69 72 61 72 79 20 73 74 72 69 6e 67 73 20  rbirary strings 
6c60: 77 65 72 65 20 70 61 73 73 65 64 20 74 6f 20 74  were passed to t
6c70: 68 65 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20  he callback.    
6c80: 66 75 6e 63 74 69 6f 6e 20 77 68 65 6e 20 74 68  function when th
6c90: 65 20 61 63 74 75 61 6c 20 76 61 6c 75 65 20 6f  e actual value o
6ca0: 66 20 61 20 63 6f 6c 75 6d 6e 20 77 61 73 20 4e  f a column was N
6cb0: 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ULL.</li>.}..chn
6cc0: 67 20 7b 32 30 30 31 20 4e 6f 76 20 31 32 20 28  g {2001 Nov 12 (
6cd0: 32 2e 31 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68  2.1.0)} {.<li>Ch
6ce0: 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20  ange the format 
6cf0: 6f 66 20 64 61 74 61 20 72 65 63 6f 72 64 73 20  of data records 
6d00: 73 6f 20 74 68 61 74 20 72 65 63 6f 72 64 73 20  so that records 
6d10: 75 70 20 74 6f 20 31 36 4d 42 20 69 6e 20 73 69  up to 16MB in si
6d20: 7a 65 0a 20 20 20 20 63 61 6e 20 62 65 20 73 74  ze.    can be st
6d30: 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  ored.</li>.<li>C
6d40: 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74  hange the format
6d50: 20 6f 66 20 69 6e 64 69 63 65 73 20 74 6f 20 61   of indices to a
6d60: 6c 6c 6f 77 20 66 6f 72 20 62 65 74 74 65 72 20  llow for better 
6d70: 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 61 74 69  query optimizati
6d80: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70  on.</li>.<li>Imp
6d90: 6c 65 6d 65 6e 74 20 74 68 65 20 22 4c 49 4d 49  lement the "LIMI
6da0: 54 20 2e 2e 2e 20 4f 46 46 53 45 54 20 2e 2e 2e  T ... OFFSET ...
6db0: 22 20 63 6c 61 75 73 65 20 6f 6e 20 53 45 4c 45  " clause on SELE
6dc0: 43 54 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f  CT statements.</
6dd0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6de0: 31 20 4e 6f 76 20 33 20 28 32 2e 30 2e 38 29 7d  1 Nov 3 (2.0.8)}
6df0: 20 7b 0a 3c 6c 69 3e 4d 61 64 65 20 73 65 6c 65   {.<li>Made sele
6e00: 63 74 65 64 20 70 61 72 61 6d 65 74 65 72 73 20  cted parameters 
6e10: 69 6e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 73  in API functions
6e20: 20 3c 62 3e 63 6f 6e 73 74 3c 2f 62 3e 2e 20 54   <b>const</b>. T
6e30: 68 69 73 20 73 68 6f 75 6c 64 0a 20 20 20 20 62  his should.    b
6e40: 65 20 66 75 6c 6c 79 20 62 61 63 6b 77 61 72 64  e fully backward
6e50: 73 20 63 6f 6d 70 61 74 69 62 6c 65 2e 3c 2f 6c  s compatible.</l
6e60: 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61  i>.<li>Documenta
6e70: 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69  tion updates</li
6e80: 3e 0a 3c 6c 69 3e 53 69 6d 70 6c 69 66 79 20 74  >.<li>Simplify t
6e90: 68 65 20 64 65 73 69 67 6e 20 6f 66 20 74 68 65  he design of the
6ea0: 20 56 44 42 45 20 62 79 20 72 65 73 74 72 69 63   VDBE by restric
6eb0: 74 69 6e 67 20 74 68 65 20 6e 75 6d 62 65 72 20  ting the number 
6ec0: 6f 66 20 73 6f 72 74 65 72 73 0a 20 20 20 20 61  of sorters.    a
6ed0: 6e 64 20 6c 69 73 74 73 20 74 6f 20 31 2e 0a 20  nd lists to 1.. 
6ee0: 20 20 20 49 6e 20 70 72 61 63 74 69 63 65 2c 20     In practice, 
6ef0: 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65  no more than one
6f00: 20 73 6f 72 74 65 72 20 61 6e 64 20 6f 6e 65 20   sorter and one 
6f10: 6c 69 73 74 20 77 61 73 20 65 76 65 72 20 75 73  list was ever us
6f20: 65 64 20 61 6e 79 68 6f 77 2e 0a 20 20 20 20 3c  ed anyhow..    <
6f30: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6f40: 30 31 20 4f 63 74 20 32 31 20 28 32 2e 30 2e 37  01 Oct 21 (2.0.7
6f50: 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 79 20 55 54 46  )} {.<li>Any UTF
6f60: 2d 38 20 63 68 61 72 61 63 74 65 72 20 6f 72 20  -8 character or 
6f70: 49 53 4f 38 38 35 39 20 63 68 61 72 61 63 74 65  ISO8859 characte
6f80: 72 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73  r can be used as
6f90: 20 70 61 72 74 20 6f 66 0a 20 20 20 20 61 6e 20   part of.    an 
6fa0: 69 64 65 6e 74 69 66 69 65 72 2e 3c 2f 6c 69 3e  identifier.</li>
6fb0: 0a 3c 6c 69 3e 50 61 74 63 68 65 73 20 66 72 6f  .<li>Patches fro
6fc0: 6d 20 43 68 72 69 73 74 69 61 6e 20 57 65 72 6e  m Christian Wern
6fd0: 65 72 20 74 6f 20 69 6d 70 72 6f 76 65 20 4f 44  er to improve OD
6fe0: 42 43 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  BC compatibility
6ff0: 20 61 6e 64 20 74 6f 0a 20 20 20 20 66 69 78 20   and to.    fix 
7000: 61 20 62 75 67 20 69 6e 20 74 68 65 20 72 6f 75  a bug in the rou
7010: 6e 64 28 29 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f  nd() function.</
7020: 6c 69 3e 0a 3c 6c 69 3e 50 6c 75 67 20 73 6f 6d  li>.<li>Plug som
7030: 65 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74  e memory leaks t
7040: 68 61 74 20 75 73 65 20 74 6f 20 6f 63 63 75 72  hat use to occur
7050: 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69   if malloc() fai
7060: 6c 65 64 2e 0a 20 20 20 20 57 65 20 68 61 76 65  led..    We have
7070: 20 62 65 65 6e 20 61 6e 64 20 63 6f 6e 74 69 6e   been and contin
7080: 75 65 20 74 6f 20 62 65 20 6d 65 6d 6f 72 79 20  ue to be memory 
7090: 6c 65 61 6b 20 66 72 65 65 20 61 73 20 6c 6f 6e  leak free as lon
70a0: 67 20 61 73 0a 20 20 20 20 6d 61 6c 6c 6f 63 28  g as.    malloc(
70b0: 29 20 77 6f 72 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ) works.</li>.<l
70c0: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 73 6f 6d  i>Changes to som
70d0: 65 20 74 65 73 74 20 73 63 72 69 70 74 73 20 73  e test scripts s
70e0: 6f 20 74 68 61 74 20 74 68 65 79 20 77 6f 72 6b  o that they work
70f0: 20 6f 6e 20 57 69 6e 64 6f 77 73 20 69 6e 0a 20   on Windows in. 
7100: 20 20 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 55     addition to U
7110: 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nix.</li>.}..chn
7120: 67 20 7b 32 30 30 31 20 4f 63 74 20 31 39 20 28  g {2001 Oct 19 (
7130: 32 2e 30 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 41 64  2.0.6)} {.<li>Ad
7140: 64 65 64 20 74 68 65 20 45 4d 50 54 59 5f 52 45  ded the EMPTY_RE
7150: 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70  SULT_CALLBACKS p
7160: 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  ragma</li>.<li>S
7170: 75 70 70 6f 72 74 20 66 6f 72 20 55 54 46 2d 38  upport for UTF-8
7180: 20 61 6e 64 20 49 53 4f 38 38 35 39 20 63 68 61   and ISO8859 cha
7190: 72 61 63 74 65 72 73 20 69 6e 20 63 6f 6c 75 6d  racters in colum
71a0: 6e 20 61 6e 64 20 74 61 62 6c 65 20 6e 61 6d 65  n and table name
71b0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  s.</li>.<li>Bug 
71c0: 66 69 78 3a 20 43 6f 6d 70 75 74 65 20 63 6f 72  fix: Compute cor
71d0: 72 65 63 74 20 74 61 62 6c 65 20 6e 61 6d 65 73  rect table names
71e0: 20 77 69 74 68 20 74 68 65 20 46 55 4c 4c 5f 43   with the FULL_C
71f0: 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67  OLUMN_NAMES prag
7200: 6d 61 0a 20 20 20 20 69 73 20 74 75 72 6e 65 64  ma.    is turned
7210: 20 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e   on.</li>.}..chn
7220: 67 20 7b 32 30 30 31 20 4f 63 74 20 31 34 20 28  g {2001 Oct 14 (
7230: 32 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 41 64  2.0.5)} {.<li>Ad
7240: 64 65 64 20 74 68 65 20 43 4f 55 4e 54 5f 43 48  ded the COUNT_CH
7250: 41 4e 47 45 53 20 70 72 61 67 6d 61 2e 3c 2f 6c  ANGES pragma.</l
7260: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74  i>.<li>Changes t
7270: 6f 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d  o the FULL_COLUM
7280: 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 20 74  N_NAMES pragma t
7290: 6f 20 68 65 6c 70 20 6f 75 74 20 74 68 65 20 4f  o help out the O
72a0: 44 42 43 20 64 72 69 76 65 72 2e 3c 2f 6c 69 3e  DBC driver.</li>
72b0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 22 53  .<li>Bug fix: "S
72c0: 45 4c 45 43 54 20 63 6f 75 6e 74 28 2a 29 22 20  ELECT count(*)" 
72d0: 77 61 73 20 72 65 74 75 72 6e 69 6e 67 20 4e 55  was returning NU
72e0: 4c 4c 20 66 6f 72 20 65 6d 70 74 79 20 74 61 62  LL for empty tab
72f0: 6c 65 73 2e 0a 20 20 20 20 4e 6f 77 20 69 74 20  les..    Now it 
7300: 72 65 74 75 72 6e 73 20 30 2e 3c 2f 6c 69 3e 0a  returns 0.</li>.
7310: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
7320: 74 20 31 33 20 28 32 2e 30 2e 34 29 7d 20 7b 0a  t 13 (2.0.4)} {.
7330: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61 6e 20  <li>Bug fix: an 
7340: 61 62 73 63 75 72 65 20 61 6e 64 20 72 65 6c 61  abscure and rela
7350: 74 69 76 65 6c 79 20 68 61 72 6d 6c 65 73 73 20  tively harmless 
7360: 62 75 67 20 77 61 73 20 63 61 75 73 69 6e 67 20  bug was causing 
7370: 6f 6e 65 20 6f 66 0a 20 20 20 20 74 68 65 20 74  one of.    the t
7380: 65 73 74 73 20 74 6f 20 66 61 69 6c 20 77 68 65  ests to fail whe
7390: 6e 20 67 63 63 20 6f 70 74 69 6d 69 7a 61 74 69  n gcc optimizati
73a0: 6f 6e 73 20 61 72 65 20 74 75 72 6e 65 64 20 6f  ons are turned o
73b0: 6e 2e 20 20 54 68 69 73 20 72 65 6c 65 61 73 65  n.  This release
73c0: 0a 20 20 20 20 66 69 78 65 73 20 74 68 65 20 70  .    fixes the p
73d0: 72 6f 62 6c 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  roblem.</li>.}..
73e0: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
73f0: 33 20 28 32 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69  3 (2.0.3)} {.<li
7400: 3e 42 75 67 20 66 69 78 3a 20 74 68 65 20 3c 62  >Bug fix: the <b
7410: 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d  >sqlite_busy_tim
7420: 65 6f 75 74 28 29 3c 2f 62 3e 20 66 75 6e 63 74  eout()</b> funct
7430: 69 6f 6e 20 77 61 73 20 64 65 6c 61 79 69 6e 67  ion was delaying
7440: 20 31 30 30 30 0a 20 20 20 20 74 69 6d 65 73 20   1000.    times 
7450: 74 6f 6f 20 6c 6f 6e 67 20 62 65 66 6f 72 65 20  too long before 
7460: 66 61 69 6c 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c  failing.</li>.<l
7470: 69 3e 42 75 67 20 66 69 78 3a 20 61 6e 20 61 73  i>Bug fix: an as
7480: 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c  sertion was fail
7490: 69 6e 67 20 69 66 20 74 68 65 20 64 69 73 6b 20  ing if the disk 
74a0: 68 6f 6c 64 69 6e 67 20 74 68 65 20 64 61 74 61  holding the data
74b0: 62 61 73 65 0a 20 20 20 20 66 69 6c 65 20 62 65  base.    file be
74c0: 63 61 6d 65 20 66 75 6c 6c 20 6f 72 20 73 74 6f  came full or sto
74d0: 70 70 65 64 20 61 63 63 65 70 74 69 6e 67 20 77  pped accepting w
74e0: 72 69 74 65 73 20 66 6f 72 20 73 6f 6d 65 20 6f  rites for some o
74f0: 74 68 65 72 20 72 65 61 73 6f 6e 2e 0a 20 20 20  ther reason..   
7500: 20 4e 65 77 20 74 65 73 74 73 20 77 65 72 65 20   New tests were 
7510: 61 64 64 65 64 20 74 6f 20 64 65 74 65 63 74 20  added to detect 
7520: 73 69 6d 69 6c 61 72 20 70 72 6f 62 6c 65 6d 73  similar problems
7530: 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 2e 3c   in the future.<
7540: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  /li>.<li>Added n
7550: 65 77 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 62  ew operators: <b
7560: 3e 26 61 6d 70 3b 3c 2f 62 3e 20 28 62 69 74 77  >&amp;</b> (bitw
7570: 69 73 65 2d 61 6e 64 29 0a 20 20 20 20 3c 62 3e  ise-and).    <b>
7580: 7c 3c 2f 62 3e 20 28 62 69 74 77 69 73 65 2d 6f  |</b> (bitwise-o
7590: 72 29 2c 20 3c 62 3e 7e 3c 2f 62 3e 20 28 6f 6e  r), <b>~</b> (on
75a0: 65 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 29 2c 0a  es-complement),.
75b0: 20 20 20 20 3c 62 3e 26 6c 74 3b 26 6c 74 3b 3c      <b>&lt;&lt;<
75c0: 2f 62 3e 20 28 73 68 69 66 74 20 6c 65 66 74 29  /b> (shift left)
75d0: 2c 20 3c 62 3e 26 67 74 3b 26 67 74 3b 3c 2f 62  , <b>&gt;&gt;</b
75e0: 3e 20 28 73 68 69 66 74 20 72 69 67 68 74 29 2e  > (shift right).
75f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
7600: 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c  new functions: <
7610: 62 3e 72 6f 75 6e 64 28 29 3c 2f 62 3e 20 61 6e  b>round()</b> an
7620: 64 20 3c 62 3e 61 62 73 28 29 3c 2f 62 3e 2e 3c  d <b>abs()</b>.<
7630: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
7640: 30 31 20 4f 63 74 20 39 20 28 32 2e 30 2e 32 29  01 Oct 9 (2.0.2)
7650: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 77 6f 20  } {.<li>Fix two 
7660: 62 75 67 73 20 69 6e 20 74 68 65 20 6c 6f 63 6b  bugs in the lock
7670: 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 20 20 28  ing protocol.  (
7680: 4f 6e 65 20 77 61 73 20 6d 61 73 6b 69 6e 67 20  One was masking 
7690: 74 68 65 20 6f 74 68 65 72 2e 29 3c 2f 6c 69 3e  the other.)</li>
76a0: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 6f 6d  .<li>Removed som
76b0: 65 20 75 6e 75 73 65 64 20 22 23 69 6e 63 6c 75  e unused "#inclu
76c0: 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 22 20 74  de <unistd.h>" t
76d0: 68 61 74 20 77 65 72 65 20 63 61 75 73 69 6e 67  hat were causing
76e0: 20 70 72 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f   problems.    fo
76f0: 72 20 56 43 2b 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69  r VC++.</li>.<li
7700: 3e 46 69 78 65 64 20 3c 62 3e 73 71 6c 69 74 65  >Fixed <b>sqlite
7710: 2e 68 3c 2f 62 3e 20 73 6f 20 74 68 61 74 20 69  .h</b> so that i
7720: 74 20 69 73 20 75 73 61 62 6c 65 20 66 72 6f 6d  t is usable from
7730: 20 43 2b 2b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64   C++</li>.<li>Ad
7740: 64 65 64 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c  ded the FULL_COL
7750: 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61  UMN_NAMES pragma
7760: 2e 20 20 57 68 65 6e 20 73 65 74 20 74 6f 20 22  .  When set to "
7770: 4f 4e 22 2c 20 74 68 65 20 6e 61 6d 65 73 20 6f  ON", the names o
7780: 66 0a 20 20 20 20 63 6f 6c 75 6d 6e 73 20 61 72  f.    columns ar
7790: 65 20 72 65 70 6f 72 74 65 64 20 62 61 63 6b 20  e reported back 
77a0: 61 73 20 54 41 42 4c 45 2e 43 4f 4c 55 4d 4e 20  as TABLE.COLUMN 
77b0: 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20  instead of just 
77c0: 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  COLUMN.</li>.<li
77d0: 3e 41 64 64 65 64 20 74 68 65 20 54 41 42 4c 45  >Added the TABLE
77e0: 5f 49 4e 46 4f 28 29 20 61 6e 64 20 49 4e 44 45  _INFO() and INDE
77f0: 58 5f 49 4e 46 4f 28 29 20 70 72 61 67 6d 61 73  X_INFO() pragmas
7800: 20 74 6f 20 68 65 6c 70 20 73 75 70 70 6f 72 74   to help support
7810: 20 74 68 65 0a 20 20 20 20 4f 44 42 43 20 69 6e   the.    ODBC in
7820: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c  terface.</li>.<l
7830: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
7840: 66 6f 72 20 54 45 4d 50 4f 52 41 52 59 20 74 61  for TEMPORARY ta
7850: 62 6c 65 73 20 61 6e 64 20 69 6e 64 69 63 65 73  bles and indices
7860: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
7870: 32 30 30 31 20 4f 63 74 20 32 20 28 32 2e 30 2e  2001 Oct 2 (2.0.
7880: 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65  1)} {.<li>Remove
7890: 20 73 6f 6d 65 20 43 2b 2b 20 73 74 79 6c 65 20   some C++ style 
78a0: 63 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d 20 62 74  comments from bt
78b0: 72 65 65 2e 63 20 73 6f 20 74 68 61 74 20 69 74  ree.c so that it
78c0: 20 77 69 6c 6c 20 63 6f 6d 70 69 6c 65 0a 20 20   will compile.  
78d0: 20 20 75 73 69 6e 67 20 63 6f 6d 70 69 6c 65 72    using compiler
78e0: 73 20 6f 74 68 65 72 20 74 68 61 6e 20 67 63 63  s other than gcc
78f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22  .</li>.<li>The "
7900: 2e 64 75 6d 70 22 20 6f 75 74 70 75 74 20 66 72  .dump" output fr
7910: 6f 6d 20 74 68 65 20 73 68 65 6c 6c 20 64 6f 65  om the shell doe
7920: 73 20 6e 6f 74 20 77 6f 72 6b 20 69 66 20 74 68  s not work if th
7930: 65 72 65 20 61 72 65 20 65 6d 62 65 64 64 65 64  ere are embedded
7940: 0a 20 20 20 20 6e 65 77 6c 69 6e 65 73 20 61 6e  .    newlines an
7950: 79 77 68 65 72 65 20 69 6e 20 74 68 65 20 64 61  ywhere in the da
7960: 74 61 2e 20 20 54 68 69 73 20 69 73 20 61 6e 20  ta.  This is an 
7970: 6f 6c 64 20 62 75 67 20 74 68 61 74 20 77 61 73  old bug that was
7980: 20 63 61 72 72 69 65 64 0a 20 20 20 20 66 6f 72   carried.    for
7990: 77 61 72 64 20 66 72 6f 6d 20 76 65 72 73 69 6f  ward from versio
79a0: 6e 20 31 2e 30 2e 20 20 54 6f 20 66 69 78 20 69  n 1.0.  To fix i
79b0: 74 2c 20 74 68 65 20 22 2e 64 75 6d 70 22 20 6f  t, the ".dump" o
79c0: 75 74 70 75 74 20 6e 6f 20 6c 6f 6e 67 65 72 0a  utput no longer.
79d0: 20 20 20 20 75 73 65 73 20 74 68 65 20 43 4f 50      uses the COP
79e0: 59 20 63 6f 6d 6d 61 6e 64 2e 20 20 49 74 20 69  Y command.  It i
79f0: 6e 73 74 65 61 64 20 67 65 6e 65 72 61 74 65 73  nstead generates
7a00: 20 49 4e 53 45 52 54 20 73 74 61 74 65 6d 65 6e   INSERT statemen
7a10: 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 74  ts.</li>.<li>Ext
7a20: 65 6e 64 20 74 68 65 20 65 78 70 72 65 73 73 69  end the expressi
7a30: 6f 6e 20 73 79 6e 74 61 78 20 74 6f 20 73 75 70  on syntax to sup
7a40: 70 6f 72 74 20 22 65 78 70 72 20 4e 4f 54 20 4e  port "expr NOT N
7a50: 55 4c 4c 22 20 28 77 69 74 68 20 61 0a 20 20 20  ULL" (with a.   
7a60: 20 73 70 61 63 65 20 62 65 74 77 65 65 6e 20 74   space between t
7a70: 68 65 20 22 4e 4f 54 22 20 61 6e 64 20 74 68 65  he "NOT" and the
7a80: 20 22 4e 55 4c 4c 22 29 20 69 6e 20 61 64 64 69   "NULL") in addi
7a90: 74 69 6f 6e 20 74 6f 20 22 65 78 70 72 20 4e 4f  tion to "expr NO
7aa0: 54 4e 55 4c 4c 22 0a 20 20 20 20 28 77 69 74 68  TNULL".    (with
7ab0: 20 6e 6f 20 73 70 61 63 65 29 2e 3c 2f 6c 69 3e   no space).</li>
7ac0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53  .}..chng {2001 S
7ad0: 65 70 20 32 38 20 28 32 2e 30 2e 30 29 7d 20 7b  ep 28 (2.0.0)} {
7ae0: 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c  .<li>Automatical
7af0: 6c 79 20 62 75 69 6c 64 20 62 69 6e 61 72 69 65  ly build binarie
7b00: 73 20 66 6f 72 20 4c 69 6e 75 78 20 61 6e 64 20  s for Linux and 
7b10: 57 69 6e 64 6f 77 73 20 61 6e 64 20 70 75 74 20  Windows and put 
7b20: 74 68 65 6d 20 6f 6e 0a 20 20 20 20 74 68 65 20  them on.    the 
7b30: 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a  website.</li>.}.
7b40: 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20  .chng {2001 Sep 
7b50: 32 38 20 28 32 2e 30 2d 61 6c 70 68 61 2d 34 29  28 (2.0-alpha-4)
7b60: 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6f 72 70 6f 72  } {.<li>Incorpor
7b70: 61 74 65 20 6d 61 6b 65 66 69 6c 65 20 70 61 74  ate makefile pat
7b80: 63 68 65 73 20 66 6f 72 6d 20 41 2e 20 52 6f 74  ches form A. Rot
7b90: 74 6d 61 6e 6e 20 74 6f 20 75 73 65 20 4c 49 42  tmann to use LIB
7ba0: 54 4f 4f 4c 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  TOOL</li>.}..chn
7bb0: 67 20 7b 32 30 30 31 20 53 65 70 20 32 37 20 28  g {2001 Sep 27 (
7bc0: 32 2e 30 2d 61 6c 70 68 61 2d 33 29 7d 20 7b 0a  2.0-alpha-3)} {.
7bd0: 3c 6c 69 3e 53 51 4c 69 74 65 20 6e 6f 77 20 68  <li>SQLite now h
7be0: 6f 6e 6f 72 73 20 74 68 65 20 55 4e 49 51 55 45  onors the UNIQUE
7bf0: 20 6b 65 79 77 6f 72 64 20 69 6e 20 43 52 45 41   keyword in CREA
7c00: 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 2e  TE UNIQUE INDEX.
7c10: 20 20 50 72 69 6d 61 72 79 0a 20 20 20 20 6b 65    Primary.    ke
7c20: 79 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20  ys are required 
7c30: 74 6f 20 62 65 20 75 6e 69 71 75 65 2e 3c 2f 6c  to be unique.</l
7c40: 69 3e 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d  i>.<li>File form
7c50: 61 74 20 63 68 61 6e 67 65 64 20 62 61 63 6b 20  at changed back 
7c60: 74 6f 20 77 68 61 74 20 69 74 20 77 61 73 20 66  to what it was f
7c70: 6f 72 20 61 6c 70 68 61 2d 31 3c 2f 6c 69 3e 0a  or alpha-1</li>.
7c80: 3c 6c 69 3e 46 69 78 65 73 20 74 6f 20 74 68 65  <li>Fixes to the
7c90: 20 72 6f 6c 6c 62 61 63 6b 20 61 6e 64 20 6c 6f   rollback and lo
7ca0: 63 6b 69 6e 67 20 62 65 68 61 76 69 6f 72 3c 2f  cking behavior</
7cb0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
7cc0: 31 20 53 65 70 20 32 30 20 28 32 2e 30 2d 61 6c  1 Sep 20 (2.0-al
7cd0: 70 68 61 2d 32 29 7d 20 7b 0a 3c 6c 69 3e 49 6e  pha-2)} {.<li>In
7ce0: 69 74 69 61 6c 20 72 65 6c 65 61 73 65 20 6f 66  itial release of
7cf0: 20 76 65 72 73 69 6f 6e 20 32 2e 30 2e 20 20 54   version 2.0.  T
7d00: 68 65 20 69 64 65 61 20 6f 66 20 72 65 6e 61 6d  he idea of renam
7d10: 69 6e 67 20 74 68 65 20 6c 69 62 72 61 72 79 0a  ing the library.
7d20: 20 20 20 20 74 6f 20 22 53 51 4c 75 73 22 20 77      to "SQLus" w
7d30: 61 73 20 61 62 61 6e 64 6f 6e 65 64 20 69 6e 20  as abandoned in 
7d40: 66 61 76 6f 72 20 6f 66 20 6b 65 65 70 69 6e 67  favor of keeping
7d50: 20 74 68 65 20 22 53 51 4c 69 74 65 22 20 6e 61   the "SQLite" na
7d60: 6d 65 20 61 6e 64 0a 20 20 20 20 62 75 6d 70 69  me and.    bumpi
7d70: 6e 67 20 74 68 65 20 6d 61 6a 6f 72 20 76 65 72  ng the major ver
7d80: 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69  sion number.</li
7d90: 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 67 65 72 20  >.<li>The pager 
7da0: 61 6e 64 20 62 74 72 65 65 20 73 75 62 73 79 73  and btree subsys
7db0: 74 65 6d 73 20 61 64 64 65 64 20 62 61 63 6b 2e  tems added back.
7dc0: 20 54 68 65 79 20 61 72 65 20 6e 6f 77 20 74 68   They are now th
7dd0: 65 20 6f 6e 6c 79 0a 20 20 20 20 61 76 61 69 6c  e only.    avail
7de0: 61 62 6c 65 20 62 61 63 6b 65 6e 64 2e 3c 2f 6c  able backend.</l
7df0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 44 62 62 65 20  i>.<li>The Dbbe 
7e00: 61 62 73 74 72 61 63 74 69 6f 6e 20 61 6e 64 20  abstraction and 
7e10: 74 68 65 20 47 44 42 4d 20 61 6e 64 20 6d 65 6d  the GDBM and mem
7e20: 6f 72 79 20 64 72 69 76 65 72 73 20 77 65 72 65  ory drivers were
7e30: 20 72 65 6d 6f 76 65 64 2e 3c 2f 6c 69 3e 0a 3c   removed.</li>.<
7e40: 6c 69 3e 43 6f 70 79 72 69 67 68 74 20 6f 6e 20  li>Copyright on 
7e50: 61 6c 6c 20 63 6f 64 65 20 77 61 73 20 64 69 73  all code was dis
7e60: 63 6c 61 69 6d 65 64 2e 20 20 54 68 65 20 6c 69  claimed.  The li
7e70: 62 72 61 72 79 20 69 73 20 6e 6f 77 20 69 6e 20  brary is now in 
7e80: 74 68 65 0a 20 20 20 20 70 75 62 6c 69 63 20 64  the.    public d
7e90: 6f 6d 61 69 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  omain.</li>.}..c
7ea0: 68 6e 67 20 7b 32 30 30 31 20 4a 75 6c 20 32 33  hng {2001 Jul 23
7eb0: 20 28 31 2e 30 2e 33 32 29 7d 20 7b 0a 3c 6c 69   (1.0.32)} {.<li
7ec0: 3e 50 61 67 65 72 20 61 6e 64 20 62 74 72 65 65  >Pager and btree
7ed0: 20 73 75 62 73 79 73 74 65 6d 73 20 72 65 6d 6f   subsystems remo
7ee0: 76 65 64 2e 20 20 54 68 65 73 65 20 77 69 6c 6c  ved.  These will
7ef0: 20 62 65 20 75 73 65 64 20 69 6e 20 61 20 66 6f   be used in a fo
7f00: 6c 6c 6f 77 2d 6f 6e 0a 20 20 20 20 53 51 4c 20  llow-on.    SQL 
7f10: 73 65 72 76 65 72 20 6c 69 62 72 61 72 79 20 6e  server library n
7f20: 61 6d 65 64 20 22 53 51 4c 75 73 22 2e 3c 2f 6c  amed "SQLus".</l
7f30: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61  i>.<li>Add the a
7f40: 62 69 6c 69 74 79 20 74 6f 20 75 73 65 20 71 75  bility to use qu
7f50: 6f 74 65 64 20 73 74 72 69 6e 67 73 20 61 73 20  oted strings as 
7f60: 74 61 62 6c 65 20 61 6e 64 20 63 6f 6c 75 6d 6e  table and column
7f70: 20 6e 61 6d 65 73 20 69 6e 0a 20 20 20 20 65 78   names in.    ex
7f80: 70 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  pressions.</li>.
7f90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70  }..chng {2001 Ap
7fa0: 72 20 31 34 20 28 31 2e 30 2e 33 31 29 7d 20 7b  r 14 (1.0.31)} {
7fb0: 0a 3c 6c 69 3e 50 61 67 65 72 20 73 75 62 73 79  .<li>Pager subsy
7fc0: 73 74 65 6d 20 61 64 64 65 64 20 62 75 74 20 6e  stem added but n
7fd0: 6f 74 20 79 65 74 20 75 73 65 64 2e 3c 2f 6c 69  ot yet used.</li
7fe0: 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 72 6f 62 75 73  >.<li>More robus
7ff0: 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 6f 75  t handling of ou
8000: 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 65 72 72 6f  t-of-memory erro
8010: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77  rs.</li>.<li>New
8020: 20 74 65 73 74 73 20 61 64 64 65 64 20 74 6f 20   tests added to 
8030: 74 68 65 20 74 65 73 74 20 73 75 69 74 65 2e 3c  the test suite.<
8040: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8050: 30 31 20 41 70 72 20 36 20 28 31 2e 30 2e 33 30  01 Apr 6 (1.0.30
8060: 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20  )} {.<li>Remove 
8070: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 6e  the <b>sqlite_en
8080: 63 6f 64 69 6e 67 3c 2f 62 3e 20 54 43 4c 20 76  coding</b> TCL v
8090: 61 72 69 61 62 6c 65 20 74 68 61 74 20 77 61 73  ariable that was
80a0: 20 69 6e 74 72 6f 64 75 63 65 64 0a 20 20 20 20   introduced.    
80b0: 69 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  in the previous 
80c0: 76 65 72 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  version.</li>.<l
80d0: 69 3e 41 64 64 20 6f 70 74 69 6f 6e 73 20 3c 62  i>Add options <b
80e0: 3e 2d 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 61  >-encoding</b> a
80f0: 6e 64 20 3c 62 3e 2d 74 63 6c 2d 75 73 65 73 2d  nd <b>-tcl-uses-
8100: 75 74 66 3c 2f 62 3e 20 74 6f 20 74 68 65 0a 20  utf</b> to the. 
8110: 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e     <b>sqlite</b>
8120: 20 54 43 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c   TCL command.</l
8130: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 65 73 74 73  i>.<li>Add tests
8140: 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68   to make sure th
8150: 61 74 20 74 63 6c 73 71 6c 69 74 65 20 77 61 73  at tclsqlite was
8160: 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e 67 20   compiled using 
8170: 54 63 6c 20 68 65 61 64 65 72 0a 20 20 20 20 66  Tcl header.    f
8180: 69 6c 65 73 20 61 6e 64 20 6c 69 62 72 61 72 69  iles and librari
8190: 65 73 20 74 68 61 74 20 6d 61 74 63 68 2e 3c 2f  es that match.</
81a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
81b0: 31 20 41 70 72 20 35 20 28 31 2e 30 2e 32 39 29  1 Apr 5 (1.0.29)
81c0: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c 69 62 72  } {.<li>The libr
81d0: 61 72 79 20 6e 6f 77 20 61 73 73 75 6d 65 73 20  ary now assumes 
81e0: 64 61 74 61 20 69 73 20 73 74 6f 72 65 64 20 61  data is stored a
81f0: 73 20 55 54 46 2d 38 20 69 66 20 74 68 65 20 2d  s UTF-8 if the -
8200: 2d 65 6e 61 62 6c 65 2d 75 74 66 38 0a 20 20 20  -enable-utf8.   
8210: 20 6f 70 74 69 6f 6e 20 69 73 20 67 69 76 65 6e   option is given
8220: 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 2e 20 20   to configure.  
8230: 54 68 65 20 64 65 66 61 75 6c 74 20 62 65 68 61  The default beha
8240: 76 69 6f 72 20 69 73 20 74 6f 20 61 73 73 75 6d  vior is to assum
8250: 65 0a 20 20 20 20 69 73 6f 38 38 35 39 2d 78 2c  e.    iso8859-x,
8260: 20 61 73 20 69 74 20 68 61 73 20 61 6c 77 61 79   as it has alway
8270: 73 20 64 6f 6e 65 2e 20 20 54 68 69 73 20 6f 6e  s done.  This on
8280: 6c 79 20 6d 61 6b 65 73 20 61 20 64 69 66 66 65  ly makes a diffe
8290: 72 65 6e 63 65 20 66 6f 72 0a 20 20 20 20 4c 49  rence for.    LI
82a0: 4b 45 20 61 6e 64 20 47 4c 4f 42 20 6f 70 65 72  KE and GLOB oper
82b0: 61 74 6f 72 73 20 61 6e 64 20 74 68 65 20 4c 45  ators and the LE
82c0: 4e 47 54 48 20 61 6e 64 20 53 55 42 53 54 52 20  NGTH and SUBSTR 
82d0: 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  functions.</li>.
82e0: 3c 6c 69 3e 49 66 20 74 68 65 20 6c 69 62 72 61  <li>If the libra
82f0: 72 79 20 69 73 20 6e 6f 74 20 63 6f 6e 66 69 67  ry is not config
8300: 75 72 65 64 20 66 6f 72 20 55 54 46 2d 38 20 61  ured for UTF-8 a
8310: 6e 64 20 74 68 65 20 54 63 6c 20 6c 69 62 72 61  nd the Tcl libra
8320: 72 79 0a 20 20 20 20 69 73 20 6f 6e 65 20 6f 66  ry.    is one of
8330: 20 74 68 65 20 6e 65 77 65 72 20 6f 6e 65 73 20   the newer ones 
8340: 74 68 61 74 20 75 73 65 73 20 55 54 46 2d 38 20  that uses UTF-8 
8350: 69 6e 74 65 72 6e 61 6c 6c 79 2c 0a 20 20 20 20  internally,.    
8360: 74 68 65 6e 20 61 20 63 6f 6e 76 65 72 73 69 6f  then a conversio
8370: 6e 20 66 72 6f 6d 20 55 54 46 2d 38 20 74 6f 20  n from UTF-8 to 
8380: 69 73 6f 38 38 35 39 20 61 6e 64 0a 20 20 20 20  iso8859 and.    
8390: 62 61 63 6b 20 61 67 61 69 6e 20 69 73 20 64 6f  back again is do
83a0: 6e 65 20 69 6e 73 69 64 65 20 74 68 65 20 54 43  ne inside the TC
83b0: 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69  L interface.</li
83c0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
83d0: 41 70 72 20 34 20 28 31 2e 30 2e 32 38 29 7d 20  Apr 4 (1.0.28)} 
83e0: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 69 6d 69  {.<li>Added limi
83f0: 74 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ted support for 
8400: 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 41  transactions.  A
8410: 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 74 72  t this point, tr
8420: 61 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 77  ansactions.    w
8430: 69 6c 6c 20 64 6f 20 74 61 62 6c 65 20 6c 6f 63  ill do table loc
8440: 6b 69 6e 67 20 6f 6e 20 74 68 65 20 47 44 42 4d  king on the GDBM
8450: 20 62 61 63 6b 65 6e 64 2e 20 20 54 68 65 72 65   backend.  There
8460: 20 69 73 20 6e 6f 20 73 75 70 70 6f 72 74 20 28   is no support (
8470: 79 65 74 29 0a 20 20 20 20 66 6f 72 20 72 6f 6c  yet).    for rol
8480: 6c 62 61 63 6b 20 6f 72 20 61 74 6f 6d 69 63 20  lback or atomic 
8490: 63 6f 6d 6d 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  commit.</li>.<li
84a0: 3e 41 64 64 65 64 20 73 70 65 63 69 61 6c 20 63  >Added special c
84b0: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 52 4f 57 49  olumn names ROWI
84c0: 44 2c 20 4f 49 44 2c 20 61 6e 64 20 5f 52 4f 57  D, OID, and _ROW
84d0: 49 44 5f 20 74 68 61 74 20 72 65 66 65 72 20 74  ID_ that refer t
84e0: 6f 20 74 68 65 0a 20 20 20 20 75 6e 69 71 75 65  o the.    unique
84f0: 20 72 61 6e 64 6f 6d 20 69 6e 74 65 67 65 72 20   random integer 
8500: 6b 65 79 20 61 73 73 6f 63 69 61 74 65 64 20 77  key associated w
8510: 69 74 68 20 65 76 65 72 79 20 72 6f 77 20 6f 66  ith every row of
8520: 20 65 76 65 72 79 20 74 61 62 6c 65 2e 3c 2f 6c   every table.</l
8530: 69 3e 0a 3c 6c 69 3e 41 64 64 69 74 69 6f 6e 61  i>.<li>Additiona
8540: 6c 20 74 65 73 74 73 20 61 64 64 65 64 20 74 6f  l tests added to
8550: 20 74 68 65 20 72 65 67 72 65 73 73 69 6f 6e 20   the regression 
8560: 73 75 69 74 65 20 74 6f 20 63 6f 76 65 72 20 74  suite to cover t
8570: 68 65 20 6e 65 77 20 52 4f 57 49 44 0a 20 20 20  he new ROWID.   
8580: 20 66 65 61 74 75 72 65 20 61 6e 64 20 74 68 65   feature and the
8590: 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20 62   TCL interface b
85a0: 75 67 73 20 6d 65 6e 74 69 6f 6e 65 64 20 62 65  ugs mentioned be
85b0: 6c 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68  low.</li>.<li>Ch
85c0: 61 6e 67 65 73 20 74 6f 20 74 68 65 20 22 6c 65  anges to the "le
85d0: 6d 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e 65  mon" parser gene
85e0: 72 61 74 6f 72 20 74 6f 20 68 65 6c 70 20 69 74  rator to help it
85f0: 20 77 6f 72 6b 20 62 65 74 74 65 72 20 77 68 65   work better whe
8600: 6e 0a 20 20 20 20 63 6f 6d 70 69 6c 65 64 20 75  n.    compiled u
8610: 73 69 6e 67 20 4d 53 56 43 2e 3c 2f 6c 69 3e 0a  sing MSVC.</li>.
8620: 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20 69 6e  <li>Bug fixes in
8630: 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61   the TCL interfa
8640: 63 65 20 69 64 65 6e 74 69 66 69 65 64 20 62 79  ce identified by
8650: 20 4f 6c 65 67 20 4f 6c 65 69 6e 69 63 6b 2e 3c   Oleg Oleinick.<
8660: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8670: 30 31 20 4d 61 72 20 32 30 20 28 31 2e 30 2e 32  01 Mar 20 (1.0.2
8680: 37 29 7d 20 7b 0a 3c 6c 69 3e 57 68 65 6e 20 64  7)} {.<li>When d
8690: 6f 69 6e 67 20 44 45 4c 45 54 45 20 61 6e 64 20  oing DELETE and 
86a0: 55 50 44 41 54 45 2c 20 74 68 65 20 6c 69 62 72  UPDATE, the libr
86b0: 61 72 79 20 75 73 65 64 20 74 6f 20 77 72 69 74  ary used to writ
86c0: 65 20 74 68 65 20 72 65 63 6f 72 64 0a 20 20 20  e the record.   
86d0: 20 6e 75 6d 62 65 72 73 20 6f 66 20 72 65 63 6f   numbers of reco
86e0: 72 64 73 20 74 6f 20 62 65 20 64 65 6c 65 74 65  rds to be delete
86f0: 64 20 6f 72 20 75 70 64 61 74 65 64 20 69 6e 74  d or updated int
8700: 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69  o a temporary fi
8710: 6c 65 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20  le..    This is 
8720: 63 68 61 6e 67 65 64 20 73 6f 20 74 68 61 74 20  changed so that 
8730: 74 68 65 20 72 65 63 6f 72 64 20 6e 75 6d 62 65  the record numbe
8740: 72 73 20 61 72 65 20 68 65 6c 64 20 69 6e 20 6d  rs are held in m
8750: 65 6d 6f 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  emory.</li>.<li>
8760: 54 68 65 20 44 45 4c 45 54 45 20 63 6f 6d 6d 61  The DELETE comma
8770: 6e 64 20 77 69 74 68 6f 75 74 20 61 20 57 48 49  nd without a WHI
8780: 4c 45 20 63 6c 61 75 73 65 20 6a 75 73 74 20 72  LE clause just r
8790: 65 6d 6f 76 65 73 20 74 68 65 20 64 61 74 61 62  emoves the datab
87a0: 61 73 65 0a 20 20 20 20 66 69 6c 65 73 20 66 72  ase.    files fr
87b0: 6f 6d 20 74 68 65 20 64 69 73 6b 2c 20 72 61 74  om the disk, rat
87c0: 68 65 72 20 74 68 61 6e 20 67 6f 69 6e 67 20 74  her than going t
87d0: 68 72 6f 75 67 68 20 61 6e 64 20 64 65 6c 65 74  hrough and delet
87e0: 69 6e 67 20 72 65 63 6f 72 64 0a 20 20 20 20 62  ing record.    b
87f0: 79 20 72 65 63 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d  y record.</li>.}
8800: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72  ..chng {2001 Mar
8810: 20 32 30 20 28 31 2e 30 2e 32 36 29 7d 20 7b 0a   20 (1.0.26)} {.
8820: 3c 6c 69 3e 41 20 73 65 72 69 6f 75 73 20 62 75  <li>A serious bu
8830: 67 20 66 69 78 65 64 20 6f 6e 20 57 69 6e 64 6f  g fixed on Windo
8840: 77 73 2e 20 20 57 69 6e 64 6f 77 73 20 75 73 65  ws.  Windows use
8850: 72 73 20 73 68 6f 75 6c 64 20 75 70 67 72 61 64  rs should upgrad
8860: 65 2e 0a 20 20 20 20 4e 6f 20 69 6d 70 61 63 74  e..    No impact
8870: 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d   to Unix.</li>.}
8880: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72  ..chng {2001 Mar
8890: 20 31 35 20 28 31 2e 30 2e 32 35 29 7d 20 7b 0a   15 (1.0.25)} {.
88a0: 3c 6c 69 3e 4d 6f 64 69 66 79 20 74 68 65 20 74  <li>Modify the t
88b0: 65 73 74 20 73 63 72 69 70 74 73 20 74 6f 20 69  est scripts to i
88c0: 64 65 6e 74 69 66 79 20 74 65 73 74 73 20 74 68  dentify tests th
88d0: 61 74 20 64 65 70 65 6e 64 20 6f 6e 20 73 79 73  at depend on sys
88e0: 74 65 6d 0a 20 20 20 20 6c 6f 61 64 20 61 6e 64  tem.    load and
88f0: 20 70 72 6f 63 65 73 73 6f 72 20 73 70 65 65 64   processor speed
8900: 20 61 6e 64 0a 20 20 20 20 74 6f 20 77 61 72 6e   and.    to warn
8910: 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 61   the user that a
8920: 20 66 61 69 6c 75 72 65 20 6f 66 20 6f 6e 65 20   failure of one 
8930: 6f 66 20 74 68 6f 73 65 20 28 72 61 72 65 29 20  of those (rare) 
8940: 74 65 73 74 73 20 64 6f 65 73 0a 20 20 20 20 6e  tests does.    n
8950: 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 6d  ot necessarily m
8960: 65 61 6e 20 74 68 65 20 6c 69 62 72 61 72 79 20  ean the library 
8970: 69 73 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 69 6e  is malfunctionin
8980: 67 2e 20 20 4e 6f 20 63 68 61 6e 67 65 73 20 74  g.  No changes t
8990: 6f 0a 20 20 20 20 63 6f 64 65 2e 0a 20 20 20 20  o.    code..    
89a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
89b0: 30 30 31 20 4d 61 72 20 31 34 20 28 31 2e 30 2e  001 Mar 14 (1.0.
89c0: 32 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  24)} {.<li>Fix a
89d0: 20 62 75 67 20 77 68 69 63 68 20 77 61 73 20 63   bug which was c
89e0: 61 75 73 69 6e 67 0a 20 20 20 20 74 68 65 20 55  ausing.    the U
89f0: 50 44 41 54 45 20 63 6f 6d 6d 61 6e 64 20 74 6f  PDATE command to
8a00: 20 66 61 69 6c 20 6f 6e 20 73 79 73 74 65 6d 73   fail on systems
8a10: 20 77 68 65 72 65 20 22 6d 61 6c 6c 6f 63 28 30   where "malloc(0
8a20: 29 22 20 72 65 74 75 72 6e 73 0a 20 20 20 20 4e  )" returns.    N
8a30: 55 4c 4c 2e 20 20 54 68 65 20 70 72 6f 62 6c 65  ULL.  The proble
8a40: 6d 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61  m does not appea
8a50: 72 20 57 69 6e 64 6f 77 73 2c 20 4c 69 6e 75 78  r Windows, Linux
8a60: 2c 20 6f 72 20 48 50 55 58 20 62 75 74 20 64 6f  , or HPUX but do
8a70: 65 73 20 0a 20 20 20 20 63 61 75 73 65 20 74 68  es .    cause th
8a80: 65 20 6c 69 62 72 61 72 79 20 74 6f 20 66 61 69  e library to fai
8a90: 6c 20 6f 6e 20 51 4e 58 2e 0a 20 20 20 20 3c 2f  l on QNX..    </
8aa0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8ab0: 31 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 33  1 Feb 19 (1.0.23
8ac0: 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 20 75 6e 72 65  )} {.<li>An unre
8ad0: 6c 61 74 65 64 20 28 61 6e 64 20 6d 69 6e 6f 72  lated (and minor
8ae0: 29 20 62 75 67 20 66 72 6f 6d 20 4d 61 72 6b 20  ) bug from Mark 
8af0: 4d 75 72 61 6e 77 73 6b 69 20 66 69 78 65 64 2e  Muranwski fixed.
8b00: 20 20 54 68 65 20 61 6c 67 6f 72 69 74 68 6d 0a    The algorithm.
8b10: 20 20 20 20 66 6f 72 20 66 69 67 75 72 69 6e 67      for figuring
8b20: 20 6f 75 74 20 77 68 65 72 65 20 74 6f 20 70 75   out where to pu
8b30: 74 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65  t temporary file
8b40: 73 20 66 6f 72 20 61 20 22 6d 65 6d 6f 72 79 3a  s for a "memory:
8b50: 22 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 77  " database.    w
8b60: 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 71  as not working q
8b70: 75 69 74 65 20 72 69 67 68 74 2e 0a 20 20 20 20  uite right..    
8b80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8b90: 30 30 31 20 46 65 62 20 31 39 20 28 31 2e 30 2e  001 Feb 19 (1.0.
8ba0: 32 32 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70  22)} {.<li>The p
8bb0: 72 65 76 69 6f 75 73 20 66 69 78 20 77 61 73 20  revious fix was 
8bc0: 6e 6f 74 20 71 75 69 74 65 20 72 69 67 68 74 2e  not quite right.
8bd0: 20 20 54 68 69 73 20 6f 6e 65 20 73 65 65 6d 73    This one seems
8be0: 20 74 6f 20 77 6f 72 6b 20 62 65 74 74 65 72 2e   to work better.
8bf0: 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  .    </li>.}..ch
8c00: 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31 39 20  ng {2001 Feb 19 
8c10: 28 31 2e 30 2e 32 31 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.21)} {.<li>
8c20: 54 68 65 20 55 50 44 41 54 45 20 73 74 61 74 65  The UPDATE state
8c30: 6d 65 6e 74 20 77 61 73 20 6e 6f 74 20 77 6f 72  ment was not wor
8c40: 6b 69 6e 67 20 77 68 65 6e 20 74 68 65 20 57 48  king when the WH
8c50: 45 52 45 20 63 6c 61 75 73 65 20 63 6f 6e 74 61  ERE clause conta
8c60: 69 6e 65 64 0a 20 20 20 20 73 6f 6d 65 20 74 65  ined.    some te
8c70: 72 6d 73 20 74 68 61 74 20 63 6f 75 6c 64 20 62  rms that could b
8c80: 65 20 73 61 74 69 73 66 69 65 64 20 75 73 69 6e  e satisfied usin
8c90: 67 20 69 6e 64 69 63 65 73 20 61 6e 64 20 6f 74  g indices and ot
8ca0: 68 65 72 20 74 65 72 6d 73 20 74 68 61 74 0a 20  her terms that. 
8cb0: 20 20 20 63 6f 75 6c 64 20 6e 6f 74 2e 20 20 46     could not.  F
8cc0: 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixed.</li>.}..ch
8cd0: 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31 31 20  ng {2001 Feb 11 
8ce0: 28 31 2e 30 2e 32 30 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.20)} {.<li>
8cf0: 4d 65 72 67 65 20 64 65 76 65 6c 6f 70 6d 65 6e  Merge developmen
8d00: 74 20 63 68 61 6e 67 65 73 20 69 6e 74 6f 20 74  t changes into t
8d10: 68 65 20 6d 61 69 6e 20 74 72 75 6e 6b 2e 20 20  he main trunk.  
8d20: 46 75 74 75 72 65 20 77 6f 72 6b 20 74 6f 77 61  Future work towa
8d30: 72 64 0a 20 20 20 20 75 73 69 6e 67 20 61 20 42  rd.    using a B
8d40: 54 72 65 65 20 66 69 6c 65 20 73 74 72 75 63 74  Tree file struct
8d50: 75 72 65 20 77 69 6c 6c 20 75 73 65 20 61 20 73  ure will use a s
8d60: 65 70 61 72 61 74 65 20 43 56 53 20 73 6f 75 72  eparate CVS sour
8d70: 63 65 20 74 72 65 65 2e 20 20 54 68 69 73 0a 20  ce tree.  This. 
8d80: 20 20 20 43 56 53 20 74 72 65 65 20 77 69 6c 6c     CVS tree will
8d90: 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 73 75 70   continue to sup
8da0: 70 6f 72 74 20 74 68 65 20 47 44 42 4d 20 76 65  port the GDBM ve
8db0: 72 73 69 6f 6e 20 6f 66 20 53 51 4c 69 74 65 20  rsion of SQLite 
8dc0: 6f 6e 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  only.</li>.}..ch
8dd0: 6e 67 20 7b 32 30 30 31 20 46 65 62 20 36 20 28  ng {2001 Feb 6 (
8de0: 31 2e 30 2e 31 39 29 7d 20 7b 0a 3c 6c 69 3e 46  1.0.19)} {.<li>F
8df0: 69 78 20 61 20 73 74 72 61 6e 67 65 20 28 62 75  ix a strange (bu
8e00: 74 20 76 61 6c 69 64 29 20 43 20 64 65 63 6c 61  t valid) C decla
8e10: 72 61 74 69 6f 6e 20 74 68 61 74 20 77 61 73 20  ration that was 
8e20: 63 61 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73  causing problems
8e30: 0a 20 20 20 20 66 6f 72 20 51 4e 58 2e 20 20 4e  .    for QNX.  N
8e40: 6f 20 6c 6f 67 69 63 61 6c 20 63 68 61 6e 67 65  o logical change
8e50: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
8e60: 7b 32 30 30 31 20 4a 61 6e 20 34 20 28 31 2e 30  {2001 Jan 4 (1.0
8e70: 2e 31 38 29 7d 20 7b 0a 3c 6c 69 3e 50 72 69 6e  .18)} {.<li>Prin
8e80: 74 20 74 68 65 20 6f 66 66 65 6e 64 69 6e 67 20  t the offending 
8e90: 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 20 77 68  SQL statement wh
8ea0: 65 6e 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75  en an error occu
8eb0: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20  rs.</li>.<li>Do 
8ec0: 6e 6f 74 20 72 65 71 75 69 72 65 20 63 6f 6d 6d  not require comm
8ed0: 61 73 20 62 65 74 77 65 65 6e 20 63 6f 6e 73 74  as between const
8ee0: 72 61 69 6e 74 73 20 69 6e 20 43 52 45 41 54 45  raints in CREATE
8ef0: 20 54 41 42 4c 45 20 73 74 61 74 65 6d 65 6e 74   TABLE statement
8f00: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
8f10: 64 20 74 68 65 20 22 2d 65 63 68 6f 22 20 6f 70  d the "-echo" op
8f20: 74 69 6f 6e 20 74 6f 20 74 68 65 20 73 68 65 6c  tion to the shel
8f30: 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  l.</li>.<li>Chan
8f40: 67 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 2e  ges to comments.
8f50: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8f60: 30 30 30 20 44 65 63 20 31 30 20 28 31 2e 30 2e  000 Dec 10 (1.0.
8f70: 31 37 29 7d 20 7b 0a 3c 6c 69 3e 52 65 77 72 6f  17)} {.<li>Rewro
8f80: 74 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d  te <b>sqlite_com
8f90: 70 6c 65 74 65 28 29 3c 2f 62 3e 20 74 6f 20 6d  plete()</b> to m
8fa0: 61 6b 65 20 69 74 20 66 61 73 74 65 72 2e 3c 2f  ake it faster.</
8fb0: 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 74 77  li>.<li>Minor tw
8fc0: 65 61 6b 73 20 74 6f 20 6f 74 68 65 72 20 63 6f  eaks to other co
8fd0: 64 65 20 74 6f 20 6d 61 6b 65 20 69 74 20 72 75  de to make it ru
8fe0: 6e 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65  n a little faste
8ff0: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  r.</li>.<li>Adde
9000: 64 20 6e 65 77 20 74 65 73 74 73 20 66 6f 72 20  d new tests for 
9010: 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65  <b>sqlite_comple
9020: 74 65 28 29 3c 2f 62 3e 20 61 6e 64 20 66 6f 72  te()</b> and for
9030: 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 2e 3c 2f   memory leaks.</
9040: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
9050: 30 20 44 65 63 20 34 20 28 31 2e 30 2e 31 36 29  0 Dec 4 (1.0.16)
9060: 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74  } {.<li>Document
9070: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 20 20  ation updates.  
9080: 4d 6f 73 74 6c 79 20 66 69 78 69 6e 67 20 6f 66  Mostly fixing of
9090: 20 74 79 70 6f 73 20 61 6e 64 20 73 70 65 6c 6c   typos and spell
90a0: 69 6e 67 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e  ing errors.</li>
90b0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f  .}..chng {2000 O
90c0: 63 74 20 32 33 20 28 31 2e 30 2e 31 35 29 7d 20  ct 23 (1.0.15)} 
90d0: 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74  {.<li>Documentat
90e0: 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e  ion updates</li>
90f0: 0a 3c 6c 69 3e 53 6f 6d 65 20 73 61 6e 69 74 79  .<li>Some sanity
9100: 20 63 68 65 63 6b 69 6e 67 20 63 6f 64 65 20 77   checking code w
9110: 61 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20  as removed from 
9120: 74 68 65 20 69 6e 6e 65 72 20 6c 6f 6f 70 20 6f  the inner loop o
9130: 66 20 76 64 62 65 2e 63 0a 20 20 20 20 74 6f 20  f vdbe.c.    to 
9140: 68 65 6c 70 20 74 68 65 20 6c 69 62 72 61 72 79  help the library
9150: 20 74 6f 20 72 75 6e 20 61 20 6c 69 74 74 6c 65   to run a little
9160: 20 66 61 73 74 65 72 2e 20 20 54 68 65 20 63 6f   faster.  The co
9170: 64 65 20 69 73 20 6f 6e 6c 79 0a 20 20 20 20 72  de is only.    r
9180: 65 6d 6f 76 65 64 20 69 66 20 79 6f 75 20 63 6f  emoved if you co
9190: 6d 70 69 6c 65 20 77 69 74 68 20 2d 44 4e 44 45  mpile with -DNDE
91a0: 42 55 47 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  BUG.</li>.}..chn
91b0: 67 20 7b 32 30 30 30 20 4f 63 74 20 31 39 20 28  g {2000 Oct 19 (
91c0: 31 2e 30 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 41  1.0.14)} {.<li>A
91d0: 64 64 65 64 20 61 20 22 6d 65 6d 6f 72 79 3a 22  dded a "memory:"
91e0: 20 62 61 63 6b 65 6e 64 20 64 72 69 76 65 72 20   backend driver 
91f0: 74 68 61 74 20 73 74 6f 72 65 73 20 69 74 73 20  that stores its 
9200: 64 61 74 61 62 61 73 65 20 69 6e 20 61 6e 0a 20  database in an. 
9210: 20 20 20 69 6e 2d 6d 65 6d 6f 72 79 20 68 61 73     in-memory has
9220: 68 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a  h table.</li>.}.
9230: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
9240: 31 38 20 28 31 2e 30 2e 31 33 29 7d 20 7b 0a 3c  18 (1.0.13)} {.<
9250: 6c 69 3e 42 72 65 61 6b 20 6f 75 74 20 74 68 65  li>Break out the
9260: 20 47 44 42 4d 20 64 72 69 76 65 72 20 69 6e 74   GDBM driver int
9270: 6f 20 61 20 73 65 70 61 72 61 74 65 20 66 69 6c  o a separate fil
9280: 65 20 69 6e 20 61 6e 74 69 63 69 70 61 74 69 6f  e in anticipatio
9290: 6e 0a 20 20 20 20 74 6f 20 61 64 64 65 64 20 6e  n.    to added n
92a0: 65 77 20 64 72 69 76 65 72 73 2e 3c 2f 6c 69 3e  ew drivers.</li>
92b0: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68 65 20 6e  .<li>Allow the n
92c0: 61 6d 65 20 6f 66 20 61 20 64 61 74 61 62 61 73  ame of a databas
92d0: 65 20 74 6f 20 62 65 20 70 72 65 66 69 78 65 64  e to be prefixed
92e0: 20 62 79 20 74 68 65 20 64 72 69 76 65 72 20 74   by the driver t
92f0: 79 70 65 2e 0a 20 20 20 20 46 6f 72 20 6e 6f 77  ype..    For now
9300: 2c 20 74 68 65 20 6f 6e 6c 79 20 64 72 69 76 65  , the only drive
9310: 72 20 74 79 70 65 20 69 73 20 22 67 64 62 6d 3a  r type is "gdbm:
9320: 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ".</li>.}..chng 
9330: 7b 32 30 30 30 20 4f 63 74 20 31 36 20 28 31 2e  {2000 Oct 16 (1.
9340: 30 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  0.12)} {.<li>Fix
9350: 65 64 20 61 6e 20 6f 66 66 2d 62 79 2d 6f 6e 65  ed an off-by-one
9360: 20 65 72 72 6f 72 20 74 68 61 74 20 77 61 73 20   error that was 
9370: 63 61 75 73 69 6e 67 20 61 20 63 6f 72 65 64 75  causing a coredu
9380: 6d 70 20 69 6e 20 0a 20 20 20 20 74 68 65 20 27  mp in .    the '
9390: 25 71 27 20 66 6f 72 6d 61 74 20 64 69 72 65 63  %q' format direc
93a0: 74 69 76 65 20 6f 66 20 74 68 65 20 6e 65 77 0a  tive of the new.
93b0: 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e      <b>sqlite_..
93c0: 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20 72  ._printf()</b> r
93d0: 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  outines.</li>.<l
93e0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
93f0: 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28  qlite_interrupt(
9400: 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 2e  )</b> interface.
9410: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65  </li>.<li>In the
9420: 20 73 68 65 6c 6c 2c 20 3c 62 3e 73 71 6c 69 74   shell, <b>sqlit
9430: 65 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f 62  e_interrupt()</b
9440: 3e 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65  > is invoked whe
9450: 6e 20 74 68 65 0a 20 20 20 20 75 73 65 72 20 70  n the.    user p
9460: 72 65 73 73 65 73 20 43 6f 6e 74 72 6f 6c 2d 43  resses Control-C
9470: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20  </li>.<li>Fixed 
9480: 73 6f 6d 65 20 69 6e 73 74 61 6e 63 65 73 20 77  some instances w
9490: 68 65 72 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65  here <b>sqlite_e
94a0: 78 65 63 28 29 3c 2f 62 3e 20 77 61 73 0a 20 20  xec()</b> was.  
94b0: 20 20 72 65 74 75 72 6e 69 6e 67 20 74 68 65 20    returning the 
94c0: 77 72 6f 6e 67 20 65 72 72 6f 72 20 63 6f 64 65  wrong error code
94d0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
94e0: 32 30 30 30 20 4f 63 74 20 31 31 20 28 31 2e 30  2000 Oct 11 (1.0
94f0: 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  .10)} {.<li>Adde
9500: 64 20 6e 6f 74 65 73 20 6f 6e 20 68 6f 77 20 74  d notes on how t
9510: 6f 20 63 6f 6d 70 69 6c 65 20 66 6f 72 20 57 69  o compile for Wi
9520: 6e 64 6f 77 73 39 35 2f 39 38 2e 3c 2f 6c 69 3e  ndows95/98.</li>
9530: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 61 20 66  .<li>Removed a f
9540: 65 77 20 76 61 72 69 61 62 6c 65 73 20 74 68 61  ew variables tha
9550: 74 20 77 65 72 65 20 6e 6f 74 20 62 65 69 6e 67  t were not being
9560: 20 75 73 65 64 2e 20 20 45 74 63 2e 3c 2f 6c 69   used.  Etc.</li
9570: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
9580: 4f 63 74 20 38 20 28 31 2e 30 2e 39 29 7d 20 7b  Oct 8 (1.0.9)} {
9590: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c  .<li>Added the <
95a0: 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69  b>sqlite_..._pri
95b0: 6e 74 66 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66  ntf()</b> interf
95c0: 61 63 65 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c  ace routines.</l
95d0: 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20  i>.<li>Modified 
95e0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
95f0: 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20  > shell program 
9600: 74 6f 20 75 73 65 20 74 68 65 20 6e 65 77 20 69  to use the new i
9610: 6e 74 65 72 66 61 63 65 20 0a 20 20 20 20 72 6f  nterface .    ro
9620: 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  utines.</li>.<li
9630: 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62  >Modified the <b
9640: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c  >sqlite</b> shel
9650: 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20 70 72 69  l program to pri
9660: 6e 74 20 74 68 65 20 73 63 68 65 6d 61 20 66 6f  nt the schema fo
9670: 72 0a 20 20 20 20 74 68 65 20 62 75 69 6c 74 2d  r.    the built-
9680: 69 6e 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52  in SQLITE_MASTER
9690: 20 74 61 62 6c 65 2c 20 69 66 20 65 78 70 6c 69   table, if expli
96a0: 63 69 74 6c 79 20 72 65 71 75 65 73 74 65 64 2e  citly requested.
96b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
96c0: 30 30 30 20 53 65 70 20 33 30 20 28 31 2e 30 2e  000 Sep 30 (1.0.
96d0: 38 29 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20  8)} {.<li>Begin 
96e0: 77 72 69 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74  writing document
96f0: 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 54 43 4c  ation on the TCL
9700: 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e   interface.</li>
9710: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53  .}..chng {2000 S
9720: 65 70 20 32 39 20 28 4e 6f 74 20 52 65 6c 65 61  ep 29 (Not Relea
9730: 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  sed)} {.<li>Adde
9740: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  d the <b>sqlite_
9750: 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20  get_table()</b> 
9760: 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64  API</li>.<li>Upd
9770: 61 74 65 64 20 74 68 65 20 64 6f 63 75 6d 65 6e  ated the documen
9780: 74 61 74 69 6f 6e 20 66 6f 72 20 64 75 65 20 74  tation for due t
9790: 6f 20 74 68 65 20 61 62 6f 76 65 20 63 68 61 6e  o the above chan
97a0: 67 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64  ge.</li>.<li>Mod
97b0: 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  ified the <b>sql
97c0: 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f  ite</b> shell to
97d0: 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 74 68 65   make use of the
97e0: 20 6e 65 77 0a 20 20 20 20 73 71 6c 69 74 65 5f   new.    sqlite_
97f0: 67 65 74 5f 74 61 62 6c 65 28 29 20 41 50 49 20  get_table() API 
9800: 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 69 6e  in order to prin
9810: 74 20 61 20 6c 69 73 74 20 6f 66 20 74 61 62 6c  t a list of tabl
9820: 65 73 0a 20 20 20 20 69 6e 20 6d 75 6c 74 69 70  es.    in multip
9830: 6c 65 20 63 6f 6c 75 6d 6e 73 2c 20 73 69 6d 69  le columns, simi
9840: 6c 61 72 20 74 6f 20 74 68 65 20 77 61 79 20 22  lar to the way "
9850: 6c 73 22 20 70 72 69 6e 74 73 20 66 69 6c 65 6e  ls" prints filen
9860: 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ames.</li>.<li>M
9870: 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73  odified the <b>s
9880: 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20  qlite</b> shell 
9890: 74 6f 20 70 72 69 6e 74 20 61 20 73 65 6d 69 63  to print a semic
98a0: 6f 6c 6f 6e 20 61 74 20 74 68 65 0a 20 20 20 20  olon at the.    
98b0: 65 6e 64 20 6f 66 20 65 61 63 68 20 43 52 45 41  end of each CREA
98c0: 54 45 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 20  TE statement in 
98d0: 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68  the output of th
98e0: 65 20 22 2e 73 63 68 65 6d 61 22 20 63 6f 6d 6d  e ".schema" comm
98f0: 61 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  and.</li>.}..chn
9900: 67 20 7b 32 30 30 30 20 53 65 70 20 32 31 20 28  g {2000 Sep 21 (
9910: 4e 6f 74 20 52 65 6c 65 61 73 65 64 29 7d 20 7b  Not Released)} {
9920: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
9930: 74 63 6c 73 71 6c 69 74 65 20 22 65 76 61 6c 22  tclsqlite "eval"
9940: 20 6d 65 74 68 6f 64 20 74 6f 20 72 65 74 75 72   method to retur
9950: 6e 20 61 20 6c 69 73 74 20 6f 66 20 72 65 73 75  n a list of resu
9960: 6c 74 73 20 69 66 0a 20 20 20 20 6e 6f 20 63 61  lts if.    no ca
9970: 6c 6c 62 61 63 6b 20 73 63 72 69 70 74 20 69 73  llback script is
9980: 20 73 70 65 63 69 66 69 65 64 2e 3c 2f 6c 69 3e   specified.</li>
9990: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 63 6c 73  .<li>Change tcls
99a0: 71 6c 69 74 65 2e 63 20 74 6f 20 75 73 65 20 74  qlite.c to use t
99b0: 68 65 20 54 63 6c 5f 4f 62 6a 20 69 6e 74 65 72  he Tcl_Obj inter
99c0: 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  face</li>.<li>Ad
99d0: 64 20 74 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f  d tclsqlite.c to
99e0: 20 74 68 65 20 6c 69 62 73 71 6c 69 74 65 2e 61   the libsqlite.a
99f0: 20 6c 69 62 72 61 72 79 3c 2f 6c 69 3e 0a 7d 0a   library</li>.}.
9a00: 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20  .chng {2000 Sep 
9a10: 31 33 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e  13 (Version 1.0.
9a20: 35 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65  5)} {.<li>Change
9a30: 64 20 74 68 65 20 70 72 69 6e 74 20 66 6f 72 6d  d the print form
9a40: 61 74 20 66 6f 72 20 66 6c 6f 61 74 69 6e 67 20  at for floating 
9a50: 70 6f 69 6e 74 20 76 61 6c 75 65 73 20 66 72 6f  point values fro
9a60: 6d 20 22 25 67 22 20 74 6f 20 22 25 2e 31 35 67  m "%g" to "%.15g
9a70: 22 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 3c 6c 69  "..    </li>.<li
9a80: 3e 43 68 61 6e 67 65 64 20 74 68 65 20 63 6f 6d  >Changed the com
9a90: 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e  parison function
9aa0: 20 73 6f 20 74 68 61 74 20 6e 75 6d 62 65 72 73   so that numbers
9ab0: 20 69 6e 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20   in exponential 
9ac0: 6e 6f 74 61 74 69 6f 6e 0a 20 20 20 20 28 65 78  notation.    (ex
9ad0: 3a 20 31 2e 32 33 34 65 2b 30 35 29 20 73 6f 72  : 1.234e+05) sor
9ae0: 74 20 69 6e 20 6e 75 6d 65 72 69 63 61 6c 20 6f  t in numerical o
9af0: 72 64 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  rder.</li>.}..ch
9b00: 6e 67 20 7b 32 30 30 30 20 41 75 67 20 32 38 20  ng {2000 Aug 28 
9b10: 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 34 29 7d  (Version 1.0.4)}
9b20: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 66 75 6e   {.<li>Added fun
9b30: 63 74 69 6f 6e 73 20 3c 62 3e 6c 65 6e 67 74 68  ctions <b>length
9b40: 28 29 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 73 75  ()</b> and <b>su
9b50: 62 73 74 72 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e  bstr()</b>.</li>
9b60: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
9b70: 6e 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  n the <b>sqlite<
9b80: 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61  /b> shell progra
9b90: 6d 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69  m that was causi
9ba0: 6e 67 0a 20 20 20 20 61 20 63 6f 72 65 64 75 6d  ng.    a coredum
9bb0: 70 20 77 68 65 6e 20 74 68 65 20 6f 75 74 70 75  p when the outpu
9bc0: 74 20 6d 6f 64 65 20 77 61 73 20 22 63 6f 6c 75  t mode was "colu
9bd0: 6d 6e 22 20 61 6e 64 20 74 68 65 20 66 69 72 73  mn" and the firs
9be0: 74 20 72 6f 77 0a 20 20 20 20 6f 66 20 64 61 74  t row.    of dat
9bf0: 61 20 63 6f 6e 74 61 69 6e 65 64 20 61 20 4e 55  a contained a NU
9c00: 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  LL.</li>.}..chng
9c10: 20 7b 32 30 30 30 20 41 75 67 20 32 32 20 28 56   {2000 Aug 22 (V
9c20: 65 72 73 69 6f 6e 20 31 2e 30 2e 33 29 7d 20 7b  ersion 1.0.3)} {
9c30: 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 71 6c 69  .<li>In the sqli
9c40: 74 65 20 73 68 65 6c 6c 2c 20 70 72 69 6e 74 20  te shell, print 
9c50: 74 68 65 20 22 44 61 74 61 62 61 73 65 20 6f 70  the "Database op
9c60: 65 6e 65 64 20 52 45 41 44 20 4f 4e 4c 59 22 20  ened READ ONLY" 
9c70: 6d 65 73 73 61 67 65 0a 20 20 20 20 74 6f 20 73  message.    to s
9c80: 74 64 65 72 72 20 69 6e 73 74 65 61 64 20 6f 66  tderr instead of
9c90: 20 73 74 64 6f 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c   stdout.</li>.<l
9ca0: 69 3e 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20  i>In the sqlite 
9cb0: 73 68 65 6c 6c 2c 20 6e 6f 77 20 70 72 69 6e 74  shell, now print
9cc0: 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d   the version num
9cd0: 62 65 72 20 6f 6e 20 69 6e 69 74 69 61 6c 20 73  ber on initial s
9ce0: 74 61 72 74 75 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tartup.</li>.<li
9cf0: 3e 41 64 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  >Add the <b>sqli
9d00: 74 65 5f 76 65 72 73 69 6f 6e 5b 5d 3c 2f 62 3e  te_version[]</b>
9d10: 20 73 74 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74   string constant
9d20: 20 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79 3c   to the library<
9d30: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c  /li>.<li>Makefil
9d40: 65 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c  e updates</li>.<
9d50: 6c 69 3e 42 75 67 20 66 69 78 3a 20 69 6e 63 6f  li>Bug fix: inco
9d60: 72 72 65 63 74 20 56 44 42 45 20 63 6f 64 65 20  rrect VDBE code 
9d70: 77 61 73 20 62 65 69 6e 67 20 67 65 6e 65 72 61  was being genera
9d80: 74 65 64 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c  ted for the foll
9d90: 6f 77 69 6e 67 0a 20 20 20 20 63 69 72 63 75 6d  owing.    circum
9da0: 73 74 61 6e 63 65 3a 20 61 20 71 75 65 72 79 20  stance: a query 
9db0: 6f 6e 20 61 6e 20 69 6e 64 65 78 65 64 20 74 61  on an indexed ta
9dc0: 62 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61  ble containing a
9dd0: 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 77 69   WHERE clause wi
9de0: 74 68 0a 20 20 20 20 61 6e 20 49 4e 20 6f 70 65  th.    an IN ope
9df0: 72 61 74 6f 72 20 74 68 61 74 20 68 61 64 20 61  rator that had a
9e00: 20 73 75 62 71 75 65 72 79 20 6f 6e 20 69 74 73   subquery on its
9e10: 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65   right-hand side
9e20: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9e30: 32 30 30 30 20 41 75 67 20 31 38 20 28 56 65 72  2000 Aug 18 (Ver
9e40: 73 69 6f 6e 20 31 2e 30 2e 31 29 7d 20 7b 0a 3c  sion 1.0.1)} {.<
9e50: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
9e60: 74 68 65 20 63 6f 6e 66 69 67 75 72 65 20 73 63  the configure sc
9e70: 72 69 70 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ript.</li>.<li>M
9e80: 69 6e 6f 72 20 72 65 76 69 73 69 6f 6e 73 20 74  inor revisions t
9e90: 6f 20 74 68 65 20 77 65 62 73 69 74 65 2e 3c 2f  o the website.</
9ea0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
9eb0: 30 20 41 75 67 20 31 37 20 28 56 65 72 73 69 6f  0 Aug 17 (Versio
9ec0: 6e 20 31 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68  n 1.0)} {.<li>Ch
9ed0: 61 6e 67 65 20 74 68 65 20 3c 62 3e 73 71 6c 69  ange the <b>sqli
9ee0: 74 65 3c 2f 62 3e 20 70 72 6f 67 72 61 6d 20 73  te</b> program s
9ef0: 6f 20 74 68 61 74 20 69 74 20 63 61 6e 20 72 65  o that it can re
9f00: 61 64 0a 20 20 20 20 64 61 74 61 62 61 73 65 73  ad.    databases
9f10: 20 66 6f 72 20 77 68 69 63 68 20 69 74 20 6c 61   for which it la
9f20: 63 6b 73 20 77 72 69 74 65 20 70 65 72 6d 69 73  cks write permis
9f30: 73 69 6f 6e 2e 20 20 28 49 74 20 75 73 65 64 20  sion.  (It used 
9f40: 74 6f 0a 20 20 20 20 72 65 66 75 73 65 20 61 6c  to.    refuse al
9f50: 6c 20 61 63 63 65 73 73 20 69 66 20 69 74 20 63  l access if it c
9f60: 6f 75 6c 64 20 6e 6f 74 20 77 72 69 74 65 2e 29  ould not write.)
9f70: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
9f80: 30 30 30 20 41 75 67 20 39 7d 20 7b 0a 3c 6c 69  000 Aug 9} {.<li
9f90: 3e 54 72 65 61 74 20 63 61 72 72 69 61 67 65 20  >Treat carriage 
9fa0: 72 65 74 75 72 6e 73 20 61 73 20 77 68 69 74 65  returns as white
9fb0: 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   space.</li>.}..
9fc0: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 38  chng {2000 Aug 8
9fd0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 70 61  } {.<li>Added pa
9fe0: 74 74 65 72 6e 20 6d 61 74 63 68 69 6e 67 20 74  ttern matching t
9ff0: 6f 20 74 68 65 20 22 2e 74 61 62 6c 65 22 20 63  o the ".table" c
a000: 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 22 73  ommand in the "s
a010: 71 6c 69 74 65 22 0a 63 6f 6d 6d 61 6e 64 20 73  qlite".command s
a020: 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  hell.</li>.}..ch
a030: 6e 67 20 7b 32 30 30 30 20 41 75 67 20 34 7d 20  ng {2000 Aug 4} 
a040: 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74  {.<li>Documentat
a050: 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e  ion updates</li>
a060: 0a 3c 6c 69 3e 41 64 64 65 64 20 22 62 75 73 79  .<li>Added "busy
a070: 22 20 61 6e 64 20 22 74 69 6d 65 6f 75 74 22 20  " and "timeout" 
a080: 6d 65 74 68 6f 64 73 20 74 6f 20 74 68 65 20 54  methods to the T
a090: 63 6c 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69  cl interface</li
a0a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
a0b0: 41 75 67 20 33 7d 20 7b 0a 3c 6c 69 3e 46 69 6c  Aug 3} {.<li>Fil
a0c0: 65 20 66 6f 72 6d 61 74 20 76 65 72 73 69 6f 6e  e format version
a0d0: 20 6e 75 6d 62 65 72 20 77 61 73 20 62 65 69 6e   number was bein
a0e0: 67 20 73 74 6f 72 65 64 20 69 6e 20 73 71 6c 69  g stored in sqli
a0f0: 74 65 5f 6d 61 73 74 65 72 2e 74 63 6c 0a 20 20  te_master.tcl.  
a100: 20 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73    multiple times
a110: 2e 20 54 68 69 73 20 77 61 73 20 68 61 72 6d 6c  . This was harml
a120: 65 73 73 2c 20 62 75 74 20 75 6e 6e 65 63 65 73  ess, but unneces
a130: 73 61 72 79 2e 20 49 74 20 69 73 20 6e 6f 77 20  sary. It is now 
a140: 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixed.</li>.}..c
a150: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 32 7d  hng {2000 Aug 2}
a160: 20 7b 0a 3c 6c 69 3e 54 68 65 20 66 69 6c 65 20   {.<li>The file 
a170: 66 6f 72 6d 61 74 20 66 6f 72 20 69 6e 64 69 63  format for indic
a180: 65 73 20 77 61 73 20 63 68 61 6e 67 65 64 20 73  es was changed s
a190: 6c 69 67 68 74 6c 79 20 69 6e 20 6f 72 64 65 72  lightly in order
a1a0: 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20 61 72 6f   to work.    aro
a1b0: 75 6e 64 20 61 6e 20 69 6e 65 66 66 69 63 69 65  und an inefficie
a1c0: 6e 63 79 20 74 68 61 74 20 63 61 6e 20 73 6f 6d  ncy that can som
a1d0: 65 74 69 6d 65 73 20 63 6f 6d 65 20 75 70 20 77  etimes come up w
a1e0: 69 74 68 20 47 44 42 4d 20 77 68 65 6e 0a 20 20  ith GDBM when.  
a1f0: 20 20 74 68 65 72 65 20 61 72 65 20 6c 61 72 67    there are larg
a200: 65 20 69 6e 64 69 63 65 73 20 68 61 76 69 6e 67  e indices having
a210: 20 6d 61 6e 79 20 65 6e 74 72 69 65 73 20 77 69   many entries wi
a220: 74 68 20 74 68 65 20 73 61 6d 65 20 6b 65 79 2e  th the same key.
a230: 0a 20 20 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72  .    <font color
a240: 3d 22 72 65 64 22 3e 2a 2a 20 49 6e 63 6f 6d 70  ="red">** Incomp
a250: 61 74 69 62 6c 65 20 43 68 61 6e 67 65 20 2a 2a  atible Change **
a260: 3c 2f 66 6f 6e 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a  </font></li>.}..
a270: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31  chng {2000 Aug 1
a280: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73  } {.<li>The pars
a290: 65 72 27 73 20 73 74 61 63 6b 20 77 61 73 20 6f  er's stack was o
a2a0: 76 65 72 66 6c 6f 77 69 6e 67 20 6f 6e 20 61 20  verflowing on a 
a2b0: 76 65 72 79 20 6c 6f 6e 67 20 55 50 44 41 54 45  very long UPDATE
a2c0: 20 73 74 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20   statement..    
a2d0: 54 68 69 73 20 69 73 20 6e 6f 77 20 66 69 78 65  This is now fixe
a2e0: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
a2f0: 7b 32 30 30 30 20 4a 75 6c 79 20 33 31 7d 20 7b  {2000 July 31} {
a300: 0a 3c 6c 69 3e 46 69 6e 69 73 68 20 74 68 65 20  .<li>Finish the 
a310: 3c 61 20 68 72 65 66 3d 22 76 64 62 65 2e 68 74  <a href="vdbe.ht
a320: 6d 6c 22 3e 56 44 42 45 20 74 75 74 6f 72 69 61  ml">VDBE tutoria
a330: 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  l</a>.</li>.<li>
a340: 41 64 64 65 64 20 64 6f 63 75 6d 65 6e 74 61 74  Added documentat
a350: 69 6f 6e 20 6f 6e 20 63 6f 6d 70 69 6c 69 6e 67  ion on compiling
a360: 20 74 6f 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f   to WindowsNT.</
a370: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f  li>.<li>Fix a co
a380: 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 67  nfiguration prog
a390: 72 61 6d 20 66 6f 72 20 57 69 6e 64 6f 77 73 4e  ram for WindowsN
a3a0: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  T.</li>.<li>Fix 
a3b0: 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20  a configuration 
a3c0: 70 72 6f 62 6c 65 6d 20 66 6f 72 20 48 50 55 58  problem for HPUX
a3d0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
a3e0: 32 30 30 30 20 4a 75 6c 79 20 32 39 7d 20 7b 0a  2000 July 29} {.
a3f0: 3c 6c 69 3e 42 65 74 74 65 72 20 6c 61 62 65 6c  <li>Better label
a400: 73 20 6f 6e 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65  s on column name
a410: 73 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 2e  s of the result.
a420: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a430: 30 30 30 20 4a 75 6c 79 20 32 38 7d 20 7b 0a 3c  000 July 28} {.<
a440: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e  li>Added the <b>
a450: 73 71 6c 69 74 65 5f 62 75 73 79 5f 68 61 6e 64  sqlite_busy_hand
a460: 6c 65 72 28 29 3c 2f 62 3e 20 0a 20 20 20 20 61  ler()</b> .    a
a470: 6e 64 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73  nd <b>sqlite_bus
a480: 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20  y_timeout()</b> 
a490: 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a  interface.</li>.
a4a0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
a4b0: 6e 65 20 32 33 7d 20 7b 0a 3c 6c 69 3e 42 65 67  ne 23} {.<li>Beg
a4c0: 69 6e 20 77 72 69 74 69 6e 67 20 74 68 65 20 3c  in writing the <
a4d0: 61 20 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d  a href="vdbe.htm
a4e0: 6c 22 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c  l">VDBE tutorial
a4f0: 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  </a>.</li>.}..ch
a500: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 32 31  ng {2000 June 21
a510: 7d 20 7b 0a 3c 6c 69 3e 43 6c 65 61 6e 20 75 70  } {.<li>Clean up
a520: 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 76 61   comments and va
a530: 72 69 61 62 6c 65 20 6e 61 6d 65 73 2e 20 20 43  riable names.  C
a540: 68 61 6e 67 65 73 20 74 6f 20 64 6f 63 75 6d 65  hanges to docume
a550: 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20 4e 6f 20  ntation..    No 
a560: 66 75 6e 63 74 69 6f 6e 61 6c 20 63 68 61 6e 67  functional chang
a570: 65 73 20 74 6f 20 74 68 65 20 63 6f 64 65 2e 3c  es to the code.<
a580: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
a590: 30 30 20 4a 75 6e 65 20 31 39 7d 20 7b 0a 3c 6c  00 June 19} {.<l
a5a0: 69 3e 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69  i>Column names i
a5b0: 6e 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65  n UPDATE stateme
a5c0: 6e 74 73 20 77 65 72 65 20 63 61 73 65 20 73 65  nts were case se
a5d0: 6e 73 69 74 69 76 65 2e 0a 20 20 20 20 54 68 69  nsitive..    Thi
a5e0: 73 20 6d 69 73 74 61 6b 65 20 68 61 73 20 6e 6f  s mistake has no
a5f0: 77 20 62 65 65 6e 20 66 69 78 65 64 2e 3c 2f 6c  w been fixed.</l
a600: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
a610: 20 4a 75 6e 65 20 31 36 7d 20 7b 0a 3c 6c 69 3e   June 16} {.<li>
a620: 41 64 64 65 64 20 74 68 65 20 63 6f 6e 63 61 74  Added the concat
a630: 65 6e 61 74 65 20 73 74 72 69 6e 67 20 6f 70 65  enate string ope
a640: 72 61 74 6f 72 20 28 7c 7c 29 3c 2f 6c 69 3e 0a  rator (||)</li>.
a650: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
a660: 6e 65 20 31 32 7d 20 7b 0a 3c 6c 69 3e 41 64 64  ne 12} {.<li>Add
a670: 65 64 20 74 68 65 20 66 63 6e 74 28 29 20 66 75  ed the fcnt() fu
a680: 6e 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 53 51  nction to the SQ
a690: 4c 20 69 6e 74 65 72 70 72 65 74 65 72 2e 20 20  L interpreter.  
a6a0: 54 68 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74  The fcnt() funct
a6b0: 69 6f 6e 0a 20 20 20 20 72 65 74 75 72 6e 73 20  ion.    returns 
a6c0: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61  the number of da
a6d0: 74 61 62 61 73 65 20 22 46 65 74 63 68 22 20 6f  tabase "Fetch" o
a6e0: 70 65 72 61 74 69 6f 6e 73 20 74 68 61 74 20 68  perations that h
a6f0: 61 76 65 20 6f 63 63 75 72 72 65 64 2e 0a 20 20  ave occurred..  
a700: 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20    This function 
a710: 69 73 20 64 65 73 69 67 6e 65 64 20 66 6f 72 20  is designed for 
a720: 75 73 65 20 69 6e 20 74 65 73 74 20 73 63 72 69  use in test scri
a730: 70 74 73 20 74 6f 20 76 65 72 69 66 79 20 74 68  pts to verify th
a740: 61 74 0a 20 20 20 20 71 75 65 72 69 65 73 20 61  at.    queries a
a750: 72 65 20 65 66 66 69 63 69 65 6e 74 20 61 6e 64  re efficient and
a760: 20 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 6f   appropriately o
a770: 70 74 69 6d 69 7a 65 64 2e 20 20 46 63 6e 74 28  ptimized.  Fcnt(
a780: 29 20 68 61 73 20 6e 6f 20 6f 74 68 65 72 0a 20  ) has no other. 
a790: 20 20 20 75 73 65 66 75 6c 20 70 75 72 70 6f 73     useful purpos
a7a0: 65 2c 20 61 73 20 66 61 72 20 61 73 20 49 20 6b  e, as far as I k
a7b0: 6e 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  now.</li>.<li>Ad
a7c0: 64 65 64 20 61 20 62 75 6e 63 68 20 6d 6f 72 65  ded a bunch more
a7d0: 20 74 65 73 74 73 20 74 68 61 74 20 74 61 6b 65   tests that take
a7e0: 20 61 64 76 61 6e 74 61 67 65 20 6f 66 20 74 68   advantage of th
a7f0: 65 20 6e 65 77 20 66 63 6e 74 28 29 20 66 75 6e  e new fcnt() fun
a800: 63 74 69 6f 6e 2e 0a 20 20 20 20 54 68 65 20 6e  ction..    The n
a810: 65 77 20 74 65 73 74 73 20 64 69 64 20 6e 6f 74  ew tests did not
a820: 20 75 6e 63 6f 76 65 72 20 61 6e 79 20 6e 65 77   uncover any new
a830: 20 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a   problems.</li>.
a840: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
a850: 6e 65 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  ne 8} {.<li>Adde
a860: 64 20 6c 6f 74 73 20 6f 66 20 6e 65 77 20 74 65  d lots of new te
a870: 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c  st cases</li>.<l
a880: 69 3e 46 69 78 20 61 20 66 65 77 20 62 75 67 73  i>Fix a few bugs
a890: 20 64 69 73 63 6f 76 65 72 65 64 20 77 68 69 6c   discovered whil
a8a0: 65 20 61 64 64 69 6e 67 20 74 65 73 74 20 63 61  e adding test ca
a8b0: 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 67  ses</li>.<li>Beg
a8c0: 69 6e 20 61 64 64 69 6e 67 20 6c 6f 74 73 20 6f  in adding lots o
a8d0: 66 20 6e 65 77 20 64 6f 63 75 6d 65 6e 74 61 74  f new documentat
a8e0: 69 6f 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ion</li>.}..chng
a8f0: 20 7b 32 30 30 30 20 4a 75 6e 65 20 36 7d 20 7b   {2000 June 6} {
a900: 0a 3c 6c 69 3e 41 64 64 65 64 20 63 6f 6d 70 6f  .<li>Added compo
a910: 75 6e 64 20 73 65 6c 65 63 74 20 6f 70 65 72 61  und select opera
a920: 74 6f 72 73 3a 20 3c 42 3e 55 4e 49 4f 4e 3c 2f  tors: <B>UNION</
a930: 62 3e 2c 20 3c 62 3e 55 4e 49 4f 4e 20 41 4c 4c  b>, <b>UNION ALL
a940: 3c 2f 42 3e 2c 0a 3c 62 3e 49 4e 54 45 52 53 45  </B>,.<b>INTERSE
a950: 43 54 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 45  CT</b>, and <b>E
a960: 58 43 45 50 54 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c  XCEPT</b></li>.<
a970: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
a980: 20 66 6f 72 20 75 73 69 6e 67 20 3c 62 3e 28 53   for using <b>(S
a990: 45 4c 45 43 54 20 2e 2e 2e 29 3c 2f 62 3e 20 77  ELECT ...)</b> w
a9a0: 69 74 68 69 6e 20 65 78 70 72 65 73 73 69 6f 6e  ithin expression
a9b0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
a9c0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e   support for <b>
a9d0: 49 4e 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 42 45  IN</b> and <b>BE
a9e0: 54 57 45 45 4e 3c 2f 62 3e 20 6f 70 65 72 61 74  TWEEN</b> operat
a9f0: 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ors</li>.<li>Add
aa00: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c  ed support for <
aa10: 62 3e 47 52 4f 55 50 20 42 59 3c 2f 62 3e 20 61  b>GROUP BY</b> a
aa20: 6e 64 20 3c 62 3e 48 41 56 49 4e 47 3c 2f 62 3e  nd <b>HAVING</b>
aa30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 55 4c 4c 20 76  </li>.<li>NULL v
aa40: 61 6c 75 65 73 20 61 72 65 20 6e 6f 77 20 72 65  alues are now re
aa50: 70 6f 72 74 65 64 20 74 6f 20 74 68 65 20 63 61  ported to the ca
aa60: 6c 6c 62 61 63 6b 20 61 73 20 61 20 4e 55 4c 4c  llback as a NULL
aa70: 20 70 6f 69 6e 74 65 72 0a 20 20 20 20 72 61 74   pointer.    rat
aa80: 68 65 72 20 74 68 61 6e 20 61 6e 20 65 6d 70 74  her than an empt
aa90: 79 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d  y string.</li>.}
aaa0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
aab0: 65 20 33 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  e 3} {.<li>Added
aac0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 64 65 66   support for def
aad0: 61 75 6c 74 20 76 61 6c 75 65 73 20 6f 6e 20 63  ault values on c
aae0: 6f 6c 75 6d 6e 73 20 6f 66 20 61 20 74 61 62 6c  olumns of a tabl
aaf0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72  e.</li>.<li>Impr
ab00: 6f 76 65 64 20 74 65 73 74 20 63 6f 76 65 72 61  oved test covera
ab10: 67 65 2e 20 20 46 69 78 65 64 20 61 20 66 65 77  ge.  Fixed a few
ab20: 20 6f 62 73 63 75 72 65 20 62 75 67 73 20 66 6f   obscure bugs fo
ab30: 75 6e 64 20 62 79 20 74 68 65 0a 69 6d 70 72 6f  und by the.impro
ab40: 76 65 64 20 74 65 73 74 73 2e 3c 2f 6c 69 3e 0a  ved tests.</li>.
ab50: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
ab60: 6e 65 20 32 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 20  ne 2} {.<li>All 
ab70: 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 74  database files t
ab80: 6f 20 62 65 20 6d 6f 64 69 66 69 65 64 20 62 79  o be modified by
ab90: 20 61 6e 20 55 50 44 41 54 45 2c 20 49 4e 53 45   an UPDATE, INSE
aba0: 52 54 20 6f 72 20 44 45 4c 45 54 45 20 61 72 65  RT or DELETE are
abb0: 20 0a 6e 6f 77 20 6c 6f 63 6b 65 64 20 62 65 66   .now locked bef
abc0: 6f 72 65 20 61 6e 79 20 63 68 61 6e 67 65 73 20  ore any changes 
abd0: 61 72 65 20 6d 61 64 65 20 74 6f 20 61 6e 79 20  are made to any 
abe0: 66 69 6c 65 73 2e 20 20 0a 54 68 69 73 20 6d 61  files.  .This ma
abf0: 6b 65 73 20 69 74 20 73 61 66 65 20 28 49 20 74  kes it safe (I t
ac00: 68 69 6e 6b 29 20 74 6f 20 61 63 63 65 73 73 0a  hink) to access.
ac10: 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73  the same databas
ac20: 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79  e simultaneously
ac30: 20 66 72 6f 6d 20 6d 75 6c 74 69 70 6c 65 20 70   from multiple p
ac40: 72 6f 63 65 73 73 65 73 2e 3c 2f 6c 69 3e 0a 3c  rocesses.</li>.<
ac50: 6c 69 3e 54 68 65 20 63 6f 64 65 20 61 70 70 65  li>The code appe
ac60: 61 72 73 20 73 74 61 62 6c 65 20 73 6f 20 77 65  ars stable so we
ac70: 20 61 72 65 20 6e 6f 77 20 63 61 6c 6c 69 6e 67   are now calling
ac80: 20 69 74 20 22 62 65 74 61 22 2e 3c 2f 6c 69 3e   it "beta".</li>
ac90: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
aca0: 75 6e 65 20 31 7d 20 7b 0a 3c 6c 69 3e 42 65 74  une 1} {.<li>Bet
acb0: 74 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ter support for 
acc0: 66 69 6c 65 20 6c 6f 63 6b 69 6e 67 20 73 6f 20  file locking so 
acd0: 74 68 61 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65  that two or more
ace0: 20 70 72 6f 63 65 73 73 65 73 20 0a 28 6f 72 20   processes .(or 
acf0: 74 68 72 65 61 64 73 29 0a 63 61 6e 20 61 63 63  threads).can acc
ad00: 65 73 73 20 74 68 65 20 73 61 6d 65 20 64 61 74  ess the same dat
ad10: 61 62 61 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f  abase simultaneo
ad20: 75 73 6c 79 2e 20 20 4d 6f 72 65 20 77 6f 72 6b  usly.  More work
ad30: 20 6e 65 65 64 65 64 20 69 6e 0a 74 68 69 73 20   needed in.this 
ad40: 61 72 65 61 2c 20 74 68 6f 75 67 68 2e 3c 2f 6c  area, though.</l
ad50: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
ad60: 20 4d 61 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 41   May 31} {.<li>A
ad70: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
ad80: 20 61 67 67 72 65 67 61 74 65 20 66 75 6e 63 74   aggregate funct
ad90: 69 6f 6e 73 20 28 45 78 3a 20 3c 62 3e 43 4f 55  ions (Ex: <b>COU
ada0: 4e 54 28 2a 29 3c 2f 62 3e 2c 20 3c 62 3e 4d 49  NT(*)</b>, <b>MI
adb0: 4e 28 2e 2e 2e 29 3c 2f 62 3e 29 0a 74 6f 20 74  N(...)</b>).to t
adc0: 68 65 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d  he SELECT statem
add0: 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ent.</li>.<li>Ad
ade0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
adf0: 3c 42 3e 53 45 4c 45 43 54 20 44 49 53 54 49 4e  <B>SELECT DISTIN
ae00: 43 54 20 2e 2e 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a  CT ...</B></li>.
ae10: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61  }..chng {2000 Ma
ae20: 79 20 33 30 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  y 30} {.<li>Adde
ae30: 64 20 74 68 65 20 3c 62 3e 4c 49 4b 45 3c 2f 62  d the <b>LIKE</b
ae40: 3e 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e  > operator.</li>
ae50: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c 62 3e  .<li>Added a <b>
ae60: 47 4c 4f 42 3c 2f 62 3e 20 6f 70 65 72 61 74 6f  GLOB</b> operato
ae70: 72 3a 20 73 69 6d 69 6c 61 72 20 74 6f 20 3c 42  r: similar to <B
ae80: 3e 4c 49 4b 45 3c 2f 42 3e 20 0a 62 75 74 20 69  >LIKE</B> .but i
ae90: 74 20 75 73 65 73 20 55 6e 69 78 20 73 68 65 6c  t uses Unix shel
aea0: 6c 20 67 6c 6f 62 62 69 6e 67 20 77 69 6c 64 63  l globbing wildc
aeb0: 61 72 64 73 20 69 6e 73 74 65 61 64 20 6f 66 20  ards instead of 
aec0: 74 68 65 20 27 25 27 20 0a 61 6e 64 20 27 5f 27  the '%' .and '_'
aed0: 20 77 69 6c 64 63 61 72 64 73 20 6f 66 20 53 51   wildcards of SQ
aee0: 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  L.</li>.<li>Adde
aef0: 64 20 74 68 65 20 3c 42 3e 43 4f 50 59 3c 2f 62  d the <B>COPY</b
af00: 3e 20 63 6f 6d 6d 61 6e 64 20 70 61 74 74 65 72  > command patter
af10: 6e 65 64 20 61 66 74 65 72 20 0a 3c 61 20 68 72  ned after .<a hr
af20: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 70  ef="http://www.p
af30: 6f 73 74 67 72 65 73 71 6c 2e 6f 72 67 2f 22 3e  ostgresql.org/">
af40: 50 6f 73 74 67 72 65 53 51 4c 3c 2f 61 3e 20 73  PostgreSQL</a> s
af50: 6f 20 74 68 61 74 20 53 51 4c 69 74 65 0a 63 61  o that SQLite.ca
af60: 6e 20 6e 6f 77 20 72 65 61 64 20 74 68 65 20 6f  n now read the o
af70: 75 74 70 75 74 20 6f 66 20 74 68 65 20 3c 62 3e  utput of the <b>
af80: 70 67 5f 64 75 6d 70 3c 2f 62 3e 20 64 61 74 61  pg_dump</b> data
af90: 62 61 73 65 20 64 75 6d 70 20 75 74 69 6c 69 74  base dump utilit
afa0: 79 0a 6f 66 20 50 6f 73 74 67 72 65 53 51 4c 2e  y.of PostgreSQL.
afb0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
afc0: 61 20 3c 42 3e 56 41 43 55 55 4d 3c 2f 42 3e 20  a <B>VACUUM</B> 
afd0: 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 74 68 61  command that tha
afe0: 74 20 63 61 6c 6c 73 20 74 68 65 20 0a 3c 62 3e  t calls the .<b>
aff0: 67 64 62 6d 5f 72 65 6f 72 67 61 6e 69 7a 65 28  gdbm_reorganize(
b000: 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6f  )</b> function o
b010: 6e 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67  n the underlying
b020: 20 64 61 74 61 62 61 73 65 0a 66 69 6c 65 73 2e   database.files.
b030: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 64 20 6d 61  </li>.<li>And ma
b040: 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20 66 69 78  ny, many bug fix
b050: 65 73 2e 2e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  es...</li>.}..ch
b060: 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 32 39 7d  ng {2000 May 29}
b070: 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 50   {.<li>Initial P
b080: 75 62 6c 69 63 20 52 65 6c 65 61 73 65 20 6f 66  ublic Release of
b090: 20 41 6c 70 68 61 20 63 6f 64 65 3c 2f 6c 69 3e   Alpha code</li>
b0a0: 0a 7d 0a 0a 70 75 74 73 20 7b 0a 3c 2f 44 4c 3e  .}..puts {.</DL>
b0b0: 0a 7d 0a 66 6f 6f 74 65 72 20 7b 24 49 64 3a 7d  .}.footer {$Id:}
b0c0: 0a                                               .