mirror of
				https://github.com/sqlite/sqlite.git
				synced 2025-10-30 07:05:46 +03:00 
			
		
		
		
	Add infrastructure for the ANALYZE command. Does not yet actually
do anything. (CVS 2537) FossilOrigin-Name: 05b6ac9a76fd5765c50e81588f8e71c59fe35ce4
This commit is contained in:
		| @@ -112,7 +112,8 @@ TCC += -DSQLITE_OMIT_CURSOR | |||||||
|  |  | ||||||
| # Object files for the SQLite library. | # Object files for the SQLite library. | ||||||
| # | # | ||||||
| LIBOBJ = alter.lo attach.lo auth.lo btree.lo build.lo callback.lo date.lo \ | LIBOBJ = alter.lo analyze.lo attach.lo auth.lo btree.lo build.lo \ | ||||||
|  |          callback.lo date.lo \ | ||||||
|          delete.lo expr.lo func.lo hash.lo insert.lo \ |          delete.lo expr.lo func.lo hash.lo insert.lo \ | ||||||
|          main.lo opcodes.lo os_unix.lo os_win.lo \ |          main.lo opcodes.lo os_unix.lo os_win.lo \ | ||||||
|          pager.lo parse.lo pragma.lo prepare.lo printf.lo random.lo \ |          pager.lo parse.lo pragma.lo prepare.lo printf.lo random.lo \ | ||||||
| @@ -124,6 +125,7 @@ LIBOBJ = alter.lo attach.lo auth.lo btree.lo build.lo callback.lo date.lo \ | |||||||
| # | # | ||||||
| SRC = \ | SRC = \ | ||||||
|   $(TOP)/src/alter.c \ |   $(TOP)/src/alter.c \ | ||||||
|  |   $(TOP)/src/analyze.c \ | ||||||
|   $(TOP)/src/attach.c \ |   $(TOP)/src/attach.c \ | ||||||
|   $(TOP)/src/auth.c \ |   $(TOP)/src/auth.c \ | ||||||
|   $(TOP)/src/btree.c \ |   $(TOP)/src/btree.c \ | ||||||
| @@ -265,6 +267,9 @@ lemon$(BEXE):	$(TOP)/tool/lemon.c $(TOP)/tool/lempar.c | |||||||
| alter.lo:	$(TOP)/src/alter.c $(HDR) | alter.lo:	$(TOP)/src/alter.c $(HDR) | ||||||
| 	$(LTCOMPILE) -c $(TOP)/src/alter.c | 	$(LTCOMPILE) -c $(TOP)/src/alter.c | ||||||
|  |  | ||||||
|  | analyze.lo:	$(TOP)/src/analyze.c $(HDR) | ||||||
|  | 	$(LTCOMPILE) -c $(TOP)/src/analyze.c | ||||||
|  |  | ||||||
| attach.lo:	$(TOP)/src/attach.c $(HDR) | attach.lo:	$(TOP)/src/attach.c $(HDR) | ||||||
| 	$(LTCOMPILE) -c $(TOP)/src/attach.c | 	$(LTCOMPILE) -c $(TOP)/src/attach.c | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								main.mk
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								main.mk
									
									
									
									
									
								
							| @@ -54,7 +54,8 @@ TCCX = $(TCC) $(OPTS) $(THREADSAFE) $(USLEEP) -I. -I$(TOP)/src | |||||||
|  |  | ||||||
| # Object files for the SQLite library. | # Object files for the SQLite library. | ||||||
| # | # | ||||||
| LIBOBJ+= alter.o attach.o auth.o btree.o build.o callback.o date.o delete.o \ | LIBOBJ+= alter.o analyze.o attach.o auth.o btree.o build.o \ | ||||||
|  |          callback.o date.o delete.o \ | ||||||
|          expr.o func.o hash.o insert.o \ |          expr.o func.o hash.o insert.o \ | ||||||
|          main.o opcodes.o os_unix.o os_win.o \ |          main.o opcodes.o os_unix.o os_win.o \ | ||||||
|          pager.o parse.o pragma.o prepare.o printf.o random.o \ |          pager.o parse.o pragma.o prepare.o printf.o random.o \ | ||||||
| @@ -67,6 +68,7 @@ LIBOBJ+= alter.o attach.o auth.o btree.o build.o callback.o date.o delete.o \ | |||||||
| # | # | ||||||
| SRC = \ | SRC = \ | ||||||
|   $(TOP)/src/alter.c \ |   $(TOP)/src/alter.c \ | ||||||
|  |   $(TOP)/src/analyze.c \ | ||||||
|   $(TOP)/src/attach.c \ |   $(TOP)/src/attach.c \ | ||||||
|   $(TOP)/src/auth.c \ |   $(TOP)/src/auth.c \ | ||||||
|   $(TOP)/src/btree.c \ |   $(TOP)/src/btree.c \ | ||||||
| @@ -200,6 +202,9 @@ lemon:	$(TOP)/tool/lemon.c $(TOP)/tool/lempar.c | |||||||
| alter.o:	$(TOP)/src/alter.c $(HDR) | alter.o:	$(TOP)/src/alter.c $(HDR) | ||||||
| 	$(TCCX) -c $(TOP)/src/alter.c | 	$(TCCX) -c $(TOP)/src/alter.c | ||||||
|  |  | ||||||
|  | analyze.o:	$(TOP)/src/analyze.c $(HDR) | ||||||
|  | 	$(TCCX) -c $(TOP)/src/analyze.c | ||||||
|  |  | ||||||
| attach.o:	$(TOP)/src/attach.c $(HDR) | attach.o:	$(TOP)/src/attach.c $(HDR) | ||||||
| 	$(TCCX) -c $(TOP)/src/attach.c | 	$(TCCX) -c $(TOP)/src/attach.c | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										23
									
								
								manifest
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								manifest
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| C Fix\sa\squoting\sproblem\sin\sthe\sconfigure\sscript.\s(CVS\s2536) | C Add\sinfrastructure\sfor\sthe\sANALYZE\scommand.\s\sDoes\snot\syet\sactually\ndo\sanything.\s(CVS\s2537) | ||||||
| D 2005-07-06T13:51:27 | D 2005-07-08T12:13:04 | ||||||
| F Makefile.in 64a6635ef44a98325e0cffe8d67669920a3dad47 | F Makefile.in bc7bffc4ca6f09f2ffa9c9f5c43fc624fb566970 | ||||||
| F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7 | F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7 | ||||||
| F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 | F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 | ||||||
| F VERSION 44fad0bf0996660a11bf8187361de03941d9b7b0 | F VERSION 44fad0bf0996660a11bf8187361de03941d9b7b0 | ||||||
| @@ -16,7 +16,7 @@ F doc/lemon.html f0f682f50210928c07e562621c3b7e8ab912a538 | |||||||
| F doc/report1.txt a031aaf37b185e4fa540223cb516d3bccec7eeac | F doc/report1.txt a031aaf37b185e4fa540223cb516d3bccec7eeac | ||||||
| F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 | F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 | ||||||
| F ltmain.sh f6b283068efa69f06eb8aa1fe4bddfdbdeb35826 | F ltmain.sh f6b283068efa69f06eb8aa1fe4bddfdbdeb35826 | ||||||
| F main.mk 36e456f706ab73e8dd4a87d939f62f3dc265b886 | F main.mk 675e435ca670e30513907265cc9cc0c011b40c17 | ||||||
| F mkdll.sh 5ec23622515d5bf8969404e80cfb5e220ddf0512 | F mkdll.sh 5ec23622515d5bf8969404e80cfb5e220ddf0512 | ||||||
| F mkopcodec.awk bd46ad001c98dfbab07b1713cb8e692fa0e5415d | F mkopcodec.awk bd46ad001c98dfbab07b1713cb8e692fa0e5415d | ||||||
| F mkopcodeh.awk 7563ad235670e864ead95cf672be3fe081450ae0 | F mkopcodeh.awk 7563ad235670e864ead95cf672be3fe081450ae0 | ||||||
| @@ -28,6 +28,7 @@ F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc | |||||||
| F sqlite3.def c413e514217736884254739a105c8c942fdf0c2f | F sqlite3.def c413e514217736884254739a105c8c942fdf0c2f | ||||||
| F sqlite3.pc.in 985b9bf34192a549d7d370e0f0b6b34a4f61369a | F sqlite3.pc.in 985b9bf34192a549d7d370e0f0b6b34a4f61369a | ||||||
| F src/alter.c 03041f2464e22532601254f87cb49997fa21dcdf | F src/alter.c 03041f2464e22532601254f87cb49997fa21dcdf | ||||||
|  | F src/analyze.c 2f770b39f9d77353ac36db1861319e6323772f82 | ||||||
| F src/attach.c 3615dbe960cbee4aa5ea300b8a213dad36527b0f | F src/attach.c 3615dbe960cbee4aa5ea300b8a213dad36527b0f | ||||||
| F src/auth.c 18c5a0befe20f3a58a41e3ddd78f372faeeefe1f | F src/auth.c 18c5a0befe20f3a58a41e3ddd78f372faeeefe1f | ||||||
| F src/btree.c a167f412cf5b269bffba925ac55a1c0a2f749e29 | F src/btree.c a167f412cf5b269bffba925ac55a1c0a2f749e29 | ||||||
| @@ -55,7 +56,7 @@ F src/os_win.c fe7b99cfcfb61d9bf54493ddf5857885a657fb89 | |||||||
| F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b | F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b | ||||||
| F src/pager.c 841a2cdddd4275de36cda26ed9dc54ae942660ce | F src/pager.c 841a2cdddd4275de36cda26ed9dc54ae942660ce | ||||||
| F src/pager.h 0d9153d6269d60d04af3dd84a0cc0a96253cf4a4 | F src/pager.h 0d9153d6269d60d04af3dd84a0cc0a96253cf4a4 | ||||||
| F src/parse.y 6caf6855c13eb4e88cc1ad9596dc5a7ed58e9bb9 | F src/parse.y d57cdd2adc0923762b40314f08683c836a2e0c90 | ||||||
| F src/pragma.c dea86dad2f0e872b29632ae9fba526e539a4ddd8 | F src/pragma.c dea86dad2f0e872b29632ae9fba526e539a4ddd8 | ||||||
| F src/prepare.c d53602d2f8e097225ae7c76ec764ae68f759ba47 | F src/prepare.c d53602d2f8e097225ae7c76ec764ae68f759ba47 | ||||||
| F src/printf.c 3d20b21cfecadacecac3fb7274e746cb81d3d357 | F src/printf.c 3d20b21cfecadacecac3fb7274e746cb81d3d357 | ||||||
| @@ -63,10 +64,10 @@ F src/random.c 90adff4e73a3b249eb4f1fc2a6ff9cf78c7233a4 | |||||||
| F src/select.c 28b752e58955c7920711fbdbfdcd369a2bd09448 | F src/select.c 28b752e58955c7920711fbdbfdcd369a2bd09448 | ||||||
| F src/shell.c 25b3217d7c64e6497225439d261a253a23efff26 | F src/shell.c 25b3217d7c64e6497225439d261a253a23efff26 | ||||||
| F src/sqlite.h.in e06d5774e9cfa5962376ae988300a9f114a3e3d7 | F src/sqlite.h.in e06d5774e9cfa5962376ae988300a9f114a3e3d7 | ||||||
| F src/sqliteInt.h cdd46c945d777fe93b65ae075e972e22e699fa16 | F src/sqliteInt.h a5ad4b51d99ada5e065808670f7cef87264606df | ||||||
| F src/table.c 25b3ff2b39b7d87e8d4a5da0713d68dfc06cbee9 | F src/table.c 25b3ff2b39b7d87e8d4a5da0713d68dfc06cbee9 | ||||||
| F src/tclsqlite.c cccaf6b78c290d824cf8ea089b8b27377e545830 | F src/tclsqlite.c cccaf6b78c290d824cf8ea089b8b27377e545830 | ||||||
| F src/test1.c b2885afb71c93e49db6a36f101fe38c71e7e3d6c | F src/test1.c 83ead44dead55033adff61ce69a1e2fc3e72935e | ||||||
| F src/test2.c 716c1809dba8e5be6093703e9cada99d627542dc | F src/test2.c 716c1809dba8e5be6093703e9cada99d627542dc | ||||||
| F src/test3.c 683e1e3819152ffd35da2f201e507228921148d0 | F src/test3.c 683e1e3819152ffd35da2f201e507228921148d0 | ||||||
| F src/test4.c 7c6b9fc33dd1f3f93c7f1ee6e5e6d016afa6c1df | F src/test4.c 7c6b9fc33dd1f3f93c7f1ee6e5e6d016afa6c1df | ||||||
| @@ -227,7 +228,7 @@ F tool/lempar.c f0c30abcae762a7d1eb37cd88b2232ab8dd625fb | |||||||
| F tool/memleak.awk 4e7690a51bf3ed757e611273d43fe3f65b510133 | F tool/memleak.awk 4e7690a51bf3ed757e611273d43fe3f65b510133 | ||||||
| F tool/memleak2.awk 9cc20c8e8f3c675efac71ea0721ee6874a1566e8 | F tool/memleak2.awk 9cc20c8e8f3c675efac71ea0721ee6874a1566e8 | ||||||
| F tool/memleak3.tcl 009da0ea82dc5893edca76cf1a21fb7260e9412e | F tool/memleak3.tcl 009da0ea82dc5893edca76cf1a21fb7260e9412e | ||||||
| F tool/mkkeywordhash.c e4ba5010348303b1dbab41326191e7f37f8a036f | F tool/mkkeywordhash.c e0b7833fef924e3c75d5e5c28fdcdb879909bdfb | ||||||
| F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e x | F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e x | ||||||
| F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c | F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c | ||||||
| F tool/report1.txt 9eae07f26a8fc53889b45fc833a66a33daa22816 | F tool/report1.txt 9eae07f26a8fc53889b45fc833a66a33daa22816 | ||||||
| @@ -283,7 +284,7 @@ F www/tclsqlite.tcl 425be741b8ae664f55cb1ef2371aab0a75109cf9 | |||||||
| F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 | F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 | ||||||
| F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b | F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b | ||||||
| F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b | F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b | ||||||
| P d3b03495a46e79a9d82525a61bad99eef9469ad1 | P b34647a2ebec6f915f9914034e9370459873215e | ||||||
| R 31da939da5f412be3d17d7c92021596c | R e47c1bc2e59627b5b8cf84918bbd5426 | ||||||
| U drh | U drh | ||||||
| Z 1e010b424bd6ccd912acc5e4f917dc09 | Z 50fe8e6711c2298fa85b1472b5a9b5e5 | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| b34647a2ebec6f915f9914034e9370459873215e | 05b6ac9a76fd5765c50e81588f8e71c59fe35ce4 | ||||||
							
								
								
									
										34
									
								
								src/analyze.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/analyze.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | /* | ||||||
|  | ** 2005 July 8 | ||||||
|  | ** | ||||||
|  | ** 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 contains code associated with the ANALYZE command. | ||||||
|  | ** | ||||||
|  | ** @(#) $Id: analyze.c,v 1.1 2005/07/08 12:13:05 drh Exp $ | ||||||
|  | */ | ||||||
|  | #ifndef SQLITE_OMIT_ANALYZE | ||||||
|  | #include "sqliteInt.h" | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | ** Generate code for the ANALYZE command | ||||||
|  | ** | ||||||
|  | **        ANALYZE                            -- 1 | ||||||
|  | **        ANALYZE  <database >               -- 2 | ||||||
|  | **        ANALYZE  ?<database>.?<tablename>  -- 3 | ||||||
|  | ** | ||||||
|  | ** Form 1 causes all indices in all attached databases to be analyzed. | ||||||
|  | ** Form 2 analyzes all indices the single database named. | ||||||
|  | ** Form 3 analyzes all indices associated with the named table. | ||||||
|  | */ | ||||||
|  | void sqlite3Analyze(Parse *pParse, Token *pName1, Token *pName2){ | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif /* SQLITE_OMIT_ANALYZE */ | ||||||
							
								
								
									
										10
									
								
								src/parse.y
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								src/parse.y
									
									
									
									
									
								
							| @@ -14,7 +14,7 @@ | |||||||
| ** the parser.  Lemon will also generate a header file containing | ** the parser.  Lemon will also generate a header file containing | ||||||
| ** numeric codes for all of the tokens. | ** numeric codes for all of the tokens. | ||||||
| ** | ** | ||||||
| ** @(#) $Id: parse.y,v 1.174 2005/06/30 17:04:21 drh Exp $ | ** @(#) $Id: parse.y,v 1.175 2005/07/08 12:13:05 drh Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| // All token codes are small integers with #defines that begin with "TK_" | // All token codes are small integers with #defines that begin with "TK_" | ||||||
| @@ -170,7 +170,7 @@ id(A) ::= ID(X).         {A = X;} | |||||||
| // This obviates the need for the "id" nonterminal. | // This obviates the need for the "id" nonterminal. | ||||||
| // | // | ||||||
| %fallback ID | %fallback ID | ||||||
|   ABORT AFTER ASC ATTACH BEFORE BEGIN CASCADE CAST CONFLICT |   ABORT AFTER ANALYZE ASC ATTACH BEFORE BEGIN CASCADE CAST CONFLICT | ||||||
|   DATABASE DEFERRED DESC DETACH EACH END EXCLUSIVE EXPLAIN FAIL FOR |   DATABASE DEFERRED DESC DETACH EACH END EXCLUSIVE EXPLAIN FAIL FOR | ||||||
|   IGNORE IMMEDIATE INITIALLY INSTEAD LIKE_KW MATCH KEY |   IGNORE IMMEDIATE INITIALLY INSTEAD LIKE_KW MATCH KEY | ||||||
|   OF OFFSET PRAGMA RAISE REPLACE RESTRICT ROW STATEMENT |   OF OFFSET PRAGMA RAISE REPLACE RESTRICT ROW STATEMENT | ||||||
| @@ -1020,6 +1020,12 @@ cmd ::= REINDEX.                {sqlite3Reindex(pParse, 0, 0);} | |||||||
| cmd ::= REINDEX nm(X) dbnm(Y).  {sqlite3Reindex(pParse, &X, &Y);} | cmd ::= REINDEX nm(X) dbnm(Y).  {sqlite3Reindex(pParse, &X, &Y);} | ||||||
| %endif | %endif | ||||||
|  |  | ||||||
|  | /////////////////////////////////// ANALYZE /////////////////////////////////// | ||||||
|  | %ifndef SQLITE_OMIT_ANALYZE | ||||||
|  | cmd ::= ANALYZE.                {sqlite3Analyze(pParse, 0, 0);} | ||||||
|  | cmd ::= ANALYZE nm(X) dbnm(Y).  {sqlite3Analyze(pParse, &X, &Y);} | ||||||
|  | %endif | ||||||
|  |  | ||||||
| //////////////////////// ALTER TABLE table ... //////////////////////////////// | //////////////////////// ALTER TABLE table ... //////////////////////////////// | ||||||
| %ifndef SQLITE_OMIT_ALTERTABLE | %ifndef SQLITE_OMIT_ALTERTABLE | ||||||
| cmd ::= ALTER TABLE fullname(X) RENAME TO nm(Z). { | cmd ::= ALTER TABLE fullname(X) RENAME TO nm(Z). { | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
| ************************************************************************* | ************************************************************************* | ||||||
| ** Internal interface definitions for SQLite. | ** Internal interface definitions for SQLite. | ||||||
| ** | ** | ||||||
| ** @(#) $Id: sqliteInt.h,v 1.389 2005/06/30 17:04:21 drh Exp $ | ** @(#) $Id: sqliteInt.h,v 1.390 2005/07/08 12:13:05 drh Exp $ | ||||||
| */ | */ | ||||||
| #ifndef _SQLITEINT_H_ | #ifndef _SQLITEINT_H_ | ||||||
| #define _SQLITEINT_H_ | #define _SQLITEINT_H_ | ||||||
| @@ -1565,6 +1565,7 @@ void sqlite3AlterBeginAddColumn(Parse *, SrcList *); | |||||||
| const char *sqlite3TestErrorName(int); | const char *sqlite3TestErrorName(int); | ||||||
| CollSeq *sqlite3GetCollSeq(sqlite3*, CollSeq *, const char *, int); | CollSeq *sqlite3GetCollSeq(sqlite3*, CollSeq *, const char *, int); | ||||||
| char sqlite3AffinityType(const Token*); | char sqlite3AffinityType(const Token*); | ||||||
|  | void sqlite3Analyze(Parse*, Token*, Token*); | ||||||
|  |  | ||||||
| #ifdef SQLITE_SSE | #ifdef SQLITE_SSE | ||||||
| #include "sseInt.h" | #include "sseInt.h" | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								src/test1.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								src/test1.c
									
									
									
									
									
								
							| @@ -13,7 +13,7 @@ | |||||||
| ** is not included in the SQLite library.  It is used for automated | ** is not included in the SQLite library.  It is used for automated | ||||||
| ** testing of the SQLite library. | ** testing of the SQLite library. | ||||||
| ** | ** | ||||||
| ** $Id: test1.c,v 1.146 2005/06/25 19:31:48 drh Exp $ | ** $Id: test1.c,v 1.147 2005/07/08 12:13:05 drh Exp $ | ||||||
| */ | */ | ||||||
| #include "sqliteInt.h" | #include "sqliteInt.h" | ||||||
| #include "tcl.h" | #include "tcl.h" | ||||||
| @@ -2759,12 +2759,24 @@ static void set_options(Tcl_Interp *interp){ | |||||||
|   Tcl_SetVar2(interp, "sqlite_options", "rowid32", "0", TCL_GLOBAL_ONLY); |   Tcl_SetVar2(interp, "sqlite_options", "rowid32", "0", TCL_GLOBAL_ONLY); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #ifdef SQLITE_CASE_SENSITIVE_LIKE | ||||||
|  |   Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","1",TCL_GLOBAL_ONLY); | ||||||
|  | #else | ||||||
|  |   Tcl_SetVar2(interp, "sqlite_options","casesensitivelike","0",TCL_GLOBAL_ONLY); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifdef SQLITE_OMIT_ALTERTABLE | #ifdef SQLITE_OMIT_ALTERTABLE | ||||||
|   Tcl_SetVar2(interp, "sqlite_options", "altertable", "0", TCL_GLOBAL_ONLY); |   Tcl_SetVar2(interp, "sqlite_options", "altertable", "0", TCL_GLOBAL_ONLY); | ||||||
| #else | #else | ||||||
|   Tcl_SetVar2(interp, "sqlite_options", "altertable", "1", TCL_GLOBAL_ONLY); |   Tcl_SetVar2(interp, "sqlite_options", "altertable", "1", TCL_GLOBAL_ONLY); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #ifdef SQLITE_OMIT_ANALYZE | ||||||
|  |   Tcl_SetVar2(interp, "sqlite_options", "analyze", "0", TCL_GLOBAL_ONLY); | ||||||
|  | #else | ||||||
|  |   Tcl_SetVar2(interp, "sqlite_options", "analyze", "1", TCL_GLOBAL_ONLY); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifdef SQLITE_OMIT_AUTHORIZATION | #ifdef SQLITE_OMIT_AUTHORIZATION | ||||||
|   Tcl_SetVar2(interp, "sqlite_options", "auth", "0", TCL_GLOBAL_ONLY); |   Tcl_SetVar2(interp, "sqlite_options", "auth", "0", TCL_GLOBAL_ONLY); | ||||||
| #else | #else | ||||||
|   | |||||||
| @@ -32,73 +32,78 @@ struct Keyword { | |||||||
| #ifdef SQLITE_OMIT_ALTERTABLE | #ifdef SQLITE_OMIT_ALTERTABLE | ||||||
| #  define ALTER      0 | #  define ALTER      0 | ||||||
| #else | #else | ||||||
| #  define ALTER      1 | #  define ALTER      0x00000001 | ||||||
|  | #endif | ||||||
|  | #define ALWAYS       0x00000002 | ||||||
|  | #ifdef SQLITE_OMIT_ANALYZE | ||||||
|  | #  define ANALYZE    0 | ||||||
|  | #else | ||||||
|  | #  define ANALYZE    0x00000004 | ||||||
| #endif | #endif | ||||||
| #define ALWAYS     2 |  | ||||||
| #ifdef SQLITE_OMIT_ATTACH | #ifdef SQLITE_OMIT_ATTACH | ||||||
| #  define ATTACH     0 | #  define ATTACH     0 | ||||||
| #else | #else | ||||||
| #  define ATTACH     4 | #  define ATTACH     0x00000008 | ||||||
| #endif | #endif | ||||||
| #ifdef SQLITE_OMIT_AUTOINCREMENT | #ifdef SQLITE_OMIT_AUTOINCREMENT | ||||||
| #  define AUTOINCR   0 | #  define AUTOINCR   0 | ||||||
| #else | #else | ||||||
| #  define AUTOINCR   8 | #  define AUTOINCR   0x00000010 | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_COMPOUND_SELECT |  | ||||||
| #  define COMPOUND   0 |  | ||||||
| #else |  | ||||||
| #  define COMPOUND   16 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_CONFLICT_CLAUSE |  | ||||||
| #  define CONFLICT   0 |  | ||||||
| #else |  | ||||||
| #  define CONFLICT   32 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_EXPLAIN |  | ||||||
| #  define EXPLAIN    0 |  | ||||||
| #else |  | ||||||
| #  define EXPLAIN    128 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_FOREIGN_KEY |  | ||||||
| #  define FKEY       0 |  | ||||||
| #else |  | ||||||
| #  define FKEY       256 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_PRAGMA |  | ||||||
| #  define PRAGMA     0 |  | ||||||
| #else |  | ||||||
| #  define PRAGMA     512 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_REINDEX |  | ||||||
| #  define REINDEX    0 |  | ||||||
| #else |  | ||||||
| #  define REINDEX    1024 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_SUBQUERY |  | ||||||
| #  define SUBQUERY   0 |  | ||||||
| #else |  | ||||||
| #  define SUBQUERY   2048 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_TRIGGER |  | ||||||
| #  define TRIGGER    0 |  | ||||||
| #else |  | ||||||
| #  define TRIGGER    4096 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_VACUUM |  | ||||||
| #  define VACUUM     0 |  | ||||||
| #else |  | ||||||
| #  define VACUUM     8192 |  | ||||||
| #endif |  | ||||||
| #ifdef SQLITE_OMIT_VIEW |  | ||||||
| #  define VIEW       0 |  | ||||||
| #else |  | ||||||
| #  define VIEW       16384 |  | ||||||
| #endif | #endif | ||||||
| #ifdef SQLITE_OMIT_CAST | #ifdef SQLITE_OMIT_CAST | ||||||
| #  define CAST       0 | #  define CAST       0 | ||||||
| #else | #else | ||||||
| #  define CAST       32768 | #  define CAST       0x00000020 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_COMPOUND_SELECT | ||||||
|  | #  define COMPOUND   0 | ||||||
|  | #else | ||||||
|  | #  define COMPOUND   0x00000040 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_CONFLICT_CLAUSE | ||||||
|  | #  define CONFLICT   0 | ||||||
|  | #else | ||||||
|  | #  define CONFLICT   0x00000080 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_EXPLAIN | ||||||
|  | #  define EXPLAIN    0 | ||||||
|  | #else | ||||||
|  | #  define EXPLAIN    0x00000100 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_FOREIGN_KEY | ||||||
|  | #  define FKEY       0 | ||||||
|  | #else | ||||||
|  | #  define FKEY       0x00000200 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_PRAGMA | ||||||
|  | #  define PRAGMA     0 | ||||||
|  | #else | ||||||
|  | #  define PRAGMA     0x00000400 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_REINDEX | ||||||
|  | #  define REINDEX    0 | ||||||
|  | #else | ||||||
|  | #  define REINDEX    0x00000800 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_SUBQUERY | ||||||
|  | #  define SUBQUERY   0 | ||||||
|  | #else | ||||||
|  | #  define SUBQUERY   0x00001000 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_TRIGGER | ||||||
|  | #  define TRIGGER    0 | ||||||
|  | #else | ||||||
|  | #  define TRIGGER    0x00002000 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_VACUUM | ||||||
|  | #  define VACUUM     0 | ||||||
|  | #else | ||||||
|  | #  define VACUUM     0x00004000 | ||||||
|  | #endif | ||||||
|  | #ifdef SQLITE_OMIT_VIEW | ||||||
|  | #  define VIEW       0 | ||||||
|  | #else | ||||||
|  | #  define VIEW       0x00008000 | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -111,6 +116,7 @@ static Keyword aKeywordTable[] = { | |||||||
|   { "AFTER",            "TK_AFTER",        TRIGGER                }, |   { "AFTER",            "TK_AFTER",        TRIGGER                }, | ||||||
|   { "ALL",              "TK_ALL",          ALWAYS                 }, |   { "ALL",              "TK_ALL",          ALWAYS                 }, | ||||||
|   { "ALTER",            "TK_ALTER",        ALTER                  }, |   { "ALTER",            "TK_ALTER",        ALTER                  }, | ||||||
|  |   { "ANALYZE",          "TK_ANALYZE",      ANALYZE                }, | ||||||
|   { "AND",              "TK_AND",          ALWAYS                 }, |   { "AND",              "TK_AND",          ALWAYS                 }, | ||||||
|   { "AS",               "TK_AS",           ALWAYS                 }, |   { "AS",               "TK_AS",           ALWAYS                 }, | ||||||
|   { "ASC",              "TK_ASC",          ALWAYS                 }, |   { "ASC",              "TK_ASC",          ALWAYS                 }, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user