]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Convert all names to lower case before sending them to the xFindFunction
authordrh <drh@noemail.net>
Mon, 18 Sep 2006 20:24:02 +0000 (20:24 +0000)
committerdrh <drh@noemail.net>
Mon, 18 Sep 2006 20:24:02 +0000 (20:24 +0000)
method of a virtual table.  In FTS1, use strcmp instead of strcasecmp.
Ticket #1981. (CVS 3428)

FossilOrigin-Name: efa8fb32a596c7232bb1754b3231e4f2421df75b

ext/fts1/fts1.c
manifest
manifest.uuid
src/vtab.c

index d50808e3ffbc96d4d2691e14c3bc1d2e9ff70e69..973c185e5531ef790243a160ddc0107ae422d632 100644 (file)
@@ -2886,10 +2886,10 @@ static int fulltextFindFunction(
   void (**pxFunc)(sqlite3_context*,int,sqlite3_value**),
   void **ppArg
 ){
-  if( strcasecmp(zName,"snippet")==0 ){
+  if( strcmp(zName,"snippet")==0 ){
     *pxFunc = snippetFunc;
     return 1;
-  }else if( strcasecmp(zName,"offsets")==0 ){
+  }else if( strcmp(zName,"offsets")==0 ){
     *pxFunc = snippetOffsetsFunc;
     return 1;
   }
index b93cabb37791ba018813c54d8c9338fd1d71fc2b..3954750bb60152333d150515e6ba5e3786e61664 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Modify\sFTS1\sso\sthat\sthe\s"magic"\scolumn\shas\sthe\ssame\sname\sas\sthe\svirtual\ntable.\s\sOffsets\sare\sretrieved\susing\sa\sspecial\s"offsets"\sfunction\swhose\nfirst\sargument\sis\sthe\smagic\scolumn.\s\sSnippets\swill\sultimately\sbe\sretrieved\nin\sthe\ssame\sway.\s(CVS\s3427)
-D 2006-09-18T02:12:48
+C Convert\sall\snames\sto\slower\scase\sbefore\ssending\sthem\sto\sthe\sxFindFunction\nmethod\sof\sa\svirtual\stable.\s\sIn\sFTS1,\suse\sstrcmp\sinstead\sof\sstrcasecmp.\nTicket\s#1981.\s(CVS\s3428)
+D 2006-09-18T20:24:03
 F Makefile.in cabd42d34340f49260bc2a7668c38eba8d4cfd99
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -21,7 +21,7 @@ F ext/README.txt 913a7bd3f4837ab14d7e063304181787658b14e1
 F ext/fts1/README.txt 20ac73b006a70bcfd80069bdaf59214b6cf1db5e
 F ext/fts1/ft_hash.c 3927bd880e65329bdc6f506555b228b28924921b
 F ext/fts1/ft_hash.h 1a35e654a235c2c662d3ca0dfc3138ad60b8b7d5
-F ext/fts1/fts1.c 298a1b77f51083cf76fae406971c6a2312315409
+F ext/fts1/fts1.c c33206af7efcfea003863ca3e0038630cc6accf5
 F ext/fts1/fts1.h 6060b8f62c1d925ea8356cb1a6598073eb9159a6
 F ext/fts1/fts1_hash.c 3196cee866edbebb1c0521e21672e6d599965114
 F ext/fts1/fts1_hash.h 957d378355ed29f672cd5add012ce8b088a5e089
@@ -119,7 +119,7 @@ F src/vdbeapi.c f1858a5edc3a5e32d038514dd9e7e9091400a782
 F src/vdbeaux.c 7d15dcf0eab43b0f6b1bb840dc2a3126eb370f5b
 F src/vdbefifo.c 9efb94c8c3f4c979ebd0028219483f88e57584f5
 F src/vdbemem.c 26623176bf1c616aa478da958fac49502491a921
-F src/vtab.c 2582c4e4a939072608bd8b4557c46f4343759197
+F src/vtab.c aa30e940058ea56a1b7a9a7019ec21d307316fb4
 F src/where.c 75a89957fcb8c068bec55caa4e9d2ed5fa0b0724
 F tclinstaller.tcl 046e3624671962dc50f0481d7c25b38ef803eb42
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
@@ -399,7 +399,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P aa7728f9f5b80dbb1b3db124f84b9166bf72bdd3
-R 5f7b3fdccab6ce661c65210783a1bcaa
+P 5e35dc1ffadfe7fa47673d052501ee79903eead9
+R 867d1b47989e3f735fc6f80577ade597
 U drh
-Z 772a57c08cf67baf90fc0fd4a8945191
+Z 02de4c591746aed0d8ad3108083846c8
index a4bf5c5889b6540e7233d035f7b6397a75814bd6..ca5271df4cb6db5845ffdb7af9e9ced3b2767787 100644 (file)
@@ -1 +1 @@
-5e35dc1ffadfe7fa47673d052501ee79903eead9
\ No newline at end of file
+efa8fb32a596c7232bb1754b3231e4f2421df75b
\ No newline at end of file
index c3e2481a6316edd7890e42b3fc895d054b9a7eec..5003401e7ac05e665e17b240c6bbbe5e7176c4a1 100644 (file)
@@ -11,7 +11,7 @@
 *************************************************************************
 ** This file contains code used to help implement virtual tables.
 **
-** $Id: vtab.c,v 1.36 2006/09/15 07:28:51 drh Exp $
+** $Id: vtab.c,v 1.37 2006/09/18 20:24:03 drh Exp $
 */
 #ifndef SQLITE_OMIT_VIRTUALTABLE
 #include "sqliteInt.h"
@@ -648,6 +648,10 @@ FuncDef *sqlite3VtabOverloadFunction(
   void (*xFunc)(sqlite3_context*,int,sqlite3_value**);
   void *pArg;
   FuncDef *pNew;
+  int rc;
+  char *zLowerName;
+  unsigned char *z;
+
 
   /* Check to see the left operand is a column in a virtual table */
   if( pExpr==0 ) return pDef;
@@ -662,8 +666,15 @@ FuncDef *sqlite3VtabOverloadFunction(
   if( pMod->xFindFunction==0 ) return pDef;
  
   /* Call the xFuncFunction method on the virtual table implementation
-  ** to see if the implementation wants to overload this function */
-  if( pMod->xFindFunction(pVtab, nArg, pDef->zName, &xFunc, &pArg)==0 ){
+  ** to see if the implementation wants to overload this function 
+  */
+  zLowerName = sqlite3StrDup(pDef->zName);
+  for(z=(unsigned char*)zLowerName; *z; z++){
+    *z = sqlite3UpperToLower[*z];
+  }
+  rc = pMod->xFindFunction(pVtab, nArg, zLowerName, &xFunc, &pArg);
+  sqliteFree(zLowerName);
+  if( rc==0 ){
     return pDef;
   }