Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Performance optimization in sqlite3ExprAssignVarNumber(). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5987ca1ff94ed3c1666f783bb15b1615 |
User & Date: | drh 2017-01-31 03:52:34.839 |
Context
2017-01-31
| ||
12:41 | Further minor enhancement and size reduction in sqlite3ExprAssignVarNumber(). (check-in: eacfdcf257 user: drh tags: trunk) | |
03:52 | Performance optimization in sqlite3ExprAssignVarNumber(). (check-in: 5987ca1ff9 user: drh tags: trunk) | |
2017-01-30
| ||
11:38 | Fix building with SQLITE_OMIT_FOREIGN_KEY defined. (check-in: e93d2c49a4 user: dan tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
963 964 965 966 967 968 969 | x = (ynVar)(++pParse->nVar); }else{ int doAdd = 0; if( z[0]=='?' ){ /* Wildcard of the form "?nnn". Convert "nnn" to an integer and ** use it as the variable number */ i64 i; | > > > > > | > | 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 | x = (ynVar)(++pParse->nVar); }else{ int doAdd = 0; if( z[0]=='?' ){ /* Wildcard of the form "?nnn". Convert "nnn" to an integer and ** use it as the variable number */ i64 i; int bOk; if( n==2 ){ /*OPTIMIZATION-IF-TRUE*/ i = z[1]-'0'; /* The common case of ?N for a single digit N */ bOk = 1; }else{ bOk = 0==sqlite3Atoi64(&z[1], &i, n-1, SQLITE_UTF8); } x = (ynVar)i; testcase( i==0 ); testcase( i==1 ); testcase( i==db->aLimit[SQLITE_LIMIT_VARIABLE_NUMBER]-1 ); testcase( i==db->aLimit[SQLITE_LIMIT_VARIABLE_NUMBER] ); if( bOk==0 || i<1 || i>db->aLimit[SQLITE_LIMIT_VARIABLE_NUMBER] ){ sqlite3ErrorMsg(pParse, "variable number must be between ?1 and ?%d", |
︙ | ︙ |