Modify the aBuiltinFunc array in func.c to use the WSD macros. (CVS 5653)
FossilOrigin-Name: 846fff5f0902418cfce2915d2ccfe567481a1289
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
C Begin\sadding\ssupport\sfor\sthe\sSQLITE_OMIT_WSD\smacro.\sSome\s(many)\sWSD\svariables\sstill\sneed\swrappers\sadded\sto\sthem.\s(CVS\s5652)
|
C Modify\sthe\saBuiltinFunc\sarray\sin\sfunc.c\sto\suse\sthe\sWSD\smacros.\s(CVS\s5653)
|
||||||
D 2008-09-01T18:34:20
|
D 2008-09-01T19:14:02
|
||||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||||
F Makefile.in 689e14735f862a5553bceef206d8c13e29504e44
|
F Makefile.in 689e14735f862a5553bceef206d8c13e29504e44
|
||||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||||
@@ -107,7 +107,7 @@ F src/date.c 6609557446f2d6788e64e18c09e03fdaf4dd55cc
|
|||||||
F src/delete.c 434dd6f9d19475b35f2f57041d4bbba9f64da5ac
|
F src/delete.c 434dd6f9d19475b35f2f57041d4bbba9f64da5ac
|
||||||
F src/expr.c 6413795aa13ceb05994e6b2b453a77df3b892e7b
|
F src/expr.c 6413795aa13ceb05994e6b2b453a77df3b892e7b
|
||||||
F src/fault.c 3638519d1e0b82bccfafcb9f5ff491918b28f8e1
|
F src/fault.c 3638519d1e0b82bccfafcb9f5ff491918b28f8e1
|
||||||
F src/func.c 964a610bd68d79764f9e435615d723146f94f0e0
|
F src/func.c c02615eafbe415d32d02499d31bbb1f72f052868
|
||||||
F src/global.c 9ced7c26127f04fb4baaebed1f5bf6d7063b089f
|
F src/global.c 9ced7c26127f04fb4baaebed1f5bf6d7063b089f
|
||||||
F src/hash.c eb64e48f3781100e5934f759fbe72a63a8fe78cb
|
F src/hash.c eb64e48f3781100e5934f759fbe72a63a8fe78cb
|
||||||
F src/hash.h 031cd9f915aff27e12262cb9eb570ac1b8326b53
|
F src/hash.h 031cd9f915aff27e12262cb9eb570ac1b8326b53
|
||||||
@@ -630,7 +630,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
|
|||||||
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||||
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
|
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
|
||||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||||
P 7a577428b22918c232815e7998a623dbc47a8d41
|
P 573d92abb9adb1c321ebc2fcadcf14374213b093
|
||||||
R b45f7764c971fd9d217268e94c98eacf
|
R 3abac82e1ee45358c8492ec6124a4409
|
||||||
U danielk1977
|
U danielk1977
|
||||||
Z a30ccc5ce0944839576c9352eb85797d
|
Z b414667c5cfbc125e0f377ce623ab83e
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
573d92abb9adb1c321ebc2fcadcf14374213b093
|
846fff5f0902418cfce2915d2ccfe567481a1289
|
||||||
+74
-71
@@ -16,7 +16,7 @@
|
|||||||
** sqliteRegisterBuildinFunctions() found at the bottom of the file.
|
** sqliteRegisterBuildinFunctions() found at the bottom of the file.
|
||||||
** All other code has file scope.
|
** All other code has file scope.
|
||||||
**
|
**
|
||||||
** $Id: func.c,v 1.200 2008/09/01 18:34:20 danielk1977 Exp $
|
** $Id: func.c,v 1.201 2008/09/01 19:14:02 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@@ -1296,74 +1296,6 @@ int sqlite3IsLikeFunction(sqlite3 *db, Expr *pExpr, int *pIsNocase, char *aWc){
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
** The following array holds FuncDef structures for all of the functions
|
|
||||||
** defined in this file.
|
|
||||||
**
|
|
||||||
** The array cannot be constant since changes are made to the
|
|
||||||
** FuncDef.pHash elements at start-time. The elements of this array
|
|
||||||
** are read-only after initialization is complete.
|
|
||||||
*/
|
|
||||||
static FuncDef aBuiltinFunc[] = {
|
|
||||||
FUNCTION(ltrim, 1, 1, 0, trimFunc ),
|
|
||||||
FUNCTION(ltrim, 2, 1, 0, trimFunc ),
|
|
||||||
FUNCTION(rtrim, 1, 2, 0, trimFunc ),
|
|
||||||
FUNCTION(rtrim, 2, 2, 0, trimFunc ),
|
|
||||||
FUNCTION(trim, 1, 3, 0, trimFunc ),
|
|
||||||
FUNCTION(trim, 2, 3, 0, trimFunc ),
|
|
||||||
FUNCTION(min, -1, 0, 1, minmaxFunc ),
|
|
||||||
FUNCTION(min, 0, 0, 1, 0 ),
|
|
||||||
AGGREGATE(min, 1, 0, 1, minmaxStep, minMaxFinalize ),
|
|
||||||
FUNCTION(max, -1, 1, 1, minmaxFunc ),
|
|
||||||
FUNCTION(max, 0, 1, 1, 0 ),
|
|
||||||
AGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize ),
|
|
||||||
FUNCTION(typeof, 1, 0, 0, typeofFunc ),
|
|
||||||
FUNCTION(length, 1, 0, 0, lengthFunc ),
|
|
||||||
FUNCTION(substr, 2, 0, 0, substrFunc ),
|
|
||||||
FUNCTION(substr, 3, 0, 0, substrFunc ),
|
|
||||||
FUNCTION(abs, 1, 0, 0, absFunc ),
|
|
||||||
FUNCTION(round, 1, 0, 0, roundFunc ),
|
|
||||||
FUNCTION(round, 2, 0, 0, roundFunc ),
|
|
||||||
FUNCTION(upper, 1, 0, 0, upperFunc ),
|
|
||||||
FUNCTION(lower, 1, 0, 0, lowerFunc ),
|
|
||||||
FUNCTION(coalesce, 1, 0, 0, 0 ),
|
|
||||||
FUNCTION(coalesce, -1, 0, 0, ifnullFunc ),
|
|
||||||
FUNCTION(coalesce, 0, 0, 0, 0 ),
|
|
||||||
FUNCTION(hex, 1, 0, 0, hexFunc ),
|
|
||||||
FUNCTION(ifnull, 2, 0, 1, ifnullFunc ),
|
|
||||||
FUNCTION(random, -1, 0, 0, randomFunc ),
|
|
||||||
FUNCTION(randomblob, 1, 0, 0, randomBlob ),
|
|
||||||
FUNCTION(nullif, 2, 0, 1, nullifFunc ),
|
|
||||||
FUNCTION(sqlite_version, 0, 0, 0, versionFunc ),
|
|
||||||
FUNCTION(quote, 1, 0, 0, quoteFunc ),
|
|
||||||
FUNCTION(last_insert_rowid, 0, 0, 0, last_insert_rowid),
|
|
||||||
FUNCTION(changes, 0, 0, 0, changes ),
|
|
||||||
FUNCTION(total_changes, 0, 0, 0, total_changes ),
|
|
||||||
FUNCTION(replace, 3, 0, 0, replaceFunc ),
|
|
||||||
FUNCTION(zeroblob, 1, 0, 0, zeroblobFunc ),
|
|
||||||
#ifdef SQLITE_SOUNDEX
|
|
||||||
FUNCTION(soundex, 1, 0, 0, soundexFunc ),
|
|
||||||
#endif
|
|
||||||
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
|
||||||
FUNCTION(load_extension, 1, 0, 0, loadExt ),
|
|
||||||
FUNCTION(load_extension, 2, 0, 0, loadExt ),
|
|
||||||
#endif
|
|
||||||
AGGREGATE(sum, 1, 0, 0, sumStep, sumFinalize ),
|
|
||||||
AGGREGATE(total, 1, 0, 0, sumStep, totalFinalize ),
|
|
||||||
AGGREGATE(avg, 1, 0, 0, sumStep, avgFinalize ),
|
|
||||||
AGGREGATE(count, 0, 0, 0, countStep, countFinalize ),
|
|
||||||
AGGREGATE(count, 1, 0, 0, countStep, countFinalize ),
|
|
||||||
AGGREGATE(group_concat, -1, 0, 0, groupConcatStep, groupConcatFinalize),
|
|
||||||
|
|
||||||
LIKEFUNC(glob, 2, &globInfo, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
|
|
||||||
#ifdef SQLITE_CASE_SENSITIVE_LIKE
|
|
||||||
LIKEFUNC(like, 2, &likeInfoAlt, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
|
|
||||||
LIKEFUNC(like, 3, &likeInfoAlt, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
|
|
||||||
#else
|
|
||||||
LIKEFUNC(like, 2, &likeInfoNorm, SQLITE_FUNC_LIKE),
|
|
||||||
LIKEFUNC(like, 3, &likeInfoNorm, SQLITE_FUNC_LIKE),
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** All all of the FuncDef structures in the aBuiltinFunc[] array above
|
** All all of the FuncDef structures in the aBuiltinFunc[] array above
|
||||||
@@ -1373,10 +1305,81 @@ static FuncDef aBuiltinFunc[] = {
|
|||||||
** After this routine runs
|
** After this routine runs
|
||||||
*/
|
*/
|
||||||
void sqlite3RegisterGlobalFunctions(void){
|
void sqlite3RegisterGlobalFunctions(void){
|
||||||
|
/*
|
||||||
|
** The following array holds FuncDef structures for all of the functions
|
||||||
|
** defined in this file.
|
||||||
|
**
|
||||||
|
** The array cannot be constant since changes are made to the
|
||||||
|
** FuncDef.pHash elements at start-time. The elements of this array
|
||||||
|
** are read-only after initialization is complete.
|
||||||
|
*/
|
||||||
|
static SQLITE_WSD FuncDef aBuiltinFunc[] = {
|
||||||
|
FUNCTION(ltrim, 1, 1, 0, trimFunc ),
|
||||||
|
FUNCTION(ltrim, 2, 1, 0, trimFunc ),
|
||||||
|
FUNCTION(rtrim, 1, 2, 0, trimFunc ),
|
||||||
|
FUNCTION(rtrim, 2, 2, 0, trimFunc ),
|
||||||
|
FUNCTION(trim, 1, 3, 0, trimFunc ),
|
||||||
|
FUNCTION(trim, 2, 3, 0, trimFunc ),
|
||||||
|
FUNCTION(min, -1, 0, 1, minmaxFunc ),
|
||||||
|
FUNCTION(min, 0, 0, 1, 0 ),
|
||||||
|
AGGREGATE(min, 1, 0, 1, minmaxStep, minMaxFinalize ),
|
||||||
|
FUNCTION(max, -1, 1, 1, minmaxFunc ),
|
||||||
|
FUNCTION(max, 0, 1, 1, 0 ),
|
||||||
|
AGGREGATE(max, 1, 1, 1, minmaxStep, minMaxFinalize ),
|
||||||
|
FUNCTION(typeof, 1, 0, 0, typeofFunc ),
|
||||||
|
FUNCTION(length, 1, 0, 0, lengthFunc ),
|
||||||
|
FUNCTION(substr, 2, 0, 0, substrFunc ),
|
||||||
|
FUNCTION(substr, 3, 0, 0, substrFunc ),
|
||||||
|
FUNCTION(abs, 1, 0, 0, absFunc ),
|
||||||
|
FUNCTION(round, 1, 0, 0, roundFunc ),
|
||||||
|
FUNCTION(round, 2, 0, 0, roundFunc ),
|
||||||
|
FUNCTION(upper, 1, 0, 0, upperFunc ),
|
||||||
|
FUNCTION(lower, 1, 0, 0, lowerFunc ),
|
||||||
|
FUNCTION(coalesce, 1, 0, 0, 0 ),
|
||||||
|
FUNCTION(coalesce, -1, 0, 0, ifnullFunc ),
|
||||||
|
FUNCTION(coalesce, 0, 0, 0, 0 ),
|
||||||
|
FUNCTION(hex, 1, 0, 0, hexFunc ),
|
||||||
|
FUNCTION(ifnull, 2, 0, 1, ifnullFunc ),
|
||||||
|
FUNCTION(random, -1, 0, 0, randomFunc ),
|
||||||
|
FUNCTION(randomblob, 1, 0, 0, randomBlob ),
|
||||||
|
FUNCTION(nullif, 2, 0, 1, nullifFunc ),
|
||||||
|
FUNCTION(sqlite_version, 0, 0, 0, versionFunc ),
|
||||||
|
FUNCTION(quote, 1, 0, 0, quoteFunc ),
|
||||||
|
FUNCTION(last_insert_rowid, 0, 0, 0, last_insert_rowid),
|
||||||
|
FUNCTION(changes, 0, 0, 0, changes ),
|
||||||
|
FUNCTION(total_changes, 0, 0, 0, total_changes ),
|
||||||
|
FUNCTION(replace, 3, 0, 0, replaceFunc ),
|
||||||
|
FUNCTION(zeroblob, 1, 0, 0, zeroblobFunc ),
|
||||||
|
#ifdef SQLITE_SOUNDEX
|
||||||
|
FUNCTION(soundex, 1, 0, 0, soundexFunc ),
|
||||||
|
#endif
|
||||||
|
#ifndef SQLITE_OMIT_LOAD_EXTENSION
|
||||||
|
FUNCTION(load_extension, 1, 0, 0, loadExt ),
|
||||||
|
FUNCTION(load_extension, 2, 0, 0, loadExt ),
|
||||||
|
#endif
|
||||||
|
AGGREGATE(sum, 1, 0, 0, sumStep, sumFinalize ),
|
||||||
|
AGGREGATE(total, 1, 0, 0, sumStep, totalFinalize ),
|
||||||
|
AGGREGATE(avg, 1, 0, 0, sumStep, avgFinalize ),
|
||||||
|
AGGREGATE(count, 0, 0, 0, countStep, countFinalize ),
|
||||||
|
AGGREGATE(count, 1, 0, 0, countStep, countFinalize ),
|
||||||
|
AGGREGATE(group_concat, -1, 0, 0, groupConcatStep, groupConcatFinalize),
|
||||||
|
|
||||||
|
LIKEFUNC(glob, 2, &globInfo, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
|
||||||
|
#ifdef SQLITE_CASE_SENSITIVE_LIKE
|
||||||
|
LIKEFUNC(like, 2, &likeInfoAlt, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
|
||||||
|
LIKEFUNC(like, 3, &likeInfoAlt, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE),
|
||||||
|
#else
|
||||||
|
LIKEFUNC(like, 2, &likeInfoNorm, SQLITE_FUNC_LIKE),
|
||||||
|
LIKEFUNC(like, 3, &likeInfoNorm, SQLITE_FUNC_LIKE),
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
FuncDefHash *pHash = &GLOBAL(FuncDefHash, sqlite3GlobalFunctions);
|
||||||
|
FuncDef *aFunc = &GLOBAL(FuncDef, aBuiltinFunc);
|
||||||
|
|
||||||
for(i=0; i<ArraySize(aBuiltinFunc); i++){
|
for(i=0; i<ArraySize(aBuiltinFunc); i++){
|
||||||
FuncDefHash *pHash = &GLOBAL(FuncDefHash, sqlite3GlobalFunctions);
|
sqlite3FuncDefInsert(pHash, &aFunc[i]);
|
||||||
sqlite3FuncDefInsert(pHash, &aBuiltinFunc[i]);
|
|
||||||
}
|
}
|
||||||
sqlite3RegisterDateTimeFunctions();
|
sqlite3RegisterDateTimeFunctions();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user