diff options
author | drh <drh@noemail.net> | 2020-01-08 20:37:45 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2020-01-08 20:37:45 +0000 |
commit | 2eeca2046eae31d913e7bae79893e343c17bd624 (patch) | |
tree | 2a96ccd42c48c51fa961ebe065f7abe7a51b119c /src/callback.c | |
parent | 0dfa5255bc012a1991809e23ad2ac1a4089e1261 (diff) | |
download | sqlite-2eeca2046eae31d913e7bae79893e343c17bd624.tar.gz sqlite-2eeca2046eae31d913e7bae79893e343c17bd624.zip |
Performance improvements and test cases added. Allow "PRAGMA trusted_schema=ON"
FossilOrigin-Name: 30882ca80f6c51f6bb7b2692c1ac3f19a7c61a23aa8730be79aec0ae3ef08d54
Diffstat (limited to 'src/callback.c')
-rw-r--r-- | src/callback.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/callback.c b/src/callback.c index a360e46ee..3d991901d 100644 --- a/src/callback.c +++ b/src/callback.c @@ -288,12 +288,13 @@ static int matchQuality( u8 enc /* Desired text encoding */ ){ int match; - - /* nArg of -2 is a special case */ - if( nArg==(-2) ) return (p->xSFunc==0) ? 0 : FUNC_PERFECT_MATCH; + assert( p->nArg>=-1 ); /* Wrong number of arguments means "no match" */ - if( p->nArg!=nArg && p->nArg>=0 ) return 0; + if( p->nArg!=nArg ){ + if( nArg==(-2) ) return (p->xSFunc==0) ? 0 : FUNC_PERFECT_MATCH; + if( p->nArg>=0 ) return 0; + } /* Give a better score to a function with a specific number of arguments ** than to function that accepts any number of arguments. */ |