diff --git a/manifest b/manifest index 6ccebcf07b..9a953ef93c 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Use\sthe\snew\sform\sof\sthe\ssqlite3_create_function()\sAPI.\s(CVS\s1460) -D 2004-05-26T06:18:37 +C Remove\sthe\sshow_datatypes\spragma.\s(CVS\s1461) +D 2004-05-26T06:58:44 F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd @@ -37,7 +37,7 @@ F src/hash.c 440c2f8cb373ee1b4e13a0988489c7cd95d55b6f F src/hash.h 762d95f1e567664d1eafc1687de755626be962fb F src/insert.c 48bb15bff280767684a0f9ee4ae5973c9504f880 F src/legacy.c a856d2d5317ed2ac93c2c6cbba7d4faa564a5b20 -F src/main.c bb49b5a4394e94a56ea25d71bfdfb924bd43b7b6 +F src/main.c 2f144d7576413d73e146cb6f9fc33d5169610f8c F src/md5.c 833671b541a76fc0e62404433c9176706eeacdf0 F src/os.h ab42f4a7c4c716f26b988e759b6e12085a3bfc67 F src/os_common.h 744286a27de55c52f1b18921e8d17abbf7fafc0f @@ -50,16 +50,16 @@ F src/os_win.h 5d41af24caaef6c13a2d8e2399caa1c57d45c84d F src/pager.c 6ff6b906427d4824099140776cb8768f922f3dc5 F src/pager.h 78a00ac280899bcba1a89dc51585dcae6b7b3253 F src/parse.y 567718866b94d58a6c7681cc45ba7987771d583a -F src/pragma.c 02b57adda458874eddc2bd71d56d02e496759a97 +F src/pragma.c aa6a887017a512aba8c6bd9cd7c235b536a2b2f3 F src/printf.c ef750e8e2398ca7e8b58be991075f08c6a7f0e53 F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3 F src/select.c 42996047868542619a8879bce3b446d92c81ead0 F src/shell.c ed4d237b3e52a0a42512bfcc53530e46de20c28f F src/sqlite.h.in c36ab3d4dc1b863ba0cf79905210180b8059a839 -F src/sqliteInt.h 6559811caeae0d1855e0b973e363a8c5141e566b +F src/sqliteInt.h 323281bd04c7f988c6873777750acaa1f6b3b9a6 F src/table.c af14284fa36c8d41f6829e3f2819dce07d3e2de2 F src/tclsqlite.c 2700a35f494e8fc5ad2742bcae09d2cb66a295ab -F src/test1.c d23bf61826665d1c6df0d1e565cdf0b7a065e6ce +F src/test1.c d2e0b5e8a12dc70fa011748c01e4a7ef38cc5a8e F src/test2.c 6195a1ca2c8d0d2d93644e86da3289b403486872 F src/test3.c 5e4a6d596f982f6f47a5f9f75ede9b4a3b739968 F src/test4.c 014478492bddb3f9b4a3151b05f9ac708fe279fb @@ -127,7 +127,7 @@ F test/notnull.test 7a08117a71e74b0321aaa937dbeb41a09d6eb1d0 F test/null.test c14d0f4739f21e929b8115b72bf0c765b6bb1721 F test/pager.test 548968643d91c1c43a3a3eb1a232e9ca87b4069e F test/pager2.test 7ff175a28484fd324df9315dfe35f6fb159910ec -F test/pragma.test e763be8238c8a5a0cd8b75e8eec70b957da6081b +F test/pragma.test 1b6792d4af550ca4973096d77fc278dd6c32c4dd F test/printf.test 46b3d07d59d871d0831b4a657f6dfcafe0574850 F test/progress.test 701b6115c2613128ececdfe1398a1bd0e1a4cfb3 x F test/quick.test 8800cd2f6b45ce2cafadb0e3d5161688c61c946a @@ -203,7 +203,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604 F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4 -P 17e7db488dac6b30d174f2272edf1046c2bb9990 -R 113d8544ffd910b3c5420bd788cff980 +P 0317bef4b0c219ca2888c90553201e53230fb360 +R 250b3406a1267384090bf13650dde2b6 U danielk1977 -Z bc1bc018e744dabad71dcba7ffcd3363 +Z 468d6cd88bf024746a793243f549c65d diff --git a/manifest.uuid b/manifest.uuid index 7a699cdb7b..18279a5055 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0317bef4b0c219ca2888c90553201e53230fb360 \ No newline at end of file +93bb958d939302795027f738b8f663cbce3e8783 \ No newline at end of file diff --git a/src/main.c b/src/main.c index d2479aba59..fa9b22fee9 100644 --- a/src/main.c +++ b/src/main.c @@ -14,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.191 2004/05/26 06:18:37 danielk1977 Exp $ +** $Id: main.c,v 1.192 2004/05/26 06:58:44 danielk1977 Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -655,18 +655,12 @@ int sqlite3_create_function( FuncDef *p; int nName; - if( db==0 || zFunctionName==0 || sqlite3SafetyCheck(db) ){ - return SQLITE_ERROR; - } - if( (xFunc && (xFinal || xStep)) || (!xFunc && (!xFinal && !xStep)) ){ - return SQLITE_ERROR; - } - if( nArg<-1 || nArg>127 ){ - return SQLITE_ERROR; - } - - nName = strlen(zFunctionName); - if( nName>255 ){ + if( (db==0 || zFunctionName==0 || sqlite3SafetyCheck(db)) || + (xFunc && (xFinal || xStep)) || + (!xFunc && (xFinal && !xStep)) || + (!xFunc && (!xFinal && xStep)) || + (nArg<-1 || nArg>127) || + (255<(nName = strlen(zFunctionName))) ){ return SQLITE_ERROR; } @@ -678,7 +672,6 @@ int sqlite3_create_function( p->pUserData = pUserData; return SQLITE_OK; } - int sqlite3_create_function16( sqlite3 *db, const void *zFunctionName, diff --git a/src/pragma.c b/src/pragma.c index 1c45aa653b..4d72cad37d 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -11,7 +11,7 @@ ************************************************************************* ** This file contains code used to implement the PRAGMA command. ** -** $Id: pragma.c,v 1.30 2004/05/26 00:01:54 drh Exp $ +** $Id: pragma.c,v 1.31 2004/05/26 06:58:44 danielk1977 Exp $ */ #include "sqliteInt.h" #include @@ -119,7 +119,6 @@ static int flagPragma(Parse *pParse, const char *zLeft, const char *zRight){ { "vdbe_trace", SQLITE_VdbeTrace }, { "full_column_names", SQLITE_FullColNames }, { "short_column_names", SQLITE_ShortColNames }, - { "show_datatypes", SQLITE_ReportTypes }, { "count_changes", SQLITE_CountRows }, { "empty_result_callbacks", SQLITE_NullCallback }, }; diff --git a/src/sqliteInt.h b/src/sqliteInt.h index ad06d83b0d..3a94128be2 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -11,7 +11,7 @@ ************************************************************************* ** Internal interface definitions for SQLite. ** -** @(#) $Id: sqliteInt.h,v 1.251 2004/05/25 12:05:57 danielk1977 Exp $ +** @(#) $Id: sqliteInt.h,v 1.252 2004/05/26 06:58:44 danielk1977 Exp $ */ #include "config.h" #include "sqlite.h" @@ -444,8 +444,6 @@ struct sqlite { /* the count using a callback. */ #define SQLITE_NullCallback 0x00000100 /* Invoke the callback once if the */ /* result set is empty */ -#define SQLITE_ReportTypes 0x00000200 /* Include information on datatypes */ - /* in 4th argument of callback */ /* ** Possible values for the sqlite.magic field. diff --git a/src/test1.c b/src/test1.c index b9279d9aee..cc9aa3b5ba 100644 --- a/src/test1.c +++ b/src/test1.c @@ -13,7 +13,7 @@ ** is not included in the SQLite library. It is used for automated ** testing of the SQLite library. ** -** $Id: test1.c,v 1.55 2004/05/26 06:18:38 danielk1977 Exp $ +** $Id: test1.c,v 1.56 2004/05/26 06:58:44 danielk1977 Exp $ */ #include "sqliteInt.h" #include "tcl.h" @@ -719,35 +719,6 @@ static int rememberDataTypes(void *pArg, int nCol, char **argv, char **colv){ return 1; } -/* -** Invoke an SQL statement but ignore all the data in the result. Instead, -** return a list that consists of the datatypes of the various columns. -** -** This only works if "PRAGMA show_datatypes=on" has been executed against -** the database connection. -*/ -static int sqlite_datatypes( - void *NotUsed, - Tcl_Interp *interp, /* The TCL interpreter that invoked this command */ - int argc, /* Number of arguments */ - char **argv /* Text of each argument */ -){ - sqlite *db; - int rc; - if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], - " DB SQL", 0); - return TCL_ERROR; - } - if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR; - rc = sqlite3_exec(db, argv[2], rememberDataTypes, interp, 0); - if( rc!=0 && rc!=SQLITE_ABORT ){ - Tcl_AppendResult(interp, sqlite3_error_string(rc), 0); - return TCL_ERROR; - } - return TCL_OK; -} - /* ** Usage: sqlite3_finalize STMT ** @@ -1551,7 +1522,6 @@ int Sqlitetest1_Init(Tcl_Interp *interp){ { "sqlite3_create_aggregate", (Tcl_CmdProc*)test_create_aggregate }, { "sqlite_register_test_function", (Tcl_CmdProc*)test_register_func }, { "sqlite_abort", (Tcl_CmdProc*)sqlite_abort }, - { "sqlite_datatypes", (Tcl_CmdProc*)sqlite_datatypes }, #ifdef MEMORY_DEBUG { "sqlite_malloc_fail", (Tcl_CmdProc*)sqlite_malloc_fail }, { "sqlite_malloc_stat", (Tcl_CmdProc*)sqlite_malloc_stat }, diff --git a/test/pragma.test b/test/pragma.test index 2bb7f0a652..cb08e8ca73 100644 --- a/test/pragma.test +++ b/test/pragma.test @@ -12,7 +12,7 @@ # # This file implements tests for the PRAGMA command. # -# $Id: pragma.test,v 1.11 2004/05/21 02:14:25 drh Exp $ +# $Id: pragma.test,v 1.12 2004/05/26 06:58:45 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -164,82 +164,6 @@ do_test pragma-1.15 { } } {123 123 2 2} -do_test pragma-2.1 { - execsql { - PRAGMA show_datatypes=on; - PRAGMA empty_result_callbacks=off; - } - sqlite_datatypes $::DB {SELECT * FROM sqlite_master} -} {} -do_test pragma-2.2 { - execsql { - PRAGMA empty_result_callbacks=on; - } - sqlite_datatypes $::DB {SELECT * FROM sqlite_master} -} {text text text integer text} - -# Make sure we can read the schema when empty_result_callbacks are -# turned on. Ticket #406 -do_test pragma-2.2.1 { - execsql { - BEGIN; - CREATE TABLE tabx(a,b,c,d); - ROLLBACK; - SELECT count(*) FROM sqlite_master; - } -} {0} - -do_test pragma-2.3 { - execsql { - CREATE TABLE t1( - a INTEGER, - b TEXT, - c WHATEVER, - d CLOB, - e BLOB, - f VARCHAR(123), - g nVaRcHaR(432) - ); - } - sqlite_datatypes $::DB {SELECT * FROM t1} -} {INTEGER TEXT WHATEVER CLOB BLOB VARCHAR(123) nVaRcHaR(432)} -do_test pragma-2.4 { - sqlite_datatypes $::DB { - SELECT 1, 'hello', NULL - } -} {NUMERIC TEXT ANY} -do_test pragma-2.5 { - sqlite_datatypes $::DB { - SELECT 1+2 AS X, 'hello' || 5 AS Y, NULL AS Z - } -} {NUMERIC TEXT ANY} -do_test pragma-2.6 { - execsql { - CREATE VIEW v1 AS SELECT a+b, b||c, * FROM t1; - } - sqlite_datatypes $::DB {SELECT * FROM v1} -} {NUMERIC TEXT INTEGER TEXT WHATEVER CLOB BLOB VARCHAR(123) nVaRcHaR(432)} -do_test pragma-2.7 { - sqlite_datatypes $::DB { - SELECT d,e FROM t1 UNION SELECT a,c FROM t1 - } -} {INTEGER WHATEVER} -do_test pragma-2.8 { - sqlite_datatypes $::DB { - SELECT d,e FROM t1 EXCEPT SELECT c,e FROM t1 - } -} {WHATEVER BLOB} -do_test pragma-2.9 { - sqlite_datatypes $::DB { - SELECT d,e FROM t1 INTERSECT SELECT c,e FROM t1 - } -} {WHATEVER BLOB} -do_test pragma-2.10 { - sqlite_datatypes $::DB { - SELECT d,e FROM t1 INTERSECT SELECT c,e FROM v1 - } -} {WHATEVER BLOB} - # Construct a corrupted index and make sure the integrity_check # pragma finds it. #