Disclaimed copyright. Preparing for release 2.0. (CVS 250)
FossilOrigin-Name: 4e926efe2b59adfec4086eb1d2ba830238facb4c
This commit is contained in:
parent
872ff86f2c
commit
b19a2bc603
340
COPYRIGHT
340
COPYRIGHT
@ -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.
|
@ -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
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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
154
manifest
@ -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
|
||||
|
@ -1 +1 @@
|
||||
8e2f3f751ea342372c94977ff27baaff5126009a
|
||||
4e926efe2b59adfec4086eb1d2ba830238facb4c
|
@ -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
|
@ -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
|
||||
}
|
@ -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
|
||||
|
||||
}
|
165
notes/notes3.txt
165
notes/notes3.txt
@ -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?
|
33
src/btree.c
33
src/btree.c
@ -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
|
||||
|
||||
|
26
src/btree.h
26
src/btree.h
@ -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_
|
||||
|
36
src/build.c
36
src/build.c
@ -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>
|
||||
|
26
src/delete.c
26
src/delete.c
@ -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"
|
||||
|
||||
|
28
src/expr.c
28
src/expr.c
@ -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"
|
||||
|
||||
|
28
src/insert.c
28
src/insert.c
@ -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"
|
||||
|
||||
|
26
src/main.c
26
src/main.c
@ -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
|
||||
|
96
src/pager.c
96
src/pager.c
@ -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
|
||||
|
26
src/pager.h
26
src/pager.h
@ -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 $
|
||||
*/
|
||||
|
||||
/*
|
||||
|
26
src/parse.y
26
src/parse.y
@ -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}
|
||||
|
26
src/random.c
26
src/random.c
@ -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>
|
||||
|
28
src/select.c
28
src/select.c
@ -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"
|
||||
|
||||
|
26
src/shell.c
26
src/shell.c
@ -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>
|
||||
|
@ -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 */
|
||||
|
@ -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"
|
||||
|
24
src/table.c
24
src/table.c
@ -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()
|
||||
|
@ -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 */
|
||||
|
||||
|
26
src/test1.c
26
src/test1.c
@ -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"
|
||||
|
26
src/test2.c
26
src/test2.c
@ -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"
|
||||
|
26
src/test3.c
26
src/test3.c
@ -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"
|
||||
|
@ -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;
|
||||
|
26
src/update.c
26
src/update.c
@ -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"
|
||||
|
||||
|
26
src/util.c
26
src/util.c
@ -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>
|
||||
|
161
src/vdbe.c
161
src/vdbe.c
@ -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: {
|
||||
|
26
src/vdbe.h
26
src/vdbe.h
@ -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_
|
||||
|
26
src/where.c
26
src/where.c
@ -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"
|
||||
|
||||
|
@ -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]} {
|
||||
|
@ -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]
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
26
test/in.test
26
test/in.test
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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} {
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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
32
test/quick.test
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
26
tool/lemon.c
26
tool/lemon.c
@ -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 ){
|
||||
|
@ -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. */
|
||||
|
67
www/arch.fig
67
www/arch.fig
@ -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
|
||||
|
BIN
www/arch.png
BIN
www/arch.png
Binary file not shown.
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.0 KiB |
29
www/arch.tcl
29
www/arch.tcl
@ -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 {
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user