Disclaimed copyright. Preparing for release 2.0. (CVS 250)

FossilOrigin-Name: 4e926efe2b59adfec4086eb1d2ba830238facb4c
This commit is contained in:
drh 2001-09-16 00:13:26 +00:00
parent 872ff86f2c
commit b19a2bc603
77 changed files with 768 additions and 2079 deletions

340
COPYRIGHT
View File

@ -1,340 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@ -211,9 +211,12 @@ testfixture: $(TOP)/src/tclsqlite.c libsqlite.a $(TESTSRC)
$(TESTSRC) $(TOP)/src/tclsqlite.c \
libsqlite.a $(LIBTCL)
test: testfixture sqlite
fulltest: testfixture sqlite
./testfixture $(TOP)/test/all.test
test: testfixture sqlite
./testfixture $(TOP)/test/quick.test
sqlite.tar.gz:
pwd=`pwd`; cd $(TOP)/..; tar czf $$pwd/sqlite.tar.gz sqlite

View File

@ -103,8 +103,7 @@ printed. Like this:
340 states, 2026 parser table entries, 0 conflicts
</pre>
Finally, the ``-x'' option causes Lemon to print its version number
and copyright information
and then stop without attempting to read the grammar or generate a parser.</p>
and then stops without attempting to read the grammar or generate a parser.</p>
<h3>The Parser Interface</h3>

View File

@ -1,6 +1,6 @@
The SQL database used for ACD contains 105 tables and indices implemented
in GDBM. The following are statistics on the sizes of keys and data
within these tables and indices.
An SQLite (version 1.0) database was used in a large military application
where the database contained 105 tables and indices. The following is
a breakdown on the sizes of keys and data within these tables and indices:
Entries: 967089
Size: 45896104

154
manifest
View File

@ -1,103 +1,99 @@
C Separate\scolumns\sin\skeys\susing\snulls\sinstead\sof\stabs.\s(CVS\s249)
D 2001-09-15T14:43:39
F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
F Makefile.in 6f4536369ce59b0ee7941f743c65c2c7f703ad2a
C Disclaimed\scopyright.\s\sPreparing\sfor\srelease\s2.0.\s(CVS\s250)
D 2001-09-16T00:13:26
F Makefile.in 81e1c96b0d148042d851b40cbd3e26ecc5472aa6
F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
F VERSION 5148a9efa1b036cfd2fb64b3d15ff0455211a8e9
F configure aad857a97ca28a584228869186eb4cd7dbebbb3a x
F configure.in 0000c0d62beb47cae1d2d81a197c7fe6efd56a45
F doc/lemon.html 3ddeef6e5dee69a2bb6f5d8e4975b58f2fd8e11c
F doc/report1.txt 734cbae63b1310cc643fe5e9e3da1ab55a79b99e
F notes/notes1.txt b7c0812b704a022e88c621146ae50955c923d464
F notes/notes2.txt 7e3fafd5e25906c1fe1e95f13b089aa398ca403e
F notes/notes2b.txt 1c17a5b7f6b44a75cd3eb98ed2c24db1eefb06c3
F notes/notes3.txt 71e47be517e3d2578b3b9343a45b772d43b7ba16
F doc/lemon.html f0f682f50210928c07e562621c3b7e8ab912a538
F doc/report1.txt a031aaf37b185e4fa540223cb516d3bccec7eeac
F src/TODO af7f3cab0228e34149cf98e073aa83d45878e7e6
F src/btree.c 56a7d11c558bda94611eb62f91744c2c4dc46d08
F src/btree.h a3d9c20fa876e837680745ac60500be697026b7b
F src/build.c 8359e553db8138d09f44957e2d1bcc9b8720117b
F src/delete.c c84b5a26e29fda3c3de51345073a76bb161271fd
F src/expr.c bcd91d0487c71cfa44413a46efe5e2c2244901b6
F src/insert.c 750a44c0d205779b2c42b0791a163937cfb00e74
F src/main.c 73be8d00a8a9bbec715a6260840a19020a074090
F src/btree.c 39da79b5a656870aa3ab72d40374fb38bd1bd12d
F src/btree.h fcb08daab59fd81023204ac71955233e218443c2
F src/build.c c311b8d11bfd44a9b260c1a53946e2e091138e23
F src/delete.c ca7ca9bf8b613730821c4a755030d1a020b5e067
F src/expr.c 343a515a4abaf60e9e26c7412aa8c43fd3eae97d
F src/insert.c b34860ea58525754f18bde652f74161295ca2455
F src/main.c 1523c790c243f886271e0c45eaa487951793cd46
F src/md5.c 52f677bfc590e09f71d07d7e327bd59da738d07c
F src/pager.c 048c20ac85485ca87ed33d6b7711375a3444f817
F src/pager.h 61573be9fbbb658997bea92b26173b441b9fb3c3
F src/parse.y 8b30e072208c3dfabd97c7d06f0924f194919533
F src/pager.c 3871a5d34808b703e2d8ae2799fda208aa204051
F src/pager.h a0d4c5ae271914aa07b62aee0707997d6932b6ca
F src/parse.y 2bcf47bb8e6afd8bc10aebd555fa07b73905bee4
F src/printf.c b1e22a47be8cdf707815647239991e08e8cb69f9
F src/random.c b626726c4f0066610739e52e7431adae7ccd9651
F src/select.c f1673b4d06c24665097faf28d76c4533bce18b84
F src/shell.c 1fcdf8c4180098bcfdee12501e01b4c8eb21d726
F src/random.c 707529bcda5c7382dc32bd0545e0217f90f70e29
F src/select.c 7d90a6464906419fde96c0707a4cf4f3280db318
F src/shell.c 8e573138074e0b9526fca59b3eac22bdf18ecc03
F src/shell.tcl 27ecbd63dd88396ad16d81ab44f73e6c0ea9d20e
F src/sqlite.h.in 7446bbd8c4f519b78614893d517b405c4dfb10a4
F src/sqliteInt.h cba5f573a4ceb742e864cc4c19abc7062775517f
F src/table.c adcaf074f6c1075e86359174e68701fa2acfc4d6
F src/tclsqlite.c d328970848c028e13e61e173bef79adcc379568a
F src/test1.c abb3cb427e735ae87e6533f5b3b7164b7da91bc4
F src/test2.c b3177e061fabd20d48e4b1b4bca610a0d2b28670
F src/test3.c 1fc103f198cbd0447d1a12c3ce48795755ec1a53
F src/tokenize.c 2d4d1534b321422384de0f311d417ffce14fedc6
F src/update.c 8a9d514c7f3bfe5d99fe3dfc1ad92ed3e9daea47
F src/util.c fedf96bcda329ff56e0eff7bc212c99d29ad0397
F src/vdbe.c 5fac42c8de36778c980da02048433bc992a3c57c
F src/vdbe.h b9d60d90aeb3acb5dbc1cdac6b0201991921b272
F src/where.c b831b506e17cb592d9781ed066f3459cef768318
F test/all.test 5cefdb035b45639ddbb9f80324185b0f0a9ebda2
F test/btree.test 5e1eeb03cda22161eec827dc5224ce6c500eaaf9
F test/btree2.test 061365dfc2a6cd784e17a014b67b277a4cd374ee
F test/copy.test b77a1214bd7756f2849d5c4fa6e715c0ff0c34eb
F test/delete.test 50b9b1f06c843d591741dba7869433a105360dbf
F test/expr.test 80bf8f0e9aa6b9c35bf97ce5d603a28381168d8a
F test/func.test ac3def2a673d1042750ae1a4ad1768bb7c7ae90b
F test/in.test ea48016c4fcc479d315932ae2b8568146686ffaf
F test/index.test 73f34caeab4751e48dc337e504199b934e06b12d
F test/insert.test dbd3bd189edb61fddbe66c236694ef23352429f1
F test/insert2.test 5177c1889ee9fe238f9a021aa927fe2b59aeaf4b
F test/lock.test 9bac462a198943f73fd4b877496dff3e33f76829
F test/main.test 54527ab3195d68d15655a947d1af1818148dfc95
F test/malloc.test 3daa97f6a9577d8f4c6e468b274333af19ce5861
F test/pager.test 5b9d0958c85139087d6e53569c447af64bed252e
F test/printf.test 4c71871e1a75a2dacb673945fc13ddb30168798f
F test/quote.test 40a3164af8456933a81312803fa8cdb21b205c12
F test/rowid.test 2329d6c7cfb62293bfb219b33542f894d0d6917a
F test/select1.test 223507655cdb4f9901d83fa7f5c5328e022c211f
F test/select2.test d47c78fda07a088985b688dde42c96b46165a87f
F test/select3.test a9234b8424b6c6d71de534f43b91ade9be68e9cc
F test/select4.test cb5374d7c87680e294ac749307459a5cc547609d
F test/select5.test e2b9d51d88cbd6c307c2c05b0ef55fe7ba811ac2
F test/sort.test 838cd862642ed9a2c47e1a17b5c33da452b4552e
F test/subselect.test bf8b251a92fb091973c1c469ce499dc9648a41d5
F test/table.test a882150e82ef01a869cae2d35522145992258502
F test/tableapi.test 4778414470ba150983d03b9858334effe720c2e0
F test/tclsqlite.test d2aa55926874783b2401f0146e839f773c6796e1
F test/tester.tcl fa79c7aeaf4a769ff213864143fa2e27c61bb9c0
F test/trans.test 1727a0ebf0f3fb6714fcdc016cb9655b55dddbaa
F test/update.test 72c0c93310483b86dc904a992220c5b84c7ce100
F test/vacuum.test 135b57e0947ed65e92cf7e1eab64bcefd8cf9519
F test/where.test 755957829c493b1b7ad1ecb27d6c782131a6b3d5
F tool/lemon.c e007bfdbc79a51a4cd7c8a5f81f517cebd121150
F tool/lempar.c 276d8ab73e2ff99da5333c035ee81c78d829bb90
F src/sqlite.h.in 689401a6cfb4c2344e67d80fa6bb0d74c87e6e31
F src/sqliteInt.h 2e118ca917aa1b91932f9b9b6f36128218c73963
F src/table.c abd0adbe0fee39d995287b3bcccd908d174dfcac
F src/tclsqlite.c 04a35d04f06046acc3944121dc6c36717f7f36d5
F src/test1.c 3892caa5372789a6d17329dd595724e1f06cb6de
F src/test2.c 0168b39225b768cfdadd534406f9dec58c27879e
F src/test3.c f46bad555db7a6a25be332a96ac99e4d68a1b0c5
F src/tokenize.c 2adf0568edf41b3d3c2fcb541ac49bd6e662da0c
F src/update.c a1952ad5d53379fa2b2d12efae5993ddb85a1ddb
F src/util.c a09c3c12aa0259c12e7385313f527895ba3cdbf9
F src/vdbe.c 33dcb7068dc6d80f7eb699922c6749abb32bf75e
F src/vdbe.h 900b59b46afdfb9c048a2a31a4478f380ab8504e
F src/where.c db42a5abdef686b4c3e1b51d0f85a6f8926521e5
F test/all.test a2320eb40b462f25bd3e33115b1cabf3791450dd
F test/btree.test bb1d1caf834aa22a208ce6cc7d8d8bd0e106cd59
F test/btree2.test ddc13a8de33461391da8403ded3e6b091f08dab4
F test/copy.test 768e6f1701a07d08090e1ca7f7dcce0a7a72b43e
F test/delete.test 5ebb114582457428b3e0e30b21b477fedcb85609
F test/expr.test b3475005ea19d53bf8c4573fb6e4a4498be5b434
F test/func.test dfee65686b8ba06071c2f007243a25c96ce82cf2
F test/in.test 9323681388be301dc73f370b4cd62c5a33f79d1e
F test/index.test 9a03f1944916b0583486f87c60571f2dee2b5d29
F test/insert.test a5c122aa726f1cef6f07d6767e8fd6f220994c11
F test/insert2.test 252d7130d8cc20f649b31a4f503cd87e660abda8
F test/lock.test 5b4d969ab92c88f8dc10d1b870a2e5fe51ee7f5f
F test/main.test 085ece17913a487caacbc0a392638c958c83a75d
F test/malloc.test f1400a8d002eb96f1ca0a34abe56d2ab3e324740
F test/pager.test 59bbc4e3d489529ed33db6e15595789e51056077
F test/printf.test 93ecd43cc48e863a325560f36c3b2741f5fe0308
F test/quick.test b6ec50f808efc06595fd324bf4f3fabadb9c7e9c
F test/quote.test 286db944717afa9a9bf829dd85e59185c65d5435
F test/rowid.test b6ce03dd39523b0f213fb9b05b5d544f73f002ce
F test/select1.test e0c3ff05f44233cde7918cb22ba4be05ea7a08ec
F test/select2.test f91c903e2bab0e9d45274855a981eebf846d5e32
F test/select3.test 5e1fe8e5a4e63fb2827ab3b89527e0fd4ae35259
F test/select4.test 29a2ffb187f3d8b6ca42a0a6b619e9cabe12e228
F test/select5.test 00a240e3311b6c4ff0f27a252ad33811211fa8d8
F test/sort.test 462c1161eee1abaa7cc93990e0b34d5fdb70ce19
F test/subselect.test 335d3dad8d585726c447dfee8d9c4f7383c76b78
F test/table.test 52fdca1632580fb638c7b7dd14f4d37ecc09f994
F test/tableapi.test 162840153191a91a7dce6395f2334f9aef713b37
F test/tclsqlite.test a57bb478d7e9f0b2c927f92e161f391e2896631a
F test/tester.tcl 4d93d04bb43c5936f33d30df82d2801b519df74e
F test/trans.test 097ef854f8060bba2d53d7c4ac31eadf75342485
F test/update.test b320ea22899e80b32b4d21c54591eb7a6ba4d6bd
F test/vacuum.test 8acf8669f3b627e54149b25165b034aa06c2432e
F test/where.test 43d5ac94da3f3722375307f948884dc79b326a91
F tool/lemon.c 5533b63e5cdbb1efc939abac3c2f4f37ac839488
F tool/lempar.c 9b604e6a8b3d55c0b9cbcb130a7302fb8bafe2b9
F tool/memleak.awk a0a11dd84bf4582acc81c3c61271021ae49b3f15
F tool/opNames.awk 5ba1f48aa854ee3b7c3d2b54233665bc3e649ea2
F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c
F tool/renumberOps.awk 6d067177ad5f8d711b79577b462da9b3634bd0a9
F tool/report1.txt 9eae07f26a8fc53889b45fc833a66a33daa22816
F www/arch.fig 4f246003b7da23bd63b8b0af0618afb4ee3055c8
F www/arch.png 8dae0766d42ed3de9ed013c1341a5792bcf633e6
F www/arch.tcl a40380c1fe0080c43e6cc5c20ed70731511b06be
F www/arch.fig 468adec4c4d7ef70fdc0a9e74e3afc86f440a40f
F www/arch.png ce828ead98b46684937972aac17cd6569a2feb20
F www/arch.tcl f5d76cea4feb997c3a474191cbe4fa52c8847ad6
F www/c_interface.tcl ddca19005c47dd5a15882addc02fff5de83d8ed9
F www/changes.tcl a805374f79bba9a77fd88516163681dab323b5d0
F www/changes.tcl 0a791dbf5af35d7adde6fcce8465829d599f000e
F www/crosscompile.tcl c99efacb3aefaa550c6e80d91b240f55eb9fd33e
F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
F www/fileformat.tcl cfb7fba80b7275555281ba2f256c00734bcdd1c9
F www/index.tcl 199abaf346d5fed6cf5b462a327faae39fb117b9
F www/index.tcl a9c1bfea2e854856d9cb83a0cf850d657cd92588
F www/lang.tcl 0969ba9f13b3555e54ccdb8ec462dee2de0bf223
F www/mingw.tcl fc5f4ba9d336b6e8c97347cc6496d6162461ef60
F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f
F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f
F www/tclsqlite.tcl 06f81c401f79a04f2c5ebfb97e7c176225c0aef2
F www/vdbe.tcl 0c8aaa529dd216ccbf7daaabd80985e413d5f9ad
P 8fdec4d8b6043471f21235bc8918c9a8d838f508
R e83f8668f9cad78aebdc309129b17220
P 8e2f3f751ea342372c94977ff27baaff5126009a
R df9c4668fa3229b042e38f43df406b89
U drh
Z a7c29380928c91f61d2d3ff358c4cb25
Z 7f44bdd57bad1d607db8e180754eb53f

View File

@ -1 +1 @@
8e2f3f751ea342372c94977ff27baaff5126009a
4e926efe2b59adfec4086eb1d2ba830238facb4c

View File

@ -1,55 +0,0 @@
unlocked -> read
1. If the journal file exists
A. Open the journal file for exclusive access
i) return SQLITE_BUSY
B. Get a write lock on the database
i) close the journal file
ii) return SQLITE_PROTOCOL_ERROR
C. playback the journal
D. close and delete the journal file
E. drop the write lock on the database
2. Get a read lock on the database file.
A. return SQLITE_BUSY
3. return SQLITE_OK
read -> unlocked
1. Drop the read lock on the database file
2. Invalidate all pages in the cache
3. return SQLITE_OK
read -> write
1. Create the journal file and open for exclusive access
A. return SQLITE_BUSY
2. Drop the read lock on the database
3. Get a write lock on the database
A. Get a read lock on the database
i) return SQLITE_PROTOCOL_ERROR
B. Delete the journal
C. return SQLITE_BUSY
4. return SQLITE_OK
write -> read (commit)
1. Sync the journal
2. Write all dirty pages
A. playback journal
B. Reload or invalidate all pages in cache
3. Sync the database
4. Drop the write lock on the database
5. Get a read lock on the database
A. return SQLITE_PROTOCOL_ERROR
6. Delete the journal
7. return SQLITE_OK
write -> read (rollback)
1. Playback the journal
2. Drop the write lock on the database
3. Get a read lock on the database
A. return SQLITE_PROTOCOL_ERROR
4. Delete the journal
5. Reload or invalidate all pages in cache
6. SQLITE_FULL

View File

@ -1,70 +0,0 @@
How to do a B-Tree insert:
insert(data){
create a new cursor
move cursor to the entry nearest data
if( cursor.key == keyof(data) ){
replace cursor.data with dataof(data)
return
}
childpg = NULL
add_to_page(cursor, data+childpg)
delete the cursor
}
add_to_page(cursor, data+childpg ){
childpg->parent = cursor.page
if( data+childpg fits on cursor.page ){
insert data+childpg at cursor
return
}
if( page==root ){
split page+(data+childpg) into newpage1, center, newpage2
cursor.page = &newpage1 + center + &newpage2;
newpage1->parent = cursor.page
newpage2->parent = cursor.page
return
}
if( move_some_data_left || move_some_data_right ){
insert data+childpg at cursor
return
}
split page+(data+childpg) into page, center, newpage
newpage->parent = page->parent
move cursor to insertion point of center in parent page.
add_to_page(cursor, center, (newpage));
}
How to do a B-Tree delete:
delete(entry){
if( entry is not a leaf ){
p = predecessor of entry
// note: if entry is not a leaf then p must
// exist and must be a leaf
free(entry.overflowptr)
resize entry so that is is big enough to hold p.payload
entry.payload = p.payload
entry.overflowptr = p.overflowptr
p.overflowptr = NULL
delete(p)
return
}
unlink entry from its page
refill(page containing entry)
}
refill(page){
if( page is more than half full ) return
if( page is the root and contains no entries ){
copy the one child page into this page thus reducing
the height of the tree by one.
return
}
if( able to merge page with neighbors ){
do the merge
refill(parent page)
return
}
borrow entrys from neighbors
}

View File

@ -1,26 +0,0 @@
add_to_page(cursor, payload, child){
if( fits-on-current-page ){
insert (child,payload) into cursor
return
}
if( cursor is root page ){
split cursor+(child,payload) into page1, center, page2
set cursor page to page1,center,page2
return
}
if( move_some_data_left || move_some_data_right ){
add (child,payload) to cursor
return
}
split cursor+(child,payload) into self, center, page2
move_up(cursor)
add_to_page(cursor, center, page2)
}
split(in_page, payload, child_pgno, out_page1, center_payload, out_page2){
// It might be that in_page==out_page1
}

View File

@ -1,165 +0,0 @@
The Proposed New SQLite 2.0 Interface design. (April 16, 2001)
Primary access routines:
Control functions:
sqlite *sqlite_open(const char *zFilename);
int sqlite_compile(sqlite*, const char *zSql);
int sqlite_next(sqlite*);
int sqlite_abort(sqlite*);
int sqlite_finish(sqlite*);
sqlite *sqlite_dup(sqlite*);
int sqlite_close(sqlite*);
Access functions:
int sqlite_status(sqlite*);
char *sqlite_error_text(sqlite*);
int sqlite_column_count(sqlite*);
char **sqlite_column_names(sqlite*);
char **sqlite_values(sqlite*);
const char sqlite_version[];
const char sqlite_encoding[];
Secondary access routines:
Control functions:
int sqlite_complete(const char *);
char *sqlite_mprintf(const char *zFormat, ...)
char *sqlite_vmprintf(const char *zFormat, va_list ap);
int sqlite_compile_printf(sqlite*, const char *zFormat, ...);
int sqlite_compile_vprintf(sqlite*, const char *zFormat, va_list ap);
int sqlite_eval(sqlite*, const char *zSql);
int sqlite_retry(sqlite*);
int sqlite_eval_printf(sqlite*, const char *zFormat, ...);
int sqlite_eval_vprintf(sqlite*, const char *zFormat, va_list ap);
int sqlite_busy_handler(sqlite*, int(*)(void*,const char*,int), void*);
int sqlite_busy_timeout(sqlite*, int ms);
Access functions:
int sqlite_row_count(sqlite*);
char ***sqlite_rows(sqlite*, int iRow);
Usage examples:
Getting an entire result table in one go:
sqlite *p = sqlite_open("ex.db");
sqlite_eval(p, "SELECT * FROM table_one");
for(i=0; i<sqlite_row_count(p); i++){
if( i>0 ) printf("\n");
for(j=0; j<sqlite_column_count(p); j++){
printf("%s = %s\n", sqlite_column_names(p)[j], sqlite_row(p,i)[j]);
}
}
sqlite_close(p);
Getting one row at a time:
sqlite *p = sqlite_open("ex.db");
sqlite_compile(p, "SELECT * FROM table_one");
for(i=0; sqlite_next(p)==SQLITE_OK; i++ ){
if( i>0 ) printf("\n");
for(j=0; j<sqlite_column_count(p); j++){
printf("%s = %s\n", sqlite_column_names(p)[j], sqlite_values(p)[j];
}
}
sqlite_close(p);
Getting an entire result table with error and lock detection:
sqlite *p = sqlite_open("ex.db");
if( p==0 ){
fprintf(stderr,"out of memory");
return;
}
if( sqlite_status(p)!=SQLITE_OK ){
fprintf(stderr,"Error opening database: %s", sqlite_error_text(p));
sqlite_close(p);
return;
}
sqlite_busy_timeout(p, 5000);
sqlite_eval(p, "SELECT * FROM table_one");
if( sqlite_status(p)!=SQLITE_OK ){
fprintf(stderr,"Query error: %s\n", sqlite_error_text(p));
sqlite_close(p);
return;
}
for(i=0; i<sqlite_row_count(p); i++){
if( i>0 ) printf("\n");
for(j=0; j<sqlite_column_count(p); j++){
printf("%s = %s\n", sqlite_column_names(p)[j], sqlite_row(p,i)[j]);
}
}
sqlite_close(p);
Getting one row at a time with manual control of lock conflicts:
sqlite *p = sqlite_open("ex.db");
if( p==0 ){
fprintf(stderr,"out of memory");
return;
}
if( sqlite_status(p)!=SQLITE_OK ){
fprintf(stderr,"Error opening database: %s", sqlite_error_text(p));
sqlite_close(p);
return;
}
sqlite_compile(p, "SELECT * FROM table_one");
if( sqlite_status(p)!=SQLITE_OK ){
fprintf(stderr,"Query error: %s\n", sqlite_error_text(p));
sqlite_close(p);
return;
}
for(i=0; sqlite_status(p)==SQLITE_OK; i++ ){
for(j=0; j<50 && sqlite_next(p)==SQLITE_BUSY; j++){
usleep(100000);
}
if( sqlite_status(p)!=SQLITE_OK ) break;
if( i>0 ) printf("\n");
for(j=0; j<sqlite_column_count(p); j++){
printf("%s = %s\n", sqlite_column_names(p)[j], sqlite_values(p)[j];
}
}
sqlite_close(p);
TCL Interface
sqlite DB FILENAME ?MODE?
DB compile SQL
DB next
DB status
DB errortext
DB row VAR
DB argc
DB argv ?N?
DB table ?VAR?
DB columns ?N?
DB finish
DB abort
DB eval SQL ?VAR SCRIPT?
DB close
DB complete
DB timeout MS
DB busy SCRIPT
DB dup NEWDB
Primary access pattern:
sqlite *db = sqlite_open("testdb", 0644);
sqlite_compile(db, "SELECT * FROM sqlite_master");
while( sqlite_row(db, &argc, &argv)==SQLITE_OK ){
/* Do something with the row data in argc, argv */
}
sqlite_finish(db);
sqlite_close(db);
Alternative access pattern 1:
sqlite *db = sqlite_open("testdb", 0644);
sqlite_compile(db, "SELECT * FROM sqlite_master");
sqlite_table(db, &nrow, &ncolumn, &argv);
/* Do something with the matrix data in argv */
sqlite_finish(db);
sqlite_close(db);
Issues:
* If one query is in progress and we do sqlite_compile(), does
that abort the current query or return an error code?
* What happens here:
sqlite_compile(db, "SELECT a FROM t1; SELECT b,c FROM t2;");
sqlite_table(db, &nrow, &ncolumn, &argv);
What value is returned for nrow and ncolumn? Or is this an error?
Or maybe only the first table is returned?

View File

@ -1,27 +1,15 @@
/*
** Copyright (c) 2001 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** $Id: btree.c,v 1.28 2001/09/15 13:15:13 drh Exp $
** $Id: btree.c,v 1.29 2001/09/16 00:13:26 drh Exp $
**
** This file implements a external (disk-based) database using BTrees.
** For a detailed discussion of BTrees, refer to
@ -53,7 +41,7 @@
** database page. If the payload is larger than MX_LOCAL_PAYLOAD bytes
** then surplus bytes are stored on overflow pages. The payload for an
** entry and the preceding pointer are combined to form a "Cell". Each
** page has a smaller header which contains the Ptr(N+1) pointer.
** page has a small header which contains the Ptr(N+1) pointer.
**
** The first page of the file contains a magic string used to verify that
** the file really is a valid BTree database, a pointer to a list of unused
@ -74,7 +62,7 @@
*/
typedef unsigned int uptr;
/* There are already definedin sqliteInt.h...
/* There are already defined in sqliteInt.h...
** typedef unsigned int u32;
** typedef unsigned short int u16;
** typedef unsigned char u8;
@ -122,7 +110,8 @@ static const char zMagicHeader[] =
** problem.
**
** The number used was obtained at random and has no special
** significance.
** significance other than the fact that it represents a different
** integer on little-endian and big-endian machines.
*/
#define MAGIC 0xdae37528

View File

@ -1,30 +1,18 @@
/*
** Copyright (c) 2001 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This header file defines the interface that the sqlite B-Tree file
** subsystem.
**
** @(#) $Id: btree.h,v 1.13 2001/09/14 18:54:08 drh Exp $
** @(#) $Id: btree.h,v 1.14 2001/09/16 00:13:26 drh Exp $
*/
#ifndef _BTREE_H_
#define _BTREE_H_

View File

@ -1,29 +1,17 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains C code routines that are called by the parser
** when syntax rules are reduced. The routines in this file handle
** the following kinds of syntax:
** This file contains C code routines that are called by the SQLite parser
** when syntax rules are reduced. The routines in this file handle the
** following kinds of SQL syntax:
**
** CREATE TABLE
** DROP TABLE
@ -32,8 +20,12 @@
** creating expressions and ID lists
** COPY
** VACUUM
** BEGIN TRANSACTION
** COMMIT
** ROLLBACK
** PRAGMA
**
** $Id: build.c,v 1.35 2001/09/15 00:57:28 drh Exp $
** $Id: build.c,v 1.36 2001/09/16 00:13:26 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>

View File

@ -1,30 +1,18 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains C code routines that are called by the parser
** to handle DELETE FROM statements.
**
** $Id: delete.c,v 1.13 2001/09/15 00:57:29 drh Exp $
** $Id: delete.c,v 1.14 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"

View File

@ -1,30 +1,18 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions.
** for generating VDBE code that evaluates expressions in SQLite.
**
** $Id: expr.c,v 1.27 2001/09/14 03:24:25 drh Exp $
** $Id: expr.c,v 1.28 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"

View File

@ -1,30 +1,18 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains C code routines that are called by the parser
** to handle INSERT statements.
** to handle INSERT statements in SQLite.
**
** $Id: insert.c,v 1.17 2001/09/15 00:57:29 drh Exp $
** $Id: insert.c,v 1.18 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"

View File

@ -1,24 +1,12 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** Main file for the SQLite library. The routines in this file
@ -26,7 +14,7 @@
** other files are for internal use by SQLite and should not be
** accessed by users of the library.
**
** $Id: main.c,v 1.36 2001/09/15 00:57:29 drh Exp $
** $Id: main.c,v 1.37 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#if defined(HAVE_USLEEP) && HAVE_USLEEP

View File

@ -1,33 +1,24 @@
/*
** Copyright (c) 2001 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This is the implementation of the page cache subsystem.
** This is the implementation of the page cache subsystem or "pager".
**
** The page cache is used to access a database file. The pager journals
** all writes in order to support rollback. Locking is used to limit
** access to one or more reader or to one writer.
** The pager is used to access a database disk file. It implements
** atomic commit and rollback through the use of a journal file that
** is separate from the database file. The pager also implements file
** locking to prevent two processes from writing the same database
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: pager.c,v 1.19 2001/09/15 00:57:29 drh Exp $
** @(#) $Id: pager.c,v 1.20 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#include "pager.h"
@ -103,7 +94,7 @@ struct PgHdr {
** How big to make the hash table used for locating in-memory pages
** by page number. Knuth says this should be a prime number.
*/
#define N_PG_HASH 907
#define N_PG_HASH 373
/*
** A open page cache is an instance of the following structure.
@ -684,7 +675,16 @@ int sqlitepager_ref(void *pData){
}
/*
** Sync the journal and write all free dirty pages to the database file.
** Sync the journal and then write all free dirty pages to the database
** file.
**
** Writing all free dirty pages to the database after the sync is a
** non-obvious optimization. fsync() is an expensive operation so we
** want to minimize the number that occur. So after an fsync() is forced
** and we are free to write dirty pages back to the database, it is best
** to go ahead and do as much of that as possible to minimize the chance
** of having to do another fsync() later on. Writing dirty free pages
** in this way make database operations go up to 10 times faster.
*/
static int syncAllPages(Pager *pPager){
PgHdr *pPg;
@ -818,6 +818,19 @@ int sqlitepager_get(Pager *pPager, Pgno pgno, void **ppPage){
while( pPg->dirty && 0<cnt-- && pPg->pNextFree ){
pPg = pPg->pNextFree;
}
/* If we could not find a page that has not been used recently
** and which is not dirty, then sync the journal and write all
** dirty free pages into the database file, thus making them
** clean pages and available for recycling.
**
** We have to sync the journal before writing a page to the main
** database. But syncing is a very slow operation. So after a
** sync, it is best to write everything we can back to the main
** database to minimize the risk of having to sync again in the
** near future. That is way we write all dirty pages after a
** sync.
*/
if( pPg==0 || pPg->dirty ){
int rc = syncAllPages(pPager);
if( rc!=0 ){
@ -828,39 +841,6 @@ int sqlitepager_get(Pager *pPager, Pgno pgno, void **ppPage){
pPg = pPager->pFirst;
}
assert( pPg->nRef==0 );
#if 0
/**** Since putting in the call to syncAllPages() above, this code
** is no longer used. I've kept it here for historical reference
** only.
*/
/* If the page to be recycled is dirty, sync the journal and write
** the old page into the database. */
if( pPg->dirty ){
int rc;
assert( pPg->inJournal==1 );
assert( pPager->state==SQLITE_WRITELOCK );
if( pPager->needSync ){
rc = fsync(pPager->jfd);
if( rc!=0 ){
rc = sqlitepager_rollback(pPager);
*ppPage = 0;
if( rc==SQLITE_OK ) rc = SQLITE_IOERR;
return rc;
}
pPager->needSync = 0;
}
pager_seek(pPager->fd, (pPg->pgno-1)*SQLITE_PAGE_SIZE);
rc = pager_write(pPager->fd, PGHDR_TO_DATA(pPg), SQLITE_PAGE_SIZE);
if( rc!=SQLITE_OK ){
rc = sqlitepager_rollback(pPager);
*ppPage = 0;
if( rc==SQLITE_OK ) rc = SQLITE_FULL;
return rc;
}
}
#endif
assert( pPg->dirty==0 );
/* Unlink the old page from the free list and the hash table

View File

@ -1,31 +1,19 @@
/*
** Copyright (c) 2001 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This header file defines the interface that the sqlite page cache
** subsystem. The page cache subsystem reads and writes a file a page
** at a time and provides a journal for rollback.
**
** @(#) $Id: pager.h,v 1.10 2001/09/15 13:15:13 drh Exp $
** @(#) $Id: pager.h,v 1.11 2001/09/16 00:13:27 drh Exp $
*/
/*

View File

@ -1,24 +1,12 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains SQLite's grammar for SQL. Process this file
@ -26,7 +14,7 @@
** the parser. Lemon will also generate a header file containing
** numeric codes for all of the tokens.
**
** @(#) $Id: parse.y,v 1.29 2001/09/14 18:54:09 drh Exp $
** @(#) $Id: parse.y,v 1.30 2001/09/16 00:13:27 drh Exp $
*/
%token_prefix TK_
%token_type {Token}

View File

@ -1,24 +1,12 @@
/*
** Copyright (c) 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains code to implement a pseudo-random number
@ -27,7 +15,7 @@
** Random numbers are used by some of the database backends in order
** to generate random integer keys for tables or random filenames.
**
** $Id: random.c,v 1.4 2001/09/14 03:24:25 drh Exp $
** $Id: random.c,v 1.5 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#include <time.h>

View File

@ -1,30 +1,18 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains C code routines that are called by the parser
** to handle SELECT statements.
** to handle SELECT statements in SQLite.
**
** $Id: select.c,v 1.36 2001/09/14 03:24:25 drh Exp $
** $Id: select.c,v 1.37 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"

View File

@ -1,30 +1,18 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains code to implement the "sqlite" command line
** utility for accessing SQLite databases.
**
** $Id: shell.c,v 1.32 2001/09/13 13:46:57 drh Exp $
** $Id: shell.c,v 1.33 2001/09/16 00:13:27 drh Exp $
*/
#include <stdlib.h>
#include <string.h>

View File

@ -1,30 +1,18 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This header file defines the interface that the sqlite library
** This header file defines the interface that the SQLite library
** presents to client programs.
**
** @(#) $Id: sqlite.h.in,v 1.16 2001/09/15 13:15:13 drh Exp $
** @(#) $Id: sqlite.h.in,v 1.17 2001/09/16 00:13:27 drh Exp $
*/
#ifndef _SQLITE_H_
#define _SQLITE_H_
@ -109,9 +97,10 @@ typedef int (*sqlite_callback)(void*,int,char**, char**);
** to the callback function as its first parameter.
**
** The 2nd parameter to the callback function is the number of
** columns in the query result. The 3rd parameter is an array
** of string holding the values for each column. The 4th parameter
** is an array of strings holding the names of each column.
** columns in the query result. The 3rd parameter to the callback
** is an array of strings holding the values for each column.
** The 4th parameter to the callback is an array of strings holding
** the names of each column.
**
** The callback function may be NULL, even for queries. A NULL
** callback is not an error. It just means that no callback
@ -120,18 +109,18 @@ typedef int (*sqlite_callback)(void*,int,char**, char**);
** If an error occurs while parsing or evaluating the SQL (but
** not while executing the callback) then an appropriate error
** message is written into memory obtained from malloc() and
** *errmsg is made to point to that message. If errmsg==NULL,
** then no error message is ever written. The return value is
** SQLITE_ERROR if an error occurs. The calling function is
** responsible for freeing the memory that holds the error
** message.
** *errmsg is made to point to that message. The calling function
** is responsible for freeing the memory that holds the error
** message. If errmsg==NULL, then no error message is ever written.
**
** The return value is is SQLITE_OK if there are no errors and
** some other return code if there is an error. The particular
** return value depends on the type of error.
**
** If the query could not be executed because a database file is
** locked or busy, then this function returns SQLITE_BUSY. (This
** behavior can be modified somewhat using the sqlite_busy_handler()
** and sqlite_busy_timeout() functions below.) If the query could
** not be executed because a file is missing or has incorrect
** permissions, this function returns SQLITE_ERROR.
** and sqlite_busy_timeout() functions below.)
*/
int sqlite_exec(
sqlite*, /* An open database */
@ -153,7 +142,7 @@ int sqlite_exec(
#define SQLITE_NOMEM 6 /* A malloc() failed */
#define SQLITE_READONLY 7 /* Attempt to write a readonly database */
#define SQLITE_INTERRUPT 8 /* Operation terminated by sqlite_interrupt() */
#define SQLITE_IOERR 9 /* Disk full or other I/O error */
#define SQLITE_IOERR 9 /* Some kind of disk I/O error occurred */
#define SQLITE_CORRUPT 10 /* The database disk image is malformed */
#define SQLITE_NOTFOUND 11 /* Table or record not found */
#define SQLITE_FULL 12 /* Insertion failed because database is full */

View File

@ -1,29 +1,17 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** Internal interface definitions for SQLite.
**
** @(#) $Id: sqliteInt.h,v 1.50 2001/09/15 14:43:39 drh Exp $
** @(#) $Id: sqliteInt.h,v 1.51 2001/09/16 00:13:27 drh Exp $
*/
#include "sqlite.h"
#include "vdbe.h"

View File

@ -1,24 +1,12 @@
/*
** Copyright (c) 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains the sqlite_get_table() and sqlite_free_table()

View File

@ -1,29 +1,17 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** A TCL Interface to SQLite
**
** $Id: tclsqlite.c,v 1.22 2001/08/20 00:33:58 drh Exp $
** $Id: tclsqlite.c,v 1.23 2001/09/16 00:13:27 drh Exp $
*/
#ifndef NO_TCL /* Omit this whole file if TCL is unavailable */

View File

@ -1,31 +1,19 @@
/*
** Copyright (c) 2001 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** Code for testing the printf() interface to SQLite. This code
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
** $Id: test1.c,v 1.2 2001/04/11 14:28:43 drh Exp $
** $Id: test1.c,v 1.3 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#include "tcl.h"

View File

@ -1,31 +1,19 @@
/*
** Copyright (c) 2001 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** Code for testing the pager.c module in SQLite. This code
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
** $Id: test2.c,v 1.4 2001/08/20 00:33:58 drh Exp $
** $Id: test2.c,v 1.5 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#include "pager.h"

View File

@ -1,31 +1,19 @@
/*
** Copyright (c) 2001 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** Code for testing the btree.c module in SQLite. This code
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
** $Id: test3.c,v 1.10 2001/09/13 21:53:10 drh Exp $
** $Id: test3.c,v 1.11 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#include "pager.h"

View File

@ -1,24 +1,12 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** An tokenizer for SQL
@ -27,7 +15,7 @@
** individual tokens and sends those tokens one-by-one over to the
** parser for analysis.
**
** $Id: tokenize.c,v 1.21 2001/09/14 18:54:09 drh Exp $
** $Id: tokenize.c,v 1.22 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@ -305,7 +293,10 @@ int sqliteGetToken(const char *z, int *tokenType){
/*
** Run the parser on the given SQL string. The parser structure is
** passed in. An SQLITE_ status code.
** passed in. An SQLITE_ status code is returned. If an error occurs
** and pzErrMsg!=NULL then an error message might be written into
** memory obtained from malloc() and *pzErrMsg made to point to that
** error message. Or maybe not.
*/
int sqliteRunParser(Parse *pParse, char *zSql, char **pzErrMsg){
int nErr = 0;

View File

@ -1,30 +1,18 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This file contains C code routines that are called by the parser
** to handle UPDATE statements.
**
** $Id: update.c,v 1.13 2001/09/15 00:57:29 drh Exp $
** $Id: update.c,v 1.14 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"

View File

@ -1,24 +1,12 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** Utility functions used throughout sqlite.
@ -26,7 +14,7 @@
** This file contains functions for allocating memory, comparing
** strings, and stuff like that.
**
** $Id: util.c,v 1.24 2001/09/15 13:15:13 drh Exp $
** $Id: util.c,v 1.25 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#include <stdarg.h>

View File

@ -1,24 +1,12 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** The code in this file implements the Virtual Database Engine (VDBE)
@ -33,15 +21,16 @@
** ignore all three operands.
**
** Computation results are stored on a stack. Each entry on the
** stack is either an integer or a null-terminated string. An
** inplicit conversion from one type to the other occurs as necessary.
** stack is either an integer, a null-terminated string, a floating point
** number, or the SQL "NULL" value. An inplicit conversion from one
** type to the other occurs as necessary.
**
** Most of the code in this file is taken up by the sqliteVdbeExec()
** function which does the work of interpreting a VDBE program.
** But other routines are also provided to help in building up
** a program instruction by instruction.
**
** $Id: vdbe.c,v 1.69 2001/09/15 14:43:39 drh Exp $
** $Id: vdbe.c,v 1.70 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@ -1121,8 +1110,12 @@ case OP_Goto: {
/* Opcode: Halt * * *
**
** Exit immediately. All open DBs, Lists, Sorts, etc are closed
** Exit immediately. All open cursors, Lists, Sorts, etc are closed
** automatically.
**
** There is an implied Halt instruction inserted at the very end of
** every program. So a jump past the last instruction of the program
** is the same as executing Halt.
*/
case OP_Halt: {
pc = p->nOp-1;
@ -1185,6 +1178,8 @@ case OP_Pop: {
** The top of the stack is element 0. So the
** instruction "Dup 0 0 0" will make a copy of the
** top of the stack.
**
** Also see the Pull instruction.
*/
case OP_Dup: {
int i = p->tos - pOp->p1;
@ -1207,7 +1202,10 @@ case OP_Dup: {
** The P1-th element is removed from its current location on
** the stack and pushed back on top of the stack. The
** top of the stack is element 0, so "Pull 0 0 0" is
** a no-op.
** a no-op. "Pull 1 0 0" swaps the top two elements of
** the stack.
**
** See also the Dup instruction.
*/
case OP_Pull: {
int from = p->tos - pOp->p1;
@ -1783,7 +1781,7 @@ case OP_NotNull: {
** which hold the offset of the beginning of each column data from the
** beginning of the completed record including the header.
**
** The OP_Column opcode is used to unpack a record manufactured with
** The Column opcode is used to unpack a record manufactured with
** the opcode.
*/
case OP_MakeRecord: {
@ -1836,10 +1834,9 @@ case OP_MakeRecord: {
/* Opcode: MakeKey P1 P2 *
**
** Convert the top P1 entries of the stack into a single entry suitable
** for use as the key in an index or a sort. The top P1 records are
** converted to strings and merged. The null-terminator on each string
** is retained and used as a separator. The entire string is also
** null-terminated.
** for use as the key in an index. The top P1 records are
** converted to strings and merged. The null-terminators
** are retained and used as separators.
** The lowest entry in the stack is the first field and the top of the
** stack becomes the last.
**
@ -1956,8 +1953,12 @@ case OP_MakeIdxKey: {
**
** Begin a transaction. The transaction ends when a Commit or Rollback
** opcode is encountered or whenever there is an execution error that causes
** a script to abort.
** a script to abort. A transaction is not ended by a Halt.
**
** A write lock is obtained on the database file when a transaction is
** started. No other process can read or write the file while the
** transaction is underway. Starting a transaction also creates a
** rollback journal.
** A transaction must be started before any changes can be made to the
** database.
*/
@ -1970,7 +1971,9 @@ case OP_Transaction: {
**
** Cause all modifications to the database that have been made since the
** last Transaction to actually take effect. No additional modifications
** are allowed until another transaction is started.
** are allowed until another transaction is started. The Commit instruction
** deletes the journal file and releases the write lock on the database.
** A read lock continues to be held if there are still cursors open.
*/
case OP_Commit: {
rc = sqliteBtreeCommit(pBt);
@ -1988,6 +1991,9 @@ case OP_Commit: {
** last Transaction to be undone. The database is restored to its state
** before the Transaction opcode was executed. No additional modifications
** are allowed until another transaction is started.
**
** This instruction automatically closes all cursors and releases both
** the read and write locks on the database.
*/
case OP_Rollback: {
rc = sqliteBtreeRollback(pBt);
@ -1997,15 +2003,15 @@ case OP_Rollback: {
/* Opcode: ReadCookie * * *
**
** Read the magic cookie from the database file and push it onto the
** stack. The magic cookie is an integer that is used like a version
** Read the schema cookie from the database file and push it onto the
** stack. The schema cookie is an integer that is used like a version
** number for the database schema. Everytime the schema changes, the
** cookie changes to a new random value. This opcode is used during
** initialization to read the initial cookie value so that subsequent
** database accesses can verify that the cookie has not changed.
**
** There must be a read-lock on the database (either a transaction
** must be started or there must be a prior OP_Open opcode) before
** must be started or there must be an open cursor) before
** executing this instruction.
*/
case OP_ReadCookie: {
@ -2020,10 +2026,10 @@ case OP_ReadCookie: {
/* Opcode: SetCookie P1 * *
**
** This operation changes the value of the cookie on the database.
** This operation changes the value of the schema cookie on the database.
** The new value is P1.
**
** The cookie changes its value whenever the database schema changes.
** The schema cookie changes its value whenever the database schema changes.
** That way, other processes can recognize when the schema has changed
** and reread it.
**
@ -2041,11 +2047,11 @@ case OP_SetCookie: {
/* Opcode: VerifyCookie P1 * *
**
** Check the current value of the database cookie and make sure it is
** Check the current value of the schema cookie and make sure it is
** equal to P1. If it is not, abort with an SQLITE_SCHEMA error.
**
** The cookie changes its value whenever the database schema changes.
** This operation is used to detech when that the cookie has changed
** This operation is used to detect when that the cookie has changed
** and that the current process needs to reread the schema.
**
** Either a transaction needs to have been started or an OP_Open needs
@ -2071,6 +2077,15 @@ case OP_VerifyCookie: {
**
** If P2==0 then take the root page number from the top of the stack.
**
** There will be a read lock on the database whenever there is an
** open cursor. If the database was unlocked prior to this instruction
** then a read lock is acquired as part of this instruction. A read
** lock allows other processes to read the database but prohibits
** any other process from modifying the database. The read lock is
** released when all cursors are closed. If this instruction attempts
** to get a read lock but fails, the script terminates with an
** SQLITE_BUSY error code.
**
** The P3 value is the name of the table or index being opened.
** The P3 value is not actually used by this opcode and may be
** omitted. But the code generator usually inserts the index or
@ -2129,7 +2144,7 @@ case OP_Open: {
/* Opcode: OpenTemp P1 * *
**
** Open a new cursor that points to a table in a temporary database
** file. The temporary file is opened read/write event if the main
** file. The temporary file is opened read/write even if the main
** database is read-only. The temporary file is deleted when the
** cursor is closed.
*/
@ -2178,6 +2193,8 @@ case OP_Close: {
** cursor P1 so that it points to an entry with a matching key. If
** the table contains no record with a matching key, then the cursor
** is left pointing at a nearby record.
**
** See also: Found, NotFound, Distinct
*/
case OP_MoveTo: {
int i = pOp->p1;
@ -2204,7 +2221,7 @@ case OP_MoveTo: {
/* Opcode: Fcnt * * *
**
** Push an integer onto the stack which is the total number of
** OP_Fetch opcodes that have been executed by this virtual machine.
** MoveTo opcodes that have been executed by this virtual machine.
**
** This instruction is used to implement the special fcnt() function
** in the SQL dialect that SQLite understands. fcnt() is used for
@ -2220,30 +2237,36 @@ case OP_Fcnt: {
/* Opcode: Distinct P1 P2 *
**
** Use the top of the stack as a key. If a record with that key
** does not exist in file P1, then jump to P2. If the record
** Use the top of the stack as a key. If a record with that key does
** not exist in the table of cursor P1, then jump to P2. If the record
** does already exist, then fall thru. The cursor is left pointing
** at the record if it exists. The key is not popped from the stack.
**
** This operation is similar to NotFound except that this operation
** does not pop the key from the stack.
**
** See also: Found, NotFound, MoveTo
*/
/* Opcode: Found P1 P2 *
**
** Use the top of the stack as a key. If a record with that key
** does exist in file P1, then jump to P2. If the record
** does exist in table of P1, then jump to P2. If the record
** does not exist, then fall thru. The cursor is left pointing
** to the record if it exists. The key is popped from the stack.
**
** See also: Distinct, NotFound, MoveTo
*/
/* Opcode: NotFound P1 P2 *
**
** Use the top of the stack as a key. If a record with that key
** does not exist in file P1, then jump to P2. If the record
** does not exist in table of P1, then jump to P2. If the record
** does exist, then fall thru. The cursor is left pointing to the
** record if it exists. The key is popped from the stack.
**
** The difference between this operation and Distinct is that
** Distinct does not pop the key from the stack.
**
** See also: Distinct, Found, MoveTo
*/
case OP_Distinct:
case OP_NotFound:
@ -2278,8 +2301,8 @@ case OP_Found: {
/* Opcode: NewRecno P1 * *
**
** Get a new integer record number used as the key to a table.
** The record number is not previous used by the database file
** associated with cursor P1. The new record number pushed
** The record number is not previously used as a key in the database
** table that cursor P1 points to. The new record number pushed
** onto the stack.
*/
case OP_NewRecno: {
@ -2321,7 +2344,7 @@ case OP_NewRecno: {
/* Opcode: Put P1 * *
**
** Write an entry into the database file P1. A new entry is
** created if it doesn't already exist, or the data for an existing
** created if it doesn't already exist or the data for an existing
** entry is overwritten. The data is the value on the top of the
** stack. The key is the next value down on the stack. The stack
** is popped twice by this instruction.
@ -2356,8 +2379,8 @@ case OP_Put: {
**
** The cursor will be left pointing at either the next or the previous
** record in the table. If it is left pointing at the next record, then
** the next OP_Next will be a no-op. Hence it is OK to delete a record
** from within an OP_Next loop.
** the next Next instruction will be a no-op. Hence it is OK to delete
** a record from within an Next loop.
*/
case OP_Delete: {
int i = pOp->p1;
@ -2370,7 +2393,7 @@ case OP_Delete: {
/* Opcode: KeyAsData P1 P2 *
**
** Turn the key-as-data mode for cursor P1 either on (if P2==1) or
** off (if P2==0). In key-as-data mode, the OP_Field opcode pulls
** off (if P2==0). In key-as-data mode, the Field opcode pulls
** data off of the key rather than the data. This is useful for
** processing compound selects.
*/
@ -2507,9 +2530,12 @@ case OP_Recno: {
/* Opcode: FullKey P1 * *
**
** Push a string onto the stack which is the full text key associated
** with the last Next operation on file P1. Compare this with the
** Key operator which pushs an integer key.
** Extract the complete key from the record that cursor P1 is currently
** pointing to and push the key onto the stack as a string.
**
** Compare this opcode to Recno. The Recno opcode extracts the first
** 4 bytes of the key and pushes those bytes onto the stack as an
** integer. This instruction pushes the entire key as a string.
*/
case OP_FullKey: {
int i = pOp->p1;
@ -2622,9 +2648,9 @@ case OP_BeginIdx: {
**
** The P1 cursor points to an SQL index for which a BeginIdx operation
** has been issued. This operation retrieves the next record from that
** cursor and verifies that the key on the record matches the key that
** was pulled from the stack by the BeginIdx instruction. If they do
** match, then the last 4 bytes of the key on the record hold a record
** cursor and verifies that the key on the record minus the last 4 bytes
** matches the key that was pulled from the stack by the BeginIdx instruction.
** If they match, then the last 4 bytes of the key on the record hold a record
** number and that record number is extracted and pushed on the stack.
** If the keys do not match, there is an immediate jump to instruction P2.
*/
@ -2707,6 +2733,8 @@ case OP_DeleteIdx: {
**
** Delete an entire database table or index whose root page in the database
** file is given by P1.
**
** See also: Clear
*/
case OP_Destroy: {
sqliteBtreeDropTable(pBt, pOp->p1);
@ -2716,8 +2744,10 @@ case OP_Destroy: {
/* Opcode: Clear P1 * *
**
** Delete all contents of the database table or index whose root page
** in the database file is given by P1. But, unlike OP_Destroy, do not
** in the database file is given by P1. But, unlike Destroy, do not
** remove the table or index from the database file.
**
** See also: Destroy
*/
case OP_Clear: {
sqliteBtreeClearTable(pBt, pOp->p1);
@ -2735,6 +2765,8 @@ case OP_Clear: {
** memory location. This writing of the page number into a memory location
** is used by the SQL parser to record the page number in its internal
** data structures.
**
** See also: CreateIndex
*/
case OP_CreateTable: {
int i = ++p->tos;
@ -2754,19 +2786,19 @@ case OP_CreateTable: {
break;
}
/* Opcode: CreateIndex * * *
/* Opcode: CreateIndex P1 * *
**
** Allocate a new Index in the main database file. Push the page number
** for the root page of the new table onto the stack.
**
** If P1>=0 then open a cursor named P1 on the newly created index.
**
** The root page number is also written to a memory location which has
** be set up by the parser. The difference between CreateTable and
** CreateIndex is that each writes its root page number into a different
** memory location. This writing of the page number into a memory location
** is used by the SQL parser to record the page number in its internal
** data structures.
**
** See also: CreateTable
*/
case OP_CreateIndex: {
int i = ++p->tos;
@ -2790,6 +2822,8 @@ case OP_CreateIndex: {
**
** Compress, optimize, and tidy up table or index whose root page in the
** database file is P1.
**
** In the current implementation, this is a no-op.
*/
case OP_Reorganize: {
/* This is currently a no-op */
@ -2799,8 +2833,7 @@ case OP_Reorganize: {
/* Opcode: ListOpen P1 * *
**
** Open a "List" structure used for temporary storage of integer
** table keys. P1
** will server as a handle to this list for future
** record numbers. P1 will server as a handle to this list for future
** interactions. If another list with the P1 handle is
** already opened, the prior list is closed and a new one opened
** in its place.
@ -3004,7 +3037,7 @@ case OP_SortMakeRec: {
** in the result. The whole key is terminated by two \000 characters
** in a row.
**
** See also the MakeKey opcode.
** See also the MakeKey and MakeIdxKey opcodes.
*/
case OP_SortMakeKey: {
char *zNewKey;
@ -3217,7 +3250,7 @@ case OP_FileClose: {
** a delimiter. There should be P1 fields. If the input line contains
** more than P1 fields, ignore the excess. If the input line contains
** fewer than P1 fields, assume the remaining fields contain an
** empty string.
** empty strings.
*/
case OP_FileRead: {
int n, eol, nField, i, c, nDelim;
@ -3301,7 +3334,7 @@ fileread_jump:
/* Opcode: FileColumn P1 * *
**
** Push onto the stack the P1-th field of the most recently read line
** Push onto the stack the P1-th column of the most recently read line
** from the input file.
*/
case OP_FileColumn: {

View File

@ -1,24 +1,12 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** Header file for the Virtual DataBase Engine (VDBE)
@ -27,7 +15,7 @@
** or VDBE. The VDBE implements an abstract machine that runs a
** simple program to access and modify the underlying database.
**
** $Id: vdbe.h,v 1.22 2001/09/15 00:57:29 drh Exp $
** $Id: vdbe.h,v 1.23 2001/09/16 00:13:27 drh Exp $
*/
#ifndef _SQLITE_VDBE_H_
#define _SQLITE_VDBE_H_

View File

@ -1,31 +1,19 @@
/*
** Copyright (c) 1999, 2000 D. Richard Hipp
** 2001 September 15
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@hwaci.com
** http://www.hwaci.com/drh/
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
** This module contains C code that generates VDBE code used to process
** the WHERE clause of SQL statements. Also found here are subroutines
** to generate VDBE code to evaluate expressions.
**
** $Id: where.c,v 1.19 2001/09/15 00:57:29 drh Exp $
** $Id: where.c,v 1.20 2001/09/16 00:13:27 drh Exp $
*/
#include "sqliteInt.h"

View File

@ -1,28 +1,16 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file runs all tests.
#
# $Id: all.test,v 1.9 2001/09/14 16:42:13 drh Exp $
# $Id: all.test,v 1.10 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -41,11 +29,16 @@ if {[file exists ./sqlite_test_count]} {
#
set LeakList {}
set EXCLUDE {
all.test
quick.test
malloc.test
}
for {set Counter 0} {$Counter<$COUNT && $nErr==0} {incr Counter} {
foreach testfile [lsort -dictionary [glob $testdir/*.test]] {
if {[file tail $testfile]=="all.test"} continue
if {[file tail $testfile]=="malloc.test"} continue
set tail [file tail $testfile]
if {[lsearch -exact $EXCLUDE $tail]>=0} continue
source $testfile
}
if {[info exists Leak]} {

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this script is btree database backend
#
# $Id: btree.test,v 1.8 2001/08/20 00:33:58 drh Exp $
# $Id: btree.test,v 1.9 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this script is btree database backend
#
# $Id: btree2.test,v 1.6 2001/09/14 16:42:13 drh Exp $
# $Id: btree2.test,v 1.7 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
@ -288,8 +276,8 @@ foreach {N L} {
10 2
50 2
200 3
2000 5
} {
# 2000 5
puts "**** N=$N L=$L ****"
set hash [md5file test2.bt]
do_test btree2-$testno.1 [subst -nocommands {

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the COPY statement.
#
# $Id: copy.test,v 1.5 2000/06/07 01:27:49 drh Exp $
# $Id: copy.test,v 1.6 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the DELETE FROM statement.
#
# $Id: delete.test,v 1.8 2001/03/20 22:05:00 drh Exp $
# $Id: delete.test,v 1.9 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing expressions.
#
# $Id: expr.test,v 1.14 2001/04/28 16:52:42 drh Exp $
# $Id: expr.test,v 1.15 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing built-in functions.
#
# $Id: func.test,v 1.3 2001/04/06 16:13:43 drh Exp $
# $Id: func.test,v 1.4 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the IN and BETWEEN operator.
#
# $Id: in.test,v 1.4 2001/04/04 11:48:58 drh Exp $
# $Id: in.test,v 1.5 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the CREATE INDEX statement.
#
# $Id: index.test,v 1.11 2001/09/13 21:53:10 drh Exp $
# $Id: index.test,v 1.12 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the INSERT statement.
#
# $Id: insert.test,v 1.5 2001/04/04 11:48:58 drh Exp $
# $Id: insert.test,v 1.6 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,30 +1,18 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the INSERT statement that takes is
# result from a SELECT.
#
# $Id: insert2.test,v 1.3 2001/09/14 03:24:25 drh Exp $
# $Id: insert2.test,v 1.4 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this script is database locks.
#
# $Id: lock.test,v 1.9 2001/09/14 03:24:25 drh Exp $
# $Id: lock.test,v 1.10 2001/09/16 00:13:28 drh Exp $
if {0} {

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is exercising the code in main.c.
#
# $Id: main.test,v 1.7 2001/09/14 03:24:25 drh Exp $
# $Id: main.test,v 1.8 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,23 +1,11 @@
# Copyright (c) 2001 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file attempts to check the library in an out-of-memory situation.
@ -26,7 +14,7 @@
# special feature is used to see what happens in the library if a malloc
# were to really fail due to an out-of-memory situation.
#
# $Id: malloc.test,v 1.2 2001/04/12 23:21:59 drh Exp $
# $Id: malloc.test,v 1.3 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this script is page cache subsystem.
#
# $Id: pager.test,v 1.9 2001/09/14 03:24:25 drh Exp $
# $Id: pager.test,v 1.10 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]

View File

@ -1,29 +1,17 @@
# Copyright (c) 2001 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the sqlite_*_printf() interface.
#
# $Id: printf.test,v 1.2 2001/04/11 14:28:43 drh Exp $
# $Id: printf.test,v 1.3 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

32
test/quick.test Normal file
View File

@ -0,0 +1,32 @@
# 2001 September 15
#
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file runs all tests.
#
# $Id: quick.test,v 1.1 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
rename finish_test really_finish_test
proc finish_test {} {}
set EXCLUDE {
all.test
quick.test
btree2.test
}
foreach testfile [lsort -dictionary [glob $testdir/*.test]] {
set tail [file tail $testfile]
if {[lsearch -exact $EXCLUDE $tail]>=0} continue
source $testfile
}
really_finish_test

View File

@ -1,30 +1,18 @@
# Copyright (c) 2001 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is the ability to specify table and column names
# as quoted strings.
#
# $Id: quote.test,v 1.1 2001/07/23 14:33:04 drh Exp $
# $Id: quote.test,v 1.2 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,30 +1,18 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the magic ROWID column that is
# found on all tables.
#
# $Id: rowid.test,v 1.3 2001/09/15 00:58:01 drh Exp $
# $Id: rowid.test,v 1.4 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the SELECT statement.
#
# $Id: select1.test,v 1.9 2001/04/12 23:21:59 drh Exp $
# $Id: select1.test,v 1.10 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the SELECT statement.
#
# $Id: select2.test,v 1.13 2001/09/14 03:24:25 drh Exp $
# $Id: select2.test,v 1.14 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,30 +1,18 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing aggregate functions and the
# GROUP BY and HAVING clauses of SELECT statements.
#
# $Id: select3.test,v 1.2 2000/06/08 15:10:48 drh Exp $
# $Id: select3.test,v 1.3 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,30 +1,18 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing UNION, INTERSECT and EXCEPT operators
# in SELECT statements.
#
# $Id: select4.test,v 1.3 2000/06/08 15:10:48 drh Exp $
# $Id: select4.test,v 1.4 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,30 +1,18 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing aggregate functions and the
# GROUP BY and HAVING clauses of SELECT statements.
#
# $Id: select5.test,v 1.4 2000/06/21 13:59:13 drh Exp $
# $Id: select5.test,v 1.5 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the CREATE TABLE statement.
#
# $Id: sort.test,v 1.2 2001/04/04 11:48:58 drh Exp $
# $Id: sort.test,v 1.3 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,30 +1,18 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing SELECT statements that are part of
# expressions.
#
# $Id: subselect.test,v 1.3 2000/06/05 21:39:49 drh Exp $
# $Id: subselect.test,v 1.4 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the CREATE TABLE statement.
#
# $Id: table.test,v 1.11 2001/09/14 03:24:25 drh Exp $
# $Id: table.test,v 1.12 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,30 +1,18 @@
# Copyright (c) 2001 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the sqlite_exec_printf() and
# sqlite_get_table_printf() APIs.
#
# $Id: tableapi.test,v 1.2 2001/04/11 14:28:43 drh Exp $
# $Id: tableapi.test,v 1.3 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,23 +1,11 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for TCL interface to the
@ -27,7 +15,7 @@
# interface is pretty well tested. This file contains some addition
# tests for fringe issues that the main test suite does not cover.
#
# $Id: tclsqlite.test,v 1.1 2001/04/03 16:53:22 drh Exp $
# $Id: tclsqlite.test,v 1.2 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements some common TCL routines used for regression
# testing the SQLite library
#
# $Id: tester.tcl,v 1.17 2001/09/14 16:42:13 drh Exp $
# $Id: tester.tcl,v 1.18 2001/09/16 00:13:28 drh Exp $
# Make sure tclsqlite was compiled correctly. Abort now with an
# error message if not.

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this script is database locks.
#
# $Id: trans.test,v 1.3 2001/09/14 03:24:25 drh Exp $
# $Id: trans.test,v 1.4 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the UPDATE statement.
#
# $Id: update.test,v 1.5 2001/02/19 18:24:22 drh Exp $
# $Id: update.test,v 1.6 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the VACUUM statement.
#
# $Id: vacuum.test,v 1.5 2001/09/14 03:24:25 drh Exp $
# $Id: vacuum.test,v 1.6 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,17 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
# 2001 September 15
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the use of indices in WHERE clases.
#
# $Id: where.test,v 1.2 2001/08/19 18:19:46 drh Exp $
# $Id: where.test,v 1.3 2001/09/16 00:13:28 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl

View File

@ -1,29 +1,10 @@
/*
** Copyright (c) 1991, 1994, 1997, 1998 D. Richard Hipp
**
** This file contains all sources (including headers) to the LEMON
** LALR(1) parser generator. The sources have been combined into a
** single file to make it easy to include LEMON in the source tree
** and Makefile of another program.
**
** This program is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** General Public License for more details.
**
** You should have received a copy of the GNU General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Author contact information:
** drh@acm.org
** http://www.hwaci.com/drh/
** The author of this program disclaims copyright.
*/
#include <stdio.h>
#include <varargs.h>
@ -1198,10 +1179,7 @@ char **argv;
OptInit(argv,options,stderr);
if( version ){
printf("Lemon version 1.0\n"
"Copyright 1991-1997 by D. Richard Hipp\n"
"Freely distributable under the GNU Public License.\n"
);
printf("Lemon version 1.0\n");
exit(0);
}
if( OptNArgs()!=1 ){

View File

@ -1,22 +1,5 @@
/* Driver template for the LEMON parser generator.
** Copyright 1991-1995 by D. Richard Hipp.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Library General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Library General Public License for more details.
**
** You should have received a copy of the GNU Library General Public
** License along with this library; if not, write to the
** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
** Boston, MA 02111-1307, USA.
**
** Modified 1997 to make it suitable for use with makeheaders.
** The author disclaims copyright to this source code.
*/
/* First off, code is include which follows the "include" declaration
** in the input file. */

View File

@ -1,5 +1,5 @@
#FIG 3.2
Landscape
Portrait
Center
Inches
Letter
@ -8,43 +8,50 @@ Single
-2
1200 2
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 2250 4875 2250 4875 3525 2550 3525 2550 2250
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 4050 4875 4050 4875 5325 2550 5325 2550 4050
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 5850 4875 5850 4875 7125 2550 7125 2550 5850
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 7650 4875 7650 4875 8925 2550 8925 2550 7650
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 450 4875 450 4875 1725 2550 1725 2550 450
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 9450 4875 9450 4875 10725 2550 10725 2550 9450
2550 450 4875 450 4875 1275 2550 1275 2550 450
2 1 0 3 0 7 100 0 -1 0.000 0 0 -1 1 0 2
1 1 3.00 75.00 135.00
3675 1725 3675 2250
3675 8550 3675 9075
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 9075 4875 9075 4875 9900 2550 9900 2550 9075
2 1 0 3 0 7 100 0 -1 0.000 0 0 -1 1 0 2
1 1 3.00 75.00 135.00
3675 3525 3675 4050
3675 7200 3675 7725
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 7725 4875 7725 4875 8550 2550 8550 2550 7725
2 1 0 3 0 7 100 0 -1 0.000 0 0 -1 1 0 2
1 1 3.00 75.00 135.00
3675 5325 3675 5850
3675 5775 3675 6300
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 6300 4875 6300 4875 7200 2550 7200 2550 6300
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 4500 4875 4500 4875 5775 2550 5775 2550 4500
2 1 0 3 0 7 100 0 -1 0.000 0 0 -1 1 0 2
1 1 3.00 75.00 135.00
3675 7125 3675 7650
3675 3975 3675 4500
2 1 0 3 0 7 100 0 -1 0.000 0 0 -1 1 0 2
1 1 3.00 75.00 135.00
3675 8925 3675 9450
4 1 0 100 0 0 20 0.0000 4 195 1920 3675 8025 Virtual Machine\001
4 1 0 100 0 0 20 0.0000 4 195 1830 3675 6225 Code Generator\001
4 1 0 100 0 0 20 0.0000 4 195 735 3675 4350 Parser\001
4 1 0 100 0 0 20 0.0000 4 195 1140 3675 2550 Tokenizer\001
3675 2625 3675 3150
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 3150 4875 3150 4875 3975 2550 3975 2550 3150
2 1 0 3 0 7 100 0 -1 0.000 0 0 -1 1 0 2
1 1 3.00 75.00 135.00
3675 1275 3675 1800
2 2 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 5
2550 1800 4875 1800 4875 2625 2550 2625 2550 1800
4 1 0 100 0 0 20 0.0000 4 195 1020 3675 750 Interface\001
4 1 0 100 0 0 20 0.0000 4 195 990 3675 9825 Backend\001
4 1 0 100 0 0 14 0.0000 4 195 1860 3675 6525 build.c delete.c expr.c\001
4 1 0 100 0 0 14 0.0000 4 195 2115 3675 6750 insert.c select.c update.c\001
4 1 0 100 0 0 14 0.0000 4 150 705 3675 6975 where.c\001
4 1 0 100 0 0 14 0.0000 4 150 630 3675 5175 parse.y\001
4 1 0 100 0 0 14 0.0000 4 150 870 3675 3375 tokenize.c\001
4 1 0 100 0 0 14 0.0000 4 150 570 3675 8775 vdbe.c\001
4 1 0 100 0 0 14 0.0000 4 150 570 3675 10500 dbbe.c\001
4 1 0 100 0 0 14 0.0000 4 195 2040 3675 1575 main.c table.c tclsqlite.c\001
4 1 0 100 0 0 14 0.0000 4 195 2040 3675 1125 main.c table.c tclsqlite.c\001
4 1 0 100 0 0 20 0.0000 4 195 1920 3675 6675 Virtual Machine\001
4 1 0 100 0 0 14 0.0000 4 150 570 3675 7050 vdbe.c\001
4 1 0 100 0 0 20 0.0000 4 195 1830 3675 4875 Code Generator\001
4 1 0 100 0 0 14 0.0000 4 195 1860 3675 5175 build.c delete.c expr.c\001
4 1 0 100 0 0 14 0.0000 4 195 2115 3675 5400 insert.c select.c update.c\001
4 1 0 100 0 0 14 0.0000 4 150 705 3675 5625 where.c\001
4 1 0 100 0 0 20 0.0000 4 195 735 3675 3450 Parser\001
4 1 0 100 0 0 20 0.0000 4 195 1140 3675 2100 Tokenizer\001
4 1 0 100 0 0 14 0.0000 4 150 870 3675 2475 tokenize.c\001
4 1 0 100 0 0 20 0.0000 4 255 1350 3675 9375 Page Cache\001
4 1 0 100 0 0 14 0.0000 4 150 630 3675 3825 parse.y\001
4 1 0 100 0 0 14 0.0000 4 150 600 3675 8400 btree.c\001
4 1 0 100 0 0 14 0.0000 4 150 645 3675 9750 pager.c\001
4 1 0 100 0 0 20 0.0000 4 195 1620 3675 8025 B-tree Driver\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,7 +1,7 @@
#
# Run this Tcl script to generate the sqlite.html file.
#
set rcsid {$Id: arch.tcl,v 1.3 2000/09/29 13:30:55 drh Exp $}
set rcsid {$Id: arch.tcl,v 1.4 2001/09/16 00:13:29 drh Exp $}
puts {<html>
<head>
@ -112,19 +112,24 @@ source file <b>vdbe.c</b>. The virtual machine also has
its own header file <b>vdbe.h</b> that defines an interface
between the virtual machine and the rest of the SQLite library.</p>
<h2>Backend</h2>
<h2>B-tree Driver</h2>
<p>The last layer in the design of SQLite is the backend. The
backend implements an interface between the virtual machine and
the underlying data file library -- GDBM in this case. The interface
is designed to make it easy to substitute a different database
library, such as the Berkeley DB.
The backend abstracts many of the low-level details to help
reduce the complexity of the virtual machine.</p>
<p>An SQLite database is maintained on disk using a B-tree implementation
found in the <b>btree.c</b> source file. A separate B-tree is used for
each table and index in the database but all B-trees are stored in the
same disk file. Each page of a B-tree is 1024 bytes in size. The data
is stored with the key in an area called "payload". Up to 236 bytes of
payload can be stored with each B-tree entry. Any additional payload
is stored in a chain of overflow pages.</p>
<p>The backend is contained in the single source file <b>dbbe.c</b>.
The backend also has a header file <b>dbbe.h</b> that defines the
interface between the backend and the rest of the SQLite library.</p>
<h2>Page Cache</h2>
<p>The page cache provides the rollback and atomic commit abstraction
and takes care of reader/writer locking of the database file. The
B-tree driver requests particular pages from the page cache and notifies
the page cache when it wants to modify pages and commit or rollback its
changes and the page cache handles all the messy details of making sure
the requests are handled quickly, safely, and efficiently.</p>
}
puts {

View File

@ -17,6 +17,17 @@ proc chng {date desc} {
puts "<DD><P><UL>$desc</UL></P></DD>"
}
chng {2001 Sep 15 (2.0.0)} {
<li>Initial release of version 2.0. The idea of renaming the library
to "SQLus" was abandoned in favor of keeping the "SQLite" name and
bumping the major version number.</li>
<li>The pager and btree subsystems added back. They are now the only
available backend.</li>
<li>The Dbbe abstraction and the GDBM and memory drivers were removed.</li>
<li>Copyright on all code was disclaimed. The library is now in the
public domain.</li>
}
chng {2001 Jul 23 (1.0.32)} {
<li>Pager and btree subsystems removed. These will be used in a follow-on
SQL server library named "SQLus".</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.37 2001/05/21 13:45:10 drh Exp $}
set rcsid {$Id: index.tcl,v 1.38 2001/09/16 00:13:29 drh Exp $}
puts {<html>
<head><title>SQLite: An SQL Database Library Built Atop GDBM</title></head>
@ -17,11 +17,8 @@ puts {</p>}
puts {<h2>Introduction</h2>
<p>SQLite is an SQL database library
(<a href="c_interface.html">libsqlite.a</a>) that uses
<a href="http://www.gnu.org/software/gdbm/gdbm.html">GDBM</a>
as its underlying file storage mechanism.
Programs that link the SQLite library can have SQL database
<p>SQLite is a C library that implements an SQL database engine.
Programs that link with the SQLite library can have SQL database
access without running a separate RDBMS process.
The distribution comes with a standalone command-line
access program (<a href="sqlite.html">sqlite</a>) that can
@ -32,22 +29,17 @@ an example of how to use the SQLite library.</p>
<h2>Features</h2>
<p><ul>
<li>Implements most of SQL92.</li>
<li>A database is just a directory of GDBM files.</li>
<li>Unlimited length records.</li>
<li>Import and export data from
<a href="http://www.postgresql.org/">PostgreSQL</a>.</li>
<li>Implements a large subset of SQL92.</li>
<li>A complete SQL database (with multiple tables and indices) is
stored in a single disk file.</li>
<li>Atomic commit and rollback protect data integrity.</li>
<li>Small memory footprint: about 12000 lines of C code.</li>
<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 <a href="tclsqlite.html">Tcl</a> interface is
included.</li>
<li>Command-line access program <a href="sqlite.html">sqlite</a> uses
the <a href="http://www.google.com/search?q=gnu+readline+library">GNU
Readline library</a></li>
<li>A Tcl-based test suite provides near 100% code coverage</li>
<li>Approximately 9500 lines of C code. No external dependencies other
than GDBM.</li>
<li>A TCL interface 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, HPUX, and WinNT.</li>
</ul>
</p>
@ -73,10 +65,6 @@ only reached when <tt>malloc()</tt> fails.</p>
</p></li>
</ul>
<p><b>Important Note:</b> Serious bugs have been found in versions
1.0.22 on Unix and 1.0.26 on Windows. Users of these or earlier
versions of SQLite should upgrade.</p>
<h2>Documentation</h2>
<p>The following documentation is currently available:</p>