mirror of
https://github.com/sqlite/sqlite.git
synced 2025-10-21 11:13:54 +03:00
Fix the PRAGMA case_sensitive_like command so that the LIKE function continues
to be innocuous after the PRAGMA. [forum:/forumpost/925dc9f67804c540|Forum post 925dc9f67804c540]. FossilOrigin-Name: 84c268c34cba7207a90dad2a8e972ce90c85304e91f4933c76963822ad1ae48b
This commit is contained in:
13
src/func.c
13
src/func.c
@@ -2154,8 +2154,10 @@ void sqlite3RegisterPerConnectionBuiltinFunctions(sqlite3 *db){
|
||||
** sensitive.
|
||||
*/
|
||||
void sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive){
|
||||
FuncDef *pDef;
|
||||
struct compareInfo *pInfo;
|
||||
int flags;
|
||||
int nArg;
|
||||
if( caseSensitive ){
|
||||
pInfo = (struct compareInfo*)&likeInfoAlt;
|
||||
flags = SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE;
|
||||
@@ -2163,10 +2165,13 @@ void sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive){
|
||||
pInfo = (struct compareInfo*)&likeInfoNorm;
|
||||
flags = SQLITE_FUNC_LIKE;
|
||||
}
|
||||
sqlite3CreateFunc(db, "like", 2, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0, 0, 0);
|
||||
sqlite3CreateFunc(db, "like", 3, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0, 0, 0);
|
||||
sqlite3FindFunction(db, "like", 2, SQLITE_UTF8, 0)->funcFlags |= flags;
|
||||
sqlite3FindFunction(db, "like", 3, SQLITE_UTF8, 0)->funcFlags |= flags;
|
||||
for(nArg=2; nArg<=3; nArg++){
|
||||
sqlite3CreateFunc(db, "like", nArg, SQLITE_UTF8, pInfo, likeFunc,
|
||||
0, 0, 0, 0, 0);
|
||||
pDef = sqlite3FindFunction(db, "like", nArg, SQLITE_UTF8, 0);
|
||||
pDef->funcFlags |= flags;
|
||||
pDef->funcFlags &= ~SQLITE_FUNC_UNSAFE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user