Version 2.0.0 (CVS 272)

FossilOrigin-Name: 1df5386a5557c1fc6a5433e9dbd23009026be369
This commit is contained in:
drh 2001-09-28 17:47:14 +00:00
parent 71eb93eaa3
commit 90ca975338
10 changed files with 193 additions and 98 deletions

View File

@ -230,11 +230,7 @@ fulltest: testfixture sqlite
test: testfixture sqlite
./testfixture $(TOP)/test/quick.test
sqlite.tar.gz:
pwd=`pwd`; cd $(TOP)/..; tar czf $$pwd/sqlite.tar.gz sqlite
index.html: $(TOP)/www/index.tcl sqlite.tar.gz last_change
cp ../sqlite-*.tar.gz .
index.html: $(TOP)/www/index.tcl last_change
tclsh $(TOP)/www/index.tcl `cat $(TOP)/VERSION` >index.html
sqlite.html: $(TOP)/www/sqlite.tcl
@ -273,11 +269,13 @@ tclsqlite.html: $(TOP)/www/tclsqlite.tcl
speed.html: $(TOP)/www/speed.tcl
tclsh $(TOP)/www/speed.tcl >speed.html
download.html: $(TOP)/www/download.tcl
tclsh $(TOP)/www/download.tcl >download.html
# Files to be published on the website.
#
PUBLISH = \
sqlite.tar.gz \
DOC = \
index.html \
sqlite.html \
changes.html \
@ -290,13 +288,12 @@ PUBLISH = \
crosscompile.html \
mingw.html \
tclsqlite.html \
download.html \
speed.html
website: $(PUBLISH)
publish: $(PUBLISH)
chmod 0644 $(PUBLISH) sqlite-*.tar.gz
scp $(PUBLISH) sqlite-*.tar.gz hwaci@oak.he.net:public_html/sw/sqlite
doc: $(DOC)
mkdir -p doc
mv $(DOC) doc
install: sqlite libsqlite.la sqlite.h
$(LIBTOOL) $(INSTALL) libsqlite.la $(prefix)/lib
@ -306,7 +303,7 @@ install: sqlite libsqlite.la sqlite.h
clean:
rm -f *.lo *.la *.o sqlite libsqlite.la sqlite.h
rm -rf .libs .deps
rm -f lemon lempar.c parse.* sqlite.tar.gz
rm -f lemon lempar.c parse.* sqlite*.tar.gz
rm -f $(PUBLISH)
rm -f *.da *.bb *.bbg gmon.out
rm -f testfixture test.db

View File

@ -284,11 +284,7 @@ fulltest: testfixture$(EXE) sqlite$(EXE)
test: testfixture$(EXE) sqlite$(EXE)
./testfixture$(EXE) $(TOP)/test/quick.test
sqlite.tar.gz:
pwd=`pwd`; cd $(TOP)/..; tar czf $$pwd/sqlite.tar.gz sqlite
index.html: $(TOP)/www/index.tcl sqlite.tar.gz last_change
cp ../sqlite-*.tar.gz .
index.html: $(TOP)/www/index.tcl last_change
tclsh $(TOP)/www/index.tcl `cat $(TOP)/VERSION` >index.html
sqlite.html: $(TOP)/www/sqlite.tcl
@ -327,11 +323,13 @@ tclsqlite.html: $(TOP)/www/tclsqlite.tcl
speed.html: $(TOP)/www/speed.tcl
tclsh $(TOP)/www/speed.tcl >speed.html
download.html: $(TOP)/www/download.tcl
tclsh $(TOP)/www/download.tcl >download.html
# Files to be published on the website.
#
PUBLISH = \
sqlite.tar.gz \
DOC = \
index.html \
sqlite.html \
changes.html \
@ -344,13 +342,12 @@ PUBLISH = \
crosscompile.html \
mingw.html \
tclsqlite.html \
download.html \
speed.html
website: $(PUBLISH)
publish: $(PUBLISH)
chmod 0644 $(PUBLISH) sqlite-*.tar.gz
scp $(PUBLISH) sqlite-*.tar.gz hwaci@oak.he.net:public_html/sw/sqlite
doc: $(DOC)
mkdir -p doc
mv $(DOC) doc
install: sqlite libsqlite.a sqlite.h
mv sqlite /usr/bin
@ -359,7 +356,7 @@ install: sqlite libsqlite.a sqlite.h
clean:
rm -f *.o sqlite libsqlite.a sqlite.h
rm -f lemon lempar.c parse.* sqlite.tar.gz
rm -f lemon lempar.c parse.* sqlite*.tar.gz
rm -f $(PUBLISH)
rm -f *.da *.bb *.bbg gmon.out
rm -rf tsrc

View File

@ -1 +1 @@
2.0-alpha-3
2.0.0

View File

@ -1,9 +1,9 @@
C Put\sin\sthe\snew\sLIBTOOL\sbuild\ssystem.\s(CVS\s271)
D 2001-09-28T01:34:44
F Makefile.in 4d29e58224476426cc8c78b631ae478cbad0e1ea
F Makefile.template 31de3ce7126e8325c759a94e5b72ee8febc43357
C Version\s2.0.0\s(CVS\s272)
D 2001-09-28T17:47:14
F Makefile.in 98d4627cb364537e4c3a29ee806171f3abf5211a
F Makefile.template 7179523fdf3d6e7933ec843e2352dcfc9785c700
F README 93d2977cc5c6595c448de16bdefc312b9d401533
F VERSION 17fadc361fb942d644f92116388409c937c9fa79
F VERSION 3861a21803fcd9eb92a403027b0da2bb7add4de1
F aclocal.m4 11faa843caa38fd451bc6aeb43e248d1723a269d
F config.guess f38b1e93d1e0fa6f5a6913e9e7b12774b9232588
F config.log 6a73d03433669b10a3f0c221198c3f26b9413914
@ -17,6 +17,7 @@ F doc/report1.txt a031aaf37b185e4fa540223cb516d3bccec7eeac
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895
F libtool c56e618713c9510a103bda6b95f3ea3900dcacd6
F ltmain.sh e9ed72eb1d690f447c13945eaf69e28af531eda1
F publish.sh 88bc1f96946582eb0323c4d31a89767ba6ae46ce
F src/TODO af7f3cab0228e34149cf98e073aa83d45878e7e6
F src/btree.c a4a88dfef2072cedfdac09f3a51b7d70b017b9b4
F src/btree.h 57d653ef5137b91f2a068aaf71a2905468dd2cb7
@ -41,7 +42,7 @@ F src/shell.tcl 27ecbd63dd88396ad16d81ab44f73e6c0ea9d20e
F src/sqlite.h.in 08151912b382ded315b5c8fc6288d9d7a9332aa4
F src/sqliteInt.h 3ead85324704b79b2ae6799d6af3e5fd710756d9
F src/table.c abd0adbe0fee39d995287b3bcccd908d174dfcac
F src/tclsqlite.c 04a35d04f06046acc3944121dc6c36717f7f36d5
F src/tclsqlite.c 765599686c19ed777ac379928d732c8bfc63ebac
F src/test1.c e4b31f62ea71963cbae44338acf477a04fc8fc49
F src/test2.c 0168b39225b768cfdadd534406f9dec58c27879e
F src/test3.c 4a0d7b882fdae731dbb759f512ad867122452f96
@ -99,18 +100,18 @@ F www/arch.fig d5f9752a4dbf242e9cfffffd3f5762b6c63b3bcf
F www/arch.png 82ef36db1143828a7abc88b1e308a5f55d4336f4
F www/arch.tcl c1891efdc00cd76eec72bdbf8b446195902932a3
F www/c_interface.tcl 52ae81c89bf906b358e04857bd3f76b1a7f61c1b
F www/changes.tcl d06af04f300162e47ac066e125ef34e863a19ca2
F www/changes.tcl 47619693c843174b57d41482fcd00e2e70d41fd0
F www/crosscompile.tcl c99efacb3aefaa550c6e80d91b240f55eb9fd33e
F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
F www/index.tcl fd8ef2d78f22022d2baea03371a1add75d98d236
F www/lang.tcl d093693db5d4d7b7127d134807e4e65dea0e5dee
F www/index.tcl 639a75165dc532a16ddb02055bc69541eecc3fa7
F www/lang.tcl 33a74d727615ccbee8be7c8efd5876ce008c4b0e
F www/mingw.tcl fc5f4ba9d336b6e8c97347cc6496d6162461ef60
F www/opcode.tcl 60222aeb57a7855b2582c374b8753cb5bb53c4ab
F www/speed.tcl 91b53f9403a62bb322dc1f85a81531309bcfb41c
F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f
F www/tclsqlite.tcl 13d50723f583888fc80ae1a38247c0ab415066fa
F www/vdbe.tcl 0c8aaa529dd216ccbf7daaabd80985e413d5f9ad
P 3ae952933997c6422ec53b26391ba362c6e5c44a
R 9eb0a8a330099ee573677e4648d1a9dc
P 00575d167aea567bc38f8a329aeff7b814eb91c8
R 81c8ca6ec47dd72d51e7ef41271549d2
U drh
Z dd38c213d9c2c1db847a360dc3d08644
Z 04def0ebf7eae2e65632e77981c5002a

View File

@ -1 +1 @@
00575d167aea567bc38f8a329aeff7b814eb91c8
1df5386a5557c1fc6a5433e9dbd23009026be369

98
publish.sh Normal file
View File

@ -0,0 +1,98 @@
#!/bin/sh
#
# This script is used to compile SQLite and all its documentation and
# ship everything up to the SQLite website. This script will only work
# on the system "zadok" at the Hwaci offices. But others might find
# the script useful as an example.
#
# Set srcdir to the name of the directory that contains the publish.sh
# script.
#
srcdir=`echo "$0" | sed 's%\(^.*\)/[^/][^/]*$%\1%'`
# Get the makefile.
#
cp $srcdir/Makefile.template ./Makefile
# Start building stuff.
#
make clean
make sqlite
strip sqlite
mv sqlite sqlite.bin
gzip sqlite.bin
# Build the tclsqlite.so shared library for import into tclsh or wish
# under Linux
#
make target_source
cd tsrc
rm shell.c
TCLDIR=/home/drh/tcltk/8.2linux
OPTS='-DUSE_TCL_STUBS=1 -DNDEBUG=1 -DOS_UNIX=1 -DOS_WIN=0'
gcc -fPIC $OPTS -O2 -I. -I$TCLDIR -shared *.c -o tclsqlite.so
strip tclsqlite.so
mv tclsqlite.so ..
cd ..
gzip tclsqlite.so
# Build the tclsqlite.dll shared library that can be imported into tclsh
# or wish on windows.
#
make target_source
cd tsrc
TCLDIR=/home/drh/tcltk/8.2win
TCLSTUBLIB=$TCLDIR/tclstub82.a
PATH=$PATH:/opt/mingw/bin
OPTS='-DUSE_TCL_STUBS=1 -DNDEBUG=1 -DOS_UNIX=0 -DOS_WIN=1'
CC="i386-mingw32-gcc -O2 $OPTS -I. -I$TCLDIR"
rm shell.c
for i in *.c; do
CMD="$CC -c $i"
echo $CMD
$CMD
done
echo 'EXPORTS' >tclsqlite.def
echo 'Tclsqlite_Init' >>tclsqlite.def
echo 'Sqlite_Init' >>tclsqlite.def
i386-mingw32-dllwrap \
--def tclsqlite.def -v --export-all \
--driver-name i386-mingw32-gcc \
--dlltool-name i386-mingw32-dlltool \
--as i386-mingw32-as \
--target i386-mingw32 \
-dllname tclsqlite.dll -lmsvcrt *.o $TCLSTUBLIB
i386-mingw32-strip tclsqlite.dll
mv tclsqlite.dll ..
cd ..
rm -f tclsqlite.zip
zip tclsqlite.zip tclsqlite.dll
# Build the sqlite.exe executable for windows.
#
make target_source
cd tsrc
rm tclsqlite.c
OPTS='-DSTATIC_BUILD=1 -DNDEBUG=1 -DOS_UNIX=0 -DOS_WIN=1'
i386-mingw32-gcc -O2 $OPTS -I. -I$TCLDIR *.c -o sqlite.exe
mv sqlite.exe ..
cd ..
rm -f sqlite.zip
zip sqlite.zip sqlite.exe
# Construct a tarball of the source tree
#
ORIGIN=`pwd`
cd $srcdir
cd ..
tar czf $ORIGIN/sqlite.tar.gz sqlite
cd $ORIGIN
vers=`cat $srcdir/VERSION`
ln sqlite.tar.gz sqlite-$vers.tar.gz
# Build the website
#
cp $srcdir/../historical/* .
make doc
ln sqlite.bin.gz sqlite.zip sqlite*.tar.gz tclsqlite.so.gz tclsqlite.zip doc

View File

@ -11,7 +11,7 @@
*************************************************************************
** A TCL Interface to SQLite
**
** $Id: tclsqlite.c,v 1.23 2001/09/16 00:13:27 drh Exp $
** $Id: tclsqlite.c,v 1.24 2001/09/28 17:47:14 drh Exp $
*/
#ifndef NO_TCL /* Omit this whole file if TCL is unavailable */
@ -433,6 +433,15 @@ static int DbMain(void *cd, Tcl_Interp *interp, int argc, char **argv){
return TCL_OK;
}
/*
** Provide a dummy Tcl_InitStubs if we are using this as a static
** library.
*/
#ifndef USE_TCL_STUBS
# undef Tcl_InitStubs
# define Tcl_InitStubs(a,b,c)
#endif
/*
** Initialize this module.
**
@ -443,6 +452,13 @@ static int DbMain(void *cd, Tcl_Interp *interp, int argc, char **argv){
** for additional information.
*/
int Sqlite_Init(Tcl_Interp *interp){
Tcl_InitStubs(interp, "8.0", 0);
Tcl_CreateCommand(interp, "sqlite", DbMain, 0, 0);
Tcl_PkgProvide(interp, "sqlite", "1.0");
return TCL_OK;
}
int Tclsqlite_Init(Tcl_Interp *interp){
Tcl_InitStubs(interp, "8.0", 0);
Tcl_CreateCommand(interp, "sqlite", DbMain, 0, 0);
Tcl_PkgProvide(interp, "sqlite", "1.0");
return TCL_OK;
@ -450,6 +466,9 @@ int Sqlite_Init(Tcl_Interp *interp){
int Sqlite_SafeInit(Tcl_Interp *interp){
return TCL_OK;
}
int Tclsqlite_SafeInit(Tcl_Interp *interp){
return TCL_OK;
}
#if 0
/*

View File

@ -17,6 +17,15 @@ proc chng {date desc} {
puts "<DD><P><UL>$desc</UL></P></DD>"
}
chng {2001 Sep 28 (2.0.0)} {
<li>Automatically build binaries for Linux and Windows and put them on
the website.</li>
}
chng {2001 Sep 28 (2.0-alpha-4)} {
<li>Incorporate makefile patches form A. Rottmann to use LIBTOOL</li>
}
chng {2001 Sep 27 (2.0-alpha-3)} {
<li>SQLite now honors the UNIQUE keyword in CREATE UNIQUE INDEX. Primary
keys are required to be unique.</li>

View File

@ -1,7 +1,7 @@
#
# Run this TCL script to generate HTML for the index.html file.
#
set rcsid {$Id: index.tcl,v 1.41 2001/09/25 01:51:00 drh Exp $}
set rcsid {$Id: index.tcl,v 1.42 2001/09/28 17:47:14 drh Exp $}
puts {<html>
<head><title>SQLite: An SQL Database Engine In A C Library</title></head>
@ -27,9 +27,17 @@ an example of how to use the SQLite library.</p>
<p>SQLite is <b>not</b> a client library used to connect to a
big database server. SQLite <b>is</b> the server. The SQLite
library reads and writes directly to and from the database files
on disk.</p>
on disk.</p>}
<h2>Features</h2>
puts {<table align="right"hspace="10">
<tr><td align="center" bgcolor="#8ee5ee">
<table border="2"><tr><td align="center">
<a href="download.html"><big><b>Download<br>SQLite
</td></tr></table>
</td></tr>
</table>}
puts {<h2>Features</h2>
<p><ul>
<li>Implements a large subset of SQL92.</li>
@ -42,7 +50,8 @@ on disk.</p>
<li>Very simple
<a href="c_interface.html">C/C++ interface</a> requires the use of only
three functions and one opaque structure.</li>
<li>A TCL interface to the library is included.</li>
<li>A <a href="tclsqlite.html">TCL interface</a>
to the library is included.</li>
<li>A TCL-based test suite provides near 100% code coverage.</li>
<li>Self-contained: no external dependencies.</li>
<li>Built and tested under Linux and Win2K.</li>
@ -51,35 +60,13 @@ three functions and one opaque structure.</li>
</p>
}
puts {<h2>Download</h2>}
puts {<h2>Download</h2>
puts {<table align="right"hspace="10">
<tr><td align="center" bgcolor="#8ee5ee">
<table border="2"><tr><td align="center">
<a href="sqlite.tar.gz"><big><b>Download SQLite<br>}
puts "version $vers<br>"
puts {Now!
</td></tr></table>
</td></tr>
</table>}
puts {<p>You can download a tarball containing all source
code for SQLite
<p>
Precompiled binaries for Linux and Windows and the complete
source tree are available for <a href="download.html">download</a>.
</p>
}
puts "version $vers"
puts {
(including the TCL scripts that generate the
HTML files for this website) at <a href="sqlite.tar.gz">sqlite.tar.gz</a>.}
puts "This is a [file size sqlite.tar.gz] byte download."
set historical [lsort -dict [glob -nocomplain sqlite-*.tar.gz]]
if {$historical!=""} {
puts {The following historical versions of SQLite are also available:}
foreach x $historical {
puts "<a href=\"$x\">$x</a> ([file size $x] bytes)"
}
}
puts {</p>}
puts {<h2>Current Status</h2>
@ -88,17 +75,6 @@ There are currently no <em>known</em> memory leaks or debilitating bugs
in the library. <a href="http://gcc.gnu.org/onlinedocs/gcov_1.html">Gcov</a>
is used to verify test coverage.</p>
<p>Known bugs:</p>
<ul>
<li><p>
The LIKE operator is suppose to ignore case.
But it only ignores case for 7-bit Latin characters.
The case of 8-bit iso8859 characters or UTF-8 characters is
signification. Hence, <b>'a'&nbsp;LIKE&nbsp;'A'</b> returns
TRUE but <b>'&aelig;'&nbsp;LIKE&nbsp;'&AElig;'</b> returns FALSE.
</p></li>
</ul>
<h2>Documentation</h2>
@ -150,14 +126,6 @@ $ ../sqlite/configure
$ make <i> Builds "sqlite" and "libsqlite.a" </i>
$ make test <i> Optional: run regression tests </i>
</pre></blockquote>
<p>The Win2K version of SQLite was built using the MingW32 cross-compiler
running under Linux. You have to give the configure script hints to make
this work. Read the comments at the beginning of the file
<b>configure.in</b> for additional information. The source code is
general enough that it should be possible to compile SQLite using VC++,
though the author has no desire or motivation to try.
</p>
}
puts {<h2>Command-line Usage Example</h2>

View File

@ -1,7 +1,7 @@
#
# Run this Tcl script to generate the sqlite.html file.
#
set rcsid {$Id: lang.tcl,v 1.9 2001/09/20 01:44:44 drh Exp $}
set rcsid {$Id: lang.tcl,v 1.10 2001/09/28 17:47:14 drh Exp $}
puts {<html>
<head>
@ -119,7 +119,7 @@ ROLLBACK [TRANSACTION [<name>]]
puts {
<p>Beginning in version 2.0, SQLite supports transactions with
rollback and atomic commit. However, only a single level of
transaction is required. In other words, transactions
transaction is allowed. In other words, transactions
may not be nested.
</p>
@ -173,7 +173,7 @@ puts "\"[Operator \\.]\".</p>"
Section {CREATE INDEX} createindex
Syntax {sql-statement} {
CREATE INDEX <index-name>
CREATE [UNIQUE] INDEX <index-name>
ON <table-name> ( <column-name> [, <column-name>]* )
} {column-name} {
<name> [ ASC | DESC ]
@ -191,6 +191,10 @@ implementation.</p>
<p>There are no arbitrary limits on the number of indices that can be
attached to a single table, nor on the number of columns in an index.</p>
<p>If the UNIQUE keyword appears between CREATE and INDEX then duplicate
index entries are not allowed. Any attempt to insert a duplicate entry
will result in a rollback and an error message.</p>
<p>The exact text
of each CREATE INDEX statement is stored in the <b>sqlite_master</b>
table. Everytime the database is opened, all CREATE INDEX statements
@ -234,10 +238,12 @@ is the name of the table that records the database schema.</p>
<p>Each column definition is the name of the column followed by the
datatype for that column, then one or more optional column constraints.
The datatype for the column is ignored. All information
is stored as null-terminated strings. The constraints are also ignored,
except that the PRIMARY KEY constraint will cause an index to be automatically
created that implements the primary key and the DEFAULT constraint
which specifies a default value to use when doing an INSERT.
is stored as null-terminated strings.
The UNIQUE constraint causes an index to be created on the specified
columns. This index must contain unique keys. The PRIMARY KEY constraint
is an alias for UNIQUE.
The DEFAULT constraint
specifies a default value to use when doing an INSERT.
</p>
<p>There are no arbitrary limits on the number