mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Updates to the repository README.md file.
FossilOrigin-Name: 7bfd3ab7996bf869eb2705495f3f2cd8bd6d1f4d029a1f26041e95049a9bfd3b
This commit is contained in:
47
README.md
47
README.md
@ -34,7 +34,9 @@ archives as follows:
|
|||||||
If you do want to use Fossil to check out the source tree,
|
If you do want to use Fossil to check out the source tree,
|
||||||
first install Fossil version 2.0 or later.
|
first install Fossil version 2.0 or later.
|
||||||
(Source tarballs and precompiled binaries available
|
(Source tarballs and precompiled binaries available
|
||||||
[here](https://www.fossil-scm.org/fossil/uv/download.html).)
|
[here](https://www.fossil-scm.org/fossil/uv/download.html). Fossil is
|
||||||
|
a stand-alone program. To install, simply download or build the single
|
||||||
|
executable file and put that file someplace on your $PATH.)
|
||||||
Then run commands like this:
|
Then run commands like this:
|
||||||
|
|
||||||
mkdir ~/sqlite
|
mkdir ~/sqlite
|
||||||
@ -106,19 +108,22 @@ The makefiles also require AWK.
|
|||||||
|
|
||||||
## Source Code Tour
|
## Source Code Tour
|
||||||
|
|
||||||
Most of the core source files are in the **src/** subdirectory. But
|
Most of the core source files are in the **src/** subdirectory. The
|
||||||
src/ also contains files used to build the "testfixture" test harness;
|
**src/** folder also contains files used to build the "testfixture" test
|
||||||
those file all begin with "test". And src/ contains the "shell.c" file
|
harness. The names of the source files used "by testfixture" all begin
|
||||||
which is the main program for the "sqlite3.exe" command-line shell and
|
with "test".
|
||||||
the "tclsqlite.c" file which implements the bindings to SQLite from the
|
The **src/** also contains the "shell.c" file
|
||||||
Tcl programming language. (Historical note: SQLite began as a Tcl
|
which is the main program for the "sqlite3.exe"
|
||||||
|
[command-line shell](https://sqlite.org/cli.html) and
|
||||||
|
the "tclsqlite.c" file which implements the
|
||||||
|
[TCL bindings](https://sqlite.org/tclsqlite.html) for SQLite.
|
||||||
|
(Historical note: SQLite began as a Tcl
|
||||||
extension and only later escaped to the wild as an independent library.)
|
extension and only later escaped to the wild as an independent library.)
|
||||||
|
|
||||||
Test scripts and programs are found in the **test/** subdirectory.
|
Test scripts and programs are found in the **test/** subdirectory.
|
||||||
There are other test suites for SQLite (see
|
Addtional test code is found in other source repositories.
|
||||||
[How SQLite Is Tested](http://www.sqlite.org/testing.html))
|
See [How SQLite Is Tested](http://www.sqlite.org/testing.html) for
|
||||||
but those other test suites are
|
additional information.
|
||||||
in separate source repositories.
|
|
||||||
|
|
||||||
The **ext/** subdirectory contains code for extensions. The
|
The **ext/** subdirectory contains code for extensions. The
|
||||||
Full-text search engine is in **ext/fts3**. The R-Tree engine is in
|
Full-text search engine is in **ext/fts3**. The R-Tree engine is in
|
||||||
@ -142,7 +147,7 @@ manually-edited files and automatically-generated files.
|
|||||||
The SQLite interface is defined by the **sqlite3.h** header file, which is
|
The SQLite interface is defined by the **sqlite3.h** header file, which is
|
||||||
generated from src/sqlite.h.in, ./manifest.uuid, and ./VERSION. The
|
generated from src/sqlite.h.in, ./manifest.uuid, and ./VERSION. The
|
||||||
[Tcl script](http://www.tcl.tk) at tool/mksqlite3h.tcl does the conversion.
|
[Tcl script](http://www.tcl.tk) at tool/mksqlite3h.tcl does the conversion.
|
||||||
The manifest.uuid file contains the SHA1 hash of the particular check-in
|
The manifest.uuid file contains the SHA3 hash of the particular check-in
|
||||||
and is used to generate the SQLITE\_SOURCE\_ID macro. The VERSION file
|
and is used to generate the SQLITE\_SOURCE\_ID macro. The VERSION file
|
||||||
contains the current SQLite version number. The sqlite3.h header is really
|
contains the current SQLite version number. The sqlite3.h header is really
|
||||||
just a copy of src/sqlite.h.in with the source-id and version number inserted
|
just a copy of src/sqlite.h.in with the source-id and version number inserted
|
||||||
@ -175,6 +180,13 @@ that maps SQL language keywords (ex: "CREATE", "SELECT", "INDEX", etc.) into
|
|||||||
the numeric codes used by the parse.c parser. The keywordhash.h file is
|
the numeric codes used by the parse.c parser. The keywordhash.h file is
|
||||||
generated by a C-language program at tool mkkeywordhash.c.
|
generated by a C-language program at tool mkkeywordhash.c.
|
||||||
|
|
||||||
|
Th3 **pragma.h** header file contains various definitions used to parse
|
||||||
|
and implement the PRAGMA statements. The header is generated by a
|
||||||
|
script **tool/mkpragmatab.tcl**. If you want to add a new PRAGMA, edit
|
||||||
|
the **tool/mkpragmatab.tcl** file to insert the information needed by the
|
||||||
|
parser for your new PRAGMA, then run the script to regenerate the
|
||||||
|
**pragma.h** header file.
|
||||||
|
|
||||||
### The Amalgamation
|
### The Amalgamation
|
||||||
|
|
||||||
All of the individual C source code and header files (both manually-edited
|
All of the individual C source code and header files (both manually-edited
|
||||||
@ -192,7 +204,7 @@ subdirectory (using the equivalent of "make target_source") then the
|
|||||||
tool/mksqlite3c.tcl script is run to copy them all together in just the
|
tool/mksqlite3c.tcl script is run to copy them all together in just the
|
||||||
right order while resolving internal "#include" references.
|
right order while resolving internal "#include" references.
|
||||||
|
|
||||||
The amalgamation source file is more than 100K lines long. Some symbolic
|
The amalgamation source file is more than 200K lines long. Some symbolic
|
||||||
debuggers (most notably MSVC) are unable to deal with files longer than 64K
|
debuggers (most notably MSVC) are unable to deal with files longer than 64K
|
||||||
lines. To work around this, a separate Tcl script, tool/split-sqlite3c.tcl,
|
lines. To work around this, a separate Tcl script, tool/split-sqlite3c.tcl,
|
||||||
can be run on the amalgamation to break it up into a single small C file
|
can be run on the amalgamation to break it up into a single small C file
|
||||||
@ -209,14 +221,15 @@ See the [architectural description](http://www.sqlite.org/arch.html)
|
|||||||
for details. Other documents that are useful in
|
for details. Other documents that are useful in
|
||||||
(helping to understand how SQLite works include the
|
(helping to understand how SQLite works include the
|
||||||
[file format](http://www.sqlite.org/fileformat2.html) description,
|
[file format](http://www.sqlite.org/fileformat2.html) description,
|
||||||
the [virtual machine](http://www.sqlite.org/vdbe.html) that runs
|
the [virtual machine](http://www.sqlite.org/opcode.html) that runs
|
||||||
prepared statements, the description of
|
prepared statements, the description of
|
||||||
[how transactions work](http://www.sqlite.org/atomiccommit.html), and
|
[how transactions work](http://www.sqlite.org/atomiccommit.html), and
|
||||||
the [overview of the query planner](http://www.sqlite.org/optoverview.html).
|
the [overview of the query planner](http://www.sqlite.org/optoverview.html).
|
||||||
|
|
||||||
Unfortunately, years of effort have gone into optimizating SQLite, both
|
Years of effort have gone into optimizating SQLite, both
|
||||||
for small size and high performance. And optimizations tend to result in
|
for small size and high performance. And optimizations tend to result in
|
||||||
complex code. So there is a lot of complexity in the SQLite implementation.
|
complex code. So there is a lot of complexity in the current SQLite
|
||||||
|
implementation. It will not be the easiest library in the world to hack.
|
||||||
|
|
||||||
Key files:
|
Key files:
|
||||||
|
|
||||||
@ -267,6 +280,6 @@ describes its purpose and role within the larger system.
|
|||||||
## Contacts
|
## Contacts
|
||||||
|
|
||||||
The main SQLite webpage is [http://www.sqlite.org/](http://www.sqlite.org/)
|
The main SQLite webpage is [http://www.sqlite.org/](http://www.sqlite.org/)
|
||||||
with geographically distributed backup servers at
|
with geographically distributed backups at
|
||||||
[http://www2.sqlite.org/](http://www2.sqlite.org) and
|
[http://www2.sqlite.org/](http://www2.sqlite.org) and
|
||||||
[http://www3.sqlite.org/](http://www3.sqlite.org).
|
[http://www3.sqlite.org/](http://www3.sqlite.org).
|
||||||
|
14
manifest
14
manifest
@ -1,9 +1,9 @@
|
|||||||
C In\sLSM,\savoid\scalling\sthe\sVFS\sxTestLock\smethod\sto\stest\sfor\sa\slock\sthat\nconflicts\swith\sone\sheld\sby\sthe\ssame\sprocess.\sThe\sresults\sof\ssuch\sa\scall\sare\nconsidered\sundefined\s(since\sthey\sare\sdifferent\sunder\swin32\sand\sposix).
|
C Updates\sto\sthe\srepository\sREADME.md\sfile.
|
||||||
D 2017-07-10T18:33:41.229
|
D 2017-07-10T18:52:29.772
|
||||||
F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
|
F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc 20850e3e8d4d4791e0531955852d768eb06f24138214870d543abb1a47346fba
|
F Makefile.msc 20850e3e8d4d4791e0531955852d768eb06f24138214870d543abb1a47346fba
|
||||||
F README.md 2b15fae33852f2f53996774c21fb41e1d94181c4401a0e43ac93e11f2cc901b9
|
F README.md 7149d20d5301d984700f873ddcfdff2b1e500e130b7731945519ab656a7c1ddd
|
||||||
F VERSION 87f1498f27e398bce3da2fa8125c9879a38ed9d87e4b5fb922b351de1e25cadb
|
F VERSION 87f1498f27e398bce3da2fa8125c9879a38ed9d87e4b5fb922b351de1e25cadb
|
||||||
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
|
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
|
||||||
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
|
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
|
||||||
@ -1628,7 +1628,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P bde431b1e332feaeb516dc46d180e2b2f42820c471feed7eda89452ada898dc9
|
P a82a9bea624caf6b24d8e3f3c596817968b258f06e54288022f6df8226281057
|
||||||
R 71f00994c33b502fb1928c2468689120
|
R e665dbe909654ef048a5f33418983d75
|
||||||
U dan
|
U drh
|
||||||
Z 83fb5bcc897af021df9d77183bfae0e8
|
Z cc6da2795dbc87bb104a139fac1657c5
|
||||||
|
@ -1 +1 @@
|
|||||||
a82a9bea624caf6b24d8e3f3c596817968b258f06e54288022f6df8226281057
|
7bfd3ab7996bf869eb2705495f3f2cd8bd6d1f4d029a1f26041e95049a9bfd3b
|
Reference in New Issue
Block a user