/ Hex Artifact Content
Login

Artifact 06e23e1286bee6753d405047f0ccb5c2ba8ca555:


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 69 66 20 7b 5b 72 65 67  sc} {.  if {[reg
0180: 65 78 70 20 7b 5c 28 28 5b 30 2d 39 2e 5d 2b 29  exp {\(([0-9.]+)
0190: 5c 29 7d 20 24 64 61 74 65 20 61 6c 6c 20 76 65  \)} $date all ve
01a0: 72 73 5d 7d 20 7b 0a 20 20 20 20 73 65 74 20 6c  rs]} {.    set l
01b0: 61 62 65 6c 20 5b 73 74 72 69 6e 67 20 6d 61 70  abel [string map
01c0: 20 7b 2e 20 5f 7d 20 24 76 65 72 73 5d 0a 20 20   {. _} $vers].  
01d0: 20 20 70 75 74 73 20 22 3c 41 20 4e 41 4d 45 3d    puts "<A NAME=
01e0: 5c 22 76 65 72 73 69 6f 6e 5f 24 6c 61 62 65 6c  \"version_$label
01f0: 5c 22 3e 22 0a 20 20 7d 0a 20 20 70 75 74 73 20  \">".  }.  puts 
0200: 22 3c 44 54 3e 3c 42 3e 24 64 61 74 65 3c 2f 42  "<DT><B>$date</B
0210: 3e 3c 2f 44 54 3e 22 0a 20 20 70 75 74 73 20 22  ></DT>".  puts "
0220: 3c 44 44 3e 3c 50 3e 3c 55 4c 3e 24 64 65 73 63  <DD><P><UL>$desc
0230: 3c 2f 55 4c 3e 3c 2f 50 3e 3c 2f 44 44 3e 22 0a  </UL></P></DD>".
0240: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20 46 65  }..chng {2006 Fe
0250: 62 72 75 61 72 79 20 31 31 20 28 33 2e 33 2e 34  bruary 11 (3.3.4
0260: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
0270: 6c 75 6e 64 65 72 20 69 6e 20 74 68 65 20 55 6e  lunder in the Un
0280: 69 78 20 6d 75 74 65 78 20 69 6d 70 6c 65 6d 65  ix mutex impleme
0290: 6e 74 61 74 69 6f 6e 20 74 68 61 74 20 63 61 6e  ntation that can
02a0: 20 6c 65 61 64 20 74 6f 0a 64 65 61 64 6c 6f 63   lead to.deadloc
02b0: 6b 20 6f 6e 20 6d 75 6c 74 69 74 68 72 65 61 64  k on multithread
02c0: 65 64 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e  ed systems.</li>
02d0: 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 61 6c 69 67  .<li>Fix an alig
02e0: 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 20 6f 6e  nment problem on
02f0: 20 36 34 2d 62 69 74 20 6d 61 63 68 69 6e 65 73   64-bit machines
0300: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
0310: 74 68 65 20 66 75 6c 6c 66 73 79 6e 63 20 70 72  the fullfsync pr
0320: 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  agma.</li>.<li>F
0330: 69 78 20 61 6e 20 6f 70 74 69 6d 69 7a 65 72 20  ix an optimizer 
0340: 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20 68  bug that could h
0350: 61 76 65 20 63 61 75 73 65 64 20 73 6f 6d 65 20  ave caused some 
0360: 75 6e 75 73 75 61 6c 20 4c 45 46 54 20 4f 55 54  unusual LEFT OUT
0370: 45 52 20 4a 4f 49 4e 73 0a 74 6f 20 67 69 76 65  ER JOINs.to give
0380: 20 69 6e 63 6f 72 72 65 63 74 20 72 65 73 75 6c   incorrect resul
0390: 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ts.</li>.<li>The
03a0: 20 53 55 4d 20 66 75 6e 63 74 69 6f 6e 20 64 65   SUM function de
03b0: 74 65 63 74 73 20 69 6e 74 65 67 65 72 20 6f 76  tects integer ov
03c0: 65 72 66 6c 6f 77 20 61 6e 64 20 63 6f 6e 76 65  erflow and conve
03d0: 72 74 73 20 74 6f 20 61 63 63 75 6d 75 6c 61 74  rts to accumulat
03e0: 69 6e 67 0a 61 6e 20 61 70 70 72 6f 78 69 6d 61  ing.an approxima
03f0: 74 65 20 72 65 73 75 6c 74 20 75 73 69 6e 67 20  te result using 
0400: 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e  floating point n
0410: 75 6d 62 65 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  umbers</li>.<li>
0420: 48 6f 73 74 20 70 61 72 61 6d 65 74 65 72 20 6e  Host parameter n
0430: 61 6d 65 73 20 63 61 6e 20 62 65 67 69 6e 20 77  ames can begin w
0440: 69 74 68 20 27 40 27 20 66 6f 72 20 63 6f 6d 70  ith '@' for comp
0450: 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 53  atibility with S
0460: 51 4c 20 53 65 72 76 65 72 2e 0a 3c 2f 6c 69 3e  QL Server..</li>
0470: 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 73 63 65  .<li>Other misce
0480: 6c 6c 61 6e 65 6f 75 73 20 62 75 67 20 66 69 78  llaneous bug fix
0490: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
04a0: 7b 32 30 30 36 20 4a 61 6e 75 61 72 79 20 33 31  {2006 January 31
04b0: 20 28 33 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (3.3.3)} {.<li>
04c0: 52 65 6d 6f 76 65 64 20 73 75 70 70 6f 72 74 20  Removed support 
04d0: 66 6f 72 20 61 6e 20 4f 4e 20 43 4f 4e 46 4c 49  for an ON CONFLI
04e0: 43 54 20 63 6c 61 75 73 65 20 6f 6e 20 43 52 45  CT clause on CRE
04f0: 41 54 45 20 49 4e 44 45 58 20 2d 20 69 74 20 6e  ATE INDEX - it n
0500: 65 76 65 72 0a 77 6f 72 6b 65 64 20 63 6f 72 72  ever.worked corr
0510: 65 63 74 6c 79 20 73 6f 20 74 68 69 73 20 73 68  ectly so this sh
0520: 6f 75 6c 64 20 6e 6f 74 20 70 72 65 73 65 6e 74  ould not present
0530: 20 61 6e 79 20 62 61 63 6b 77 61 72 64 20 63 6f   any backward co
0540: 6d 70 61 74 69 62 69 6c 69 74 79 0a 70 72 6f 62  mpatibility.prob
0550: 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  lems.</li>.<li>A
0560: 75 74 68 6f 72 69 7a 65 72 20 63 61 6c 6c 62 61  uthorizer callba
0570: 63 6b 20 6e 6f 77 20 6e 6f 74 69 66 69 65 64 20  ck now notified 
0580: 6f 66 20 41 4c 54 45 52 20 54 41 42 4c 45 20 41  of ALTER TABLE A
0590: 44 44 20 43 4f 4c 55 4d 4e 20 63 6f 6d 6d 61 6e  DD COLUMN comman
05a0: 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 66 74 65  ds</li>.<li>Afte
05b0: 72 20 61 6e 79 20 63 68 61 6e 67 65 73 20 74 6f  r any changes to
05c0: 20 74 68 65 20 54 45 4d 50 20 64 61 74 61 62 61   the TEMP databa
05d0: 73 65 20 73 63 68 65 6d 61 2c 20 61 6c 6c 20 70  se schema, all p
05e0: 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65 6e  repared statemen
05f0: 74 73 0a 61 72 65 20 69 6e 76 61 6c 69 64 61 74  ts.are invalidat
0600: 65 64 20 61 6e 64 20 6d 75 73 74 20 62 65 20 72  ed and must be r
0610: 65 63 72 65 61 74 65 64 20 75 73 69 6e 67 20 61  ecreated using a
0620: 20 6e 65 77 20 63 61 6c 6c 20 74 6f 0a 73 71 6c   new call to.sql
0630: 69 74 65 33 5f 70 72 65 70 61 72 65 28 29 3c 2f  ite3_prepare()</
0640: 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69  li>.<li>Other mi
0650: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 69 6e  nor bug fixes in
0660: 20 70 72 65 70 61 72 61 74 69 6f 6e 20 66 6f 72   preparation for
0670: 20 74 68 65 20 66 69 72 73 74 20 73 74 61 62 6c   the first stabl
0680: 65 20 72 65 6c 65 61 73 65 0a 6f 66 20 76 65 72  e release.of ver
0690: 73 69 6f 6e 20 33 2e 33 3c 2f 6c 69 3e 0a 7d 0a  sion 3.3</li>.}.
06a0: 0a 63 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75  .chng {2006 Janu
06b0: 61 72 79 20 32 34 20 28 33 2e 33 2e 32 20 62 65  ary 24 (3.3.2 be
06c0: 74 61 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  ta)} {.<li>Bug f
06d0: 69 78 65 73 20 61 6e 64 20 73 70 65 65 64 20 69  ixes and speed i
06e0: 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 20 20 49 6d  mprovements.  Im
06f0: 70 72 6f 76 65 64 20 74 65 73 74 20 63 6f 76 65  proved test cove
0700: 72 61 67 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  rage.</li>.<li>C
0710: 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 4f 53  hanges to the OS
0720: 2d 6c 61 79 65 72 20 69 6e 74 65 72 66 61 63 65  -layer interface
0730: 3a 20 6d 75 74 65 78 65 73 20 6d 75 73 74 20 6e  : mutexes must n
0740: 6f 77 20 62 65 20 72 65 63 75 72 73 69 76 65 2e  ow be recursive.
0750: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 69 73 63 6f 6e  </li>.<li>Discon
0760: 74 69 6e 75 65 20 74 68 65 20 75 73 65 20 6f 66  tinue the use of
0770: 20 74 68 72 65 61 64 2d 73 70 65 63 69 66 69 63   thread-specific
0780: 20 64 61 74 61 20 66 6f 72 20 6f 75 74 2d 6f 66   data for out-of
0790: 2d 6d 65 6d 6f 72 79 0a 65 78 63 65 70 74 69 6f  -memory.exceptio
07a0: 6e 20 68 61 6e 64 6c 69 6e 67 3c 2f 6c 69 3e 0a  n handling</li>.
07b0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20 4a 61  }..chng {2006 Ja
07c0: 6e 75 61 72 79 20 31 36 20 28 33 2e 33 2e 31 20  nuary 16 (3.3.1 
07d0: 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e 43 6f  alpha)} {.<li>Co
07e0: 75 6e 74 6c 65 73 73 20 62 75 67 20 66 69 78 65  untless bug fixe
07f0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64  s</li>.<li>Speed
0800: 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 3c 2f 6c   improvements</l
0810: 69 3e 0a 3c 6c 69 3e 44 61 74 61 62 61 73 65 20  i>.<li>Database 
0820: 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 63 61 6e 20  connections can 
0830: 6e 6f 77 20 62 65 20 75 73 65 64 20 62 79 20 6d  now be used by m
0840: 75 6c 74 69 70 6c 65 20 74 68 72 65 61 64 73 2c  ultiple threads,
0850: 20 6e 6f 74 20 6a 75 73 74 0a 74 68 65 20 74 68   not just.the th
0860: 72 65 61 64 20 69 6e 20 77 68 69 63 68 20 74 68  read in which th
0870: 65 79 20 77 65 72 65 20 63 72 65 61 74 65 64 2e  ey were created.
0880: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0890: 30 30 36 20 4a 61 6e 75 61 72 79 20 31 30 20 28  006 January 10 (
08a0: 33 2e 33 2e 30 20 61 6c 70 68 61 29 7d 20 7b 0a  3.3.0 alpha)} {.
08b0: 3c 6c 69 3e 43 48 45 43 4b 20 63 6f 6e 73 74 72  <li>CHECK constr
08c0: 61 69 6e 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  aints</li>.<li>I
08d0: 46 20 45 58 49 53 54 53 20 61 6e 64 20 49 46 20  F EXISTS and IF 
08e0: 4e 4f 54 20 45 58 49 53 54 53 20 63 6c 61 75 73  NOT EXISTS claus
08f0: 65 73 20 6f 6e 20 43 52 45 41 54 45 2f 44 52 4f  es on CREATE/DRO
0900: 50 20 54 41 42 4c 45 2f 49 4e 44 45 58 2e 3c 2f  P TABLE/INDEX.</
0910: 6c 69 3e 0a 3c 6c 69 3e 44 45 53 43 20 69 6e 64  li>.<li>DESC ind
0920: 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  ices</li>.<li>Mo
0930: 72 65 20 65 66 66 69 63 69 65 6e 74 20 65 6e 63  re efficient enc
0940: 6f 64 69 6e 67 20 6f 66 20 62 6f 6f 6c 65 61 6e  oding of boolean
0950: 20 76 61 6c 75 65 73 20 72 65 73 75 6c 74 69 6e   values resultin
0960: 67 20 69 6e 20 73 6d 61 6c 6c 65 72 20 64 61 74  g in smaller dat
0970: 61 62 61 73 65 0a 66 69 6c 65 73 3c 2f 6c 69 3e  abase.files</li>
0980: 0a 3c 6c 69 3e 4d 6f 72 65 20 61 67 67 72 65 73  .<li>More aggres
0990: 73 69 76 65 20 53 51 4c 49 54 45 5f 4f 4d 49 54  sive SQLITE_OMIT
09a0: 5f 46 4c 4f 41 54 49 4e 47 5f 50 4f 49 4e 54 3c  _FLOATING_POINT<
09b0: 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 70 61 72 61 74  /li>.<li>Separat
09c0: 65 20 49 4e 54 45 47 45 52 20 61 6e 64 20 52 45  e INTEGER and RE
09d0: 41 4c 20 61 66 66 69 6e 69 74 79 3c 2f 6c 69 3e  AL affinity</li>
09e0: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 76 69 72  .<li>Added a vir
09f0: 74 75 61 6c 20 66 75 6e 63 74 69 6f 6e 20 6c 61  tual function la
0a00: 79 65 72 20 66 6f 72 20 74 68 65 20 4f 53 20 69  yer for the OS i
0a10: 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c  nterface</li>.<l
0a20: 69 3e 22 65 78 69 73 74 73 22 20 6d 65 74 68 6f  i>"exists" metho
0a30: 64 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 54  d added to the T
0a40: 43 4c 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69  CL interface</li
0a50: 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 72  >.<li>Improved r
0a60: 65 73 70 6f 6e 73 65 20 74 6f 20 6f 75 74 2d 6f  esponse to out-o
0a70: 66 2d 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73 3c  f-memory errors<
0a80: 2f 6c 69 3e 0a 3c 6c 69 3e 44 61 74 61 62 61 73  /li>.<li>Databas
0a90: 65 20 63 61 63 68 65 20 63 61 6e 20 62 65 20 6f  e cache can be o
0aa0: 70 74 69 6f 6e 61 6c 6c 79 20 73 68 61 72 65 64  ptionally shared
0ab0: 20 62 65 74 77 65 65 6e 20 63 6f 6e 6e 65 63 74   between connect
0ac0: 69 6f 6e 73 0a 69 6e 20 74 68 65 20 73 61 6d 65  ions.in the same
0ad0: 20 74 68 72 65 61 64 3c 2f 6c 69 3e 0a 3c 6c 69   thread</li>.<li
0ae0: 3e 4f 70 74 69 6f 6e 61 6c 20 52 45 41 44 20 55  >Optional READ U
0af0: 4e 43 4f 4d 4d 49 54 54 45 44 20 69 73 6f 6c 61  NCOMMITTED isola
0b00: 74 69 6f 6e 20 28 69 6e 73 74 65 61 64 20 6f 66  tion (instead of
0b10: 20 74 68 65 20 64 65 66 61 75 6c 74 0a 69 73 6f   the default.iso
0b20: 6c 61 74 69 6f 6e 20 6c 65 76 65 6c 20 6f 66 20  lation level of 
0b30: 53 45 52 49 41 4c 49 5a 41 42 4c 45 29 20 61 6e  SERIALIZABLE) an
0b40: 64 20 74 61 62 6c 65 20 6c 65 76 65 6c 20 6c 6f  d table level lo
0b50: 63 6b 69 6e 67 20 77 68 65 6e 0a 64 61 74 61 62  cking when.datab
0b60: 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20  ase connections 
0b70: 73 68 61 72 65 20 61 20 63 6f 6d 6d 6f 6e 20 63  share a common c
0b80: 61 63 68 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ache.</li>.}..ch
0b90: 6e 67 20 7b 32 30 30 35 20 44 65 63 65 6d 62 65  ng {2005 Decembe
0ba0: 72 20 31 39 20 28 33 2e 32 2e 38 29 7d 20 7b 0a  r 19 (3.2.8)} {.
0bb0: 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 62 73 63 75  <li>Fix an obscu
0bc0: 72 65 20 62 75 67 20 74 68 61 74 20 63 61 6e 20  re bug that can 
0bd0: 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63  cause database c
0be0: 6f 72 72 75 70 74 69 6f 6e 20 75 6e 64 65 72 20  orruption under 
0bf0: 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 75 6e  the.following un
0c00: 75 73 75 61 6c 20 63 69 72 63 75 6d 73 74 61 6e  usual circumstan
0c10: 63 65 73 3a 20 41 20 6c 61 72 67 65 20 49 4e 53  ces: A large INS
0c20: 45 52 54 20 6f 72 20 55 50 44 41 54 45 20 73 74  ERT or UPDATE st
0c30: 61 74 65 6d 65 6e 74 20 77 68 69 63 68 20 0a 69  atement which .i
0c40: 73 20 70 61 72 74 20 6f 66 20 61 6e 20 65 76 65  s part of an eve
0c50: 6e 20 6c 61 72 67 65 72 20 74 72 61 6e 73 61 63  n larger transac
0c60: 74 69 6f 6e 20 66 61 69 6c 73 20 64 75 65 20 74  tion fails due t
0c70: 6f 20 61 20 75 6e 69 71 75 65 6e 65 73 73 20 63  o a uniqueness c
0c80: 6f 6e 74 72 61 69 6e 74 0a 62 75 74 20 74 68 65  ontraint.but the
0c90: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 72 61 6e   containing tran
0ca0: 73 61 63 74 69 6f 6e 20 63 6f 6d 6d 69 74 73 2e  saction commits.
0cb0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0cc0: 30 30 35 20 44 65 63 65 6d 62 65 72 20 31 39 20  005 December 19 
0cd0: 28 32 2e 38 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e  (2.8.17)} {.<li>
0ce0: 46 69 78 20 61 6e 20 6f 62 73 63 75 72 65 20 62  Fix an obscure b
0cf0: 75 67 20 74 68 61 74 20 63 61 6e 20 63 61 75 73  ug that can caus
0d00: 65 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  e database corru
0d10: 70 74 69 6f 6e 20 75 6e 64 65 72 20 74 68 65 0a  ption under the.
0d20: 66 6f 6c 6c 6f 77 69 6e 67 20 75 6e 75 73 75 61  following unusua
0d30: 6c 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 3a  l circumstances:
0d40: 20 41 20 6c 61 72 67 65 20 49 4e 53 45 52 54 20   A large INSERT 
0d50: 6f 72 20 55 50 44 41 54 45 20 73 74 61 74 65 6d  or UPDATE statem
0d60: 65 6e 74 20 77 68 69 63 68 20 0a 69 73 20 70 61  ent which .is pa
0d70: 72 74 20 6f 66 20 61 6e 20 65 76 65 6e 20 6c 61  rt of an even la
0d80: 72 67 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e  rger transaction
0d90: 20 66 61 69 6c 73 20 64 75 65 20 74 6f 20 61 20   fails due to a 
0da0: 75 6e 69 71 75 65 6e 65 73 73 20 63 6f 6e 74 72  uniqueness contr
0db0: 61 69 6e 74 0a 62 75 74 20 74 68 65 20 63 6f 6e  aint.but the con
0dc0: 74 61 69 6e 69 6e 67 20 74 72 61 6e 73 61 63 74  taining transact
0dd0: 69 6f 6e 20 63 6f 6d 6d 69 74 73 2e 3c 2f 6c 69  ion commits.</li
0de0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
0df0: 53 65 70 74 65 6d 62 65 72 20 32 34 20 28 33 2e  September 24 (3.
0e00: 32 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 47 52 4f 55  2.7)} {.<li>GROU
0e10: 50 20 42 59 20 6e 6f 77 20 63 6f 6e 73 69 64 65  P BY now conside
0e20: 72 73 20 4e 55 4c 4c 73 20 74 6f 20 62 65 20 65  rs NULLs to be e
0e30: 71 75 61 6c 20 61 67 61 69 6e 2c 20 61 73 20 69  qual again, as i
0e40: 74 20 73 68 6f 75 6c 64 0a 3c 2f 6c 69 3e 0a 3c  t should.</li>.<
0e50: 6c 69 3e 4e 6f 77 20 63 6f 6d 70 69 6c 65 73 20  li>Now compiles 
0e60: 6f 6e 20 53 6f 6c 61 72 69 73 20 61 6e 64 20 4f  on Solaris and O
0e70: 70 65 6e 42 53 44 20 61 6e 64 20 6f 74 68 65 72  penBSD and other
0e80: 20 55 6e 69 78 20 76 61 72 69 61 6e 74 73 0a 74   Unix variants.t
0e90: 68 61 74 20 6c 61 63 6b 20 74 68 65 20 66 64 61  hat lack the fda
0ea0: 74 61 73 79 6e 63 28 29 20 66 75 6e 63 74 69 6f  tasync() functio
0eb0: 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 6f 77 20 63  n</li>.<li>Now c
0ec0: 6f 6d 70 69 6c 65 73 20 6f 6e 20 4d 53 56 43 2b  ompiles on MSVC+
0ed0: 2b 36 20 61 67 61 69 6e 3c 2f 6c 69 3e 0a 3c 6c  +6 again</li>.<l
0ee0: 69 3e 46 69 78 20 75 6e 69 6e 69 74 69 61 6c 69  i>Fix uninitiali
0ef0: 7a 65 64 20 76 61 72 69 61 62 6c 65 73 20 63 61  zed variables ca
0f00: 75 73 69 6e 67 20 6d 61 6c 66 75 6e 63 74 69 6f  using malfunctio
0f10: 6e 73 20 66 6f 72 20 76 61 72 69 6f 75 73 20 6f  ns for various o
0f20: 62 73 63 75 72 65 0a 71 75 65 72 69 65 73 3c 2f  bscure.queries</
0f30: 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c  li>.<li>Correctl
0f40: 79 20 63 6f 6d 70 75 74 65 20 61 20 4c 45 46 54  y compute a LEFT
0f50: 20 4f 55 54 45 52 20 4a 4f 49 4e 73 20 74 68 61   OUTER JOINs tha
0f60: 74 20 69 73 20 63 6f 6e 73 74 72 61 69 6e 65 64  t is constrained
0f70: 20 6f 6e 20 74 68 65 0a 6c 65 66 74 20 74 61 62   on the.left tab
0f80: 6c 65 20 6f 6e 6c 79 3c 2f 6c 69 3e 0a 7d 0a 0a  le only</li>.}..
0f90: 63 68 6e 67 20 7b 32 30 30 35 20 53 65 70 74 65  chng {2005 Septe
0fa0: 6d 62 65 72 20 31 37 20 28 33 2e 32 2e 36 29 7d  mber 17 (3.2.6)}
0fb0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
0fc0: 20 74 68 61 74 20 63 61 6e 20 63 61 75 73 65 20   that can cause 
0fd0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
0fe0: 69 6f 6e 20 69 66 20 61 20 56 41 43 55 55 4d 20  ion if a VACUUM 
0ff0: 28 6f 72 0a 20 20 20 20 61 75 74 6f 76 61 63 75  (or.    autovacu
1000: 75 6d 29 20 66 61 69 6c 73 20 61 6e 64 20 69 73  um) fails and is
1010: 20 72 6f 6c 6c 65 64 20 62 61 63 6b 20 6f 6e 20   rolled back on 
1020: 61 20 64 61 74 61 62 61 73 65 20 74 68 61 74 20  a database that 
1030: 69 73 0a 20 20 20 20 6c 61 72 67 65 72 20 74 68  is.    larger th
1040: 61 6e 20 31 47 69 42 3c 2f 6c 69 3e 0a 3c 6c 69  an 1GiB</li>.<li
1050: 3e 4c 49 4b 45 20 6f 70 74 69 69 7a 61 74 69 6f  >LIKE optiizatio
1060: 6e 20 6e 6f 77 20 77 6f 72 6b 73 20 66 6f 72 20  n now works for 
1070: 63 6f 6c 75 6d 6e 73 20 77 69 74 68 20 43 4f 4c  columns with COL
1080: 4c 41 54 45 20 4e 4f 43 41 53 45 3c 2f 6c 69 3e  LATE NOCASE</li>
1090: 0a 3c 6c 69 3e 4f 52 44 45 52 20 42 59 20 61 6e  .<li>ORDER BY an
10a0: 64 20 47 52 4f 55 50 20 42 59 20 6e 6f 77 20 75  d GROUP BY now u
10b0: 73 65 20 62 6f 75 6e 64 65 64 20 6d 65 6d 6f 72  se bounded memor
10c0: 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  y</li>.<li>Added
10d0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 4f 55   support for COU
10e0: 4e 54 28 44 49 53 54 49 4e 43 54 20 65 78 70 72  NT(DISTINCT expr
10f0: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  )</li>.<li>Chang
1100: 65 20 74 68 65 20 77 61 79 20 53 55 4d 28 29 20  e the way SUM() 
1110: 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 20 76 61 6c  handles NULL val
1120: 75 65 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ues in order to 
1130: 63 6f 6d 70 6c 79 20 77 69 74 68 0a 20 20 20 20  comply with.    
1140: 74 68 65 20 53 51 4c 20 73 74 61 6e 64 61 72 64  the SQL standard
1150: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 66 64  </li>.<li>Use fd
1160: 61 74 61 73 79 6e 63 28 29 20 69 6e 73 74 65 61  atasync() instea
1170: 64 20 6f 66 20 66 73 79 6e 63 28 29 20 77 68 65  d of fsync() whe
1180: 72 65 20 70 6f 73 73 69 62 6c 65 20 69 6e 20 6f  re possible in o
1190: 72 64 65 72 20 74 6f 20 73 70 65 65 64 0a 20 20  rder to speed.  
11a0: 20 20 75 70 20 63 6f 6d 6d 69 74 73 20 73 6c 69    up commits sli
11b0: 67 68 74 6c 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  ghtly</li>.<li>U
11c0: 73 65 20 6f 66 20 74 68 65 20 43 52 4f 53 53 20  se of the CROSS 
11d0: 6b 65 79 77 6f 72 64 20 69 6e 20 61 20 6a 6f 69  keyword in a joi
11e0: 6e 20 74 75 72 6e 73 20 6f 66 66 20 74 68 65 20  n turns off the 
11f0: 74 61 62 6c 65 20 72 65 6f 72 64 65 72 69 6e 67  table reordering
1200: 0a 20 20 20 20 6f 70 74 69 6d 69 7a 61 74 69 6f  .    optimizatio
1210: 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  n</li>.<li>Added
1220: 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61   the experimenta
1230: 6c 20 61 6e 64 20 75 6e 64 6f 63 75 6d 65 6e 74  l and undocument
1240: 65 64 20 45 58 50 4c 41 49 4e 20 51 55 45 52 59  ed EXPLAIN QUERY
1250: 20 50 4c 41 4e 20 63 61 70 61 62 69 6c 69 74 79   PLAN capability
1260: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 74 68  </li>.<li>Use th
1270: 65 20 75 6e 69 63 6f 64 65 20 41 50 49 20 69 6e  e unicode API in
1280: 20 77 69 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 7d 0a   windows</li>.}.
1290: 0a 63 68 6e 67 20 7b 32 30 30 35 20 41 75 67 75  .chng {2005 Augu
12a0: 73 74 20 32 37 20 28 33 2e 32 2e 35 29 7d 20 7b  st 27 (3.2.5)} {
12b0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 65  .<li>Fix a bug e
12c0: 66 66 65 63 74 69 6e 67 20 44 45 4c 45 54 45 20  ffecting DELETE 
12d0: 61 6e 64 20 55 50 44 41 54 45 20 73 74 61 74 65  and UPDATE state
12e0: 6d 65 6e 74 73 20 74 68 61 74 20 63 68 61 6e 67  ments that chang
12f0: 65 64 0a 6d 6f 72 65 20 74 68 61 6e 20 34 30 39  ed.more than 409
1300: 36 30 20 72 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c  60 rows.</li>.<l
1310: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 6d 61 6b  i>Change the mak
1320: 65 66 69 6c 65 20 73 6f 20 74 68 61 74 20 69 74  efile so that it
1330: 20 6e 6f 20 6c 6f 6e 67 65 72 20 72 65 71 75 69   no longer requi
1340: 72 65 73 20 47 4e 55 6d 61 6b 65 20 65 78 74 65  res GNUmake exte
1350: 6e 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nsions</li>.<li>
1360: 46 69 78 20 74 68 65 20 2d 2d 65 6e 61 62 6c 65  Fix the --enable
1370: 2d 74 68 72 65 61 64 73 61 66 65 20 6f 70 74 69  -threadsafe opti
1380: 6f 6e 20 6f 6e 20 74 68 65 20 63 6f 6e 66 69 67  on on the config
1390: 75 72 65 20 73 63 72 69 70 74 3c 2f 6c 69 3e 0a  ure script</li>.
13a0: 3c 6c 69 3e 46 69 78 20 61 20 63 6f 64 65 20 67  <li>Fix a code g
13b0: 65 6e 65 72 61 74 6f 72 20 62 75 67 20 74 68 61  enerator bug tha
13c0: 74 20 6f 63 63 75 72 73 20 77 68 65 6e 20 74 68  t occurs when th
13d0: 65 20 6c 65 66 74 2d 68 61 6e 64 20 73 69 64 65  e left-hand side
13e0: 20 6f 66 20 61 6e 20 49 4e 0a 6f 70 65 72 61 74   of an IN.operat
13f0: 6f 72 20 69 73 20 63 6f 6e 73 74 61 6e 74 20 61  or is constant a
1400: 6e 64 20 74 68 65 20 72 69 67 68 74 2d 68 61 6e  nd the right-han
1410: 64 20 73 69 64 65 20 69 73 20 61 20 53 45 4c 45  d side is a SELE
1420: 43 54 20 73 74 61 74 65 6d 65 6e 74 3c 2f 6c 69  CT statement</li
1430: 3e 0a 3c 6c 69 3e 54 68 65 20 50 52 41 47 4d 41  >.<li>The PRAGMA
1440: 20 73 79 6e 63 68 72 6f 6e 6f 75 73 3d 6f 66 66   synchronous=off
1450: 20 73 74 61 74 65 6d 65 6e 74 20 6e 6f 77 20 64   statement now d
1460: 69 73 61 62 6c 65 73 20 73 79 6e 63 69 6e 67 20  isables syncing 
1470: 6f 66 20 74 68 65 0a 6d 61 73 74 65 72 20 6a 6f  of the.master jo
1480: 75 72 6e 61 6c 20 66 69 6c 65 20 69 6e 20 61 64  urnal file in ad
1490: 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 6e 6f  dition to the no
14a0: 72 6d 61 6c 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f  rmal rollback jo
14b0: 75 72 6e 61 6c 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63  urnals</li>.}..c
14c0: 68 6e 67 20 7b 32 30 30 35 20 41 75 67 75 73 74  hng {2005 August
14d0: 20 32 34 20 28 33 2e 32 2e 34 29 7d 20 7b 0a 3c   24 (3.2.4)} {.<
14e0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 74  li>Fix a bug int
14f0: 72 6f 64 75 63 65 64 20 69 6e 20 74 68 65 20 70  roduced in the p
1500: 72 65 76 69 6f 75 73 20 72 65 6c 65 61 73 65 0a  revious release.
1510: 74 68 61 74 20 63 61 6e 20 63 61 75 73 65 20 61  that can cause a
1520: 20 73 65 67 66 61 75 6c 74 20 77 68 69 6c 65 20   segfault while 
1530: 67 65 6e 65 72 61 74 69 6e 67 20 63 6f 64 65 0a  generating code.
1540: 66 6f 72 20 63 6f 6d 70 6c 65 78 20 57 48 45 52  for complex WHER
1550: 45 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a  E clauses.</li>.
1560: 3c 6c 69 3e 41 6c 6c 6f 77 20 66 6c 6f 61 74 69  <li>Allow floati
1570: 6e 67 20 70 6f 69 6e 74 20 6c 69 74 65 72 61 6c  ng point literal
1580: 73 20 74 6f 20 62 65 67 69 6e 20 6f 72 20 65 6e  s to begin or en
1590: 64 20 77 69 74 68 20 61 20 64 65 63 69 6d 61 6c  d with a decimal
15a0: 20 70 6f 69 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   point.</li>.}..
15b0: 63 68 6e 67 20 7b 32 30 30 35 20 41 75 67 75 73  chng {2005 Augus
15c0: 74 20 32 31 20 28 33 2e 32 2e 33 29 7d 20 7b 0a  t 21 (3.2.3)} {.
15d0: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
15e0: 74 20 66 6f 72 20 74 68 65 20 43 41 53 54 20 6f  t for the CAST o
15f0: 70 65 72 61 74 6f 72 3c 2f 6c 69 3e 0a 3c 6c 69  perator</li>.<li
1600: 3e 54 63 6c 20 69 6e 74 65 72 66 61 63 65 20 61  >Tcl interface a
1610: 6c 6c 6f 77 73 20 42 4c 4f 42 20 76 61 6c 75 65  llows BLOB value
1620: 73 20 74 6f 20 62 65 20 74 72 61 6e 73 66 65 72  s to be transfer
1630: 72 65 64 20 74 6f 20 75 73 65 72 2d 64 65 66 69  red to user-defi
1640: 6e 65 64 0a 66 75 6e 63 74 69 6f 6e 73 3c 2f 6c  ned.functions</l
1650: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
1660: 20 22 74 72 61 6e 73 61 63 74 69 6f 6e 22 20 6d   "transaction" m
1670: 65 74 68 6f 64 20 74 6f 20 74 68 65 20 54 63 6c  ethod to the Tcl
1680: 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a   interface</li>.
1690: 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68 65 20 44 45  <li>Allow the DE
16a0: 46 41 55 4c 54 20 76 61 6c 75 65 20 6f 66 20 61  FAULT value of a
16b0: 20 63 6f 6c 75 6d 6e 20 74 6f 20 63 61 6c 6c 20   column to call 
16c0: 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 68  functions that h
16d0: 61 76 65 20 63 6f 6e 73 74 61 6e 74 0a 6f 70 65  ave constant.ope
16e0: 72 61 6e 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  rands</li>.<li>A
16f0: 64 64 65 64 20 74 68 65 20 41 4e 41 4c 59 5a 45  dded the ANALYZE
1700: 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 67 61 74   command for gat
1710: 68 65 72 69 6e 67 20 73 74 61 74 69 73 74 69 63  hering statistic
1720: 73 20 6f 6e 20 69 6e 64 69 63 65 73 20 61 6e 64  s on indices and
1730: 0a 75 73 69 6e 67 20 74 68 6f 73 65 20 73 74 61  .using those sta
1740: 74 69 73 74 69 63 73 20 77 68 65 6e 20 70 69 63  tistics when pic
1750: 6b 69 6e 67 20 61 6e 20 69 6e 64 65 78 20 69 6e  king an index in
1760: 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 3c 2f   the optimizer</
1770: 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74  li>.<li>Remove t
1780: 68 65 20 6c 69 6d 69 74 20 28 66 6f 72 6d 65 72  he limit (former
1790: 6c 79 20 31 30 30 29 20 6f 6e 20 74 68 65 20 6e  ly 100) on the n
17a0: 75 6d 62 65 72 20 6f 66 20 74 65 72 6d 73 20 69  umber of terms i
17b0: 6e 20 74 68 65 0a 57 48 45 52 45 20 63 6c 61 75  n the.WHERE clau
17c0: 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  se</li>.<li>The 
17d0: 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20  right-hand side 
17e0: 6f 66 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74  of the IN operat
17f0: 6f 72 20 63 61 6e 20 6e 6f 77 20 62 65 20 61 20  or can now be a 
1800: 6c 69 73 74 20 6f 66 20 65 78 70 72 65 73 73 69  list of expressi
1810: 6f 6e 73 0a 69 6e 73 74 65 61 64 20 6f 66 20 6a  ons.instead of j
1820: 75 73 74 20 61 20 6c 69 73 74 20 6f 66 20 63 6f  ust a list of co
1830: 6e 73 74 61 6e 74 73 3c 2f 6c 69 3e 0a 3c 6c 69  nstants</li>.<li
1840: 3e 52 65 77 6f 72 6b 20 74 68 65 20 6f 70 74 69  >Rework the opti
1850: 6d 69 7a 65 72 20 73 6f 20 74 68 61 74 20 69 74  mizer so that it
1860: 20 69 73 20 61 62 6c 65 20 74 6f 20 6d 61 6b 65   is able to make
1870: 20 62 65 74 74 65 72 20 75 73 65 20 6f 66 20 69   better use of i
1880: 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ndices</li>.<li>
1890: 54 68 65 20 6f 72 64 65 72 20 6f 66 20 74 61 62  The order of tab
18a0: 6c 65 73 20 69 6e 20 61 20 6a 6f 69 6e 20 69 73  les in a join is
18b0: 20 61 64 6a 75 73 74 65 64 20 61 75 74 6f 6d 61   adjusted automa
18c0: 74 69 63 61 6c 6c 79 20 74 6f 20 6d 61 6b 65 0a  tically to make.
18d0: 62 65 74 74 65 72 20 75 73 65 20 6f 66 20 69 6e  better use of in
18e0: 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  dices</li>.<li>T
18f0: 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 69  he IN operator i
1900: 73 20 6e 6f 77 20 61 20 63 61 6e 64 69 64 61 74  s now a candidat
1910: 65 20 66 6f 72 20 6f 70 74 69 6d 69 7a 61 74 69  e for optimizati
1920: 6f 6e 20 65 76 65 6e 20 69 66 20 74 68 65 20 6c  on even if the l
1930: 65 66 74 2d 68 61 6e 64 0a 73 69 64 65 20 69 73  eft-hand.side is
1940: 20 6e 6f 74 20 74 68 65 20 6c 65 66 74 2d 6d 6f   not the left-mo
1950: 73 74 20 74 65 72 6d 20 6f 66 20 74 68 65 20 69  st term of the i
1960: 6e 64 65 78 2e 20 20 4d 75 6c 74 69 70 6c 65 20  ndex.  Multiple 
1970: 49 4e 20 6f 70 65 72 61 74 6f 72 73 20 63 61 6e  IN operators can
1980: 20 62 65 0a 75 73 65 64 20 77 69 74 68 20 74 68   be.used with th
1990: 65 20 73 61 6d 65 20 69 6e 64 65 78 2e 3c 2f 6c  e same index.</l
19a0: 69 3e 0a 3c 6c 69 3e 57 48 45 52 45 20 63 6c 61  i>.<li>WHERE cla
19b0: 75 73 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20  use expressions 
19c0: 75 73 69 6e 67 20 42 45 54 57 45 45 4e 20 61 6e  using BETWEEN an
19d0: 64 20 4f 52 20 61 72 65 20 6e 6f 77 20 63 61 6e  d OR are now can
19e0: 64 69 64 61 74 65 73 0a 66 6f 72 20 6f 70 74 69  didates.for opti
19f0: 6d 69 7a 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c  mization</li>.<l
1a00: 69 3e 41 64 64 65 64 20 74 68 65 20 22 63 61 73  i>Added the "cas
1a10: 65 5f 73 65 6e 73 69 74 69 76 65 5f 6c 69 6b 65  e_sensitive_like
1a20: 22 20 70 72 61 67 6d 61 20 61 6e 64 20 74 68 65  " pragma and the
1a30: 20 53 51 4c 49 54 45 5f 43 41 53 45 5f 53 45 4e   SQLITE_CASE_SEN
1a40: 53 49 54 49 56 45 5f 4c 49 4b 45 0a 63 6f 6d 70  SITIVE_LIKE.comp
1a50: 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20  ile-time option 
1a60: 74 6f 20 73 65 74 20 69 74 73 20 64 65 66 61 75  to set its defau
1a70: 6c 74 20 76 61 6c 75 65 20 74 6f 20 22 6f 6e 22  lt value to "on"
1a80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 69  .</li>.<li>Use i
1a90: 6e 64 69 63 65 73 20 74 6f 20 68 65 6c 70 20 77  ndices to help w
1aa0: 69 74 68 20 47 4c 4f 42 20 65 78 70 72 65 73 73  ith GLOB express
1ab0: 69 6f 6e 73 20 61 6e 64 20 4c 49 4b 45 20 65 78  ions and LIKE ex
1ac0: 70 72 65 73 73 69 6f 6e 73 20 74 6f 6f 0a 77 68  pressions too.wh
1ad0: 65 6e 20 74 68 65 20 63 61 73 65 5f 73 65 6e 73  en the case_sens
1ae0: 69 74 69 76 65 5f 6c 69 6b 65 20 70 72 61 67 6d  itive_like pragm
1af0: 61 20 69 73 20 65 6e 61 62 6c 65 64 3c 2f 6c 69  a is enabled</li
1b00: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
1b10: 6f 72 74 20 66 6f 72 20 67 72 61 76 65 2d 61 63  ort for grave-ac
1b20: 63 65 6e 74 20 71 75 6f 74 69 6e 67 20 66 6f 72  cent quoting for
1b30: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77   compatibility w
1b40: 69 74 68 20 4d 79 53 51 4c 3c 2f 6c 69 3e 0a 3c  ith MySQL</li>.<
1b50: 6c 69 3e 49 6d 70 72 6f 76 65 64 20 74 65 73 74  li>Improved test
1b60: 20 63 6f 76 65 72 61 67 65 3c 2f 6c 69 3e 0a 3c   coverage</li>.<
1b70: 6c 69 3e 44 6f 7a 65 6e 73 20 6f 66 20 6d 69 6e  li>Dozens of min
1b80: 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69  or bug fixes</li
1b90: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
1ba0: 4a 75 6e 65 20 31 33 20 28 33 2e 32 2e 32 29 7d  June 13 (3.2.2)}
1bb0: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
1bc0: 20 73 71 6c 69 74 65 33 5f 64 62 5f 68 61 6e 64   sqlite3_db_hand
1bd0: 6c 65 28 29 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c  le() API</li>.<l
1be0: 69 3e 41 64 64 65 64 20 74 68 65 20 73 71 6c 69  i>Added the sqli
1bf0: 74 65 33 5f 67 65 74 5f 61 75 74 6f 63 6f 6d 6d  te3_get_autocomm
1c00: 69 74 28 29 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c  it() API</li>.<l
1c10: 69 3e 41 64 64 65 64 20 61 20 52 45 47 45 58 50  i>Added a REGEXP
1c20: 20 6f 70 65 72 61 74 6f 72 20 74 6f 20 74 68 65   operator to the
1c30: 20 70 61 72 73 65 72 2e 20 20 54 68 65 72 65 20   parser.  There 
1c40: 69 73 20 6e 6f 20 66 75 6e 63 74 69 6f 6e 20 74  is no function t
1c50: 6f 20 62 61 63 6b 0a 75 70 20 74 68 69 73 20 6f  o back.up this o
1c60: 70 65 72 61 74 6f 72 20 69 6e 20 74 68 65 20 73  perator in the s
1c70: 74 61 6e 64 61 72 64 20 62 75 69 6c 64 20 62 75  tandard build bu
1c80: 74 20 75 73 65 72 73 20 63 61 6e 20 61 64 64 20  t users can add 
1c90: 74 68 65 69 72 20 6f 77 6e 20 75 73 69 6e 67 0a  their own using.
1ca0: 73 71 6c 69 74 65 33 5f 63 72 65 61 74 65 5f 66  sqlite3_create_f
1cb0: 75 6e 63 74 69 6f 6e 28 29 3c 2f 6c 69 3e 0a 3c  unction()</li>.<
1cc0: 6c 69 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65  li>Speed improve
1cd0: 6d 65 6e 74 73 20 61 6e 64 20 6c 69 62 72 61 72  ments and librar
1ce0: 79 20 66 6f 6f 74 70 72 69 6e 74 20 72 65 64 75  y footprint redu
1cf0: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
1d00: 3e 46 69 78 20 62 79 74 65 20 61 6c 69 67 6e 6d  >Fix byte alignm
1d10: 65 6e 74 20 70 72 6f 62 6c 65 6d 73 20 6f 6e 20  ent problems on 
1d20: 36 34 2d 62 69 74 20 61 72 63 68 69 74 65 63 74  64-bit architect
1d30: 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ures.</li>.<li>M
1d40: 61 6e 79 2c 20 6d 61 6e 79 20 6d 69 6e 6f 72 20  any, many minor 
1d50: 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 64 6f  bug fixes and do
1d60: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
1d70: 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  tes.</li>.}..chn
1d80: 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20 32 39  g {2005 March 29
1d90: 20 28 33 2e 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.1)} {.<li>
1da0: 46 69 78 20 61 20 6d 65 6d 6f 72 79 20 61 6c 6c  Fix a memory all
1db0: 6f 63 61 74 69 6f 6e 20 65 72 72 6f 72 20 69 6e  ocation error in
1dc0: 20 74 68 65 20 6e 65 77 20 41 44 44 20 43 4f 4c   the new ADD COL
1dd0: 55 4d 4e 20 63 6f 6d 6d 65 6e 74 2e 3c 2f 6c 69  UMN comment.</li
1de0: 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74  >.<li>Documentat
1df0: 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e  ion updates</li>
1e00: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d  .}..chng {2005 M
1e10: 61 72 63 68 20 32 31 20 28 33 2e 32 2e 30 29 7d  arch 21 (3.2.0)}
1e20: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70   {.<li>Added sup
1e30: 70 6f 72 74 20 66 6f 72 20 41 4c 54 45 52 20 54  port for ALTER T
1e40: 41 42 4c 45 20 41 44 44 20 43 4f 4c 55 4d 4e 2e  ABLE ADD COLUMN.
1e50: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
1e60: 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20  support for the 
1e70: 22 54 22 20 73 65 70 61 72 61 74 6f 72 20 69 6e  "T" separator in
1e80: 20 49 53 4f 2d 38 36 30 31 20 64 61 74 65 2f 74   ISO-8601 date/t
1e90: 69 6d 65 20 73 74 72 69 6e 67 73 2e 3c 2f 6c 69  ime strings.</li
1ea0: 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 73  >.<li>Improved s
1eb0: 75 70 70 6f 72 74 20 66 6f 72 20 43 79 67 77 69  upport for Cygwi
1ec0: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65  n.</li>.<li>Nume
1ed0: 72 6f 75 73 20 62 75 67 20 66 69 78 65 73 20 61  rous bug fixes a
1ee0: 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  nd documentation
1ef0: 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d   updates.</li>.}
1f00: 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72  ..chng {2005 Mar
1f10: 63 68 20 31 36 20 28 33 2e 31 2e 36 29 7d 20 7b  ch 16 (3.1.6)} {
1f20: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
1f30: 68 61 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20  hat could cause 
1f40: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
1f50: 69 6f 6e 20 77 68 65 6e 20 69 6e 73 65 72 74 69  ion when inserti
1f60: 6e 67 0a 20 20 20 20 72 65 63 6f 72 64 20 69 6e  ng.    record in
1f70: 74 6f 20 74 61 62 6c 65 73 20 77 69 74 68 20 61  to tables with a
1f80: 72 6f 75 6e 64 20 31 32 35 20 63 6f 6c 75 6d 6e  round 125 column
1f90: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69  s.</li>.<li>sqli
1fa0: 74 65 33 5f 73 74 65 70 28 29 20 69 73 20 6e 6f  te3_step() is no
1fb0: 77 20 6d 75 63 68 20 6d 6f 72 65 20 6c 69 6b 65  w much more like
1fc0: 6c 79 20 74 6f 20 69 6e 76 6f 6b 65 20 74 68 65  ly to invoke the
1fd0: 20 62 75 73 79 20 68 61 6e 64 6c 65 72 0a 20 20   busy handler.  
1fe0: 20 20 61 6e 64 20 6c 65 73 73 20 6c 69 6b 65 6c    and less likel
1ff0: 79 20 74 6f 20 72 65 74 75 72 6e 20 53 51 4c 49  y to return SQLI
2000: 54 45 5f 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c  TE_BUSY.</li>.<l
2010: 69 3e 46 69 78 20 6d 65 6d 6f 72 79 20 6c 65 61  i>Fix memory lea
2020: 6b 73 20 74 68 61 74 20 75 73 65 64 20 74 6f 20  ks that used to 
2030: 6f 63 63 75 72 20 61 66 74 65 72 20 61 20 6d 61  occur after a ma
2040: 6c 6c 6f 63 28 29 20 66 61 69 6c 75 72 65 2e 3c  lloc() failure.<
2050: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2060: 30 35 20 4d 61 72 63 68 20 31 31 20 28 33 2e 31  05 March 11 (3.1
2070: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 69  .5)} {.<li>The i
2080: 6f 63 74 6c 20 6f 6e 20 4f 53 2d 58 20 74 6f 20  octl on OS-X to 
2090: 63 6f 6e 74 72 6f 6c 20 73 79 6e 63 69 6e 67 20  control syncing 
20a0: 74 6f 20 64 69 73 6b 20 69 73 20 46 5f 46 55 4c  to disk is F_FUL
20b0: 4c 46 53 59 4e 43 2c 0a 20 20 20 20 6e 6f 74 20  LFSYNC,.    not 
20c0: 46 5f 46 55 4c 4c 53 59 4e 43 2e 20 20 54 68 65  F_FULLSYNC.  The
20d0: 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65 61 73   previous releas
20e0: 65 20 68 61 64 20 69 74 20 77 72 6f 6e 67 2e 3c  e had it wrong.<
20f0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2100: 30 35 20 4d 61 72 63 68 20 31 30 20 28 33 2e 31  05 March 10 (3.1
2110: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .4)} {.<li>Fix a
2120: 20 62 75 67 20 69 6e 20 61 75 74 6f 76 61 63 75   bug in autovacu
2130: 75 6d 20 74 68 61 74 20 63 6f 75 6c 64 20 63 61  um that could ca
2140: 75 73 65 20 64 61 74 61 62 61 73 65 20 63 6f 72  use database cor
2150: 72 75 70 74 69 6f 6e 20 69 66 0a 61 20 43 52 45  ruption if.a CRE
2160: 41 54 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58  ATE UNIQUE INDEX
2170: 20 66 61 69 6c 73 20 62 65 63 61 75 73 65 20 6f   fails because o
2180: 66 20 61 20 63 6f 6e 73 74 72 61 69 6e 74 20 76  f a constraint v
2190: 69 6f 6c 61 74 69 6f 6e 2e 0a 54 68 69 73 20 70  iolation..This p
21a0: 72 6f 62 6c 65 6d 20 6f 6e 6c 79 20 6f 63 63 75  roblem only occu
21b0: 72 73 20 69 66 20 74 68 65 20 6e 65 77 20 61 75  rs if the new au
21c0: 74 6f 76 61 63 75 75 6d 20 66 65 61 74 75 72 65  tovacuum feature
21d0: 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 0a 76   introduced in.v
21e0: 65 72 73 69 6f 6e 20 33 2e 31 20 69 73 20 74 75  ersion 3.1 is tu
21f0: 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  rned on.</li>.<l
2200: 69 3e 54 68 65 20 46 5f 46 55 4c 4c 53 59 4e 43  i>The F_FULLSYNC
2210: 20 69 6f 63 74 6c 20 28 63 75 72 72 65 6e 74 6c   ioctl (currentl
2220: 79 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 65 64  y only supported
2230: 20 6f 6e 20 4f 53 2d 58 29 20 69 73 20 64 69 73   on OS-X) is dis
2240: 61 62 6c 65 64 0a 69 66 20 74 68 65 20 73 79 6e  abled.if the syn
2250: 63 68 72 6f 6e 6f 75 73 20 70 72 61 67 6d 61 20  chronous pragma 
2260: 69 73 20 73 65 74 20 74 6f 20 73 6f 6d 65 74 68  is set to someth
2270: 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 22  ing other than "
2280: 66 75 6c 6c 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  full".</li>.<li>
2290: 41 64 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 66  Add additional f
22a0: 6f 72 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69  orward compatibi
22b0: 6c 69 74 79 20 74 6f 20 74 68 65 20 66 75 74 75  lity to the futu
22c0: 72 65 20 76 65 72 73 69 6f 6e 20 33 2e 32 20 64  re version 3.2 d
22d0: 61 74 61 62 61 73 65 20 0a 66 69 6c 65 20 66 6f  atabase .file fo
22e0: 72 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  rmat.</li>.<li>F
22f0: 69 78 20 61 20 62 75 67 20 69 6e 20 57 48 45 52  ix a bug in WHER
2300: 45 20 63 6c 61 75 73 65 73 20 6f 66 20 74 68 65  E clauses of the
2310: 20 66 6f 72 6d 20 28 72 6f 77 69 64 3c 27 32 27   form (rowid<'2'
2320: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 53  )</li>.<li>New S
2330: 51 4c 49 54 45 5f 4f 4d 49 54 5f 2e 2e 2e 20 63  QLITE_OMIT_... c
2340: 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69  ompile-time opti
2350: 6f 6e 73 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c  ons added</li>.<
2360: 6c 69 3e 55 70 64 61 74 65 73 20 74 6f 20 74 68  li>Updates to th
2370: 65 20 6d 61 6e 20 70 61 67 65 3c 2f 6c 69 3e 0a  e man page</li>.
2380: 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65 20 75  <li>Remove the u
2390: 73 65 20 6f 66 20 73 74 72 63 61 73 65 63 6d 70  se of strcasecmp
23a0: 28 29 20 66 72 6f 6d 20 74 68 65 20 73 68 65 6c  () from the shel
23b0: 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 69 6e 64 6f  l</li>.<li>Windo
23c0: 77 73 20 44 4c 4c 20 65 78 70 6f 72 74 73 20 73  ws DLL exports s
23d0: 79 6d 62 6f 6c 73 20 54 63 6c 73 71 6c 69 74 65  ymbols Tclsqlite
23e0: 5f 49 6e 69 74 20 61 6e 64 20 53 71 6c 69 74 65  _Init and Sqlite
23f0: 5f 49 6e 69 74 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  _Init</li>.}..ch
2400: 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75 61 72  ng {2005 Februar
2410: 79 20 31 39 20 28 33 2e 31 2e 33 29 7d 20 7b 0a  y 19 (3.1.3)} {.
2420: 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65  <li>Fix a proble
2430: 6d 20 77 69 74 68 20 56 41 43 55 55 4d 20 6f 6e  m with VACUUM on
2440: 20 64 61 74 61 62 61 73 65 73 20 66 72 6f 6d 20   databases from 
2450: 77 68 69 63 68 20 74 61 62 6c 65 73 20 63 6f 6e  which tables con
2460: 74 61 69 6e 69 6e 67 0a 41 55 54 4f 49 4e 43 52  taining.AUTOINCR
2470: 45 4d 45 4e 54 20 68 61 76 65 20 62 65 65 6e 20  EMENT have been 
2480: 64 72 6f 70 70 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  dropped.</li>.<l
2490: 69 3e 41 64 64 20 66 6f 72 77 61 72 64 20 63 6f  i>Add forward co
24a0: 6d 70 61 74 69 62 69 6c 69 74 79 20 74 6f 20 74  mpatibility to t
24b0: 68 65 20 66 75 74 75 72 65 20 76 65 72 73 69 6f  he future versio
24c0: 6e 20 33 2e 32 20 64 61 74 61 62 61 73 65 20 66  n 3.2 database f
24d0: 69 6c 65 0a 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e  ile.format.</li>
24e0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
24f0: 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a  on updates</li>.
2500: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65  }..chng {2005 Fe
2510: 62 72 75 61 72 79 20 31 35 20 28 33 2e 31 2e 32  bruary 15 (3.1.2
2520: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
2530: 75 67 20 74 68 61 74 20 63 61 6e 20 6c 65 61 64  ug that can lead
2540: 20 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72   to database cor
2550: 72 75 70 74 69 6f 6e 20 69 66 20 74 68 65 72 65  ruption if there
2560: 20 61 72 65 20 74 77 6f 0a 6f 70 65 6e 20 63 6f   are two.open co
2570: 6e 6e 65 63 74 69 6f 6e 73 20 74 6f 20 74 68 65  nnections to the
2580: 20 73 61 6d 65 20 64 61 74 61 62 61 73 65 20 61   same database a
2590: 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65 63 74 69 6f  nd one connectio
25a0: 6e 20 64 6f 65 73 20 61 20 56 41 43 55 55 4d 0a  n does a VACUUM.
25b0: 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20 6d  and the second m
25c0: 61 6b 65 73 20 73 6f 6d 65 20 63 68 61 6e 67 65  akes some change
25d0: 20 74 6f 20 74 68 65 20 64 61 74 61 62 61 73 65   to the database
25e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
25f0: 20 22 3f 22 20 70 61 72 61 6d 65 74 65 72 73 20   "?" parameters 
2600: 69 6e 20 74 68 65 20 4c 49 4d 49 54 20 63 6c 61  in the LIMIT cla
2610: 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  use.</li>.<li>Fi
2620: 78 20 56 41 43 55 55 4d 20 73 6f 20 74 68 61 74  x VACUUM so that
2630: 20 69 74 20 77 6f 72 6b 73 20 77 69 74 68 20 41   it works with A
2640: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 2e 3c 2f 6c  UTOINCREMENT.</l
2650: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 72 61 63  i>.<li>Fix a rac
2660: 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69 6e 20 41  e condition in A
2670: 55 54 4f 56 41 43 55 55 4d 20 74 68 61 74 20 63  UTOVACUUM that c
2680: 61 6e 20 6c 65 61 64 20 74 6f 20 63 6f 72 72 75  an lead to corru
2690: 70 74 20 64 61 74 61 62 61 73 65 73 3c 2f 6c 69  pt databases</li
26a0: 3e 0a 3c 6c 69 3e 41 64 64 20 61 20 6e 75 6d 65  >.<li>Add a nume
26b0: 72 69 63 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62  ric version numb
26c0: 65 72 20 74 6f 20 74 68 65 20 73 71 6c 69 74 65  er to the sqlite
26d0: 33 2e 68 20 69 6e 63 6c 75 64 65 20 66 69 6c 65  3.h include file
26e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72  .</li>.<li>Other
26f0: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
2700: 20 61 6e 64 20 70 65 72 66 6f 72 6d 61 6e 63 65   and performance
2710: 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f   enhancements.</
2720: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
2730: 35 20 46 65 62 72 75 61 72 79 20 31 35 20 28 32  5 February 15 (2
2740: 2e 38 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .8.16)} {.<li>Fi
2750: 78 20 61 20 62 75 67 20 74 68 61 74 20 63 61 6e  x a bug that can
2760: 20 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61 73   lead to databas
2770: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20  e corruption if 
2780: 74 68 65 72 65 20 61 72 65 20 74 77 6f 0a 6f 70  there are two.op
2790: 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74  en connections t
27a0: 6f 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62  o the same datab
27b0: 61 73 65 20 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e  ase and one conn
27c0: 65 63 74 69 6f 6e 20 64 6f 65 73 20 61 20 56 41  ection does a VA
27d0: 43 55 55 4d 0a 61 6e 64 20 74 68 65 20 73 65 63  CUUM.and the sec
27e0: 6f 6e 64 20 6d 61 6b 65 73 20 73 6f 6d 65 20 63  ond makes some c
27f0: 68 61 6e 67 65 20 74 6f 20 74 68 65 20 64 61 74  hange to the dat
2800: 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  abase.</li>.<li>
2810: 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65  Correctly handle
2820: 20 71 75 6f 74 65 64 20 6e 61 6d 65 73 20 69 6e   quoted names in
2830: 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 73 74   CREATE INDEX st
2840: 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c  atements.</li>.<
2850: 6c 69 3e 46 69 78 20 61 20 6e 61 6d 69 6e 67 20  li>Fix a naming 
2860: 63 6f 6e 66 6c 69 63 74 20 62 65 74 77 65 65 6e  conflict between
2870: 20 73 71 6c 69 74 65 2e 68 20 61 6e 64 20 73 71   sqlite.h and sq
2880: 6c 69 74 65 33 2e 68 2e 3c 2f 6c 69 3e 0a 3c 6c  lite3.h.</li>.<l
2890: 69 3e 41 76 6f 69 64 20 65 78 63 65 73 73 20 68  i>Avoid excess h
28a0: 65 61 70 20 75 73 61 67 65 20 77 68 65 6e 20 63  eap usage when c
28b0: 6f 70 79 69 6e 67 20 65 78 70 72 65 73 73 69 6f  opying expressio
28c0: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  ns.</li>.<li>Oth
28d0: 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  er minor bug fix
28e0: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
28f0: 20 7b 32 30 30 35 20 46 65 62 72 75 61 72 79 20   {2005 February 
2900: 31 20 28 33 2e 31 2e 31 20 42 45 54 41 29 7d 20  1 (3.1.1 BETA)} 
2910: 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 20  {.<li>Automatic 
2920: 63 61 63 68 69 6e 67 20 6f 66 20 70 72 65 70 61  caching of prepa
2930: 72 65 64 20 73 74 61 74 65 6d 65 6e 74 73 20 69  red statements i
2940: 6e 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66  n the TCL interf
2950: 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 54 54  ace</li>.<li>ATT
2960: 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20 61  ACH and DETACH a
2970: 73 20 77 65 6c 6c 20 61 73 20 73 6f 6d 65 20 6f  s well as some o
2980: 74 68 65 72 20 6f 70 65 72 61 74 69 6f 6e 73 20  ther operations 
2990: 63 61 75 73 65 20 65 78 69 73 74 69 6e 67 0a 20  cause existing. 
29a0: 20 20 20 70 72 65 70 61 72 65 64 20 73 74 61 74     prepared stat
29b0: 65 6d 65 6e 74 73 20 74 6f 20 65 78 70 69 72 65  ements to expire
29c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72  .</li>.<li>Numer
29d0: 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75 67 20 66  ious minor bug f
29e0: 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ixes</li>.}..chn
29f0: 67 20 7b 32 30 30 35 20 4a 61 6e 75 61 72 79 20  g {2005 January 
2a00: 32 31 20 28 33 2e 31 2e 30 20 41 4c 50 48 41 29  21 (3.1.0 ALPHA)
2a10: 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 76 61 63 75  } {.<li>Autovacu
2a20: 75 6d 20 73 75 70 70 6f 72 74 20 61 64 64 65 64  um support added
2a30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 55 52 52 45 4e  </li>.<li>CURREN
2a40: 54 5f 54 49 4d 45 2c 20 43 55 52 52 45 4e 54 5f  T_TIME, CURRENT_
2a50: 44 41 54 45 2c 20 61 6e 64 20 43 55 52 52 45 4e  DATE, and CURREN
2a60: 54 5f 54 49 4d 45 53 54 41 4d 50 20 61 64 64 65  T_TIMESTAMP adde
2a70: 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f  d</li>.<li>Suppo
2a80: 72 74 20 66 6f 72 20 74 68 65 20 45 58 49 53 54  rt for the EXIST
2a90: 53 20 63 6c 61 75 73 65 20 61 64 64 65 64 2e 3c  S clause added.<
2aa0: 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74  /li>.<li>Support
2ab0: 20 66 6f 72 20 63 6f 72 72 65 6c 61 74 65 64 20   for correlated 
2ac0: 73 75 62 71 75 65 72 69 65 73 20 61 64 64 65 64  subqueries added
2ad0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
2ae0: 20 74 68 65 20 45 53 43 41 50 45 20 63 6c 61 75   the ESCAPE clau
2af0: 73 65 20 6f 6e 20 74 68 65 20 4c 49 4b 45 20 6f  se on the LIKE o
2b00: 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c  perator.</li>.<l
2b10: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 41 4c  i>Support for AL
2b20: 54 45 52 20 54 41 42 4c 45 20 2e 2e 2e 20 52 45  TER TABLE ... RE
2b30: 4e 41 4d 45 20 54 41 42 4c 45 20 2e 2e 2e 20 61  NAME TABLE ... a
2b40: 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 55  dded</li>.<li>AU
2b50: 54 4f 49 4e 43 52 45 4d 45 4e 54 20 6b 65 79 77  TOINCREMENT keyw
2b60: 6f 72 64 20 73 75 70 70 6f 72 74 65 64 20 6f 6e  ord supported on
2b70: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59   INTEGER PRIMARY
2b80: 20 4b 45 59 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61   KEY</li>.<li>Ma
2b90: 6e 79 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 20  ny SQLITE_OMIT_ 
2ba0: 6d 61 63 72 6f 73 20 69 6e 73 65 72 74 73 20 74  macros inserts t
2bb0: 6f 20 6f 6d 69 74 20 66 65 61 74 75 72 65 73 20  o omit features 
2bc0: 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a  at compile-time.
2bd0: 20 20 20 20 61 6e 64 20 72 65 64 75 63 65 20 74      and reduce t
2be0: 68 65 20 6c 69 62 72 61 72 79 20 66 6f 6f 74 70  he library footp
2bf0: 72 69 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  rint.</li>.<li>T
2c00: 68 65 20 52 45 49 4e 44 45 58 20 63 6f 6d 6d 61  he REINDEX comma
2c10: 6e 64 20 77 61 73 20 61 64 64 65 64 2e 3c 2f 6c  nd was added.</l
2c20: 69 3e 0a 3c 6c 69 3e 54 68 65 20 65 6e 67 69 6e  i>.<li>The engin
2c30: 65 20 6e 6f 20 6c 6f 6e 67 65 72 20 63 6f 6e 73  e no longer cons
2c40: 75 6c 74 73 20 74 68 65 20 6d 61 69 6e 20 74 61  ults the main ta
2c50: 62 6c 65 20 69 66 20 69 74 20 63 61 6e 20 67 65  ble if it can ge
2c60: 74 0a 20 20 20 20 61 6c 6c 20 74 68 65 20 69 6e  t.    all the in
2c70: 66 6f 72 6d 61 74 69 6f 6e 20 69 74 20 6e 65 65  formation it nee
2c80: 64 73 20 66 72 6f 6d 20 61 6e 20 69 6e 64 65 78  ds from an index
2c90: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20  .</li>.<li>Many 
2ca0: 6e 75 69 73 61 6e 63 65 20 62 75 67 73 20 66 69  nuisance bugs fi
2cb0: 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xed.</li>.}..chn
2cc0: 67 20 7b 32 30 30 34 20 4f 63 74 6f 62 65 72 20  g {2004 October 
2cd0: 31 31 20 28 33 2e 30 2e 38 29 7d 20 7b 0a 3c 6c  11 (3.0.8)} {.<l
2ce0: 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f  i>Add support fo
2cf0: 72 20 44 45 46 45 52 52 45 44 2c 20 49 4d 4d 45  r DEFERRED, IMME
2d00: 44 49 41 54 45 2c 20 61 6e 64 20 45 58 43 4c 55  DIATE, and EXCLU
2d10: 53 49 56 45 20 74 72 61 6e 73 61 63 74 69 6f 6e  SIVE transaction
2d20: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  s.</li>.<li>Allo
2d30: 77 20 6e 65 77 20 75 73 65 72 2d 64 65 66 69 6e  w new user-defin
2d40: 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20  ed functions to 
2d50: 62 65 20 63 72 65 61 74 65 64 20 77 68 65 6e 20  be created when 
2d60: 74 68 65 72 65 20 61 72 65 0a 61 6c 72 65 61 64  there are.alread
2d70: 79 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 70 72  y one or more pr
2d80: 65 63 6f 6d 70 69 6c 65 64 20 53 51 4c 20 73 74  ecompiled SQL st
2d90: 61 74 65 6d 65 6e 74 73 2e 3c 6c 69 3e 0a 3c 6c  atements.<li>.<l
2da0: 69 3e 46 69 78 20 70 6f 72 74 61 62 69 6c 69 74  i>Fix portabilit
2db0: 79 20 70 72 6f 62 6c 65 6d 73 20 66 6f 72 20 4d  y problems for M
2dc0: 69 6e 67 77 2f 4d 53 59 53 2e 3c 2f 6c 69 3e 0a  ingw/MSYS.</li>.
2dd0: 3c 6c 69 3e 46 69 78 20 61 20 62 79 74 65 20 61  <li>Fix a byte a
2de0: 6c 69 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d  lignment problem
2df0: 20 6f 6e 20 36 34 2d 62 69 74 20 53 70 61 72 63   on 64-bit Sparc
2e00: 20 6d 61 63 68 69 6e 65 73 2e 3c 2f 6c 69 3e 0a   machines.</li>.
2e10: 3c 6c 69 3e 46 69 78 20 74 68 65 20 22 2e 69 6d  <li>Fix the ".im
2e20: 70 6f 72 74 22 20 63 6f 6d 6d 61 6e 64 20 6f 66  port" command of
2e30: 20 74 68 65 20 73 68 65 6c 6c 20 73 6f 20 74 68   the shell so th
2e40: 61 74 20 69 74 20 69 67 6e 6f 72 65 73 20 5c 72  at it ignores \r
2e50: 0a 63 68 61 72 61 63 74 65 72 73 20 61 74 20 74  .characters at t
2e60: 68 65 20 65 6e 64 20 6f 66 20 6c 69 6e 65 73 2e  he end of lines.
2e70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 63  </li>.<li>The "c
2e80: 73 76 22 20 6d 6f 64 65 20 6f 70 74 69 6f 6e 20  sv" mode option 
2e90: 69 6e 20 74 68 65 20 73 68 65 6c 6c 20 70 75 74  in the shell put
2ea0: 73 20 73 74 72 69 6e 67 73 20 69 6e 73 69 64 65  s strings inside
2eb0: 20 64 6f 75 62 6c 65 2d 71 75 6f 74 65 73 2e 3c   double-quotes.<
2ec0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70  /li>.<li>Fix typ
2ed0: 6f 73 20 69 6e 20 64 6f 63 75 6d 65 6e 74 61 74  os in documentat
2ee0: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ion.</li>.<li>Co
2ef0: 6e 76 65 72 74 20 61 72 72 61 79 20 63 6f 6e 73  nvert array cons
2f00: 74 61 6e 74 73 20 69 6e 20 74 68 65 20 63 6f 64  tants in the cod
2f10: 65 20 74 6f 20 68 61 76 65 20 74 79 70 65 20 22  e to have type "
2f20: 63 6f 6e 73 74 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69  const".</li>.<li
2f30: 3e 4e 75 6d 65 72 6f 75 73 20 63 6f 64 65 20 6f  >Numerous code o
2f40: 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2c 20 73 70  ptimizations, sp
2f50: 65 63 69 61 6c 6c 79 20 6f 70 74 69 6d 69 7a 61  ecially optimiza
2f60: 74 69 6f 6e 73 20 64 65 73 69 67 6e 65 64 20 74  tions designed t
2f70: 6f 0a 6d 61 6b 65 20 74 68 65 20 63 6f 64 65 20  o.make the code 
2f80: 66 6f 6f 74 70 72 69 6e 74 20 73 6d 61 6c 6c 65  footprint smalle
2f90: 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  r.</li>.}..chng 
2fa0: 7b 32 30 30 34 20 53 65 70 74 65 6d 62 65 72 20  {2004 September 
2fb0: 31 38 20 28 33 2e 30 2e 37 29 7d 20 7b 0a 3c 6c  18 (3.0.7)} {.<l
2fc0: 69 3e 54 68 65 20 42 54 72 65 65 20 6d 6f 64 75  i>The BTree modu
2fd0: 6c 65 20 61 6c 6c 6f 63 61 74 65 73 20 6c 61 72  le allocates lar
2fe0: 67 65 20 62 75 66 66 65 72 73 20 75 73 69 6e 67  ge buffers using
2ff0: 20 6d 61 6c 6c 6f 63 28 29 20 69 6e 73 74 65 61   malloc() instea
3000: 64 20 6f 66 0a 20 20 20 20 6f 66 66 20 6f 66 20  d of.    off of 
3010: 74 68 65 20 73 74 61 63 6b 2c 20 69 6e 20 6f 72  the stack, in or
3020: 64 65 72 20 74 6f 20 70 6c 61 79 20 62 65 74 74  der to play bett
3030: 65 72 20 6f 6e 20 6d 61 63 68 69 6e 65 73 20 77  er on machines w
3040: 69 74 68 20 6c 69 6d 69 74 65 64 0a 20 20 20 20  ith limited.    
3050: 73 74 61 63 6b 20 73 70 61 63 65 2e 3c 2f 6c 69  stack space.</li
3060: 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 6e 61 6d 69  >.<li>Fixed nami
3070: 6e 67 20 63 6f 6e 66 6c 69 63 74 73 20 73 6f 20  ng conflicts so 
3080: 74 68 61 74 20 76 65 72 73 69 6f 6e 73 20 32 2e  that versions 2.
3090: 38 20 61 6e 64 20 33 2e 30 20 63 61 6e 20 62 65  8 and 3.0 can be
30a0: 0a 20 20 20 20 6c 69 6e 6b 65 64 20 61 6e 64 20  .    linked and 
30b0: 75 73 65 64 20 74 6f 67 65 74 68 65 72 20 69 6e  used together in
30c0: 20 74 68 65 20 73 61 6d 65 20 41 4e 53 49 2d 43   the same ANSI-C
30d0: 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 3c 2f 6c   source file.</l
30e0: 69 3e 0a 3c 6c 69 3e 4e 65 77 20 69 6e 74 65 72  i>.<li>New inter
30f0: 66 61 63 65 3a 20 73 71 6c 69 74 65 33 5f 62 69  face: sqlite3_bi
3100: 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 69 6e 64  nd_parameter_ind
3110: 65 78 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ex()</li>.<li>Ad
3120: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 77 69  d support for wi
3130: 6c 64 63 61 72 64 20 70 61 72 61 6d 65 74 65 72  ldcard parameter
3140: 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 20 22  s of the form: "
3150: 3f 6e 6e 6e 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ?nnn"</li>.<li>F
3160: 69 78 20 70 72 6f 62 6c 65 6d 73 20 66 6f 75 6e  ix problems foun
3170: 64 20 6f 6e 20 36 34 2d 62 69 74 20 73 79 73 74  d on 64-bit syst
3180: 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65  ems.</li>.<li>Re
3190: 6d 6f 76 65 64 20 65 6e 63 6f 64 65 2e 63 20 66  moved encode.c f
31a0: 69 6c 65 20 28 63 6f 6e 74 61 69 6e 69 6e 67 20  ile (containing 
31b0: 75 6e 75 73 65 64 20 72 6f 75 74 69 6e 65 73 29  unused routines)
31c0: 20 66 72 6f 6d 20 74 68 65 20 0a 20 20 20 20 76   from the .    v
31d0: 65 72 73 69 6f 6e 20 33 2e 30 20 73 6f 75 72 63  ersion 3.0 sourc
31e0: 65 20 74 72 65 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e tree.</li>.<li
31f0: 3e 54 68 65 20 73 71 6c 69 74 65 33 5f 74 72 61  >The sqlite3_tra
3200: 63 65 28 29 20 63 61 6c 6c 62 61 63 6b 73 20 6f  ce() callbacks o
3210: 63 63 75 72 20 62 65 66 6f 72 65 20 65 61 63 68  ccur before each
3220: 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 69   statement.    i
3230: 73 20 65 78 65 63 75 74 65 64 2c 20 6e 6f 74 20  s executed, not 
3240: 77 68 65 6e 20 74 68 65 20 73 74 61 74 65 6d 65  when the stateme
3250: 6e 74 20 69 73 20 63 6f 6d 70 69 6c 65 64 2e 3c  nt is compiled.<
3260: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c  /li>.<li>Makefil
3270: 65 20 75 70 64 61 74 65 73 20 61 6e 64 20 6d 69  e updates and mi
3280: 73 63 65 6c 6c 61 6e 65 6f 75 73 20 62 75 67 20  scellaneous bug 
3290: 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixes.</li>.}..c
32a0: 68 6e 67 20 7b 32 30 30 34 20 53 65 70 74 65 6d  hng {2004 Septem
32b0: 62 65 72 20 30 32 20 28 33 2e 30 2e 36 20 62 65  ber 02 (3.0.6 be
32c0: 74 61 29 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65  ta)} {.<li>Bette
32d0: 72 20 64 65 74 65 63 74 69 6f 6e 20 61 6e 64 20  r detection and 
32e0: 68 61 6e 64 6c 69 6e 67 20 6f 66 20 63 6f 72 72  handling of corr
32f0: 75 70 74 20 64 61 74 61 62 61 73 65 20 66 69 6c  upt database fil
3300: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  es.</li>.<li>The
3310: 20 73 71 6c 69 74 65 33 5f 73 74 65 70 28 29 20   sqlite3_step() 
3320: 69 6e 74 65 72 66 61 63 65 20 72 65 74 75 72 6e  interface return
3330: 73 20 53 51 4c 49 54 45 5f 42 55 53 59 20 69 66  s SQLITE_BUSY if
3340: 20 69 74 20 69 73 20 75 6e 61 62 6c 65 0a 20 20   it is unable.  
3350: 20 20 74 6f 20 63 6f 6d 6d 69 74 20 61 20 63 68    to commit a ch
3360: 61 6e 67 65 20 62 65 63 61 75 73 65 20 6f 66 20  ange because of 
3370: 61 20 6c 6f 63 6b 3c 2f 6c 69 3e 0a 3c 6c 69 3e  a lock</li>.<li>
3380: 43 6f 6d 62 69 6e 65 20 74 68 65 20 69 6d 70 6c  Combine the impl
3390: 65 6d 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 4c  ementations of L
33a0: 49 4b 45 20 61 6e 64 20 47 4c 4f 42 20 69 6e 74  IKE and GLOB int
33b0: 6f 20 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 70  o a single.    p
33c0: 61 74 74 65 72 6e 2d 6d 61 74 63 68 69 6e 67 20  attern-matching 
33d0: 73 75 62 72 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e  subroutine.</li>
33e0: 0a 3c 6c 69 3e 4d 69 73 63 65 6c 6c 61 6e 65 6f  .<li>Miscellaneo
33f0: 75 73 20 63 6f 64 65 20 73 69 7a 65 20 6f 70 74  us code size opt
3400: 69 6d 69 7a 61 74 69 6f 6e 73 20 61 6e 64 20 62  imizations and b
3410: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
3420: 0a 63 68 6e 67 20 7b 32 30 30 34 20 41 75 67 75  .chng {2004 Augu
3430: 73 74 20 32 39 20 28 33 2e 30 2e 35 20 62 65 74  st 29 (3.0.5 bet
3440: 61 29 7d 20 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72  a)} {.<li>Suppor
3450: 74 20 66 6f 72 20 22 3a 41 41 41 22 20 73 74 79  t for ":AAA" sty
3460: 6c 65 20 62 69 6e 64 20 70 61 72 61 6d 65 74 65  le bind paramete
3470: 72 20 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  r names.</li>.<l
3480: 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65 77 20  i>Added the new 
3490: 73 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72  sqlite3_bind_par
34a0: 61 6d 65 74 65 72 5f 6e 61 6d 65 28 29 20 69 6e  ameter_name() in
34b0: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c  terface.</li>.<l
34c0: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 54 43  i>Support for TC
34d0: 4c 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73  L variable names
34e0: 20 65 6d 62 65 64 64 65 64 20 69 6e 20 53 51 4c   embedded in SQL
34f0: 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 74   statements in t
3500: 68 65 0a 20 20 20 20 54 43 4c 20 62 69 6e 64 69  he.    TCL bindi
3510: 6e 67 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ngs.</li>.<li>Th
3520: 65 20 54 43 4c 20 62 69 6e 64 69 6e 67 73 20 74  e TCL bindings t
3530: 72 61 6e 73 66 65 72 20 64 61 74 61 20 77 69 74  ransfer data wit
3540: 68 6f 75 74 20 6e 65 63 65 73 73 61 72 69 6c 79  hout necessarily
3550: 20 64 6f 69 6e 67 20 61 20 63 6f 6e 76 65 72 73   doing a convers
3560: 69 6f 6e 0a 20 20 20 20 74 6f 20 61 20 73 74 72  ion.    to a str
3570: 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ing.</li>.<li>Th
3580: 65 20 64 61 74 61 62 61 73 65 20 66 6f 72 20 54  e database for T
3590: 45 4d 50 20 74 61 62 6c 65 73 20 69 73 20 6e 6f  EMP tables is no
35a0: 74 20 63 72 65 61 74 65 64 20 75 6e 74 69 6c 20  t created until 
35b0: 69 74 20 69 73 20 6e 65 65 64 65 64 2e 3c 2f 6c  it is needed.</l
35c0: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61  i>.<li>Add the a
35d0: 62 69 6c 69 74 79 20 74 6f 20 73 70 65 63 69 66  bility to specif
35e0: 79 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65  y an alternative
35f0: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20   temporary file 
3600: 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 75 73  directory.    us
3610: 69 6e 67 20 74 68 65 20 22 73 71 6c 69 74 65 5f  ing the "sqlite_
3620: 74 65 6d 70 5f 64 69 72 65 63 74 6f 72 79 22 20  temp_directory" 
3630: 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 2e  global variable.
3640: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20 63 6f 6d 70  </li>.<li>A comp
3650: 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20  ile-time option 
3660: 28 53 51 4c 49 54 45 5f 42 55 53 59 5f 52 45 53  (SQLITE_BUSY_RES
3670: 45 52 56 45 44 5f 4c 4f 43 4b 29 20 63 61 75 73  ERVED_LOCK) caus
3680: 65 73 20 74 68 65 20 62 75 73 79 0a 20 20 20 20  es the busy.    
3690: 68 61 6e 64 6c 65 72 20 74 6f 20 62 65 20 63 61  handler to be ca
36a0: 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 72 65 20  lled when there 
36b0: 69 73 20 63 6f 6e 74 65 6e 74 69 6f 6e 20 66 6f  is contention fo
36c0: 72 20 61 20 52 45 53 45 52 56 45 44 20 6c 6f 63  r a RESERVED loc
36d0: 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69  k.</li>.<li>Vari
36e0: 6f 75 73 20 62 75 67 20 66 69 78 65 73 20 61 6e  ous bug fixes an
36f0: 64 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 3c  d optimizations<
3700: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3710: 30 34 20 41 75 67 75 73 74 20 38 20 28 33 2e 30  04 August 8 (3.0
3720: 2e 34 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e  .4 beta)} {.<li>
3730: 43 52 45 41 54 45 20 54 41 42 4c 45 20 61 6e 64  CREATE TABLE and
3740: 20 44 52 4f 50 20 54 41 42 4c 45 20 6e 6f 77 20   DROP TABLE now 
3750: 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c 79 20 61  work correctly a
3760: 73 20 70 72 65 70 61 72 65 64 20 73 74 61 74 65  s prepared state
3770: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ments.</li>.<li>
3780: 46 69 78 20 61 20 62 75 67 20 69 6e 20 56 41 43  Fix a bug in VAC
3790: 55 55 4d 20 61 6e 64 20 55 4e 49 51 55 45 20 69  UUM and UNIQUE i
37a0: 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ndices.</li>.<li
37b0: 3e 41 64 64 20 74 68 65 20 22 2e 69 6d 70 6f 72  >Add the ".impor
37c0: 74 22 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68  t" command to th
37d0: 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73  e command-line s
37e0: 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  hell.</li>.<li>F
37f0: 69 78 20 61 20 62 75 67 20 74 68 61 74 20 63 6f  ix a bug that co
3800: 75 6c 64 20 63 61 75 73 65 20 69 6e 64 65 78 20  uld cause index 
3810: 63 6f 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20  corruption when 
3820: 61 6e 20 61 74 74 65 6d 70 74 20 74 6f 0a 20 20  an attempt to.  
3830: 20 20 64 65 6c 65 74 65 20 72 6f 77 73 20 6f 66    delete rows of
3840: 20 61 20 74 61 62 6c 65 20 69 73 20 62 6c 6f 63   a table is bloc
3850: 6b 65 64 20 62 79 20 61 20 70 65 6e 64 69 6e 67  ked by a pending
3860: 20 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69   query.</li>.<li
3870: 3e 4c 69 62 72 61 72 79 20 73 69 7a 65 20 6f 70  >Library size op
3880: 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 3c 2f 6c 69  timizations.</li
3890: 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f  >.<li>Other mino
38a0: 72 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69  r bug fixes.</li
38b0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
38c0: 4a 75 6c 79 20 32 32 20 28 32 2e 38 2e 31 35 29  July 22 (2.8.15)
38d0: 7d 20 7b 0a 3c 6c 69 3e 54 68 69 73 20 69 73 20  } {.<li>This is 
38e0: 61 20 6d 61 69 6e 74 65 6e 61 6e 63 65 20 72 65  a maintenance re
38f0: 6c 65 61 73 65 20 6f 6e 6c 79 2e 20 20 56 61 72  lease only.  Var
3900: 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75 67 73 20  ious minor bugs 
3910: 68 61 76 65 20 62 65 65 6e 0a 66 69 78 65 64 20  have been.fixed 
3920: 61 6e 64 20 73 6f 6d 65 20 70 6f 72 74 61 62 69  and some portabi
3930: 6c 69 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e 74  lity enhancement
3940: 73 20 61 72 65 20 61 64 64 65 64 2e 3c 2f 6c 69  s are added.</li
3950: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
3960: 4a 75 6c 79 20 32 32 20 28 33 2e 30 2e 33 20 62  July 22 (3.0.3 b
3970: 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  eta)} {.<li>The 
3980: 73 65 63 6f 6e 64 20 62 65 74 61 20 72 65 6c 65  second beta rele
3990: 61 73 65 20 66 6f 72 20 53 51 4c 69 74 65 20 33  ase for SQLite 3
39a0: 2e 30 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  .0.</li>.<li>Add
39b0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 22 50 52   support for "PR
39c0: 41 47 4d 41 20 70 61 67 65 5f 73 69 7a 65 22 20  AGMA page_size" 
39d0: 74 6f 20 61 64 6a 75 73 74 20 74 68 65 20 70 61  to adjust the pa
39e0: 67 65 20 73 69 7a 65 20 6f 66 0a 74 68 65 20 64  ge size of.the d
39f0: 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c  atabase.</li>.<l
3a00: 69 3e 56 61 72 69 6f 75 73 20 62 75 67 20 66 69  i>Various bug fi
3a10: 78 65 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74  xes and document
3a20: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f  ation updates.</
3a30: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
3a40: 34 20 4a 75 6e 65 20 33 30 20 28 33 2e 30 2e 32  4 June 30 (3.0.2
3a50: 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68   beta)} {.<li>Th
3a60: 65 20 66 69 72 73 74 20 62 65 74 61 20 72 65 6c  e first beta rel
3a70: 65 61 73 65 20 66 6f 72 20 53 51 4c 69 74 65 20  ease for SQLite 
3a80: 33 2e 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  3.0.</li>.}..chn
3a90: 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 32 32 20  g {2004 June 22 
3aa0: 28 33 2e 30 2e 31 20 61 6c 70 68 61 29 7d 20 7b  (3.0.1 alpha)} {
3ab0: 0a 3c 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72  .<li><font color
3ac0: 3d 22 72 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a  ="red"><b>.    *
3ad0: 2a 2a 20 41 6c 70 68 61 20 52 65 6c 65 61 73 65  ** Alpha Release
3ae0: 20 2d 20 52 65 73 65 61 72 63 68 20 41 6e 64 20   - Research And 
3af0: 54 65 73 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79  Testing Use Only
3b00: 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a   ***</b></font>.
3b10: 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20 62 75 67 20  <li>Lots of bug 
3b20: 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixes.</li>.}..c
3b30: 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 31  hng {2004 June 1
3b40: 38 20 28 33 2e 30 2e 30 20 61 6c 70 68 61 29 7d  8 (3.0.0 alpha)}
3b50: 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c   {.<li><font col
3b60: 6f 72 3d 22 72 65 64 22 3e 3c 62 3e 0a 20 20 20  or="red"><b>.   
3b70: 20 2a 2a 2a 20 41 6c 70 68 61 20 52 65 6c 65 61   *** Alpha Relea
3b80: 73 65 20 2d 20 52 65 73 65 61 72 63 68 20 41 6e  se - Research An
3b90: 64 20 54 65 73 74 69 6e 67 20 55 73 65 20 4f 6e  d Testing Use On
3ba0: 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74  ly ***</b></font
3bb0: 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  >.<li>Support fo
3bc0: 72 20 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 69  r internationali
3bd0: 7a 61 74 69 6f 6e 20 69 6e 63 6c 75 64 69 6e 67  zation including
3be0: 20 55 54 46 2d 38 2c 20 55 54 46 2d 31 36 2c 20   UTF-8, UTF-16, 
3bf0: 61 6e 64 0a 20 20 20 20 75 73 65 72 20 64 65 66  and.    user def
3c00: 69 6e 65 64 20 63 6f 6c 6c 61 74 69 6e 67 20 73  ined collating s
3c10: 65 71 75 65 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 3c  equences.</li>.<
3c20: 6c 69 3e 4e 65 77 20 66 69 6c 65 20 66 6f 72 6d  li>New file form
3c30: 61 74 20 74 68 61 74 20 69 73 20 32 35 25 20 74  at that is 25% t
3c40: 6f 20 33 35 25 20 73 6d 61 6c 6c 65 72 20 66 6f  o 35% smaller fo
3c50: 72 20 74 79 70 69 63 61 6c 20 75 73 65 2e 3c 2f  r typical use.</
3c60: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64  li>.<li>Improved
3c70: 20 63 6f 6e 63 75 72 72 65 6e 63 79 2e 3c 2f 6c   concurrency.</l
3c80: 69 3e 0a 3c 6c 69 3e 41 74 6f 6d 69 63 20 63 6f  i>.<li>Atomic co
3c90: 6d 6d 69 74 73 20 66 6f 72 20 41 54 54 41 43 48  mmits for ATTACH
3ca0: 65 64 20 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c  ed databases.</l
3cb0: 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 63 72  i>.<li>Remove cr
3cc0: 75 66 74 20 66 72 6f 6d 20 74 68 65 20 41 50 49  uft from the API
3cd0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 4c 4f 42  s.</li>.<li>BLOB
3ce0: 20 73 75 70 70 6f 72 74 2e 3c 2f 6c 69 3e 0a 3c   support.</li>.<
3cf0: 6c 69 3e 36 34 2d 62 69 74 20 72 6f 77 69 64 73  li>64-bit rowids
3d00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72  .</li>.<li><a hr
3d10: 65 66 3d 22 76 65 72 73 69 6f 6e 33 2e 68 74 6d  ef="version3.htm
3d20: 6c 22 3e 4d 6f 72 65 20 69 6e 66 6f 72 6d 61 74  l">More informat
3d30: 69 6f 6e 3c 2f 61 3e 2e 0a 7d 0a 0a 63 68 6e 67  ion</a>..}..chng
3d40: 20 7b 32 30 30 34 20 4a 75 6e 65 20 39 20 28 32   {2004 June 9 (2
3d50: 2e 38 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .8.14)} {.<li>Fi
3d60: 78 20 74 68 65 20 6d 69 6e 28 29 20 61 6e 64 20  x the min() and 
3d70: 6d 61 78 28 29 20 6f 70 74 69 6d 69 7a 65 72 20  max() optimizer 
3d80: 73 6f 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73  so that it works
3d90: 20 77 68 65 6e 20 74 68 65 20 46 52 4f 4d 0a 20   when the FROM. 
3da0: 20 20 20 63 6c 61 75 73 65 20 63 6f 6e 73 69 73     clause consis
3db0: 74 73 20 6f 66 20 61 20 73 75 62 71 75 65 72 79  ts of a subquery
3dc0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 67 6e 6f 72  .</li>.<li>Ignor
3dd0: 65 20 65 78 74 72 61 20 77 68 69 74 65 73 70 61  e extra whitespa
3de0: 63 65 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66  ce at the end of
3df0: 20 6f 66 20 22 2e 22 20 63 6f 6d 6d 61 6e 64 73   of "." commands
3e00: 20 69 6e 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f   in the shell.</
3e10: 6c 69 3e 0a 3c 6c 69 3e 42 75 6e 64 6c 65 20 73  li>.<li>Bundle s
3e20: 71 6c 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e  qlite_encode_bin
3e30: 61 72 79 28 29 20 61 6e 64 20 73 71 6c 69 74 65  ary() and sqlite
3e40: 5f 64 65 63 6f 64 65 5f 62 69 6e 61 72 79 28 29  _decode_binary()
3e50: 20 77 69 74 68 20 74 68 65 20 0a 20 20 20 20 6c   with the .    l
3e60: 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ibrary.</li>.<li
3e70: 3e 54 68 65 20 54 45 4d 50 5f 53 54 4f 52 45 20  >The TEMP_STORE 
3e80: 61 6e 64 20 44 45 46 41 55 4c 54 5f 54 45 4d 50  and DEFAULT_TEMP
3e90: 5f 53 54 4f 52 45 20 70 72 61 67 6d 61 73 20 6e  _STORE pragmas n
3ea0: 6f 77 20 77 6f 72 6b 2e 3c 2f 6c 69 3e 0a 3c 6c  ow work.</li>.<l
3eb0: 69 3e 43 6f 64 65 20 63 68 61 6e 67 65 73 20 74  i>Code changes t
3ec0: 6f 20 63 6f 6d 70 69 6c 65 20 63 6c 65 61 6e 6c  o compile cleanl
3ed0: 79 20 75 73 69 6e 67 20 4f 70 65 6e 57 61 74 63  y using OpenWatc
3ee0: 6f 6d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  om.</li>.<li>Fix
3ef0: 20 56 44 42 45 20 73 74 61 63 6b 20 6f 76 65 72   VDBE stack over
3f00: 66 6c 6f 77 20 70 72 6f 62 6c 65 6d 73 20 77 69  flow problems wi
3f10: 74 68 20 49 4e 53 54 45 41 44 20 4f 46 20 74 72  th INSTEAD OF tr
3f20: 69 67 67 65 72 73 20 61 6e 64 0a 20 20 20 20 4e  iggers and.    N
3f30: 55 4c 4c 73 20 69 6e 20 49 4e 20 6f 70 65 72 61  ULLs in IN opera
3f40: 74 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  tors.</li>.<li>A
3f50: 64 64 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61  dd the global va
3f60: 72 69 61 62 6c 65 20 73 71 6c 69 74 65 5f 74 65  riable sqlite_te
3f70: 6d 70 5f 64 69 72 65 63 74 6f 72 79 20 77 68 69  mp_directory whi
3f80: 63 68 20 69 66 20 73 65 74 20 64 65 66 69 6e 65  ch if set define
3f90: 73 20 74 68 65 0a 20 20 20 20 64 69 72 65 63 74  s the.    direct
3fa0: 6f 72 79 20 69 6e 20 77 68 69 63 68 20 74 65 6d  ory in which tem
3fb0: 70 6f 72 61 72 79 20 66 69 6c 65 73 20 61 72 65  porary files are
3fc0: 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c   stored.</li>.<l
3fd0: 69 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75  i>sqlite_interru
3fe0: 70 74 28 29 20 70 6c 61 79 73 20 77 65 6c 6c 20  pt() plays well 
3ff0: 77 69 74 68 20 56 41 43 55 55 4d 2e 3c 2f 6c 69  with VACUUM.</li
4000: 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f  >.<li>Other mino
4010: 72 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69  r bug fixes.</li
4020: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
4030: 4d 61 72 63 68 20 38 20 28 32 2e 38 2e 31 33 29  March 8 (2.8.13)
4040: 7d 20 7b 0a 3c 6c 69 3e 52 65 66 61 63 74 6f 72  } {.<li>Refactor
4050: 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 63 6f   parts of the co
4060: 64 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6d  de in order to m
4070: 61 6b 65 20 74 68 65 20 63 6f 64 65 20 66 6f 6f  ake the code foo
4080: 74 70 72 69 6e 74 0a 20 20 20 20 73 6d 61 6c 6c  tprint.    small
4090: 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20 69 73  er.  The code is
40a0: 20 6e 6f 77 20 61 6c 73 6f 20 61 20 6c 69 74 74   now also a litt
40b0: 6c 65 20 62 69 74 20 66 61 73 74 65 72 2e 3c 2f  le bit faster.</
40c0: 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 65  li>.<li>sqlite_e
40d0: 78 65 63 28 29 20 69 73 20 6e 6f 77 20 69 6d 70  xec() is now imp
40e0: 6c 65 6d 65 6e 74 65 64 20 61 73 20 61 20 77 72  lemented as a wr
40f0: 61 70 70 65 72 20 61 72 6f 75 6e 64 20 73 71 6c  apper around sql
4100: 69 74 65 5f 63 6f 6d 70 69 6c 65 28 29 0a 20 20  ite_compile().  
4110: 20 20 61 6e 64 20 73 71 6c 69 74 65 5f 73 74 65    and sqlite_ste
4120: 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  p().</li>.<li>Th
4130: 65 20 62 75 69 6c 74 2d 69 6e 20 6d 69 6e 28 29  e built-in min()
4140: 20 61 6e 64 20 6d 61 78 28 29 20 66 75 6e 63 74   and max() funct
4150: 69 6f 6e 73 20 6e 6f 77 20 68 6f 6e 6f 72 20 74  ions now honor t
4160: 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65  he difference be
4170: 74 77 65 65 6e 0a 20 20 20 20 4e 55 4d 45 52 49  tween.    NUMERI
4180: 43 20 61 6e 64 20 54 45 58 54 20 64 61 74 61 74  C and TEXT datat
4190: 79 70 65 73 2e 20 20 46 6f 72 6d 65 72 6c 79 2c  ypes.  Formerly,
41a0: 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78 28 29   min() and max()
41b0: 20 61 6c 77 61 79 73 20 61 73 73 75 6d 65 64 0a   always assumed.
41c0: 20 20 20 20 74 68 65 69 72 20 61 72 67 75 6d 65      their argume
41d0: 6e 74 73 20 77 65 72 65 20 6f 66 20 74 79 70 65  nts were of type
41e0: 20 4e 55 4d 45 52 49 43 2e 3c 2f 6c 69 3e 0a 3c   NUMERIC.</li>.<
41f0: 6c 69 3e 4e 65 77 20 48 48 3a 4d 4d 3a 53 53 20  li>New HH:MM:SS 
4200: 6d 6f 64 69 66 69 65 72 20 74 6f 20 74 68 65 20  modifier to the 
4210: 62 75 69 6c 74 2d 69 6e 20 64 61 74 65 2f 74 69  built-in date/ti
4220: 6d 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c  me functions.</l
4230: 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e  i>.<li>Experimen
4240: 74 61 6c 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f  tal sqlite_last_
4250: 73 74 61 74 65 6d 65 6e 74 5f 63 68 61 6e 67 65  statement_change
4260: 73 28 29 20 41 50 49 20 61 64 64 65 64 2e 20 20  s() API added.  
4270: 46 69 78 65 64 20 74 68 65 0a 20 20 20 20 74 68  Fixed the.    th
4280: 65 20 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f  e last_insert_ro
4290: 77 69 64 28 29 20 66 75 6e 63 74 69 6f 6e 20 73  wid() function s
42a0: 6f 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20  o that it works 
42b0: 63 6f 72 72 65 63 74 6c 79 20 77 69 74 68 0a 20  correctly with. 
42c0: 20 20 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69     triggers.</li
42d0: 3e 0a 3c 6c 69 3e 41 64 64 20 66 75 6e 63 74 69  >.<li>Add functi
42e0: 6f 6e 73 20 70 72 6f 74 6f 74 79 70 65 73 20 66  ons prototypes f
42f0: 6f 72 20 74 68 65 20 64 61 74 61 62 61 73 65 20  or the database 
4300: 65 6e 63 72 79 70 74 69 6f 6e 20 41 50 49 2e 3c  encryption API.<
4310: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65 76  /li>.<li>Fix sev
4320: 65 72 61 6c 20 6e 75 69 73 61 6e 63 65 20 62 75  eral nuisance bu
4330: 67 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  gs.</li>.}..chng
4340: 20 7b 32 30 30 34 20 46 65 62 72 75 61 72 79 20   {2004 February 
4350: 38 20 28 32 2e 38 2e 31 32 29 7d 20 7b 0a 3c 6c  8 (2.8.12)} {.<l
4360: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
4370: 20 77 69 6c 6c 20 6d 69 67 68 74 20 63 6f 72 72   will might corr
4380: 75 70 74 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b  upt the rollback
4390: 20 6a 6f 75 72 6e 61 6c 20 69 66 20 61 20 70 6f   journal if a po
43a0: 77 65 72 20 66 61 69 6c 75 72 65 0a 20 20 20 20  wer failure.    
43b0: 6f 72 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67  or external prog
43c0: 72 61 6d 20 68 61 6c 74 20 6f 63 63 75 72 73 20  ram halt occurs 
43d0: 69 6e 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66  in the middle of
43e0: 20 61 20 43 4f 4d 4d 49 54 2e 20 20 54 68 65 20   a COMMIT.  The 
43f0: 63 6f 72 72 75 70 74 0a 20 20 20 20 6a 6f 75 72  corrupt.    jour
4400: 6e 61 6c 20 63 61 6e 20 6c 65 61 64 20 74 6f 20  nal can lead to 
4410: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
4420: 69 6f 6e 20 77 68 65 6e 20 69 74 20 69 73 20 72  ion when it is r
4430: 6f 6c 6c 65 64 20 62 61 63 6b 2e 3c 2f 6c 69 3e  olled back.</li>
4440: 0a 3c 6c 69 3e 52 65 64 75 63 65 20 74 68 65 20  .<li>Reduce the 
4450: 73 69 7a 65 20 61 6e 64 20 69 6e 63 72 65 61 73  size and increas
4460: 65 20 74 68 65 20 73 70 65 65 64 20 6f 66 20 76  e the speed of v
4470: 61 72 69 6f 75 73 20 6d 6f 64 75 6c 65 73 2c 20  arious modules, 
4480: 65 73 70 65 63 69 61 6c 6c 79 0a 20 20 20 20 74  especially.    t
4490: 68 65 20 76 69 72 74 75 61 6c 20 6d 61 63 68 69  he virtual machi
44a0: 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  ne.</li>.<li>All
44b0: 6f 77 20 22 26 6c 74 3b 65 78 70 72 26 67 74 3b  ow "&lt;expr&gt;
44c0: 20 49 4e 20 26 6c 74 3b 74 61 62 6c 65 26 67 74   IN &lt;table&gt
44d0: 3b 22 20 61 73 20 61 20 73 68 6f 72 74 68 61 6e  ;" as a shorthan
44e0: 64 20 66 6f 72 0a 20 20 20 20 22 26 6c 74 3b 65  d for.    "&lt;e
44f0: 78 70 72 26 67 74 3b 20 49 4e 20 28 53 45 4c 45  xpr&gt; IN (SELE
4500: 43 54 20 2a 20 46 52 4f 4d 20 26 6c 74 3b 74 61  CT * FROM &lt;ta
4510: 62 6c 65 26 67 74 3b 22 2e 3c 2f 6c 69 3e 0a 3c  ble&gt;".</li>.<
4520: 6c 69 3e 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  li>Optimizations
4530: 20 74 6f 20 74 68 65 20 73 71 6c 69 74 65 5f 6d   to the sqlite_m
4540: 70 72 69 6e 74 66 28 29 20 72 6f 75 74 69 6e 65  printf() routine
4550: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20  .</li>.<li>Make 
4560: 73 75 72 65 20 74 68 65 20 4d 49 4e 28 29 20 61  sure the MIN() a
4570: 6e 64 20 4d 41 58 28 29 20 6f 70 74 69 6d 69 7a  nd MAX() optimiz
4580: 61 74 69 6f 6e 73 20 77 6f 72 6b 20 77 69 74 68  ations work with
4590: 69 6e 20 73 75 62 71 75 65 72 69 65 73 2e 3c 2f  in subqueries.</
45a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
45b0: 34 20 4a 61 6e 75 61 72 79 20 31 34 20 28 32 2e  4 January 14 (2.
45c0: 38 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  8.11)} {.<li>Fix
45d0: 20 61 20 62 75 67 20 69 6e 20 68 6f 77 20 74 68   a bug in how th
45e0: 65 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 68 61  e IN operator ha
45f0: 6e 64 6c 65 73 20 4e 55 4c 4c 73 20 69 6e 20 73  ndles NULLs in s
4600: 75 62 71 75 65 72 69 65 73 2e 20 20 54 68 65 20  ubqueries.  The 
4610: 62 75 67 0a 20 20 20 20 77 61 73 20 69 6e 74 72  bug.    was intr
4620: 6f 64 75 63 65 64 20 62 79 20 74 68 65 20 70 72  oduced by the pr
4630: 65 76 69 6f 75 73 20 72 65 6c 65 61 73 65 2e 3c  evious release.<
4640: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
4650: 30 34 20 4a 61 6e 75 61 72 79 20 31 33 20 28 32  04 January 13 (2
4660: 2e 38 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .8.10)} {.<li>Fi
4670: 78 20 61 20 70 6f 74 65 6e 74 69 61 6c 20 64 61  x a potential da
4680: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
4690: 6e 20 70 72 6f 62 6c 65 6d 20 6f 6e 20 55 6e 69  n problem on Uni
46a0: 78 20 63 61 75 73 65 64 20 62 79 20 74 68 65 20  x caused by the 
46b0: 66 61 63 74 0a 20 20 20 20 74 68 61 74 20 61 6c  fact.    that al
46c0: 6c 20 70 6f 73 69 78 20 61 64 76 69 73 6f 72 79  l posix advisory
46d0: 20 6c 6f 63 6b 73 20 61 72 65 20 63 6c 65 61 72   locks are clear
46e0: 65 64 20 77 68 65 6e 65 76 65 72 20 79 6f 75 20  ed whenever you 
46f0: 63 6c 6f 73 65 28 29 20 61 20 66 69 6c 65 2e 0a  close() a file..
4700: 20 20 20 20 54 68 65 20 77 6f 72 6b 20 61 72 6f      The work aro
4710: 75 6e 64 20 69 74 20 74 6f 20 65 6d 62 61 72 67  und it to embarg
4720: 6f 20 61 6c 6c 20 63 6c 6f 73 65 28 29 20 63 61  o all close() ca
4730: 6c 6c 73 20 77 68 69 6c 65 20 6c 6f 63 6b 73 20  lls while locks 
4740: 61 72 65 20 0a 20 20 20 20 6f 75 74 73 74 61 6e  are .    outstan
4750: 64 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  ding.</li>.<li>P
4760: 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e  erformance enhan
4770: 63 65 6d 65 6e 74 73 20 6f 6e 20 73 6f 6d 65 20  cements on some 
4780: 63 6f 72 6e 65 72 20 63 61 73 65 73 20 6f 66 20  corner cases of 
4790: 43 4f 55 4e 54 28 2a 29 2e 3c 2f 6c 69 3e 0a 3c  COUNT(*).</li>.<
47a0: 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 74 68 65  li>Make sure the
47b0: 20 69 6e 2d 6d 65 6d 6f 72 79 20 62 61 63 6b 65   in-memory backe
47c0: 6e 64 20 72 65 73 70 6f 6e 73 65 20 73 61 6e 65  nd response sane
47d0: 6c 79 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20 66  ly if malloc() f
47e0: 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ails.</li>.<li>A
47f0: 6c 6c 6f 77 20 73 71 6c 69 74 65 5f 65 78 65 63  llow sqlite_exec
4800: 28 29 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20  () to be called 
4810: 66 72 6f 6d 20 77 69 74 68 69 6e 20 75 73 65 72  from within user
4820: 2d 64 65 66 69 6e 65 64 20 53 51 4c 0a 20 20 20  -defined SQL.   
4830: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
4840: 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 61 63  .<li>Improved ac
4850: 63 75 72 61 63 79 20 6f 66 20 66 6c 6f 61 74 69  curacy of floati
4860: 6e 67 2d 70 6f 69 6e 74 20 63 6f 6e 76 65 72 73  ng-point convers
4870: 69 6f 6e 73 20 75 73 69 6e 67 20 22 6c 6f 6e 67  ions using "long
4880: 20 64 6f 75 62 6c 65 22 2e 3c 2f 6c 69 3e 0a 3c   double".</li>.<
4890: 6c 69 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20  li>Bug fixes in 
48a0: 74 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c  the experimental
48b0: 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74   date/time funct
48c0: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ions.</li>.}..ch
48d0: 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79  ng {2004 January
48e0: 20 35 20 28 32 2e 38 2e 39 29 7d 20 7b 0a 3c 6c   5 (2.8.9)} {.<l
48f0: 69 3e 46 69 78 20 61 20 33 32 2d 62 69 74 20 69  i>Fix a 32-bit i
4900: 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20  nteger overflow 
4910: 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 63 6f 75  problem that cou
4920: 6c 64 20 72 65 73 75 6c 74 20 69 6e 20 63 6f 72  ld result in cor
4930: 72 75 70 74 0a 20 20 20 20 69 6e 64 69 63 65 73  rupt.    indices
4940: 20 69 6e 20 61 20 64 61 74 61 62 61 73 65 20 69   in a database i
4950: 66 20 6c 61 72 67 65 20 6e 65 67 61 74 69 76 65  f large negative
4960: 20 6e 75 6d 62 65 72 73 20 28 6c 65 73 73 20 74   numbers (less t
4970: 68 61 6e 20 2d 32 31 34 37 34 38 33 36 34 38 29  han -2147483648)
4980: 0a 20 20 20 20 77 65 72 65 20 69 6e 73 65 72 74  .    were insert
4990: 65 64 20 69 6e 74 6f 20 61 20 69 6e 64 65 78 65  ed into a indexe
49a0: 64 20 6e 75 6d 65 72 69 63 20 63 6f 6c 75 6d 6e  d numeric column
49b0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
49c0: 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 62 6c 65 6d   locking problem
49d0: 20 6f 6e 20 6d 75 6c 74 69 2d 74 68 72 65 61 64   on multi-thread
49e0: 65 64 20 4c 69 6e 75 78 20 69 6d 70 6c 65 6d 65  ed Linux impleme
49f0: 6e 74 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  ntations.</li>.<
4a00: 6c 69 3e 41 6c 77 61 79 73 20 75 73 65 20 22 2e  li>Always use ".
4a10: 22 20 69 6e 73 74 65 61 64 20 6f 66 20 22 2c 22  " instead of ","
4a20: 20 61 73 20 74 68 65 20 64 65 63 69 6d 61 6c 20   as the decimal 
4a30: 70 6f 69 6e 74 20 65 76 65 6e 20 69 66 20 74 68  point even if th
4a40: 65 20 6c 6f 63 61 6c 65 0a 20 20 20 20 72 65 71  e locale.    req
4a50: 75 65 73 74 73 20 22 2c 22 2e 3c 2f 6c 69 3e 0a  uests ",".</li>.
4a60: 3c 6c 69 3e 41 64 64 65 64 20 55 54 43 20 74 6f  <li>Added UTC to
4a70: 20 6c 6f 63 61 6c 74 69 6d 65 20 63 6f 6e 76 65   localtime conve
4a80: 72 73 69 6f 6e 73 20 74 6f 20 74 68 65 20 65 78  rsions to the ex
4a90: 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f  perimental date/
4aa0: 74 69 6d 65 0a 20 20 20 20 66 75 6e 63 74 69 6f  time.    functio
4ab0: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ns.</li>.<li>Bug
4ac0: 20 66 69 78 65 73 20 74 6f 20 64 61 74 65 2f 74   fixes to date/t
4ad0: 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f  ime functions.</
4ae0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4af0: 33 20 44 65 63 65 6d 62 65 72 20 31 37 20 28 32  3 December 17 (2
4b00: 2e 38 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .8.8)} {.<li>Fix
4b10: 20 61 20 63 72 69 74 69 63 61 6c 20 62 75 67 20   a critical bug 
4b20: 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 74 6f 20  introduced into 
4b30: 32 2e 38 2e 30 20 77 68 69 63 68 20 63 6f 75 6c  2.8.0 which coul
4b40: 64 20 63 61 75 73 65 0a 20 20 20 20 64 61 74 61  d cause.    data
4b50: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 2e  base corruption.
4b60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
4b70: 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 33 2d 77  problem with 3-w
4b80: 61 79 20 6a 6f 69 6e 73 20 74 68 61 74 20 64 6f  ay joins that do
4b90: 20 6e 6f 74 20 75 73 65 20 69 6e 64 69 63 65 73   not use indices
4ba0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41  </li>.<li>The VA
4bb0: 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20 6e 6f 77  CUUM command now
4bc0: 20 77 6f 72 6b 73 20 77 69 74 68 20 74 68 65 20   works with the 
4bd0: 6e 6f 6e 2d 63 61 6c 6c 62 61 63 6b 20 41 50 49  non-callback API
4be0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76  </li>.<li>Improv
4bf0: 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 22 50  ements to the "P
4c00: 52 41 47 4d 41 20 69 6e 74 65 67 72 69 74 79 5f  RAGMA integrity_
4c10: 63 68 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 3c 2f  check" command</
4c20: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4c30: 33 20 44 65 63 65 6d 62 65 72 20 34 20 28 32 2e  3 December 4 (2.
4c40: 38 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  8.7)} {.<li>Adde
4c50: 64 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73  d experimental s
4c60: 71 6c 69 74 65 5f 62 69 6e 64 28 29 20 61 6e 64  qlite_bind() and
4c70: 20 73 71 6c 69 74 65 5f 72 65 73 65 74 28 29 20   sqlite_reset() 
4c80: 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  APIs.</li>.<li>I
4c90: 66 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  f the name of th
4ca0: 65 20 64 61 74 61 62 61 73 65 20 69 73 20 61 6e  e database is an
4cb0: 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2c 20 6f   empty string, o
4cc0: 70 65 6e 20 61 20 6e 65 77 20 64 61 74 61 62 61  pen a new databa
4cd0: 73 65 0a 20 20 20 20 69 6e 20 61 20 74 65 6d 70  se.    in a temp
4ce0: 6f 72 61 72 79 20 66 69 6c 65 20 74 68 61 74 20  orary file that 
4cf0: 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  is automatically
4d00: 20 64 65 6c 65 74 65 64 20 77 68 65 6e 20 74 68   deleted when th
4d10: 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 69  e database.    i
4d20: 73 20 63 6c 6f 73 65 64 2e 3c 2f 6c 69 3e 0a 3c  s closed.</li>.<
4d30: 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 65  li>Performance e
4d40: 6e 68 61 6e 63 65 6d 65 6e 74 73 20 69 6e 20 74  nhancements in t
4d50: 68 65 20 6c 65 6d 6f 6e 2d 67 65 6e 65 72 61 74  he lemon-generat
4d60: 65 64 20 70 61 72 73 65 72 3c 2f 6c 69 3e 0a 3c  ed parser</li>.<
4d70: 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 20  li>Experimental 
4d80: 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69  date/time functi
4d90: 6f 6e 73 20 72 65 76 69 73 65 64 2e 3c 2f 6c 69  ons revised.</li
4da0: 3e 0a 3c 6c 69 3e 44 69 73 61 6c 6c 6f 77 20 74  >.<li>Disallow t
4db0: 65 6d 70 6f 72 61 72 79 20 69 6e 64 69 63 65 73  emporary indices
4dc0: 20 6f 6e 20 70 65 72 6d 61 6e 65 6e 74 20 74 61   on permanent ta
4dd0: 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  bles.</li>.<li>D
4de0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
4df0: 61 74 65 73 20 61 6e 64 20 74 79 70 6f 20 66 69  ates and typo fi
4e00: 78 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  xes</li>.<li>Add
4e10: 65 64 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20  ed experimental 
4e20: 73 71 6c 69 74 65 5f 70 72 6f 67 72 65 73 73 5f  sqlite_progress_
4e30: 68 61 6e 64 6c 65 72 28 29 20 63 61 6c 6c 62 61  handler() callba
4e40: 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ck API</li>.<li>
4e50: 52 65 6d 6f 76 65 64 20 73 75 70 70 6f 72 74 20  Removed support 
4e60: 66 6f 72 20 74 68 65 20 4f 72 61 63 6c 65 38 20  for the Oracle8 
4e70: 6f 75 74 65 72 20 6a 6f 69 6e 20 73 79 6e 74 61  outer join synta
4e80: 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  x.</li>.<li>Allo
4e90: 77 20 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20  w GLOB and LIKE 
4ea0: 6f 70 65 72 61 74 6f 72 73 20 74 6f 20 77 6f 72  operators to wor
4eb0: 6b 20 61 73 20 66 75 6e 63 74 69 6f 6e 73 2e 3c  k as functions.<
4ec0: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
4ed0: 69 6e 6f 72 20 64 6f 63 75 6d 65 6e 74 61 74 69  inor documentati
4ee0: 6f 6e 20 61 6e 64 20 6d 61 6b 65 66 69 6c 65 20  on and makefile 
4ef0: 63 68 61 6e 67 65 73 20 61 6e 64 20 62 75 67 20  changes and bug 
4f00: 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixes.</li>.}..c
4f10: 68 6e 67 20 7b 32 30 30 33 20 41 75 67 75 73 74  hng {2003 August
4f20: 20 32 31 20 28 32 2e 38 2e 36 29 7d 20 7b 0a 3c   21 (2.8.6)} {.<
4f30: 6c 69 3e 4d 6f 76 65 64 20 74 68 65 20 43 56 53  li>Moved the CVS
4f40: 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 77   repository to w
4f50: 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 3c 2f 6c  ww.sqlite.org</l
4f60: 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 20 74 68  i>.<li>Update th
4f70: 65 20 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20  e NULL-handling 
4f80: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f  documentation.</
4f90: 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65  li>.<li>Experime
4fa0: 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66  ntal date/time f
4fb0: 75 6e 63 74 69 6f 6e 73 20 61 64 64 65 64 2e 3c  unctions added.<
4fc0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
4fd0: 3a 20 63 6f 72 72 65 63 74 6c 79 20 65 76 61 6c  : correctly eval
4fe0: 75 61 74 65 20 61 20 76 69 65 77 20 6f 66 20 61  uate a view of a
4ff0: 20 76 69 65 77 20 77 69 74 68 6f 75 74 20 73 65   view without se
5000: 67 66 61 75 6c 74 69 6e 67 2e 3c 2f 6c 69 3e 0a  gfaulting.</li>.
5010: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 70 72 65  <li>Bug fix: pre
5020: 76 65 6e 74 20 64 61 74 61 62 61 73 65 20 63 6f  vent database co
5030: 72 72 75 70 74 69 6f 6e 20 69 66 20 79 6f 75 20  rruption if you 
5040: 64 72 6f 70 70 65 64 20 61 0a 20 20 20 20 74 72  dropped a.    tr
5050: 69 67 67 65 72 20 74 68 61 74 20 68 61 64 20 74  igger that had t
5060: 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20  he same name as 
5070: 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  a table.</li>.<l
5080: 69 3e 42 75 67 20 66 69 78 3a 20 61 6c 6c 6f 77  i>Bug fix: allow
5090: 20 61 20 56 41 43 55 55 4d 20 28 77 69 74 68 6f   a VACUUM (witho
50a0: 75 74 20 73 65 67 66 61 75 6c 74 69 6e 67 29 20  ut segfaulting) 
50b0: 6f 6e 20 61 6e 20 65 6d 70 74 79 0a 20 20 20 20  on an empty.    
50c0: 64 61 74 61 62 61 73 65 20 61 66 74 65 72 20 73  database after s
50d0: 65 74 74 69 6e 67 20 74 68 65 20 45 4d 50 54 59  etting the EMPTY
50e0: 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b  _RESULT_CALLBACK
50f0: 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c  S pragma.</li>.<
5100: 6c 69 3e 42 75 67 20 66 69 78 3a 20 69 66 20 61  li>Bug fix: if a
5110: 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20  n integer value 
5120: 77 69 6c 6c 20 6e 6f 74 20 66 69 74 20 69 6e 20  will not fit in 
5130: 61 20 33 32 2d 62 69 74 20 69 6e 74 2c 20 73 74  a 32-bit int, st
5140: 6f 72 65 20 69 74 20 69 6e 0a 20 20 20 20 61 20  ore it in.    a 
5150: 64 6f 75 62 6c 65 20 69 6e 73 74 65 61 64 2e 3c  double instead.<
5160: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
5170: 3a 20 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20  : Make sure the 
5180: 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 64 69 72  journal file dir
5190: 65 63 74 6f 72 79 20 65 6e 74 72 79 20 69 73 20  ectory entry is 
51a0: 63 6f 6d 6d 69 74 74 65 64 20 74 6f 20 64 69 73  committed to dis
51b0: 6b 0a 20 20 20 20 62 65 66 6f 72 65 20 77 72 69  k.    before wri
51c0: 74 69 6e 67 20 74 68 65 20 64 61 74 61 62 61 73  ting the databas
51d0: 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e file.</li>.}..
51e0: 63 68 6e 67 20 7b 32 30 30 33 20 4a 75 6c 79 20  chng {2003 July 
51f0: 32 32 20 28 32 2e 38 2e 35 29 7d 20 7b 0a 3c 6c  22 (2.8.5)} {.<l
5200: 69 3e 4d 61 6b 65 20 4c 49 4d 49 54 20 77 6f 72  i>Make LIMIT wor
5210: 6b 20 6f 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20  k on a compound 
5220: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
5230: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4d 49 54  .</li>.<li>LIMIT
5240: 20 30 20 6e 6f 77 20 73 68 6f 77 73 20 6e 6f 20   0 now shows no 
5250: 72 6f 77 73 2e 20 20 55 73 65 20 4c 49 4d 49 54  rows.  Use LIMIT
5260: 20 2d 31 20 74 6f 20 73 65 65 20 61 6c 6c 20 72   -1 to see all r
5270: 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ows.</li>.<li>Co
5280: 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 63  rrectly handle c
5290: 6f 6d 70 61 72 69 73 6f 6e 73 20 62 65 74 77 65  omparisons betwe
52a0: 65 6e 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52  en an INTEGER PR
52b0: 49 4d 41 52 59 20 4b 45 59 20 61 6e 64 0a 20 20  IMARY KEY and.  
52c0: 20 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69    a floating poi
52d0: 6e 74 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a  nt number.</li>.
52e0: 3c 6c 69 3e 46 69 78 20 73 65 76 65 72 61 6c 20  <li>Fix several 
52f0: 69 6d 70 6f 72 74 61 6e 74 20 62 75 67 73 20 69  important bugs i
5300: 6e 20 74 68 65 20 6e 65 77 20 41 54 54 41 43 48  n the new ATTACH
5310: 20 61 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d   and DETACH comm
5320: 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  ands.</li>.<li>U
5330: 70 64 61 74 65 64 20 74 68 65 20 3c 61 20 68 72  pdated the <a hr
5340: 65 66 3d 22 6e 75 6c 6c 73 2e 68 74 6d 6c 22 3e  ef="nulls.html">
5350: 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f  NULL-handling do
5360: 63 75 6d 65 6e 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e  cument</a>.</li>
5370: 20 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 4e 55 4c 4c   .<li>Allow NULL
5380: 20 61 72 67 75 6d 65 6e 74 73 20 69 6e 20 73 71   arguments in sq
5390: 6c 69 74 65 5f 63 6f 6d 70 69 6c 65 28 29 20 61  lite_compile() a
53a0: 6e 64 20 73 71 6c 69 74 65 5f 73 74 65 70 28 29  nd sqlite_step()
53b0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20  .</li>.<li>Many 
53c0: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c  minor bug fixes<
53d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
53e0: 30 33 20 4a 75 6e 65 20 32 39 20 28 32 2e 38 2e  03 June 29 (2.8.
53f0: 34 29 7d 20 7b 0a 3c 6c 69 3e 45 6e 68 61 6e 63  4)} {.<li>Enhanc
5400: 65 64 20 74 68 65 20 22 50 52 41 47 4d 41 20 69  ed the "PRAGMA i
5410: 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 22 20  ntegrity_check" 
5420: 63 6f 6d 6d 61 6e 64 20 74 6f 20 76 65 72 69 66  command to verif
5430: 79 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a  y indices.</li>.
5440: 3c 6c 69 3e 41 64 64 65 64 20 61 75 74 68 6f 72  <li>Added author
5450: 69 7a 61 74 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f  ization hooks fo
5460: 72 20 74 68 65 20 6e 65 77 20 41 54 54 41 43 48  r the new ATTACH
5470: 20 61 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d   and DETACH comm
5480: 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ands.</li>.<li>M
5490: 61 6e 79 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  any documentatio
54a0: 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c  n updates</li>.<
54b0: 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75  li>Many minor bu
54c0: 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a  g fixes</li>.}..
54d0: 63 68 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65 20  chng {2003 June 
54e0: 34 20 28 32 2e 38 2e 33 29 7d 20 7b 0a 3c 6c 69  4 (2.8.3)} {.<li
54f0: 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74  >Fix a problem t
5500: 68 61 74 20 77 69 6c 6c 20 63 6f 72 72 75 70 74  hat will corrupt
5510: 20 74 68 65 20 69 6e 64 69 63 65 73 20 6f 6e 20   the indices on 
5520: 61 20 74 61 62 6c 65 20 69 66 20 79 6f 75 0a 20  a table if you. 
5530: 20 20 20 64 6f 20 61 6e 20 49 4e 53 45 52 54 20     do an INSERT 
5540: 4f 52 20 52 45 50 4c 41 43 45 20 6f 72 20 61 6e  OR REPLACE or an
5550: 20 55 50 44 41 54 45 20 4f 52 20 52 45 50 4c 41   UPDATE OR REPLA
5560: 43 45 20 6f 6e 20 61 20 74 61 62 6c 65 20 74 68  CE on a table th
5570: 61 74 0a 20 20 20 20 63 6f 6e 74 61 69 6e 73 20  at.    contains 
5580: 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41  an INTEGER PRIMA
5590: 52 59 20 4b 45 59 20 70 6c 75 73 20 6f 6e 65 20  RY KEY plus one 
55a0: 6f 72 20 6d 6f 72 65 20 69 6e 64 69 63 65 73 2e  or more indices.
55b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
55c0: 62 75 67 20 69 6e 20 77 69 6e 64 6f 77 73 20 6c  bug in windows l
55d0: 6f 63 6b 69 6e 67 20 63 6f 64 65 20 73 6f 20 74  ocking code so t
55e0: 68 61 74 20 6c 6f 63 6b 73 20 77 6f 72 6b 20 63  hat locks work c
55f0: 6f 72 72 65 63 74 6c 79 0a 20 20 20 20 77 68 65  orrectly.    whe
5600: 6e 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79  n simultaneously
5610: 20 61 63 63 65 73 73 65 64 20 62 79 20 57 69 6e   accessed by Win
5620: 39 35 20 61 6e 64 20 57 69 6e 4e 54 20 73 79 73  95 and WinNT sys
5630: 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  tems.</li>.<li>A
5640: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 66  dd the ability f
5650: 6f 72 20 49 4e 53 45 52 54 20 61 6e 64 20 55 50  or INSERT and UP
5660: 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73 20  DATE statements 
5670: 74 6f 20 72 65 66 65 72 20 74 6f 20 74 68 65 0a  to refer to the.
5680: 20 20 20 20 22 72 6f 77 69 64 22 20 28 6f 72 20      "rowid" (or 
5690: 22 5f 72 6f 77 69 64 5f 22 20 6f 72 20 22 6f 69  "_rowid_" or "oi
56a0: 64 22 29 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69  d") columns.</li
56b0: 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 69 6d 70 6f  >.<li>Other impo
56c0: 72 74 61 6e 74 20 62 75 67 20 66 69 78 65 73 3c  rtant bug fixes<
56d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
56e0: 30 33 20 4d 61 79 20 31 37 20 28 32 2e 38 2e 32  03 May 17 (2.8.2
56f0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70  )} {.<li>Fix a p
5700: 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c  roblem that will
5710: 20 63 6f 72 72 75 70 74 20 74 68 65 20 64 61 74   corrupt the dat
5720: 61 62 61 73 65 20 66 69 6c 65 20 69 66 20 79 6f  abase file if yo
5730: 75 20 64 72 6f 70 20 61 0a 20 20 20 20 74 61 62  u drop a.    tab
5740: 6c 65 20 66 72 6f 6d 20 74 68 65 20 6d 61 69 6e  le from the main
5750: 20 64 61 74 61 62 61 73 65 20 74 68 61 74 20 68   database that h
5760: 61 73 20 61 20 54 45 4d 50 20 69 6e 64 65 78 2e  as a TEMP index.
5770: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5780: 30 30 33 20 4d 61 79 20 31 36 20 28 32 2e 38 2e  003 May 16 (2.8.
5790: 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65 61 63 74 69  1)} {.<li>Reacti
57a0: 76 61 74 65 64 20 74 68 65 20 56 41 43 55 55 4d  vated the VACUUM
57b0: 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72 65   command that re
57c0: 63 6c 61 69 6d 73 20 75 6e 75 73 65 64 20 64 69  claims unused di
57d0: 73 6b 20 73 70 61 63 65 20 69 6e 20 0a 20 20 20  sk space in .   
57e0: 20 61 20 64 61 74 61 62 61 73 65 20 66 69 6c 65   a database file
57f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
5800: 20 74 68 65 20 41 54 54 41 43 48 20 61 6e 64 20   the ATTACH and 
5810: 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73 20  DETACH commands 
5820: 74 6f 20 61 6c 6c 6f 77 20 69 6e 74 65 72 61 63  to allow interac
5830: 74 69 6e 67 20 77 69 74 68 20 6d 75 6c 74 69 70  ting with multip
5840: 6c 65 0a 20 20 20 20 64 61 74 61 62 61 73 65 20  le.    database 
5850: 66 69 6c 65 73 20 61 74 20 74 68 65 20 73 61 6d  files at the sam
5860: 65 20 74 69 6d 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e time.</li>.<li
5870: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
5880: 6f 72 20 54 45 4d 50 20 74 72 69 67 67 65 72 73  or TEMP triggers
5890: 20 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f 6c   and indices.</l
58a0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
58b0: 70 6f 72 74 20 66 6f 72 20 69 6e 2d 6d 65 6d 6f  port for in-memo
58c0: 72 79 20 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c  ry databases.</l
58d0: 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 74  i>.<li>Removed t
58e0: 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20  he experimental 
58f0: 73 71 6c 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f  sqlite_open_aux_
5900: 66 69 6c 65 28 29 2e 20 20 49 74 73 20 66 75 6e  file().  Its fun
5910: 63 74 69 6f 6e 20 69 73 0a 20 20 20 20 73 75 62  ction is.    sub
5920: 73 75 6d 65 64 20 69 6e 20 74 68 65 20 6e 65 77  sumed in the new
5930: 20 41 54 54 41 43 48 20 63 6f 6d 6d 61 6e 64 2e   ATTACH command.
5940: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 72  </li>.<li>The pr
5950: 65 63 65 64 65 6e 63 65 20 6f 72 64 65 72 20 66  ecedence order f
5960: 6f 72 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63  or ON CONFLICT c
5970: 6c 61 75 73 65 73 20 77 61 73 20 63 68 61 6e 67  lauses was chang
5980: 65 64 20 73 6f 20 74 68 61 74 0a 20 20 20 20 4f  ed so that.    O
5990: 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73  N CONFLICT claus
59a0: 65 73 20 6f 6e 20 42 45 47 49 4e 20 73 74 61 74  es on BEGIN stat
59b0: 65 6d 65 6e 74 73 20 68 61 76 65 20 61 20 68 69  ements have a hi
59c0: 67 68 65 72 20 70 72 65 63 65 64 65 6e 63 65 20  gher precedence 
59d0: 74 68 61 6e 0a 20 20 20 20 4f 4e 20 43 4f 4e 46  than.    ON CONF
59e0: 4c 49 43 54 20 63 6c 61 75 73 65 73 20 6f 6e 20  LICT clauses on 
59f0: 63 6f 6e 73 74 72 61 69 6e 74 73 2e 0a 3c 6c 69  constraints..<li
5a00: 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20  >Many, many bug 
5a10: 66 69 78 65 73 20 61 6e 64 20 63 6f 6d 70 61 74  fixes and compat
5a20: 69 62 69 6c 69 74 79 20 65 6e 68 61 6e 63 65 6d  ibility enhancem
5a30: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ents.</li>.}..ch
5a40: 6e 67 20 7b 32 30 30 33 20 46 65 62 20 31 36 20  ng {2003 Feb 16 
5a50: 28 32 2e 38 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d  (2.8.0)} {.<li>M
5a60: 6f 64 69 66 69 65 64 20 74 68 65 20 6a 6f 75 72  odified the jour
5a70: 6e 61 6c 20 66 69 6c 65 20 66 6f 72 6d 61 74 20  nal file format 
5a80: 74 6f 20 6d 61 6b 65 20 69 74 20 6d 6f 72 65 20  to make it more 
5a90: 72 65 73 69 73 74 61 6e 74 20 74 6f 20 63 6f 72  resistant to cor
5aa0: 72 75 70 74 69 6f 6e 0a 20 20 20 20 74 68 61 74  ruption.    that
5ab0: 20 63 61 6e 20 6f 63 63 75 72 20 61 66 74 65 72   can occur after
5ac0: 20 61 6e 20 4f 53 20 63 72 61 73 68 20 6f 72 20   an OS crash or 
5ad0: 70 6f 77 65 72 20 66 61 69 6c 75 72 65 2e 3c 2f  power failure.</
5ae0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20  li>.<li>Added a 
5af0: 6e 65 77 20 43 2f 43 2b 2b 20 41 50 49 20 74 68  new C/C++ API th
5b00: 61 74 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20  at does not use 
5b10: 63 61 6c 6c 62 61 63 6b 20 66 6f 72 20 72 65 74  callback for ret
5b20: 75 72 6e 69 6e 67 20 64 61 74 61 2e 3c 2f 6c 69  urning data.</li
5b30: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
5b40: 4a 61 6e 20 32 35 20 28 32 2e 37 2e 36 29 7d 20  Jan 25 (2.7.6)} 
5b50: 7b 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63  {.<li>Performanc
5b60: 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 20  e improvements. 
5b70: 20 54 68 65 20 6c 69 62 72 61 72 79 20 69 73 20   The library is 
5b80: 6e 6f 77 20 6d 75 63 68 20 66 61 73 74 65 72 2e  now much faster.
5b90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
5ba0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 73 65  the <b>sqlite_se
5bb0: 74 5f 61 75 74 68 6f 72 69 7a 65 72 28 29 3c 2f  t_authorizer()</
5bc0: 62 3e 20 41 50 49 2e 20 20 46 6f 72 6d 61 6c 20  b> API.  Formal 
5bd0: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 68 61  documentation ha
5be0: 73 0a 20 20 20 20 6e 6f 74 20 62 65 65 6e 20 77  s.    not been w
5bf0: 72 69 74 74 65 6e 20 2d 20 73 65 65 20 74 68 65  ritten - see the
5c00: 20 73 6f 75 72 63 65 20 63 6f 64 65 20 63 6f 6d   source code com
5c10: 6d 65 6e 74 73 20 66 6f 72 20 69 6e 73 74 72 75  ments for instru
5c20: 63 74 69 6f 6e 73 20 6f 6e 0a 20 20 20 20 68 6f  ctions on.    ho
5c30: 77 20 74 6f 20 75 73 65 20 74 68 69 73 20 66 75  w to use this fu
5c40: 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  nction.</li>.<li
5c50: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68  >Fix a bug in th
5c60: 65 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72 20  e GLOB operator 
5c70: 74 68 61 74 20 77 61 73 20 70 72 65 76 65 6e 74  that was prevent
5c80: 69 6e 67 20 69 74 20 66 72 6f 6d 20 77 6f 72 6b  ing it from work
5c90: 69 6e 67 0a 20 20 20 20 77 69 74 68 20 75 70 70  ing.    with upp
5ca0: 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72 73 2e  er-case letters.
5cb0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75  </li>.<li>Variou
5cc0: 73 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65  s minor bug fixe
5cd0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
5ce0: 7b 32 30 30 32 20 44 65 63 20 32 37 20 28 32 2e  {2002 Dec 27 (2.
5cf0: 37 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  7.5)} {.<li>Fix 
5d00: 61 6e 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64  an uninitialized
5d10: 20 76 61 72 69 61 62 6c 65 20 69 6e 20 70 61 67   variable in pag
5d20: 65 72 2e 63 20 77 68 69 63 68 20 63 6f 75 6c 64  er.c which could
5d30: 20 28 77 69 74 68 20 61 20 70 72 6f 62 61 62 69   (with a probabi
5d40: 6c 69 74 79 0a 20 20 20 20 6f 66 20 61 62 6f 75  lity.    of abou
5d50: 74 20 31 20 69 6e 20 34 20 62 69 6c 6c 69 6f 6e  t 1 in 4 billion
5d60: 29 20 72 65 73 75 6c 74 20 69 6e 20 61 20 63 6f  ) result in a co
5d70: 72 72 75 70 74 65 64 20 64 61 74 61 62 61 73 65  rrupted database
5d80: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5d90: 32 30 30 32 20 44 65 63 20 31 37 20 28 32 2e 37  2002 Dec 17 (2.7
5da0: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 44 61 74 61 62  .4)} {.<li>Datab
5db0: 61 73 65 20 66 69 6c 65 73 20 63 61 6e 20 6e 6f  ase files can no
5dc0: 77 20 67 72 6f 77 20 74 6f 20 62 65 20 75 70 20  w grow to be up 
5dd0: 74 6f 20 32 5e 34 31 20 62 79 74 65 73 2e 20 20  to 2^41 bytes.  
5de0: 54 68 65 20 6f 6c 64 20 6c 69 6d 69 74 0a 20 20  The old limit.  
5df0: 20 20 77 61 73 20 32 5e 33 31 20 62 79 74 65 73    was 2^31 bytes
5e00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f  .</li>.<li>The o
5e10: 70 74 69 6d 69 7a 65 72 20 77 69 6c 6c 20 6e 6f  ptimizer will no
5e20: 77 20 73 63 61 6e 20 74 61 62 6c 65 73 20 69 6e  w scan tables in
5e30: 20 74 68 65 20 72 65 76 65 72 73 65 20 69 66 20   the reverse if 
5e40: 64 6f 69 6e 67 20 73 6f 20 77 69 6c 6c 0a 20 20  doing so will.  
5e50: 20 20 73 61 74 69 73 66 79 20 61 6e 20 4f 52 44    satisfy an ORD
5e60: 45 52 20 42 59 20 2e 2e 2e 20 44 45 53 43 20 63  ER BY ... DESC c
5e70: 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lause.</li>.<li>
5e80: 54 68 65 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d  The full pathnam
5e90: 65 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 73  e of the databas
5ea0: 65 20 66 69 6c 65 20 69 73 20 6e 6f 77 20 72 65  e file is now re
5eb0: 6d 65 6d 62 65 72 65 64 20 65 76 65 6e 20 69 66  membered even if
5ec0: 0a 20 20 20 20 61 20 72 65 6c 61 74 69 76 65 20  .    a relative 
5ed0: 70 61 74 68 20 69 73 20 70 61 73 73 65 64 20 69  path is passed i
5ee0: 6e 74 6f 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28  nto sqlite_open(
5ef0: 29 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20  ).  This allows 
5f00: 0a 20 20 20 20 74 68 65 20 6c 69 62 72 61 72 79  .    the library
5f10: 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 70 65   to continue ope
5f20: 72 61 74 69 6e 67 20 63 6f 72 72 65 63 74 6c 79  rating correctly
5f30: 20 61 66 74 65 72 20 61 20 63 68 64 69 72 28 29   after a chdir()
5f40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64  .</li>.<li>Speed
5f50: 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e   improvements in
5f60: 20 74 68 65 20 56 44 42 45 2e 3c 2f 6c 69 3e 0a   the VDBE.</li>.
5f70: 3c 6c 69 3e 4c 6f 74 73 20 6f 66 20 6c 69 74 74  <li>Lots of litt
5f80: 6c 65 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c  le bug fixes.</l
5f90: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
5fa0: 20 4f 63 74 20 33 30 20 28 32 2e 37 2e 33 29 7d   Oct 30 (2.7.3)}
5fb0: 20 7b 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 63   {.<li>Various c
5fc0: 6f 6d 70 69 6c 65 72 20 63 6f 6d 70 61 74 69 62  ompiler compatib
5fd0: 69 6c 69 74 79 20 66 69 78 65 73 2e 3c 2f 6c 69  ility fixes.</li
5fe0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
5ff0: 69 6e 20 74 68 65 20 22 65 78 70 72 20 49 4e 20  in the "expr IN 
6000: 28 29 22 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c  ()" operator.</l
6010: 69 3e 0a 3c 6c 69 3e 41 63 63 65 70 74 20 63 6f  i>.<li>Accept co
6020: 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 70 61  lumn names in pa
6030: 72 65 6e 74 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a  rentheses.</li>.
6040: 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65  <li>Fix a proble
6050: 6d 20 77 69 74 68 20 73 74 72 69 6e 67 20 6d 65  m with string me
6060: 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 20  mory management 
6070: 69 6e 20 74 68 65 20 56 44 42 45 3c 2f 6c 69 3e  in the VDBE</li>
6080: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
6090: 6e 20 74 68 65 20 22 74 61 62 6c 65 5f 69 6e 66  n the "table_inf
60a0: 6f 22 20 70 72 61 67 6d 61 22 3c 2f 6c 69 3e 0a  o" pragma"</li>.
60b0: 3c 6c 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73  <li>Export the s
60c0: 71 6c 69 74 65 5f 66 75 6e 63 74 69 6f 6e 5f 74  qlite_function_t
60d0: 79 70 65 28 29 20 41 50 49 20 66 75 6e 63 74 69  ype() API functi
60e0: 6f 6e 20 69 6e 20 74 68 65 20 57 69 6e 64 6f 77  on in the Window
60f0: 73 20 44 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  s DLL</li>.<li>F
6100: 69 78 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76  ix locking behav
6110: 69 6f 72 20 75 6e 64 65 72 20 77 69 6e 64 6f 77  ior under window
6120: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  s</li>.<li>Fix a
6130: 20 62 75 67 20 69 6e 20 4c 45 46 54 20 4f 55 54   bug in LEFT OUT
6140: 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a 0a  ER JOIN</li>.}..
6150: 63 68 6e 67 20 7b 32 30 30 32 20 53 65 70 20 32  chng {2002 Sep 2
6160: 35 20 28 32 2e 37 2e 32 29 7d 20 7b 0a 3c 6c 69  5 (2.7.2)} {.<li
6170: 3e 50 72 65 76 65 6e 74 20 6a 6f 75 72 6e 61 6c  >Prevent journal
6180: 20 66 69 6c 65 20 6f 76 65 72 66 6c 6f 77 73 20   file overflows 
6190: 6f 6e 20 68 75 67 65 20 74 72 61 6e 73 61 63 74  on huge transact
61a0: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ions.</li>.<li>F
61b0: 69 78 20 61 20 6d 65 6d 6f 72 79 20 6c 65 61 6b  ix a memory leak
61c0: 20 74 68 61 74 20 6f 63 63 75 72 72 65 64 20 77   that occurred w
61d0: 68 65 6e 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28  hen sqlite_open(
61e0: 29 20 66 61 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c  ) failed.</li>.<
61f0: 6c 69 3e 48 6f 6e 6f 72 20 74 68 65 20 4f 52 44  li>Honor the ORD
6200: 45 52 20 42 59 20 61 6e 64 20 4c 49 4d 49 54 20  ER BY and LIMIT 
6210: 63 6c 61 75 73 65 20 6f 66 20 61 20 53 45 4c 45  clause of a SELE
6220: 43 54 20 65 76 65 6e 20 69 66 20 74 68 65 0a 20  CT even if the. 
6230: 20 20 20 72 65 73 75 6c 74 20 73 65 74 20 69 73     result set is
6240: 20 75 73 65 64 20 66 6f 72 20 61 6e 20 49 4e 53   used for an INS
6250: 45 52 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f  ERT.</li>.<li>Do
6260: 20 6e 6f 74 20 70 75 74 20 77 72 69 74 65 20 6c   not put write l
6270: 6f 63 6b 73 20 6f 6e 20 74 68 65 20 66 69 6c 65  ocks on the file
6280: 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 54 45   used to hold TE
6290: 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a  MP tables.</li>.
62a0: 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65  <li>Added docume
62b0: 6e 74 61 74 69 6f 6e 20 6f 6e 20 53 45 4c 45 43  ntation on SELEC
62c0: 54 20 44 49 53 54 49 4e 43 54 20 61 6e 64 20 6f  T DISTINCT and o
62d0: 6e 20 68 6f 77 20 53 51 4c 69 74 65 20 68 61 6e  n how SQLite han
62e0: 64 6c 65 73 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e  dles NULLs.</li>
62f0: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c  .<li>Fix a probl
6300: 65 6d 20 74 68 61 74 20 77 61 73 20 63 61 75 73  em that was caus
6310: 69 6e 67 20 70 6f 6f 72 20 70 65 72 66 6f 72 6d  ing poor perform
6320: 61 6e 63 65 20 77 68 65 6e 20 6d 61 6e 79 20 74  ance when many t
6330: 68 6f 75 73 61 6e 64 73 0a 20 20 20 20 6f 66 20  housands.    of 
6340: 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 20 77  SQL statements w
6350: 65 72 65 20 65 78 65 63 75 74 65 64 20 62 79 20  ere executed by 
6360: 61 20 73 69 6e 67 6c 65 20 73 71 6c 69 74 65 5f  a single sqlite_
6370: 65 78 65 63 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69  exec() call.</li
6380: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
6390: 41 75 67 20 33 31 20 28 32 2e 37 2e 31 29 7d 20  Aug 31 (2.7.1)} 
63a0: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
63b0: 69 6e 20 74 68 65 20 4f 52 44 45 52 20 42 59 20  in the ORDER BY 
63c0: 6c 6f 67 69 63 20 74 68 61 74 20 77 61 73 20 69  logic that was i
63d0: 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72  ntroduced in ver
63e0: 73 69 6f 6e 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a  sion 2.7.0</li>.
63f0: 3c 6c 69 3e 43 2d 73 74 79 6c 65 20 63 6f 6d 6d  <li>C-style comm
6400: 65 6e 74 73 20 61 72 65 20 6e 6f 77 20 61 63 63  ents are now acc
6410: 65 70 74 65 64 20 62 79 20 74 68 65 20 74 6f 6b  epted by the tok
6420: 65 6e 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  enizer.</li>.<li
6430: 3e 49 4e 53 45 52 54 20 72 75 6e 73 20 61 20 6c  >INSERT runs a l
6440: 69 74 74 6c 65 20 66 61 73 74 65 72 20 77 68 65  ittle faster whe
6450: 6e 20 74 68 65 20 73 6f 75 72 63 65 20 69 73 20  n the source is 
6460: 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  a SELECT stateme
6470: 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nt.</li>.}..chng
6480: 20 7b 32 30 30 32 20 41 75 67 20 32 35 20 28 32   {2002 Aug 25 (2
6490: 2e 37 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b  .7.0)} {.<li>Mak
64a0: 65 20 61 20 64 69 73 74 69 6e 63 74 69 6f 6e 20  e a distinction 
64b0: 62 65 74 77 65 65 6e 20 6e 75 6d 65 72 69 63 20  between numeric 
64c0: 61 6e 64 20 74 65 78 74 20 76 61 6c 75 65 73 20  and text values 
64d0: 77 68 65 6e 20 73 6f 72 74 69 6e 67 2e 0a 20 20  when sorting..  
64e0: 20 20 54 65 78 74 20 76 61 6c 75 65 73 20 73 6f    Text values so
64f0: 72 74 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20  rt according to 
6500: 6d 65 6d 63 6d 70 28 29 2e 20 20 4e 75 6d 65 72  memcmp().  Numer
6510: 69 63 20 76 61 6c 75 65 73 20 73 6f 72 74 20 69  ic values sort i
6520: 6e 0a 20 20 20 20 6e 75 6d 65 72 69 63 20 6f 72  n.    numeric or
6530: 64 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c  der.</li>.<li>Al
6540: 6c 6f 77 20 6d 75 6c 74 69 70 6c 65 20 73 69 6d  low multiple sim
6550: 75 6c 74 61 6e 65 6f 75 73 20 72 65 61 64 65 72  ultaneous reader
6560: 73 20 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 20  s under windows 
6570: 62 79 20 73 69 6d 75 6c 61 74 69 6e 67 0a 20 20  by simulating.  
6580: 20 20 74 68 65 20 72 65 61 64 65 72 2f 77 72 69    the reader/wri
6590: 74 65 72 73 20 6c 6f 63 6b 73 20 74 68 61 74 20  ters locks that 
65a0: 61 72 65 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d  are missing from
65b0: 20 57 69 6e 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c   Win95/98/ME.</l
65c0: 69 3e 0a 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20  i>.<li>An error 
65d0: 69 73 20 6e 6f 77 20 72 65 74 75 72 6e 65 64 20  is now returned 
65e0: 77 68 65 6e 20 74 72 79 69 6e 67 20 74 6f 20 73  when trying to s
65f0: 74 61 72 74 20 61 20 74 72 61 6e 73 61 63 74 69  tart a transacti
6600: 6f 6e 20 69 66 0a 20 20 20 20 61 6e 6f 74 68 65  on if.    anothe
6610: 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73  r transaction is
6620: 20 61 6c 72 65 61 64 79 20 61 63 74 69 76 65 2e   already active.
6630: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
6640: 30 30 32 20 41 75 67 20 31 32 20 28 32 2e 36 2e  002 Aug 12 (2.6.
6650: 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68  3)} {.<li>Add th
6660: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65 61  e ability to rea
6670: 64 20 62 6f 74 68 20 6c 69 74 74 6c 65 2d 65 6e  d both little-en
6680: 64 69 61 6e 20 61 6e 64 20 62 69 67 2d 65 6e 64  dian and big-end
6690: 69 61 6e 20 64 61 74 61 62 61 73 65 73 2e 0a 20  ian databases.. 
66a0: 20 20 20 53 6f 20 64 61 74 61 62 61 73 65 20 63     So database c
66b0: 72 65 61 74 65 64 20 75 6e 64 65 72 20 53 75 6e  reated under Sun
66c0: 4f 53 20 6f 72 20 4d 61 63 4f 53 58 20 63 61 6e  OS or MacOSX can
66d0: 20 62 65 20 72 65 61 64 20 61 6e 64 20 77 72 69   be read and wri
66e0: 74 74 65 6e 0a 20 20 20 20 75 6e 64 65 72 20 4c  tten.    under L
66f0: 69 6e 75 78 20 6f 72 20 57 69 6e 64 6f 77 73 20  inux or Windows 
6700: 61 6e 64 20 76 69 63 65 20 76 65 72 73 61 2e 3c  and vice versa.<
6710: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74  /li>.<li>Convert
6720: 20 74 6f 20 74 68 65 20 6e 65 77 20 77 65 62 73   to the new webs
6730: 69 74 65 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e  ite: http://www.
6740: 73 71 6c 69 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e  sqlite.org/</li>
6750: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74 72 61 6e 73  .<li>Allow trans
6760: 61 63 74 69 6f 6e 73 20 74 6f 20 73 70 61 6e 20  actions to span 
6770: 4c 69 6e 75 78 20 54 68 72 65 61 64 73 3c 2f 6c  Linux Threads</l
6780: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 20 69  i>.<li>Bug fix i
6790: 6e 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67  n the processing
67a0: 20 6f 66 20 74 68 65 20 4f 52 44 45 52 20 42 59   of the ORDER BY
67b0: 20 63 6c 61 75 73 65 20 66 6f 72 20 47 52 4f 55   clause for GROU
67c0: 50 20 42 59 20 71 75 65 72 69 65 73 3c 2f 6c 69  P BY queries</li
67d0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
67e0: 4a 6c 79 20 33 30 20 28 32 2e 36 2e 32 29 7d 20  Jly 30 (2.6.2)} 
67f0: 7b 0a 3c 6c 69 3e 54 65 78 74 20 66 69 6c 65 73  {.<li>Text files
6800: 20 72 65 61 64 20 62 79 20 74 68 65 20 43 4f 50   read by the COP
6810: 59 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f  Y command can no
6820: 77 20 68 61 76 65 20 6c 69 6e 65 20 74 65 72 6d  w have line term
6830: 69 6e 61 74 6f 72 73 0a 20 20 20 20 6f 66 20 4c  inators.    of L
6840: 46 2c 20 20 43 52 4c 46 2c 20 6f 72 20 43 52 2e  F,  CRLF, or CR.
6850: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45  </li>.<li>SQLITE
6860: 5f 42 55 53 59 20 69 73 20 68 61 6e 64 6c 65 64  _BUSY is handled
6870: 20 63 6f 72 72 65 63 74 6c 79 20 69 66 20 65 6e   correctly if en
6880: 63 6f 75 6e 74 65 72 65 64 20 64 75 72 69 6e 67  countered during
6890: 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 69 6e   database.    in
68a0: 69 74 69 61 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c  itialization.</l
68b0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 6f 20 55 50  i>.<li>Fix to UP
68c0: 44 41 54 45 20 74 72 69 67 67 65 72 73 20 6f 6e  DATE triggers on
68d0: 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c   TEMP tables.</l
68e0: 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61  i>.<li>Documenta
68f0: 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c  tion updates.</l
6900: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
6910: 20 4a 6c 79 20 31 39 20 28 32 2e 36 2e 31 29 7d   Jly 19 (2.6.1)}
6920: 20 7b 0a 3c 6c 69 3e 49 6e 63 6c 75 64 65 20 61   {.<li>Include a
6930: 20 73 74 61 74 69 63 20 73 74 72 69 6e 67 20 69   static string i
6940: 6e 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 68  n the library th
6950: 61 74 20 72 65 73 70 6f 6e 64 73 20 74 6f 20 74  at responds to t
6960: 68 65 20 52 43 53 0a 20 20 20 20 22 69 64 65 6e  he RCS.    "iden
6970: 74 22 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 77  t" command and w
6980: 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68  hich contains th
6990: 65 20 6c 69 62 72 61 72 79 20 76 65 72 73 69 6f  e library versio
69a0: 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c  n number.</li>.<
69b0: 6c 69 3e 46 69 78 20 61 6e 20 61 73 73 65 72 74  li>Fix an assert
69c0: 69 6f 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74  ion failure that
69d0: 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e 20 64   occurred when d
69e0: 65 6c 65 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73  eleting all rows
69f0: 20 6f 66 0a 20 20 20 20 61 20 74 61 62 6c 65 20   of.    a table 
6a00: 77 69 74 68 20 74 68 65 20 22 63 6f 75 6e 74 5f  with the "count_
6a10: 63 68 61 6e 67 65 73 22 20 70 72 61 67 6d 61 20  changes" pragma 
6a20: 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a  turned on.</li>.
6a30: 3c 6c 69 3e 42 65 74 74 65 72 20 65 72 72 6f 72  <li>Better error
6a40: 20 72 65 70 6f 72 74 69 6e 67 20 77 68 65 6e 20   reporting when 
6a50: 70 72 6f 62 6c 65 6d 73 20 6f 63 63 75 72 20 64  problems occur d
6a60: 75 72 69 6e 67 20 74 68 65 20 61 75 74 6f 6d 61  uring the automa
6a70: 74 69 63 0a 20 20 20 20 32 2e 35 2e 36 20 74 6f  tic.    2.5.6 to
6a80: 20 32 2e 36 2e 30 20 64 61 74 61 62 61 73 65 20   2.6.0 database 
6a90: 66 6f 72 6d 61 74 20 75 70 67 72 61 64 65 2e 3c  format upgrade.<
6aa0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6ab0: 30 32 20 4a 6c 79 20 31 37 20 28 32 2e 36 2e 30  02 Jly 17 (2.6.0
6ac0: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
6ad0: 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e  the format of in
6ae0: 64 69 63 65 73 20 74 6f 20 63 6f 72 72 65 63 74  dices to correct
6af0: 20 61 20 64 65 73 69 67 6e 20 66 6c 61 77 20 74   a design flaw t
6b00: 68 65 20 6f 72 69 67 69 6e 61 74 65 64 0a 20 20  he originated.  
6b10: 20 20 77 69 74 68 20 76 65 72 73 69 6f 6e 20 32    with version 2
6b20: 2e 31 2e 30 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c  .1.0.  <font col
6b30: 6f 72 3d 22 72 65 64 22 3e 2a 2a 2a 20 54 68 69  or="red">*** Thi
6b40: 73 20 69 73 20 61 6e 20 69 6e 63 6f 6d 70 61 74  s is an incompat
6b50: 69 62 6c 65 0a 20 20 20 20 66 69 6c 65 20 66 6f  ible.    file fo
6b60: 72 6d 61 74 20 63 68 61 6e 67 65 20 2a 2a 2a 3c  rmat change ***<
6b70: 2f 66 6f 6e 74 3e 20 20 57 68 65 6e 20 76 65 72  /font>  When ver
6b80: 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 72 20 6c 61  sion 2.6.0 or la
6b90: 74 65 72 20 6f 66 20 74 68 65 0a 20 20 20 20 6c  ter of the.    l
6ba0: 69 62 72 61 72 79 20 61 74 74 65 6d 70 74 73 20  ibrary attempts 
6bb0: 74 6f 20 6f 70 65 6e 20 61 20 64 61 74 61 62 61  to open a databa
6bc0: 73 65 20 66 69 6c 65 20 63 72 65 61 74 65 64 20  se file created 
6bd0: 62 79 20 76 65 72 73 69 6f 6e 20 32 2e 35 2e 36  by version 2.5.6
6be0: 20 6f 72 0a 20 20 20 20 65 61 72 6c 69 65 72 2c   or.    earlier,
6bf0: 20 69 74 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74   it will automat
6c00: 69 63 61 6c 6c 79 20 61 6e 64 20 69 72 72 65 76  ically and irrev
6c10: 65 72 73 69 62 6c 79 20 63 6f 6e 76 65 72 74 20  ersibly convert 
6c20: 74 68 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e  the file format.
6c30: 0a 20 20 20 20 3c 62 3e 4d 61 6b 65 20 62 61 63  .    <b>Make bac
6c40: 6b 75 70 20 63 6f 70 69 65 73 20 6f 66 20 6f 6c  kup copies of ol
6c50: 64 65 72 20 64 61 74 61 62 61 73 65 20 66 69 6c  der database fil
6c60: 65 73 20 62 65 66 6f 72 65 20 6f 70 65 6e 69 6e  es before openin
6c70: 67 20 74 68 65 6d 20 77 69 74 68 0a 20 20 20 20  g them with.    
6c80: 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 66  version 2.6.0 of
6c90: 20 74 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f 62   the library.</b
6ca0: 3e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  >.    </li>.}..c
6cb0: 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 37 20  hng {2002 Jly 7 
6cc0: 28 32 2e 35 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.5.6)} {.<li>F
6cd0: 69 78 20 6d 6f 72 65 20 70 72 6f 62 6c 65 6d 73  ix more problems
6ce0: 20 77 69 74 68 20 72 6f 6c 6c 62 61 63 6b 2e 20   with rollback. 
6cf0: 20 45 6e 68 61 6e 63 65 20 74 68 65 20 74 65 73   Enhance the tes
6d00: 74 20 73 75 69 74 65 20 74 6f 20 65 78 65 72 63  t suite to exerc
6d10: 69 73 65 0a 20 20 20 20 74 68 65 20 72 6f 6c 6c  ise.    the roll
6d20: 62 61 63 6b 20 6c 6f 67 69 63 20 65 78 74 65 6e  back logic exten
6d30: 73 69 76 65 6c 79 20 69 6e 20 6f 72 64 65 72 20  sively in order 
6d40: 74 6f 20 70 72 65 76 65 6e 74 20 61 6e 79 20 66  to prevent any f
6d50: 75 74 75 72 65 20 70 72 6f 62 6c 65 6d 73 2e 0a  uture problems..
6d60: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
6d70: 67 20 7b 32 30 30 32 20 4a 6c 79 20 36 20 28 32  g {2002 Jly 6 (2
6d80: 2e 35 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .5.5)} {.<li>Fix
6d90: 20 61 20 62 75 67 20 77 68 69 63 68 20 63 6f 75   a bug which cou
6da0: 6c 64 20 63 61 75 73 65 20 64 61 74 61 62 61 73  ld cause databas
6db0: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 64 75 72  e corruption dur
6dc0: 69 6e 67 20 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a  ing a rollback..
6dd0: 20 20 20 20 54 68 69 73 20 62 75 67 73 20 77 61      This bugs wa
6de0: 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20  s introduced in 
6df0: 76 65 72 73 69 6f 6e 20 32 2e 34 2e 30 20 62 79  version 2.4.0 by
6e00: 20 74 68 65 20 66 72 65 65 6c 69 73 74 0a 20 20   the freelist.  
6e10: 20 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f    optimization o
6e20: 66 20 63 68 65 63 6b 69 6e 67 20 5b 34 31 30 5d  f checking [410]
6e30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
6e40: 20 62 75 67 20 69 6e 20 61 67 67 72 65 67 61 74   bug in aggregat
6e50: 65 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20  e functions for 
6e60: 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  VIEWs.</li>.<li>
6e70: 4f 74 68 65 72 20 6d 69 6e 6f 72 20 63 68 61 6e  Other minor chan
6e80: 67 65 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d  ges and enhancem
6e90: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ents.</li>.}..ch
6ea0: 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 20 28  ng {2002 Jly 1 (
6eb0: 32 2e 35 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61  2.5.4)} {.<li>Ma
6ec0: 6b 65 20 74 68 65 20 22 41 53 22 20 6b 65 79 77  ke the "AS" keyw
6ed0: 6f 72 64 20 6f 70 74 69 6f 6e 61 6c 20 61 67 61  ord optional aga
6ee0: 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  in.</li>.<li>The
6ef0: 20 64 61 74 61 74 79 70 65 20 6f 66 20 63 6f 6c   datatype of col
6f00: 75 6d 6e 73 20 6e 6f 77 20 61 70 70 65 61 72 20  umns now appear 
6f10: 69 6e 20 74 68 65 20 34 74 68 20 61 72 67 75 6d  in the 4th argum
6f20: 65 6e 74 20 74 6f 20 74 68 65 0a 20 20 20 20 63  ent to the.    c
6f30: 61 6c 6c 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c  allback.</li>.<l
6f40: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
6f50: 71 6c 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66  qlite_open_aux_f
6f60: 69 6c 65 28 29 3c 2f 62 3e 20 41 50 49 2c 20 74  ile()</b> API, t
6f70: 68 6f 75 67 68 20 69 74 20 69 73 20 73 74 69 6c  hough it is stil
6f80: 6c 0a 20 20 20 20 6d 6f 73 74 6c 79 20 75 6e 64  l.    mostly und
6f90: 6f 63 75 6d 65 6e 74 65 64 20 61 6e 64 20 75 6e  ocumented and un
6fa0: 74 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tested.</li>.<li
6fb0: 3e 41 64 64 65 64 20 61 64 64 69 74 69 6f 6e 61  >Added additiona
6fc0: 6c 20 74 65 73 74 20 63 61 73 65 73 20 61 6e 64  l test cases and
6fd0: 20 66 69 78 65 64 20 61 20 66 65 77 20 62 75 67   fixed a few bug
6fe0: 73 20 74 68 61 74 20 74 68 6f 73 65 0a 20 20 20  s that those.   
6ff0: 20 74 65 73 74 20 63 61 73 65 73 20 66 6f 75 6e   test cases foun
7000: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
7010: 7b 32 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e  {2002 Jun 24 (2.
7020: 35 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  5.3)} {.<li>Bug 
7030: 66 69 78 3a 20 20 44 61 74 61 62 61 73 65 20 63  fix:  Database c
7040: 6f 72 72 75 70 74 69 6f 6e 20 63 61 6e 20 6f 63  orruption can oc
7050: 63 75 72 20 64 75 65 20 74 6f 20 74 68 65 20 6f  cur due to the o
7060: 70 74 69 6d 69 7a 61 74 69 6f 6e 0a 20 20 20 20  ptimization.    
7070: 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75  that was introdu
7080: 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32  ced in version 2
7090: 2e 34 2e 30 20 28 63 68 65 63 6b 2d 69 6e 20 5b  .4.0 (check-in [
70a0: 34 31 30 5d 29 2e 20 20 54 68 65 20 70 72 6f 62  410]).  The prob
70b0: 6c 65 6d 0a 20 20 20 20 73 68 6f 75 6c 64 20 6e  lem.    should n
70c0: 6f 77 20 62 65 20 66 69 78 65 64 2e 20 20 54 68  ow be fixed.  Th
70d0: 65 20 75 73 65 20 6f 66 20 76 65 72 73 69 6f 6e  e use of version
70e0: 73 20 32 2e 34 2e 30 20 74 68 72 6f 75 67 68 20  s 2.4.0 through 
70f0: 32 2e 35 2e 32 20 69 73 0a 20 20 20 20 6e 6f 74  2.5.2 is.    not
7100: 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c   recommended.</l
7110: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
7120: 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e 32 29 7d   Jun 24 (2.5.2)}
7130: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
7140: 20 6e 65 77 20 3c 62 3e 53 51 4c 49 54 45 5f 54   new <b>SQLITE_T
7150: 45 4d 50 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 74  EMP_MASTER</b> t
7160: 61 62 6c 65 20 77 68 69 63 68 20 72 65 63 6f 72  able which recor
7170: 64 73 20 74 68 65 20 73 63 68 65 6d 61 0a 20 20  ds the schema.  
7180: 20 20 66 6f 72 20 74 65 6d 70 6f 72 61 72 79 20    for temporary 
7190: 74 61 62 6c 65 73 20 69 6e 20 74 68 65 20 73 61  tables in the sa
71a0: 6d 65 20 77 61 79 20 74 68 61 74 20 3c 62 3e 53  me way that <b>S
71b0: 51 4c 49 54 45 5f 4d 41 53 54 45 52 3c 2f 62 3e  QLITE_MASTER</b>
71c0: 20 64 6f 65 73 20 66 6f 72 0a 20 20 20 20 70 65   does for.    pe
71d0: 72 73 69 73 74 65 6e 74 20 74 61 62 6c 65 73 2e  rsistent tables.
71e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
71f0: 61 6e 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20  an optimization 
7200: 74 6f 20 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69  to UNION ALL</li
7210: 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75  >.<li>Fixed a bu
7220: 67 20 69 6e 20 74 68 65 20 70 72 6f 63 65 73 73  g in the process
7230: 69 6e 67 20 6f 66 20 4c 45 46 54 20 4f 55 54 45  ing of LEFT OUTE
7240: 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  R JOIN</li>.<li>
7250: 54 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65  The LIMIT clause
7260: 20 6e 6f 77 20 77 6f 72 6b 73 20 6f 6e 20 73 75   now works on su
7270: 62 73 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c  bselects</li>.<l
7280: 69 3e 4f 52 44 45 52 20 42 59 20 77 6f 72 6b 73  i>ORDER BY works
7290: 20 6f 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f   on subselects</
72a0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 72 65 20 69 73  li>.<li>There is
72b0: 20 61 20 6e 65 77 20 54 79 70 65 4f 66 28 29 20   a new TypeOf() 
72c0: 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f  function used to
72d0: 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 61 6e   determine if an
72e0: 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20   expression.    
72f0: 69 73 20 6e 75 6d 65 72 69 63 20 6f 72 20 74 65  is numeric or te
7300: 78 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74  xt.</li>.<li>Aut
7310: 6f 69 6e 63 72 65 6d 65 6e 74 20 6e 6f 77 20 77  oincrement now w
7320: 6f 72 6b 73 20 66 6f 72 20 49 4e 53 45 52 54 20  orks for INSERT 
7330: 66 72 6f 6d 20 61 20 53 45 4c 45 43 54 2e 3c 2f  from a SELECT.</
7340: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
7350: 32 20 4a 75 6e 20 31 39 20 28 32 2e 35 2e 31 29  2 Jun 19 (2.5.1)
7360: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 71 75 65 72  } {.<li>The quer
7370: 79 20 6f 70 74 69 6d 69 7a 65 72 20 6e 6f 77 20  y optimizer now 
7380: 61 74 74 65 6d 70 74 73 20 74 6f 20 69 6d 70 6c  attempts to impl
7390: 65 6d 65 6e 74 20 74 68 65 20 4f 52 44 45 52 20  ement the ORDER 
73a0: 42 59 20 63 6c 61 75 73 65 0a 20 20 20 20 75 73  BY clause.    us
73b0: 69 6e 67 20 61 6e 20 69 6e 64 65 78 2e 20 20 53  ing an index.  S
73c0: 6f 72 74 69 6e 67 20 69 73 20 73 74 69 6c 6c 20  orting is still 
73d0: 75 73 65 64 20 69 66 20 6e 6f 74 20 73 75 69 74  used if not suit
73e0: 61 62 6c 65 20 69 6e 64 65 78 20 69 73 0a 20 20  able index is.  
73f0: 20 20 61 76 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69    available.</li
7400: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
7410: 4a 75 6e 20 31 37 20 28 32 2e 35 2e 30 29 7d 20  Jun 17 (2.5.0)} 
7420: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  {.<li>Added supp
7430: 6f 72 74 20 66 6f 72 20 72 6f 77 20 74 72 69 67  ort for row trig
7440: 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  gers.</li>.<li>A
7450: 64 64 65 64 20 53 51 4c 2d 39 32 20 63 6f 6d 70  dded SQL-92 comp
7460: 6c 69 61 6e 74 20 68 61 6e 64 6c 69 6e 67 20 6f  liant handling o
7470: 66 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c  f NULLs.</li>.<l
7480: 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f  i>Add support fo
7490: 72 20 74 68 65 20 66 75 6c 6c 20 53 51 4c 2d 39  r the full SQL-9
74a0: 32 20 6a 6f 69 6e 20 73 79 6e 74 61 78 20 61 6e  2 join syntax an
74b0: 64 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49  d LEFT OUTER JOI
74c0: 4e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75  Ns.</li>.<li>Dou
74d0: 62 6c 65 2d 71 75 6f 74 65 64 20 73 74 72 69 6e  ble-quoted strin
74e0: 67 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61  gs interpreted a
74f0: 73 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e  s column names n
7500: 6f 74 20 74 65 78 74 20 6c 69 74 65 72 61 6c 73  ot text literals
7510: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73 65  .</li>.<li>Parse
7520: 20 28 62 75 74 20 64 6f 20 6e 6f 74 20 69 6d 70   (but do not imp
7530: 6c 65 6d 65 6e 74 29 20 66 6f 72 65 69 67 6e 20  lement) foreign 
7540: 6b 65 79 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50  keys.</li>.<li>P
7550: 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f  erformance impro
7560: 76 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 70  vements in the p
7570: 61 72 73 65 72 2c 20 70 61 67 65 72 2c 20 61 6e  arser, pager, an
7580: 64 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 63  d WHERE clause c
7590: 6f 64 65 0a 20 20 20 20 67 65 6e 65 72 61 74 6f  ode.    generato
75a0: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  r.</li>.<li>Make
75b0: 20 74 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73   the LIMIT claus
75c0: 65 20 77 6f 72 6b 20 6f 6e 20 73 75 62 71 75 65  e work on subque
75d0: 72 69 65 73 2e 20 20 28 4f 52 44 45 52 20 42 59  ries.  (ORDER BY
75e0: 20 73 74 69 6c 6c 20 64 6f 65 73 20 6e 6f 74 0a   still does not.
75f0: 20 20 20 20 77 6f 72 6b 2c 20 74 68 6f 75 67 68      work, though
7600: 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  .)</li>.<li>Adde
7610: 64 20 74 68 65 20 22 25 51 22 20 65 78 70 61 6e  d the "%Q" expan
7620: 73 69 6f 6e 20 74 6f 20 73 71 6c 69 74 65 5f 2a  sion to sqlite_*
7630: 5f 70 72 69 6e 74 66 28 29 2e 3c 2f 6c 69 3e 0a  _printf().</li>.
7640: 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20 74 6f  <li>Bug fixes to
7650: 6f 20 6e 75 6d 65 72 6f 75 73 20 74 6f 20 6d 65  o numerous to me
7660: 6e 74 69 6f 6e 20 28 73 65 65 20 74 68 65 20 63  ntion (see the c
7670: 68 61 6e 67 65 20 6c 6f 67 29 2e 3c 2f 6c 69 3e  hange log).</li>
7680: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
7690: 61 79 20 30 39 20 28 32 2e 34 2e 31 32 29 7d 20  ay 09 (2.4.12)} 
76a0: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 67 69  {.<li>Added logi
76b0: 63 20 74 6f 20 64 65 74 65 63 74 20 77 68 65 6e  c to detect when
76c0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 41 50 49   the library API
76d0: 20 72 6f 75 74 69 6e 65 73 20 61 72 65 20 63 61   routines are ca
76e0: 6c 6c 65 64 20 6f 75 74 0a 20 20 20 20 6f 66 20  lled out.    of 
76f0: 73 65 71 75 65 6e 63 65 2e 3c 2f 6c 69 3e 0a 7d  sequence.</li>.}
7700: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79  ..chng {2002 May
7710: 20 30 38 20 28 32 2e 34 2e 31 31 29 7d 20 7b 0a   08 (2.4.11)} {.
7720: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6c  <li>Bug fix: Col
7730: 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 74 68 65  umn names in the
7740: 20 72 65 73 75 6c 74 20 73 65 74 20 77 65 72 65   result set were
7750: 20 6e 6f 74 20 62 65 69 6e 67 20 67 65 6e 65 72   not being gener
7760: 61 74 65 64 0a 20 20 20 20 63 6f 72 72 65 63 74  ated.    correct
7770: 6c 79 20 66 6f 72 20 73 6f 6d 65 20 28 72 61 74  ly for some (rat
7780: 68 65 72 20 63 6f 6d 70 6c 65 78 29 20 56 49 45  her complex) VIE
7790: 57 73 2e 20 20 54 68 69 73 20 63 6f 75 6c 64 20  Ws.  This could 
77a0: 63 61 75 73 65 20 61 0a 20 20 20 20 73 65 67 66  cause a.    segf
77b0: 61 75 6c 74 20 75 6e 64 65 72 20 63 65 72 74 61  ault under certa
77c0: 69 6e 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73  in circumstances
77d0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
77e0: 32 30 30 32 20 4d 61 79 20 30 32 20 28 32 2e 34  2002 May 02 (2.4
77f0: 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  .10)} {.<li>Bug 
7800: 66 69 78 3a 20 47 65 6e 65 72 61 74 65 20 63 6f  fix: Generate co
7810: 72 72 65 63 74 20 63 6f 6c 75 6d 6e 20 68 65 61  rrect column hea
7820: 64 65 72 73 20 77 68 65 6e 20 61 20 63 6f 6d 70  ders when a comp
7830: 6f 75 6e 64 20 53 45 4c 45 43 54 20 69 73 20 75  ound SELECT is u
7840: 73 65 64 0a 20 20 20 20 61 73 20 61 20 73 75 62  sed.    as a sub
7850: 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  query.</li>.<li>
7860: 41 64 64 65 64 20 74 68 65 20 73 71 6c 69 74 65  Added the sqlite
7870: 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72 79 28 29  _encode_binary()
7880: 20 61 6e 64 20 73 71 6c 69 74 65 5f 64 65 63 6f   and sqlite_deco
7890: 64 65 5f 62 69 6e 61 72 79 28 29 20 66 75 6e 63  de_binary() func
78a0: 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 74 68 65  tions to.    the
78b0: 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20 42   source tree.  B
78c0: 75 74 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20  ut they are not 
78d0: 79 65 74 20 6c 69 6e 6b 65 64 20 69 6e 74 6f 20  yet linked into 
78e0: 74 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69  the library.</li
78f0: 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74  >.<li>Documentat
7900: 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69  ion updates.</li
7910: 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74 20 74 68 65  >.<li>Export the
7920: 20 73 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28   sqlite_changes(
7930: 29 20 66 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20  ) function from 
7940: 77 69 6e 64 6f 77 73 20 44 4c 4c 73 2e 3c 2f 6c  windows DLLs.</l
7950: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
7960: 44 6f 20 6e 6f 74 20 61 74 74 65 6d 70 74 20 74  Do not attempt t
7970: 68 65 20 73 75 62 71 75 65 72 79 20 66 6c 61 74  he subquery flat
7980: 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 61 74  tening optimizat
7990: 69 6f 6e 20 6f 6e 20 71 75 65 72 69 65 73 0a 20  ion on queries. 
79a0: 20 20 20 74 68 61 74 20 6c 61 63 6b 20 61 20 46     that lack a F
79b0: 52 4f 4d 20 63 6c 61 75 73 65 2e 20 20 54 6f 20  ROM clause.  To 
79c0: 64 6f 20 73 6f 20 63 61 75 73 65 73 20 61 20 73  do so causes a s
79d0: 65 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a  egfault.</li>.}.
79e0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20  .chng {2002 Apr 
79f0: 32 31 20 28 32 2e 34 2e 39 29 7d 20 7b 0a 3c 6c  21 (2.4.9)} {.<l
7a00: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
7a10: 20 77 61 73 20 63 61 75 73 69 6e 67 20 74 68 65   was causing the
7a20: 20 70 72 65 63 6f 6d 70 69 6c 65 64 20 62 69 6e   precompiled bin
7a30: 61 72 79 20 6f 66 20 53 51 4c 49 54 45 2e 45 58  ary of SQLITE.EX
7a40: 45 20 74 6f 0a 20 20 20 20 72 65 70 6f 72 74 20  E to.    report 
7a50: 22 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79 22 20  "out of memory" 
7a60: 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 20 39 38  under Windows 98
7a70: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
7a80: 32 30 30 32 20 41 70 72 20 32 30 20 28 32 2e 34  2002 Apr 20 (2.4
7a90: 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20  .8)} {.<li>Make 
7aa0: 73 75 72 65 20 56 49 45 57 73 20 61 72 65 20 63  sure VIEWs are c
7ab0: 72 65 61 74 65 64 20 61 66 74 65 72 20 74 68 65  reated after the
7ac0: 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  ir corresponding
7ad0: 20 54 41 42 4c 45 73 20 69 6e 20 74 68 65 0a 20   TABLEs in the. 
7ae0: 20 20 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65     output of the
7af0: 20 3c 62 3e 2e 64 75 6d 70 3c 2f 62 3e 20 63 6f   <b>.dump</b> co
7b00: 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 73 68 65  mmand in the she
7b10: 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65  ll.</li>.<li>Spe
7b20: 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 3a  ed improvements:
7b30: 20 44 6f 20 6e 6f 74 20 64 6f 20 73 79 6e 63 68   Do not do synch
7b40: 72 6f 6e 6f 75 73 20 75 70 64 61 74 65 73 20 6f  ronous updates o
7b50: 6e 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f  n TEMP tables.</
7b60: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70  li>.<li>Many imp
7b70: 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20 65 6e  rovements and en
7b80: 68 61 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68  hancements to th
7b90: 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  e shell.</li>.<l
7ba0: 69 3e 4d 61 6b 65 20 74 68 65 20 47 4c 4f 42 20  i>Make the GLOB 
7bb0: 61 6e 64 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f  and LIKE operato
7bc0: 72 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61  rs functions tha
7bd0: 74 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64  t can be overrid
7be0: 64 65 6e 0a 20 20 20 20 62 79 20 61 20 70 72 6f  den.    by a pro
7bf0: 67 72 61 6d 6d 65 72 2e 20 20 54 68 69 73 20 61  grammer.  This a
7c00: 6c 6c 6f 77 73 2c 20 66 6f 72 20 65 78 61 6d 70  llows, for examp
7c10: 6c 65 2c 20 74 68 65 20 4c 49 4b 45 20 6f 70 65  le, the LIKE ope
7c20: 72 61 74 6f 72 20 74 6f 0a 20 20 20 20 62 65 20  rator to.    be 
7c30: 63 68 61 6e 67 65 64 20 74 6f 20 62 65 20 63 61  changed to be ca
7c40: 73 65 20 73 65 6e 73 69 74 69 76 65 2e 3c 2f 6c  se sensitive.</l
7c50: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
7c60: 20 41 70 72 20 30 36 20 28 32 2e 34 2e 37 29 7d   Apr 06 (2.4.7)}
7c70: 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61   {.<li>Add the a
7c80: 62 69 6c 69 74 79 20 74 6f 20 70 75 74 20 54 41  bility to put TA
7c90: 42 4c 45 2e 2a 20 69 6e 20 74 68 65 20 63 6f 6c  BLE.* in the col
7ca0: 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61 0a 20 20  umn list of a.  
7cb0: 20 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65    SELECT stateme
7cc0: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72  nt.</li>.<li>Per
7cd0: 6d 69 74 20 53 45 4c 45 43 54 20 73 74 61 74 65  mit SELECT state
7ce0: 6d 65 6e 74 73 20 77 69 74 68 6f 75 74 20 61 20  ments without a 
7cf0: 46 52 4f 4d 20 63 6c 61 75 73 65 2e 3c 2f 6c 69  FROM clause.</li
7d00: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
7d10: 3c 62 3e 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72  <b>last_insert_r
7d20: 6f 77 69 64 28 29 3c 2f 62 3e 20 53 51 4c 20 66  owid()</b> SQL f
7d30: 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  unction.</li>.<l
7d40: 69 3e 44 6f 20 6e 6f 74 20 63 6f 75 6e 74 20 72  i>Do not count r
7d50: 6f 77 73 20 77 68 65 72 65 20 74 68 65 20 49 47  ows where the IG
7d60: 4e 4f 52 45 20 63 6f 6e 66 6c 69 63 74 20 72 65  NORE conflict re
7d70: 73 6f 6c 75 74 69 6f 6e 20 6f 63 63 75 72 73 20  solution occurs 
7d80: 69 6e 0a 20 20 20 20 74 68 65 20 72 6f 77 20 63  in.    the row c
7d90: 6f 75 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ount.</li>.<li>M
7da0: 61 6b 65 20 73 75 72 65 20 66 75 6e 63 74 69 6f  ake sure functio
7db0: 6e 73 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69  ns expressions i
7dc0: 6e 20 74 68 65 20 56 41 4c 55 45 53 20 63 6c 61  n the VALUES cla
7dd0: 75 73 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54  use of an INSERT
7de0: 0a 20 20 20 20 61 72 65 20 63 6f 72 72 65 63 74  .    are correct
7df0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
7e00: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63   the <b>sqlite_c
7e10: 68 61 6e 67 65 73 28 29 3c 2f 62 3e 20 41 50 49  hanges()</b> API
7e20: 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74   function to ret
7e30: 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 0a 20  urn the number. 
7e40: 20 20 20 6f 66 20 72 6f 77 20 74 68 61 74 20 63     of row that c
7e50: 68 61 6e 67 65 64 20 69 6e 20 74 68 65 20 6d 6f  hanged in the mo
7e60: 73 74 20 72 65 63 65 6e 74 20 6f 70 65 72 61 74  st recent operat
7e70: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ion.</li>.}..chn
7e80: 67 20 7b 32 30 30 32 20 41 70 72 20 30 32 20 28  g {2002 Apr 02 (
7e90: 32 2e 34 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.4.6)} {.<li>Bu
7ea0: 67 20 66 69 78 3a 20 43 6f 72 72 65 63 74 6c 79  g fix: Correctly
7eb0: 20 68 61 6e 64 6c 65 20 74 65 72 6d 73 20 69 6e   handle terms in
7ec0: 20 74 68 65 20 57 48 45 52 45 20 63 6c 61 75 73   the WHERE claus
7ed0: 65 20 6f 66 20 61 20 6a 6f 69 6e 20 74 68 61 74  e of a join that
7ee0: 0a 20 20 20 20 64 6f 20 6e 6f 74 20 63 6f 6e 74  .    do not cont
7ef0: 61 69 6e 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e  ain a comparison
7f00: 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a   operator.</li>.
7f10: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70  }..chng {2002 Ap
7f20: 72 20 30 31 20 28 32 2e 34 2e 35 29 7d 20 7b 0a  r 01 (2.4.5)} {.
7f30: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72  <li>Bug fix: Cor
7f40: 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 66 75  rectly handle fu
7f50: 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 61 70 70  nctions that app
7f60: 65 61 72 20 69 6e 20 74 68 65 20 57 48 45 52 45  ear in the WHERE
7f70: 20 63 6c 61 75 73 65 0a 20 20 20 20 6f 66 20 61   clause.    of a
7f80: 20 6a 6f 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   join.</li>.<li>
7f90: 57 68 65 6e 20 74 68 65 20 50 52 41 47 4d 41 20  When the PRAGMA 
7fa0: 76 64 62 65 5f 74 72 61 63 65 3d 4f 4e 20 69 73  vdbe_trace=ON is
7fb0: 20 73 65 74 2c 20 63 6f 72 72 65 63 74 6c 79 20   set, correctly 
7fc0: 70 72 69 6e 74 20 74 68 65 20 50 33 20 6f 70 65  print the P3 ope
7fd0: 72 61 6e 64 0a 20 20 20 20 76 61 6c 75 65 20 77  rand.    value w
7fe0: 68 65 6e 20 69 74 20 69 73 20 61 20 70 6f 69 6e  hen it is a poin
7ff0: 74 65 72 20 74 6f 20 61 20 73 74 72 75 63 74 75  ter to a structu
8000: 72 65 20 72 61 74 68 65 72 20 74 68 61 6e 20 61  re rather than a
8010: 20 70 6f 69 6e 74 65 72 20 74 6f 0a 20 20 20 20   pointer to.    
8020: 61 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c  a string.</li>.<
8030: 6c 69 3e 57 68 65 6e 20 69 6e 73 65 72 74 69 6e  li>When insertin
8040: 67 20 61 6e 20 65 78 70 6c 69 63 69 74 20 4e 55  g an explicit NU
8050: 4c 4c 20 69 6e 74 6f 20 61 6e 20 49 4e 54 45 47  LL into an INTEG
8060: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20  ER PRIMARY KEY, 
8070: 63 6f 6e 76 65 72 74 0a 20 20 20 20 74 68 65 20  convert.    the 
8080: 4e 55 4c 4c 20 76 61 6c 75 65 20 69 6e 74 6f 20  NULL value into 
8090: 61 20 75 6e 69 71 75 65 20 6b 65 79 20 61 75 74  a unique key aut
80a0: 6f 6d 61 74 69 63 61 6c 6c 79 2e 3c 2f 6c 69 3e  omatically.</li>
80b0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
80c0: 61 72 20 32 34 20 28 32 2e 34 2e 34 29 7d 20 7b  ar 24 (2.4.4)} {
80d0: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22 56 49 45 57  .<li>Allow "VIEW
80e0: 22 20 74 6f 20 62 65 20 61 20 63 6f 6c 75 6d 6e  " to be a column
80f0: 20 6e 61 6d 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41   name</li>.<li>A
8100: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
8110: 20 43 41 53 45 20 65 78 70 72 65 73 73 69 6f 6e   CASE expression
8120: 73 20 28 70 61 74 63 68 20 66 72 6f 6d 20 44 61  s (patch from Da
8130: 6e 20 4b 65 6e 6e 65 64 79 29 3c 2f 6c 69 3e 0a  n Kennedy)</li>.
8140: 3c 6c 69 3e 41 64 64 65 64 20 52 50 4d 53 20 74  <li>Added RPMS t
8150: 6f 20 74 68 65 20 64 65 6c 69 76 65 72 79 20 28  o the delivery (
8160: 70 61 74 63 68 65 73 20 66 72 6f 6d 20 44 6f 75  patches from Dou
8170: 67 20 48 65 6e 72 79 29 3c 2f 6c 69 3e 0a 3c 6c  g Henry)</li>.<l
8180: 69 3e 46 69 78 20 74 79 70 6f 73 20 69 6e 20 74  i>Fix typos in t
8190: 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  he documentation
81a0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 75 74 20 6f 76  </li>.<li>Cut ov
81b0: 65 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e  er configuration
81c0: 20 6d 61 6e 61 67 65 6d 65 6e 74 20 74 6f 20 61   management to a
81d0: 20 6e 65 77 20 43 56 53 20 72 65 70 6f 73 69 74   new CVS reposit
81e0: 6f 72 79 20 77 69 74 68 0a 20 20 20 20 69 74 73  ory with.    its
81f0: 20 6f 77 6e 20 43 56 53 54 72 61 63 20 62 75 67   own CVSTrac bug
8200: 20 74 72 61 63 6b 69 6e 67 20 73 79 73 74 65 6d   tracking system
8210: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8220: 32 30 30 32 20 4d 61 72 20 32 32 20 28 32 2e 34  2002 Mar 22 (2.4
8230: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .3)} {.<li>Fix a
8240: 20 62 75 67 20 69 6e 20 53 45 4c 45 43 54 20 74   bug in SELECT t
8250: 68 61 74 20 6f 63 63 75 72 73 20 77 68 65 6e 20  hat occurs when 
8260: 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43  a compound SELEC
8270: 54 20 69 73 20 75 73 65 64 20 61 73 20 61 0a 20  T is used as a. 
8280: 20 20 20 73 75 62 71 75 65 72 79 20 69 6e 20 74     subquery in t
8290: 68 65 20 46 52 4f 4d 20 6f 66 20 61 20 53 45 4c  he FROM of a SEL
82a0: 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ECT.</li>.<li>Th
82b0: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f  e <b>sqlite_get_
82c0: 74 61 62 6c 65 28 29 3c 2f 62 3e 20 66 75 6e 63  table()</b> func
82d0: 74 69 6f 6e 20 6e 6f 77 20 72 65 74 75 72 6e 73  tion now returns
82e0: 20 61 6e 20 65 72 72 6f 72 20 69 66 20 79 6f 75   an error if you
82f0: 0a 20 20 20 20 67 69 76 65 20 69 74 20 74 77 6f  .    give it two
8300: 20 6f 72 20 6d 6f 72 65 20 53 45 4c 45 43 54 73   or more SELECTs
8310: 20 74 68 61 74 20 72 65 74 75 72 6e 20 64 69 66   that return dif
8320: 66 65 72 65 6e 74 20 6e 75 6d 62 65 72 73 20 6f  ferent numbers o
8330: 66 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a  f columns.</li>.
8340: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61  }..chng {2002 Ma
8350: 72 20 31 34 20 28 32 2e 34 2e 32 29 7d 20 7b 0a  r 14 (2.4.2)} {.
8360: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 46 69 78  <li>Bug fix: Fix
8370: 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61   an assertion fa
8380: 69 6c 75 72 65 20 74 68 61 74 20 6f 63 63 75 72  ilure that occur
8390: 72 65 64 20 77 68 65 6e 20 52 4f 57 49 44 20 77  red when ROWID w
83a0: 61 73 20 61 20 63 6f 6c 75 6d 6e 0a 20 20 20 20  as a column.    
83b0: 69 6e 20 61 20 53 45 4c 45 43 54 20 73 74 61 74  in a SELECT stat
83c0: 65 6d 65 6e 74 20 6f 6e 20 61 20 76 69 65 77 2e  ement on a view.
83d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
83e0: 78 3a 20 46 69 78 20 61 6e 20 75 6e 69 6e 69 74  x: Fix an uninit
83f0: 69 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65  ialized variable
8400: 20 69 6e 20 74 68 65 20 56 44 42 45 20 74 68 61   in the VDBE tha
8410: 74 20 77 6f 75 6c 64 20 63 6f 75 6c 64 20 61 6e  t would could an
8420: 0a 20 20 20 20 61 73 73 65 72 74 20 66 61 69 6c  .    assert fail
8430: 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  ure.</li>.<li>Ma
8440: 6b 65 20 74 68 65 20 6f 73 2e 68 20 68 65 61 64  ke the os.h head
8450: 65 72 20 66 69 6c 65 20 6d 6f 72 65 20 72 6f 62  er file more rob
8460: 75 73 74 20 69 6e 20 64 65 74 65 63 74 69 6e 67  ust in detecting
8470: 20 77 68 65 6e 20 74 68 65 20 63 6f 6d 70 69 6c   when the compil
8480: 65 20 69 73 0a 20 20 20 20 66 6f 72 20 77 69 6e  e is.    for win
8490: 64 6f 77 73 20 61 6e 64 20 77 68 65 6e 20 69 74  dows and when it
84a0: 20 69 73 20 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c   is for unix.</l
84b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
84c0: 20 4d 61 72 20 31 33 20 28 32 2e 34 2e 31 29 7d   Mar 13 (2.4.1)}
84d0: 20 7b 0a 3c 6c 69 3e 55 73 69 6e 67 20 61 6e 20   {.<li>Using an 
84e0: 75 6e 6e 61 6d 65 64 20 73 75 62 71 75 65 72 79  unnamed subquery
84f0: 20 69 6e 20 61 20 46 52 4f 4d 20 63 6c 61 75 73   in a FROM claus
8500: 65 20 77 6f 75 6c 64 20 63 61 75 73 65 20 61 20  e would cause a 
8510: 73 65 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c  segfault.</li>.<
8520: 6c 69 3e 54 68 65 20 70 61 72 73 65 72 20 6e 6f  li>The parser no
8530: 77 20 69 6e 73 69 73 74 73 20 6f 6e 20 73 65 65  w insists on see
8540: 69 6e 67 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20  ing a semicolon 
8550: 6f 72 20 74 68 65 20 65 6e 64 20 6f 66 20 69 6e  or the end of in
8560: 70 75 74 20 62 65 66 6f 72 65 0a 20 20 20 20 65  put before.    e
8570: 78 65 63 75 74 69 6e 67 20 61 20 73 74 61 74 65  xecuting a state
8580: 6d 65 6e 74 2e 20 20 54 68 69 73 20 61 76 6f 69  ment.  This avoi
8590: 64 73 20 61 6e 20 61 63 63 69 64 65 6e 74 61 6c  ds an accidental
85a0: 20 64 69 73 61 73 74 65 72 20 69 66 20 74 68 65   disaster if the
85b0: 0a 20 20 20 20 57 48 45 52 45 20 6b 65 79 77 6f  .    WHERE keywo
85c0: 72 64 20 69 73 20 6d 69 73 73 70 65 6c 6c 65 64  rd is misspelled
85d0: 20 69 6e 20 61 6e 20 55 50 44 41 54 45 20 6f 72   in an UPDATE or
85e0: 20 44 45 4c 45 54 45 20 73 74 61 74 65 6d 65 6e   DELETE statemen
85f0: 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67  t.</li>.}...chng
8600: 20 7b 32 30 30 32 20 4d 61 72 20 31 30 20 28 32   {2002 Mar 10 (2
8610: 2e 34 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  .4.0)} {.<li>Cha
8620: 6e 67 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20  nge the name of 
8630: 74 68 65 20 73 61 6e 69 74 79 5f 63 68 65 63 6b  the sanity_check
8640: 20 50 52 41 47 4d 41 20 74 6f 20 3c 62 3e 69 6e   PRAGMA to <b>in
8650: 74 65 67 72 69 74 79 5f 63 68 65 63 6b 3c 2f 62  tegrity_check</b
8660: 3e 0a 20 20 20 20 61 6e 64 20 6d 61 6b 65 20 69  >.    and make i
8670: 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61  t available in a
8680: 6c 6c 20 63 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69  ll compiles.</li
8690: 3e 0a 3c 6c 69 3e 53 45 4c 45 43 54 20 6d 69 6e  >.<li>SELECT min
86a0: 28 29 20 6f 72 20 6d 61 78 28 29 20 6f 66 20 61  () or max() of a
86b0: 6e 20 69 6e 64 65 78 65 64 20 63 6f 6c 75 6d 6e  n indexed column
86c0: 20 77 69 74 68 20 6e 6f 20 57 48 45 52 45 20 6f   with no WHERE o
86d0: 72 20 47 52 4f 55 50 20 42 59 0a 20 20 20 20 63  r GROUP BY.    c
86e0: 6c 61 75 73 65 20 69 73 20 68 61 6e 64 6c 65 64  lause is handled
86f0: 20 61 73 20 61 20 73 70 65 63 69 61 6c 20 63 61   as a special ca
8700: 73 65 20 77 68 69 63 68 20 61 76 6f 69 64 73 20  se which avoids 
8710: 61 20 63 6f 6d 70 6c 65 74 65 20 74 61 62 6c 65  a complete table
8720: 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   scan.</li>.<li>
8730: 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65  Automatically ge
8740: 6e 65 72 61 74 65 64 20 52 4f 57 49 44 73 20 61  nerated ROWIDs a
8750: 72 65 20 6e 6f 77 20 73 65 71 75 65 6e 74 69 61  re now sequentia
8760: 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e  l.</li>.<li>Do n
8770: 6f 74 20 61 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d  ot allow dot-com
8780: 6d 61 6e 64 73 20 6f 66 20 74 68 65 20 63 6f 6d  mands of the com
8790: 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 20  mand-line shell 
87a0: 74 6f 20 6f 63 63 75 72 20 69 6e 20 74 68 65 0a  to occur in the.
87b0: 20 20 20 20 6d 69 64 64 6c 65 20 6f 66 20 61 20      middle of a 
87c0: 72 65 61 6c 20 53 51 4c 20 63 6f 6d 6d 61 6e 64  real SQL command
87d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66  .</li>.<li>Modif
87e0: 69 63 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20  ications to the 
87f0: 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67  "lemon" parser g
8800: 65 6e 65 72 61 74 6f 72 20 73 6f 20 74 68 61 74  enerator so that
8810: 20 74 68 65 20 70 61 72 73 65 72 20 74 61 62 6c   the parser tabl
8820: 65 73 0a 20 20 20 20 61 72 65 20 34 20 74 69 6d  es.    are 4 tim
8830: 65 73 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e  es smaller.</li>
8840: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
8850: 72 74 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69  rt for user-defi
8860: 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6d  ned functions im
8870: 70 6c 65 6d 65 6e 74 65 64 20 69 6e 20 43 2e 3c  plemented in C.<
8880: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
8890: 75 70 70 6f 72 74 20 66 6f 72 20 6e 65 77 20 66  upport for new f
88a0: 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61  unctions: <b>coa
88b0: 6c 65 73 63 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e  lesce()</b>, <b>
88c0: 6c 6f 77 65 72 28 29 3c 2f 62 3e 2c 0a 20 20 20  lower()</b>,.   
88d0: 20 3c 62 3e 75 70 70 65 72 28 29 3c 2f 62 3e 2c   <b>upper()</b>,
88e0: 20 61 6e 64 20 3c 62 3e 72 61 6e 64 6f 6d 28 29   and <b>random()
88f0: 3c 2f 62 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  </b>.<li>Added s
8900: 75 70 70 6f 72 74 20 66 6f 72 20 56 49 45 57 73  upport for VIEWs
8910: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
8920: 20 74 68 65 20 73 75 62 71 75 65 72 79 20 66 6c   the subquery fl
8930: 61 74 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a  attening optimiz
8940: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64  er.</li>.<li>Mod
8950: 69 66 69 65 64 20 74 68 65 20 42 2d 54 72 65 65  ified the B-Tree
8960: 20 61 6e 64 20 50 61 67 65 72 20 6d 6f 64 75 6c   and Pager modul
8970: 65 73 20 73 6f 20 74 68 61 74 20 64 69 73 6b 20  es so that disk 
8980: 70 61 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f  pages that do no
8990: 74 0a 20 20 20 20 63 6f 6e 74 61 69 6e 20 72 65  t.    contain re
89a0: 61 6c 20 64 61 74 61 20 28 66 72 65 65 20 70 61  al data (free pa
89b0: 67 65 73 29 20 61 72 65 20 6e 6f 74 20 6a 6f 75  ges) are not jou
89c0: 72 6e 61 6c 65 64 20 61 6e 64 20 61 72 65 20 6e  rnaled and are n
89d0: 6f 74 0a 20 20 20 20 77 72 69 74 74 65 6e 20 66  ot.    written f
89e0: 72 6f 6d 20 6d 65 6d 6f 72 79 20 62 61 63 6b 20  rom memory back 
89f0: 74 6f 20 74 68 65 20 64 69 73 6b 20 77 68 65 6e  to the disk when
8a00: 20 74 68 65 79 20 63 68 61 6e 67 65 2e 20 20 54   they change.  T
8a10: 68 69 73 20 64 6f 65 73 20 6e 6f 74 20 0a 20 20  his does not .  
8a20: 20 20 69 6d 70 61 63 74 20 64 61 74 61 62 61 73    impact databas
8a30: 65 20 69 6e 74 65 67 72 69 74 79 2c 20 73 69 6e  e integrity, sin
8a40: 63 65 20 74 68 65 0a 20 20 20 20 70 61 67 65 73  ce the.    pages
8a50: 20 63 6f 6e 74 61 69 6e 20 6e 6f 20 72 65 61 6c   contain no real
8a60: 20 64 61 74 61 2c 20 62 75 74 20 69 74 20 64 6f   data, but it do
8a70: 65 73 20 6d 61 6b 65 20 6c 61 72 67 65 20 49 4e  es make large IN
8a80: 53 45 52 54 20 6f 70 65 72 61 74 69 6f 6e 73 0a  SERT operations.
8a90: 20 20 20 20 61 62 6f 75 74 20 32 2e 35 20 74 69      about 2.5 ti
8aa0: 6d 65 73 20 66 61 73 74 65 72 20 61 6e 64 20 6c  mes faster and l
8ab0: 61 72 67 65 20 44 45 4c 45 54 45 73 20 61 62 6f  arge DELETEs abo
8ac0: 75 74 20 35 20 74 69 6d 65 73 20 66 61 73 74 65  ut 5 times faste
8ad0: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65  r.</li>.<li>Made
8ae0: 20 74 68 65 20 43 41 43 48 45 5f 53 49 5a 45 20   the CACHE_SIZE 
8af0: 70 72 61 67 6d 61 20 70 65 72 73 69 73 74 65 6e  pragma persisten
8b00: 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  t</li>.<li>Added
8b10: 20 74 68 65 20 53 59 4e 43 48 52 4f 4e 4f 55 53   the SYNCHRONOUS
8b20: 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69   pragma</li>.<li
8b30: 3e 46 69 78 65 64 20 61 20 62 75 67 20 74 68 61  >Fixed a bug tha
8b40: 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 75 70  t was causing up
8b50: 64 61 74 65 73 20 74 6f 20 66 61 69 6c 20 69 6e  dates to fail in
8b60: 73 69 64 65 20 6f 66 20 74 72 61 6e 73 61 63 74  side of transact
8b70: 69 6f 6e 73 20 77 68 65 6e 0a 20 20 20 20 74 68  ions when.    th
8b80: 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e 74 61  e database conta
8b90: 69 6e 65 64 20 61 20 74 65 6d 70 6f 72 61 72 79  ined a temporary
8ba0: 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   table.</li>.}..
8bb0: 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31  chng {2002 Feb 1
8bc0: 38 20 28 32 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69  8 (2.3.3)} {.<li
8bd0: 3e 41 6c 6c 6f 77 20 69 64 65 6e 74 69 66 69 65  >Allow identifie
8be0: 72 73 20 74 6f 20 62 65 20 71 75 6f 74 65 64 20  rs to be quoted 
8bf0: 69 6e 20 73 71 75 61 72 65 20 62 72 61 63 6b 65  in square bracke
8c00: 74 73 2c 20 66 6f 72 20 63 6f 6d 70 61 74 69 62  ts, for compatib
8c10: 69 6c 69 74 79 0a 20 20 20 20 77 69 74 68 20 4d  ility.    with M
8c20: 53 2d 41 63 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c  S-Access.</li>.<
8c30: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
8c40: 20 66 6f 72 20 73 75 62 2d 71 75 65 72 69 65 73   for sub-queries
8c50: 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 63 6c 61   in the FROM cla
8c60: 75 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54 2e  use of a SELECT.
8c70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65  </li>.<li>More e
8c80: 66 66 69 63 69 65 6e 74 20 69 6d 70 6c 65 6d 65  fficient impleme
8c90: 6e 74 61 74 69 6f 6e 20 6f 66 20 73 71 6c 69 74  ntation of sqlit
8ca0: 65 46 69 6c 65 45 78 69 73 74 73 28 29 20 75 6e  eFileExists() un
8cb0: 64 65 72 20 57 69 6e 64 6f 77 73 2e 0a 20 20 20  der Windows..   
8cc0: 20 28 62 79 20 4a 6f 65 6c 20 4c 75 73 63 79 29   (by Joel Luscy)
8cd0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41  </li>.<li>The VA
8ce0: 4c 55 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61  LUES clause of a
8cf0: 6e 20 49 4e 53 45 52 54 20 63 61 6e 20 6e 6f 77  n INSERT can now
8d00: 20 63 6f 6e 74 61 69 6e 20 65 78 70 72 65 73 73   contain express
8d10: 69 6f 6e 73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a  ions, including.
8d20: 20 20 20 20 73 63 61 6c 61 72 20 53 45 4c 45 43      scalar SELEC
8d30: 54 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a  T clauses.</li>.
8d40: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
8d50: 74 20 66 6f 72 20 43 52 45 41 54 45 20 54 41 42  t for CREATE TAB
8d60: 4c 45 20 41 53 20 53 45 4c 45 43 54 3c 2f 6c 69  LE AS SELECT</li
8d70: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43  >.<li>Bug fix: C
8d80: 72 65 61 74 69 6e 67 20 61 6e 64 20 64 72 6f 70  reating and drop
8d90: 70 69 6e 67 20 61 20 74 61 62 6c 65 20 61 6c 6c  ping a table all
8da0: 20 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65   within a single
8db0: 0a 20 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e  .    transaction
8dc0: 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67   was not working
8dd0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8de0: 32 30 30 32 20 46 65 62 20 31 34 20 28 32 2e 33  2002 Feb 14 (2.3
8df0: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .2)} {.<li>Bug f
8e00: 69 78 3a 20 54 68 65 72 65 20 77 61 73 20 61 6e  ix: There was an
8e10: 20 69 6e 63 6f 72 72 65 63 74 20 61 73 73 65 72   incorrect asser
8e20: 74 28 29 20 69 6e 20 70 61 67 65 72 2e 63 2e 20  t() in pager.c. 
8e30: 20 54 68 65 20 72 65 61 6c 20 63 6f 64 65 20 77   The real code w
8e40: 61 73 0a 20 20 20 20 61 6c 6c 20 63 6f 72 72 65  as.    all corre
8e50: 63 74 20 28 61 73 20 66 61 72 20 61 73 20 69 73  ct (as far as is
8e60: 20 6b 6e 6f 77 6e 29 20 73 6f 20 65 76 65 72 79   known) so every
8e70: 74 68 69 6e 67 20 73 68 6f 75 6c 64 20 77 6f 72  thing should wor
8e80: 6b 20 4f 4b 20 69 66 20 79 6f 75 0a 20 20 20 20  k OK if you.    
8e90: 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d 44 4e  compile with -DN
8ea0: 44 45 42 55 47 3d 31 2e 20 20 57 68 65 6e 20 61  DEBUG=1.  When a
8eb0: 73 73 65 72 74 73 20 61 72 65 20 6e 6f 74 20 64  sserts are not d
8ec0: 69 73 61 62 6c 65 64 2c 20 74 68 65 72 65 0a 20  isabled, there. 
8ed0: 20 20 20 63 6f 75 6c 64 20 62 65 20 61 20 66 61     could be a fa
8ee0: 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ult.</li>.}..chn
8ef0: 67 20 7b 32 30 30 32 20 46 65 62 20 31 33 20 28  g {2002 Feb 13 (
8f00: 32 2e 33 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.3.1)} {.<li>Bu
8f10: 67 20 66 69 78 3a 20 41 6e 20 61 73 73 65 72 74  g fix: An assert
8f20: 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20  ion was failing 
8f30: 69 66 20 22 50 52 41 47 4d 41 20 66 75 6c 6c 5f  if "PRAGMA full_
8f40: 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b  column_names=ON;
8f50: 22 20 77 61 73 0a 20 20 20 20 73 65 74 20 61 6e  " was.    set an
8f60: 64 20 79 6f 75 20 64 69 64 20 61 20 71 75 65 72  d you did a quer
8f70: 79 20 74 68 61 74 20 75 73 65 64 20 61 20 72 6f  y that used a ro
8f80: 77 69 64 2c 20 6c 69 6b 65 20 74 68 69 73 3a 20  wid, like this: 
8f90: 20 0a 20 20 20 20 22 53 45 4c 45 43 54 20 72 6f   .    "SELECT ro
8fa0: 77 69 64 2c 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22  wid, * FROM ..."
8fb0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8fc0: 32 30 30 32 20 4a 61 6e 20 33 30 20 28 32 2e 33  2002 Jan 30 (2.3
8fd0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .0)} {.<li>Fix a
8fe0: 20 73 65 72 69 6f 75 73 20 62 75 67 20 69 6e 20   serious bug in 
8ff0: 74 68 65 20 49 4e 53 45 52 54 20 63 6f 6d 6d 61  the INSERT comma
9000: 6e 64 20 77 68 69 63 68 20 77 61 73 20 63 61 75  nd which was cau
9010: 73 69 6e 67 20 64 61 74 61 20 74 6f 20 67 6f 0a  sing data to go.
9020: 20 20 20 20 69 6e 74 6f 20 74 68 65 20 77 72 6f      into the wro
9030: 6e 67 20 63 6f 6c 75 6d 6e 73 20 69 66 20 74 68  ng columns if th
9040: 65 20 64 61 74 61 20 73 6f 75 72 63 65 20 77 61  e data source wa
9050: 73 20 61 20 53 45 4c 45 43 54 20 61 6e 64 20 74  s a SELECT and t
9060: 68 65 20 49 4e 53 45 52 54 0a 20 20 20 20 63 6c  he INSERT.    cl
9070: 61 75 73 65 73 20 73 70 65 63 69 66 69 65 64 20  auses specified 
9080: 69 74 73 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 73  its columns in s
9090: 6f 6d 65 20 6f 72 64 65 72 20 6f 74 68 65 72 20  ome order other 
90a0: 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74  than the default
90b0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
90c0: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
90d0: 72 65 73 6f 6c 76 65 20 63 6f 6e 73 74 72 61 69  resolve constrai
90e0: 6e 74 20 63 6f 6e 66 6c 69 63 74 73 20 69 73 20  nt conflicts is 
90f0: 77 61 79 73 20 6f 74 68 65 72 20 74 68 61 6e 0a  ways other than.
9100: 20 20 20 20 61 6e 20 61 62 6f 72 74 20 61 6e 64      an abort and
9110: 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 53 65 65 20   rollback.  See 
9120: 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  the documentatio
9130: 6e 20 6f 6e 20 74 68 65 20 22 4f 4e 20 43 4f 4e  n on the "ON CON
9140: 46 4c 49 43 54 22 0a 20 20 20 20 63 6c 61 75 73  FLICT".    claus
9150: 65 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 3c 2f  e for details.</
9160: 6c 69 3e 0a 3c 6c 69 3e 54 65 6d 70 6f 72 61 72  li>.<li>Temporar
9170: 79 20 66 69 6c 65 73 20 61 72 65 20 6e 6f 77 20  y files are now 
9180: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65  automatically de
9190: 6c 65 74 65 64 20 62 79 20 74 68 65 20 6f 70 65  leted by the ope
91a0: 72 61 74 69 6e 67 20 73 79 73 74 65 6d 0a 20 20  rating system.  
91b0: 20 20 77 68 65 6e 20 63 6c 6f 73 65 64 2e 20 20    when closed.  
91c0: 54 68 65 72 65 20 61 72 65 20 6e 6f 20 6d 6f 72  There are no mor
91d0: 65 20 64 61 6e 67 6c 69 6e 67 20 74 65 6d 70 6f  e dangling tempo
91e0: 72 61 72 79 20 66 69 6c 65 73 20 6f 6e 20 61 20  rary files on a 
91f0: 70 72 6f 67 72 61 6d 0a 20 20 20 20 63 72 61 73  program.    cras
9200: 68 2e 20 20 28 49 66 20 74 68 65 20 4f 53 20 63  h.  (If the OS c
9210: 72 61 73 68 65 73 2c 20 66 73 63 6b 20 77 69 6c  rashes, fsck wil
9220: 6c 20 64 65 6c 65 74 65 20 74 68 65 20 66 69 6c  l delete the fil
9230: 65 20 61 66 74 65 72 20 72 65 62 6f 6f 74 20 0a  e after reboot .
9240: 20 20 20 20 75 6e 64 65 72 20 55 6e 69 78 2e 20      under Unix. 
9250: 20 49 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77   I do not know w
9260: 68 61 74 20 68 61 70 70 65 6e 73 20 75 6e 64 65  hat happens unde
9270: 72 20 57 69 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e  r Windows.)</li>
9280: 0a 3c 6c 69 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f  .<li>NOT NULL co
9290: 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20 68 6f  nstraints are ho
92a0: 6e 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nored.</li>.<li>
92b0: 54 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64  The COPY command
92c0: 20 70 75 74 73 20 4e 55 4c 4c 73 20 69 6e 20 63   puts NULLs in c
92d0: 6f 6c 75 6d 6e 73 20 77 68 6f 73 65 20 64 61 74  olumns whose dat
92e0: 61 20 69 73 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a  a is '\N'.</li>.
92f0: 3c 6c 69 3e 49 6e 20 74 68 65 20 43 4f 50 59 20  <li>In the COPY 
9300: 63 6f 6d 6d 61 6e 64 2c 20 62 61 63 6b 73 6c 61  command, backsla
9310: 73 68 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73  sh can now be us
9320: 65 64 20 74 6f 20 65 73 63 61 70 65 20 61 20 6e  ed to escape a n
9330: 65 77 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ewline.</li>.<li
9340: 3e 41 64 64 65 64 20 74 68 65 20 53 41 4e 49 54  >Added the SANIT
9350: 59 5f 43 48 45 43 4b 20 70 72 61 67 6d 61 2e 3c  Y_CHECK pragma.<
9360: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9370: 30 32 20 4a 61 6e 20 32 38 20 28 32 2e 32 2e 35  02 Jan 28 (2.2.5
9380: 29 7d 20 7b 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61  )} {.<li>Importa
9390: 6e 74 20 62 75 67 20 66 69 78 3a 20 74 68 65 20  nt bug fix: the 
93a0: 49 4e 20 6f 70 65 72 61 74 6f 72 20 77 61 73 20  IN operator was 
93b0: 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 69 66 20 65  not working if e
93c0: 69 74 68 65 72 20 74 68 65 0a 20 20 20 20 6c 65  ither the.    le
93d0: 66 74 2d 68 61 6e 64 20 6f 72 20 72 69 67 68 74  ft-hand or right
93e0: 2d 68 61 6e 64 20 73 69 64 65 20 77 61 73 20 64  -hand side was d
93f0: 65 72 69 76 65 64 20 66 72 6f 6d 20 61 6e 20 49  erived from an I
9400: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
9410: 45 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20  EY.</li>.<li>Do 
9420: 6e 6f 74 20 65 73 63 61 70 65 20 74 68 65 20 62  not escape the b
9430: 61 63 6b 73 6c 61 73 68 20 27 5c 27 20 63 68 61  ackslash '\' cha
9440: 72 61 63 74 65 72 20 69 6e 20 74 68 65 20 6f 75  racter in the ou
9450: 74 70 75 74 20 6f 66 20 74 68 65 0a 20 20 20 20  tput of the.    
9460: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 63 6f  <b>sqlite</b> co
9470: 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 63 63 65 73  mmand-line acces
9480: 73 20 70 72 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a  s program.</li>.
9490: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61  }..chng {2002 Ja
94a0: 6e 20 32 32 20 28 32 2e 32 2e 34 29 7d 20 7b 0a  n 22 (2.2.4)} {.
94b0: 3c 6c 69 3e 54 68 65 20 6c 61 62 65 6c 20 74 6f  <li>The label to
94c0: 20 74 68 65 20 72 69 67 68 74 20 6f 66 20 61 6e   the right of an
94d0: 20 41 53 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d   AS in the colum
94e0: 6e 20 6c 69 73 74 20 6f 66 20 61 20 53 45 4c 45  n list of a SELE
94f0: 43 54 20 63 61 6e 20 6e 6f 77 0a 20 20 20 20 62  CT can now.    b
9500: 65 20 75 73 65 64 20 61 73 20 70 61 72 74 20 6f  e used as part o
9510: 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20  f an expression 
9520: 69 6e 20 74 68 65 20 57 48 45 52 45 2c 20 4f 52  in the WHERE, OR
9530: 44 45 52 20 42 59 2c 20 47 52 4f 55 50 20 42 59  DER BY, GROUP BY
9540: 2c 20 61 6e 64 2f 6f 72 0a 20 20 20 20 48 41 56  , and/or.    HAV
9550: 49 4e 47 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69  ING clauses.</li
9560: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
9570: 69 6e 20 74 68 65 20 3c 62 3e 2d 73 65 70 61 72  in the <b>-separ
9580: 61 74 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64  ator</b> command
9590: 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 74 6f 20  -line option to 
95a0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
95b0: 3e 0a 20 20 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f  >.    command.</
95c0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  li>.<li>Fix a pr
95d0: 6f 62 6c 65 6d 20 77 69 74 68 20 74 68 65 20 73  oblem with the s
95e0: 6f 72 74 20 6f 72 64 65 72 20 77 68 65 6e 20 63  ort order when c
95f0: 6f 6d 70 61 72 69 6e 67 20 75 70 70 65 72 2d 63  omparing upper-c
9600: 61 73 65 20 73 74 72 69 6e 67 73 20 61 67 61 69  ase strings agai
9610: 6e 73 74 0a 20 20 20 20 63 68 61 72 61 63 74 65  nst.    characte
9620: 72 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20  rs greater than 
9630: 27 5a 27 20 62 75 74 20 6c 65 73 73 20 74 68 61  'Z' but less tha
9640: 6e 20 27 61 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  n 'a'.</li>.<li>
9650: 52 65 70 6f 72 74 20 61 6e 20 65 72 72 6f 72 20  Report an error 
9660: 69 66 20 61 6e 20 4f 52 44 45 52 20 42 59 20 6f  if an ORDER BY o
9670: 72 20 47 52 4f 55 50 20 42 59 20 65 78 70 72 65  r GROUP BY expre
9680: 73 73 69 6f 6e 20 69 73 20 63 6f 6e 73 74 61 6e  ssion is constan
9690: 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  t.</li>.}..chng 
96a0: 7b 32 30 30 32 20 4a 61 6e 20 31 36 20 28 32 2e  {2002 Jan 16 (2.
96b0: 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  2.3)} {.<li>Fix 
96c0: 77 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73  warning messages
96d0: 20 69 6e 20 56 43 2b 2b 20 37 2e 30 2e 20 20 28   in VC++ 7.0.  (
96e0: 50 61 74 63 68 65 73 20 66 72 6f 6d 20 6e 69 63  Patches from nic
96f0: 6f 6c 61 73 33 35 32 30 30 31 29 3c 2f 6c 69 3e  olas352001)</li>
9700: 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6c 69  .<li>Make the li
9710: 62 72 61 72 79 20 74 68 72 65 61 64 2d 73 61 66  brary thread-saf
9720: 65 2e 20 20 28 54 68 65 20 63 6f 64 65 20 69 73  e.  (The code is
9730: 20 74 68 65 72 65 20 61 6e 64 20 61 70 70 65 61   there and appea
9740: 72 73 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20 62  rs to work.    b
9750: 75 74 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20  ut has not been 
9760: 73 74 72 65 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a  stressed.)</li>.
9770: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65  <li>Added the ne
9780: 77 20 3c 62 3e 73 71 6c 69 74 65 5f 6c 61 73 74  w <b>sqlite_last
9790: 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c  _insert_rowid()<
97a0: 2f 62 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  /b> API function
97b0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
97c0: 32 30 30 32 20 4a 61 6e 20 31 33 20 28 32 2e 32  2002 Jan 13 (2.2
97d0: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .2)} {.<li>Bug f
97e0: 69 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e  ix: An assertion
97f0: 20 77 61 73 20 66 61 69 6c 69 6e 67 20 77 68 65   was failing whe
9800: 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61  n a temporary ta
9810: 62 6c 65 20 77 69 74 68 20 61 6e 20 69 6e 64 65  ble with an inde
9820: 78 0a 20 20 20 20 68 61 64 20 74 68 65 20 73 61  x.    had the sa
9830: 6d 65 20 6e 61 6d 65 20 61 73 20 61 20 70 65 72  me name as a per
9840: 6d 61 6e 65 6e 74 20 74 61 62 6c 65 20 63 72 65  manent table cre
9850: 61 74 65 64 20 62 79 20 61 20 73 65 70 61 72 61  ated by a separa
9860: 74 65 20 70 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e  te process.</li>
9870: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 55 70  .<li>Bug fix: Up
9880: 64 61 74 65 73 20 74 6f 20 74 61 62 6c 65 73 20  dates to tables 
9890: 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20 49 4e  containing an IN
98a0: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45  TEGER PRIMARY KE
98b0: 59 20 61 6e 64 20 61 6e 0a 20 20 20 20 69 6e 64  Y and an.    ind
98c0: 65 78 20 63 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f  ex could fail.</
98d0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
98e0: 32 20 4a 61 6e 20 39 20 28 32 2e 32 2e 31 29 7d  2 Jan 9 (2.2.1)}
98f0: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
9900: 41 6e 20 61 74 74 65 6d 70 74 20 74 6f 20 64 65  An attempt to de
9910: 6c 65 74 65 20 61 20 73 69 6e 67 6c 65 20 72 6f  lete a single ro
9920: 77 20 6f 66 20 61 20 74 61 62 6c 65 20 77 69 74  w of a table wit
9930: 68 20 61 20 57 48 45 52 45 0a 20 20 20 20 63 6c  h a WHERE.    cl
9940: 61 75 73 65 20 6f 66 20 22 52 4f 57 49 44 3d 78  ause of "ROWID=x
9950: 22 20 77 68 65 6e 20 6e 6f 20 73 75 63 68 20 72  " when no such r
9960: 6f 77 69 64 20 65 78 69 73 74 73 20 77 61 73 20  owid exists was 
9970: 63 61 75 73 69 6e 67 20 61 6e 20 65 72 72 6f 72  causing an error
9980: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
9990: 69 78 3a 20 50 61 73 73 69 6e 67 20 69 6e 20 61  ix: Passing in a
99a0: 20 4e 55 4c 4c 20 61 73 20 74 68 65 20 33 72 64   NULL as the 3rd
99b0: 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 3c 62   parameter to <b
99c0: 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 3c 2f  >sqlite_open()</
99d0: 62 3e 0a 20 20 20 20 77 6f 75 6c 64 20 73 6f 6d  b>.    would som
99e0: 65 74 69 6d 65 73 20 63 61 75 73 65 20 61 20 63  etimes cause a c
99f0: 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c  oredump.</li>.<l
9a00: 69 3e 42 75 67 20 66 69 78 3a 20 44 52 4f 50 20  i>Bug fix: DROP 
9a10: 54 41 42 4c 45 20 66 6f 6c 6c 6f 77 65 64 20 62  TABLE followed b
9a20: 79 20 61 20 43 52 45 41 54 45 20 54 41 42 4c 45  y a CREATE TABLE
9a30: 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e   with the same n
9a40: 61 6d 65 20 61 6c 6c 0a 20 20 20 20 77 69 74 68  ame all.    with
9a50: 69 6e 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e  in a single tran
9a60: 73 61 63 74 69 6f 6e 20 77 61 73 20 63 61 75 73  saction was caus
9a70: 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c  ing a coredump.<
9a80: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c  /li>.<li>Makefil
9a90: 65 20 75 70 64 61 74 65 73 20 66 72 6f 6d 20 41  e updates from A
9aa0: 2e 20 52 6f 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a  . Rottmann</li>.
9ab0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65  }..chng {2001 De
9ac0: 63 20 32 32 20 28 32 2e 32 2e 30 29 7d 20 7b 0a  c 22 (2.2.0)} {.
9ad0: 3c 6c 69 3e 43 6f 6c 75 6d 6e 73 20 6f 66 20 74  <li>Columns of t
9ae0: 79 70 65 20 49 4e 54 45 47 45 52 20 50 52 49 4d  ype INTEGER PRIM
9af0: 41 52 59 20 4b 45 59 20 61 72 65 20 61 63 74 75  ARY KEY are actu
9b00: 61 6c 6c 79 20 75 73 65 64 20 61 73 20 74 68 65  ally used as the
9b10: 20 70 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79   primary.    key
9b20: 20 69 6e 20 75 6e 64 65 72 6c 79 69 6e 67 20 42   in underlying B
9b30: 2d 54 72 65 65 20 72 65 70 72 65 73 65 6e 74 61  -Tree representa
9b40: 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 61 62 6c  tion of the tabl
9b50: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65  e.</li>.<li>Seve
9b60: 72 61 6c 20 6f 62 73 63 75 72 65 2c 20 75 6e 72  ral obscure, unr
9b70: 65 6c 61 74 65 64 20 62 75 67 73 20 77 65 72 65  elated bugs were
9b80: 20 66 6f 75 6e 64 20 61 6e 64 20 66 69 78 65 64   found and fixed
9b90: 20 77 68 69 6c 65 20 0a 20 20 20 20 69 6d 70 6c   while .    impl
9ba0: 65 6d 65 6e 74 65 64 20 74 68 65 20 69 6e 74 65  emented the inte
9bb0: 67 65 72 20 70 72 69 6d 61 72 79 20 6b 65 79 20  ger primary key 
9bc0: 63 68 61 6e 67 65 20 6f 66 20 74 68 65 20 70 72  change of the pr
9bd0: 65 76 69 6f 75 73 20 62 75 6c 6c 65 74 2e 3c 2f  evious bullet.</
9be0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
9bf0: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65  e ability to spe
9c00: 63 69 66 79 20 22 2a 22 20 61 73 20 70 61 72 74  cify "*" as part
9c10: 20 6f 66 20 61 20 6c 61 72 67 65 72 20 63 6f 6c   of a larger col
9c20: 75 6d 6e 20 6c 69 73 74 20 69 6e 0a 20 20 20 20  umn list in.    
9c30: 74 68 65 20 72 65 73 75 6c 74 20 73 65 63 74 69  the result secti
9c40: 6f 6e 20 6f 66 20 61 20 53 45 4c 45 43 54 20 73  on of a SELECT s
9c50: 74 61 74 65 6d 65 6e 74 2e 20 20 46 6f 72 20 65  tatement.  For e
9c60: 78 61 6d 70 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62  xample:.    <nob
9c70: 72 3e 22 3c 62 3e 53 45 4c 45 43 54 20 72 6f 77  r>"<b>SELECT row
9c80: 69 64 2c 20 2a 20 46 52 4f 4d 20 74 61 62 6c 65  id, * FROM table
9c90: 31 3b 3c 2f 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c  1;</b>"</nobr>.<
9ca0: 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73  /li>.<li>Updates
9cb0: 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64   to comments and
9cc0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c   documentation.<
9cd0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9ce0: 30 31 20 44 65 63 20 31 34 20 28 32 2e 31 2e 37  01 Dec 14 (2.1.7
9cf0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
9d00: 75 67 20 69 6e 20 3c 62 3e 43 52 45 41 54 45 20  ug in <b>CREATE 
9d10: 54 45 4d 50 4f 52 41 52 59 20 54 41 42 4c 45 3c  TEMPORARY TABLE<
9d20: 2f 62 3e 20 77 68 69 63 68 20 77 61 73 20 63 61  /b> which was ca
9d30: 75 73 69 6e 67 20 74 68 65 0a 20 20 20 20 74 61  using the.    ta
9d40: 62 6c 65 20 74 6f 20 62 65 20 69 6e 69 74 69 61  ble to be initia
9d50: 6c 6c 79 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e  lly allocated in
9d60: 20 74 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61   the main databa
9d70: 73 65 20 66 69 6c 65 20 69 6e 73 74 65 61 64 0a  se file instead.
9d80: 20 20 20 20 6f 66 20 69 6e 20 74 68 65 20 73 65      of in the se
9d90: 70 61 72 61 74 65 20 74 65 6d 70 6f 72 61 72 79  parate temporary
9da0: 20 66 69 6c 65 2e 20 20 54 68 69 73 20 62 75 67   file.  This bug
9db0: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 74 68 65   could cause the
9dc0: 20 6c 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20   library.    to 
9dd0: 73 75 66 66 65 72 20 61 6e 20 61 73 73 65 72 74  suffer an assert
9de0: 69 6f 6e 20 66 61 69 6c 75 72 65 20 61 6e 64 20  ion failure and 
9df0: 69 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 22  it could cause "
9e00: 70 61 67 65 20 6c 65 61 6b 73 22 20 69 6e 20 74  page leaks" in t
9e10: 68 65 0a 20 20 20 20 6d 61 69 6e 20 64 61 74 61  he.    main data
9e20: 62 61 73 65 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46  base file..<li>F
9e30: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
9e40: 62 2d 74 72 65 65 20 73 75 62 73 79 73 74 65 6d  b-tree subsystem
9e50: 20 74 68 61 74 20 63 6f 75 6c 64 20 73 6f 6d 65   that could some
9e60: 74 69 6d 65 73 20 63 61 75 73 65 20 74 68 65 20  times cause the 
9e70: 66 69 72 73 74 0a 20 20 20 20 72 6f 77 20 6f 66  first.    row of
9e80: 20 61 20 74 61 62 6c 65 20 74 6f 20 62 65 20 72   a table to be r
9e90: 65 70 65 61 74 65 64 20 64 75 72 69 6e 67 20 61  epeated during a
9ea0: 20 64 61 74 61 62 61 73 65 20 73 63 61 6e 2e 3c   database scan.<
9eb0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9ec0: 30 31 20 44 65 63 20 31 34 20 28 32 2e 31 2e 36  01 Dec 14 (2.1.6
9ed0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65  )} {.<li>Fix the
9ee0: 20 6c 6f 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69   locking mechani
9ef0: 73 6d 20 79 65 74 20 61 67 61 69 6e 20 74 6f 20  sm yet again to 
9f00: 70 72 65 76 65 6e 74 0a 20 20 20 20 3c 62 3e 73  prevent.    <b>s
9f10: 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e  qlite_exec()</b>
9f20: 20 66 72 6f 6d 20 72 65 74 75 72 6e 69 6e 67 20   from returning 
9f30: 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a  SQLITE_PROTOCOL.
9f40: 20 20 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c      unnecessaril
9f50: 79 2e 20 20 54 68 69 73 20 74 69 6d 65 20 74 68  y.  This time th
9f60: 65 20 62 75 67 20 77 61 73 20 61 20 72 61 63 65  e bug was a race
9f70: 20 63 6f 6e 64 69 74 69 6f 6e 20 69 6e 0a 20 20   condition in.  
9f80: 20 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 63 6f    the locking co
9f90: 64 65 2e 20 20 54 68 69 73 20 63 68 61 6e 67 65  de.  This change
9fa0: 20 65 66 66 65 63 74 73 20 62 6f 74 68 20 50 4f   effects both PO
9fb0: 53 49 58 20 61 6e 64 20 57 69 6e 64 6f 77 73 20  SIX and Windows 
9fc0: 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  users.</li>.}..c
9fd0: 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 36 20  hng {2001 Dec 6 
9fe0: 28 32 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.1.5)} {.<li>F
9ff0: 69 78 20 66 6f 72 20 61 6e 6f 74 68 65 72 20 70  ix for another p
a000: 72 6f 62 6c 65 6d 20 28 75 6e 72 65 6c 61 74 65  roblem (unrelate
a010: 64 20 74 6f 20 74 68 65 20 6f 6e 65 20 66 69 78  d to the one fix
a020: 65 64 20 69 6e 20 32 2e 31 2e 34 29 20 0a 20 20  ed in 2.1.4) .  
a030: 20 20 74 68 61 74 20 73 6f 6d 65 74 69 6d 65 73    that sometimes
a040: 20 63 61 75 73 65 73 20 3c 62 3e 73 71 6c 69 74   causes <b>sqlit
a050: 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 74 6f 20  e_exec()</b> to 
a060: 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52  return SQLITE_PR
a070: 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63  OTOCOL.    unnec
a080: 65 73 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20  essarily.  This 
a090: 74 69 6d 65 20 74 68 65 20 62 75 67 20 77 61 73  time the bug was
a0a0: 0a 20 20 20 20 69 6e 20 74 68 65 20 50 4f 53 49  .    in the POSI
a0b0: 58 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 61  X locking code a
a0c0: 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 65 66  nd should not ef
a0d0: 66 65 63 74 20 77 69 6e 64 6f 77 73 20 75 73 65  fect windows use
a0e0: 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  rs.</li>.}..chng
a0f0: 20 7b 32 30 30 31 20 44 65 63 20 34 20 28 32 2e   {2001 Dec 4 (2.
a100: 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65  1.4)} {.<li>Some
a110: 74 69 6d 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f  times <b>sqlite_
a120: 65 78 65 63 28 29 3c 2f 62 3e 20 77 6f 75 6c 64  exec()</b> would
a130: 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50   return SQLITE_P
a140: 52 4f 54 4f 43 4f 4c 20 77 68 65 6e 20 69 74 0a  ROTOCOL when it.
a150: 20 20 20 20 73 68 6f 75 6c 64 20 68 61 76 65 20      should have 
a160: 72 65 74 75 72 6e 65 64 20 53 51 4c 49 54 45 5f  returned SQLITE_
a170: 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  BUSY.</li>.<li>T
a180: 68 65 20 66 69 78 20 74 6f 20 74 68 65 20 70 72  he fix to the pr
a190: 65 76 69 6f 75 73 20 62 75 67 20 75 6e 63 6f 76  evious bug uncov
a1a0: 65 72 65 64 20 61 20 64 65 61 64 6c 6f 63 6b 20  ered a deadlock 
a1b0: 77 68 69 63 68 20 77 61 73 20 61 6c 73 6f 0a 20  which was also. 
a1c0: 20 20 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c     fixed.</li>.<
a1d0: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
a1e0: 74 79 20 74 6f 20 70 75 74 20 61 20 73 69 6e 67  ty to put a sing
a1f0: 6c 65 20 2e 63 6f 6d 6d 61 6e 64 20 69 6e 20 74  le .command in t
a200: 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65  he second argume
a210: 6e 74 0a 20 20 20 20 6f 66 20 74 68 65 20 73 71  nt.    of the sq
a220: 6c 69 74 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a  lite shell</li>.
a230: 3c 6c 69 3e 55 70 64 61 74 65 73 20 74 6f 20 74  <li>Updates to t
a240: 68 65 20 46 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63  he FAQ</li>.}..c
a250: 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 33  hng {2001 Nov 23
a260: 20 28 32 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.3)} {.<li>
a270: 46 69 78 20 74 68 65 20 62 65 68 61 76 69 6f 72  Fix the behavior
a280: 20 6f 66 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f   of comparison o
a290: 70 65 72 61 74 6f 72 73 20 0a 20 20 20 20 28 65  perators .    (e
a2a0: 78 3a 20 22 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c  x: "<b>&lt</b>",
a2b0: 20 22 3c 62 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74   "<b>==</b>", et
a2c0: 63 2e 29 0a 20 20 20 20 73 6f 20 74 68 61 74 20  c.).    so that 
a2d0: 74 68 65 79 20 61 72 65 20 63 6f 6e 73 69 73 74  they are consist
a2e0: 65 6e 74 20 77 69 74 68 20 74 68 65 20 6f 72 64  ent with the ord
a2f0: 65 72 20 6f 66 20 65 6e 74 72 69 65 73 20 69 6e  er of entries in
a300: 20 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a   an index.</li>.
a310: 3c 6c 69 3e 43 6f 72 72 65 63 74 20 68 61 6e 64  <li>Correct hand
a320: 6c 69 6e 67 20 6f 66 20 69 6e 74 65 67 65 72 73  ling of integers
a330: 20 69 6e 20 53 51 4c 20 65 78 70 72 65 73 73 69   in SQL expressi
a340: 6f 6e 73 20 74 68 61 74 20 61 72 65 20 6c 61 72  ons that are lar
a350: 67 65 72 20 74 68 61 6e 0a 20 20 20 20 77 68 61  ger than.    wha
a360: 74 20 63 61 6e 20 62 65 20 72 65 70 72 65 73 65  t can be represe
a370: 6e 74 65 64 20 62 79 20 74 68 65 20 6d 61 63 68  nted by the mach
a380: 69 6e 65 20 69 6e 74 65 67 65 72 2e 3c 2f 6c 69  ine integer.</li
a390: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a3a0: 4e 6f 76 20 32 32 20 28 32 2e 31 2e 32 29 7d 20  Nov 22 (2.1.2)} 
a3b0: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f  {.<li>Changes to
a3c0: 20 73 75 70 70 6f 72 74 20 36 34 2d 62 69 74 20   support 64-bit 
a3d0: 61 72 63 68 69 74 65 63 74 75 72 65 73 2e 3c 2f  architectures.</
a3e0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
a3f0: 67 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67  g in the locking
a400: 20 70 72 6f 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a   protocol.</li>.
a410: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68  <li>Fix a bug th
a420: 61 74 20 63 6f 75 6c 64 20 28 72 61 72 65 6c 79  at could (rarely
a430: 29 20 63 61 75 73 65 20 74 68 65 20 64 61 74 61  ) cause the data
a440: 62 61 73 65 20 74 6f 20 62 65 63 6f 6d 65 20 0a  base to become .
a450: 20 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20 61      unreadable a
a460: 66 74 65 72 20 61 20 44 52 4f 50 20 54 41 42 4c  fter a DROP TABL
a470: 45 20 64 75 65 20 74 6f 20 63 6f 72 72 75 70 74  E due to corrupt
a480: 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 49 54  ion to the SQLIT
a490: 45 5f 4d 41 53 54 45 52 0a 20 20 20 20 74 61 62  E_MASTER.    tab
a4a0: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  le.</li>.<li>Cha
a4b0: 6e 67 65 20 74 68 65 20 63 6f 64 65 20 73 6f 20  nge the code so 
a4c0: 74 68 61 74 20 76 65 72 73 69 6f 6e 20 32 2e 31  that version 2.1
a4d0: 2e 31 20 64 61 74 61 62 61 73 65 73 20 74 68 61  .1 databases tha
a4e0: 74 20 77 65 72 65 20 72 65 6e 64 65 72 65 64 20  t were rendered 
a4f0: 0a 20 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20  .    unreadable 
a500: 62 79 20 74 68 65 20 61 62 6f 76 65 20 62 75 67  by the above bug
a510: 20 63 61 6e 20 62 65 20 72 65 61 64 20 62 79 20   can be read by 
a520: 74 68 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 0a  this version of.
a530: 20 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20      the library 
a540: 65 76 65 6e 20 74 68 6f 75 67 68 20 74 68 65 20  even though the 
a550: 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61  SQLITE_MASTER ta
a560: 62 6c 65 20 69 73 20 28 73 6c 69 67 68 74 6c 79  ble is (slightly
a570: 29 0a 20 20 20 20 63 6f 72 72 75 70 74 65 64 2e  ).    corrupted.
a580: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
a590: 30 30 31 20 4e 6f 76 20 31 33 20 28 32 2e 31 2e  001 Nov 13 (2.1.
a5a0: 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  1)} {.<li>Bug fi
a5b0: 78 3a 20 53 6f 6d 65 74 69 6d 65 73 20 61 72 62  x: Sometimes arb
a5c0: 69 74 72 61 72 79 20 73 74 72 69 6e 67 73 20 77  itrary strings w
a5d0: 65 72 65 20 70 61 73 73 65 64 20 74 6f 20 74 68  ere passed to th
a5e0: 65 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 66  e callback.    f
a5f0: 75 6e 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65  unction when the
a600: 20 61 63 74 75 61 6c 20 76 61 6c 75 65 20 6f 66   actual value of
a610: 20 61 20 63 6f 6c 75 6d 6e 20 77 61 73 20 4e 55   a column was NU
a620: 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  LL.</li>.}..chng
a630: 20 7b 32 30 30 31 20 4e 6f 76 20 31 32 20 28 32   {2001 Nov 12 (2
a640: 2e 31 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  .1.0)} {.<li>Cha
a650: 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f  nge the format o
a660: 66 20 64 61 74 61 20 72 65 63 6f 72 64 73 20 73  f data records s
a670: 6f 20 74 68 61 74 20 72 65 63 6f 72 64 73 20 75  o that records u
a680: 70 20 74 6f 20 31 36 4d 42 20 69 6e 20 73 69 7a  p to 16MB in siz
a690: 65 0a 20 20 20 20 63 61 6e 20 62 65 20 73 74 6f  e.    can be sto
a6a0: 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68  red.</li>.<li>Ch
a6b0: 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20  ange the format 
a6c0: 6f 66 20 69 6e 64 69 63 65 73 20 74 6f 20 61 6c  of indices to al
a6d0: 6c 6f 77 20 66 6f 72 20 62 65 74 74 65 72 20 71  low for better q
a6e0: 75 65 72 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f  uery optimizatio
a6f0: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c  n.</li>.<li>Impl
a700: 65 6d 65 6e 74 20 74 68 65 20 22 4c 49 4d 49 54  ement the "LIMIT
a710: 20 2e 2e 2e 20 4f 46 46 53 45 54 20 2e 2e 2e 22   ... OFFSET ..."
a720: 20 63 6c 61 75 73 65 20 6f 6e 20 53 45 4c 45 43   clause on SELEC
a730: 54 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c  T statements.</l
a740: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
a750: 20 4e 6f 76 20 33 20 28 32 2e 30 2e 38 29 7d 20   Nov 3 (2.0.8)} 
a760: 7b 0a 3c 6c 69 3e 4d 61 64 65 20 73 65 6c 65 63  {.<li>Made selec
a770: 74 65 64 20 70 61 72 61 6d 65 74 65 72 73 20 69  ted parameters i
a780: 6e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 73 20  n API functions 
a790: 3c 62 3e 63 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68  <b>const</b>. Th
a7a0: 69 73 20 73 68 6f 75 6c 64 0a 20 20 20 20 62 65  is should.    be
a7b0: 20 66 75 6c 6c 79 20 62 61 63 6b 77 61 72 64 73   fully backwards
a7c0: 20 63 6f 6d 70 61 74 69 62 6c 65 2e 3c 2f 6c 69   compatible.</li
a7d0: 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74  >.<li>Documentat
a7e0: 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e  ion updates</li>
a7f0: 0a 3c 6c 69 3e 53 69 6d 70 6c 69 66 79 20 74 68  .<li>Simplify th
a800: 65 20 64 65 73 69 67 6e 20 6f 66 20 74 68 65 20  e design of the 
a810: 56 44 42 45 20 62 79 20 72 65 73 74 72 69 63 74  VDBE by restrict
a820: 69 6e 67 20 74 68 65 20 6e 75 6d 62 65 72 20 6f  ing the number o
a830: 66 20 73 6f 72 74 65 72 73 0a 20 20 20 20 61 6e  f sorters.    an
a840: 64 20 6c 69 73 74 73 20 74 6f 20 31 2e 0a 20 20  d lists to 1..  
a850: 20 20 49 6e 20 70 72 61 63 74 69 63 65 2c 20 6e    In practice, n
a860: 6f 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20  o more than one 
a870: 73 6f 72 74 65 72 20 61 6e 64 20 6f 6e 65 20 6c  sorter and one l
a880: 69 73 74 20 77 61 73 20 65 76 65 72 20 75 73 65  ist was ever use
a890: 64 20 61 6e 79 68 6f 77 2e 0a 20 20 20 20 3c 2f  d anyhow..    </
a8a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
a8b0: 31 20 4f 63 74 20 32 31 20 28 32 2e 30 2e 37 29  1 Oct 21 (2.0.7)
a8c0: 7d 20 7b 0a 3c 6c 69 3e 41 6e 79 20 55 54 46 2d  } {.<li>Any UTF-
a8d0: 38 20 63 68 61 72 61 63 74 65 72 20 6f 72 20 49  8 character or I
a8e0: 53 4f 38 38 35 39 20 63 68 61 72 61 63 74 65 72  SO8859 character
a8f0: 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20   can be used as 
a900: 70 61 72 74 20 6f 66 0a 20 20 20 20 61 6e 20 69  part of.    an i
a910: 64 65 6e 74 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a  dentifier.</li>.
a920: 3c 6c 69 3e 50 61 74 63 68 65 73 20 66 72 6f 6d  <li>Patches from
a930: 20 43 68 72 69 73 74 69 61 6e 20 57 65 72 6e 65   Christian Werne
a940: 72 20 74 6f 20 69 6d 70 72 6f 76 65 20 4f 44 42  r to improve ODB
a950: 43 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20  C compatibility 
a960: 61 6e 64 20 74 6f 0a 20 20 20 20 66 69 78 20 61  and to.    fix a
a970: 20 62 75 67 20 69 6e 20 74 68 65 20 72 6f 75 6e   bug in the roun
a980: 64 28 29 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c  d() function.</l
a990: 69 3e 0a 3c 6c 69 3e 50 6c 75 67 20 73 6f 6d 65  i>.<li>Plug some
a9a0: 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74 68   memory leaks th
a9b0: 61 74 20 75 73 65 20 74 6f 20 6f 63 63 75 72 20  at use to occur 
a9c0: 69 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c  if malloc() fail
a9d0: 65 64 2e 0a 20 20 20 20 57 65 20 68 61 76 65 20  ed..    We have 
a9e0: 62 65 65 6e 20 61 6e 64 20 63 6f 6e 74 69 6e 75  been and continu
a9f0: 65 20 74 6f 20 62 65 20 6d 65 6d 6f 72 79 20 6c  e to be memory l
aa00: 65 61 6b 20 66 72 65 65 20 61 73 20 6c 6f 6e 67  eak free as long
aa10: 20 61 73 0a 20 20 20 20 6d 61 6c 6c 6f 63 28 29   as.    malloc()
aa20: 20 77 6f 72 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   works.</li>.<li
aa30: 3e 43 68 61 6e 67 65 73 20 74 6f 20 73 6f 6d 65  >Changes to some
aa40: 20 74 65 73 74 20 73 63 72 69 70 74 73 20 73 6f   test scripts so
aa50: 20 74 68 61 74 20 74 68 65 79 20 77 6f 72 6b 20   that they work 
aa60: 6f 6e 20 57 69 6e 64 6f 77 73 20 69 6e 0a 20 20  on Windows in.  
aa70: 20 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 55 6e    addition to Un
aa80: 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ix.</li>.}..chng
aa90: 20 7b 32 30 30 31 20 4f 63 74 20 31 39 20 28 32   {2001 Oct 19 (2
aaa0: 2e 30 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .0.6)} {.<li>Add
aab0: 65 64 20 74 68 65 20 45 4d 50 54 59 5f 52 45 53  ed the EMPTY_RES
aac0: 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72  ULT_CALLBACKS pr
aad0: 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75  agma</li>.<li>Su
aae0: 70 70 6f 72 74 20 66 6f 72 20 55 54 46 2d 38 20  pport for UTF-8 
aaf0: 61 6e 64 20 49 53 4f 38 38 35 39 20 63 68 61 72  and ISO8859 char
ab00: 61 63 74 65 72 73 20 69 6e 20 63 6f 6c 75 6d 6e  acters in column
ab10: 20 61 6e 64 20 74 61 62 6c 65 20 6e 61 6d 65 73   and table names
ab20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
ab30: 69 78 3a 20 43 6f 6d 70 75 74 65 20 63 6f 72 72  ix: Compute corr
ab40: 65 63 74 20 74 61 62 6c 65 20 6e 61 6d 65 73 20  ect table names 
ab50: 77 69 74 68 20 74 68 65 20 46 55 4c 4c 5f 43 4f  with the FULL_CO
ab60: 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d  LUMN_NAMES pragm
ab70: 61 0a 20 20 20 20 69 73 20 74 75 72 6e 65 64 20  a.    is turned 
ab80: 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  on.</li>.}..chng
ab90: 20 7b 32 30 30 31 20 4f 63 74 20 31 34 20 28 32   {2001 Oct 14 (2
aba0: 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .0.5)} {.<li>Add
abb0: 65 64 20 74 68 65 20 43 4f 55 4e 54 5f 43 48 41  ed the COUNT_CHA
abc0: 4e 47 45 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69  NGES pragma.</li
abd0: 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f  >.<li>Changes to
abe0: 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e   the FULL_COLUMN
abf0: 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 20 74 6f  _NAMES pragma to
ac00: 20 68 65 6c 70 20 6f 75 74 20 74 68 65 20 4f 44   help out the OD
ac10: 42 43 20 64 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a  BC driver.</li>.
ac20: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 22 53 45  <li>Bug fix: "SE
ac30: 4c 45 43 54 20 63 6f 75 6e 74 28 2a 29 22 20 77  LECT count(*)" w
ac40: 61 73 20 72 65 74 75 72 6e 69 6e 67 20 4e 55 4c  as returning NUL
ac50: 4c 20 66 6f 72 20 65 6d 70 74 79 20 74 61 62 6c  L for empty tabl
ac60: 65 73 2e 0a 20 20 20 20 4e 6f 77 20 69 74 20 72  es..    Now it r
ac70: 65 74 75 72 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d  eturns 0.</li>.}
ac80: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74  ..chng {2001 Oct
ac90: 20 31 33 20 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c   13 (2.0.4)} {.<
aca0: 6c 69 3e 42 75 67 20 66 69 78 3a 20 61 6e 20 6f  li>Bug fix: an o
acb0: 62 73 63 75 72 65 20 61 6e 64 20 72 65 6c 61 74  bscure and relat
acc0: 69 76 65 6c 79 20 68 61 72 6d 6c 65 73 73 20 62  ively harmless b
acd0: 75 67 20 77 61 73 20 63 61 75 73 69 6e 67 20 6f  ug was causing o
ace0: 6e 65 20 6f 66 0a 20 20 20 20 74 68 65 20 74 65  ne of.    the te
acf0: 73 74 73 20 74 6f 20 66 61 69 6c 20 77 68 65 6e  sts to fail when
ad00: 20 67 63 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f   gcc optimizatio
ad10: 6e 73 20 61 72 65 20 74 75 72 6e 65 64 20 6f 6e  ns are turned on
ad20: 2e 20 20 54 68 69 73 20 72 65 6c 65 61 73 65 0a  .  This release.
ad30: 20 20 20 20 66 69 78 65 73 20 74 68 65 20 70 72      fixes the pr
ad40: 6f 62 6c 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  oblem.</li>.}..c
ad50: 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33  hng {2001 Oct 13
ad60: 20 28 32 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.3)} {.<li>
ad70: 42 75 67 20 66 69 78 3a 20 74 68 65 20 3c 62 3e  Bug fix: the <b>
ad80: 73 71 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65  sqlite_busy_time
ad90: 6f 75 74 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69  out()</b> functi
ada0: 6f 6e 20 77 61 73 20 64 65 6c 61 79 69 6e 67 20  on was delaying 
adb0: 31 30 30 30 0a 20 20 20 20 74 69 6d 65 73 20 74  1000.    times t
adc0: 6f 6f 20 6c 6f 6e 67 20 62 65 66 6f 72 65 20 66  oo long before f
add0: 61 69 6c 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ailing.</li>.<li
ade0: 3e 42 75 67 20 66 69 78 3a 20 61 6e 20 61 73 73  >Bug fix: an ass
adf0: 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69  ertion was faili
ae00: 6e 67 20 69 66 20 74 68 65 20 64 69 73 6b 20 68  ng if the disk h
ae10: 6f 6c 64 69 6e 67 20 74 68 65 20 64 61 74 61 62  olding the datab
ae20: 61 73 65 0a 20 20 20 20 66 69 6c 65 20 62 65 63  ase.    file bec
ae30: 61 6d 65 20 66 75 6c 6c 20 6f 72 20 73 74 6f 70  ame full or stop
ae40: 70 65 64 20 61 63 63 65 70 74 69 6e 67 20 77 72  ped accepting wr
ae50: 69 74 65 73 20 66 6f 72 20 73 6f 6d 65 20 6f 74  ites for some ot
ae60: 68 65 72 20 72 65 61 73 6f 6e 2e 0a 20 20 20 20  her reason..    
ae70: 4e 65 77 20 74 65 73 74 73 20 77 65 72 65 20 61  New tests were a
ae80: 64 64 65 64 20 74 6f 20 64 65 74 65 63 74 20 73  dded to detect s
ae90: 69 6d 69 6c 61 72 20 70 72 6f 62 6c 65 6d 73 20  imilar problems 
aea0: 69 6e 20 74 68 65 20 66 75 74 75 72 65 2e 3c 2f  in the future.</
aeb0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65  li>.<li>Added ne
aec0: 77 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 62 3e  w operators: <b>
aed0: 26 61 6d 70 3b 3c 2f 62 3e 20 28 62 69 74 77 69  &amp;</b> (bitwi
aee0: 73 65 2d 61 6e 64 29 0a 20 20 20 20 3c 62 3e 7c  se-and).    <b>|
aef0: 3c 2f 62 3e 20 28 62 69 74 77 69 73 65 2d 6f 72  </b> (bitwise-or
af00: 29 2c 20 3c 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65  ), <b>~</b> (one
af10: 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20  s-complement),. 
af20: 20 20 20 3c 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f     <b>&lt;&lt;</
af30: 62 3e 20 28 73 68 69 66 74 20 6c 65 66 74 29 2c  b> (shift left),
af40: 20 3c 62 3e 26 67 74 3b 26 67 74 3b 3c 2f 62 3e   <b>&gt;&gt;</b>
af50: 20 28 73 68 69 66 74 20 72 69 67 68 74 29 2e 3c   (shift right).<
af60: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  /li>.<li>Added n
af70: 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62  ew functions: <b
af80: 3e 72 6f 75 6e 64 28 29 3c 2f 62 3e 20 61 6e 64  >round()</b> and
af90: 20 3c 62 3e 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f   <b>abs()</b>.</
afa0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
afb0: 31 20 4f 63 74 20 39 20 28 32 2e 30 2e 32 29 7d  1 Oct 9 (2.0.2)}
afc0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 77 6f 20 62   {.<li>Fix two b
afd0: 75 67 73 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69  ugs in the locki
afe0: 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f  ng protocol.  (O
aff0: 6e 65 20 77 61 73 20 6d 61 73 6b 69 6e 67 20 74  ne was masking t
b000: 68 65 20 6f 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a  he other.)</li>.
b010: 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 6f 6d 65  <li>Removed some
b020: 20 75 6e 75 73 65 64 20 22 23 69 6e 63 6c 75 64   unused "#includ
b030: 65 20 3c 75 6e 69 73 74 64 2e 68 3e 22 20 74 68  e <unistd.h>" th
b040: 61 74 20 77 65 72 65 20 63 61 75 73 69 6e 67 20  at were causing 
b050: 70 72 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72  problems.    for
b060: 20 56 43 2b 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   VC++.</li>.<li>
b070: 46 69 78 65 64 20 3c 62 3e 73 71 6c 69 74 65 2e  Fixed <b>sqlite.
b080: 68 3c 2f 62 3e 20 73 6f 20 74 68 61 74 20 69 74  h</b> so that it
b090: 20 69 73 20 75 73 61 62 6c 65 20 66 72 6f 6d 20   is usable from 
b0a0: 43 2b 2b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  C++</li>.<li>Add
b0b0: 65 64 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55  ed the FULL_COLU
b0c0: 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 2e  MN_NAMES pragma.
b0d0: 20 20 57 68 65 6e 20 73 65 74 20 74 6f 20 22 4f    When set to "O
b0e0: 4e 22 2c 20 74 68 65 20 6e 61 6d 65 73 20 6f 66  N", the names of
b0f0: 0a 20 20 20 20 63 6f 6c 75 6d 6e 73 20 61 72 65  .    columns are
b100: 20 72 65 70 6f 72 74 65 64 20 62 61 63 6b 20 61   reported back a
b110: 73 20 54 41 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69  s TABLE.COLUMN i
b120: 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20 43  nstead of just C
b130: 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  OLUMN.</li>.<li>
b140: 41 64 64 65 64 20 74 68 65 20 54 41 42 4c 45 5f  Added the TABLE_
b150: 49 4e 46 4f 28 29 20 61 6e 64 20 49 4e 44 45 58  INFO() and INDEX
b160: 5f 49 4e 46 4f 28 29 20 70 72 61 67 6d 61 73 20  _INFO() pragmas 
b170: 74 6f 20 68 65 6c 70 20 73 75 70 70 6f 72 74 20  to help support 
b180: 74 68 65 0a 20 20 20 20 4f 44 42 43 20 69 6e 74  the.    ODBC int
b190: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  erface.</li>.<li
b1a0: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
b1b0: 6f 72 20 54 45 4d 50 4f 52 41 52 59 20 74 61 62  or TEMPORARY tab
b1c0: 6c 65 73 20 61 6e 64 20 69 6e 64 69 63 65 73 2e  les and indices.
b1d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
b1e0: 30 30 31 20 4f 63 74 20 32 20 28 32 2e 30 2e 31  001 Oct 2 (2.0.1
b1f0: 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20  )} {.<li>Remove 
b200: 73 6f 6d 65 20 43 2b 2b 20 73 74 79 6c 65 20 63  some C++ style c
b210: 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d 20 62 74 72  omments from btr
b220: 65 65 2e 63 20 73 6f 20 74 68 61 74 20 69 74 20  ee.c so that it 
b230: 77 69 6c 6c 20 63 6f 6d 70 69 6c 65 0a 20 20 20  will compile.   
b240: 20 75 73 69 6e 67 20 63 6f 6d 70 69 6c 65 72 73   using compilers
b250: 20 6f 74 68 65 72 20 74 68 61 6e 20 67 63 63 2e   other than gcc.
b260: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e  </li>.<li>The ".
b270: 64 75 6d 70 22 20 6f 75 74 70 75 74 20 66 72 6f  dump" output fro
b280: 6d 20 74 68 65 20 73 68 65 6c 6c 20 64 6f 65 73  m the shell does
b290: 20 6e 6f 74 20 77 6f 72 6b 20 69 66 20 74 68 65   not work if the
b2a0: 72 65 20 61 72 65 20 65 6d 62 65 64 64 65 64 0a  re are embedded.
b2b0: 20 20 20 20 6e 65 77 6c 69 6e 65 73 20 61 6e 79      newlines any
b2c0: 77 68 65 72 65 20 69 6e 20 74 68 65 20 64 61 74  where in the dat
b2d0: 61 2e 20 20 54 68 69 73 20 69 73 20 61 6e 20 6f  a.  This is an o
b2e0: 6c 64 20 62 75 67 20 74 68 61 74 20 77 61 73 20  ld bug that was 
b2f0: 63 61 72 72 69 65 64 0a 20 20 20 20 66 6f 72 77  carried.    forw
b300: 61 72 64 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e  ard from version
b310: 20 31 2e 30 2e 20 20 54 6f 20 66 69 78 20 69 74   1.0.  To fix it
b320: 2c 20 74 68 65 20 22 2e 64 75 6d 70 22 20 6f 75  , the ".dump" ou
b330: 74 70 75 74 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20  tput no longer. 
b340: 20 20 20 75 73 65 73 20 74 68 65 20 43 4f 50 59     uses the COPY
b350: 20 63 6f 6d 6d 61 6e 64 2e 20 20 49 74 20 69 6e   command.  It in
b360: 73 74 65 61 64 20 67 65 6e 65 72 61 74 65 73 20  stead generates 
b370: 49 4e 53 45 52 54 20 73 74 61 74 65 6d 65 6e 74  INSERT statement
b380: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65  s.</li>.<li>Exte
b390: 6e 64 20 74 68 65 20 65 78 70 72 65 73 73 69 6f  nd the expressio
b3a0: 6e 20 73 79 6e 74 61 78 20 74 6f 20 73 75 70 70  n syntax to supp
b3b0: 6f 72 74 20 22 65 78 70 72 20 4e 4f 54 20 4e 55  ort "expr NOT NU
b3c0: 4c 4c 22 20 28 77 69 74 68 20 61 0a 20 20 20 20  LL" (with a.    
b3d0: 73 70 61 63 65 20 62 65 74 77 65 65 6e 20 74 68  space between th
b3e0: 65 20 22 4e 4f 54 22 20 61 6e 64 20 74 68 65 20  e "NOT" and the 
b3f0: 22 4e 55 4c 4c 22 29 20 69 6e 20 61 64 64 69 74  "NULL") in addit
b400: 69 6f 6e 20 74 6f 20 22 65 78 70 72 20 4e 4f 54  ion to "expr NOT
b410: 4e 55 4c 4c 22 0a 20 20 20 20 28 77 69 74 68 20  NULL".    (with 
b420: 6e 6f 20 73 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a  no space).</li>.
b430: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65  }..chng {2001 Se
b440: 70 20 32 38 20 28 32 2e 30 2e 30 29 7d 20 7b 0a  p 28 (2.0.0)} {.
b450: 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c  <li>Automaticall
b460: 79 20 62 75 69 6c 64 20 62 69 6e 61 72 69 65 73  y build binaries
b470: 20 66 6f 72 20 4c 69 6e 75 78 20 61 6e 64 20 57   for Linux and W
b480: 69 6e 64 6f 77 73 20 61 6e 64 20 70 75 74 20 74  indows and put t
b490: 68 65 6d 20 6f 6e 0a 20 20 20 20 74 68 65 20 77  hem on.    the w
b4a0: 65 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ebsite.</li>.}..
b4b0: 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32  chng {2001 Sep 2
b4c0: 38 20 28 32 2e 30 2d 61 6c 70 68 61 2d 34 29 7d  8 (2.0-alpha-4)}
b4d0: 20 7b 0a 3c 6c 69 3e 49 6e 63 6f 72 70 6f 72 61   {.<li>Incorpora
b4e0: 74 65 20 6d 61 6b 65 66 69 6c 65 20 70 61 74 63  te makefile patc
b4f0: 68 65 73 20 66 6f 72 6d 20 41 2e 20 52 6f 74 74  hes form A. Rott
b500: 6d 61 6e 6e 20 74 6f 20 75 73 65 20 4c 49 42 54  mann to use LIBT
b510: 4f 4f 4c 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  OOL</li>.}..chng
b520: 20 7b 32 30 30 31 20 53 65 70 20 32 37 20 28 32   {2001 Sep 27 (2
b530: 2e 30 2d 61 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c  .0-alpha-3)} {.<
b540: 6c 69 3e 53 51 4c 69 74 65 20 6e 6f 77 20 68 6f  li>SQLite now ho
b550: 6e 6f 72 73 20 74 68 65 20 55 4e 49 51 55 45 20  nors the UNIQUE 
b560: 6b 65 79 77 6f 72 64 20 69 6e 20 43 52 45 41 54  keyword in CREAT
b570: 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 2e 20  E UNIQUE INDEX. 
b580: 20 50 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79   Primary.    key
b590: 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74  s are required t
b5a0: 6f 20 62 65 20 75 6e 69 71 75 65 2e 3c 2f 6c 69  o be unique.</li
b5b0: 3e 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61  >.<li>File forma
b5c0: 74 20 63 68 61 6e 67 65 64 20 62 61 63 6b 20 74  t changed back t
b5d0: 6f 20 77 68 61 74 20 69 74 20 77 61 73 20 66 6f  o what it was fo
b5e0: 72 20 61 6c 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c  r alpha-1</li>.<
b5f0: 6c 69 3e 46 69 78 65 73 20 74 6f 20 74 68 65 20  li>Fixes to the 
b600: 72 6f 6c 6c 62 61 63 6b 20 61 6e 64 20 6c 6f 63  rollback and loc
b610: 6b 69 6e 67 20 62 65 68 61 76 69 6f 72 3c 2f 6c  king behavior</l
b620: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
b630: 20 53 65 70 20 32 30 20 28 32 2e 30 2d 61 6c 70   Sep 20 (2.0-alp
b640: 68 61 2d 32 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69  ha-2)} {.<li>Ini
b650: 74 69 61 6c 20 72 65 6c 65 61 73 65 20 6f 66 20  tial release of 
b660: 76 65 72 73 69 6f 6e 20 32 2e 30 2e 20 20 54 68  version 2.0.  Th
b670: 65 20 69 64 65 61 20 6f 66 20 72 65 6e 61 6d 69  e idea of renami
b680: 6e 67 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20  ng the library. 
b690: 20 20 20 74 6f 20 22 53 51 4c 75 73 22 20 77 61     to "SQLus" wa
b6a0: 73 20 61 62 61 6e 64 6f 6e 65 64 20 69 6e 20 66  s abandoned in f
b6b0: 61 76 6f 72 20 6f 66 20 6b 65 65 70 69 6e 67 20  avor of keeping 
b6c0: 74 68 65 20 22 53 51 4c 69 74 65 22 20 6e 61 6d  the "SQLite" nam
b6d0: 65 20 61 6e 64 0a 20 20 20 20 62 75 6d 70 69 6e  e and.    bumpin
b6e0: 67 20 74 68 65 20 6d 61 6a 6f 72 20 76 65 72 73  g the major vers
b6f0: 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e  ion number.</li>
b700: 0a 3c 6c 69 3e 54 68 65 20 70 61 67 65 72 20 61  .<li>The pager a
b710: 6e 64 20 62 74 72 65 65 20 73 75 62 73 79 73 74  nd btree subsyst
b720: 65 6d 73 20 61 64 64 65 64 20 62 61 63 6b 2e 20  ems added back. 
b730: 54 68 65 79 20 61 72 65 20 6e 6f 77 20 74 68 65  They are now the
b740: 20 6f 6e 6c 79 0a 20 20 20 20 61 76 61 69 6c 61   only.    availa
b750: 62 6c 65 20 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69  ble backend.</li
b760: 3e 0a 3c 6c 69 3e 54 68 65 20 44 62 62 65 20 61  >.<li>The Dbbe a
b770: 62 73 74 72 61 63 74 69 6f 6e 20 61 6e 64 20 74  bstraction and t
b780: 68 65 20 47 44 42 4d 20 61 6e 64 20 6d 65 6d 6f  he GDBM and memo
b790: 72 79 20 64 72 69 76 65 72 73 20 77 65 72 65 20  ry drivers were 
b7a0: 72 65 6d 6f 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  removed.</li>.<l
b7b0: 69 3e 43 6f 70 79 72 69 67 68 74 20 6f 6e 20 61  i>Copyright on a
b7c0: 6c 6c 20 63 6f 64 65 20 77 61 73 20 64 69 73 63  ll code was disc
b7d0: 6c 61 69 6d 65 64 2e 20 20 54 68 65 20 6c 69 62  laimed.  The lib
b7e0: 72 61 72 79 20 69 73 20 6e 6f 77 20 69 6e 20 74  rary is now in t
b7f0: 68 65 0a 20 20 20 20 70 75 62 6c 69 63 20 64 6f  he.    public do
b800: 6d 61 69 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  main.</li>.}..ch
b810: 6e 67 20 7b 32 30 30 31 20 4a 75 6c 20 32 33 20  ng {2001 Jul 23 
b820: 28 31 2e 30 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.32)} {.<li>
b830: 50 61 67 65 72 20 61 6e 64 20 62 74 72 65 65 20  Pager and btree 
b840: 73 75 62 73 79 73 74 65 6d 73 20 72 65 6d 6f 76  subsystems remov
b850: 65 64 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20  ed.  These will 
b860: 62 65 20 75 73 65 64 20 69 6e 20 61 20 66 6f 6c  be used in a fol
b870: 6c 6f 77 2d 6f 6e 0a 20 20 20 20 53 51 4c 20 73  low-on.    SQL s
b880: 65 72 76 65 72 20 6c 69 62 72 61 72 79 20 6e 61  erver library na
b890: 6d 65 64 20 22 53 51 4c 75 73 22 2e 3c 2f 6c 69  med "SQLus".</li
b8a0: 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62  >.<li>Add the ab
b8b0: 69 6c 69 74 79 20 74 6f 20 75 73 65 20 71 75 6f  ility to use quo
b8c0: 74 65 64 20 73 74 72 69 6e 67 73 20 61 73 20 74  ted strings as t
b8d0: 61 62 6c 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 20  able and column 
b8e0: 6e 61 6d 65 73 20 69 6e 0a 20 20 20 20 65 78 70  names in.    exp
b8f0: 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d  ressions.</li>.}
b900: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72  ..chng {2001 Apr
b910: 20 31 34 20 28 31 2e 30 2e 33 31 29 7d 20 7b 0a   14 (1.0.31)} {.
b920: 3c 6c 69 3e 50 61 67 65 72 20 73 75 62 73 79 73  <li>Pager subsys
b930: 74 65 6d 20 61 64 64 65 64 20 62 75 74 20 6e 6f  tem added but no
b940: 74 20 79 65 74 20 75 73 65 64 2e 3c 2f 6c 69 3e  t yet used.</li>
b950: 0a 3c 6c 69 3e 4d 6f 72 65 20 72 6f 62 75 73 74  .<li>More robust
b960: 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 6f 75 74   handling of out
b970: 2d 6f 66 2d 6d 65 6d 6f 72 79 20 65 72 72 6f 72  -of-memory error
b980: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20  s.</li>.<li>New 
b990: 74 65 73 74 73 20 61 64 64 65 64 20 74 6f 20 74  tests added to t
b9a0: 68 65 20 74 65 73 74 20 73 75 69 74 65 2e 3c 2f  he test suite.</
b9b0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
b9c0: 31 20 41 70 72 20 36 20 28 31 2e 30 2e 33 30 29  1 Apr 6 (1.0.30)
b9d0: 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74  } {.<li>Remove t
b9e0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 6e 63  he <b>sqlite_enc
b9f0: 6f 64 69 6e 67 3c 2f 62 3e 20 54 43 4c 20 76 61  oding</b> TCL va
ba00: 72 69 61 62 6c 65 20 74 68 61 74 20 77 61 73 20  riable that was 
ba10: 69 6e 74 72 6f 64 75 63 65 64 0a 20 20 20 20 69  introduced.    i
ba20: 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 76  n the previous v
ba30: 65 72 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ersion.</li>.<li
ba40: 3e 41 64 64 20 6f 70 74 69 6f 6e 73 20 3c 62 3e  >Add options <b>
ba50: 2d 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e  -encoding</b> an
ba60: 64 20 3c 62 3e 2d 74 63 6c 2d 75 73 65 73 2d 75  d <b>-tcl-uses-u
ba70: 74 66 3c 2f 62 3e 20 74 6f 20 74 68 65 0a 20 20  tf</b> to the.  
ba80: 20 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20    <b>sqlite</b> 
ba90: 54 43 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69  TCL command.</li
baa0: 3e 0a 3c 6c 69 3e 41 64 64 20 74 65 73 74 73 20  >.<li>Add tests 
bab0: 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61  to make sure tha
bac0: 74 20 74 63 6c 73 71 6c 69 74 65 20 77 61 73 20  t tclsqlite was 
bad0: 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 54  compiled using T
bae0: 63 6c 20 68 65 61 64 65 72 0a 20 20 20 20 66 69  cl header.    fi
baf0: 6c 65 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65  les and librarie
bb00: 73 20 74 68 61 74 20 6d 61 74 63 68 2e 3c 2f 6c  s that match.</l
bb10: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
bb20: 20 41 70 72 20 35 20 28 31 2e 30 2e 32 39 29 7d   Apr 5 (1.0.29)}
bb30: 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c 69 62 72 61   {.<li>The libra
bb40: 72 79 20 6e 6f 77 20 61 73 73 75 6d 65 73 20 64  ry now assumes d
bb50: 61 74 61 20 69 73 20 73 74 6f 72 65 64 20 61 73  ata is stored as
bb60: 20 55 54 46 2d 38 20 69 66 20 74 68 65 20 2d 2d   UTF-8 if the --
bb70: 65 6e 61 62 6c 65 2d 75 74 66 38 0a 20 20 20 20  enable-utf8.    
bb80: 6f 70 74 69 6f 6e 20 69 73 20 67 69 76 65 6e 20  option is given 
bb90: 74 6f 20 63 6f 6e 66 69 67 75 72 65 2e 20 20 54  to configure.  T
bba0: 68 65 20 64 65 66 61 75 6c 74 20 62 65 68 61 76  he default behav
bbb0: 69 6f 72 20 69 73 20 74 6f 20 61 73 73 75 6d 65  ior is to assume
bbc0: 0a 20 20 20 20 69 73 6f 38 38 35 39 2d 78 2c 20  .    iso8859-x, 
bbd0: 61 73 20 69 74 20 68 61 73 20 61 6c 77 61 79 73  as it has always
bbe0: 20 64 6f 6e 65 2e 20 20 54 68 69 73 20 6f 6e 6c   done.  This onl
bbf0: 79 20 6d 61 6b 65 73 20 61 20 64 69 66 66 65 72  y makes a differ
bc00: 65 6e 63 65 20 66 6f 72 0a 20 20 20 20 4c 49 4b  ence for.    LIK
bc10: 45 20 61 6e 64 20 47 4c 4f 42 20 6f 70 65 72 61  E and GLOB opera
bc20: 74 6f 72 73 20 61 6e 64 20 74 68 65 20 4c 45 4e  tors and the LEN
bc30: 47 54 48 20 61 6e 64 20 53 55 42 53 54 52 20 66  GTH and SUBSTR f
bc40: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  unctions.</li>.<
bc50: 6c 69 3e 49 66 20 74 68 65 20 6c 69 62 72 61 72  li>If the librar
bc60: 79 20 69 73 20 6e 6f 74 20 63 6f 6e 66 69 67 75  y is not configu
bc70: 72 65 64 20 66 6f 72 20 55 54 46 2d 38 20 61 6e  red for UTF-8 an
bc80: 64 20 74 68 65 20 54 63 6c 20 6c 69 62 72 61 72  d the Tcl librar
bc90: 79 0a 20 20 20 20 69 73 20 6f 6e 65 20 6f 66 20  y.    is one of 
bca0: 74 68 65 20 6e 65 77 65 72 20 6f 6e 65 73 20 74  the newer ones t
bcb0: 68 61 74 20 75 73 65 73 20 55 54 46 2d 38 20 69  hat uses UTF-8 i
bcc0: 6e 74 65 72 6e 61 6c 6c 79 2c 0a 20 20 20 20 74  nternally,.    t
bcd0: 68 65 6e 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e  hen a conversion
bce0: 20 66 72 6f 6d 20 55 54 46 2d 38 20 74 6f 20 69   from UTF-8 to i
bcf0: 73 6f 38 38 35 39 20 61 6e 64 0a 20 20 20 20 62  so8859 and.    b
bd00: 61 63 6b 20 61 67 61 69 6e 20 69 73 20 64 6f 6e  ack again is don
bd10: 65 20 69 6e 73 69 64 65 20 74 68 65 20 54 43 4c  e inside the TCL
bd20: 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e   interface.</li>
bd30: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41  .}..chng {2001 A
bd40: 70 72 20 34 20 28 31 2e 30 2e 32 38 29 7d 20 7b  pr 4 (1.0.28)} {
bd50: 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 69 6d 69 74  .<li>Added limit
bd60: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74  ed support for t
bd70: 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 41 74  ransactions.  At
bd80: 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 74 72 61   this point, tra
bd90: 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 77 69  nsactions.    wi
bda0: 6c 6c 20 64 6f 20 74 61 62 6c 65 20 6c 6f 63 6b  ll do table lock
bdb0: 69 6e 67 20 6f 6e 20 74 68 65 20 47 44 42 4d 20  ing on the GDBM 
bdc0: 62 61 63 6b 65 6e 64 2e 20 20 54 68 65 72 65 20  backend.  There 
bdd0: 69 73 20 6e 6f 20 73 75 70 70 6f 72 74 20 28 79  is no support (y
bde0: 65 74 29 0a 20 20 20 20 66 6f 72 20 72 6f 6c 6c  et).    for roll
bdf0: 62 61 63 6b 20 6f 72 20 61 74 6f 6d 69 63 20 63  back or atomic c
be00: 6f 6d 6d 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ommit.</li>.<li>
be10: 41 64 64 65 64 20 73 70 65 63 69 61 6c 20 63 6f  Added special co
be20: 6c 75 6d 6e 20 6e 61 6d 65 73 20 52 4f 57 49 44  lumn names ROWID
be30: 2c 20 4f 49 44 2c 20 61 6e 64 20 5f 52 4f 57 49  , OID, and _ROWI
be40: 44 5f 20 74 68 61 74 20 72 65 66 65 72 20 74 6f  D_ that refer to
be50: 20 74 68 65 0a 20 20 20 20 75 6e 69 71 75 65 20   the.    unique 
be60: 72 61 6e 64 6f 6d 20 69 6e 74 65 67 65 72 20 6b  random integer k
be70: 65 79 20 61 73 73 6f 63 69 61 74 65 64 20 77 69  ey associated wi
be80: 74 68 20 65 76 65 72 79 20 72 6f 77 20 6f 66 20  th every row of 
be90: 65 76 65 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69  every table.</li
bea0: 3e 0a 3c 6c 69 3e 41 64 64 69 74 69 6f 6e 61 6c  >.<li>Additional
beb0: 20 74 65 73 74 73 20 61 64 64 65 64 20 74 6f 20   tests added to 
bec0: 74 68 65 20 72 65 67 72 65 73 73 69 6f 6e 20 73  the regression s
bed0: 75 69 74 65 20 74 6f 20 63 6f 76 65 72 20 74 68  uite to cover th
bee0: 65 20 6e 65 77 20 52 4f 57 49 44 0a 20 20 20 20  e new ROWID.    
bef0: 66 65 61 74 75 72 65 20 61 6e 64 20 74 68 65 20  feature and the 
bf00: 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20 62 75  TCL interface bu
bf10: 67 73 20 6d 65 6e 74 69 6f 6e 65 64 20 62 65 6c  gs mentioned bel
bf20: 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  ow.</li>.<li>Cha
bf30: 6e 67 65 73 20 74 6f 20 74 68 65 20 22 6c 65 6d  nges to the "lem
bf40: 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e 65 72  on" parser gener
bf50: 61 74 6f 72 20 74 6f 20 68 65 6c 70 20 69 74 20  ator to help it 
bf60: 77 6f 72 6b 20 62 65 74 74 65 72 20 77 68 65 6e  work better when
bf70: 0a 20 20 20 20 63 6f 6d 70 69 6c 65 64 20 75 73  .    compiled us
bf80: 69 6e 67 20 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c  ing MSVC.</li>.<
bf90: 6c 69 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20  li>Bug fixes in 
bfa0: 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
bfb0: 65 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20  e identified by 
bfc0: 4f 6c 65 67 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f  Oleg Oleinick.</
bfd0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
bfe0: 31 20 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 37  1 Mar 20 (1.0.27
bff0: 29 7d 20 7b 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f  )} {.<li>When do
c000: 69 6e 67 20 44 45 4c 45 54 45 20 61 6e 64 20 55  ing DELETE and U
c010: 50 44 41 54 45 2c 20 74 68 65 20 6c 69 62 72 61  PDATE, the libra
c020: 72 79 20 75 73 65 64 20 74 6f 20 77 72 69 74 65  ry used to write
c030: 20 74 68 65 20 72 65 63 6f 72 64 0a 20 20 20 20   the record.    
c040: 6e 75 6d 62 65 72 73 20 6f 66 20 72 65 63 6f 72  numbers of recor
c050: 64 73 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64  ds to be deleted
c060: 20 6f 72 20 75 70 64 61 74 65 64 20 69 6e 74 6f   or updated into
c070: 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c   a temporary fil
c080: 65 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 63  e..    This is c
c090: 68 61 6e 67 65 64 20 73 6f 20 74 68 61 74 20 74  hanged so that t
c0a0: 68 65 20 72 65 63 6f 72 64 20 6e 75 6d 62 65 72  he record number
c0b0: 73 20 61 72 65 20 68 65 6c 64 20 69 6e 20 6d 65  s are held in me
c0c0: 6d 6f 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  mory.</li>.<li>T
c0d0: 68 65 20 44 45 4c 45 54 45 20 63 6f 6d 6d 61 6e  he DELETE comman
c0e0: 64 20 77 69 74 68 6f 75 74 20 61 20 57 48 49 4c  d without a WHIL
c0f0: 45 20 63 6c 61 75 73 65 20 6a 75 73 74 20 72 65  E clause just re
c100: 6d 6f 76 65 73 20 74 68 65 20 64 61 74 61 62 61  moves the databa
c110: 73 65 0a 20 20 20 20 66 69 6c 65 73 20 66 72 6f  se.    files fro
c120: 6d 20 74 68 65 20 64 69 73 6b 2c 20 72 61 74 68  m the disk, rath
c130: 65 72 20 74 68 61 6e 20 67 6f 69 6e 67 20 74 68  er than going th
c140: 72 6f 75 67 68 20 61 6e 64 20 64 65 6c 65 74 69  rough and deleti
c150: 6e 67 20 72 65 63 6f 72 64 0a 20 20 20 20 62 79  ng record.    by
c160: 20 72 65 63 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a   record.</li>.}.
c170: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20  .chng {2001 Mar 
c180: 32 30 20 28 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c  20 (1.0.26)} {.<
c190: 6c 69 3e 41 20 73 65 72 69 6f 75 73 20 62 75 67  li>A serious bug
c1a0: 20 66 69 78 65 64 20 6f 6e 20 57 69 6e 64 6f 77   fixed on Window
c1b0: 73 2e 20 20 57 69 6e 64 6f 77 73 20 75 73 65 72  s.  Windows user
c1c0: 73 20 73 68 6f 75 6c 64 20 75 70 67 72 61 64 65  s should upgrade
c1d0: 2e 0a 20 20 20 20 4e 6f 20 69 6d 70 61 63 74 20  ..    No impact 
c1e0: 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a  to Unix.</li>.}.
c1f0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20  .chng {2001 Mar 
c200: 31 35 20 28 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c  15 (1.0.25)} {.<
c210: 6c 69 3e 4d 6f 64 69 66 79 20 74 68 65 20 74 65  li>Modify the te
c220: 73 74 20 73 63 72 69 70 74 73 20 74 6f 20 69 64  st scripts to id
c230: 65 6e 74 69 66 79 20 74 65 73 74 73 20 74 68 61  entify tests tha
c240: 74 20 64 65 70 65 6e 64 20 6f 6e 20 73 79 73 74  t depend on syst
c250: 65 6d 0a 20 20 20 20 6c 6f 61 64 20 61 6e 64 20  em.    load and 
c260: 70 72 6f 63 65 73 73 6f 72 20 73 70 65 65 64 20  processor speed 
c270: 61 6e 64 0a 20 20 20 20 74 6f 20 77 61 72 6e 20  and.    to warn 
c280: 74 68 65 20 75 73 65 72 20 74 68 61 74 20 61 20  the user that a 
c290: 66 61 69 6c 75 72 65 20 6f 66 20 6f 6e 65 20 6f  failure of one o
c2a0: 66 20 74 68 6f 73 65 20 28 72 61 72 65 29 20 74  f those (rare) t
c2b0: 65 73 74 73 20 64 6f 65 73 0a 20 20 20 20 6e 6f  ests does.    no
c2c0: 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 6d 65  t necessarily me
c2d0: 61 6e 20 74 68 65 20 6c 69 62 72 61 72 79 20 69  an the library i
c2e0: 73 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 69 6e 67  s malfunctioning
c2f0: 2e 20 20 4e 6f 20 63 68 61 6e 67 65 73 20 74 6f  .  No changes to
c300: 0a 20 20 20 20 63 6f 64 65 2e 0a 20 20 20 20 3c  .    code..    <
c310: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c320: 30 31 20 4d 61 72 20 31 34 20 28 31 2e 30 2e 32  01 Mar 14 (1.0.2
c330: 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  4)} {.<li>Fix a 
c340: 62 75 67 20 77 68 69 63 68 20 77 61 73 20 63 61  bug which was ca
c350: 75 73 69 6e 67 0a 20 20 20 20 74 68 65 20 55 50  using.    the UP
c360: 44 41 54 45 20 63 6f 6d 6d 61 6e 64 20 74 6f 20  DATE command to 
c370: 66 61 69 6c 20 6f 6e 20 73 79 73 74 65 6d 73 20  fail on systems 
c380: 77 68 65 72 65 20 22 6d 61 6c 6c 6f 63 28 30 29  where "malloc(0)
c390: 22 20 72 65 74 75 72 6e 73 0a 20 20 20 20 4e 55  " returns.    NU
c3a0: 4c 4c 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d  LL.  The problem
c3b0: 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72   does not appear
c3c0: 20 57 69 6e 64 6f 77 73 2c 20 4c 69 6e 75 78 2c   Windows, Linux,
c3d0: 20 6f 72 20 48 50 55 58 20 62 75 74 20 64 6f 65   or HPUX but doe
c3e0: 73 20 0a 20 20 20 20 63 61 75 73 65 20 74 68 65  s .    cause the
c3f0: 20 6c 69 62 72 61 72 79 20 74 6f 20 66 61 69 6c   library to fail
c400: 20 6f 6e 20 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c   on QNX..    </l
c410: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
c420: 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 33 29   Feb 19 (1.0.23)
c430: 7d 20 7b 0a 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c  } {.<li>An unrel
c440: 61 74 65 64 20 28 61 6e 64 20 6d 69 6e 6f 72 29  ated (and minor)
c450: 20 62 75 67 20 66 72 6f 6d 20 4d 61 72 6b 20 4d   bug from Mark M
c460: 75 72 61 6e 77 73 6b 69 20 66 69 78 65 64 2e 20  uranwski fixed. 
c470: 20 54 68 65 20 61 6c 67 6f 72 69 74 68 6d 0a 20   The algorithm. 
c480: 20 20 20 66 6f 72 20 66 69 67 75 72 69 6e 67 20     for figuring 
c490: 6f 75 74 20 77 68 65 72 65 20 74 6f 20 70 75 74  out where to put
c4a0: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73   temporary files
c4b0: 20 66 6f 72 20 61 20 22 6d 65 6d 6f 72 79 3a 22   for a "memory:"
c4c0: 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 77 61   database.    wa
c4d0: 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 71 75  s not working qu
c4e0: 69 74 65 20 72 69 67 68 74 2e 0a 20 20 20 20 3c  ite right..    <
c4f0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c500: 30 31 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32  01 Feb 19 (1.0.2
c510: 32 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 72  2)} {.<li>The pr
c520: 65 76 69 6f 75 73 20 66 69 78 20 77 61 73 20 6e  evious fix was n
c530: 6f 74 20 71 75 69 74 65 20 72 69 67 68 74 2e 20  ot quite right. 
c540: 20 54 68 69 73 20 6f 6e 65 20 73 65 65 6d 73 20   This one seems 
c550: 74 6f 20 77 6f 72 6b 20 62 65 74 74 65 72 2e 0a  to work better..
c560: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
c570: 67 20 7b 32 30 30 31 20 46 65 62 20 31 39 20 28  g {2001 Feb 19 (
c580: 31 2e 30 2e 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54  1.0.21)} {.<li>T
c590: 68 65 20 55 50 44 41 54 45 20 73 74 61 74 65 6d  he UPDATE statem
c5a0: 65 6e 74 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b  ent was not work
c5b0: 69 6e 67 20 77 68 65 6e 20 74 68 65 20 57 48 45  ing when the WHE
c5c0: 52 45 20 63 6c 61 75 73 65 20 63 6f 6e 74 61 69  RE clause contai
c5d0: 6e 65 64 0a 20 20 20 20 73 6f 6d 65 20 74 65 72  ned.    some ter
c5e0: 6d 73 20 74 68 61 74 20 63 6f 75 6c 64 20 62 65  ms that could be
c5f0: 20 73 61 74 69 73 66 69 65 64 20 75 73 69 6e 67   satisfied using
c600: 20 69 6e 64 69 63 65 73 20 61 6e 64 20 6f 74 68   indices and oth
c610: 65 72 20 74 65 72 6d 73 20 74 68 61 74 0a 20 20  er terms that.  
c620: 20 20 63 6f 75 6c 64 20 6e 6f 74 2e 20 20 46 69    could not.  Fi
c630: 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xed.</li>.}..chn
c640: 67 20 7b 32 30 30 31 20 46 65 62 20 31 31 20 28  g {2001 Feb 11 (
c650: 31 2e 30 2e 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d  1.0.20)} {.<li>M
c660: 65 72 67 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74  erge development
c670: 20 63 68 61 6e 67 65 73 20 69 6e 74 6f 20 74 68   changes into th
c680: 65 20 6d 61 69 6e 20 74 72 75 6e 6b 2e 20 20 46  e main trunk.  F
c690: 75 74 75 72 65 20 77 6f 72 6b 20 74 6f 77 61 72  uture work towar
c6a0: 64 0a 20 20 20 20 75 73 69 6e 67 20 61 20 42 54  d.    using a BT
c6b0: 72 65 65 20 66 69 6c 65 20 73 74 72 75 63 74 75  ree file structu
c6c0: 72 65 20 77 69 6c 6c 20 75 73 65 20 61 20 73 65  re will use a se
c6d0: 70 61 72 61 74 65 20 43 56 53 20 73 6f 75 72 63  parate CVS sourc
c6e0: 65 20 74 72 65 65 2e 20 20 54 68 69 73 0a 20 20  e tree.  This.  
c6f0: 20 20 43 56 53 20 74 72 65 65 20 77 69 6c 6c 20    CVS tree will 
c700: 63 6f 6e 74 69 6e 75 65 20 74 6f 20 73 75 70 70  continue to supp
c710: 6f 72 74 20 74 68 65 20 47 44 42 4d 20 76 65 72  ort the GDBM ver
c720: 73 69 6f 6e 20 6f 66 20 53 51 4c 69 74 65 20 6f  sion of SQLite o
c730: 6e 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nly.</li>.}..chn
c740: 67 20 7b 32 30 30 31 20 46 65 62 20 36 20 28 31  g {2001 Feb 6 (1
c750: 2e 30 2e 31 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69  .0.19)} {.<li>Fi
c760: 78 20 61 20 73 74 72 61 6e 67 65 20 28 62 75 74  x a strange (but
c770: 20 76 61 6c 69 64 29 20 43 20 64 65 63 6c 61 72   valid) C declar
c780: 61 74 69 6f 6e 20 74 68 61 74 20 77 61 73 20 63  ation that was c
c790: 61 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a  ausing problems.
c7a0: 20 20 20 20 66 6f 72 20 51 4e 58 2e 20 20 4e 6f      for QNX.  No
c7b0: 20 6c 6f 67 69 63 61 6c 20 63 68 61 6e 67 65 73   logical changes
c7c0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c7d0: 32 30 30 31 20 4a 61 6e 20 34 20 28 31 2e 30 2e  2001 Jan 4 (1.0.
c7e0: 31 38 29 7d 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74  18)} {.<li>Print
c7f0: 20 74 68 65 20 6f 66 66 65 6e 64 69 6e 67 20 53   the offending S
c800: 51 4c 20 73 74 61 74 65 6d 65 6e 74 20 77 68 65  QL statement whe
c810: 6e 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72  n an error occur
c820: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e  s.</li>.<li>Do n
c830: 6f 74 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61  ot require comma
c840: 73 20 62 65 74 77 65 65 6e 20 63 6f 6e 73 74 72  s between constr
c850: 61 69 6e 74 73 20 69 6e 20 43 52 45 41 54 45 20  aints in CREATE 
c860: 54 41 42 4c 45 20 73 74 61 74 65 6d 65 6e 74 73  TABLE statements
c870: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
c880: 20 74 68 65 20 22 2d 65 63 68 6f 22 20 6f 70 74   the "-echo" opt
c890: 69 6f 6e 20 74 6f 20 74 68 65 20 73 68 65 6c 6c  ion to the shell
c8a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
c8b0: 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c  es to comments.<
c8c0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c8d0: 30 30 20 44 65 63 20 31 30 20 28 31 2e 30 2e 31  00 Dec 10 (1.0.1
c8e0: 37 29 7d 20 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74  7)} {.<li>Rewrot
c8f0: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70  e <b>sqlite_comp
c900: 6c 65 74 65 28 29 3c 2f 62 3e 20 74 6f 20 6d 61  lete()</b> to ma
c910: 6b 65 20 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c  ke it faster.</l
c920: 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 74 77 65  i>.<li>Minor twe
c930: 61 6b 73 20 74 6f 20 6f 74 68 65 72 20 63 6f 64  aks to other cod
c940: 65 20 74 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e  e to make it run
c950: 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72   a little faster
c960: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
c970: 20 6e 65 77 20 74 65 73 74 73 20 66 6f 72 20 3c   new tests for <
c980: 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74  b>sqlite_complet
c990: 65 28 29 3c 2f 62 3e 20 61 6e 64 20 66 6f 72 20  e()</b> and for 
c9a0: 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c  memory leaks.</l
c9b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
c9c0: 20 44 65 63 20 34 20 28 31 2e 30 2e 31 36 29 7d   Dec 4 (1.0.16)}
c9d0: 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61   {.<li>Documenta
c9e0: 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 20 20 4d  tion updates.  M
c9f0: 6f 73 74 6c 79 20 66 69 78 69 6e 67 20 6f 66 20  ostly fixing of 
ca00: 74 79 70 6f 73 20 61 6e 64 20 73 70 65 6c 6c 69  typos and spelli
ca10: 6e 67 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a  ng errors.</li>.
ca20: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63  }..chng {2000 Oc
ca30: 74 20 32 33 20 28 31 2e 30 2e 31 35 29 7d 20 7b  t 23 (1.0.15)} {
ca40: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
ca50: 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a  on updates</li>.
ca60: 3c 6c 69 3e 53 6f 6d 65 20 73 61 6e 69 74 79 20  <li>Some sanity 
ca70: 63 68 65 63 6b 69 6e 67 20 63 6f 64 65 20 77 61  checking code wa
ca80: 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74  s removed from t
ca90: 68 65 20 69 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66  he inner loop of
caa0: 20 76 64 62 65 2e 63 0a 20 20 20 20 74 6f 20 68   vdbe.c.    to h
cab0: 65 6c 70 20 74 68 65 20 6c 69 62 72 61 72 79 20  elp the library 
cac0: 74 6f 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20  to run a little 
cad0: 66 61 73 74 65 72 2e 20 20 54 68 65 20 63 6f 64  faster.  The cod
cae0: 65 20 69 73 20 6f 6e 6c 79 0a 20 20 20 20 72 65  e is only.    re
caf0: 6d 6f 76 65 64 20 69 66 20 79 6f 75 20 63 6f 6d  moved if you com
cb00: 70 69 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42  pile with -DNDEB
cb10: 55 47 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  UG.</li>.}..chng
cb20: 20 7b 32 30 30 30 20 4f 63 74 20 31 39 20 28 31   {2000 Oct 19 (1
cb30: 2e 30 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64  .0.14)} {.<li>Ad
cb40: 64 65 64 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20  ded a "memory:" 
cb50: 62 61 63 6b 65 6e 64 20 64 72 69 76 65 72 20 74  backend driver t
cb60: 68 61 74 20 73 74 6f 72 65 73 20 69 74 73 20 64  hat stores its d
cb70: 61 74 61 62 61 73 65 20 69 6e 20 61 6e 0a 20 20  atabase in an.  
cb80: 20 20 69 6e 2d 6d 65 6d 6f 72 79 20 68 61 73 68    in-memory hash
cb90: 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   table.</li>.}..
cba0: 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31  chng {2000 Oct 1
cbb0: 38 20 28 31 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c  8 (1.0.13)} {.<l
cbc0: 69 3e 42 72 65 61 6b 20 6f 75 74 20 74 68 65 20  i>Break out the 
cbd0: 47 44 42 4d 20 64 72 69 76 65 72 20 69 6e 74 6f  GDBM driver into
cbe0: 20 61 20 73 65 70 61 72 61 74 65 20 66 69 6c 65   a separate file
cbf0: 20 69 6e 20 61 6e 74 69 63 69 70 61 74 69 6f 6e   in anticipation
cc00: 0a 20 20 20 20 74 6f 20 61 64 64 65 64 20 6e 65  .    to added ne
cc10: 77 20 64 72 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a  w drivers.</li>.
cc20: 3c 6c 69 3e 41 6c 6c 6f 77 20 74 68 65 20 6e 61  <li>Allow the na
cc30: 6d 65 20 6f 66 20 61 20 64 61 74 61 62 61 73 65  me of a database
cc40: 20 74 6f 20 62 65 20 70 72 65 66 69 78 65 64 20   to be prefixed 
cc50: 62 79 20 74 68 65 20 64 72 69 76 65 72 20 74 79  by the driver ty
cc60: 70 65 2e 0a 20 20 20 20 46 6f 72 20 6e 6f 77 2c  pe..    For now,
cc70: 20 74 68 65 20 6f 6e 6c 79 20 64 72 69 76 65 72   the only driver
cc80: 20 74 79 70 65 20 69 73 20 22 67 64 62 6d 3a 22   type is "gdbm:"
cc90: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
cca0: 32 30 30 30 20 4f 63 74 20 31 36 20 28 31 2e 30  2000 Oct 16 (1.0
ccb0: 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65  .12)} {.<li>Fixe
ccc0: 64 20 61 6e 20 6f 66 66 2d 62 79 2d 6f 6e 65 20  d an off-by-one 
ccd0: 65 72 72 6f 72 20 74 68 61 74 20 77 61 73 20 63  error that was c
cce0: 61 75 73 69 6e 67 20 61 20 63 6f 72 65 64 75 6d  ausing a coredum
ccf0: 70 20 69 6e 20 0a 20 20 20 20 74 68 65 20 27 25  p in .    the '%
cd00: 71 27 20 66 6f 72 6d 61 74 20 64 69 72 65 63 74  q' format direct
cd10: 69 76 65 20 6f 66 20 74 68 65 20 6e 65 77 0a 20  ive of the new. 
cd20: 20 20 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e     <b>sqlite_...
cd30: 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20 72 6f  _printf()</b> ro
cd40: 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  utines.</li>.<li
cd50: 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71  >Added the <b>sq
cd60: 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29  lite_interrupt()
cd70: 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c  </b> interface.<
cd80: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20  /li>.<li>In the 
cd90: 73 68 65 6c 6c 2c 20 3c 62 3e 73 71 6c 69 74 65  shell, <b>sqlite
cda0: 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f 62 3e  _interrupt()</b>
cdb0: 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e   is invoked when
cdc0: 20 74 68 65 0a 20 20 20 20 75 73 65 72 20 70 72   the.    user pr
cdd0: 65 73 73 65 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c  esses Control-C<
cde0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 73  /li>.<li>Fixed s
cdf0: 6f 6d 65 20 69 6e 73 74 61 6e 63 65 73 20 77 68  ome instances wh
ce00: 65 72 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78  ere <b>sqlite_ex
ce10: 65 63 28 29 3c 2f 62 3e 20 77 61 73 0a 20 20 20  ec()</b> was.   
ce20: 20 72 65 74 75 72 6e 69 6e 67 20 74 68 65 20 77   returning the w
ce30: 72 6f 6e 67 20 65 72 72 6f 72 20 63 6f 64 65 2e  rong error code.
ce40: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
ce50: 30 30 30 20 4f 63 74 20 31 31 20 28 31 2e 30 2e  000 Oct 11 (1.0.
ce60: 31 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  10)} {.<li>Added
ce70: 20 6e 6f 74 65 73 20 6f 6e 20 68 6f 77 20 74 6f   notes on how to
ce80: 20 63 6f 6d 70 69 6c 65 20 66 6f 72 20 57 69 6e   compile for Win
ce90: 64 6f 77 73 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a  dows95/98.</li>.
cea0: 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 61 20 66 65  <li>Removed a fe
ceb0: 77 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74  w variables that
cec0: 20 77 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20   were not being 
ced0: 75 73 65 64 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e  used.  Etc.</li>
cee0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f  .}..chng {2000 O
cef0: 63 74 20 38 20 28 31 2e 30 2e 39 29 7d 20 7b 0a  ct 8 (1.0.9)} {.
cf00: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
cf10: 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e  >sqlite_..._prin
cf20: 74 66 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61  tf()</b> interfa
cf30: 63 65 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69  ce routines.</li
cf40: 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74  >.<li>Modified t
cf50: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
cf60: 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74   shell program t
cf70: 6f 20 75 73 65 20 74 68 65 20 6e 65 77 20 69 6e  o use the new in
cf80: 74 65 72 66 61 63 65 20 0a 20 20 20 20 72 6f 75  terface .    rou
cf90: 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tines.</li>.<li>
cfa0: 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e  Modified the <b>
cfb0: 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c  sqlite</b> shell
cfc0: 20 70 72 6f 67 72 61 6d 20 74 6f 20 70 72 69 6e   program to prin
cfd0: 74 20 74 68 65 20 73 63 68 65 6d 61 20 66 6f 72  t the schema for
cfe0: 0a 20 20 20 20 74 68 65 20 62 75 69 6c 74 2d 69  .    the built-i
cff0: 6e 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20  n SQLITE_MASTER 
d000: 74 61 62 6c 65 2c 20 69 66 20 65 78 70 6c 69 63  table, if explic
d010: 69 74 6c 79 20 72 65 71 75 65 73 74 65 64 2e 3c  itly requested.<
d020: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
d030: 30 30 20 53 65 70 20 33 30 20 28 31 2e 30 2e 38  00 Sep 30 (1.0.8
d040: 29 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77  )} {.<li>Begin w
d050: 72 69 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61  riting documenta
d060: 74 69 6f 6e 20 6f 6e 20 74 68 65 20 54 43 4c 20  tion on the TCL 
d070: 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a  interface.</li>.
d080: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65  }..chng {2000 Se
d090: 70 20 32 39 20 28 4e 6f 74 20 52 65 6c 65 61 73  p 29 (Not Releas
d0a0: 65 64 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  ed)} {.<li>Added
d0b0: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67   the <b>sqlite_g
d0c0: 65 74 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20 41  et_table()</b> A
d0d0: 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61  PI</li>.<li>Upda
d0e0: 74 65 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74  ted the document
d0f0: 61 74 69 6f 6e 20 66 6f 72 20 64 75 65 20 74 6f  ation for due to
d100: 20 74 68 65 20 61 62 6f 76 65 20 63 68 61 6e 67   the above chang
d110: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  e.</li>.<li>Modi
d120: 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  fied the <b>sqli
d130: 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20  te</b> shell to 
d140: 6d 61 6b 65 20 75 73 65 20 6f 66 20 74 68 65 20  make use of the 
d150: 6e 65 77 0a 20 20 20 20 73 71 6c 69 74 65 5f 67  new.    sqlite_g
d160: 65 74 5f 74 61 62 6c 65 28 29 20 41 50 49 20 69  et_table() API i
d170: 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 69 6e 74  n order to print
d180: 20 61 20 6c 69 73 74 20 6f 66 20 74 61 62 6c 65   a list of table
d190: 73 0a 20 20 20 20 69 6e 20 6d 75 6c 74 69 70 6c  s.    in multipl
d1a0: 65 20 63 6f 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c  e columns, simil
d1b0: 61 72 20 74 6f 20 74 68 65 20 77 61 79 20 22 6c  ar to the way "l
d1c0: 73 22 20 70 72 69 6e 74 73 20 66 69 6c 65 6e 61  s" prints filena
d1d0: 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  mes.</li>.<li>Mo
d1e0: 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71  dified the <b>sq
d1f0: 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74  lite</b> shell t
d200: 6f 20 70 72 69 6e 74 20 61 20 73 65 6d 69 63 6f  o print a semico
d210: 6c 6f 6e 20 61 74 20 74 68 65 0a 20 20 20 20 65  lon at the.    e
d220: 6e 64 20 6f 66 20 65 61 63 68 20 43 52 45 41 54  nd of each CREAT
d230: 45 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 74  E statement in t
d240: 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65  he output of the
d250: 20 22 2e 73 63 68 65 6d 61 22 20 63 6f 6d 6d 61   ".schema" comma
d260: 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nd.</li>.}..chng
d270: 20 7b 32 30 30 30 20 53 65 70 20 32 31 20 28 4e   {2000 Sep 21 (N
d280: 6f 74 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a  ot Released)} {.
d290: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 74  <li>Change the t
d2a0: 63 6c 73 71 6c 69 74 65 20 22 65 76 61 6c 22 20  clsqlite "eval" 
d2b0: 6d 65 74 68 6f 64 20 74 6f 20 72 65 74 75 72 6e  method to return
d2c0: 20 61 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c   a list of resul
d2d0: 74 73 20 69 66 0a 20 20 20 20 6e 6f 20 63 61 6c  ts if.    no cal
d2e0: 6c 62 61 63 6b 20 73 63 72 69 70 74 20 69 73 20  lback script is 
d2f0: 73 70 65 63 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a  specified.</li>.
d300: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 63 6c 73 71  <li>Change tclsq
d310: 6c 69 74 65 2e 63 20 74 6f 20 75 73 65 20 74 68  lite.c to use th
d320: 65 20 54 63 6c 5f 4f 62 6a 20 69 6e 74 65 72 66  e Tcl_Obj interf
d330: 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ace</li>.<li>Add
d340: 20 74 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20   tclsqlite.c to 
d350: 74 68 65 20 6c 69 62 73 71 6c 69 74 65 2e 61 20  the libsqlite.a 
d360: 6c 69 62 72 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a  library</li>.}..
d370: 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 31  chng {2000 Sep 1
d380: 33 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 35  3 (Version 1.0.5
d390: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 64  )} {.<li>Changed
d3a0: 20 74 68 65 20 70 72 69 6e 74 20 66 6f 72 6d 61   the print forma
d3b0: 74 20 66 6f 72 20 66 6c 6f 61 74 69 6e 67 20 70  t for floating p
d3c0: 6f 69 6e 74 20 76 61 6c 75 65 73 20 66 72 6f 6d  oint values from
d3d0: 20 22 25 67 22 20 74 6f 20 22 25 2e 31 35 67 22   "%g" to "%.15g"
d3e0: 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ..    </li>.<li>
d3f0: 43 68 61 6e 67 65 64 20 74 68 65 20 63 6f 6d 70  Changed the comp
d400: 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20  arison function 
d410: 73 6f 20 74 68 61 74 20 6e 75 6d 62 65 72 73 20  so that numbers 
d420: 69 6e 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20 6e  in exponential n
d430: 6f 74 61 74 69 6f 6e 0a 20 20 20 20 28 65 78 3a  otation.    (ex:
d440: 20 31 2e 32 33 34 65 2b 30 35 29 20 73 6f 72 74   1.234e+05) sort
d450: 20 69 6e 20 6e 75 6d 65 72 69 63 61 6c 20 6f 72   in numerical or
d460: 64 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  der.</li>.}..chn
d470: 67 20 7b 32 30 30 30 20 41 75 67 20 32 38 20 28  g {2000 Aug 28 (
d480: 56 65 72 73 69 6f 6e 20 31 2e 30 2e 34 29 7d 20  Version 1.0.4)} 
d490: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 66 75 6e 63  {.<li>Added func
d4a0: 74 69 6f 6e 73 20 3c 62 3e 6c 65 6e 67 74 68 28  tions <b>length(
d4b0: 29 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 73 75 62  )</b> and <b>sub
d4c0: 73 74 72 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a  str()</b>.</li>.
d4d0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
d4e0: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f   the <b>sqlite</
d4f0: 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d  b> shell program
d500: 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e   that was causin
d510: 67 0a 20 20 20 20 61 20 63 6f 72 65 64 75 6d 70  g.    a coredump
d520: 20 77 68 65 6e 20 74 68 65 20 6f 75 74 70 75 74   when the output
d530: 20 6d 6f 64 65 20 77 61 73 20 22 63 6f 6c 75 6d   mode was "colum
d540: 6e 22 20 61 6e 64 20 74 68 65 20 66 69 72 73 74  n" and the first
d550: 20 72 6f 77 0a 20 20 20 20 6f 66 20 64 61 74 61   row.    of data
d560: 20 63 6f 6e 74 61 69 6e 65 64 20 61 20 4e 55 4c   contained a NUL
d570: 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  L.</li>.}..chng 
d580: 7b 32 30 30 30 20 41 75 67 20 32 32 20 28 56 65  {2000 Aug 22 (Ve
d590: 72 73 69 6f 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a  rsion 1.0.3)} {.
d5a0: 3c 6c 69 3e 49 6e 20 74 68 65 20 73 71 6c 69 74  <li>In the sqlit
d5b0: 65 20 73 68 65 6c 6c 2c 20 70 72 69 6e 74 20 74  e shell, print t
d5c0: 68 65 20 22 44 61 74 61 62 61 73 65 20 6f 70 65  he "Database ope
d5d0: 6e 65 64 20 52 45 41 44 20 4f 4e 4c 59 22 20 6d  ned READ ONLY" m
d5e0: 65 73 73 61 67 65 0a 20 20 20 20 74 6f 20 73 74  essage.    to st
d5f0: 64 65 72 72 20 69 6e 73 74 65 61 64 20 6f 66 20  derr instead of 
d600: 73 74 64 6f 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  stdout.</li>.<li
d610: 3e 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73  >In the sqlite s
d620: 68 65 6c 6c 2c 20 6e 6f 77 20 70 72 69 6e 74 20  hell, now print 
d630: 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62  the version numb
d640: 65 72 20 6f 6e 20 69 6e 69 74 69 61 6c 20 73 74  er on initial st
d650: 61 72 74 75 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  artup.</li>.<li>
d660: 41 64 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  Add the <b>sqlit
d670: 65 5f 76 65 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20  e_version[]</b> 
d680: 73 74 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 20  string constant 
d690: 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79 3c 2f  to the library</
d6a0: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65  li>.<li>Makefile
d6b0: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
d6c0: 69 3e 42 75 67 20 66 69 78 3a 20 69 6e 63 6f 72  i>Bug fix: incor
d6d0: 72 65 63 74 20 56 44 42 45 20 63 6f 64 65 20 77  rect VDBE code w
d6e0: 61 73 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74  as being generat
d6f0: 65 64 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f  ed for the follo
d700: 77 69 6e 67 0a 20 20 20 20 63 69 72 63 75 6d 73  wing.    circums
d710: 74 61 6e 63 65 3a 20 61 20 71 75 65 72 79 20 6f  tance: a query o
d720: 6e 20 61 6e 20 69 6e 64 65 78 65 64 20 74 61 62  n an indexed tab
d730: 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20  le containing a 
d740: 57 48 45 52 45 20 63 6c 61 75 73 65 20 77 69 74  WHERE clause wit
d750: 68 0a 20 20 20 20 61 6e 20 49 4e 20 6f 70 65 72  h.    an IN oper
d760: 61 74 6f 72 20 74 68 61 74 20 68 61 64 20 61 20  ator that had a 
d770: 73 75 62 71 75 65 72 79 20 6f 6e 20 69 74 73 20  subquery on its 
d780: 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 2e  right-hand side.
d790: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
d7a0: 30 30 30 20 41 75 67 20 31 38 20 28 56 65 72 73  000 Aug 18 (Vers
d7b0: 69 6f 6e 20 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c  ion 1.0.1)} {.<l
d7c0: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
d7d0: 68 65 20 63 6f 6e 66 69 67 75 72 65 20 73 63 72  he configure scr
d7e0: 69 70 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69  ipt.</li>.<li>Mi
d7f0: 6e 6f 72 20 72 65 76 69 73 69 6f 6e 73 20 74 6f  nor revisions to
d800: 20 74 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c   the website.</l
d810: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
d820: 20 41 75 67 20 31 37 20 28 56 65 72 73 69 6f 6e   Aug 17 (Version
d830: 20 31 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61   1.0)} {.<li>Cha
d840: 6e 67 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  nge the <b>sqlit
d850: 65 3c 2f 62 3e 20 70 72 6f 67 72 61 6d 20 73 6f  e</b> program so
d860: 20 74 68 61 74 20 69 74 20 63 61 6e 20 72 65 61   that it can rea
d870: 64 0a 20 20 20 20 64 61 74 61 62 61 73 65 73 20  d.    databases 
d880: 66 6f 72 20 77 68 69 63 68 20 69 74 20 6c 61 63  for which it lac
d890: 6b 73 20 77 72 69 74 65 20 70 65 72 6d 69 73 73  ks write permiss
d8a0: 69 6f 6e 2e 20 20 28 49 74 20 75 73 65 64 20 74  ion.  (It used t
d8b0: 6f 0a 20 20 20 20 72 65 66 75 73 65 20 61 6c 6c  o.    refuse all
d8c0: 20 61 63 63 65 73 73 20 69 66 20 69 74 20 63 6f   access if it co
d8d0: 75 6c 64 20 6e 6f 74 20 77 72 69 74 65 2e 29 3c  uld not write.)<
d8e0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
d8f0: 30 30 20 41 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e  00 Aug 9} {.<li>
d900: 54 72 65 61 74 20 63 61 72 72 69 61 67 65 20 72  Treat carriage r
d910: 65 74 75 72 6e 73 20 61 73 20 77 68 69 74 65 20  eturns as white 
d920: 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  space.</li>.}..c
d930: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 38 7d  hng {2000 Aug 8}
d940: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 70 61 74   {.<li>Added pat
d950: 74 65 72 6e 20 6d 61 74 63 68 69 6e 67 20 74 6f  tern matching to
d960: 20 74 68 65 20 22 2e 74 61 62 6c 65 22 20 63 6f   the ".table" co
d970: 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 22 73 71  mmand in the "sq
d980: 6c 69 74 65 22 0a 63 6f 6d 6d 61 6e 64 20 73 68  lite".command sh
d990: 65 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ell.</li>.}..chn
d9a0: 67 20 7b 32 30 30 30 20 41 75 67 20 34 7d 20 7b  g {2000 Aug 4} {
d9b0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
d9c0: 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a  on updates</li>.
d9d0: 3c 6c 69 3e 41 64 64 65 64 20 22 62 75 73 79 22  <li>Added "busy"
d9e0: 20 61 6e 64 20 22 74 69 6d 65 6f 75 74 22 20 6d   and "timeout" m
d9f0: 65 74 68 6f 64 73 20 74 6f 20 74 68 65 20 54 63  ethods to the Tc
da00: 6c 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e  l interface</li>
da10: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
da20: 75 67 20 33 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65  ug 3} {.<li>File
da30: 20 66 6f 72 6d 61 74 20 76 65 72 73 69 6f 6e 20   format version 
da40: 6e 75 6d 62 65 72 20 77 61 73 20 62 65 69 6e 67  number was being
da50: 20 73 74 6f 72 65 64 20 69 6e 20 73 71 6c 69 74   stored in sqlit
da60: 65 5f 6d 61 73 74 65 72 2e 74 63 6c 0a 20 20 20  e_master.tcl.   
da70: 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e   multiple times.
da80: 20 54 68 69 73 20 77 61 73 20 68 61 72 6d 6c 65   This was harmle
da90: 73 73 2c 20 62 75 74 20 75 6e 6e 65 63 65 73 73  ss, but unnecess
daa0: 61 72 79 2e 20 49 74 20 69 73 20 6e 6f 77 20 66  ary. It is now f
dab0: 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixed.</li>.}..ch
dac0: 6e 67 20 7b 32 30 30 30 20 41 75 67 20 32 7d 20  ng {2000 Aug 2} 
dad0: 7b 0a 3c 6c 69 3e 54 68 65 20 66 69 6c 65 20 66  {.<li>The file f
dae0: 6f 72 6d 61 74 20 66 6f 72 20 69 6e 64 69 63 65  ormat for indice
daf0: 73 20 77 61 73 20 63 68 61 6e 67 65 64 20 73 6c  s was changed sl
db00: 69 67 68 74 6c 79 20 69 6e 20 6f 72 64 65 72 20  ightly in order 
db10: 74 6f 20 77 6f 72 6b 0a 20 20 20 20 61 72 6f 75  to work.    arou
db20: 6e 64 20 61 6e 20 69 6e 65 66 66 69 63 69 65 6e  nd an inefficien
db30: 63 79 20 74 68 61 74 20 63 61 6e 20 73 6f 6d 65  cy that can some
db40: 74 69 6d 65 73 20 63 6f 6d 65 20 75 70 20 77 69  times come up wi
db50: 74 68 20 47 44 42 4d 20 77 68 65 6e 0a 20 20 20  th GDBM when.   
db60: 20 74 68 65 72 65 20 61 72 65 20 6c 61 72 67 65   there are large
db70: 20 69 6e 64 69 63 65 73 20 68 61 76 69 6e 67 20   indices having 
db80: 6d 61 6e 79 20 65 6e 74 72 69 65 73 20 77 69 74  many entries wit
db90: 68 20 74 68 65 20 73 61 6d 65 20 6b 65 79 2e 0a  h the same key..
dba0: 20 20 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d      <font color=
dbb0: 22 72 65 64 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61  "red">** Incompa
dbc0: 74 69 62 6c 65 20 43 68 61 6e 67 65 20 2a 2a 3c  tible Change **<
dbd0: 2f 66 6f 6e 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  /font></li>.}..c
dbe0: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31 7d  hng {2000 Aug 1}
dbf0: 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65   {.<li>The parse
dc00: 72 27 73 20 73 74 61 63 6b 20 77 61 73 20 6f 76  r's stack was ov
dc10: 65 72 66 6c 6f 77 69 6e 67 20 6f 6e 20 61 20 76  erflowing on a v
dc20: 65 72 79 20 6c 6f 6e 67 20 55 50 44 41 54 45 20  ery long UPDATE 
dc30: 73 74 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20 54  statement..    T
dc40: 68 69 73 20 69 73 20 6e 6f 77 20 66 69 78 65 64  his is now fixed
dc50: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
dc60: 32 30 30 30 20 4a 75 6c 79 20 33 31 7d 20 7b 0a  2000 July 31} {.
dc70: 3c 6c 69 3e 46 69 6e 69 73 68 20 74 68 65 20 3c  <li>Finish the <
dc80: 61 20 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d  a href="vdbe.htm
dc90: 6c 22 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c  l">VDBE tutorial
dca0: 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  </a>.</li>.<li>A
dcb0: 64 64 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69  dded documentati
dcc0: 6f 6e 20 6f 6e 20 63 6f 6d 70 69 6c 69 6e 67 20  on on compiling 
dcd0: 74 6f 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c  to WindowsNT.</l
dce0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e  i>.<li>Fix a con
dcf0: 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 67 72  figuration progr
dd00: 61 6d 20 66 6f 72 20 57 69 6e 64 6f 77 73 4e 54  am for WindowsNT
dd10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
dd20: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70   configuration p
dd30: 72 6f 62 6c 65 6d 20 66 6f 72 20 48 50 55 58 2e  roblem for HPUX.
dd40: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
dd50: 30 30 30 20 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c  000 July 29} {.<
dd60: 6c 69 3e 42 65 74 74 65 72 20 6c 61 62 65 6c 73  li>Better labels
dd70: 20 6f 6e 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73   on column names
dd80: 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 2e 3c   of the result.<
dd90: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
dda0: 30 30 20 4a 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c  00 July 28} {.<l
ddb0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
ddc0: 71 6c 69 74 65 5f 62 75 73 79 5f 68 61 6e 64 6c  qlite_busy_handl
ddd0: 65 72 28 29 3c 2f 62 3e 20 0a 20 20 20 20 61 6e  er()</b> .    an
dde0: 64 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79  d <b>sqlite_busy
ddf0: 5f 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 69  _timeout()</b> i
de00: 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d  nterface.</li>.}
de10: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
de20: 65 20 32 33 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69  e 23} {.<li>Begi
de30: 6e 20 77 72 69 74 69 6e 67 20 74 68 65 20 3c 61  n writing the <a
de40: 20 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c   href="vdbe.html
de50: 22 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c  ">VDBE tutorial<
de60: 2f 61 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  /a>.</li>.}..chn
de70: 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 32 31 7d  g {2000 June 21}
de80: 20 7b 0a 3c 6c 69 3e 43 6c 65 61 6e 20 75 70 20   {.<li>Clean up 
de90: 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 76 61 72  comments and var
dea0: 69 61 62 6c 65 20 6e 61 6d 65 73 2e 20 20 43 68  iable names.  Ch
deb0: 61 6e 67 65 73 20 74 6f 20 64 6f 63 75 6d 65 6e  anges to documen
dec0: 74 61 74 69 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66  tation..    No f
ded0: 75 6e 63 74 69 6f 6e 61 6c 20 63 68 61 6e 67 65  unctional change
dee0: 73 20 74 6f 20 74 68 65 20 63 6f 64 65 2e 3c 2f  s to the code.</
def0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
df00: 30 20 4a 75 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69  0 June 19} {.<li
df10: 3e 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e  >Column names in
df20: 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e   UPDATE statemen
df30: 74 73 20 77 65 72 65 20 63 61 73 65 20 73 65 6e  ts were case sen
df40: 73 69 74 69 76 65 2e 0a 20 20 20 20 54 68 69 73  sitive..    This
df50: 20 6d 69 73 74 61 6b 65 20 68 61 73 20 6e 6f 77   mistake has now
df60: 20 62 65 65 6e 20 66 69 78 65 64 2e 3c 2f 6c 69   been fixed.</li
df70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
df80: 4a 75 6e 65 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41  June 16} {.<li>A
df90: 64 64 65 64 20 74 68 65 20 63 6f 6e 63 61 74 65  dded the concate
dfa0: 6e 61 74 65 20 73 74 72 69 6e 67 20 6f 70 65 72  nate string oper
dfb0: 61 74 6f 72 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d  ator (||)</li>.}
dfc0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
dfd0: 65 20 31 32 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  e 12} {.<li>Adde
dfe0: 64 20 74 68 65 20 66 63 6e 74 28 29 20 66 75 6e  d the fcnt() fun
dff0: 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c  ction to the SQL
e000: 20 69 6e 74 65 72 70 72 65 74 65 72 2e 20 20 54   interpreter.  T
e010: 68 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69  he fcnt() functi
e020: 6f 6e 0a 20 20 20 20 72 65 74 75 72 6e 73 20 74  on.    returns t
e030: 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 74  he number of dat
e040: 61 62 61 73 65 20 22 46 65 74 63 68 22 20 6f 70  abase "Fetch" op
e050: 65 72 61 74 69 6f 6e 73 20 74 68 61 74 20 68 61  erations that ha
e060: 76 65 20 6f 63 63 75 72 72 65 64 2e 0a 20 20 20  ve occurred..   
e070: 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69   This function i
e080: 73 20 64 65 73 69 67 6e 65 64 20 66 6f 72 20 75  s designed for u
e090: 73 65 20 69 6e 20 74 65 73 74 20 73 63 72 69 70  se in test scrip
e0a0: 74 73 20 74 6f 20 76 65 72 69 66 79 20 74 68 61  ts to verify tha
e0b0: 74 0a 20 20 20 20 71 75 65 72 69 65 73 20 61 72  t.    queries ar
e0c0: 65 20 65 66 66 69 63 69 65 6e 74 20 61 6e 64 20  e efficient and 
e0d0: 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 6f 70  appropriately op
e0e0: 74 69 6d 69 7a 65 64 2e 20 20 46 63 6e 74 28 29  timized.  Fcnt()
e0f0: 20 68 61 73 20 6e 6f 20 6f 74 68 65 72 0a 20 20   has no other.  
e100: 20 20 75 73 65 66 75 6c 20 70 75 72 70 6f 73 65    useful purpose
e110: 2c 20 61 73 20 66 61 72 20 61 73 20 49 20 6b 6e  , as far as I kn
e120: 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ow.</li>.<li>Add
e130: 65 64 20 61 20 62 75 6e 63 68 20 6d 6f 72 65 20  ed a bunch more 
e140: 74 65 73 74 73 20 74 68 61 74 20 74 61 6b 65 20  tests that take 
e150: 61 64 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65  advantage of the
e160: 20 6e 65 77 20 66 63 6e 74 28 29 20 66 75 6e 63   new fcnt() func
e170: 74 69 6f 6e 2e 0a 20 20 20 20 54 68 65 20 6e 65  tion..    The ne
e180: 77 20 74 65 73 74 73 20 64 69 64 20 6e 6f 74 20  w tests did not 
e190: 75 6e 63 6f 76 65 72 20 61 6e 79 20 6e 65 77 20  uncover any new 
e1a0: 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d  problems.</li>.}
e1b0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
e1c0: 65 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  e 8} {.<li>Added
e1d0: 20 6c 6f 74 73 20 6f 66 20 6e 65 77 20 74 65 73   lots of new tes
e1e0: 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  t cases</li>.<li
e1f0: 3e 46 69 78 20 61 20 66 65 77 20 62 75 67 73 20  >Fix a few bugs 
e200: 64 69 73 63 6f 76 65 72 65 64 20 77 68 69 6c 65  discovered while
e210: 20 61 64 64 69 6e 67 20 74 65 73 74 20 63 61 73   adding test cas
e220: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69  es</li>.<li>Begi
e230: 6e 20 61 64 64 69 6e 67 20 6c 6f 74 73 20 6f 66  n adding lots of
e240: 20 6e 65 77 20 64 6f 63 75 6d 65 6e 74 61 74 69   new documentati
e250: 6f 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  on</li>.}..chng 
e260: 7b 32 30 30 30 20 4a 75 6e 65 20 36 7d 20 7b 0a  {2000 June 6} {.
e270: 3c 6c 69 3e 41 64 64 65 64 20 63 6f 6d 70 6f 75  <li>Added compou
e280: 6e 64 20 73 65 6c 65 63 74 20 6f 70 65 72 61 74  nd select operat
e290: 6f 72 73 3a 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62  ors: <B>UNION</b
e2a0: 3e 2c 20 3c 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c  >, <b>UNION ALL<
e2b0: 2f 42 3e 2c 0a 3c 62 3e 49 4e 54 45 52 53 45 43  /B>,.<b>INTERSEC
e2c0: 54 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 45 58  T</b>, and <b>EX
e2d0: 43 45 50 54 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c  CEPT</b></li>.<l
e2e0: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
e2f0: 66 6f 72 20 75 73 69 6e 67 20 3c 62 3e 28 53 45  for using <b>(SE
e300: 4c 45 43 54 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69  LECT ...)</b> wi
e310: 74 68 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73  thin expressions
e320: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
e330: 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 49  support for <b>I
e340: 4e 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 42 45 54  N</b> and <b>BET
e350: 57 45 45 4e 3c 2f 62 3e 20 6f 70 65 72 61 74 6f  WEEN</b> operato
e360: 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  rs</li>.<li>Adde
e370: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 62  d support for <b
e380: 3e 47 52 4f 55 50 20 42 59 3c 2f 62 3e 20 61 6e  >GROUP BY</b> an
e390: 64 20 3c 62 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c  d <b>HAVING</b><
e3a0: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61  /li>.<li>NULL va
e3b0: 6c 75 65 73 20 61 72 65 20 6e 6f 77 20 72 65 70  lues are now rep
e3c0: 6f 72 74 65 64 20 74 6f 20 74 68 65 20 63 61 6c  orted to the cal
e3d0: 6c 62 61 63 6b 20 61 73 20 61 20 4e 55 4c 4c 20  lback as a NULL 
e3e0: 70 6f 69 6e 74 65 72 0a 20 20 20 20 72 61 74 68  pointer.    rath
e3f0: 65 72 20 74 68 61 6e 20 61 6e 20 65 6d 70 74 79  er than an empty
e400: 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a   string.</li>.}.
e410: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
e420: 20 33 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20   3} {.<li>Added 
e430: 73 75 70 70 6f 72 74 20 66 6f 72 20 64 65 66 61  support for defa
e440: 75 6c 74 20 76 61 6c 75 65 73 20 6f 6e 20 63 6f  ult values on co
e450: 6c 75 6d 6e 73 20 6f 66 20 61 20 74 61 62 6c 65  lumns of a table
e460: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f  .</li>.<li>Impro
e470: 76 65 64 20 74 65 73 74 20 63 6f 76 65 72 61 67  ved test coverag
e480: 65 2e 20 20 46 69 78 65 64 20 61 20 66 65 77 20  e.  Fixed a few 
e490: 6f 62 73 63 75 72 65 20 62 75 67 73 20 66 6f 75  obscure bugs fou
e4a0: 6e 64 20 62 79 20 74 68 65 0a 69 6d 70 72 6f 76  nd by the.improv
e4b0: 65 64 20 74 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d  ed tests.</li>.}
e4c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
e4d0: 65 20 32 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64  e 2} {.<li>All d
e4e0: 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 74 6f  atabase files to
e4f0: 20 62 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20   be modified by 
e500: 61 6e 20 55 50 44 41 54 45 2c 20 49 4e 53 45 52  an UPDATE, INSER
e510: 54 20 6f 72 20 44 45 4c 45 54 45 20 61 72 65 20  T or DELETE are 
e520: 0a 6e 6f 77 20 6c 6f 63 6b 65 64 20 62 65 66 6f  .now locked befo
e530: 72 65 20 61 6e 79 20 63 68 61 6e 67 65 73 20 61  re any changes a
e540: 72 65 20 6d 61 64 65 20 74 6f 20 61 6e 79 20 66  re made to any f
e550: 69 6c 65 73 2e 20 20 0a 54 68 69 73 20 6d 61 6b  iles.  .This mak
e560: 65 73 20 69 74 20 73 61 66 65 20 28 49 20 74 68  es it safe (I th
e570: 69 6e 6b 29 20 74 6f 20 61 63 63 65 73 73 0a 74  ink) to access.t
e580: 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73 65  he same database
e590: 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20   simultaneously 
e5a0: 66 72 6f 6d 20 6d 75 6c 74 69 70 6c 65 20 70 72  from multiple pr
e5b0: 6f 63 65 73 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ocesses.</li>.<l
e5c0: 69 3e 54 68 65 20 63 6f 64 65 20 61 70 70 65 61  i>The code appea
e5d0: 72 73 20 73 74 61 62 6c 65 20 73 6f 20 77 65 20  rs stable so we 
e5e0: 61 72 65 20 6e 6f 77 20 63 61 6c 6c 69 6e 67 20  are now calling 
e5f0: 69 74 20 22 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a  it "beta".</li>.
e600: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
e610: 6e 65 20 31 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74  ne 1} {.<li>Bett
e620: 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66  er support for f
e630: 69 6c 65 20 6c 6f 63 6b 69 6e 67 20 73 6f 20 74  ile locking so t
e640: 68 61 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20  hat two or more 
e650: 70 72 6f 63 65 73 73 65 73 20 0a 28 6f 72 20 74  processes .(or t
e660: 68 72 65 61 64 73 29 0a 63 61 6e 20 61 63 63 65  hreads).can acce
e670: 73 73 20 74 68 65 20 73 61 6d 65 20 64 61 74 61  ss the same data
e680: 62 61 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75  base simultaneou
e690: 73 6c 79 2e 20 20 4d 6f 72 65 20 77 6f 72 6b 20  sly.  More work 
e6a0: 6e 65 65 64 65 64 20 69 6e 0a 74 68 69 73 20 61  needed in.this a
e6b0: 72 65 61 2c 20 74 68 6f 75 67 68 2e 3c 2f 6c 69  rea, though.</li
e6c0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
e6d0: 4d 61 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64  May 31} {.<li>Ad
e6e0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
e6f0: 61 67 67 72 65 67 61 74 65 20 66 75 6e 63 74 69  aggregate functi
e700: 6f 6e 73 20 28 45 78 3a 20 3c 62 3e 43 4f 55 4e  ons (Ex: <b>COUN
e710: 54 28 2a 29 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e  T(*)</b>, <b>MIN
e720: 28 2e 2e 2e 29 3c 2f 62 3e 29 0a 74 6f 20 74 68  (...)</b>).to th
e730: 65 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  e SELECT stateme
e740: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  nt.</li>.<li>Add
e750: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c  ed support for <
e760: 42 3e 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  B>SELECT DISTINC
e770: 54 20 2e 2e 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d  T ...</B></li>.}
e780: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79  ..chng {2000 May
e790: 20 33 30 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64   30} {.<li>Added
e7a0: 20 74 68 65 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e   the <b>LIKE</b>
e7b0: 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a   operator.</li>.
e7c0: 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c 62 3e 47  <li>Added a <b>G
e7d0: 4c 4f 42 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72  LOB</b> operator
e7e0: 3a 20 73 69 6d 69 6c 61 72 20 74 6f 20 3c 42 3e  : similar to <B>
e7f0: 4c 49 4b 45 3c 2f 42 3e 20 0a 62 75 74 20 69 74  LIKE</B> .but it
e800: 20 75 73 65 73 20 55 6e 69 78 20 73 68 65 6c 6c   uses Unix shell
e810: 20 67 6c 6f 62 62 69 6e 67 20 77 69 6c 64 63 61   globbing wildca
e820: 72 64 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74  rds instead of t
e830: 68 65 20 27 25 27 20 0a 61 6e 64 20 27 5f 27 20  he '%' .and '_' 
e840: 77 69 6c 64 63 61 72 64 73 20 6f 66 20 53 51 4c  wildcards of SQL
e850: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
e860: 20 74 68 65 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e   the <B>COPY</b>
e870: 20 63 6f 6d 6d 61 6e 64 20 70 61 74 74 65 72 6e   command pattern
e880: 65 64 20 61 66 74 65 72 20 0a 3c 61 20 68 72 65  ed after .<a hre
e890: 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 70 6f  f="http://www.po
e8a0: 73 74 67 72 65 73 71 6c 2e 6f 72 67 2f 22 3e 50  stgresql.org/">P
e8b0: 6f 73 74 67 72 65 53 51 4c 3c 2f 61 3e 20 73 6f  ostgreSQL</a> so
e8c0: 20 74 68 61 74 20 53 51 4c 69 74 65 0a 63 61 6e   that SQLite.can
e8d0: 20 6e 6f 77 20 72 65 61 64 20 74 68 65 20 6f 75   now read the ou
e8e0: 74 70 75 74 20 6f 66 20 74 68 65 20 3c 62 3e 70  tput of the <b>p
e8f0: 67 5f 64 75 6d 70 3c 2f 62 3e 20 64 61 74 61 62  g_dump</b> datab
e900: 61 73 65 20 64 75 6d 70 20 75 74 69 6c 69 74 79  ase dump utility
e910: 0a 6f 66 20 50 6f 73 74 67 72 65 53 51 4c 2e 3c  .of PostgreSQL.<
e920: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
e930: 20 3c 42 3e 56 41 43 55 55 4d 3c 2f 42 3e 20 63   <B>VACUUM</B> c
e940: 6f 6d 6d 61 6e 64 20 74 68 61 74 20 74 68 61 74  ommand that that
e950: 20 63 61 6c 6c 73 20 74 68 65 20 0a 3c 62 3e 67   calls the .<b>g
e960: 64 62 6d 5f 72 65 6f 72 67 61 6e 69 7a 65 28 29  dbm_reorganize()
e970: 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6f 6e  </b> function on
e980: 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20   the underlying 
e990: 64 61 74 61 62 61 73 65 0a 66 69 6c 65 73 2e 3c  database.files.<
e9a0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e  /li>.<li>And man
e9b0: 79 2c 20 6d 61 6e 79 20 62 75 67 20 66 69 78 65  y, many bug fixe
e9c0: 73 2e 2e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  s...</li>.}..chn
e9d0: 67 20 7b 32 30 30 30 20 4d 61 79 20 32 39 7d 20  g {2000 May 29} 
e9e0: 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 50 75  {.<li>Initial Pu
e9f0: 62 6c 69 63 20 52 65 6c 65 61 73 65 20 6f 66 20  blic Release of 
ea00: 41 6c 70 68 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a  Alpha code</li>.
ea10: 7d 0a 0a 70 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a  }..puts {.</DL>.
ea20: 7d 0a 66 6f 6f 74 65 72 20 7b 24 49 64 3a 7d 0a  }.footer {$Id:}.