/ Hex Artifact Content
Login

Artifact cb276a239c98524731e2780c70deb01b2e7e4bcc:


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 70 75  output file.#.pu
0040: 74 73 20 7b 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64  ts {<html>.<head
0050: 3e 0a 20 20 3c 74 69 74 6c 65 3e 53 51 4c 69 74  >.  <title>SQLit
0060: 65 20 43 68 61 6e 67 65 20 4c 6f 67 3c 2f 74 69  e Change Log</ti
0070: 74 6c 65 3e 0a 3c 2f 68 65 61 64 3e 0a 3c 62 6f  tle>.</head>.<bo
0080: 64 79 20 62 67 63 6f 6c 6f 72 3d 22 77 68 69 74  dy bgcolor="whit
0090: 65 22 3e 0a 3c 68 31 20 61 6c 69 67 6e 3d 22 63  e">.<h1 align="c
00a0: 65 6e 74 65 72 22 3e 52 65 63 65 6e 74 20 43 68  enter">Recent Ch
00b0: 61 6e 67 65 73 20 54 6f 20 53 51 4c 69 74 65 3c  anges To SQLite<
00c0: 2f 68 31 3e 0a 0a 3c 44 4c 3e 0a 7d 0a 0a 0a 70  /h1>..<DL>.}...p
00d0: 72 6f 63 20 63 68 6e 67 20 7b 64 61 74 65 20 64  roc chng {date d
00e0: 65 73 63 7d 20 7b 0a 20 20 70 75 74 73 20 22 3c  esc} {.  puts "<
00f0: 44 54 3e 3c 42 3e 24 64 61 74 65 3c 2f 42 3e 3c  DT><B>$date</B><
0100: 2f 44 54 3e 22 0a 20 20 70 75 74 73 20 22 3c 44  /DT>".  puts "<D
0110: 44 3e 3c 50 3e 3c 55 4c 3e 24 64 65 73 63 3c 2f  D><P><UL>$desc</
0120: 55 4c 3e 3c 2f 50 3e 3c 2f 44 44 3e 22 0a 7d 0a  UL></P></DD>".}.
0130: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 61 6e 20  .chng {2001 Jan 
0140: 34 20 28 31 2e 30 2e 31 38 29 7d 20 7b 0a 3c 6c  4 (1.0.18)} {.<l
0150: 69 3e 50 72 69 6e 74 20 74 68 65 20 6f 66 66 65  i>Print the offe
0160: 6e 64 69 6e 67 20 53 51 4c 20 73 74 61 74 65 6d  nding SQL statem
0170: 65 6e 74 20 77 68 65 6e 20 61 6e 20 65 72 72 6f  ent when an erro
0180: 72 20 6f 63 63 75 72 73 2e 3c 2f 6c 69 3e 0a 3c  r occurs.</li>.<
0190: 6c 69 3e 44 6f 20 6e 6f 74 20 72 65 71 75 69 72  li>Do not requir
01a0: 65 20 63 6f 6d 6d 61 73 20 62 65 74 77 65 65 6e  e commas between
01b0: 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69 6e 20   constraints in 
01c0: 43 52 45 41 54 45 20 54 41 42 4c 45 20 73 74 61  CREATE TABLE sta
01d0: 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c  tements.</li>.<l
01e0: 69 3e 41 64 64 65 64 20 74 68 65 20 22 2d 65 63  i>Added the "-ec
01f0: 68 6f 22 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68  ho" option to th
0200: 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  e shell.</li>.<l
0210: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d  i>Changes to com
0220: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ments.</li>.}..c
0230: 68 6e 67 20 7b 32 30 30 30 20 44 65 63 20 31 30  hng {2000 Dec 10
0240: 20 28 31 2e 30 2e 31 37 29 7d 20 7b 0a 3c 6c 69   (1.0.17)} {.<li
0250: 3e 52 65 77 72 6f 74 65 20 3c 62 3e 73 71 6c 69  >Rewrote <b>sqli
0260: 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62  te_complete()</b
0270: 3e 20 74 6f 20 6d 61 6b 65 20 69 74 20 66 61 73  > to make it fas
0280: 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69  ter.</li>.<li>Mi
0290: 6e 6f 72 20 74 77 65 61 6b 73 20 74 6f 20 6f 74  nor tweaks to ot
02a0: 68 65 72 20 63 6f 64 65 20 74 6f 20 6d 61 6b 65  her code to make
02b0: 20 69 74 20 72 75 6e 20 61 20 6c 69 74 74 6c 65   it run a little
02c0: 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   faster.</li>.<l
02d0: 69 3e 41 64 64 65 64 20 6e 65 77 20 74 65 73 74  i>Added new test
02e0: 73 20 66 6f 72 20 3c 62 3e 73 71 6c 69 74 65 5f  s for <b>sqlite_
02f0: 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20 61  complete()</b> a
0300: 6e 64 20 66 6f 72 20 6d 65 6d 6f 72 79 20 6c 65  nd for memory le
0310: 61 6b 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  aks.</li>.}..chn
0320: 67 20 7b 32 30 30 30 20 44 65 63 20 34 20 28 31  g {2000 Dec 4 (1
0330: 2e 30 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 44 6f  .0.16)} {.<li>Do
0340: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
0350: 74 65 73 2e 20 20 4d 6f 73 74 6c 79 20 66 69 78  tes.  Mostly fix
0360: 69 6e 67 20 6f 66 20 74 79 70 6f 73 20 61 6e 64  ing of typos and
0370: 20 73 70 65 6c 6c 69 6e 67 20 65 72 72 6f 72 73   spelling errors
0380: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
0390: 32 30 30 30 20 4f 63 74 20 32 33 20 28 31 2e 30  2000 Oct 23 (1.0
03a0: 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75  .15)} {.<li>Docu
03b0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
03c0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d 65 20  s</li>.<li>Some 
03d0: 73 61 6e 69 74 79 20 63 68 65 63 6b 69 6e 67 20  sanity checking 
03e0: 63 6f 64 65 20 77 61 73 20 72 65 6d 6f 76 65 64  code was removed
03f0: 20 66 72 6f 6d 20 74 68 65 20 69 6e 6e 65 72 20   from the inner 
0400: 6c 6f 6f 70 20 6f 66 20 76 64 62 65 2e 63 0a 20  loop of vdbe.c. 
0410: 20 20 20 74 6f 20 68 65 6c 70 20 74 68 65 20 6c     to help the l
0420: 69 62 72 61 72 79 20 74 6f 20 72 75 6e 20 61 20  ibrary to run a 
0430: 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 20 20  little faster.  
0440: 54 68 65 20 63 6f 64 65 20 69 73 20 6f 6e 6c 79  The code is only
0450: 0a 20 20 20 20 72 65 6d 6f 76 65 64 20 69 66 20  .    removed if 
0460: 79 6f 75 20 63 6f 6d 70 69 6c 65 20 77 69 74 68  you compile with
0470: 20 2d 44 4e 44 45 42 55 47 2e 3c 2f 6c 69 3e 0a   -DNDEBUG.</li>.
0480: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63  }..chng {2000 Oc
0490: 74 20 31 39 20 28 31 2e 30 2e 31 34 29 7d 20 7b  t 19 (1.0.14)} {
04a0: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 22 6d 65  .<li>Added a "me
04b0: 6d 6f 72 79 3a 22 20 62 61 63 6b 65 6e 64 20 64  mory:" backend d
04c0: 72 69 76 65 72 20 74 68 61 74 20 73 74 6f 72 65  river that store
04d0: 73 20 69 74 73 20 64 61 74 61 62 61 73 65 20 69  s its database i
04e0: 6e 20 61 6e 0a 20 20 20 20 69 6e 2d 6d 65 6d 6f  n an.    in-memo
04f0: 72 79 20 68 61 73 68 20 74 61 62 6c 65 2e 3c 2f  ry hash table.</
0500: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
0510: 30 20 4f 63 74 20 31 38 20 28 31 2e 30 2e 31 33  0 Oct 18 (1.0.13
0520: 29 7d 20 7b 0a 3c 6c 69 3e 42 72 65 61 6b 20 6f  )} {.<li>Break o
0530: 75 74 20 74 68 65 20 47 44 42 4d 20 64 72 69 76  ut the GDBM driv
0540: 65 72 20 69 6e 74 6f 20 61 20 73 65 70 61 72 61  er into a separa
0550: 74 65 20 66 69 6c 65 20 69 6e 20 61 6e 74 69 63  te file in antic
0560: 69 70 61 74 69 6f 6e 0a 20 20 20 20 74 6f 20 61  ipation.    to a
0570: 64 64 65 64 20 6e 65 77 20 64 72 69 76 65 72 73  dded new drivers
0580: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
0590: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 64   the name of a d
05a0: 61 74 61 62 61 73 65 20 74 6f 20 62 65 20 70 72  atabase to be pr
05b0: 65 66 69 78 65 64 20 62 79 20 74 68 65 20 64 72  efixed by the dr
05c0: 69 76 65 72 20 74 79 70 65 2e 0a 20 20 20 20 46  iver type..    F
05d0: 6f 72 20 6e 6f 77 2c 20 74 68 65 20 6f 6e 6c 79  or now, the only
05e0: 20 64 72 69 76 65 72 20 74 79 70 65 20 69 73 20   driver type is 
05f0: 22 67 64 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d 0a  "gdbm:".</li>.}.
0600: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
0610: 31 36 20 28 31 2e 30 2e 31 32 29 7d 20 7b 0a 3c  16 (1.0.12)} {.<
0620: 6c 69 3e 46 69 78 65 64 20 61 6e 20 6f 66 66 2d  li>Fixed an off-
0630: 62 79 2d 6f 6e 65 20 65 72 72 6f 72 20 74 68 61  by-one error tha
0640: 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 61 20  t was causing a 
0650: 63 6f 72 65 64 75 6d 70 20 69 6e 20 0a 20 20 20  coredump in .   
0660: 20 74 68 65 20 27 25 71 27 20 66 6f 72 6d 61 74   the '%q' format
0670: 20 64 69 72 65 63 74 69 76 65 20 6f 66 20 74 68   directive of th
0680: 65 20 6e 65 77 0a 20 20 20 20 3c 62 3e 73 71 6c  e new.    <b>sql
0690: 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29  ite_..._printf()
06a0: 3c 2f 62 3e 20 72 6f 75 74 69 6e 65 73 2e 3c 2f  </b> routines.</
06b0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
06c0: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65  e <b>sqlite_inte
06d0: 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 6e 74 65  rrupt()</b> inte
06e0: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rface.</li>.<li>
06f0: 49 6e 20 74 68 65 20 73 68 65 6c 6c 2c 20 3c 62  In the shell, <b
0700: 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70  >sqlite_interrup
0710: 74 28 29 3c 2f 62 3e 20 69 73 20 69 6e 76 6f 6b  t()</b> is invok
0720: 65 64 20 77 68 65 6e 20 74 68 65 0a 20 20 20 20  ed when the.    
0730: 75 73 65 72 20 70 72 65 73 73 65 73 20 43 6f 6e  user presses Con
0740: 74 72 6f 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69 3e  trol-C</li>.<li>
0750: 46 69 78 65 64 20 73 6f 6d 65 20 69 6e 73 74 61  Fixed some insta
0760: 6e 63 65 73 20 77 68 65 72 65 20 3c 62 3e 73 71  nces where <b>sq
0770: 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20  lite_exec()</b> 
0780: 77 61 73 0a 20 20 20 20 72 65 74 75 72 6e 69 6e  was.    returnin
0790: 67 20 74 68 65 20 77 72 6f 6e 67 20 65 72 72 6f  g the wrong erro
07a0: 72 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  r code.</li>.}..
07b0: 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31  chng {2000 Oct 1
07c0: 31 20 28 31 2e 30 2e 31 30 29 7d 20 7b 0a 3c 6c  1 (1.0.10)} {.<l
07d0: 69 3e 41 64 64 65 64 20 6e 6f 74 65 73 20 6f 6e  i>Added notes on
07e0: 20 68 6f 77 20 74 6f 20 63 6f 6d 70 69 6c 65 20   how to compile 
07f0: 66 6f 72 20 57 69 6e 64 6f 77 73 39 35 2f 39 38  for Windows95/98
0800: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  .</li>.<li>Remov
0810: 65 64 20 61 20 66 65 77 20 76 61 72 69 61 62 6c  ed a few variabl
0820: 65 73 20 74 68 61 74 20 77 65 72 65 20 6e 6f 74  es that were not
0830: 20 62 65 69 6e 67 20 75 73 65 64 2e 20 20 45 74   being used.  Et
0840: 63 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  c.</li>.}..chng 
0850: 7b 32 30 30 30 20 4f 63 74 20 38 20 28 31 2e 30  {2000 Oct 8 (1.0
0860: 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .9)} {.<li>Added
0870: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 2e   the <b>sqlite_.
0880: 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20  .._printf()</b> 
0890: 69 6e 74 65 72 66 61 63 65 20 72 6f 75 74 69 6e  interface routin
08a0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64  es.</li>.<li>Mod
08b0: 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  ified the <b>sql
08c0: 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72  ite</b> shell pr
08d0: 6f 67 72 61 6d 20 74 6f 20 75 73 65 20 74 68 65  ogram to use the
08e0: 20 6e 65 77 20 69 6e 74 65 72 66 61 63 65 20 0a   new interface .
08f0: 20 20 20 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c      routines.</l
0900: 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20  i>.<li>Modified 
0910: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
0920: 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20  > shell program 
0930: 74 6f 20 70 72 69 6e 74 20 74 68 65 20 73 63 68  to print the sch
0940: 65 6d 61 20 66 6f 72 0a 20 20 20 20 74 68 65 20  ema for.    the 
0950: 62 75 69 6c 74 2d 69 6e 20 53 51 4c 49 54 45 5f  built-in SQLITE_
0960: 4d 41 53 54 45 52 20 74 61 62 6c 65 2c 20 69 66  MASTER table, if
0970: 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65 71 75   explicitly requ
0980: 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ested.</li>.}..c
0990: 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 33 30  hng {2000 Sep 30
09a0: 20 28 31 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (1.0.8)} {.<li>
09b0: 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20 64 6f  Begin writing do
09c0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74  cumentation on t
09d0: 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65  he TCL interface
09e0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
09f0: 32 30 30 30 20 53 65 70 20 32 39 20 28 4e 6f 74  2000 Sep 29 (Not
0a00: 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c   Released)} {.<l
0a10: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
0a20: 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28  qlite_get_table(
0a30: 29 3c 2f 62 3e 20 41 50 49 3c 2f 6c 69 3e 0a 3c  )</b> API</li>.<
0a40: 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65 20 64  li>Updated the d
0a50: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72  ocumentation for
0a60: 20 64 75 65 20 74 6f 20 74 68 65 20 61 62 6f 76   due to the abov
0a70: 65 20 63 68 61 6e 67 65 2e 3c 2f 6c 69 3e 0a 3c  e change.</li>.<
0a80: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
0a90: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68  <b>sqlite</b> sh
0aa0: 65 6c 6c 20 74 6f 20 6d 61 6b 65 20 75 73 65 20  ell to make use 
0ab0: 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20 20 73  of the new.    s
0ac0: 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28  qlite_get_table(
0ad0: 29 20 41 50 49 20 69 6e 20 6f 72 64 65 72 20 74  ) API in order t
0ae0: 6f 20 70 72 69 6e 74 20 61 20 6c 69 73 74 20 6f  o print a list o
0af0: 66 20 74 61 62 6c 65 73 0a 20 20 20 20 69 6e 20  f tables.    in 
0b00: 6d 75 6c 74 69 70 6c 65 20 63 6f 6c 75 6d 6e 73  multiple columns
0b10: 2c 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65  , similar to the
0b20: 20 77 61 79 20 22 6c 73 22 20 70 72 69 6e 74 73   way "ls" prints
0b30: 20 66 69 6c 65 6e 61 6d 65 73 2e 3c 2f 6c 69 3e   filenames.</li>
0b40: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
0b50: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
0b60: 73 68 65 6c 6c 20 74 6f 20 70 72 69 6e 74 20 61  shell to print a
0b70: 20 73 65 6d 69 63 6f 6c 6f 6e 20 61 74 20 74 68   semicolon at th
0b80: 65 0a 20 20 20 20 65 6e 64 20 6f 66 20 65 61 63  e.    end of eac
0b90: 68 20 43 52 45 41 54 45 20 73 74 61 74 65 6d 65  h CREATE stateme
0ba0: 6e 74 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74  nt in the output
0bb0: 20 6f 66 20 74 68 65 20 22 2e 73 63 68 65 6d 61   of the ".schema
0bc0: 22 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a  " command.</li>.
0bd0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65  }..chng {2000 Se
0be0: 70 20 32 31 20 28 4e 6f 74 20 52 65 6c 65 61 73  p 21 (Not Releas
0bf0: 65 64 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  ed)} {.<li>Chang
0c00: 65 20 74 68 65 20 74 63 6c 73 71 6c 69 74 65 20  e the tclsqlite 
0c10: 22 65 76 61 6c 22 20 6d 65 74 68 6f 64 20 74 6f  "eval" method to
0c20: 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f   return a list o
0c30: 66 20 72 65 73 75 6c 74 73 20 69 66 0a 20 20 20  f results if.   
0c40: 20 6e 6f 20 63 61 6c 6c 62 61 63 6b 20 73 63 72   no callback scr
0c50: 69 70 74 20 69 73 20 73 70 65 63 69 66 69 65 64  ipt is specified
0c60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
0c70: 65 20 74 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f  e tclsqlite.c to
0c80: 20 75 73 65 20 74 68 65 20 54 63 6c 5f 4f 62 6a   use the Tcl_Obj
0c90: 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a   interface</li>.
0ca0: 3c 6c 69 3e 41 64 64 20 74 63 6c 73 71 6c 69 74  <li>Add tclsqlit
0cb0: 65 2e 63 20 74 6f 20 74 68 65 20 6c 69 62 73 71  e.c to the libsq
0cc0: 6c 69 74 65 2e 61 20 6c 69 62 72 61 72 79 3c 2f  lite.a library</
0cd0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
0ce0: 30 20 53 65 70 20 31 33 20 28 56 65 72 73 69 6f  0 Sep 13 (Versio
0cf0: 6e 20 31 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.5)} {.<li>
0d00: 43 68 61 6e 67 65 64 20 74 68 65 20 70 72 69 6e  Changed the prin
0d10: 74 20 66 6f 72 6d 61 74 20 66 6f 72 20 66 6c 6f  t format for flo
0d20: 61 74 69 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75  ating point valu
0d30: 65 73 20 66 72 6f 6d 20 22 25 67 22 20 74 6f 20  es from "%g" to 
0d40: 22 25 2e 31 35 67 22 2e 0a 20 20 20 20 3c 2f 6c  "%.15g"..    </l
0d50: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74  i>.<li>Changed t
0d60: 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75  he comparison fu
0d70: 6e 63 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 6e  nction so that n
0d80: 75 6d 62 65 72 73 20 69 6e 20 65 78 70 6f 6e 65  umbers in expone
0d90: 6e 74 69 61 6c 20 6e 6f 74 61 74 69 6f 6e 0a 20  ntial notation. 
0da0: 20 20 20 28 65 78 3a 20 31 2e 32 33 34 65 2b 30     (ex: 1.234e+0
0db0: 35 29 20 73 6f 72 74 20 69 6e 20 6e 75 6d 65 72  5) sort in numer
0dc0: 69 63 61 6c 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e  ical order.</li>
0dd0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
0de0: 75 67 20 32 38 20 28 56 65 72 73 69 6f 6e 20 31  ug 28 (Version 1
0df0: 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .0.4)} {.<li>Add
0e00: 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e  ed functions <b>
0e10: 6c 65 6e 67 74 68 28 29 3c 2f 62 3e 20 61 6e 64  length()</b> and
0e20: 20 3c 62 3e 73 75 62 73 74 72 28 29 3c 2f 62 3e   <b>substr()</b>
0e30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
0e40: 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 73   bug in the <b>s
0e50: 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20  qlite</b> shell 
0e60: 70 72 6f 67 72 61 6d 20 74 68 61 74 20 77 61 73  program that was
0e70: 20 63 61 75 73 69 6e 67 0a 20 20 20 20 61 20 63   causing.    a c
0e80: 6f 72 65 64 75 6d 70 20 77 68 65 6e 20 74 68 65  oredump when the
0e90: 20 6f 75 74 70 75 74 20 6d 6f 64 65 20 77 61 73   output mode was
0ea0: 20 22 63 6f 6c 75 6d 6e 22 20 61 6e 64 20 74 68   "column" and th
0eb0: 65 20 66 69 72 73 74 20 72 6f 77 0a 20 20 20 20  e first row.    
0ec0: 6f 66 20 64 61 74 61 20 63 6f 6e 74 61 69 6e 65  of data containe
0ed0: 64 20 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d  d a NULL.</li>.}
0ee0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
0ef0: 20 32 32 20 28 56 65 72 73 69 6f 6e 20 31 2e 30   22 (Version 1.0
0f00: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 20 74 68  .3)} {.<li>In th
0f10: 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20  e sqlite shell, 
0f20: 70 72 69 6e 74 20 74 68 65 20 22 44 61 74 61 62  print the "Datab
0f30: 61 73 65 20 6f 70 65 6e 65 64 20 52 45 41 44 20  ase opened READ 
0f40: 4f 4e 4c 59 22 20 6d 65 73 73 61 67 65 0a 20 20  ONLY" message.  
0f50: 20 20 74 6f 20 73 74 64 65 72 72 20 69 6e 73 74    to stderr inst
0f60: 65 61 64 20 6f 66 20 73 74 64 6f 75 74 2e 3c 2f  ead of stdout.</
0f70: 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73  li>.<li>In the s
0f80: 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 6e 6f 77  qlite shell, now
0f90: 20 70 72 69 6e 74 20 74 68 65 20 76 65 72 73 69   print the versi
0fa0: 6f 6e 20 6e 75 6d 62 65 72 20 6f 6e 20 69 6e 69  on number on ini
0fb0: 74 69 61 6c 20 73 74 61 72 74 75 70 2e 3c 2f 6c  tial startup.</l
0fc0: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 3c  i>.<li>Add the <
0fd0: 62 3e 73 71 6c 69 74 65 5f 76 65 72 73 69 6f 6e  b>sqlite_version
0fe0: 5b 5d 3c 2f 62 3e 20 73 74 72 69 6e 67 20 63 6f  []</b> string co
0ff0: 6e 73 74 61 6e 74 20 74 6f 20 74 68 65 20 6c 69  nstant to the li
1000: 62 72 61 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  brary</li>.<li>M
1010: 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73 3c  akefile updates<
1020: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
1030: 3a 20 69 6e 63 6f 72 72 65 63 74 20 56 44 42 45  : incorrect VDBE
1040: 20 63 6f 64 65 20 77 61 73 20 62 65 69 6e 67 20   code was being 
1050: 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20 74 68  generated for th
1060: 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 20 20 20 20  e following.    
1070: 63 69 72 63 75 6d 73 74 61 6e 63 65 3a 20 61 20  circumstance: a 
1080: 71 75 65 72 79 20 6f 6e 20 61 6e 20 69 6e 64 65  query on an inde
1090: 78 65 64 20 74 61 62 6c 65 20 63 6f 6e 74 61 69  xed table contai
10a0: 6e 69 6e 67 20 61 20 57 48 45 52 45 20 63 6c 61  ning a WHERE cla
10b0: 75 73 65 20 77 69 74 68 0a 20 20 20 20 61 6e 20  use with.    an 
10c0: 49 4e 20 6f 70 65 72 61 74 6f 72 20 74 68 61 74  IN operator that
10d0: 20 68 61 64 20 61 20 73 75 62 71 75 65 72 79 20   had a subquery 
10e0: 6f 6e 20 69 74 73 20 72 69 67 68 74 2d 68 61 6e  on its right-han
10f0: 64 20 73 69 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  d side.</li>.}..
1100: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31  chng {2000 Aug 1
1110: 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 31  8 (Version 1.0.1
1120: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
1130: 75 67 20 69 6e 20 74 68 65 20 63 6f 6e 66 69 67  ug in the config
1140: 75 72 65 20 73 63 72 69 70 74 2e 3c 2f 6c 69 3e  ure script.</li>
1150: 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 72 65 76 69 73  .<li>Minor revis
1160: 69 6f 6e 73 20 74 6f 20 74 68 65 20 77 65 62 73  ions to the webs
1170: 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ite.</li>.}..chn
1180: 67 20 7b 32 30 30 30 20 41 75 67 20 31 37 20 28  g {2000 Aug 17 (
1190: 56 65 72 73 69 6f 6e 20 31 2e 30 29 7d 20 7b 0a  Version 1.0)} {.
11a0: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 3c  <li>Change the <
11b0: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 70 72 6f  b>sqlite</b> pro
11c0: 67 72 61 6d 20 73 6f 20 74 68 61 74 20 69 74 20  gram so that it 
11d0: 63 61 6e 20 72 65 61 64 0a 20 20 20 20 64 61 74  can read.    dat
11e0: 61 62 61 73 65 73 20 66 6f 72 20 77 68 69 63 68  abases for which
11f0: 20 69 74 20 6c 61 63 6b 73 20 77 72 69 74 65 20   it lacks write 
1200: 70 65 72 6d 69 73 73 69 6f 6e 2e 20 20 28 49 74  permission.  (It
1210: 20 75 73 65 64 20 74 6f 0a 20 20 20 20 72 65 66   used to.    ref
1220: 75 73 65 20 61 6c 6c 20 61 63 63 65 73 73 20 69  use all access i
1230: 66 20 69 74 20 63 6f 75 6c 64 20 6e 6f 74 20 77  f it could not w
1240: 72 69 74 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rite.)</li>.}..c
1250: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 39 7d  hng {2000 Aug 9}
1260: 20 7b 0a 3c 6c 69 3e 54 72 65 61 74 20 63 61 72   {.<li>Treat car
1270: 72 69 61 67 65 20 72 65 74 75 72 6e 73 20 61 73  riage returns as
1280: 20 77 68 69 74 65 20 73 70 61 63 65 2e 3c 2f 6c   white space.</l
1290: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
12a0: 20 41 75 67 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64   Aug 8} {.<li>Ad
12b0: 64 65 64 20 70 61 74 74 65 72 6e 20 6d 61 74 63  ded pattern matc
12c0: 68 69 6e 67 20 74 6f 20 74 68 65 20 22 2e 74 61  hing to the ".ta
12d0: 62 6c 65 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20  ble" command in 
12e0: 74 68 65 20 22 73 71 6c 69 74 65 22 0a 63 6f 6d  the "sqlite".com
12f0: 6d 61 6e 64 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e  mand shell.</li>
1300: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
1310: 75 67 20 34 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75  ug 4} {.<li>Docu
1320: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
1330: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
1340: 20 22 62 75 73 79 22 20 61 6e 64 20 22 74 69 6d   "busy" and "tim
1350: 65 6f 75 74 22 20 6d 65 74 68 6f 64 73 20 74 6f  eout" methods to
1360: 20 74 68 65 20 54 63 6c 20 69 6e 74 65 72 66 61   the Tcl interfa
1370: 63 65 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ce</li>.}..chng 
1380: 7b 32 30 30 30 20 41 75 67 20 33 7d 20 7b 0a 3c  {2000 Aug 3} {.<
1390: 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20 76  li>File format v
13a0: 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 77 61  ersion number wa
13b0: 73 20 62 65 69 6e 67 20 73 74 6f 72 65 64 20 69  s being stored i
13c0: 6e 20 73 71 6c 69 74 65 5f 6d 61 73 74 65 72 2e  n sqlite_master.
13d0: 74 63 6c 0a 20 20 20 20 6d 75 6c 74 69 70 6c 65  tcl.    multiple
13e0: 20 74 69 6d 65 73 2e 20 54 68 69 73 20 77 61 73   times. This was
13f0: 20 68 61 72 6d 6c 65 73 73 2c 20 62 75 74 20 75   harmless, but u
1400: 6e 6e 65 63 65 73 73 61 72 79 2e 20 49 74 20 69  nnecessary. It i
1410: 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69  s now fixed.</li
1420: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
1430: 41 75 67 20 32 7d 20 7b 0a 3c 6c 69 3e 54 68 65  Aug 2} {.<li>The
1440: 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 66 6f 72   file format for
1450: 20 69 6e 64 69 63 65 73 20 77 61 73 20 63 68 61   indices was cha
1460: 6e 67 65 64 20 73 6c 69 67 68 74 6c 79 20 69 6e  nged slightly in
1470: 20 6f 72 64 65 72 20 74 6f 20 77 6f 72 6b 0a 20   order to work. 
1480: 20 20 20 61 72 6f 75 6e 64 20 61 6e 20 69 6e 65     around an ine
1490: 66 66 69 63 69 65 6e 63 79 20 74 68 61 74 20 63  fficiency that c
14a0: 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63 6f 6d  an sometimes com
14b0: 65 20 75 70 20 77 69 74 68 20 47 44 42 4d 20 77  e up with GDBM w
14c0: 68 65 6e 0a 20 20 20 20 74 68 65 72 65 20 61 72  hen.    there ar
14d0: 65 20 6c 61 72 67 65 20 69 6e 64 69 63 65 73 20  e large indices 
14e0: 68 61 76 69 6e 67 20 6d 61 6e 79 20 65 6e 74 72  having many entr
14f0: 69 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d  ies with the sam
1500: 65 20 6b 65 79 2e 0a 20 20 20 20 3c 66 6f 6e 74  e key..    <font
1510: 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 20   color="red">** 
1520: 49 6e 63 6f 6d 70 61 74 69 62 6c 65 20 43 68 61  Incompatible Cha
1530: 6e 67 65 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f 6c  nge **</font></l
1540: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
1550: 20 41 75 67 20 31 7d 20 7b 0a 3c 6c 69 3e 54 68   Aug 1} {.<li>Th
1560: 65 20 70 61 72 73 65 72 27 73 20 73 74 61 63 6b  e parser's stack
1570: 20 77 61 73 20 6f 76 65 72 66 6c 6f 77 69 6e 67   was overflowing
1580: 20 6f 6e 20 61 20 76 65 72 79 20 6c 6f 6e 67 20   on a very long 
1590: 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74  UPDATE statement
15a0: 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 6e 6f  ..    This is no
15b0: 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  w fixed.</li>.}.
15c0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79  .chng {2000 July
15d0: 20 33 31 7d 20 7b 0a 3c 6c 69 3e 46 69 6e 69 73   31} {.<li>Finis
15e0: 68 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76  h the <a href="v
15f0: 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74  dbe.html">VDBE t
1600: 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69  utorial</a>.</li
1610: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63 75  >.<li>Added docu
1620: 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d  mentation on com
1630: 70 69 6c 69 6e 67 20 74 6f 20 57 69 6e 64 6f 77  piling to Window
1640: 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  sNT.</li>.<li>Fi
1650: 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  x a configuratio
1660: 6e 20 70 72 6f 67 72 61 6d 20 66 6f 72 20 57 69  n program for Wi
1670: 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c  ndowsNT.</li>.<l
1680: 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67 75 72  i>Fix a configur
1690: 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 66 6f  ation problem fo
16a0: 72 20 48 50 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  r HPUX.</li>.}..
16b0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20  chng {2000 July 
16c0: 32 39 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72  29} {.<li>Better
16d0: 20 6c 61 62 65 6c 73 20 6f 6e 20 63 6f 6c 75 6d   labels on colum
16e0: 6e 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 72  n names of the r
16f0: 65 73 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  esult.</li>.}..c
1700: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32  hng {2000 July 2
1710: 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  8} {.<li>Added t
1720: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73  he <b>sqlite_bus
1730: 79 5f 68 61 6e 64 6c 65 72 28 29 3c 2f 62 3e 20  y_handler()</b> 
1740: 0a 20 20 20 20 61 6e 64 20 3c 62 3e 73 71 6c 69  .    and <b>sqli
1750: 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 28  te_busy_timeout(
1760: 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 2e  )</b> interface.
1770: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1780: 30 30 30 20 4a 75 6e 65 20 32 33 7d 20 7b 0a 3c  000 June 23} {.<
1790: 6c 69 3e 42 65 67 69 6e 20 77 72 69 74 69 6e 67  li>Begin writing
17a0: 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64   the <a href="vd
17b0: 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75  be.html">VDBE tu
17c0: 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e  torial</a>.</li>
17d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
17e0: 75 6e 65 20 32 31 7d 20 7b 0a 3c 6c 69 3e 43 6c  une 21} {.<li>Cl
17f0: 65 61 6e 20 75 70 20 63 6f 6d 6d 65 6e 74 73 20  ean up comments 
1800: 61 6e 64 20 76 61 72 69 61 62 6c 65 20 6e 61 6d  and variable nam
1810: 65 73 2e 20 20 43 68 61 6e 67 65 73 20 74 6f 20  es.  Changes to 
1820: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20  documentation.. 
1830: 20 20 20 4e 6f 20 66 75 6e 63 74 69 6f 6e 61 6c     No functional
1840: 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20   changes to the 
1850: 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  code.</li>.}..ch
1860: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 39  ng {2000 June 19
1870: 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 20 6e  } {.<li>Column n
1880: 61 6d 65 73 20 69 6e 20 55 50 44 41 54 45 20 73  ames in UPDATE s
1890: 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65 20 63  tatements were c
18a0: 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e 0a 20  ase sensitive.. 
18b0: 20 20 20 54 68 69 73 20 6d 69 73 74 61 6b 65 20     This mistake 
18c0: 68 61 73 20 6e 6f 77 20 62 65 65 6e 20 66 69 78  has now been fix
18d0: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
18e0: 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 36 7d 20   {2000 June 16} 
18f0: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
1900: 63 6f 6e 63 61 74 65 6e 61 74 65 20 73 74 72 69  concatenate stri
1910: 6e 67 20 6f 70 65 72 61 74 6f 72 20 28 7c 7c 29  ng operator (||)
1920: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1930: 30 30 30 20 4a 75 6e 65 20 31 32 7d 20 7b 0a 3c  000 June 12} {.<
1940: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 66 63 6e  li>Added the fcn
1950: 74 28 29 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20  t() function to 
1960: 74 68 65 20 53 51 4c 20 69 6e 74 65 72 70 72 65  the SQL interpre
1970: 74 65 72 2e 20 20 54 68 65 20 66 63 6e 74 28 29  ter.  The fcnt()
1980: 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 72 65   function.    re
1990: 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72  turns the number
19a0: 20 6f 66 20 64 61 74 61 62 61 73 65 20 22 46 65   of database "Fe
19b0: 74 63 68 22 20 6f 70 65 72 61 74 69 6f 6e 73 20  tch" operations 
19c0: 74 68 61 74 20 68 61 76 65 20 6f 63 63 75 72 72  that have occurr
19d0: 65 64 2e 0a 20 20 20 20 54 68 69 73 20 66 75 6e  ed..    This fun
19e0: 63 74 69 6f 6e 20 69 73 20 64 65 73 69 67 6e 65  ction is designe
19f0: 64 20 66 6f 72 20 75 73 65 20 69 6e 20 74 65 73  d for use in tes
1a00: 74 20 73 63 72 69 70 74 73 20 74 6f 20 76 65 72  t scripts to ver
1a10: 69 66 79 20 74 68 61 74 0a 20 20 20 20 71 75 65  ify that.    que
1a20: 72 69 65 73 20 61 72 65 20 65 66 66 69 63 69 65  ries are efficie
1a30: 6e 74 20 61 6e 64 20 61 70 70 72 6f 70 72 69 61  nt and appropria
1a40: 74 65 6c 79 20 6f 70 74 69 6d 69 7a 65 64 2e 20  tely optimized. 
1a50: 20 46 63 6e 74 28 29 20 68 61 73 20 6e 6f 20 6f   Fcnt() has no o
1a60: 74 68 65 72 0a 20 20 20 20 75 73 65 66 75 6c 20  ther.    useful 
1a70: 70 75 72 70 6f 73 65 2c 20 61 73 20 66 61 72 20  purpose, as far 
1a80: 61 73 20 49 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e 0a  as I know.</li>.
1a90: 3c 6c 69 3e 41 64 64 65 64 20 61 20 62 75 6e 63  <li>Added a bunc
1aa0: 68 20 6d 6f 72 65 20 74 65 73 74 73 20 74 68 61  h more tests tha
1ab0: 74 20 74 61 6b 65 20 61 64 76 61 6e 74 61 67 65  t take advantage
1ac0: 20 6f 66 20 74 68 65 20 6e 65 77 20 66 63 6e 74   of the new fcnt
1ad0: 28 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20  () function..   
1ae0: 20 54 68 65 20 6e 65 77 20 74 65 73 74 73 20 64   The new tests d
1af0: 69 64 20 6e 6f 74 20 75 6e 63 6f 76 65 72 20 61  id not uncover a
1b00: 6e 79 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73 2e  ny new problems.
1b10: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1b20: 30 30 30 20 4a 75 6e 65 20 38 7d 20 7b 0a 3c 6c  000 June 8} {.<l
1b30: 69 3e 41 64 64 65 64 20 6c 6f 74 73 20 6f 66 20  i>Added lots of 
1b40: 6e 65 77 20 74 65 73 74 20 63 61 73 65 73 3c 2f  new test cases</
1b50: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 66 65  li>.<li>Fix a fe
1b60: 77 20 62 75 67 73 20 64 69 73 63 6f 76 65 72 65  w bugs discovere
1b70: 64 20 77 68 69 6c 65 20 61 64 64 69 6e 67 20 74  d while adding t
1b80: 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c  est cases</li>.<
1b90: 6c 69 3e 42 65 67 69 6e 20 61 64 64 69 6e 67 20  li>Begin adding 
1ba0: 6c 6f 74 73 20 6f 66 20 6e 65 77 20 64 6f 63 75  lots of new docu
1bb0: 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 7d  mentation</li>.}
1bc0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
1bd0: 65 20 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  e 6} {.<li>Added
1be0: 20 63 6f 6d 70 6f 75 6e 64 20 73 65 6c 65 63 74   compound select
1bf0: 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 42 3e 55   operators: <B>U
1c00: 4e 49 4f 4e 3c 2f 62 3e 2c 20 3c 62 3e 55 4e 49  NION</b>, <b>UNI
1c10: 4f 4e 20 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e 49  ON ALL</B>,.<b>I
1c20: 4e 54 45 52 53 45 43 54 3c 2f 62 3e 2c 20 61 6e  NTERSECT</b>, an
1c30: 64 20 3c 62 3e 45 58 43 45 50 54 3c 2f 62 3e 3c  d <b>EXCEPT</b><
1c40: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
1c50: 75 70 70 6f 72 74 20 66 6f 72 20 75 73 69 6e 67  upport for using
1c60: 20 3c 62 3e 28 53 45 4c 45 43 54 20 2e 2e 2e 29   <b>(SELECT ...)
1c70: 3c 2f 62 3e 20 77 69 74 68 69 6e 20 65 78 70 72  </b> within expr
1c80: 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69  essions</li>.<li
1c90: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
1ca0: 6f 72 20 3c 62 3e 49 4e 3c 2f 62 3e 20 61 6e 64  or <b>IN</b> and
1cb0: 20 3c 62 3e 42 45 54 57 45 45 4e 3c 2f 62 3e 20   <b>BETWEEN</b> 
1cc0: 6f 70 65 72 61 74 6f 72 73 3c 2f 6c 69 3e 0a 3c  operators</li>.<
1cd0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
1ce0: 20 66 6f 72 20 3c 62 3e 47 52 4f 55 50 20 42 59   for <b>GROUP BY
1cf0: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 48 41 56 49  </b> and <b>HAVI
1d00: 4e 47 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  NG</b></li>.<li>
1d10: 4e 55 4c 4c 20 76 61 6c 75 65 73 20 61 72 65 20  NULL values are 
1d20: 6e 6f 77 20 72 65 70 6f 72 74 65 64 20 6f 74 20  now reported ot 
1d30: 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61 73 20  the callback as 
1d40: 61 20 4e 55 4c 4c 20 70 6f 69 6e 74 65 72 0a 20  a NULL pointer. 
1d50: 20 20 20 72 61 74 68 65 72 20 74 68 61 6e 20 61     rather than a
1d60: 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 3c  n empty string.<
1d70: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
1d80: 30 30 20 4a 75 6e 65 20 33 7d 20 7b 0a 3c 6c 69  00 June 3} {.<li
1d90: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
1da0: 6f 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65  or default value
1db0: 73 20 6f 6e 20 63 6f 6c 75 6d 6e 73 20 6f 66 20  s on columns of 
1dc0: 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  a table.</li>.<l
1dd0: 69 3e 49 6d 70 72 6f 76 65 64 20 74 65 73 74 20  i>Improved test 
1de0: 63 6f 76 65 72 61 67 65 2e 20 20 46 69 78 65 64  coverage.  Fixed
1df0: 20 61 20 66 65 77 20 6f 62 73 63 75 72 65 20 62   a few obscure b
1e00: 75 67 73 20 66 6f 75 6e 64 20 62 79 20 74 68 65  ugs found by the
1e10: 0a 69 6d 70 72 6f 76 65 64 20 74 65 73 74 73 2e  .improved tests.
1e20: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1e30: 30 30 30 20 4a 75 6e 65 20 32 7d 20 7b 0a 3c 6c  000 June 2} {.<l
1e40: 69 3e 41 6c 6c 20 64 61 74 61 62 61 73 65 20 66  i>All database f
1e50: 69 6c 65 73 20 74 6f 20 62 65 20 6d 6f 64 69 66  iles to be modif
1e60: 69 65 64 20 62 79 20 61 6e 20 55 50 44 41 54 45  ied by an UPDATE
1e70: 2c 20 49 4e 53 45 52 54 20 6f 72 20 44 45 4c 45  , INSERT or DELE
1e80: 54 45 20 61 72 65 20 0a 6e 6f 77 20 6c 6f 63 6b  TE are .now lock
1e90: 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20 63 68  ed before any ch
1ea0: 61 6e 67 65 73 20 61 72 65 20 6d 61 64 65 20 74  anges are made t
1eb0: 6f 20 61 6e 79 20 66 69 6c 65 73 2e 20 20 0a 54  o any files.  .T
1ec0: 68 69 73 20 6d 61 6b 65 73 20 69 74 20 73 61 66  his makes it saf
1ed0: 65 20 28 49 20 74 68 69 6e 6b 29 20 74 6f 20 61  e (I think) to a
1ee0: 63 63 65 73 73 0a 74 68 65 20 73 61 6d 65 20 64  ccess.the same d
1ef0: 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74 61 6e  atabase simultan
1f00: 65 6f 75 73 6c 79 20 66 72 6f 6d 20 6d 75 6c 74  eously from mult
1f10: 69 70 6c 65 20 70 72 6f 63 65 73 73 65 73 2e 3c  iple processes.<
1f20: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f 64  /li>.<li>The cod
1f30: 65 20 61 70 70 65 61 72 73 20 73 74 61 62 6c 65  e appears stable
1f40: 20 73 6f 20 77 65 20 61 72 65 20 6e 6f 77 20 63   so we are now c
1f50: 61 6c 6c 69 6e 67 20 69 74 20 22 62 65 74 61 22  alling it "beta"
1f60: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1f70: 32 30 30 30 20 4a 75 6e 65 20 31 7d 20 7b 0a 3c  2000 June 1} {.<
1f80: 6c 69 3e 42 65 74 74 65 72 20 73 75 70 70 6f 72  li>Better suppor
1f90: 74 20 66 6f 72 20 66 69 6c 65 20 6c 6f 63 6b 69  t for file locki
1fa0: 6e 67 20 73 6f 20 74 68 61 74 20 74 77 6f 20 6f  ng so that two o
1fb0: 72 20 6d 6f 72 65 20 70 72 6f 63 65 73 73 65 73  r more processes
1fc0: 20 0a 28 6f 72 20 74 68 72 65 61 64 73 29 0a 63   .(or threads).c
1fd0: 61 6e 20 61 63 63 65 73 73 20 74 68 65 20 73 61  an access the sa
1fe0: 6d 65 20 64 61 74 61 62 61 73 65 20 73 69 6d 75  me database simu
1ff0: 6c 74 61 6e 65 6f 75 73 6c 79 2e 20 20 4d 6f 72  ltaneously.  Mor
2000: 65 20 77 6f 72 6b 20 6e 65 65 64 65 64 20 69 6e  e work needed in
2010: 0a 74 68 69 73 20 61 72 65 61 2c 20 74 68 6f 75  .this area, thou
2020: 67 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  gh.</li>.}..chng
2030: 20 7b 32 30 30 30 20 4d 61 79 20 33 31 7d 20 7b   {2000 May 31} {
2040: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
2050: 72 74 20 66 6f 72 20 61 67 67 72 65 67 61 74 65  rt for aggregate
2060: 20 66 75 6e 63 74 69 6f 6e 73 20 28 45 78 3a 20   functions (Ex: 
2070: 3c 62 3e 43 4f 55 4e 54 28 2a 29 3c 2f 62 3e 2c  <b>COUNT(*)</b>,
2080: 20 3c 62 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f 62 3e   <b>MIN(...)</b>
2090: 29 0a 74 6f 20 74 68 65 20 53 45 4c 45 43 54 20  ).to the SELECT 
20a0: 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a  statement.</li>.
20b0: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
20c0: 74 20 66 6f 72 20 3c 42 3e 53 45 4c 45 43 54 20  t for <B>SELECT 
20d0: 44 49 53 54 49 4e 43 54 20 2e 2e 2e 3c 2f 42 3e  DISTINCT ...</B>
20e0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
20f0: 30 30 30 20 4d 61 79 20 33 30 7d 20 7b 0a 3c 6c  000 May 30} {.<l
2100: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 4c  i>Added the <b>L
2110: 49 4b 45 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72  IKE</b> operator
2120: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
2130: 20 61 20 3c 62 3e 47 4c 4f 42 3c 2f 62 3e 20 6f   a <b>GLOB</b> o
2140: 70 65 72 61 74 6f 72 3a 20 73 69 6d 69 6c 61 72  perator: similar
2150: 20 74 6f 20 3c 42 3e 4c 49 4b 45 3c 2f 42 3e 20   to <B>LIKE</B> 
2160: 0a 62 75 74 20 69 74 20 75 73 65 73 20 55 6e 69  .but it uses Uni
2170: 78 20 73 68 65 6c 6c 20 67 6c 6f 62 62 69 6e 67  x shell globbing
2180: 20 77 69 6c 64 63 61 72 64 73 20 69 6e 73 74 65   wildcards inste
2190: 61 64 20 6f 66 20 74 68 65 20 27 25 27 20 0a 61  ad of the '%' .a
21a0: 6e 64 20 27 5f 27 20 77 69 6c 64 63 61 72 64 73  nd '_' wildcards
21b0: 20 6f 66 20 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c   of SQL.</li>.<l
21c0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 42 3e 43  i>Added the <B>C
21d0: 4f 50 59 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20  OPY</b> command 
21e0: 70 61 74 74 65 72 6e 65 64 20 61 66 74 65 72 20  patterned after 
21f0: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
2200: 2f 77 77 77 2e 70 6f 73 74 67 72 65 73 71 6c 2e  /www.postgresql.
2210: 6f 72 67 2f 22 3e 50 6f 73 74 67 72 65 53 51 4c  org/">PostgreSQL
2220: 3c 2f 61 3e 20 73 6f 20 74 68 61 74 20 53 51 4c  </a> so that SQL
2230: 69 74 65 0a 63 61 6e 20 6e 6f 77 20 72 65 61 64  ite.can now read
2240: 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74   the output of t
2250: 68 65 20 3c 62 3e 70 67 5f 64 75 6d 70 3c 2f 62  he <b>pg_dump</b
2260: 3e 20 64 61 74 61 62 61 73 65 20 64 75 6d 70 20  > database dump 
2270: 75 74 69 6c 69 74 79 0a 6f 66 20 50 6f 73 74 67  utility.of Postg
2280: 72 65 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  reSQL.</li>.<li>
2290: 41 64 64 65 64 20 61 20 3c 42 3e 56 41 43 55 55  Added a <B>VACUU
22a0: 4d 3c 2f 42 3e 20 63 6f 6d 6d 61 6e 64 20 74 68  M</B> command th
22b0: 61 74 20 74 68 61 74 20 63 61 6c 6c 73 20 74 68  at that calls th
22c0: 65 20 0a 3c 62 3e 67 64 62 6d 5f 72 65 6f 72 67  e .<b>gdbm_reorg
22d0: 61 6e 69 7a 65 28 29 3c 2f 62 3e 20 66 75 6e 63  anize()</b> func
22e0: 74 69 6f 6e 20 6f 6e 20 74 68 65 20 75 6e 64 65  tion on the unde
22f0: 72 6c 79 69 6e 67 20 64 61 74 61 62 61 73 65 0a  rlying database.
2300: 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  files.</li>.<li>
2310: 41 6e 64 20 6d 61 6e 79 2c 20 6d 61 6e 79 20 62  And many, many b
2320: 75 67 20 66 69 78 65 73 2e 2e 2e 3c 2f 6c 69 3e  ug fixes...</li>
2330: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d  .}..chng {2000 M
2340: 61 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 49 6e 69  ay 29} {.<li>Ini
2350: 74 69 61 6c 20 50 75 62 6c 69 63 20 52 65 6c 65  tial Public Rele
2360: 61 73 65 20 6f 66 20 41 6c 70 68 61 20 63 6f 64  ase of Alpha cod
2370: 65 3c 2f 6c 69 3e 0a 7d 0a 0a 70 75 74 73 20 7b  e</li>.}..puts {
2380: 0a 3c 2f 44 4c 3e 0a 3c 70 3e 3c 68 72 20 2f 3e  .</DL>.<p><hr />
2390: 3c 2f 70 3e 0a 3c 70 3e 3c 61 20 68 72 65 66 3d  </p>.<p><a href=
23a0: 22 69 6e 64 65 78 2e 68 74 6d 6c 22 3e 3c 69 6d  "index.html"><im
23b0: 67 20 73 72 63 3d 22 2f 67 6f 62 61 63 6b 2e 6a  g src="/goback.j
23c0: 70 67 22 20 62 6f 72 64 65 72 3d 30 20 2f 3e 0a  pg" border=0 />.
23d0: 42 61 63 6b 20 74 6f 20 74 68 65 20 53 51 4c 69  Back to the SQLi
23e0: 74 65 20 48 6f 6d 65 20 50 61 67 65 3c 2f 61 3e  te Home Page</a>
23f0: 0a 3c 2f 70 3e 0a 0a 3c 2f 62 6f 64 79 3e 3c 2f  .</p>..</body></
2400: 68 74 6d 6c 3e 7d 0a                             html>}.