1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-01-06 08:01:16 +03:00

Add incomplete, preliminary drafts of new documentation. (CVS 2225)

FossilOrigin-Name: a01159e8cb93199763d191b739da2a43ec88aab3
This commit is contained in:
drh
2005-01-17 03:42:52 +00:00
parent 3c9cc8d095
commit f10519b45a
4 changed files with 149 additions and 7 deletions

View File

@@ -1,5 +1,5 @@
C Fix\sa\smemory\sleak\sthat\soccurs\sas\sa\sresult\sof\san\sIO\serror.\s(CVS\s2224) C Add\sincomplete,\spreliminary\sdrafts\sof\snew\sdocumentation.\s(CVS\s2225)
D 2005-01-17T03:40:08 D 2005-01-17T03:42:52
F Makefile.in 78d6d0af3725aef32468ac9923444d7645d21a28 F Makefile.in 78d6d0af3725aef32468ac9923444d7645d21a28
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457 F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1 F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
@@ -244,6 +244,7 @@ F www/copyright-release.pdf cfca3558fc97095e57c6117d08f1f5b80d95125a
F www/copyright.tcl 82c9670c7ddb0311912ab7fe24703f33c531066c F www/copyright.tcl 82c9670c7ddb0311912ab7fe24703f33c531066c
F www/datatype3.tcl 1d14f70ab73075556b95e76a5c13e5b03f7f6c47 F www/datatype3.tcl 1d14f70ab73075556b95e76a5c13e5b03f7f6c47
F www/datatypes.tcl 7c786d2e8ff434346764534ec015966d17efce60 F www/datatypes.tcl 7c786d2e8ff434346764534ec015966d17efce60
F www/different.tcl 1cdf371794ec04a993be3b3e2c65e1897b789a86
F www/docs.tcl 09e5eccffad783fe65fac87772f5265e9bb64abe F www/docs.tcl 09e5eccffad783fe65fac87772f5265e9bb64abe
F www/download.tcl 4d8ff8c882063b864d004c524e4e7456858f09a5 F www/download.tcl 4d8ff8c882063b864d004c524e4e7456858f09a5
F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
@@ -258,6 +259,7 @@ F www/nulls.tcl ec35193f92485b87b90a994a01d0171b58823fcf
F www/oldnews.tcl 7aa4478e64631859770a5fe4b413919ba6ee8a08 F www/oldnews.tcl 7aa4478e64631859770a5fe4b413919ba6ee8a08
F www/omitted.tcl 7bd62b6f0f53b60c5360895b16b3af8407bbca03 F www/omitted.tcl 7bd62b6f0f53b60c5360895b16b3af8407bbca03
F www/opcode.tcl dafa030a5a3cc24a2f9fd4cfbfb7d7323d2151b0 F www/opcode.tcl dafa030a5a3cc24a2f9fd4cfbfb7d7323d2151b0
F www/optimizing.tcl f0b2538988d1bbad16cbfe63ec6e8f48c9eb04e5
F www/pragma.tcl f2f507d50755fea3636fbb956048aac4b14ee837 F www/pragma.tcl f2f507d50755fea3636fbb956048aac4b14ee837
F www/quickstart.tcl 6f6f694b6139be2d967b1492eb9a6bdf7058aa60 F www/quickstart.tcl 6f6f694b6139be2d967b1492eb9a6bdf7058aa60
F www/speed.tcl de99c82c4729a10b6733463636f15473c4ec95bc F www/speed.tcl de99c82c4729a10b6733463636f15473c4ec95bc
@@ -267,7 +269,7 @@ F www/tclsqlite.tcl e73f8f8e5f20e8277619433f7970060ab01088fc
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618 F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0 F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl c3b50d3ac31c54be2a1af9b488a89d22f1e6e746 F www/whentouse.tcl c3b50d3ac31c54be2a1af9b488a89d22f1e6e746
P 2d58c0afa769d49c8819ea4982bc20ae39516f97 P 1edfdcbf142b380172a26d094e6e4a3900db8463
R 5225b78fe98ecaba4ad353b32e187f8c R 96d57a6b3f846e4dbcc0ea017de3a1a3
U danielk1977 U drh
Z fe4ca27f9035b326974cf8c4ecac5357 Z d0fe1f7a9cab327ab894a50df6330b34

View File

@@ -1 +1 @@
1edfdcbf142b380172a26d094e6e4a3900db8463 a01159e8cb93199763d191b739da2a43ec88aab3

125
www/different.tcl Normal file
View File

@@ -0,0 +1,125 @@
set rcsid {$Id: different.tcl,v 1.1 2005/01/17 03:42:52 drh Exp $}
source common.tcl
header {Distinctive Features Of SQLite}
puts {
<p>
This page highlights some of the characteristics of SQLite that are
unusual and which make SQLite different from many other SQL
database engines.
</p>
}
proc feature {tag name text} {
puts "<a name=\"$tag\" />"
puts "<p><b>$name</b></p>\n"
puts "<blockquote>$text</blockquote>\n"
}
feature zeroconfig {Zero-Configuration} {
SQLite does not need to be "installed" before it is used.
There is no "setup" procedure. There is no
server process that needs to be started, stopped, or configured.
There is
no need for an administrator to create a new database instance or assign
access permissions to users.
SQLite uses no configuration files.
Nothing needs to be done to tell the system that SQLite is running.
No actions are required to recover after a system crash or power failure.
There is nothing to troubleshoot.
<p>
SQLite just works.
<p>
An SQLite database is an ordinary disk file. If SQLite can read
the disk file then it can read anything in the database. If the disk
file and its directory are writable, then SQLite can change anything
in the database.
}
feature serverless {Serverless} {
Most SQL database engines are implemented as a separate server
process. Programs that want to access the database communicate
with the server using some kind of interprocess communcation
(typically TCP/IP) to send requests to the server and to receive
back results. SQLite does not work this way. With SQLite, the
process that wants to access the database reads and writes
directly from the database files on disk. There is no intermediary
server process.
<p>
There are advantages and disadvantages to being serverless. The
main advantage is that there is no separate server process
to install, setup, configure, initialize, manage, and troubleshoot.
This is one reason why SQLite is a "zero-configuration" database
engine. Programs that use SQLite require no administrative support
for setting up the database engine before they are run. Any program
that is able to access the disk is able to use an SQLite database.
<p>
On the other hand, a database engine that uses a server can provide
better protection from bugs in the client application - stray pointers
in a client cannot corrupt memory on the server. And because a server
is a single persistent process, it is able control database access with
more precision, allowing for finer grain locking and better concurrancy.
<p>
Most SQL database engines are client/server based. Of those that are
serverless, SQLite is the only one that this author knows of that
allows multiple applications to access the same database at the same time.
}
feature small {Compact} {
When optimized for size, the whole SQLite library with everything enabled
is less than 220KiB in size (as measured on an ix86 using the "size"
utility from the GNU compiler suite.) Unneeded features can be disabled
at compile-time to further reduce the size of the library to under
180KiB if desired.
<p>
Most other SQL database engines are much larger than this. IBM boasts
that it's recently released CloudScape database engine is "only" a 2MiB
jar file - 10 times larger than SQLite even after it is compressed!
Firefox boasts that it's client-side library is only 350KiB. That's
50% larger than SQLite and does not even contain the database engine.
The Berkeley DB library from Sleepycat is 450KiB and it lacks a schema
layer.
}
feature typing {Manifest typing} {
}
feature readable {Readable source code} {
}
feature vdbe {SQL statements compile into virtual machine code} {
}
feature binding {Tight bindings to dynamic languages} {
}
feature license {Public domain} {
The source code for SQLite is in the public domain. No claim of copyright
is made on any part of the core source code. (The documentation and test
code is a different matter - some sections of documentation and test logic
are governed by open-sources licenses.) All contributors to the
SQLite core software have signed releases specifically disavowing any
copyright interest in the code. This means that anybody is able to legally
do anything they want with the SQLite source code.
<p>
There are other SQL database engines with liberal licenses that allow
the code to be broadly and freely used. But those other engines are
still governed by copyright law. SQLite is different in that copyright
law simply does not apply.
<p>
The source code files for other SQL database engines typically begin
with a comment describing your license rights to view and copy that file.
The SQLite source code contains no license since it is not governed by
copyright. Instead of a license, the SQLite source code offers a blessing:
<blockquote>
<i>May you do good and not evil<br>
May you find forgiveness for yourself and forgive others<br>
May you share freely, never taking more than you give.</i>
</blockquote>
}
feature extensions {SQL language extensions} {
}
footer $rcsid

15
www/optimizing.tcl Normal file
View File

@@ -0,0 +1,15 @@
set rcsid {$Id: optimizing.tcl,v 1.1 2005/01/17 03:42:52 drh Exp $}
source common.tcl
header {Hints For Optimizing Queries In SQLite}
proc section {level tag name} {
incr level
if {$level>6} {set level 6}
puts "\n"<a name=\"tag\" />"
puts "<h$level>$name</h$level>\n"
}
section 1 recompile {Recompile the library for optimal performance}
section 2 avoidtrans {Minimize the number of transactions}
section 3 usebind {Use sqlite3_bind to insert large chunks of data}
section 4 useindices {Use appropriate indices}
section 5 recordjoin {Reorder the tables in a join}
footer $rcsid