# # Run this TCL script to generate HTML for the index.html file. # set rcsid {$Id: index.tcl,v 1.21 2000/07/31 19:16:32 drh Exp $} puts {
}
puts "This page was last modified on [lrange $rcsid 3 4] GMT
"
puts "The SQLite source code was last modifed on [exec cat last_change] GMT"
puts {
The SQLite code base is being called "beta" only because it is relatively new. It appears to be stable and usable. Most of the SQL language is now implemented and working. The regression test suite provides good coverage, according to gcov. There are currently no known errors in the code.
If you find bugs or missing features, please submit a comment to the SQLite mailing list.
} } puts {SQLite is an SQL database engine built on top of the GDBM library. SQLite includes a standalone command-line access program (sqlite) and a C library (libsqlite.a) that can be linked with a C/C++ program to provide SQL database access without an separate RDBMS.
A change history is available online. There are currently no known bugs or memory leaks in the library. Gcov is used to verify test coverage. The test suite currently exercises all code except for a few areas which are unreachable or which are only reached when malloc() fails. The code has been tested for memory leaks and is found to be clean.
Among the SQL features that SQLite does not currently implement are:
The following documentation is currently available:
The SQLite source code is 35% comment. These comments are another important source of information.
} puts {A mailing list has been set up on eGroups for discussion of SQLite design issues or for asking questions about SQLite.
You can download a tarball containing all source code for SQLite (including the TCL scripts that generate the HTML files for this website) at sqlite.tar.gz.} puts "This is a [file size sqlite.tar.gz] byte download. The tarball was last modified at [clock format [file mtime sqlite.tar.gz]]" puts {
To build sqlite, just unwrap the tarball, create a separate build directory, run configure from the build directory and then type "make". For example:
} puts {$ tar xzf sqlite.tar.gz Unpacks into directory named "sqlite" $ mkdir bld Create a separate build directory $ cd bld $ ../sqlite/configure $ make Builds "sqlite" and "libsqlite.a" $ make test Optional: run regression tests
Download the source archive and compile the sqlite program as described above. The type:
} puts {bash$ sqlite ~/newdb Directory ~/newdb created automatically sqlite> create table t1( ...> a int, ...> b varchar(20) ...> c text ...> ); End each SQL statement with a ';' sqlite> insert into t1 ...> values(1,'hi','y''all'); sqlite> select * from t1; 1|hello|world sqlite> .mode columns Special commands begin with '.' sqlite> .header on Type ".help" for a list of commands sqlite> select * from t1; a b c ------ ------- ------- 1 hi y'all sqlite> .exit base$
The canonical site for GDBM is http://www.gnu.org/software/gdbm/gdbm.html
Someday, we would like to port SQLite to work with the Berkeley DB library in addition to GDBM. For information about the Berkeley DB library, see http://www.sleepycat.com/
Here is a good tutorial on SQL.
PostgreSQL is a full-blown SQL RDBMS that is also open source.
Gadfly is another SQL library, similar to SQLite, except that Gadfly is written in Python.
Qgdbm is a wrapper around tclgdbm that provides SQL-like access to GDBM files.
More Open Source Software from Hwaci.