Documentation updates. Added the "distinctive features" page. (CVS 2383)
FossilOrigin-Name: 33a0191638a4d6b33422f62487bfb9a0089d3cff
This commit is contained in:
parent
f580380463
commit
9179fd93ff
4
main.mk
4
main.mk
@ -421,6 +421,9 @@ datatypes.html: $(TOP)/www/datatypes.tcl
|
||||
datatype3.html: $(TOP)/www/datatype3.tcl
|
||||
tclsh $(TOP)/www/datatype3.tcl >datatype3.html
|
||||
|
||||
different.html: $(TOP)/www/different.tcl
|
||||
tclsh $(TOP)/www/different.tcl >different.html
|
||||
|
||||
docs.html: $(TOP)/www/docs.tcl
|
||||
tclsh $(TOP)/www/docs.tcl >docs.html
|
||||
|
||||
@ -509,6 +512,7 @@ DOC = \
|
||||
conflict.html \
|
||||
datatypes.html \
|
||||
datatype3.html \
|
||||
different.html \
|
||||
docs.html \
|
||||
download.html \
|
||||
faq.html \
|
||||
|
20
manifest
20
manifest
@ -1,5 +1,5 @@
|
||||
C Version\s3.1.5\s(CVS\s2382)
|
||||
D 2005-03-11T18:06:53
|
||||
C Documentation\supdates.\s\sAdded\sthe\s"distinctive\sfeatures"\spage.\s(CVS\s2383)
|
||||
D 2005-03-12T15:55:11
|
||||
F Makefile.in 5c00d0037104de2a50ac7647a5f12769795957a3
|
||||
F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
|
||||
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
|
||||
@ -16,7 +16,7 @@ F doc/lemon.html f0f682f50210928c07e562621c3b7e8ab912a538
|
||||
F doc/report1.txt a031aaf37b185e4fa540223cb516d3bccec7eeac
|
||||
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895
|
||||
F ltmain.sh f6b283068efa69f06eb8aa1fe4bddfdbdeb35826
|
||||
F main.mk 632150f494ae1a96c8ac3cda0229a77cd18cb843
|
||||
F main.mk 3acc5ae52addd43fd1858fe99fca54a49bca6a56
|
||||
F mkdll.sh 5ec23622515d5bf8969404e80cfb5e220ddf0512
|
||||
F mkopcodec.awk bd46ad001c98dfbab07b1713cb8e692fa0e5415d
|
||||
F mkopcodeh.awk e4d010870a3e98fd4323635c31565a3ca8584741
|
||||
@ -249,8 +249,8 @@ F www/copyright-release.pdf cfca3558fc97095e57c6117d08f1f5b80d95125a
|
||||
F www/copyright.tcl 82c9670c7ddb0311912ab7fe24703f33c531066c
|
||||
F www/datatype3.tcl 1d14f70ab73075556b95e76a5c13e5b03f7f6c47
|
||||
F www/datatypes.tcl 7c786d2e8ff434346764534ec015966d17efce60
|
||||
F www/different.tcl 051086bc273a36808dc08d58ed098611fb53e315
|
||||
F www/docs.tcl 09e5eccffad783fe65fac87772f5265e9bb64abe
|
||||
F www/different.tcl 1bff4f968e7080f33148d91ca800f803838f320f
|
||||
F www/docs.tcl 95f464d6ae02fe265a845ba60d44e053ab5cb5d5
|
||||
F www/download.tcl 3af00c0e8fd915961707cddb4c2260f5cf59f3c1
|
||||
F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
|
||||
F www/faq.tcl 1e348dec52dc0f21f4216fd6918c69c56daa4cfd
|
||||
@ -267,14 +267,14 @@ F www/opcode.tcl 5bd68059416b223515a680d410a9f7cb6736485f
|
||||
F www/optimizing.tcl f0b2538988d1bbad16cbfe63ec6e8f48c9eb04e5
|
||||
F www/pragma.tcl 3b7d88d6545e9b8ea4a3661e0be5e0f0e9817466
|
||||
F www/quickstart.tcl 6f6f694b6139be2d967b1492eb9a6bdf7058aa60
|
||||
F www/speed.tcl 1f8fb33df0d5bebf29508af763db3ee019c45967
|
||||
F www/speed.tcl 656ed5be8cc9d536353e1a96927b925634a62933
|
||||
F www/sqlite.tcl b51fd15f0531a54874de785a9efba323eecd5975
|
||||
F www/support.tcl 3955da0fd82be68cc5c83d347c05095e80967051
|
||||
F www/tclsqlite.tcl e73f8f8e5f20e8277619433f7970060ab01088fc
|
||||
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
|
||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
|
||||
F www/whentouse.tcl 3e522a06ad41992023c80ca29a048ae2331ca5bd
|
||||
P baddb06450e6948334faef4afa7cbfba40a2aa0f
|
||||
R dc82974a3228fea88ec10f436f957e81
|
||||
P b1792ae51666f27bc47cf986937a3caacdd3a9f7
|
||||
R ae5ab2337936f8b14b51431c67974b2a
|
||||
U drh
|
||||
Z 182e19dd94e55cce93f9ec86e717bb1a
|
||||
Z 6b216f6f11e1748fb1efcd8b223e6a22
|
||||
|
@ -1 +1 @@
|
||||
b1792ae51666f27bc47cf986937a3caacdd3a9f7
|
||||
33a0191638a4d6b33422f62487bfb9a0089d3cff
|
@ -1,4 +1,4 @@
|
||||
set rcsid {$Id: different.tcl,v 1.2 2005/01/20 22:48:49 drh Exp $}
|
||||
set rcsid {$Id: different.tcl,v 1.3 2005/03/12 15:55:11 drh Exp $}
|
||||
source common.tcl
|
||||
header {Distinctive Features Of SQLite}
|
||||
puts {
|
||||
@ -81,7 +81,7 @@ feature onefile {Single Database File} {
|
||||
|
||||
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"
|
||||
is less than 225KiB 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
|
||||
170KiB if desired.
|
||||
@ -96,24 +96,91 @@ feature small {Compact} {
|
||||
}
|
||||
|
||||
feature typing {Manifest typing} {
|
||||
|
||||
Most SQL database engines use static typing. A datatype is associated
|
||||
with each column in a table and only values of that particular datatype
|
||||
are allowed to be stored in that column. SQLite relaxes this restriction
|
||||
by using manifest typing.
|
||||
In manifest typing, the datatype is a property of the value itself, not
|
||||
of the column in which the value is stored.
|
||||
SQLite thus allows the user to store
|
||||
any value of any datatype into any column regardless of the declared type
|
||||
of that column. (There are some exceptions to this rule: An INTEGER
|
||||
PRIMARY KEY column may only store integers. And SQLite attempts to coerce
|
||||
values into the declared datatype of the column when it can.)
|
||||
<p>
|
||||
The SQL language specification calls for static typing. So some people
|
||||
feel that the use of manifest typing in SQLite is a bug. But the authors
|
||||
of SQLite feel very strongly that this is a feature. The authors argue
|
||||
that static typing is a bug in the SQL specification that SQLite has fixed
|
||||
in a backwards compatible way.
|
||||
}
|
||||
|
||||
feature flex {Variable-length records} {
|
||||
Most other SQL database engines allocated a fixed amount of disk space
|
||||
for each row in a most tables. They play special tricks for handling
|
||||
BLOBs and CLOBs which can be of wildly varying length. But for most
|
||||
tables, if you declare a column to be a VARCHAR(100) then the database
|
||||
engine will allocate
|
||||
100 bytes of disk space regardless of how much information you actually
|
||||
store in that column.
|
||||
<p>
|
||||
SQLite, in contrast, use only the amount of disk space actually
|
||||
needed to store the information in a row. If you store a single
|
||||
character in a VARCHAR(100) column, then only a single byte of disk
|
||||
space is consumed. (Actually two bytes - there is some overhead at
|
||||
the beginning of each column to record its datatype and length.)
|
||||
<p>
|
||||
The use of variable-length records by SQLite has a number of advantages.
|
||||
It results in smaller database files, obviously. It also makes the
|
||||
database run faster, since there is less information to move to and from
|
||||
disk. And, the use of variable-length records makes it possible for
|
||||
SQLite to employ manifest typing instead of static typing.
|
||||
}
|
||||
|
||||
feature readable {Readable source code} {
|
||||
The source code to SQLite is designed to be readable and accessible to
|
||||
the average programmer. All procedures and and data structures and many
|
||||
automatic variables are carefully commented with useful information about
|
||||
what they do. Boilerplate commenting is omitted.
|
||||
}
|
||||
|
||||
feature vdbe {SQL statements compile into virtual machine code} {
|
||||
Every SQL database engine compiles each SQL statement into some kind of
|
||||
internal data structure which is then used to carry out the work of the
|
||||
statement. But in most SQL engines that internal data structure is a
|
||||
complex web of interlinked structures and objects. In SQLite, the compiled
|
||||
form of statements is a short program in a machine-language like
|
||||
representation. Users of the database can view this
|
||||
<a href="opcode.html">virtual machine language</a>
|
||||
by prepending the <a href="lang_explain.html">EXPLAIN</a> keyword
|
||||
to a query.
|
||||
<p>
|
||||
The use of a virtual machine in SQLite has been a great benefit to
|
||||
library's development. The virtual machine provides a crisp, well-defined
|
||||
junction between the front-end of SQLite (the part that parses SQL
|
||||
statements and generates virtual machine code) and the back-end (the
|
||||
part that executes the virtual machine code and computes a result.)
|
||||
The virtual machine allows the developers to see clearly and in an
|
||||
easily readable form what SQLite is trying to do with each statement
|
||||
it compiles, which is a tremendous help in debuggings.
|
||||
Depending on how it is compiled, SQLite also has the capability of
|
||||
tracing the execution of the virtual machine - printing each
|
||||
virtual machine instruction and its result as it executes.
|
||||
}
|
||||
|
||||
feature binding {Tight bindings to dynamic languages} {
|
||||
}
|
||||
#feature binding {Tight bindings to dynamic languages} {
|
||||
# Because it is embedded, SQLite can have a much tighter and more natural
|
||||
# binding to high-level dynamic languages such as Tcl, Perl, Python,
|
||||
# PHP, and Ruby.
|
||||
# For example,
|
||||
#}
|
||||
|
||||
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
|
||||
SQLite core software have signed affidavits 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>
|
||||
@ -134,6 +201,19 @@ feature license {Public domain} {
|
||||
}
|
||||
|
||||
feature extensions {SQL language extensions} {
|
||||
SQLite provides a number of enhancements to the SQL language
|
||||
not normally found in other database engines.
|
||||
The EXPLAIN keyword and manifest typing have already been mentioned
|
||||
above. SQLite also provides statements such as
|
||||
<a href="lang_replace.html">REPLACE</a> and the
|
||||
<a href="lang_conflict.html">ON CONFLICT</a> clause that allow for
|
||||
added control over the resolution of constraint conflicts.
|
||||
SQLite supports <a href="lang_attach.html">ATTACH</a> and
|
||||
<a href="lang_detach.html">DETACH</a> commands that allow multiple
|
||||
independent databases to be used together in the same query.
|
||||
And SQLite defines APIs that allows the user to add new
|
||||
<a href="capi3ref.html#sqlite3_create_function>SQL functions</a>
|
||||
and <a href="capi3ref.html#sqlite3_create_collation>collating sequences</a>.
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# This script generates the "docs.html" page that describes various
|
||||
# sources of documentation available for SQLite.
|
||||
#
|
||||
set rcsid {$Id: docs.tcl,v 1.9 2005/01/03 01:33:00 drh Exp $}
|
||||
set rcsid {$Id: docs.tcl,v 1.10 2005/03/12 15:55:11 drh Exp $}
|
||||
source common.tcl
|
||||
header {SQLite Documentation}
|
||||
puts {
|
||||
@ -25,6 +25,11 @@ doc {Appropriate Uses For SQLite} {whentouse.html} {
|
||||
database engine might be a better choice.
|
||||
}
|
||||
|
||||
doc {Distinctive Features} {different.html} {
|
||||
This document enumerates and describes some of the features of
|
||||
SQLite that make it different from other SQL database engines.
|
||||
}
|
||||
|
||||
doc {SQLite In 5 Minutes Or Less} {quickstart.html} {
|
||||
A very quick introduction to programming with SQLite.
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Run this Tcl script to generate the speed.html file.
|
||||
#
|
||||
set rcsid {$Id: speed.tcl,v 1.16 2005/01/21 18:19:29 drh Exp $ }
|
||||
set rcsid {$Id: speed.tcl,v 1.17 2005/03/12 15:55:11 drh Exp $ }
|
||||
source common.tcl
|
||||
header {SQLite Database Speed Comparison}
|
||||
|
||||
@ -10,7 +10,7 @@ puts {
|
||||
|
||||
<font color="red"><b>
|
||||
Note: This document is old. It describes a speed comparison between
|
||||
an older version of SQLite against archic versions of MySQL and PostgreSQL.
|
||||
an older version of SQLite against archaic versions of MySQL and PostgreSQL.
|
||||
Readers are invited to contribute more up-to-date speed comparisons
|
||||
on the <a href="http://www.sqlite.org/cvstrac/wiki">SQLite Wiki</a>.
|
||||
<p>
|
||||
|
@ -1,14 +1,19 @@
|
||||
#
|
||||
# Run this Tcl script to generate the vdbe.html file.
|
||||
#
|
||||
set rcsid {$Id: vdbe.tcl,v 1.13 2004/11/10 05:48:57 danielk1977 Exp $}
|
||||
set rcsid {$Id: vdbe.tcl,v 1.14 2005/03/12 15:55:11 drh Exp $}
|
||||
source common.tcl
|
||||
header {The Virtual Database Engine of SQLite}
|
||||
puts {
|
||||
<h2>The Virtual Database Engine of SQLite</h2>
|
||||
|
||||
<blockquote><b>
|
||||
This document describes the virtual machine used in SQLite version 2.8.0.
|
||||
This document describes the virtual machine used in SQLite version 2.8.0.
|
||||
The virtual machine in SQLite version 3.0 and 3.1 is very similar in
|
||||
concept but many of the opcodes have changed and the algorithms are
|
||||
somewhat different. Use this document as a rough guide to the idea
|
||||
behind the virtual machine in SQLite version 3, not as a reference on
|
||||
how the virtual machine works.
|
||||
</b></blockquote>
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user