aboutsummaryrefslogtreecommitdiff
path: root/src/func.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-05-08 19:32:33 +0000
committerdrh <drh@noemail.net>2019-05-08 19:32:33 +0000
commitea5c040f878dbe8416cc85ece8d16fdec412e059 (patch)
tree159dfd27dd09acea365c2cde732b6f5c5bc78dec /src/func.c
parent9e9374b2e20a2221f8fdfb940d6d82064d641283 (diff)
downloadsqlite-ea5c040f878dbe8416cc85ece8d16fdec412e059.tar.gz
sqlite-ea5c040f878dbe8416cc85ece8d16fdec412e059.zip
Simplification to the logic underlying PRAGMA case_sensitive_like.
FossilOrigin-Name: ef0015fde4c87e992ffd3d7dea8586951bdd65ff98d30d436b126b85b1cc9c74
Diffstat (limited to 'src/func.c')
-rw-r--r--src/func.c22
1 files changed, 5 insertions, 17 deletions
diff --git a/src/func.c b/src/func.c
index 15f648ab5..b0a316921 100644
--- a/src/func.c
+++ b/src/func.c
@@ -1796,36 +1796,24 @@ void sqlite3RegisterPerConnectionBuiltinFunctions(sqlite3 *db){
}
/*
-** Set the LIKEOPT flag on the 2-argument function with the given name.
-*/
-static void setLikeOptFlag(sqlite3 *db, const char *zName, u8 flagVal){
- FuncDef *pDef;
- pDef = sqlite3FindFunction(db, zName, 2, SQLITE_UTF8, 0);
- if( ALWAYS(pDef) ){
- pDef->funcFlags |= flagVal;
- }
- pDef = sqlite3FindFunction(db, zName, 3, SQLITE_UTF8, 0);
- if( pDef ){
- pDef->funcFlags |= flagVal;
- }
-}
-
-/*
** Re-register the built-in LIKE functions. The caseSensitive
** parameter determines whether or not the LIKE operator is case
** sensitive.
*/
void sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive){
struct compareInfo *pInfo;
+ int flags;
if( caseSensitive ){
pInfo = (struct compareInfo*)&likeInfoAlt;
+ flags = SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE;
}else{
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);
- setLikeOptFlag(db, "like",
- caseSensitive ? (SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE) : SQLITE_FUNC_LIKE);
+ sqlite3FindFunction(db, "like", 2, SQLITE_UTF8, 0)->funcFlags |= flags;
+ sqlite3FindFunction(db, "like", 3, SQLITE_UTF8, 0)->funcFlags |= flags;
}
/*