From b19a2bc6036e680d4e7d995049be5dcba96cae7f Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 16 Sep 2001 00:13:26 +0000 Subject: [PATCH] Disclaimed copyright. Preparing for release 2.0. (CVS 250) FossilOrigin-Name: 4e926efe2b59adfec4086eb1d2ba830238facb4c --- COPYRIGHT | 340 -------------------------------------------- Makefile.in | 5 +- doc/lemon.html | 3 +- doc/report1.txt | 6 +- manifest | 154 ++++++++++---------- manifest.uuid | 2 +- notes/notes1.txt | 55 ------- notes/notes2.txt | 70 --------- notes/notes2b.txt | 26 ---- notes/notes3.txt | 165 --------------------- src/btree.c | 33 ++--- src/btree.h | 26 +--- src/build.c | 36 ++--- src/delete.c | 26 +--- src/expr.c | 28 ++-- src/insert.c | 28 ++-- src/main.c | 26 +--- src/pager.c | 96 +++++-------- src/pager.h | 26 +--- src/parse.y | 26 +--- src/random.c | 26 +--- src/select.c | 28 ++-- src/shell.c | 26 +--- src/sqlite.h.in | 53 +++---- src/sqliteInt.h | 26 +--- src/table.c | 24 +--- src/tclsqlite.c | 26 +--- src/test1.c | 26 +--- src/test2.c | 26 +--- src/test3.c | 26 +--- src/tokenize.c | 31 ++-- src/update.c | 26 +--- src/util.c | 26 +--- src/vdbe.c | 161 ++++++++++++--------- src/vdbe.h | 26 +--- src/where.c | 26 +--- test/all.test | 35 ++--- test/btree.test | 26 +--- test/btree2.test | 28 ++-- test/copy.test | 26 +--- test/delete.test | 26 +--- test/expr.test | 26 +--- test/func.test | 26 +--- test/in.test | 26 +--- test/index.test | 26 +--- test/insert.test | 26 +--- test/insert2.test | 26 +--- test/lock.test | 26 +--- test/main.test | 26 +--- test/malloc.test | 26 +--- test/pager.test | 26 +--- test/printf.test | 26 +--- test/quick.test | 32 +++++ test/quote.test | 26 +--- test/rowid.test | 26 +--- test/select1.test | 26 +--- test/select2.test | 26 +--- test/select3.test | 26 +--- test/select4.test | 26 +--- test/select5.test | 26 +--- test/sort.test | 26 +--- test/subselect.test | 26 +--- test/table.test | 26 +--- test/tableapi.test | 26 +--- test/tclsqlite.test | 26 +--- test/tester.tcl | 26 +--- test/trans.test | 26 +--- test/update.test | 26 +--- test/vacuum.test | 26 +--- test/where.test | 26 +--- tool/lemon.c | 26 +--- tool/lempar.c | 19 +-- www/arch.fig | 67 +++++---- www/arch.png | Bin 1857 -> 2076 bytes www/arch.tcl | 29 ++-- www/changes.tcl | 11 ++ www/index.tcl | 34 ++--- 77 files changed, 768 insertions(+), 2079 deletions(-) delete mode 100644 COPYRIGHT delete mode 100644 notes/notes1.txt delete mode 100644 notes/notes2.txt delete mode 100644 notes/notes2b.txt delete mode 100644 notes/notes3.txt create mode 100644 test/quick.test diff --git a/COPYRIGHT b/COPYRIGHT deleted file mode 100644 index 60549be514..0000000000 --- a/COPYRIGHT +++ /dev/null @@ -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. - - - Copyright (C) 19yy - - 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. - - , 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. diff --git a/Makefile.in b/Makefile.in index a4f9c3f1dd..68b8a3be09 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 diff --git a/doc/lemon.html b/doc/lemon.html index 1d04eec7fa..6a4d6dbd2c 100644 --- a/doc/lemon.html +++ b/doc/lemon.html @@ -103,8 +103,7 @@ printed. Like this: 340 states, 2026 parser table entries, 0 conflicts 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.

+and then stops without attempting to read the grammar or generate a parser.

The Parser Interface

diff --git a/doc/report1.txt b/doc/report1.txt index 84d8de1d98..a236e7cedf 100644 --- a/doc/report1.txt +++ b/doc/report1.txt @@ -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 diff --git a/manifest b/manifest index 10e36a8b30..b369b72158 100644 --- a/manifest +++ b/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 diff --git a/manifest.uuid b/manifest.uuid index 954acfbafc..b5c10d8cd3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8e2f3f751ea342372c94977ff27baaff5126009a \ No newline at end of file +4e926efe2b59adfec4086eb1d2ba830238facb4c \ No newline at end of file diff --git a/notes/notes1.txt b/notes/notes1.txt deleted file mode 100644 index 951711ea35..0000000000 --- a/notes/notes1.txt +++ /dev/null @@ -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 diff --git a/notes/notes2.txt b/notes/notes2.txt deleted file mode 100644 index 3fb551b7ae..0000000000 --- a/notes/notes2.txt +++ /dev/null @@ -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 - } diff --git a/notes/notes2b.txt b/notes/notes2b.txt deleted file mode 100644 index e9d2274449..0000000000 --- a/notes/notes2b.txt +++ /dev/null @@ -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 - -} diff --git a/notes/notes3.txt b/notes/notes3.txt deleted file mode 100644 index 19d07768d4..0000000000 --- a/notes/notes3.txt +++ /dev/null @@ -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; i0 ) printf("\n"); - for(j=0; j0 ) printf("\n"); - for(j=0; j0 ) printf("\n"); - for(j=0; j0 ) printf("\n"); - for(j=0; j diff --git a/src/delete.c b/src/delete.c index 3d2cff99b2..2b712307b7 100644 --- a/src/delete.c +++ b/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" diff --git a/src/expr.c b/src/expr.c index e5d4535a59..7710743f73 100644 --- a/src/expr.c +++ b/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" diff --git a/src/insert.c b/src/insert.c index 28a13cdd01..3fcb61e708 100644 --- a/src/insert.c +++ b/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" diff --git a/src/main.c b/src/main.c index e3863e2131..c882abf0cc 100644 --- a/src/main.c +++ b/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 diff --git a/src/pager.c b/src/pager.c index 4ca2b20a17..0b8ac722e8 100644 --- a/src/pager.c +++ b/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 && 0pNextFree ){ 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 diff --git a/src/pager.h b/src/pager.h index 3637046585..0e72715fe5 100644 --- a/src/pager.h +++ b/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 $ */ /* diff --git a/src/parse.y b/src/parse.y index 373497d350..da0eafbec2 100644 --- a/src/parse.y +++ b/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} diff --git a/src/random.c b/src/random.c index bf666b4039..416b5dc53c 100644 --- a/src/random.c +++ b/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 diff --git a/src/select.c b/src/select.c index 07f0fbaca2..7b9c479425 100644 --- a/src/select.c +++ b/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" diff --git a/src/shell.c b/src/shell.c index 7548e6819f..59c5f6a0c5 100644 --- a/src/shell.c +++ b/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 #include diff --git a/src/sqlite.h.in b/src/sqlite.h.in index c22b9cb3cf..d757cd45ec 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -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 */ diff --git a/src/sqliteInt.h b/src/sqliteInt.h index a22061aac5..9ba03cb066 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -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" diff --git a/src/table.c b/src/table.c index 8f61d6f2f5..e27c714601 100644 --- a/src/table.c +++ b/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() diff --git a/src/tclsqlite.c b/src/tclsqlite.c index ade3ddb61c..9537a451c7 100644 --- a/src/tclsqlite.c +++ b/src/tclsqlite.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. ** ************************************************************************* ** 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 */ diff --git a/src/test1.c b/src/test1.c index 64cf61cfc8..09f1b8a791 100644 --- a/src/test1.c +++ b/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" diff --git a/src/test2.c b/src/test2.c index 70e06eb978..e08c189e27 100644 --- a/src/test2.c +++ b/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" diff --git a/src/test3.c b/src/test3.c index 42f44b3574..9dd084105d 100644 --- a/src/test3.c +++ b/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" diff --git a/src/tokenize.c b/src/tokenize.c index 8b7e82aece..be97113215 100644 --- a/src/tokenize.c +++ b/src/tokenize.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. ** ************************************************************************* ** 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 @@ -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; diff --git a/src/update.c b/src/update.c index d84aaa5b9b..62c0241188 100644 --- a/src/update.c +++ b/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" diff --git a/src/util.c b/src/util.c index 58103ba8dc..e23561ee28 100644 --- a/src/util.c +++ b/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 diff --git a/src/vdbe.c b/src/vdbe.c index 6adf20e33c..cbdae741b0 100644 --- a/src/vdbe.c +++ b/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 @@ -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: { diff --git a/src/vdbe.h b/src/vdbe.h index 46ebf99555..b5634982a1 100644 --- a/src/vdbe.h +++ b/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_ diff --git a/src/where.c b/src/where.c index bc99942d65..d03be7eb8d 100644 --- a/src/where.c +++ b/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" diff --git a/test/all.test b/test/all.test index ec85847aab..3de46fba29 100644 --- a/test/all.test +++ b/test/all.test @@ -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]} { diff --git a/test/btree.test b/test/btree.test index 9cc8cb1b4a..8ba55a4037 100644 --- a/test/btree.test +++ b/test/btree.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 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] diff --git a/test/btree2.test b/test/btree2.test index 142c9e7a25..7b594caf8d 100644 --- a/test/btree2.test +++ b/test/btree2.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 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 { diff --git a/test/copy.test b/test/copy.test index e7e415707f..eab3644d3e 100644 --- a/test/copy.test +++ b/test/copy.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 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 diff --git a/test/delete.test b/test/delete.test index 4587fbf9f7..6ab2d3fec4 100644 --- a/test/delete.test +++ b/test/delete.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 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 diff --git a/test/expr.test b/test/expr.test index 3e8c8166fe..bc30a660af 100644 --- a/test/expr.test +++ b/test/expr.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 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 diff --git a/test/func.test b/test/func.test index a6d8ed26cf..f83b3697c0 100644 --- a/test/func.test +++ b/test/func.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 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 diff --git a/test/in.test b/test/in.test index a4bdd8b9d9..e8c9417f65 100644 --- a/test/in.test +++ b/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 diff --git a/test/index.test b/test/index.test index 2d6dc47002..1da4412974 100644 --- a/test/index.test +++ b/test/index.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 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 diff --git a/test/insert.test b/test/insert.test index 5eb4732994..8754769076 100644 --- a/test/insert.test +++ b/test/insert.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 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 diff --git a/test/insert2.test b/test/insert2.test index 5c5d95c8d5..59fb2e76e9 100644 --- a/test/insert2.test +++ b/test/insert2.test @@ -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 diff --git a/test/lock.test b/test/lock.test index 6283dd171a..c6eaf0bf8a 100644 --- a/test/lock.test +++ b/test/lock.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 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} { diff --git a/test/main.test b/test/main.test index 09a60db934..5dbcf59212 100644 --- a/test/main.test +++ b/test/main.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 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 diff --git a/test/malloc.test b/test/malloc.test index f8c66995df..bc008e0b7e 100644 --- a/test/malloc.test +++ b/test/malloc.test @@ -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 diff --git a/test/pager.test b/test/pager.test index 53ce9e9b8e..a39806f3a6 100644 --- a/test/pager.test +++ b/test/pager.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 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] diff --git a/test/printf.test b/test/printf.test index 7941ab4c30..98244c95b5 100644 --- a/test/printf.test +++ b/test/printf.test @@ -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 diff --git a/test/quick.test b/test/quick.test new file mode 100644 index 0000000000..904b5ede51 --- /dev/null +++ b/test/quick.test @@ -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 diff --git a/test/quote.test b/test/quote.test index 98036c5198..fa635debde 100644 --- a/test/quote.test +++ b/test/quote.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 diff --git a/test/rowid.test b/test/rowid.test index 3c5df631ee..b835f026fa 100644 --- a/test/rowid.test +++ b/test/rowid.test @@ -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 diff --git a/test/select1.test b/test/select1.test index e8d982f037..08aa84e384 100644 --- a/test/select1.test +++ b/test/select1.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 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 diff --git a/test/select2.test b/test/select2.test index cf79177fe9..ccce1a4c21 100644 --- a/test/select2.test +++ b/test/select2.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 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 diff --git a/test/select3.test b/test/select3.test index f77eae4b48..7052c392cb 100644 --- a/test/select3.test +++ b/test/select3.test @@ -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 diff --git a/test/select4.test b/test/select4.test index c90bf7c316..648de04d00 100644 --- a/test/select4.test +++ b/test/select4.test @@ -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 diff --git a/test/select5.test b/test/select5.test index 816e88da88..729268d2b9 100644 --- a/test/select5.test +++ b/test/select5.test @@ -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 diff --git a/test/sort.test b/test/sort.test index bb7d1e8b93..4a9939ee49 100644 --- a/test/sort.test +++ b/test/sort.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 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 diff --git a/test/subselect.test b/test/subselect.test index 5a436cd572..e2f2559f5f 100644 --- a/test/subselect.test +++ b/test/subselect.test @@ -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 diff --git a/test/table.test b/test/table.test index 151f122edc..5e06e64b71 100644 --- a/test/table.test +++ b/test/table.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 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 diff --git a/test/tableapi.test b/test/tableapi.test index 5cb6a79731..1cc873f4f2 100644 --- a/test/tableapi.test +++ b/test/tableapi.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 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 diff --git a/test/tclsqlite.test b/test/tclsqlite.test index fd1f37af0e..ea79886b8c 100644 --- a/test/tclsqlite.test +++ b/test/tclsqlite.test @@ -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 diff --git a/test/tester.tcl b/test/tester.tcl index 852a1a8eea..549645857a 100644 --- a/test/tester.tcl +++ b/test/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. diff --git a/test/trans.test b/test/trans.test index 0a4b031393..2947a47b0b 100644 --- a/test/trans.test +++ b/test/trans.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 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] diff --git a/test/update.test b/test/update.test index ca68788640..c389d20fb5 100644 --- a/test/update.test +++ b/test/update.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 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 diff --git a/test/vacuum.test b/test/vacuum.test index 1540f1ab07..6cc8838bac 100644 --- a/test/vacuum.test +++ b/test/vacuum.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 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 diff --git a/test/where.test b/test/where.test index 33e7a664ec..5e9776d41d 100644 --- a/test/where.test +++ b/test/where.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 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 diff --git a/tool/lemon.c b/tool/lemon.c index 41426caa97..c3b15b7e63 100644 --- a/tool/lemon.c +++ b/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 #include @@ -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 ){ diff --git a/tool/lempar.c b/tool/lempar.c index 0f301aeac8..a0b066f9d8 100644 --- a/tool/lempar.c +++ b/tool/lempar.c @@ -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. */ diff --git a/www/arch.fig b/www/arch.fig index 4a8811335e..50359e6724 100644 --- a/www/arch.fig +++ b/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 diff --git a/www/arch.png b/www/arch.png index 1afc31cd09c9b324648ffae2fcad4272e5cfcae1..77bf72000d73f5fa5f1529ad68c99b0fa5149c7a 100644 GIT binary patch delta 1958 zcmV;X2U+;R4xA7niBL{Q4GJ0x0000DNk~Le000240007v0RR9109uT`SCJtle+L9f zL_t(|+U?q1Y*SSn0Prms$HQ1%Vierc3YhH$KSl{`PlQt;iP48 z>_9LpD%qlYu~|PJeG`RbKuWxW8>x%8_r{QjOINzG+WRoJ+vOVCo8I2zz5Up3?>UQ1 zoph}Cp=*En=ihVwr|JE7=Tt%5e#SeilfR?PF(>33ZR6^l=4}KW?-hfB*`N41s-^7f8lFjsQqM~ za1AyLz3_&K%13XrO~TGRIBoWb<90nC;{=bu za(X_o4BG_{cTmrC!ff{3w&`-aV!@5aF1+4DJ?_<6H|&Qp%Cd5!e_Vz!Nu-v^+wJFu zWBTZLIM5VuhV(oiJns-{q6pt59UMS8OgdPU;ALwJU%yX~41=#51=tHZ;G|=tr38YNCHeIBm2WKY9R=Xc)A%)}py#GqFWN zS+*0OW7#@^;~HxRe~s1z?lk%~BO@uFMXNB%l5f}X;R^`M?UP5G5tR8+wg$uVM>sHx z@?2QJaeFwtH-)lqYjBW5IrkFJm(b~`fBfZ8*hl3`SFo13(iNb*e!GJInPa5-!>~cm zJ_4GcIHPBRP@)APCn*i9NrX&}xkZ*iy5DHxAmvWRV>hXZe?=DBJS+#@&m<0nIQQp^ z%#FBtF1G(7dz|JhK@ERn;Dl<=xIN8TSZy@q1VYIaUt&n8EaaHhax<2PdXxTt`om*$5#dbu@`s6Hba*V1%KpB4)6JCB=98>oLa*n^vV3SX0Dc;=rK_Due1VPB8a zaulk&fTa4CSxpiQ_caggs-YHwCu0VeyV<3b7vz$Re{@d1KROra3XyvvBfC2zLY@Pb zhA7FMKN=-LB;X9)Oy%D);LSuyf$Yxn%h4i-6c!8Ym|NtI*@$<}Ykw!OZ(^jWlet2w ze7fFP{|7a5>$TV~uK2fKK6mUIKqgP(YqAWR{@n*z2KeZe@Iw8;7g{7j&zV5egYQHV zWyhxJe+-f&d)1NUQI_7svdlY9afhP_&u`zDoI*yj!kVl(uJo~MnJaxP%9TF$|KaJR zT4@;!FDN%xagi59l_d~V?%Kg67BlK^e>umR?W%M}-Hww1MU}85FmG))8o`}Av1Fo; zP8VB?)Wvqea}V4Z2_;UnT<9eV>|`v0hXKEif6(kq+iiQ{goA8n`UU?Gn7oo^xi;o# zAzFS_Vc$Do(i~UWUYw=MN|LEwx`YjQ_A~wOHr9cA!g#{o#uP^a{hwJ|hfWYfu|yB` z%wQ`hw?%t0IgaOtE8+S0-k9t=Akm;lOm9dq!}nQx+J_hI-8V*_R+WmNCg zf8a_ZvX;5hh@iYa8xgs%if2LTVb#|BD~2d#OMXj$^+O#?cuw!^NkW!(*XEAj6u1pa z_iZ-7{`{3EabSt7ptQgq1T5X>%^klfCOKLwjK8k17|I>LDX>*xmQ`|#6S;FXMOK;- zl|AAto@cbIjQhQW4KNllm9T4TB5zG5f8p8FJ*g!1I9F%=u=c+b+US85aeMu+i9)&Q z4+lSrvV(uxK;n1+K04d@y{Eh=8){seFe53Odan*wx`MULm97Bg_1P5^+Jba<@q4)# zoofrY;rt1JCAQ>B#pJpCA9Q4cWvho{W%XEx`tdc~}yuviXdca=W zQZjA`qXf3FEQ#eH!18o?to)P5lF!nr?y%`tZl83jJ8XL9N5AjJoP?P_e3i%W+>{f? z?GfRU9U$!6(fVc&8Vxg1%(!JJ9Qtw70TRG)`P3WXzv~J#SA{YB7pL!T4n?^GL6dm~ zZCf)jOtLUCGD$T{N=`~MHaASPNJ_FWPcb!5HAplyH!}nPk(LO+;T)Rt0000PdQ@0+ sP+@0f004N}Gc-4;Ff%pMHqbTz01s3GXcxTN?f?J)07*qoM6N<$g8L4=h5!Hn delta 1737 zcmV;)1~&Pe5Wx;1iBL{Q4GJ0x0000DNk~Le0001{0008F0RR9104L@N&5Gy2XKo}JFrR1Hb~cCR>pLDv#QzDG--~lgTC45Uast4SG(lRn#A6! z6;rQ+VPr_%5JrPh2ZQy^*vcHH!`7r^=qxc|d$BFV7_II?sm&j+G&yp)XLreIl6#)A zIPHw>9T?@q!_VLSp5yXOq7?vfe=rpr*Hi_3SS!+qwOgXBitmyTuf@188leP8Lv=Bh z02HJehf?$GLOfoq4YJNJ)ib1lDAE=m{ukx-`-@fMv+Sc%ez#b0np*Pv0j%Cq^+h}7 z7WKgHnNrp-kQPzDWw1k%N-F8*E6e|+C%A_ZFj%M=;3By1VGtw=Dy(T(f6$eqeFLd; zt(V&vUHz=(cLjGR<&=K1X_`7eGhm`8$e&(_sO36S**Ty<(CJr9)44j~l%e{7mREi8X7l5VZ0sy3{0lrrm4Rq4v2b>q_^Pzu(gpg_w! zPtI5I*)bwg(#Rq-+5s@Q0yi(D${Rd(veH&pq}@iXea~cTW3gJP=EHp?*`*Tc!5xl> zuM!if9CJj539;58^*K%tiL~3;V0Vyeb&)cdtmR1cYn44kJ(R-^e@QB-qz^|K0Fsa< z*#{|HVd0{$@l-V-7p<)g1zrhGm_^#I+wZ)j7uRjSo_124F7pt3U zp^mje6^qYT}phTv>p}f zis5E(A|}?Pb?%%V)-z!(_yAHJo*3WZvLJX4;L$w04Xlwsfv}R`L!b>e_3#?X(p?=3fQVrz%w5Q z7_0Q#>SVH-W2%42KbNC7DiDg4qjZs5ld36)mrE0Pgo6?X(!CHXX z8Lmv-n$lSv;Z<+UD~(bH=X;pcc_V6l)l)t}f!s510dZE*+M`lmRAObcLk~&);Ig0F zIjmS?z!?K9e{jV_nndVrd$ZgVU%cv3c@n*~{kEJgg~rT-WXNfX4Msx)2b*&m4UNTI z(HmDxa@YLgI6)L@*cs(YCy|<8yF5Mi=FpOF^!u|zk@p6=v^iZ^s(jj$_)vlG_QZR? z)!Gne>_W}~t*ZYpNnt3$UzcEc<=@FlgG~0f#nvhye{@>c_O)JhQQN=Es+-oeaP#DK zdC+u|37-zOpQb04?W5d0dA%E$pUVK<{+*dLdp9`2%`>aBF;0il-C6zF1adlO=5$6- z=c)#c?=QzbzH{hoVD1gO+H`h^S9fo`|0Pw;UYqP)?0MbWqq{xgGtMCAfY#JTu2c%C z>C(0LfAe#{^)HAu6lngaV+PXT6?0WstarzqF#^(CT9hWcMt?ZugS1U?v8U31tj z`Y(C1;1 z-|C&m+2nAQnp2?%hB=V<1wX)a$kjcH&l)`CvqO?f`j}}QQk^Ahs_*3lgNZd0_|ZhW ze;^GyPo$v=?6}ihs)EiYw8ap$4U#$^UQ0-%`?Zn0E zuroRqQoEgTAhi$H7NvL6fQx##VD%{$KdKwt<+nqUO1hOg5J71$S+cUve1b@LOrWvk zgvY75RAmNH36Fij^0*|t^2(F>V>AAj7ODRL{8ehKB*cy00000NkvXXu0mjf@Q+jx diff --git a/www/arch.tcl b/www/arch.tcl index b4b63c3ad2..cafabb5ec0 100644 --- a/www/arch.tcl +++ b/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 { @@ -112,19 +112,24 @@ source file vdbe.c. The virtual machine also has its own header file vdbe.h that defines an interface between the virtual machine and the rest of the SQLite library.

-

Backend

+

B-tree Driver

-

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.

+

An SQLite database is maintained on disk using a B-tree implementation +found in the btree.c 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.

-

The backend is contained in the single source file dbbe.c. -The backend also has a header file dbbe.h that defines the -interface between the backend and the rest of the SQLite library.

+

Page Cache

+ +

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.

} puts { diff --git a/www/changes.tcl b/www/changes.tcl index 17e373b211..679d19f0ec 100644 --- a/www/changes.tcl +++ b/www/changes.tcl @@ -17,6 +17,17 @@ proc chng {date desc} { puts "

    $desc

" } +chng {2001 Sep 15 (2.0.0)} { +
  • 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.
  • +
  • The pager and btree subsystems added back. They are now the only + available backend.
  • +
  • The Dbbe abstraction and the GDBM and memory drivers were removed.
  • +
  • Copyright on all code was disclaimed. The library is now in the + public domain.
  • +} + chng {2001 Jul 23 (1.0.32)} {
  • Pager and btree subsystems removed. These will be used in a follow-on SQL server library named "SQLus".
  • diff --git a/www/index.tcl b/www/index.tcl index 619472cc38..49b138e27f 100644 --- a/www/index.tcl +++ b/www/index.tcl @@ -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 { SQLite: An SQL Database Library Built Atop GDBM @@ -17,11 +17,8 @@ puts {

    } puts {

    Introduction

    -

    SQLite is an SQL database library -(libsqlite.a) that uses -GDBM -as its underlying file storage mechanism. -Programs that link the SQLite library can have SQL database +

    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 (sqlite) that can @@ -32,22 +29,17 @@ an example of how to use the SQLite library.

    Features

      -
    • Implements most of SQL92.
    • -
    • A database is just a directory of GDBM files.
    • -
    • Unlimited length records.
    • -
    • Import and export data from -PostgreSQL.
    • +
    • Implements a large subset of SQL92.
    • +
    • A complete SQL database (with multiple tables and indices) is + stored in a single disk file.
    • +
    • Atomic commit and rollback protect data integrity.
    • +
    • Small memory footprint: about 12000 lines of C code.
    • Very simple C/C++ interface requires the use of only three functions and one opaque structure.
    • -
    • A Tcl interface is -included.
    • -
    • Command-line access program sqlite uses -the GNU -Readline library
    • -
    • A Tcl-based test suite provides near 100% code coverage
    • -
    • Approximately 9500 lines of C code. No external dependencies other -than GDBM.
    • +
    • A TCL interface to the library is included.
    • +
    • A TCL-based test suite provides near 100% code coverage.
    • +
    • Self-contained: no external dependencies.
    • Built and tested under Linux, HPUX, and WinNT.

    @@ -73,10 +65,6 @@ only reached when malloc() fails.

    -

    Important Note: 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.

    -

    Documentation

    The following documentation is currently available: