Branch Coverage

sqlite3.c
Criterion Covered Total %
branch 12179 39030 31.2


line true false branch
22962 77197 191279 if( wsdStat.nowValue[op]>wsdStat.mxValue[op] ){
22992 792 137279 if( newValue>wsdStat.mxValue[op] ){
23008 11 0 if( op<0 || op>=ArraySize(wsdStat.nowValue) ){
0 11 if( op<0 || op>=ArraySize(wsdStat.nowValue) ){
23014 3 8 pMutex = statMutex[op] ? sqlite3Pcache1Mutex() : sqlite3MallocMutex();
23018 0 11 if( resetFlag ){
23032 11 0 if( rc==0 ){
23044 244 1252 while( p ){
23061 2 311 if( pHighwater ) *pHighwater = db->lookaside.nSlot - nInit;
23085 0 2 if( resetFlag ){
23087 0 0 if( p ){
23088 0 0 while( p->pNext ) p = p->pNext;
23095 0 0 if( p ){
23096 0 0 while( p->pNext ) p = p->pNext;
23116 0 6 if( resetFlag ){
23132 4 2 for(i=0; inDb; i++){
23134 2 2 if( pBt ){
23137 0 2 if( op==SQLITE_DBSTATUS_CACHE_USED_SHARED ){
23160 4 2 for(i=0; inDb; i++){
23162 4 0 if( ALWAYS(pSchema!=0) ){
23176 0 4 for(p=sqliteHashFirst(&pSchema->trigHash); p; p=sqliteHashNext(p)){
23179 6 4 for(p=sqliteHashFirst(&pSchema->tblHash); p; p=sqliteHashNext(p)){
23202 0 2 for(pVdbe=db->pVdbe; pVdbe; pVdbe=pVdbe->pNext){
23229 12 6 for(i=0; inDb; i++){
23230 6 6 if( db->aDb[i].pBt ){
23248 0 0 *pCurrent = db->nDeferredImmCons>0 || db->nDeferredCons>0;
0 0 *pCurrent = db->nDeferredImmCons>0 || db->nDeferredCons>0;
23389 0 0 while( N-- ){
23390 0 0 if( !sqlite3Isdigit(*zDate) ){
23396 0 0 if( val<(int)min || val>(int)max || (nextC!=0 && nextC!=*zDate) ){
0 0 if( val<(int)min || val>(int)max || (nextC!=0 && nextC!=*zDate) ){
0 0 if( val<(int)min || val>(int)max || (nextC!=0 && nextC!=*zDate) ){
0 0 if( val<(int)min || val>(int)max || (nextC!=0 && nextC!=*zDate) ){
23399 0 0 *va_arg(ap,int*) = val;
23403 0 0 }while( nextC );
23429 0 0 while( sqlite3Isspace(*zDate) ){ zDate++; }
23432 0 0 if( c=='-' ){
23434 0 0 }else if( c=='+' ){
23436 0 0 }else if( c=='Z' || c=='z' ){
0 0 }else if( c=='Z' || c=='z' ){
23443 0 0 if( getDigits(zDate, "20b:20e", &nHr, &nMn)!=2 ){
23449 0 0 while( sqlite3Isspace(*zDate) ){ zDate++; }
23464 0 0 if( getDigits(zDate, "20c:20e", &h, &m)!=2 ){
23468 0 0 if( *zDate==':' ){
23470 0 0 if( getDigits(zDate, "20e", &s)!=1 ){
23474 0 0 if( *zDate=='.' && sqlite3Isdigit(zDate[1]) ){
0 0 if( *zDate=='.' && sqlite3Isdigit(zDate[1]) ){
23477 0 0 while( sqlite3Isdigit(*zDate) ){
23493 0 0 if( parseTimezone(zDate, p) ) return 1;
23515 0 0 if( p->validJD ) return;
23516 0 0 if( p->validYMD ){
23525 0 0 if( Y<-4713 || Y>9999 || p->rawS ){
0 0 if( Y<-4713 || Y>9999 || p->rawS ){
0 0 if( Y<-4713 || Y>9999 || p->rawS ){
23529 0 0 if( M<=2 ){
23539 0 0 if( p->validHMS ){
23541 0 0 if( p->validTZ ){
23565 0 0 if( zDate[0]=='-' ){
23571 0 0 if( getDigits(zDate, "40f-21a-21d", &Y, &M, &D)!=3 ){
23575 0 0 while( sqlite3Isspace(*zDate) || 'T'==*(u8*)zDate ){ zDate++; }
0 0 while( sqlite3Isspace(*zDate) || 'T'==*(u8*)zDate ){ zDate++; }
23576 0 0 if( parseHhMmSs(zDate, p)==0 ){
23578 0 0 }else if( *zDate==0 ){
23585 0 0 p->Y = neg ? -Y : Y;
23588 0 0 if( p->validTZ ){
23601 0 0 if( p->iJD>0 ){
23618 0 0 if( r>=0.0 && r<5373484.5 ){
0 0 if( r>=0.0 && r<5373484.5 ){
23646 0 0 if( parseYyyyMmDd(zDate,p)==0 ){
23648 0 0 }else if( parseHhMmSs(zDate, p)==0 ){
23650 0 0 }else if( sqlite3StrICmp(zDate,"now")==0 && sqlite3NotPureFunc(context) ){
0 0 }else if( sqlite3StrICmp(zDate,"now")==0 && sqlite3NotPureFunc(context) ){
23652 0 0 }else if( sqlite3AtoF(zDate, &r, sqlite3Strlen30(zDate), SQLITE_UTF8)>0 ){
23674 0 0 return iJD>=0 && iJD<=INT_464269060799999;
0 0 return iJD>=0 && iJD<=INT_464269060799999;
23682 0 0 if( p->validYMD ) return;
23683 0 0 if( !p->validJD ){
23687 0 0 }else if( !validJulianDay(p->iJD) ){
23700 0 0 p->M = E<14 ? E-1 : E-13;
23701 0 0 p->Y = p->M>2 ? C - 4716 : C - 4715;
23711 0 0 if( p->validHMS ) return;
23786 0 0 if( sqlite3GlobalConfig.bLocaltimeFault ){
23787 0 0 if( sqlite3GlobalConfig.xAltLocaltime!=0
23788 0 0 && 0==sqlite3GlobalConfig.xAltLocaltime((const void*)t,(void*)pTm)
23796 0 0 if( pX ) *pTm = *pX;
23838 0 0 if( p->iJD<2108667600*(i64)100000 /* 1970-01-01 */
23839 0 0 || p->iJD>2130141456*(i64)100000 /* 2038-01-18 */
23857 0 0 if( osLocaltime(&t, &sLocal) ){
23940 0 0 if( sqlite3_stricmp(z, "auto")==0 ){
23941 0 0 if( idx>1 ) return 1; /* IMP: R-33611-57934 */
23942 0 0 if( !p->rawS || p->validJD ){
0 0 if( !p->rawS || p->validJD ){
23945 0 0 }else if( p->s>=-21086676*(i64)10000 /* -4713-11-24 12:00:00 */
23946 0 0 && p->s<=(25340230*(i64)10000)+799 /* 9999-12-31 23:59:59 */
23967 0 0 if( sqlite3_stricmp(z, "julianday")==0 ){
23968 0 0 if( idx>1 ) return 1; /* IMP: R-31176-64601 */
23969 0 0 if( p->validJD && p->rawS ){
0 0 if( p->validJD && p->rawS ){
23983 0 0 if( sqlite3_stricmp(z, "localtime")==0 && sqlite3NotPureFunc(pCtx) ){
0 0 if( sqlite3_stricmp(z, "localtime")==0 && sqlite3NotPureFunc(pCtx) ){
23996 0 0 if( sqlite3_stricmp(z, "unixepoch")==0 && p->rawS ){
0 0 if( sqlite3_stricmp(z, "unixepoch")==0 && p->rawS ){
23997 0 0 if( idx>1 ) return 1; /* IMP: R-49255-55373 */
23999 0 0 if( r>=0.0 && r<464269060800000.0 ){
0 0 if( r>=0.0 && r<464269060800000.0 ){
24008 0 0 else if( sqlite3_stricmp(z, "utc")==0 && sqlite3NotPureFunc(pCtx) ){
0 0 else if( sqlite3_stricmp(z, "utc")==0 && sqlite3NotPureFunc(pCtx) ){
24009 0 0 if( p->tzSet==0 ){
24025 0 0 if( rc ) return rc;
24028 0 0 }while( iErr && cnt++<3 );
0 0 }while( iErr && cnt++<3 );
24047 0 0 if( sqlite3_strnicmp(z, "weekday ", 8)==0
24048 0 0 && sqlite3AtoF(&z[8], &r, sqlite3Strlen30(&z[8]), SQLITE_UTF8)>0
24049 0 0 && (n=(int)r)==r && n>=0 && r<7 ){
0 0 && (n=(int)r)==r && n>=0 && r<7 ){
0 0 && (n=(int)r)==r && n>=0 && r<7 ){
24056 0 0 if( Z>n ) Z -= 7;
24070 0 0 if( sqlite3_strnicmp(z, "start of ", 9)!=0 ) break;
24071 0 0 if( !p->validJD && !p->validYMD && !p->validHMS ) break;
0 0 if( !p->validJD && !p->validYMD && !p->validHMS ) break;
0 0 if( !p->validJD && !p->validYMD && !p->validHMS ) break;
24080 0 0 if( sqlite3_stricmp(z,"month")==0 ){
24083 0 0 }else if( sqlite3_stricmp(z,"year")==0 ){
24087 0 0 }else if( sqlite3_stricmp(z,"day")==0 ){
24106 0 0 for(n=1; z[n] && z[n]!=':' && !sqlite3Isspace(z[n]); n++){}
0 0 for(n=1; z[n] && z[n]!=':' && !sqlite3Isspace(z[n]); n++){}
0 0 for(n=1; z[n] && z[n]!=':' && !sqlite3Isspace(z[n]); n++){}
24107 0 0 if( sqlite3AtoF(z, &r, n, SQLITE_UTF8)<=0 ){
24111 0 0 if( z[n]==':' ){
24120 0 0 if( !sqlite3Isdigit(*z2) ) z2++;
24122 0 0 if( parseHhMmSs(z2, &tx) ) break;
24127 0 0 if( z[0]=='-' ) tx.iJD = -tx.iJD;
24138 0 0 while( sqlite3Isspace(*z) ) z++;
24140 0 0 if( n>10 || n<3 ) break;
0 0 if( n>10 || n<3 ) break;
24141 0 0 if( sqlite3UpperToLower[(u8)z[n-1]]=='s' ) n--;
24144 0 0 rRounder = r<0 ? -0.5 : +0.5;
24145 0 0 for(i=0; i
24146 0 0 if( aXformType[i].nName==n
24147 0 0 && sqlite3_strnicmp(aXformType[i].zName, z, n)==0
24148 0 0 && r>-aXformType[i].rLimit && r
0 0 && r>-aXformType[i].rLimit && r
24156 0 0 x = p->M>0 ? (p->M-1)/12 : (p->M-12)/12;
24208 0 0 if( argc==0 ){
24209 0 0 if( !sqlite3NotPureFunc(context) ) return 1;
24212 0 0 if( (eType = sqlite3_value_type(argv[0]))==SQLITE_FLOAT
24213 0 0 || eType==SQLITE_INTEGER ){
24217 0 0 if( !z || parseDateOrTime(context, (char*)z, p) ){
0 0 if( !z || parseDateOrTime(context, (char*)z, p) ){
24221 0 0 for(i=1; i
24224 0 0 if( z==0 || parseModifier(context, (char*)z, n, p, i) ) return 1;
0 0 if( z==0 || parseModifier(context, (char*)z, n, p, i) ) return 1;
24227 0 0 if( p->isError || !validJulianDay(p->iJD) ) return 1;
0 0 if( p->isError || !validJulianDay(p->iJD) ) return 1;
24248 0 0 if( isDate(context, argc, argv, &x)==0 ){
24266 0 0 if( isDate(context, argc, argv, &x)==0 ){
24283 0 0 if( isDate(context, argc, argv, &x)==0 ){
24288 0 0 if( Y<0 ) Y = -Y;
24310 0 0 if( x.Y<0 ){
24330 0 0 if( isDate(context, argc, argv, &x)==0 ){
24359 0 0 if( isDate(context, argc, argv, &x)==0 ){
24364 0 0 if( Y<0 ) Y = -Y;
24376 0 0 if( x.Y<0 ){
24416 0 0 if( argc==0 ) return;
24418 0 0 if( zFmt==0 || isDate(context, argc-1, argv+1, &x) ) return;
0 0 if( zFmt==0 || isDate(context, argc-1, argv+1, &x) ) return;
24424 0 0 for(i=j=0; zFmt[i]; i++){
24425 0 0 if( zFmt[i]!='%' ) continue;
24426 0 0 if( j
24436 0 0 if( s>59.999 ) s = 59.999;
24453 0 0 if( zFmt[i]=='W' ){
24502 0 0 if( j
24704 1216 2178 if( pId->pMethods ){
24722 270 0 return flags ? id->pMethods->xSync(id, flags) : SQLITE_OK;
24749 1185 327 if( id->pMethods==0 ) return SQLITE_NOTFOUND;
24777 563 260 if( id->pMethods ) (void)id->pMethods->xFileControl(id, op, pArg);
24782 0 0 return (xSectorSize ? xSectorSize(id) : SQLITE_DEFAULT_SECTOR_SIZE);
24785 0 941 if( NEVER(id->pMethods==0) ) return 0;
24854 92 0 return pVfs->xDelete!=0 ? pVfs->xDelete(pVfs, zPath, dirSync) : SQLITE_OK;
24892 0 100 if( sqlite3Config.iPrngSeed ){
24894 0 0 if( ALWAYS(nByte>(signed)sizeof(unsigned)) ) nByte = sizeof(unsigned int);
24906 6 0 return pVfs->xGetLastError ? pVfs->xGetLastError(pVfs, 0, 0) : 0;
24916 12 0 if( pVfs->iVersion>=2 && pVfs->xCurrentTimeInt64 ){
12 0 if( pVfs->iVersion>=2 && pVfs->xCurrentTimeInt64 ){
24936 0 0 if( pFile ){
24938 0 0 if( rc!=SQLITE_OK ){
24965 0 110 if( p==0 ) return SQLITE_NOMEM_BKPT;
24987 0 532 if( rc ) return 0;
24993 532 0 for(pVfs = vfsList; pVfs; pVfs=pVfs->pNext){
24994 527 5 if( zVfs==0 ) break;
24995 5 0 if( strcmp(zVfs, pVfs->zName)==0 ) break;
25006 550 0 if( pVfs==0 ){
25008 0 550 }else if( vfsList==pVfs ){
25010 440 110 }else if( vfsList ){
25012 660 440 while( p->pNext && p->pNext!=pVfs ){
660 0 while( p->pNext && p->pNext!=pVfs ){
25015 0 440 if( p->pNext==pVfs ){
25030 0 550 if( rc ) return rc;
25039 440 110 if( makeDflt || vfsList==0 ){
0 440 if( makeDflt || vfsList==0 ){
25058 0 0 if( rc ) return rc;
25144 0 2857 if( wsdHooks.xBenignBegin ){
25150 0 2857 if( wsdHooks.xBenignEnd ){
25363 130405 0 if( p ){
25436 6001 0 if( p ){
27540 110 770 if( !sqlite3GlobalConfig.mutex.xMutexAlloc ){
27549 110 0 if( sqlite3GlobalConfig.bCoreMutex ){
27586 0 0 if( sqlite3GlobalConfig.mutex.xMutexEnd ){
27602 97 0 if( id<=SQLITE_MUTEX_RECURSIVE && sqlite3_initialize() ) return 0;
0 97 if( id<=SQLITE_MUTEX_RECURSIVE && sqlite3_initialize() ) return 0;
27603 0 97 if( id>SQLITE_MUTEX_RECURSIVE && sqlite3MutexInit() ) return 0;
0 0 if( id>SQLITE_MUTEX_RECURSIVE && sqlite3MutexInit() ) return 0;
27610 0 3939 if( !sqlite3GlobalConfig.bCoreMutex ){
27622 520 0 if( p ){
27633 336375 0 if( p ){
27645 0 0 if( p ){
27659 336375 0 if( p ){
28073 427 0 if( p ){
28094 97 0 if( p ){
28226 0 0 if( pthread_mutex_trylock(&p->mutex)==0 ){
28893 0 0 if( rc ) return -1;
28897 0 0 if( n<0 ){
28901 0 0 if( mem0.hardLimit>0 && (n>mem0.hardLimit || n==0) ){
0 0 if( mem0.hardLimit>0 && (n>mem0.hardLimit || n==0) ){
0 0 if( mem0.hardLimit>0 && (n>mem0.hardLimit || n==0) ){
28906 0 0 AtomicStore(&mem0.nearlyFull, n>0 && n<=nUsed);
0 0 AtomicStore(&mem0.nearlyFull, n>0 && n<=nUsed);
28909 0 0 if( excess>0 ) sqlite3_release_memory((int)(excess & 0x7fffffff));
28913 0 0 if( n<0 ) n = 0;
28933 0 0 if( rc ) return -1;
28937 0 0 if( n>=0 ){
28939 0 0 if( n
0 0 if( n
28953 110 0 if( sqlite3GlobalConfig.m.xMalloc==0 ){
28957 0 110 if( sqlite3GlobalConfig.pPage==0 || sqlite3GlobalConfig.szPage<512
0 0 if( sqlite3GlobalConfig.pPage==0 || sqlite3GlobalConfig.szPage<512
28958 0 0 || sqlite3GlobalConfig.nPage<=0 ){
28963 0 110 if( rc!=SQLITE_OK ) memset(&mem0, 0, sizeof(mem0));
28980 0 0 if( sqlite3GlobalConfig.m.xShutdown ){
29010 5996 0 if( mem0.alarmThreshold<=0 ) return;
29034 0 130405 if( mem0.alarmThreshold>0 ){
29036 0 0 if( nUsed >= mem0.alarmThreshold - nFull ){
29039 0 0 if( mem0.hardLimit ){
29041 0 0 if( nUsed >= mem0.hardLimit - nFull ){
29057 130405 0 if( p ){
29071 130405 0 if( n==0 || n>=0x7fffff00 ){
0 130405 if( n==0 || n>=0x7fffff00 ){
29078 130405 0 }else if( sqlite3GlobalConfig.bMemstat ){
29096 0 7856 if( sqlite3_initialize() ) return 0;
29098 7856 0 return n<=0 ? 0 : sqlite3Malloc(n);
29102 0 56752 if( sqlite3_initialize() ) return 0;
29112 3198 728 return SQLITE_WITHIN(p, db->lookaside.pStart, db->lookaside.pEnd);
405 2793 return SQLITE_WITHIN(p, db->lookaside.pStart, db->lookaside.pEnd);
29128 24 381 return plookaside.pMiddle ? db->lookaside.szTrue : LOOKASIDE_SMALL;
29146 34798 132 if( db ){
29147 29504 5294 if( ((uptr)p)<(uptr)(db->lookaside.pEnd) ){
29149 23262 6242 if( ((uptr)p)>=(uptr)(db->lookaside.pMiddle) ){
29154 5128 1114 if( ((uptr)p)>=(uptr)(db->lookaside.pStart) ){
29165 0 16 return p ? sqlite3GlobalConfig.m.xSize(p) : 0;
29172 28491 130139 if( p==0 ) return; /* IMP: R-49053-54554 */
29175 130139 0 if( sqlite3GlobalConfig.bMemstat ){
29202 151812 6244 if( db ){
29203 46 151766 if( db->pnBytesFreed ){
29207 126370 25396 if( ((uptr)p)<(uptr)(db->lookaside.pEnd) ){
29209 91620 34750 if( ((uptr)p)>=(uptr)(db->lookaside.pMiddle) ){
29219 20921 13829 if( ((uptr)p)>=(uptr)(db->lookaside.pStart) ){
29238 51559 29874 if( p ) sqlite3DbFreeNN(db, p);
29249 1135 6061 if( pOld==0 ){
29252 0 6061 if( nBytes==0 ){
29256 0 6061 if( nBytes>=0x7fffff00 ){
29265 60 6001 if( nOld==nNew ){
29267 6001 0 }else if( sqlite3GlobalConfig.bMemstat ){
29272 5996 5 if( nDiff>0 && (nUsed = sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED)) >=
5996 0 if( nDiff>0 && (nUsed = sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED)) >=
29275 0 5996 if( mem0.hardLimit>0 && nUsed >= mem0.hardLimit - nDiff ){
0 0 if( mem0.hardLimit>0 && nUsed >= mem0.hardLimit - nDiff ){
29287 6001 0 if( pNew ){
29305 0 108 if( sqlite3_initialize() ) return 0;
29307 0 108 if( n<0 ) n = 0; /* IMP: R-26507-47431 */
29312 0 3340 if( sqlite3_initialize() ) return 0;
29323 3875 0 if( p ){
29337 14085 0 if( p ) memset(p, 0, (size_t)n);
29349 0 38330 if( !p ) sqlite3OomFault(db);
29379 56440 4365 if( db ) return sqlite3DbMallocRawNN(db, n);
29390 36250 114623 if( n>db->lookaside.sz ){
29391 780 35470 if( !db->lookaside.bDisable ){
29393 0 35470 }else if( db->mallocFailed ){
29399 94479 20144 if( n<=LOOKASIDE_SMALL ){
29400 77986 16493 if( (pBuf = db->lookaside.pSmallFree)!=0 ){
29404 13636 2857 }else if( (pBuf = db->lookaside.pSmallInit)!=0 ){
29411 18920 4081 if( (pBuf = db->lookaside.pFree)!=0 ){
29415 2001 2080 }else if( (pBuf = db->lookaside.pInit)!=0 ){
29442 12574 4420 if( p==0 ) return sqlite3DbMallocRawNN(db, n);
29444 1627 2793 if( ((uptr)p)<(uptr)db->lookaside.pEnd ){
29446 814 813 if( ((uptr)p)>=(uptr)db->lookaside.pMiddle ){
29447 433 381 if( n<=LOOKASIDE_SMALL ) return p;
29450 85 728 if( ((uptr)p)>=(uptr)db->lookaside.pStart ){
29451 61 24 if( n<=db->lookaside.szTrue ) return p;
29460 3926 0 if( db->mallocFailed==0 ){
29461 405 3521 if( isLookaside(db, p) ){
29463 405 0 if( pNew ){
29472 0 3521 if( !pNew ){
29489 0 5447 if( !pNew ){
29505 398 4403 if( z==0 ){
29510 4403 0 if( zNew ){
29520 21552 147 zNew = z ? sqlite3DbMallocRawNN(db, n+1) : 0;
29521 21552 147 if( zNew ){
29535 0 1631 while( sqlite3Isspace(zStart[0]) ) zStart++;
29537 2935 0 while( ALWAYS(n>0) && sqlite3Isspace(zStart[n-1]) ) n--;
1304 1631 while( ALWAYS(n>0) && sqlite3Isspace(zStart[n-1]) ) n--;
29564 0 0 if( db->mallocFailed==0 && db->bBenignMalloc==0 ){
0 0 if( db->mallocFailed==0 && db->bBenignMalloc==0 ){
29566 0 0 if( db->nVdbeExec>0 ){
29570 0 0 if( db->pParse ){
29574 0 0 for(pParse=db->pParse->pOuterParse; pParse; pParse = pParse->pOuterParse){
29591 0 0 if( db->mallocFailed && db->nVdbeExec==0 ){
0 0 if( db->mallocFailed && db->nVdbeExec==0 ){
29595 0 0 EnableLookaside;
29603 138 0 if( db->mallocFailed || rc==SQLITE_IOERR_NOMEM ){
0 138 if( db->mallocFailed || rc==SQLITE_IOERR_NOMEM ){
29630 40837 0 if( db->mallocFailed || rc ){
138 40699 if( db->mallocFailed || rc ){
29772 0 30 if( (*cnt)<=0 ) return '0';
29788 0 0 if( p->mxAlloc ) sqlite3_str_reset(p);
29789 0 0 if( eError==SQLITE_TOOBIG ) sqlite3ErrorToParser(p->db, eError);
29796 0 0 if( p->nArg<=p->nUsed ) return 0;
29800 0 0 if( p->nArg<=p->nUsed ) return 0.0;
29804 0 0 if( p->nArg<=p->nUsed ) return 0;
29819 0 129 if( pAccum->accError ) return 0;
29820 39 90 if( n>pAccum->nAlloc && n>pAccum->mxAlloc ){
0 39 if( n>pAccum->nAlloc && n>pAccum->mxAlloc ){
29825 0 129 if( z==0 ){
29894 0 4831 if( (pAccum->printfFlags & SQLITE_PRINTF_SQLFUNC)!=0 ){
29895 0 0 pArgList = va_arg(ap, PrintfArguments*);
29900 9407 1155 for(; (c=(*fmt))!=0; ++fmt){
29901 8871 536 if( c!='%' ){
29906 83793 3676 do{ fmt++; }while( *fmt && *fmt != '%' );
78598 5195 do{ fmt++; }while( *fmt && *fmt != '%' );
29909 3676 5195 if( *fmt==0 ) break;
29911 0 5731 if( (c=(*++fmt))==0 ){
29935 68 0 if( c=='l' ){
29945 0 0 while( (c = *++fmt)>='0' && c<='9' ){
0 0 while( (c = *++fmt)>='0' && c<='9' ){
29955 0 0 if( c!='.' && c!='l' ){
0 0 if( c!='.' && c!='l' ){
29963 0 0 if( bArgList ){
29966 0 0 width = va_arg(ap,int);
29968 0 0 if( width<0 ){
29970 0 0 width = width >= -2147483647 ? -width : 0;
29977 0 0 if( (c = fmt[1])!='.' && c!='l' ){
0 0 if( (c = fmt[1])!='.' && c!='l' ){
29985 282 2 if( c=='*' ){
29986 0 282 if( bArgList ){
29989 282 0 precision = va_arg(ap,int);
29991 0 282 if( precision<0 ){
29992 0 0 precision = precision >= -2147483647 ? -precision : -1;
29997 6 0 while( c>='0' && c<='9' ){
4 2 while( c>='0' && c<='9' ){
30009 0 284 if( c=='l' ){
30017 41 5731 }while( !done && (c=(*++fmt))!=0 );
41 0 }while( !done && (c=(*++fmt))!=0 );
30022 22434 0 for(idx=0; idx
30023 5731 16703 if( c==fmtinfo[idx].fmttype ){
30059 826 33 if( infop->flags & FLAG_SIGNED ){
30061 0 826 if( bArgList ){
30063 68 758 }else if( flag_long ){
30064 68 0 if( flag_long==2 ){
30065 68 0 v = va_arg(ap,i64) ;
30067 0 0 v = va_arg(ap,long int);
30070 193 565 v = va_arg(ap,int);
30072 0 826 if( v<0 ){
30083 0 33 if( bArgList ){
30085 0 33 }else if( flag_long ){
30086 0 0 if( flag_long==2 ){
30087 0 0 longvalue = va_arg(ap,u64);
30089 0 0 longvalue = va_arg(ap,unsigned long int);
30092 33 0 longvalue = va_arg(ap,unsigned int);
30096 48 811 if( longvalue==0 ) flag_alternateform = 0;
30097 0 859 if( flag_zeropad && precision
0 0 if( flag_zeropad && precision
30100 859 0 if( precision
30106 0 0 if( cThousand ) n += precision/3;
30108 0 0 if( zOut==0 ) return;
30112 0 859 if( xtype==etORDINAL ){
30115 0 0 if( x>=4 || (longvalue/10)%10==1 ){
0 0 if( x>=4 || (longvalue/10)%10==1 ){
30127 79 859 }while( longvalue>0 );
30130 0 859 while( precision>length ){
30134 0 859 if( cThousand ){
30138 0 0 for(idx=0; nn>0; idx++){
30141 0 0 if( ix==0 ){
30148 0 859 if( prefix ) *(--bufpt) = prefix; /* Add sign */
30149 0 859 if( flag_alternateform && infop->prefix ){ /* Add "0" or "0x" */
0 0 if( flag_alternateform && infop->prefix ){ /* Add "0" or "0x" */
30153 0 0 for(; (x=(*pre))!=0; pre++) *(--bufpt) = x;
30160 0 2 if( bArgList ){
30163 2 0 realvalue = va_arg(ap,double);
30168 0 2 if( precision<0 ) precision = 6; /* Set default precision */
30170 0 2 if( precision>SQLITE_FP_PRECISION_LIMIT ){
30174 0 2 if( realvalue<0.0 ){
30180 2 0 if( xtype==etGENERIC && precision>0 ) precision--;
2 0 if( xtype==etGENERIC && precision>0 ) precision--;
30184 2 2 while( idx>=10 ){ rounder *= 1.0e-10; idx -= 10; }
30185 0 2 if( xtype==etFLOAT ){
30191 0 0 if( precision+(ex/3) < 15 ) rounder += realvalue*3e-16;
30196 0 2 if( sqlite3IsNaN((double)realvalue) ){
30201 2 0 if( realvalue>0.0 ){
30203 0 2 while( realvalue>=1e100*scale && exp<=350 ){ scale *= 1e100;exp+=100;}
0 0 while( realvalue>=1e100*scale && exp<=350 ){ scale *= 1e100;exp+=100;}
30204 0 2 while( realvalue>=1e10*scale && exp<=350 ){ scale *= 1e10; exp+=10; }
0 0 while( realvalue>=1e10*scale && exp<=350 ){ scale *= 1e10; exp+=10; }
30205 12 2 while( realvalue>=10.0*scale && exp<=350 ){ scale *= 10.0; exp++; }
12 0 while( realvalue>=10.0*scale && exp<=350 ){ scale *= 10.0; exp++; }
30207 0 2 while( realvalue<1e-8 ){ realvalue *= 1e8; exp-=8; }
30208 0 2 while( realvalue<1.0 ){ realvalue *= 10.0; exp--; }
30209 0 2 if( exp>350 ){
30213 0 0 length = 3+(prefix!=0);
30222 2 0 if( xtype!=etFLOAT ){
30224 0 2 if( realvalue>=10.0 ){ realvalue *= 0.1; exp++; }
30226 2 0 if( xtype==etGENERIC ){
30228 2 0 if( exp<-4 || exp>precision ){
0 2 if( exp<-4 || exp>precision ){
30237 0 2 if( xtype==etEXP ){
30245 0 2 if( szBufNeeded > etBUFSIZE ){
30247 0 0 if( bufpt==0 ) return;
30254 0 2 if( prefix ){
30258 0 2 if( e2<0 ){
30261 14 2 for(; e2>=0; e2--){
30266 2 0 if( flag_dp ){
30271 0 2 for(e2++; e2<0; precision--, e2++){
30276 16 2 while( (precision--)>0 ){
30280 2 0 if( flag_rtz && flag_dp ){
2 0 if( flag_rtz && flag_dp ){
30281 14 2 while( bufpt[-1]=='0' ) *(--bufpt) = 0;
30283 0 2 if( bufpt[-1]=='.' ){
30284 0 0 if( flag_altform2 ){
30292 0 2 if( xtype==etEXP ){
30294 0 0 if( exp<0 ){
30299 0 0 if( exp>=100 ){
30316 0 2 if( flag_zeropad && !flag_leftjustify && length < width){
0 0 if( flag_zeropad && !flag_leftjustify && length < width){
0 0 if( flag_zeropad && !flag_leftjustify && length < width){
30319 0 0 for(i=width; i>=nPad; i--){
30323 0 0 while( nPad-- ) bufpt[i++] = '0';
30329 0 0 if( !bArgList ){
30330 0 0 *(va_arg(ap,int*)) = pAccum->nChar;
30340 0 0 if( bArgList ){
30343 0 0 if( bufpt ){
30345 0 0 if( (c&0xc0)==0xc0 ){
30346 0 0 while( length<4 && (bufpt[0]&0xc0)==0x80 ){
0 0 while( length<4 && (bufpt[0]&0xc0)==0x80 ){
30354 0 0 unsigned int ch = va_arg(ap,unsigned int);
30355 0 0 if( ch<0x00080 ){
30358 0 0 }else if( ch<0x00800 ){
30362 0 0 }else if( ch<0x10000 ){
30375 0 0 if( precision>1 ){
30377 0 0 if( width>1 && !flag_leftjustify ){
0 0 if( width>1 && !flag_leftjustify ){
30381 0 0 while( precision-- > 1 ){
30390 0 2282 if( bArgList ){
30394 2282 0 bufpt = va_arg(ap,char*);
30396 1 2281 if( bufpt==0 ){
30398 16 2265 }else if( xtype==etDYNSTRING ){
30399 16 0 if( pAccum->nChar==0
30400 16 0 && pAccum->mxAlloc
30401 16 0 && width==0
30402 16 0 && precision<0
30403 16 0 && pAccum->accError==0
30418 278 1988 if( precision>=0 ){
30419 0 278 if( flag_altform2 ){
30423 0 0 while( precision-- > 0 && z[0] ){
0 0 while( precision-- > 0 && z[0] ){
30424 0 0 SQLITE_SKIP_UTF8(z);
0 0 SQLITE_SKIP_UTF8(z);
30428 12588 278 for(length=0; length
12588 0 for(length=0; length
30434 0 4783 if( flag_altform2 && width>0 ){
0 0 if( flag_altform2 && width>0 ){
30437 0 0 while( ii>=0 ) if( (bufpt[ii--] & 0xc0)==0x80 ) width++;
0 0 while( ii>=0 ) if( (bufpt[ii--] & 0xc0)==0x80 ) width++;
30446 495 2022 char q = ((xtype==etSQLESCAPE3)?'"':'\''); /* Quote character */
30449 0 2517 if( bArgList ){
30452 2212 305 escarg = va_arg(ap,char*);
30455 34 2483 if( isnull ) escarg = (xtype==etSQLESCAPE2 ? "NULL" : "(NULL)");
34 0 if( isnull ) escarg = (xtype==etSQLESCAPE2 ? "NULL" : "(NULL)");
30462 37807 4 for(i=n=0; k!=0 && (ch=escarg[i])!=0; i++, k--){
35294 2513 for(i=n=0; k!=0 && (ch=escarg[i])!=0; i++, k--){
30463 166 35128 if( ch==q ) n++;
30464 0 35294 if( flag_altform2 && (ch&0xc0)==0xc0 ){
0 0 if( flag_altform2 && (ch&0xc0)==0xc0 ){
30465 0 0 while( (escarg[i+1]&0xc0)==0x80 ){ i++; }
30468 2483 34 needQuote = !isnull && xtype==etSQLESCAPE2;
1543 940 needQuote = !isnull && xtype==etSQLESCAPE2;
30470 129 2388 if( n>etBUFSIZE ){
30472 0 129 if( bufpt==0 ) return;
30477 1543 974 if( needQuote ) bufpt[j++] = q;
30479 35294 2517 for(i=0; i
30481 166 35128 if( ch==q ) bufpt[j++] = ch;
30483 1543 974 if( needQuote ) bufpt[j++] = q;
30489 0 38 if( (pAccum->printfFlags & SQLITE_PRINTF_INTERNAL)==0 ) return;
30490 6 32 if( flag_alternateform ){
30492 6 0 Expr *pExpr = va_arg(ap,Expr*);
30493 6 0 if( ALWAYS(pExpr) && ALWAYS(!ExprHasProperty(pExpr,EP_IntValue)) ){
6 0 if( ALWAYS(pExpr) && ALWAYS(!ExprHasProperty(pExpr,EP_IntValue)) ){
30499 32 0 Token *pToken = va_arg(ap, Token*);
30501 32 0 if( pToken && pToken->n ){
32 0 if( pToken && pToken->n ){
30511 0 33 if( (pAccum->printfFlags & SQLITE_PRINTF_INTERNAL)==0 ) return;
30512 33 0 pItem = va_arg(ap, SrcItem*);
30514 0 33 if( pItem->zAlias && !flag_altform2 ){
0 0 if( pItem->zAlias && !flag_altform2 ){
30516 0 33 }else if( pItem->zName ){
30517 0 0 if( pItem->zDatabase ){
30522 0 33 }else if( pItem->zAlias ){
30527 0 33 if( pSel->selFlags & SF_NestedFrom ){
30550 0 5731 if( width>0 ){
30551 0 0 if( !flag_leftjustify ) sqlite3_str_appendchar(pAccum, width, ' ');
30553 0 0 if( flag_leftjustify ) sqlite3_str_appendchar(pAccum, width, ' ');
30558 129 5602 if( zExtra ){
30577 0 32 if( NEVER(db==0) ) return;
30578 29 3 if( db->errByteOffset!=(-2) ) return;
30580 0 3 if( NEVER(pParse==0) ) return;
30582 0 3 if( NEVER(zText==0) ) return;
30584 3 0 if( SQLITE_WITHIN(z,zText,zEnd) ){
3 0 if( SQLITE_WITHIN(z,zText,zEnd) ){
30594 12 0 while( pExpr
30595 0 12 && (ExprHasProperty(pExpr,EP_OuterON|EP_InnerON) || pExpr->w.iOfst<=0)
0 12 && (ExprHasProperty(pExpr,EP_OuterON|EP_InnerON) || pExpr->w.iOfst<=0)
30599 0 12 if( pExpr==0 ) return;
30613 0 1135 if( p->accError ){
30618 0 1135 if( p->mxAlloc==0 ){
30622 282 853 char *zOld = isMalloced(p) ? p->zText : 0;
30625 1135 0 if( szNew+p->nChar<=p->mxAlloc ){
30630 0 1135 if( szNew > p->mxAlloc ){
30637 1016 119 if( p->db ){
30642 1135 0 if( zNew ){
30644 853 282 if( !isMalloced(p) && p->nChar>0 ) memcpy(zNew, p->zText, p->nChar);
819 34 if( !isMalloced(p) && p->nChar>0 ) memcpy(zNew, p->zText, p->nChar);
30662 0 0 if( p->nChar+(i64)N >= p->nAlloc && (N = sqlite3StrAccumEnlarge(p, N))<=0 ){
0 0 if( p->nChar+(i64)N >= p->nAlloc && (N = sqlite3StrAccumEnlarge(p, N))<=0 ){
30665 0 0 while( (N--)>0 ) p->zText[p->nChar++] = c;
30678 1135 0 if( N>0 ){
30693 1135 13637 if( p->nChar+N >= p->nAlloc ){
30695 13516 121 }else if( N ){
30719 3825 0 if( zText ){
30729 4694 0 if( p->zText ){
30731 4694 0 if( p->mxAlloc>0 && !isMalloced(p) ){
3825 869 if( p->mxAlloc>0 && !isMalloced(p) ){
30743 0 0 if( p->accError ){
30746 0 0 }else if( isMalloced(p) ){
30768 2 0 if( p!=0 && p!=&sqlite3OomStr ){
2 0 if( p!=0 && p!=&sqlite3OomStr ){
30779 0 0 return p ? p->accError : SQLITE_NOMEM;
30784 0 0 return p ? p->nChar : 0;
30789 0 0 if( p==0 || p->nChar==0 ) return 0;
0 0 if( p==0 || p->nChar==0 ) return 0;
30798 0 0 if( isMalloced(p) ){
30834 2 0 if( p ){
30835 2 0 sqlite3StrAccumInit(p, 0, 0, 0,
30857 0 1779 if( acc.accError==SQLITE_NOMEM ){
30892 0 2881 if( sqlite3_initialize() ) return 0;
30908 0 2793 if( sqlite3_initialize() ) return 0;
30931 0 122 if( n<=0 ) return zBuf;
30982 0 93 if( sqlite3GlobalConfig.xLog ){
32377 0 1110 if( sqlite3_initialize() ) return;
32385 1087 23 if( N<=0 || pBuf==0 ){
0 1087 if( N<=0 || pBuf==0 ){
32400 100 987 if( !wsdPrng.isInit ){
32406 0 100 if( NEVER(pVfs==0) ){
32411 25600 100 for(i=0; i<256; i++){
32414 25600 100 for(i=0; i<256; i++){
32432 3261 1087 }while( --N );
32530 0 0 if( p==0 ) return SQLITE_NOMEM_BKPT;
32538 0 0 if( sqlite3FaultSim(200) ){
32543 0 0 if( rc ){
32556 0 0 if( NEVER(p==0) ) return SQLITE_NOMEM_BKPT;
32557 0 0 if( p->done ){
32896 84 9 if( c>=0xc0 ){
32898 126 84 while( (*(*pz) & 0xc0)==0x80 ){
32901 84 0 if( c<0x80
32902 84 0 || (c&0xFFFFF800)==0xD800
32903 0 84 || (c&0xFFFFFFFE)==0xFFFE ){ c = 0xFFFD; }
32951 0 0 if( pMem->enc!=SQLITE_UTF8 && desiredEnc!=SQLITE_UTF8 ){
0 0 if( pMem->enc!=SQLITE_UTF8 && desiredEnc!=SQLITE_UTF8 ){
32955 0 0 if( rc!=SQLITE_OK ){
32961 0 0 while( zIn
32972 0 0 if( desiredEnc==SQLITE_UTF8 ){
32998 0 0 if( !zOut ){
33003 0 0 if( pMem->enc==SQLITE_UTF8 ){
33004 0 0 if( desiredEnc==SQLITE_UTF16LE ){
33006 0 0 while( zIn
33007 0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
33008 0 0 WRITE_UTF16LE(z, c);
33013 0 0 while( zIn
33014 0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
0 0 READ_UTF8(zIn, zTerm, c);
33015 0 0 WRITE_UTF16BE(z, c);
33022 0 0 if( pMem->enc==SQLITE_UTF16LE ){
33024 0 0 while( zIn
33027 0 0 if( c>=0xd800 && c<0xe000 ){
0 0 if( c>=0xd800 && c<0xe000 ){
33042 0 0 if( zIn
33049 0 0 WRITE_UTF8(z, c);
0 0 WRITE_UTF8(z, c);
0 0 WRITE_UTF8(z, c);
33053 0 0 while( zIn
33056 0 0 if( c>=0xd800 && c<0xe000 ){
0 0 if( c>=0xd800 && c<0xe000 ){
33071 0 0 if( zIn
33078 0 0 WRITE_UTF8(z, c);
0 0 WRITE_UTF8(z, c);
0 0 WRITE_UTF8(z, c);
33123 0 0 if( pMem->n>1 ){
33126 0 0 if( b1==0xFE && b2==0xFF ){
0 0 if( b1==0xFE && b2==0xFF ){
33129 0 0 if( b1==0xFF && b2==0xFE ){
0 0 if( b1==0xFF && b2==0xFE ){
33134 0 0 if( bom ){
33136 0 0 if( rc==SQLITE_OK ){
33160 0 0 if( nByte>=0 ){
33166 0 0 while( *z!=0 && z
0 0 while( *z!=0 && z
33167 0 0 SQLITE_SKIP_UTF8(z);
0 0 SQLITE_SKIP_UTF8(z);
33216 0 0 if( db->mallocFailed ){
33237 0 0 while( n
33240 0 0 if( c>=0xd8 && c<0xdc && z[0]>=0xdc && z[0]<0xe0 ) z += 2;
0 0 if( c>=0xd8 && c<0xdc && z[0]>=0xdc && z[0]<0xe0 ) z += 2;
0 0 if( c>=0xd8 && c<0xdc && z[0]>=0xdc && z[0]<0xe0 ) z += 2;
0 0 if( c>=0xd8 && c<0xdc && z[0]>=0xdc && z[0]<0xe0 ) z += 2;
33325 0 2158 return xCallback ? xCallback(iTest) : SQLITE_OK;
33341 0 222 rc = IsNaN(y);
0 0 rc = IsNaN(y);
33359 737 59823 if( z==0 ) return 0;
33371 239 3588 if( pCol->colFlags & COLFLAG_HASTYPE ){
33373 3364 224 }else if( pCol->eCType ){
33387 218 8 if( db->pErr ) sqlite3ValueSetNull(db->pErr);
33399 5900 8 if( err_code || db->pErr ){
218 5682 if( err_code || db->pErr ){
33414 359 5715 if( db->pErr ) sqlite3ValueSetNull(db->pErr);
33422 0 340 if( rc==SQLITE_IOERR_NOMEM ) return;
33424 334 6 if( rc==SQLITE_CANTOPEN || rc==SQLITE_IOERR ){
0 334 if( rc==SQLITE_CANTOPEN || rc==SQLITE_IOERR ){
33445 39 42 if( zFormat==0 ){
33447 33 9 }else if( db->pErr || (db->pErr = sqlite3ValueNew(db))!=0 ){
33 0 }else if( db->pErr || (db->pErr = sqlite3ValueNew(db))!=0 ){
33477 19 9 if( db->errByteOffset<-1 ) db->errByteOffset = -1;
33478 2 26 if( db->suppressErr ){
33480 0 2 if( db->mallocFailed ){
33500 0 0 if( db==0 || (pParse = db->pParse)==0 ) return errCode;
0 0 if( db==0 || (pParse = db->pParse)==0 ) return errCode;
33526 0 16998 if( z==0 ) return;
33528 13004 3994 if( !sqlite3Isquote(quote) ) return;
33529 4 3990 if( quote=='[' ) quote = ']';
33532 4166 44934 if( z[i]==quote ){
33533 172 3994 if( z[i+1]==quote ){
33548 67 2456 p->flags |= p->u.zToken[0]=='"' ? EP_Quoted|EP_DblQuoted : EP_Quoted;
33565 85 6229 if( p->n<2 ) return;
33566 6123 106 if( !sqlite3Isquote(p->z[0]) ) return;
33567 674 104 for(i=1; in-1; i++){
33568 2 672 if( sqlite3Isquote(p->z[i]) ) return;
33596 0 6935 if( zLeft==0 ){
33597 0 0 return zRight ? -1 : 0;
33598 0 6935 }else if( zRight==0 ){
33611 309734 189271 if( c==x ){
33612 30887 278847 if( c==0 ) break;
33615 180976 8295 if( c ) break;
33624 0 9631 if( zLeft==0 ){
33625 0 0 return zRight ? -1 : 0;
33626 0 9631 }else if( zRight==0 ){
33631 26975 3927 while( N-- > 0 && *a!=0 && UpperToLower[*a]==UpperToLower[*b]){ a++; b++; }
26742 233 while( N-- > 0 && *a!=0 && UpperToLower[*a]==UpperToLower[*b]){ a++; b++; }
21271 5471 while( N-- > 0 && *a!=0 && UpperToLower[*a]==UpperToLower[*b]){ a++; b++; }
33632 5704 3927 return N<0 ? 0 : UpperToLower[*a] - UpperToLower[*b];
33640 0 11262 if( z==0 ) return 0;
33641 57142 11262 while( z[0] ){
33678 7820 1059 if( E & 1 ) r *= x;
33680 2170 6709 if( E==0 ) break;
33736 0 2708 if( length==0 ) return 0;
33738 2708 0 if( enc==SQLITE_UTF8 ){
33748 0 0 for(i=3-enc; i
0 0 for(i=3-enc; i
33749 0 0 if( i
33755 2708 0 while( z
0 2708 while( z
33756 0 2708 if( z>=zEnd ) return 0;
33759 4 2704 if( *z=='-' ){
33762 0 2704 }else if( *z=='+' ){
33767 5065 392 while( z
2749 2316 while( z
33770 0 2749 if( s>=((LARGEST_INT64-9)/10) ){
33773 0 0 while( z
0 0 while( z
33776 392 2316 if( z>=zEnd ) goto do_atof_calc;
33779 2170 146 if( *z=='.' ){
33784 32448 2170 while( z
32448 0 while( z
33785 32448 0 if( s<((LARGEST_INT64-9)/10) ){
33793 2170 146 if( z>=zEnd ) goto do_atof_calc;
33796 146 0 if( *z=='e' || *z=='E' ){
0 146 if( *z=='e' || *z=='E' ){
33804 0 0 if( z>=zEnd ) goto do_atof_calc; /*PREVENTS-HARMLESS-OVERREAD*/
33807 0 0 if( *z=='-' ){
33810 0 0 }else if( *z=='+' ){
33814 0 0 while( z
0 0 while( z
33815 0 0 e = e<10000 ? (e*10 + (*z - '0')) : 10000;
33822 180 0 while( z
34 146 while( z
33827 2170 538 if( e<0 ) {
33834 140 2568 if( s==0 ) {
33836 0 140 result = sign<0 ? -(double)0 : (double)0;
33844 2170 398 while( e>0 ){ /*OPTIMIZATION-IF-TRUE*/
33845 0 2170 if( esign>0 ){
33846 0 0 if( s>=(LARGEST_INT64/10) ) break; /*OPTIMIZATION-IF-FALSE*/
33849 2170 0 if( s%10!=0 ) break; /*OPTIMIZATION-IF-FALSE*/
33856 4 2564 s = sign<0 ? -s : s;
33858 398 2170 if( e==0 ){ /*OPTIMIZATION-IF-TRUE*/
33862 0 2170 if( e>307 ){ /*OPTIMIZATION-IF-TRUE*/
33863 0 0 if( e<342 ){ /*OPTIMIZATION-IF-TRUE*/
33865 0 0 if( esign<0 ){
33873 0 0 if( esign<0 ){
33885 2170 0 if( esign<0 ){
33898 2562 146 if( z==zEnd && nDigit>0 && eValid && eType>0 ){
2562 0 if( z==zEnd && nDigit>0 && eValid && eType>0 ){
2562 0 if( z==zEnd && nDigit>0 && eValid && eType>0 ){
2562 0 if( z==zEnd && nDigit>0 && eValid && eType>0 ){
33900 0 146 }else if( eType>=2 && (eType==3 || eValid) && nDigit>0 ){
0 0 }else if( eType>=2 && (eType==3 || eValid) && nDigit>0 ){
0 0 }else if( eType>=2 && (eType==3 || eValid) && nDigit>0 ){
0 0 }else if( eType>=2 && (eType==3 || eValid) && nDigit>0 ){
33922 0 355 if( v<0 ){
33923 0 0 x = (v==SMALLEST_INT64) ? ((u64)1)<<63 : (u64)-v;
33932 24 355 }while( x );
33933 0 355 if( v<0 ) zTemp[i--] = '-';
33956 0 0 for(i=0; c==0 && i<18; i++){
0 0 for(i=0; c==0 && i<18; i++){
33959 0 0 if( c==0 ){
33995 478 0 if( enc==SQLITE_UTF8 ){
34001 0 0 for(i=3-enc; i
0 0 for(i=3-enc; i
34006 478 0 while( zNum
0 478 while( zNum
34007 478 0 if( zNum
34008 0 478 if( *zNum=='-' ){
34011 0 478 }else if( *zNum=='+' ){
34016 845 0 while( zNum
367 478 while( zNum
34017 743 54 for(i=0; &zNum[i]='0' && c<='9'; i+=incr){
319 424 for(i=0; &zNum[i]='0' && c<='9'; i+=incr){
319 0 for(i=0; &zNum[i]='0' && c<='9'; i+=incr){
34023 0 478 if( u>LARGEST_INT64 ){
34028 0 0 *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64;
34029 0 478 }else if( neg ){
34035 367 111 if( i==0 && zStart==zNum ){ /* No digits */
0 367 if( i==0 && zStart==zNum ){ /* No digits */
34037 0 478 }else if( nonNum ){ /* UTF16 with high-order bytes non-zero */
34039 424 54 }else if( &zNum[i]
34042 424 424 if( !sqlite3Isspace(zNum[jj]) ){
34047 424 0 }while( &zNum[jj]
34049 478 0 if( i<19*incr ){
34055 0 0 c = i>19*incr ? 1 : compare2pow63(zNum, incr);
34056 0 0 if( c<0 ){
34061 0 0 *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64;
34062 0 0 if( c>0 ){
34069 0 0 return neg ? rc : 3;
34089 0 12 if( z[0]=='0'
34090 0 0 && (z[1]=='x' || z[1]=='X')
0 0 && (z[1]=='x' || z[1]=='X')
34094 0 0 for(i=2; z[i]=='0'; i++){}
34095 0 0 for(k=i; sqlite3Isxdigit(z[k]); k++){
34099 0 0 return (z[k]==0 && k-i<=16) ? 0 : 2;
0 0 return (z[k]==0 && k-i<=16) ? 0 : 2;
34121 0 1291 if( zNum[0]=='-' ){
34124 0 1291 }else if( zNum[0]=='+' ){
34128 39 1252 else if( zNum[0]=='0'
34129 39 0 && (zNum[1]=='x' || zNum[1]=='X')
0 39 && (zNum[1]=='x' || zNum[1]=='X')
34130 0 0 && sqlite3Isxdigit(zNum[2])
34134 0 0 while( zNum[0]=='0' ) zNum++;
34135 0 0 for(i=0; sqlite3Isxdigit(zNum[i]) && i<8; i++){
0 0 for(i=0; sqlite3Isxdigit(zNum[i]) && i<8; i++){
34138 0 0 if( (u&0x80000000)==0 && sqlite3Isxdigit(zNum[i])==0 ){
0 0 if( (u&0x80000000)==0 && sqlite3Isxdigit(zNum[i])==0 ){
34146 0 1291 if( !sqlite3Isdigit(zNum[0]) ) return 0;
34147 39 1291 while( zNum[0]=='0' ) zNum++;
34148 3076 0 for(i=0; i<11 && (c = zNum[i] - '0')>=0 && c<=9; i++){
1785 1291 for(i=0; i<11 && (c = zNum[i] - '0')>=0 && c<=9; i++){
1785 0 for(i=0; i<11 && (c = zNum[i] - '0')>=0 && c<=9; i++){
34158 0 1291 if( i>10 ){
34162 12 1279 if( v-neg>2147483647 ){
34165 0 1279 if( neg ){
34191 808 784 for(i=0; sqlite3Isdigit(z[i]); i++){
34193 0 808 if( v>4294967296LL ){ *pI = 0; return 0; }
34195 784 0 if( i==0 || z[i]!=0 ){ *pI = 0; return 0; }
0 784 if( i==0 || z[i]!=0 ){ *pI = 0; return 0; }
34232 0 43 if( v & (((u64)0xff000000)<<32) ){
34235 0 0 for(i=7; i>=0; i--){
34245 86 43 }while( v!=0 );
34248 129 43 for(i=0, j=n-1; j>=0; j--, i++){
34254 2168 2420 if( v<=0x7f ){
34258 2377 43 if( v<=0x3fff ){
34286 4574 380 if( ((signed char*)p)[0]>=0 ){
34290 380 0 if( ((signed char*)p)[1]>=0 ){
34304 0 0 if (!(a&0x80))
34320 0 0 if (!(b&0x80))
34344 0 0 if (!(a&0x80))
34366 0 0 if (!(b&0x80))
34382 0 0 if (!(a&0x80))
34399 0 0 if (!(b&0x80))
34464 471 28 if (!(b&0x80))
34478 28 0 if (!(a&0x80))
34504 0 0 if( (v64 & SQLITE_MAX_U32)!=v64 ){
34568 495 8854 for(i=1; (v >>= 7)!=0; i++){ assert( i<10 ); }
34642 6 0 if( zBlob ){
34643 163840 6 for(i=0; i
34680 0 8905 if( db==0 ){
34685 0 8905 if( eOpenState!=SQLITE_STATE_OPEN ){
34686 0 0 if( sqlite3SafetyCheckSickOrOk(db) ){
34698 1390 12 if( eOpenState!=SQLITE_STATE_SICK &&
6 1384 if( eOpenState!=SQLITE_STATE_SICK &&
34699 0 6 eOpenState!=SQLITE_STATE_OPEN &&
34777 219 0 if( x>=0 ) return x;
34778 0 0 if( x==(int)0x80000000 ) return 0x7fffffff;
34831 2648 2167 if( a>=b ){
34832 1779 869 if( a>b+49 ) return a;
34833 3 866 if( a>b+31 ) return a+1;
34836 1876 291 if( b>a+49 ) return b;
34837 97 194 if( b>a+31 ) return b+1;
34849 211 3620 if( x<8 ){
34850 124 87 if( x<2 ) return 0;
34851 151 87 while( x<8 ){ y -= 10; x <<= 1; }
34873 84 72 if( x<=1 ) return 0;
34874 72 0 if( x<=2000000000 ) return sqlite3LogEst((u64)x);
34887 0 0 if( n>=5 ) n -= 2;
34888 0 0 else if( n>=1 ) n -= 1;
34889 0 0 if( x>60 ) return (u64)LARGEST_INT64;
34890 0 0 return x>=3 ? (n+8)<<(x-3) : (n+8)>>(3-x);
34942 8 22 if( pIn==0 || pIn[1]+nInt > pIn[0] ){
0 8 if( pIn==0 || pIn[1]+nInt > pIn[0] ){
34944 0 22 sqlite3_int64 nAlloc = (pIn ? 2*(sqlite3_int64)pIn[0] : 10) + nInt;
34946 0 22 if( pOut==0 ) return pIn;
34947 22 0 if( pIn==0 ) pOut[1] = 2;
34969 3 32 if( pIn==0 ) return 0;
34973 32 8 if( pIn[i]==iVal ) return (char*)&pIn[i+2];
34975 8 0 }while( i
34985 13 12 if( pIn==0 ) return 0;
34990 7 7 if( strncmp(z,zName,nName)==0 && z[nName]==0 ) return pIn[i];
7 0 if( strncmp(z,zName,nName)==0 && z[nName]==0 ) return pIn[i];
34992 2 5 }while( i
35041 9413 3598 while( elem ){
35055 100941 12459 while( (c = (unsigned char)*z++)!=0 ){ /*OPTIMIZATION-IF-TRUE*/
35075 7605 7507 if( pEntry ){
35076 1641 5964 pHead = pEntry->count ? pEntry->chain : 0;
35082 1641 13471 if( pHead ){
35085 1631 10 if( pHead->prev ){ pHead->prev->next = pNew; }
35090 11392 2079 if( pH->first ){ pH->first->prev = pNew; }
35108 0 624 if( new_size*sizeof(struct _ht)>SQLITE_MALLOC_SOFT_LIMIT ){
35111 0 624 if( new_size==pH->htsize ) return 0;
35126 0 624 if( new_ht==0 ) return 0;
35131 5616 624 for(elem=pH->first, pH->first=0; elem; elem = next_elem){
35154 6219 32488 if( pH->ht ){ /*OPTIMIZATION-IF-TRUE*/
35165 10215 28492 if( pHash ) *pHash = h;
35166 89581 28121 while( count-- ){
35168 10586 78995 if( sqlite3StrICmp(elem->pKey,pKey)==0 ){
35185 2 21 if( elem->prev ){
35190 9 14 if( elem->next ){
35193 0 23 if( pH->ht ){
35195 0 0 if( pEntry->chain==elem ){
35203 14 9 if( pH->count==0 ){
35242 645 9570 if( elem->data ){
35244 23 622 if( data==0 ){
35252 74 9496 if( data==0 ) return 0;
35254 0 9496 if( new_elem==0 ) return data;
35258 1989 7507 if( pH->count>=10 && pH->count > 2*pH->htsize ){
624 1365 if( pH->count>=10 && pH->count > 2*pH->htsize ){
35259 624 0 if( rehash(pH, pH->count*2) ){
35264 1989 7507 insertElement(pH, pH->ht ? &pH->ht[h] : 0, new_elem);
36035 92 0 return osGeteuid() ? 0 : osFchown(fd,uid,gid);
36056 0 0 if( zName==0 ){
36061 0 0 for(i=0; i
36062 0 0 if( aSyscall[i].pDefault ){
36070 0 0 for(i=0; i
36071 0 0 if( strcmp(zName, aSyscall[i].zName)==0 ){
36072 0 0 if( aSyscall[i].pDefault==0 ){
36076 0 0 if( pNewFunc==0 ) pNewFunc = aSyscall[i].pDefault;
36097 0 0 for(i=0; i
36098 0 0 if( strcmp(zName, aSyscall[i].zName)==0 ) return aSyscall[i].pCurrent;
36113 0 0 if( zName ){
36114 0 0 for(i=0; i
36115 0 0 if( strcmp(zName, aSyscall[i].zName)==0 ) break;
36118 0 0 for(i++; i
36119 0 0 if( aSyscall[i].pCurrent!=0 ) return aSyscall[i].zName;
36152 92 305 mode_t m2 = m ? m : SQLITE_DEFAULT_FILE_PERMISSIONS;
36159 9 388 if( fd<0 ){
36160 0 9 if( errno==EINTR ) continue;
36163 388 0 if( fd>=SQLITE_MINIMUM_FILE_DESCRIPTOR ) break;
36168 0 0 if( osOpen("/dev/null", O_RDONLY, m)<0 ) break;
36170 388 9 if( fd>=0 ){
36171 92 296 if( m!=0 ){
36173 92 0 if( osFstat(fd, &statbuf)==0
36174 92 0 && statbuf.st_size==0
36175 0 92 && (statbuf.st_mode&0777)!=m
36324 0 0 do{ rc = osFtruncate(h,sz); }while( rc<0 && errno==EINTR );
0 0 do{ rc = osFtruncate(h,sz); }while( rc<0 && errno==EINTR );
36740 0 6 if( zPath==0 ) zPath = "";
36763 0 386 if( osClose(h) ){
36764 0 0 unixLogErrorAtLine(SQLITE_IOERR_CLOSE, "close",
36785 0 366 for(p=pInode->pUnused; p; p=pNext){
36803 104 0 if( ALWAYS(pInode) ){
36805 95 9 if( pInode->nRef==0 ){
36810 0 95 if( pInode->pPrev ){
36817 0 95 if( pInode->pNext ){
36853 0 106 if( rc!=0 ){
36895 9 97 while( pInode && memcmp(&fileId, &pInode->fileId, sizeof(fileId)) ){
0 9 while( pInode && memcmp(&fileId, &pInode->fileId, sizeof(fileId)) ){
36898 97 9 if( pInode==0 ){
36900 0 97 if( pInode==0 ){
36905 97 0 if( sqlite3GlobalConfig.bCoreMutex ){
36907 0 97 if( pInode->pLockMutex==0 ){
36916 0 97 if( inodeList ) inodeList->pPrev = pInode;
36935 0 334 || (u64)buf.st_ino!=pFile->pInode->fileId.ino);
36954 92 210 if( pFile->ctrlFlags & UNIXFILE_NOLOCK ) return;
36957 0 210 if( rc!=0 ){
36961 0 210 if( buf.st_nlink==0 ){
36965 0 210 if( buf.st_nlink>1 ){
36969 0 210 if( fileHasMoved(pFile) ){
36994 65 87 if( pFile->pInode->eFileLock>SHARED_LOCK ){
37001 87 65 if( !reserved && !pFile->pInode->bProcessLock ){
87 0 if( !reserved && !pFile->pInode->bProcessLock ){
37007 0 87 if( osFcntl(pFile->h, F_GETLK, &lock) ){
37010 87 0 } else if( lock.l_type!=F_UNLCK ){
37088 0 1662 if( (pFile->ctrlFlags & (UNIXFILE_EXCL|UNIXFILE_RDONLY))==UNIXFILE_EXCL ){
37089 0 0 if( pInode->bProcessLock==0 ){
37097 0 0 if( rc<0 ) return rc;
37189 0 710 if( pFile->eFileLock>=eFileLock ){
37212 156 554 if( (pFile->eFileLock!=pInode->eFileLock &&
130 26 if( (pFile->eFileLock!=pInode->eFileLock &&
37213 65 65 (pInode->eFileLock>=PENDING_LOCK || eFileLock>SHARED_LOCK))
37223 336 283 if( eFileLock==SHARED_LOCK &&
336 0 if( eFileLock==SHARED_LOCK &&
37224 65 271 (pInode->eFileLock==SHARED_LOCK || pInode->eFileLock==RESERVED_LOCK) ){
37241 283 271 if( eFileLock==SHARED_LOCK
37242 97 186 || (eFileLock==EXCLUSIVE_LOCK && pFile->eFileLock
97 0 || (eFileLock==EXCLUSIVE_LOCK && pFile->eFileLock
37246 0 368 if( unixFileLock(pFile, &lock) ){
37249 0 0 if( rc!=SQLITE_BUSY ){
37260 271 283 if( eFileLock==SHARED_LOCK ){
37268 0 271 if( unixFileLock(pFile, &lock) ){
37277 0 271 if( unixFileLock(pFile, &lock) && rc==SQLITE_OK ){
0 0 if( unixFileLock(pFile, &lock) && rc==SQLITE_OK ){
37283 0 271 if( rc ){
37284 0 0 if( rc!=SQLITE_BUSY ){
37293 97 186 }else if( eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1 ){
0 97 }else if( eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1 ){
37306 186 97 if( eFileLock==RESERVED_LOCK ){
37314 87 196 if( unixFileLock(pFile, &lock) ){
37317 0 87 if( rc!=SQLITE_BUSY ){
37341 467 87 if( rc==SQLITE_OK ){
37344 0 87 }else if( eFileLock==EXCLUSIVE_LOCK ){
37395 210 435 if( pFile->eFileLock<=eFileLock ){
37401 99 336 if( pFile->eFileLock>SHARED_LOCK ){
37425 99 0 if( eFileLock==SHARED_LOCK ){
37474 0 99 if( unixFileLock(pFile, &lock) ){
37491 99 0 if( unixFileLock(pFile, &lock)==0 ){
37499 336 99 if( eFileLock==NO_LOCK ){
37505 271 65 if( pInode->nShared==0 ){
37509 271 0 if( unixFileLock(pFile, &lock)==0 ){
37525 271 65 if( pInode->nLock==0 ) closePendingFds(pFile);
37530 435 0 if( rc==SQLITE_OK ){
37570 196 0 if( pFile->h>=0 ){
37616 0 104 if( pInode->nLock ){
37764 0 0 if( pFile->eFileLock > NO_LOCK ){
37777 0 0 if( rc<0 ){
37780 0 0 if( EEXIST == tErrno ){
37784 0 0 if( rc!=SQLITE_BUSY ){
37816 0 0 if( pFile->eFileLock==eFileLock ){
37823 0 0 if( eFileLock==SHARED_LOCK ){
37831 0 0 if( rc<0 ){
37833 0 0 if( tErrno==ENOENT ){
38781 0 587 if( newOffset<0 ){
38787 406 181 if( got==cnt ) break;
38788 0 181 if( got<0 ){
38789 0 0 if( errno==EINTR ){ got = 1; continue; }
38793 0 181 }else if( got>0 ){
38799 0 181 }while( got>0 );
38835 0 587 if( offsetmmapSize ){
38836 0 0 if( offset+amt <= pFile->mmapSize ){
38850 406 181 if( got==amt ){
38852 0 181 }else if( got<0 ){
38860 0 0 switch( pFile->lastErrno ){
38910 0 835 if( iSeek<0 ){
38915 0 835 }while( rc<0 && errno==EINTR );
0 0 }while( rc<0 && errno==EINTR );
38921 0 835 if( rc<0 ) *piErrno = errno;
39001 0 835 while( (wrote = seekAndWrite(pFile, offset, pBuf, amt))0 ){
0 0 while( (wrote = seekAndWrite(pFile, offset, pBuf, amt))0 ){
39009 0 835 if( amt>wrote ){
39010 0 0 if( wrote<0 && pFile->lastErrno!=ENOSPC ){
0 0 if( wrote<0 && pFile->lastErrno!=ENOSPC ){
39179 1566 0 for(ii=(int)strlen(zDirname); ii>0 && zDirname[ii]!='/'; ii--);
1476 90 for(ii=(int)strlen(zDirname); ii>0 && zDirname[ii]!='/'; ii--);
39180 90 0 if( ii>0 ){
39183 0 0 if( zDirname[0]!='/' ) zDirname[0] = '.';
39191 90 0 if( fd>=0 ) return SQLITE_OK;
39231 0 270 if( rc ){
39240 90 180 if( pFile->ctrlFlags & UNIXFILE_DIRSYNC ){
39245 90 0 if( rc==SQLITE_OK ){
39271 0 0 if( pFile->szChunk>0 ){
39276 0 0 if( rc ){
39298 0 0 if( nBytemmapSize ){
39316 0 342 if( rc!=0 ){
39328 0 342 if( *pSize==1 ) *pSize = 0;
39349 0 29 if( pFile->szChunk>0 ){
39353 0 0 if( osFstat(pFile->h, &buf) ){
39358 0 0 if( nSize>(i64)buf.st_size ){
39384 0 0 for(/*no-op*/; iWrite
39385 0 0 if( iWrite>=nSize ) iWrite = nSize - 1;
39387 0 0 if( nWrite!=1 ) return SQLITE_IOERR_WRITE;
39394 0 29 if( pFile->mmapSizeMax>0 && nByte>pFile->mmapSize ){
0 0 if( pFile->mmapSizeMax>0 && nByte>pFile->mmapSize ){
39396 0 0 if( pFile->szChunk<=0 ){
39397 0 0 if( robust_ftruncate(pFile->h, nByte) ){
39418 0 0 if( *pArg<0 ){
39420 0 0 }else if( (*pArg)==0 ){
39487 0 0 if( zTFile ){
39509 0 322 if( newLimit>sqlite3GlobalConfig.mxMmap ){
39521 322 0 if( newLimit>=0 && newLimit!=pFile->mmapSizeMax && pFile->nFetchOut==0 ){
0 322 if( newLimit>=0 && newLimit!=pFile->mmapSizeMax && pFile->nFetchOut==0 ){
0 0 if( newLimit>=0 && newLimit!=pFile->mmapSizeMax && pFile->nFetchOut==0 ){
39523 0 0 if( pFile->mmapSize>0 ){
39573 106 835 if( pFd->sectorSize==0 ){
39586 106 0 if( pFd->ctrlFlags & UNIXFILE_PSOW ){
39813 0 0 if( pFile->pShm){
39824 0 0 if( osFcntl(pShmNode->hShm, F_GETLK, &f)<0 ){
39863 0 0 if( pShmNode->hShm>=0 ){
39871 0 0 if( res==-1 ){
39931 0 0 if( pgsz
39944 0 0 if( p && ALWAYS(p->nRef==0) ){
0 0 if( p && ALWAYS(p->nRef==0) ){
39949 0 0 for(i=0; inRegion; i+=nShmPerMap){
39950 0 0 if( p->hShm>=0 ){
39957 0 0 if( p->hShm>=0 ){
40001 0 0 if( osFcntl(pShmNode->hShm, F_GETLK, &lock)!=0 ) {
40003 0 0 }else if( lock.l_type==F_UNLCK ){
40004 0 0 if( pShmNode->isReadonly ){
40014 0 0 if( rc==SQLITE_OK && robust_ftruncate(pShmNode->hShm, 3) ){
0 0 if( rc==SQLITE_OK && robust_ftruncate(pShmNode->hShm, 3) ){
40018 0 0 }else if( lock.l_type==F_WRLCK ){
40022 0 0 if( rc==SQLITE_OK ){
40074 0 0 if( p==0 ) return SQLITE_NOMEM_BKPT;
40085 0 0 if( pShmNode==0 ){
40095 0 0 if( osFstat(pDbFd->h, &sStat) ){
40106 0 0 if( pShmNode==0 ){
40123 0 0 if( sqlite3GlobalConfig.bCoreMutex ){
40125 0 0 if( pShmNode->pShmMutex==0 ){
40131 0 0 if( pInode->bProcessLock==0 ){
40132 0 0 if( 0==sqlite3_uri_boolean(pDbFd->zPath, "readonly_shm", 0) ){
40136 0 0 if( pShmNode->hShm<0 ){
40139 0 0 if( pShmNode->hShm<0 ){
40153 0 0 if( rc!=SQLITE_OK && rc!=SQLITE_READONLY_CANTINIT ) goto shm_open_err;
0 0 if( rc!=SQLITE_OK && rc!=SQLITE_READONLY_CANTINIT ) goto shm_open_err;
40221 0 0 if( pDbFd->pShm==0 ){
40223 0 0 if( rc!=SQLITE_OK ) return rc;
40229 0 0 if( pShmNode->isUnlocked ){
40231 0 0 if( rc!=SQLITE_OK ) goto shmpage_out;
40242 0 0 if( pShmNode->nRegion
40249 0 0 if( pShmNode->hShm>=0 ){
40254 0 0 if( osFstat(pShmNode->hShm, &sStat) ){
40259 0 0 if( sStat.st_size
40263 0 0 if( !bExtend ){
40280 0 0 for(iPg=(sStat.st_size/pgsz); iPg<(nByte/pgsz); iPg++){
40282 0 0 if( seekAndWriteFd(pShmNode->hShm, iPg*pgsz + pgsz-1,"",1,&x)!=1 ){
40296 0 0 if( !apNew ){
40301 0 0 while( pShmNode->nRegion
40305 0 0 if( pShmNode->hShm>=0 ){
40306 0 0 pMem = osMmap(0, nMap,
40310 0 0 if( pMem==MAP_FAILED ){
40316 0 0 if( pMem==0 ){
40323 0 0 for(i=0; i
40331 0 0 if( pShmNode->nRegion>iRegion ){
40336 0 0 if( pShmNode->isReadonly && rc==SQLITE_OK ) rc = SQLITE_READONLY;
0 0 if( pShmNode->isReadonly && rc==SQLITE_OK ) rc = SQLITE_READONLY;
40395 0 0 if( p==0 ) return SQLITE_IOERR_SHMLOCK;
40397 0 0 if( NEVER(pShmNode==0) ) return SQLITE_IOERR_SHMLOCK;
40438 0 0 if( flags & SQLITE_SHM_UNLOCK ){
40439 0 0 if( (p->exclMask|p->sharedMask) & mask ){
40443 0 0 for(ii=ofst; ii
40444 0 0 if( aLock[ii]>((p->sharedMask & (1<
40449 0 0 if( bUnlock ){
40451 0 0 if( rc==SQLITE_OK ){
40454 0 0 }else if( ALWAYS(p->sharedMask & (1<
40460 0 0 if( rc==SQLITE_OK ){
40465 0 0 }else if( flags & SQLITE_SHM_SHARED ){
40468 0 0 if( (p->sharedMask & mask)==0 ){
40469 0 0 if( aLock[ofst]<0 ){
40471 0 0 }else if( aLock[ofst]==0 ){
40476 0 0 if( rc==SQLITE_OK ){
40485 0 0 for(ii=ofst; ii
40487 0 0 if( ALWAYS((p->exclMask & (1<
0 0 if( ALWAYS((p->exclMask & (1<
40495 0 0 if( rc==SQLITE_OK ){
40497 0 0 if( rc==SQLITE_OK ){
40500 0 0 for(ii=ofst; ii
40549 0 0 if( p==0 ) return SQLITE_OK;
40558 0 0 for(pp=&pShmNode->pFirst; (*pp)!=p; pp = &(*pp)->pNext){}
40572 0 0 if( pShmNode->nRef==0 ){
40573 0 0 if( deleteFlag && pShmNode->hShm>=0 ){
0 0 if( deleteFlag && pShmNode->hShm>=0 ){
40597 0 196 if( pFd->pMapRegion ){
40642 0 0 if( pOrig ){
40652 0 0 if( nReuse!=nOrig ){
40672 0 0 if( pNew==MAP_FAILED || pNew==0 ){
0 0 if( pNew==MAP_FAILED || pNew==0 ){
40678 0 0 if( pNew==0 ){
40682 0 0 if( pNew==MAP_FAILED ){
40715 0 0 if( pFd->nFetchOut>0 ) return SQLITE_OK;
40717 0 0 if( nMap<0 ){
40719 0 0 if( osFstat(pFd->h, &statbuf) ){
40724 0 0 if( nMap>pFd->mmapSizeMax ){
40729 0 0 if( nMap!=pFd->mmapSize ){
40756 0 0 if( pFd->mmapSizeMax>0 ){
40757 0 0 if( pFd->pMapRegion==0 ){
40759 0 0 if( rc!=SQLITE_OK ) return rc;
40761 0 0 if( pFd->mmapSize >= iOff+nAmt ){
40793 0 0 if( p ){
41134 8 190 if( sqlite3_uri_boolean(((ctrlFlags & UNIXFILE_URI) ? zFilename : 0),
198 0 if( sqlite3_uri_boolean(((ctrlFlags & UNIXFILE_URI) ? zFilename : 0),
41138 0 198 if( strcmp(pVfs->zName,"unix-excl")==0 ){
41150 92 106 if( ctrlFlags & UNIXFILE_NOLOCK ){
41162 106 92 if( pLockingStyle == &posixIoMethods
41169 0 106 if( rc!=SQLITE_OK ){
41222 0 92 else if( pLockingStyle == &dotlockIoMethods ){
41231 0 0 if( zLockFile==0 ){
41272 0 198 if( rc!=SQLITE_OK ){
41273 0 0 if( h>=0 ) robust_close(pNew, h, __LINE__);
41312 0 0 if( zDir!=0
41313 0 0 && osStat(zDir, &buf)==0
41314 0 0 && S_ISDIR(buf.st_mode)
41315 0 0 && osAccess(zDir, 03)==0
41319 0 0 if( i>=sizeof(azTempDirs)/sizeof(azTempDirs[0]) ) break;
41344 0 0 if( zDir==0 ){
41354 0 0 if( zBuf[nBuf-2]!=0 || (iLimit++)>10 ){
0 0 if( zBuf[nBuf-2]!=0 || (iLimit++)>10 ){
41358 0 0 }while( osAccess(zBuf,0)==0 );
41410 9 103 if( inodeList!=0 && 0==osStat(zPath, &sStat) ){
9 0 if( inodeList!=0 && 0==osStat(zPath, &sStat) ){
41414 9 0 while( pInode && (pInode->fileId.dev!=sStat.st_dev
0 9 while( pInode && (pInode->fileId.dev!=sStat.st_dev
41415 0 9 || pInode->fileId.ino!=(u64)sStat.st_ino) ){
41418 9 0 if( pInode ){
41423 0 9 for(pp=&pInode->pUnused; *pp && (*pp)->flags!=flags; pp=&((*pp)->pNext));
0 0 for(pp=&pInode->pUnused; *pp && (*pp)->flags!=flags; pp=&((*pp)->pNext));
41425 0 9 if( pUnused ){
41447 92 0 if( 0==osStat(zFile, &sStat) ){
41489 92 112 if( flags & (SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL) ){
41512 736 0 while( nDb>0 && zPath[nDb]!='.' ){
736 0 while( nDb>0 && zPath[nDb]!='.' ){
41513 92 644 if( zPath[nDb]=='-' ){
41521 0 112 }else if( flags & SQLITE_OPEN_DELETEONCLOSE ){
41523 12 100 }else if( flags & SQLITE_OPEN_URI ){
41529 0 12 if( z ){
41589 192 12 int isNewJrnl = (isCreate && (
192 0 int isNewJrnl = (isCreate && (
41591 100 92 || eType==SQLITE_OPEN_MAIN_JOURNAL
41592 0 100 || eType==SQLITE_OPEN_WAL
41632 23 181 if( randomnessPid!=osGetpid(0) ){
41643 112 92 if( eType==SQLITE_OPEN_MAIN_DB ){
41646 0 112 if( pUnused ){
41650 0 112 if( !pUnused ){
41661 0 92 }else if( !zName ){
41665 0 0 if( rc!=SQLITE_OK ){
41679 6 198 if( isReadonly ) openFlags |= O_RDONLY;
41680 198 6 if( isReadWrite ) openFlags |= O_RDWR;
41681 192 12 if( isCreate ) openFlags |= O_CREAT;
41682 0 204 if( isExclusive ) openFlags |= (O_EXCL|O_NOFOLLOW);
41685 204 0 if( fd<0 ){
41690 0 204 if( rc!=SQLITE_OK ){
41698 6 198 if( fd<0 ){
41699 0 6 if( isNewJrnl && errno==EACCES && osAccess(zName, F_OK) ){
0 0 if( isNewJrnl && errno==EACCES && osAccess(zName, F_OK) ){
0 0 if( isNewJrnl && errno==EACCES && osAccess(zName, F_OK) ){
41703 6 0 }else if( errno!=EISDIR && isReadWrite ){
3 3 }else if( errno!=EISDIR && isReadWrite ){
41713 6 198 if( fd<0 ){
41715 6 0 if( rc==SQLITE_OK ) rc = rc2;
41731 92 106 if( openMode && (flags & (SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL))!=0 ){
92 0 if( openMode && (flags & (SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL))!=0 ){
41736 106 92 if( pOutFlags ){
41740 106 92 if( p->pPreallocatedUnused ){
41746 0 198 if( isDelete ){
41780 0 198 if( isDelete ) ctrlFlags |= UNIXFILE_DELETE;
41781 3 195 if( isReadonly ) ctrlFlags |= UNIXFILE_RDONLY;
41783 92 106 if( noLock ) ctrlFlags |= UNIXFILE_NOLOCK;
41784 92 106 if( isNewJrnl ) ctrlFlags |= UNIXFILE_DIRSYNC;
41785 8 190 if( flags & SQLITE_OPEN_URI ) ctrlFlags |= UNIXFILE_URI;
41826 6 198 if( rc!=SQLITE_OK ){
41845 0 92 if( osUnlink(zPath)==(-1) ){
41846 0 0 if( errno==ENOENT
41858 0 92 if( (dirSync & 1)!=0 ){
41861 0 0 if( rc==SQLITE_OK ){
41862 0 0 if( full_fsync(fd,0,0) ){
41899 672 0 if( flags==SQLITE_ACCESS_EXISTS ){
41901 152 520 *pResOut = 0==osStat(zPath, &buf) &&
152 0 *pResOut = 0==osStat(zPath, &buf) &&
41902 152 0 (!S_ISREG(buf.st_mode) || buf.st_size>0);
41934 88 440 if( zName[0]=='.' ){
41935 0 88 if( nName==1 ) return;
41936 0 88 if( zName[1]=='.' && nName==2 ){
0 0 if( zName[1]=='.' && nName==2 ){
41937 0 0 if( pPath->nUsed<=1 ){
41942 0 0 while( pPath->zOut[--pPath->nUsed]!='/' ){}
41946 0 528 if( pPath->nUsed + nName + 2 >= pPath->nOut ){
41954 528 0 if( pPath->rc==SQLITE_OK ){
41959 60 468 if( osLstat(zIn, &buf)!=0 ){
41960 0 60 if( errno!=ENOENT ){
41963 0 468 }else if( S_ISLNK(buf.st_mode) ){
41966 0 0 if( pPath->nSymlink++ > SQLITE_MAX_SYMLINK ){
41971 0 0 if( got<=0 || got>=(ssize_t)sizeof(zLnk)-2 ){
0 0 if( got<=0 || got>=(ssize_t)sizeof(zLnk)-2 ){
41976 0 0 if( zLnk[0]=='/' ){
41997 4477 200 while( zPath[i] && zPath[i]!='/' ){ i++; }
4037 440 while( zPath[i] && zPath[i]!='/' ){ i++; }
41998 528 112 if( i>j ){
42002 440 200 }while( zPath[i++] );
42027 88 24 if( zPath[0]!='/' ){
42029 0 88 if( osGetcwd(zPwd, sizeof(zPwd)-2)==0 ){
42036 112 0 if( path.rc || path.nUsed<2 ) return SQLITE_CANTOPEN_BKPT;
0 112 if( path.rc || path.nUsed<2 ) return SQLITE_CANTOPEN_BKPT;
42037 0 112 if( path.nSymlink ) return SQLITE_OK_SYMLINK;
42064 0 0 if( zErr ){
42128 0 100 if( fd<0 ){
42136 0 100 do{ got = osRead(fd, zBuf, nBuf); }while( got<0 && errno==EINTR );
0 0 do{ got = osRead(fd, zBuf, nBuf); }while( got<0 && errno==EINTR );
42163 0 171 if( microseconds>=1000000 ) sleep(microseconds/1000000);
42164 171 0 if( microseconds%1000000 ) usleep(microseconds%1000000);
43535 440 110 for(i=0; i<(sizeof(aVfs)/sizeof(sqlite3_vfs)); i++){
49986 0 0 if( p->zFName ){
49992 0 0 for(i=0; ALWAYS(i
49993 0 0 if( memdb_g.apMemStore[i]==p ){
49995 0 0 if( p->nRef==1 ){
49997 0 0 if( memdb_g.nMemStore==0 ){
50010 0 0 if( p->nRef<=0 ){
50011 0 0 if( p->mFlags & SQLITE_DESERIALIZE_FREEONCLOSE ){
50034 0 0 if( iOfst+iAmt>p->sz ){
50036 0 0 if( iOfstsz ) memcpy(zBuf, p->aData+iOfst, p->sz - iOfst);
50050 0 0 if( (p->mFlags & SQLITE_DESERIALIZE_RESIZEABLE)==0 || NEVER(p->nMmap>0) ){
0 0 if( (p->mFlags & SQLITE_DESERIALIZE_RESIZEABLE)==0 || NEVER(p->nMmap>0) ){
50053 0 0 if( newSz>p->szMax ){
50057 0 0 if( newSz>p->szMax ) newSz = p->szMax;
50059 0 0 if( pNew==0 ) return SQLITE_IOERR_NOMEM;
50076 0 0 if( NEVER(p->mFlags & SQLITE_DESERIALIZE_READONLY) ){
50082 0 0 if( iOfst+iAmt>p->sz ){
50084 0 0 if( iOfst+iAmt>p->szAlloc
50085 0 0 && (rc = memdbEnlarge(p, iOfst+iAmt))!=SQLITE_OK
50090 0 0 if( iOfst>p->sz ) memset(p->aData+p->sz, 0, iOfst-p->sz);
50109 0 0 if( size>p->sz ){
50146 0 0 if( eLock==pThis->eLock ) return SQLITE_OK;
50148 0 0 if( eLock>SQLITE_LOCK_SHARED ){
50149 0 0 if( p->mFlags & SQLITE_DESERIALIZE_READONLY ){
50151 0 0 }else if( pThis->eLock<=SQLITE_LOCK_SHARED ){
50152 0 0 if( p->nWrLock ){
50158 0 0 }else if( eLock==SQLITE_LOCK_SHARED ){
50159 0 0 if( pThis->eLock > SQLITE_LOCK_SHARED ){
50162 0 0 }else if( p->nWrLock ){
50169 0 0 if( pThis->eLock>SQLITE_LOCK_SHARED ){
50176 0 0 if( rc==SQLITE_OK ) pThis->eLock = eLock;
50200 0 0 if( op==SQLITE_FCNTL_VFSNAME ){
50204 0 0 if( op==SQLITE_FCNTL_SIZE_LIMIT ){
50206 0 0 if( iLimitsz ){
50207 0 0 if( iLimit<0 ){
50250 0 0 if( iOfst+iAmt>p->sz || (p->mFlags & SQLITE_DESERIALIZE_RESIZEABLE)!=0 ){
0 0 if( iOfst+iAmt>p->sz || (p->mFlags & SQLITE_DESERIALIZE_RESIZEABLE)!=0 ){
50288 0 0 if( szName>1 && zName[0]=='/' ){
0 0 if( szName>1 && zName[0]=='/' ){
50294 0 0 for(i=0; i
50295 0 0 if( strcmp(memdb_g.apMemStore[i]->zFName,zName)==0 ){
50300 0 0 if( p==0 ){
50303 0 0 if( p==0 ){
50309 0 0 if( apNew==0 ){
50322 0 0 if( p->pMutex==0 ){
50337 0 0 if( p==0 ){
50345 0 0 if( pOutFlags!=0 ){
50470 0 0 if( rc ) return 0;
50471 0 0 if( p->base.pMethods!=&memdb_io_methods ) return 0;
50474 0 0 if( pStore->zFName!=0 ) p = 0;
50505 0 0 if( zSchema==0 ) zSchema = db->aDb[0].zDbSName;
50508 0 0 if( piSize ) *piSize = -1;
50509 0 0 if( iDb<0 ) return 0;
50510 0 0 if( p ){
50513 0 0 if( piSize ) *piSize = pStore->sz;
50514 0 0 if( mFlags & SQLITE_SERIALIZE_NOCOPY ){
50518 0 0 if( pOut ) memcpy(pOut, pStore->aData, pStore->sz);
50523 0 0 if( pBt==0 ) return 0;
50526 0 0 rc = zSql ? sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0) : SQLITE_NOMEM;
50528 0 0 if( rc ) return 0;
50530 0 0 if( rc!=SQLITE_ROW ){
50534 0 0 if( piSize ) *piSize = sz;
50535 0 0 if( mFlags & SQLITE_SERIALIZE_NOCOPY ){
50539 0 0 if( pOut ){
50543 0 0 for(pgno=1; pgno<=nPage; pgno++){
50547 0 0 if( rc==SQLITE_OK ){
50586 0 0 if( zSchema==0 ) zSchema = db->aDb[0].zDbSName;
50589 0 0 if( iDb<2 && iDb!=0 ){
0 0 if( iDb<2 && iDb!=0 ){
50594 0 0 if( zSql==0 ){
50600 0 0 if( rc ) goto end_deserialize;
50605 0 0 if( rc!=SQLITE_DONE ){
50610 0 0 if( p==0 ){
50619 0 0 if( pStore->szMax
50628 0 0 if( pData && (mFlags & SQLITE_DESERIALIZE_FREEONCLOSE)!=0 ){
0 0 if( pData && (mFlags & SQLITE_DESERIALIZE_FREEONCLOSE)!=0 ){
50642 0 110 if( NEVER(pLower==0) ) return SQLITE_ERROR;
50649 0 110 if( sz
50775 1144 0 if( p ){
50789 1181 1677 if( i>=p->iSize ) return 0;
50790 0 1677 while( p->iDivisor ){
50794 0 0 if (!p) {
50798 1677 0 if( p->iSize<=BITVEC_NBIT ){
50802 0 0 while( p->u.aHash[h] ){
50803 0 0 if( p->u.aHash[h]==i ) return 1;
50810 1 28 return p!=0 && sqlite3BitvecTestNotNull(p,i);
0 1 return p!=0 && sqlite3BitvecTestNotNull(p,i);
50827 0 1374 if( p==0 ) return SQLITE_OK;
50831 0 1374 while((p->iSize > BITVEC_NBIT) && p->iDivisor) {
0 0 while((p->iSize > BITVEC_NBIT) && p->iDivisor) {
50834 0 0 if( p->u.apSub[bin]==0 ){
50836 0 0 if( p->u.apSub[bin]==0 ) return SQLITE_NOMEM_BKPT;
50840 1374 0 if( p->iSize<=BITVEC_NBIT ){
50848 0 0 if( !p->u.aHash[h] ){
50849 0 0 if (p->nSet<(BITVEC_NINT-1)) {
50858 0 0 if( p->u.aHash[h]==i ) return SQLITE_OK;
50860 0 0 if( h>=BITVEC_NINT ) h = 0;
50861 0 0 } while( p->u.aHash[h] );
50866 0 0 if( p->nSet>=BITVEC_MXHASH ){
50870 0 0 if( aiValues==0 ){
50877 0 0 for(j=0; j
50878 0 0 if( aiValues[j] ) rc |= sqlite3BitvecSet(p, aiValues[j]);
50897 0 0 if( p==0 ) return;
50900 0 0 while( p->iDivisor ){
50904 0 0 if (!p) {
50908 0 0 if( p->iSize<=BITVEC_NBIT ){
50916 0 0 for(j=0; j
50917 0 0 if( aiValues[j] && aiValues[j]!=(i+1) ){
0 0 if( aiValues[j] && aiValues[j]!=(i+1) ){
50920 0 0 while( p->u.aHash[h] ){
50922 0 0 if( h>=BITVEC_NINT ) h = 0;
50934 3989 1144 if( p==0 ) return;
50935 0 1144 if( p->iDivisor ){
50937 0 0 for(i=0; i
51005 0 0 if( pBitvec==0 || pV==0 || pTmpSpace==0 ) goto bitvec_end;
0 0 if( pBitvec==0 || pV==0 || pTmpSpace==0 ) goto bitvec_end;
0 0 if( pBitvec==0 || pV==0 || pTmpSpace==0 ) goto bitvec_end;
51013 0 0 while( (op = aOp[pc])!=0 ){
51014 0 0 switch( op ){
51031 0 0 if( (--aOp[pc+1]) > 0 ) nx = 0;
51034 0 0 if( (op & 1)!=0 ){
51036 0 0 if( op!=5 ){
51037 0 0 if( sqlite3BitvecSet(pBitvec, i+1) ) goto bitvec_end;
51053 0 0 for(i=1; i<=sz; i++){
51054 0 0 if( (TESTBIT(pV,i))!=sqlite3BitvecTest(pBitvec,i) ){
51234 8982 2342 if( addRemove & PCACHE_DIRTYLIST_REMOVE ){
51239 1826 7156 if( p->pSynced==pPage ){
51243 6800 2182 if( pPage->pDirtyNext ){
51249 4352 4630 if( pPage->pDirtyPrev ){
51259 1649 2981 if( p->pDirty==0 ){ /*OPTIMIZATION-IF-TRUE*/
51265 8982 2342 if( addRemove & PCACHE_DIRTYLIST_ADD ){
51268 7333 1649 if( pPage->pDirtyNext ){
51273 231 1418 if( p->bPurgeable ){
51285 2206 6776 if( !p->pSynced
51286 1270 936 && 0==(pPage->flags&PGHDR_NEED_SYNC) /*OPTIMIZATION-IF-FALSE*/
51299 825 5051 if( p->pCache->bPurgeable ){
51311 366 584 if( p->szCache>=0 ){
51322 0 584 if( n>1000000000 ) n = 1000000000;
51333 110 0 if( sqlite3GlobalConfig.pcache2.xInit==0 ){
51343 0 0 if( sqlite3GlobalConfig.pcache2.xShutdown ){
51394 366 366 if( pCache->szPage ){
51400 0 366 if( pNew==0 ) return SQLITE_NOMEM_BKPT;
51402 0 366 if( pCache->pCache ){
51483 0 0 if( pCache->eCreate==2 ) return 0;
51485 0 0 if( sqlite3PcachePagecount(pCache)>pCache->szSpill ){
51495 0 0 for(pPg=pCache->pSynced;
51496 0 0 pPg && (pPg->nRef || (pPg->flags&PGHDR_NEED_SYNC));
0 0 pPg && (pPg->nRef || (pPg->flags&PGHDR_NEED_SYNC));
51500 0 0 if( !pPg ){
51501 0 0 for(pPg=pCache->pDirtyTail; pPg && pPg->nRef; pPg=pPg->pDirtyPrev);
0 0 for(pPg=pCache->pDirtyTail; pPg && pPg->nRef; pPg=pPg->pDirtyPrev);
51503 0 0 if( pPg ){
51515 0 0 if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){
0 0 if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){
51521 0 0 return *ppPage==0 ? SQLITE_NOMEM_BKPT : SQLITE_OK;
51569 1336 11623 if( !pPgHdr->pPage ){
51585 10456 1172 if( (--p->nRef)==0 ){
51586 3816 6640 if( p->flags&PGHDR_CLEAN ){
51612 0 0 if( p->flags&PGHDR_DIRTY ){
51626 2342 175 if( p->flags & (PGHDR_CLEAN|PGHDR_DONT_WRITE) ){ /*OPTIMIZATION-IF-FALSE*/
51628 2342 0 if( p->flags & PGHDR_CLEAN ){
51651 2060 282 if( p->nRef==0 ){
51662 2253 1012 while( (p = pCache->pDirty)!=0 ){
51673 432 271 for(p=pCache->pDirty; p; p=p->pDirtyNext){
51684 219 90 for(p=pCache->pDirty; p; p=p->pDirtyNext){
51701 0 0 if( pOther ){
51710 0 0 if( (p->flags&PGHDR_DIRTY) && (p->flags&PGHDR_NEED_SYNC) ){
0 0 if( (p->flags&PGHDR_DIRTY) && (p->flags&PGHDR_NEED_SYNC) ){
51726 1568 366 if( pCache->pCache ){
51730 521 1568 for(p=pCache->pDirty; p; p=pNext){
51737 89 432 if( p->pgno>pgno ){
51742 388 1180 if( pgno==0 && pCache->nRefSum ){
5 383 if( pgno==0 && pCache->nRefSum ){
51745 5 0 if( ALWAYS(pPage1) ){ /* Page 1 is always available in cache, because
51780 98 89 if( pA->pgnopgno ){
51784 72 26 if( pA==0 ){
51792 57 32 if( pB==0 ){
51816 219 90 while( pIn ){
51820 336 0 for(i=0; ALWAYS(i
51821 219 117 if( a[i]==0 ){
51829 0 219 if( NEVER(i==N_SORT_BUCKET-1) ){
51837 2790 90 for(i=1; i
51838 2701 89 if( a[i]==0 ) continue;
51839 12 77 p = p ? pcacheMergeDirtyList(p, a[i]) : a[i];
51849 219 90 for(p=pCache->pDirty; p; p=p->pDirtyNext){
51907 0 0 if( mxPage ){
51908 0 0 if( mxPage<0 ){
51914 0 0 if( resszSpill ) res = p->szSpill;
51940 0 0 for(pDirty=pCache->pDirty; pDirty; pDirty=pDirty->pDirtyNext) nDirty++;
51941 0 0 return nCache ? (int)(((i64)nDirty * 100) / nCache) : 0;
52233 110 0 if( pcache1.isInit ){
52235 110 0 if( pBuf==0 ) sz = n = 0;
52236 110 0 if( n==0 ) sz = 0;
52240 110 0 pcache1.nReserve = n>90 ? 10 : (n/10 + 1);
52244 0 110 while( n-- ){
52261 0 274 if( pcache1.nInitPage==0 ) return 0;
52263 171 103 if( pCache->nMax<3 ) return 0;
52265 103 0 if( pcache1.nInitPage>0 ){
52270 0 103 if( szBulk > pCache->szAlloc*(i64)pCache->nMax ){
52275 103 0 if( zBulk ){
52287 1957 103 }while( --nBulk );
52304 0 1665 if( nByte<=pcache1.szSlot ){
52307 0 0 if( p ){
52317 1665 0 if( p==0 ){
52323 1665 0 if( p ){
52340 372 1661 if( p==0 ) return;
52341 1661 0 if( SQLITE_WITHIN(p, pcache1.pStart, pcache1.pEnd) ){
0 1661 if( SQLITE_WITHIN(p, pcache1.pStart, pcache1.pEnd) ){
52394 1192 144 if( pCache->pFree || (pCache->nPage==0 && pcache1InitBulk(pCache)) ){
274 918 if( pCache->pFree || (pCache->nPage==0 && pcache1InitBulk(pCache)) ){
103 171 if( pCache->pFree || (pCache->nPage==0 && pcache1InitBulk(pCache)) ){
52408 10 1079 if( benignMalloc ){ sqlite3BeginBenignMalloc(); }
52420 10 1079 if( benignMalloc ){ sqlite3EndBenignMalloc(); }
52424 0 1089 if( pPg==0 ) return 0;
52446 243 1089 if( p->isBulkLocal ){
52493 0 151 if( pcache1.nSlot && (pCache->szPage+pCache->szExtra)<=pcache1.szSlot ){
0 0 if( pcache1.nSlot && (pCache->szPage+pCache->szExtra)<=pcache1.szSlot ){
52517 366 2 if( nNew<256 ){
52522 2 366 if( p->nHash ){ sqlite3BeginBenignMalloc(); }
52524 2 366 if( p->nHash ){ sqlite3EndBenignMalloc(); }
52526 368 0 if( apNew ){
52527 512 368 for(i=0; inHash; i++){
52530 512 512 while( (pPage = pNext)!=0 ){
52582 0 0 for(pp=&pCache->apHash[h]; (*pp)!=pPage; pp=&(*pp)->pNext);
52586 0 0 if( freeFlag ) pcache1FreePage(pPage);
52597 0 729 while( pGroup->nPurgeable>pGroup->nMaxPage
52598 0 0 && (p=pGroup->lru.pLruPrev)->isAnchor==0
52605 682 47 if( pCache->nPage==0 && pCache->pBulk ){
101 581 if( pCache->nPage==0 && pCache->pBulk ){
52627 288 0 if( pCache->iMaxKey - iLimit < pCache->nHash ){
52646 1332 1353 while( (pPage = *pp)!=0 ){
52647 1332 0 if( pPage->iKey>=iLimit ){
52650 253 1079 if( PAGE_IS_UNPINNED(pPage) ) pcache1PinPage(pPage);
52657 288 1065 if( h==iStop ) break;
52693 0 110 || sqlite3GlobalConfig.bCoreMutex>0;
0 0 || sqlite3GlobalConfig.bCoreMutex>0;
52699 110 0 if( sqlite3GlobalConfig.bCoreMutex ){
52704 110 0 if( pcache1.separateCache
52705 110 0 && sqlite3GlobalConfig.nPage!=0
52706 110 0 && sqlite3GlobalConfig.pPage==0
52746 366 0 if( pCache ){
52747 366 0 if( pcache1.separateCache ){
52754 366 0 if( pGroup->lru.isAnchor==0 ){
52764 159 207 if( bPurgeable ){
52773 0 366 if( pCache->nHash==0 ){
52790 365 585 if( pCache->bPurgeable ){
52794 0 365 if( n > 0x7fff0000 - pGroup->nMaxPage + pCache->nMax ){
52813 0 0 if( pCache->bPurgeable ){
52860 106 1230 if( createFlag==1 && (
106 0 if( createFlag==1 && (
52862 106 0 || nPinned>=pCache->n90pct
52863 0 106 || (pcache1UnderMemoryPressure(pCache) && pCache->nRecyclable
0 0 || (pcache1UnderMemoryPressure(pCache) && pCache->nRecyclable
52868 2 1334 if( pCache->nPage>=pCache->nHash ) pcache1ResizeHash(pCache);
52872 257 1079 if( pCache->bPurgeable
52873 45 212 && !pGroup->lru.pLruPrev->isAnchor
52874 45 0 && ((pCache->nPage+1>=pCache->nMax) || pcache1UnderMemoryPressure(pCache))
0 45 && ((pCache->nPage+1>=pCache->nMax) || pcache1UnderMemoryPressure(pCache))
52882 0 0 if( pOther->szAlloc != pCache->szAlloc ){
52893 1336 0 if( !pPage ){
52897 1336 0 if( pPage ){
52908 1328 8 if( iKey>pCache->iMaxKey ){
52984 10294 1336 while( pPage && pPage->iKey!=iKey ){ pPage = pPage->pNext; }
2 10292 while( pPage && pPage->iKey!=iKey ){ pPage = pPage->pNext; }
52990 10292 1336 if( pPage ){
52991 568 9724 if( PAGE_IS_UNPINNED(pPage) ){
52996 1336 0 }else if( createFlag ){
53068 825 0 if( reuseUnlikely || pGroup->nPurgeable>pGroup->nMaxPage ){
0 825 if( reuseUnlikely || pGroup->nPurgeable>pGroup->nMaxPage ){
53104 0 0 while( (*pp)!=pPage ){
53114 0 0 if( iNew>pCache->iMaxKey ){
53131 288 1280 if( iLimit<=pCache->iMaxKey ){
53148 0 364 if( pCache->nPage ) pcache1TruncateUnsafe(pCache, 0);
53390 8 0 if( p ){
53413 1 9 for(pChunk=p->pChunk; pChunk; pChunk = pNextChunk){
53445 1 10 if( p->nFresh==0 ){ /*OPTIMIZATION-IF-FALSE*/
53450 0 1 if( pNew==0 ){
53476 0 11 if( pEntry==0 ) return;
53480 6 5 if( pLast ){
53481 0 6 if( rowid<=pLast->v ){ /*OPTIMIZATION-IF-FALSE*/
53511 0 0 if( pA->v<=pB->v ){
53512 0 0 if( pA->vv ) pTail = pTail->pRight = pA;
53514 0 0 if( pA==0 ){
53521 0 0 if( pB==0 ){
53539 0 0 while( pIn ){
53542 0 0 for(i=0; aBucket[i]; i++){
53550 0 0 for(i=1; i
53551 0 0 if( aBucket[i]==0 ) continue;
53552 0 0 pIn = pIn ? rowSetEntryMerge(pIn, aBucket[i]) : aBucket[i];
53569 0 0 if( pIn->pLeft ){
53576 0 0 if( pIn->pRight ){
53604 0 0 if( *ppList==0 ){ /*OPTIMIZATION-IF-TRUE*/
53608 0 0 if( iDepth>1 ){ /*OPTIMIZATION-IF-TRUE*/
53614 0 0 if( p==0 ){ /*OPTIMIZATION-IF-FALSE*/
53643 0 0 for(iDepth=1; pList; iDepth++){
53671 2 0 if( (p->rsFlags & ROWSET_NEXT)==0 ){ /*OPTIMIZATION-IF-FALSE*/
53672 0 2 if( (p->rsFlags & ROWSET_SORTED)==0 ){ /*OPTIMIZATION-IF-FALSE*/
53679 1 1 if( p->pEntry ){
53682 1 0 if( p->pEntry==0 ){ /*OPTIMIZATION-IF-TRUE*/
53709 6 6 if( iBatch!=pRowSet->iBatch ){ /*OPTIMIZATION-IF-FALSE*/
53711 0 6 if( p ){
53713 0 0 if( (pRowSet->rsFlags & ROWSET_SORTED)==0 ){ /*OPTIMIZATION-IF-FALSE*/
53717 0 0 for(pTree = pRowSet->pForest; pTree; pTree=pTree->pRight){
53719 0 0 if( pTree->pLeft==0 ){
53729 0 0 if( pTree==0 ){
53731 0 0 if( pTree ){
53747 0 12 for(pTree = pRowSet->pForest; pTree; pTree=pTree->pRight){
53749 0 0 while( p ){
53750 0 0 if( p->v
53752 0 0 }else if( p->v>iRowid ){
54970 17 705 if( pPager->errCode ){
54973 0 705 }else if( USEFETCH(pPager) ){
54995 437 328 for(i=0; inSavepoint; i++){
54997 367 70 if( p->nOrig>=pgno && 0==sqlite3BitvecTestNotNull(p->pInSavepoint, pgno) ){
55 312 if( p->nOrig>=pgno && 0==sqlite3BitvecTestNotNull(p->pInSavepoint, pgno) ){
54998 0 55 for(i=i+1; inSavepoint; i++){
55026 274 0 if( rc==SQLITE_OK ){
55063 541 313 if( isOpen(pPager->fd) ){
55065 541 0 rc = pPager->noLock ? SQLITE_OK : sqlite3OsUnlock(pPager->fd, eLock);
55066 541 0 if( pPager->eLock!=UNKNOWN_LOCK ){
55089 2127 710 if( pPager->eLockeLock==UNKNOWN_LOCK ){
0 2127 if( pPager->eLockeLock==UNKNOWN_LOCK ){
55090 710 0 rc = pPager->noLock ? SQLITE_OK : sqlite3OsLock(pPager->fd, eLock);
55091 532 178 if( rc==SQLITE_OK && (pPager->eLock!=UNKNOWN_LOCK||eLock==EXCLUSIVE_LOCK) ){
0 532 if( rc==SQLITE_OK && (pPager->eLock!=UNKNOWN_LOCK||eLock==EXCLUSIVE_LOCK) ){
0 0 if( rc==SQLITE_OK && (pPager->eLock!=UNKNOWN_LOCK||eLock==EXCLUSIVE_LOCK) ){
55232 62 0 if( SQLITE_OK!=(rc = sqlite3OsFileSize(pJrnl, &szJ))
55233 62 0 || szJ<16
55234 62 0 || SQLITE_OK!=(rc = read32bits(pJrnl, szJ-16, &len))
55235 36 26 || len>=nSuper
55236 36 0 || len>szJ-16
55237 0 36 || len==0
55238 0 0 || SQLITE_OK!=(rc = read32bits(pJrnl, szJ-12, &cksum))
55239 0 0 || SQLITE_OK!=(rc = sqlite3OsRead(pJrnl, aMagic, 8, szJ-8))
55240 0 0 || memcmp(aMagic, aJournalMagic, 8)
55241 0 0 || SQLITE_OK!=(rc = sqlite3OsRead(pJrnl, zSuper, len, szJ-16-len))
55247 0 0 for(u=0; u
55250 0 0 if( cksum ){
55282 121 1118 if( c ){
55316 0 0 if( pPager->journalOff ){
55320 0 0 if( doTruncate || iLimit==0 ){
0 0 if( doTruncate || iLimit==0 ){
55326 0 0 if( rc==SQLITE_OK && !pPager->noSync ){
0 0 if( rc==SQLITE_OK && !pPager->noSync ){
55336 0 0 if( rc==SQLITE_OK && iLimit>0 ){
0 0 if( rc==SQLITE_OK && iLimit>0 ){
55339 0 0 if( rc==SQLITE_OK && sz>iLimit ){
0 0 if( rc==SQLITE_OK && sz>iLimit ){
55371 1087 0 if( nHeader>JOURNAL_HDR_SZ(pPager) ){
55379 0 1087 for(ii=0; iinSavepoint; ii++){
55380 0 0 if( pPager->aSavepoint[ii].iHdrOffset==0 ){
55408 92 995 if( pPager->noSync || (pPager->journalMode==PAGER_JOURNALMODE_MEMORY)
92 0 if( pPager->noSync || (pPager->journalMode==PAGER_JOURNALMODE_MEMORY)
55409 0 92 || (sqlite3OsDeviceCharacteristics(pPager->fd)&SQLITE_IOCAP_SAFE_APPEND)
55453 2174 0 for(nWrite=0; rc==SQLITE_OK&&nWrite
1087 1087 for(nWrite=0; rc==SQLITE_OK&&nWrite
55498 31 31 if( pPager->journalOff+JOURNAL_HDR_SZ(pPager) > journalSize ){
55508 31 0 if( isHot || iHdrOff!=pPager->journalHdr ){
0 31 if( isHot || iHdrOff!=pPager->journalHdr ){
55510 0 0 if( rc ){
55513 0 0 if( memcmp(aMagic, aJournalMagic, sizeof(aMagic))!=0 ){
55522 31 0 if( SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+8, pNRec))
55523 31 0 || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+12, &pPager->cksumInit))
55524 0 31 || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+16, pDbSize))
55529 31 0 if( pPager->journalOff==0 ){
55534 31 0 if( SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+20, &iSectorSize))
55535 0 31 || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+24, &iPageSize))
55544 0 31 if( iPageSize==0 ){
55553 31 0 if( iPageSize<512 || iSectorSize<32
31 0 if( iPageSize<512 || iSectorSize<32
55554 31 0 || iPageSize>SQLITE_MAX_PAGE_SIZE || iSectorSize>MAX_SECTOR_SIZE
31 0 || iPageSize>SQLITE_MAX_PAGE_SIZE || iSectorSize>MAX_SECTOR_SIZE
55555 31 0 || ((iPageSize-1)&iPageSize)!=0 || ((iSectorSize-1)&iSectorSize)!=0
0 31 || ((iPageSize-1)&iPageSize)!=0 || ((iSectorSize-1)&iSectorSize)!=0
55615 0 90 if( !zSuper
55616 0 0 || pPager->journalMode==PAGER_JOURNALMODE_MEMORY
55617 0 0 || !isOpen(pPager->jfd)
55625 0 0 for(nSuper=0; zSuper[nSuper]; nSuper++){
55633 0 0 if( pPager->fullSync ){
55641 0 0 if( (0 != (rc = write32bits(pPager->jfd, iHdrOff, PAGER_SJ_PGNO(pPager))))
55642 0 0 || (0 != (rc = sqlite3OsWrite(pPager->jfd, zSuper, nSuper, iHdrOff+4)))
55643 0 0 || (0 != (rc = write32bits(pPager->jfd, iHdrOff+4+nSuper, nSuper)))
55644 0 0 || (0 != (rc = write32bits(pPager->jfd, iHdrOff+4+nSuper+4, cksum)))
55645 0 0 || (0 != (rc = sqlite3OsWrite(pPager->jfd, aJournalMagic, 8,
55662 0 0 if( SQLITE_OK==(rc = sqlite3OsFileSize(pPager->jfd, &jrnlSize))
55663 0 0 && jrnlSize>pPager->journalOff
55693 1 3937 for(ii=0; iinSavepoint; ii++){
55696 3083 854 if( !pPager->exclusiveMode || sqlite3JournalIsInMemory(pPager->sjfd) ){
17 3066 if( !pPager->exclusiveMode || sqlite3JournalIsInMemory(pPager->sjfd) ){
55714 133 2364 for(ii=0; iinSavepoint; ii++){
55716 63 70 if( pgno<=p->nOrig ){
55753 0 2744 if( pagerUseWal(pPager) ){
55757 702 2042 }else if( !pPager->exclusiveMode ){
55759 442 260 int iDc = isOpen(pPager->fd)?sqlite3OsDeviceCharacteristics(pPager->fd):0;
55772 0 702 if( 0==(iDc & SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN)
55773 0 0 || 1!=(pPager->journalMode & 5)
55784 0 702 if( rc!=SQLITE_OK && pPager->eState==PAGER_ERROR ){
0 0 if( rc!=SQLITE_OK && pPager->eState==PAGER_ERROR ){
55802 17 2727 if( pPager->errCode ){
55803 0 17 if( pPager->tempFile==0 ){
55810 0 17 if( USEFETCH(pPager) ) sqlite3OsUnfetch(pPager->fd, 0, 0);
55847 1123 0 if( rc2==SQLITE_FULL || rc2==SQLITE_IOERR ){
0 1123 if( rc2==SQLITE_FULL || rc2==SQLITE_IOERR ){
55874 189 1237 if( pPager->tempFile==0 ) return 1;
55875 74 1163 if( !bCommit ) return 0;
55876 1163 0 if( !isOpen(pPager->fd) ) return 0;
55952 389 1140 if( pPager->eStateeLock
336 53 if( pPager->eStateeLock
55960 1087 106 if( isOpen(pPager->jfd) ){
55964 995 92 if( sqlite3JournalIsInMemory(pPager->jfd) ){
55967 0 92 }else if( pPager->journalMode==PAGER_JOURNALMODE_TRUNCATE ){
55968 0 0 if( pPager->journalOff==0 ){
55972 0 0 if( rc==SQLITE_OK && pPager->fullSync ){
0 0 if( rc==SQLITE_OK && pPager->fullSync ){
55982 92 0 }else if( pPager->journalMode==PAGER_JOURNALMODE_PERSIST
55983 0 92 || (pPager->exclusiveMode && pPager->journalMode!=PAGER_JOURNALMODE_WAL)
0 0 || (pPager->exclusiveMode && pPager->journalMode!=PAGER_JOURNALMODE_WAL)
55985 0 0 rc = zeroJournalHdr(pPager, hasSuper||pPager->tempFile);
0 0 rc = zeroJournalHdr(pPager, hasSuper||pPager->tempFile);
56000 92 0 if( bDelete ){
56020 1193 0 if( rc==SQLITE_OK ){
56021 370 823 if( MEMDB || pagerFlushOnCommit(pPager, bCommit) ){
99 271 if( MEMDB || pagerFlushOnCommit(pPager, bCommit) ){
56029 0 1193 if( pagerUseWal(pPager) ){
56036 1193 0 }else if( rc==SQLITE_OK && bCommit && pPager->dbFileSize>pPager->dbSize ){
1079 114 }else if( rc==SQLITE_OK && bCommit && pPager->dbFileSize>pPager->dbSize ){
0 1079 }else if( rc==SQLITE_OK && bCommit && pPager->dbFileSize>pPager->dbSize ){
56047 1193 0 if( rc==SQLITE_OK && bCommit ){
1079 114 if( rc==SQLITE_OK && bCommit ){
56049 1079 0 if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;
56052 152 1041 if( !pPager->exclusiveMode
56053 0 152 && (!pagerUseWal(pPager) || sqlite3WalExclusiveMode(pPager->pWal, 0))
0 0 && (!pagerUseWal(pPager) || sqlite3WalExclusiveMode(pPager->pWal, 0))
56060 1193 0 return (rc==SQLITE_OK?rc2:rc);
56081 2518 17 if( pPager->eState!=PAGER_ERROR && pPager->eState!=PAGER_OPEN ){
2414 104 if( pPager->eState!=PAGER_ERROR && pPager->eState!=PAGER_OPEN ){
56083 0 2414 if( pPager->eState>=PAGER_WRITER_LOCKED ){
56087 389 2025 }else if( !pPager->exclusiveMode ){
56117 26720 1336 while( i>0 ){
56199 28 1 jfd = isMainJrnl ? pPager->jfd : pPager->sjfd;
56201 0 29 if( rc!=SQLITE_OK ) return rc;
56203 0 29 if( rc!=SQLITE_OK ) return rc;
56211 29 0 if( pgno==0 || pgno==PAGER_SJ_PGNO(pPager) ){
0 29 if( pgno==0 || pgno==PAGER_SJ_PGNO(pPager) ){
56215 29 0 if( pgno>(Pgno)pPager->dbSize || sqlite3BitvecTest(pDone, pgno) ){
0 29 if( pgno>(Pgno)pPager->dbSize || sqlite3BitvecTest(pDone, pgno) ){
56218 28 1 if( isMainJrnl ){
56220 0 28 if( rc ) return rc;
56221 28 0 if( !isSavepnt && pager_cksum(pPager, (u8*)aData)!=cksum ){
0 28 if( !isSavepnt && pager_cksum(pPager, (u8*)aData)!=cksum ){
56229 1 28 if( pDone && (rc = sqlite3BitvecSet(pDone, pgno))!=SQLITE_OK ){
0 1 if( pDone && (rc = sqlite3BitvecSet(pDone, pgno))!=SQLITE_OK ){
56235 1 28 if( pgno==1 && pPager->nReserve!=((u8*)aData)[20] ){
0 1 if( pgno==1 && pPager->nReserve!=((u8*)aData)[20] ){
56274 0 29 if( pagerUseWal(pPager) ){
56285 28 1 if( isMainJrnl ){
56286 2 26 isSynced = pPager->noSync || (*pOffset <= pPager->journalHdr);
0 2 isSynced = pPager->noSync || (*pOffset <= pPager->journalHdr);
56288 1 0 isSynced = (pPg==0 || 0==(pPg->flags & PGHDR_NEED_SYNC));
0 1 isSynced = (pPg==0 || 0==(pPg->flags & PGHDR_NEED_SYNC));
56290 2 27 if( isOpen(pPager->fd)
56291 2 0 && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)
0 2 && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)
56292 0 0 && isSynced
56306 0 0 if( pgno>pPager->dbFileSize ){
56309 0 0 if( pPager->pBackup ){
56312 1 28 }else if( !isMainJrnl && pPg==0 ){
0 1 }else if( !isMainJrnl && pPg==0 ){
56335 0 0 if( rc!=SQLITE_OK ) return rc;
56338 29 0 if( pPg ){
56357 1 28 if( pgno==1 ){
56424 0 0 if( !pSuper ){
56432 0 0 if( rc!=SQLITE_OK ) goto delsuper_out;
56440 0 0 if( rc!=SQLITE_OK ) goto delsuper_out;
56443 0 0 if( !zFree ){
56451 0 0 if( rc!=SQLITE_OK ) goto delsuper_out;
56456 0 0 while( (zJournal-zSuperJournal)
56459 0 0 if( rc!=SQLITE_OK ){
56462 0 0 if( exists ){
56473 0 0 if( rc!=SQLITE_OK ){
56479 0 0 if( rc!=SQLITE_OK ){
56483 0 0 c = zSuperPtr[0]!=0 && strcmp(zSuperPtr, zSuper)==0;
0 0 c = zSuperPtr[0]!=0 && strcmp(zSuperPtr, zSuper)==0;
56484 0 0 if( c ){
56497 0 0 if( pSuper ){
56531 2 29 if( isOpen(pPager->fd)
56532 2 0 && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)
0 2 && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)
56540 0 0 if( rc==SQLITE_OK && currentSize!=newSize ){
0 0 if( rc==SQLITE_OK && currentSize!=newSize ){
56541 0 0 if( currentSize>newSize ){
56543 0 0 }else if( (currentSize+szPage)<=newSize ){
56551 0 0 if( rc==SQLITE_OK ){
56565 0 0 if( iRet<32 ){
56567 0 0 }else if( iRet>MAX_SECTOR_SIZE ){
56600 211 289 if( pPager->tempFile
56601 211 0 || (sqlite3OsDeviceCharacteristics(pPager->fd) &
56688 0 31 if( rc!=SQLITE_OK ){
56705 31 0 if( rc==SQLITE_OK && zSuper[0] ){
0 31 if( rc==SQLITE_OK && zSuper[0] ){
56709 31 0 if( rc!=SQLITE_OK || !res ){
31 0 if( rc!=SQLITE_OK || !res ){
56726 31 31 if( rc!=SQLITE_OK ){
56727 31 0 if( rc==SQLITE_DONE ){
56738 29 2 if( nRec==0xffffffff ){
56757 7 24 if( nRec==0 && !isHot &&
7 0 if( nRec==0 && !isHot &&
7 0 if( nRec==0 && !isHot &&
56765 31 0 if( pPager->journalOff==JOURNAL_HDR_SZ(pPager) ){
56767 0 31 if( rc!=SQLITE_OK ){
56771 0 31 if( pPager->mxPgno
56779 28 31 for(u=0; u
56780 0 28 if( needPagerReset ){
56785 28 0 if( rc==SQLITE_OK ){
56788 0 0 if( rc==SQLITE_DONE ){
56791 0 0 }else if( rc==SQLITE_IOERR_SHORT_READ ){
56814 31 0 if( rc==SQLITE_OK ){
56837 31 0 if( rc==SQLITE_OK ){
56846 31 0 if( rc==SQLITE_OK
56847 31 0 && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)
0 31 && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)
56851 31 0 if( rc==SQLITE_OK ){
56855 31 0 if( rc==SQLITE_OK && zSuper[0] && res ){
0 31 if( rc==SQLITE_OK && zSuper[0] && res ){
0 0 if( rc==SQLITE_OK && zSuper[0] && res ){
56864 0 31 if( isHot && nPlayback ){
0 0 if( isHot && nPlayback ){
56900 0 88 if( pagerUseWal(pPager) ){
56902 0 0 if( rc ) return rc;
56904 0 88 if( iFrame ){
56911 0 88 if( rc==SQLITE_IOERR_SHORT_READ ){
56916 45 43 if( pPg->pgno==1 ){
56917 0 45 if( rc ){
56955 0 180 if( NEVER(pPg==0) ) return;
56988 0 0 if( pPg ){
56989 0 0 if( sqlite3PcachePageRefcount(pPg)==1 ){
56993 0 0 if( rc==SQLITE_OK ){
57030 0 0 while( pList && rc==SQLITE_OK ){
0 0 while( pList && rc==SQLITE_OK ){
57068 0 0 if( isCommit ){
57075 0 0 for(p=pList; (*ppNext = p)!=0; p=p->pDirty){
57076 0 0 if( p->pgno<=nTruncate ){
57087 0 0 if( pList->pgno==1 ) pager_write_changecounter(pList);
57091 0 0 if( rc==SQLITE_OK && pPager->pBackup ){
0 0 if( rc==SQLITE_OK && pPager->pBackup ){
57092 0 0 for(p=pList; p; p=p->pDirty){
57130 0 0 if( rc!=SQLITE_OK || changed ){
0 0 if( rc!=SQLITE_OK || changed ){
57132 0 0 if( USEFETCH(pPager) ) sqlite3OsUnfetch(pPager->fd, 0, 0);
57168 336 0 if( nPage==0 && ALWAYS(isOpen(pPager->fd)) ){
336 0 if( nPage==0 && ALWAYS(isOpen(pPager->fd)) ){
57171 0 336 if( rc!=SQLITE_OK ){
57181 0 336 if( nPage>pPager->mxPgno ){
57213 336 0 if( !pPager->tempFile ){
57218 336 0 if( rc==SQLITE_OK ){
57219 0 336 if( isWal ){
57223 0 0 if( rc ) return rc;
57224 0 0 if( nPage==0 ){
57230 0 336 }else if( pPager->journalMode==PAGER_JOURNALMODE_WAL ){
57285 1 0 if( pSavepoint ){
57287 0 1 if( !pDone ){
57295 1 0 pPager->dbSize = pSavepoint ? pSavepoint->nOrig : pPager->dbOrigSize;
57298 0 1 if( !pSavepoint && pagerUseWal(pPager) ){
0 0 if( !pSavepoint && pagerUseWal(pPager) ){
57317 1 0 if( pSavepoint && !pagerUseWal(pPager) ){
1 0 if( pSavepoint && !pagerUseWal(pPager) ){
57318 0 1 iHdrOff = pSavepoint->iHdrOffset ? pSavepoint->iHdrOffset : szJ;
57320 1 0 while( rc==SQLITE_OK && pPager->journalOff
0 1 while( rc==SQLITE_OK && pPager->journalOff
57333 1 0 while( rc==SQLITE_OK && pPager->journalOff
0 1 while( rc==SQLITE_OK && pPager->journalOff
57345 0 0 if( nJRec==0
57346 0 0 && pPager->journalHdr+JOURNAL_HDR_SZ(pPager)==pPager->journalOff
57350 0 0 for(ii=0; rc==SQLITE_OK && iijournalOff
0 0 for(ii=0; rc==SQLITE_OK && iijournalOff
0 0 for(ii=0; rc==SQLITE_OK && iijournalOff
57361 1 0 if( pSavepoint ){
57365 0 1 if( pagerUseWal(pPager) ){
57368 2 0 for(ii=pSavepoint->iSubRec; rc==SQLITE_OK && iinSubRec; ii++){
1 1 for(ii=pSavepoint->iSubRec; rc==SQLITE_OK && iinSubRec; ii++){
57376 1 0 if( rc==SQLITE_OK ){
57405 322 875 if( isOpen(fd) && fd->pMethods->iVersion>=3 ){
322 0 if( isOpen(fd) && fd->pMethods->iVersion>=3 ){
57487 24 0 if( pPager->tempFile ){
57496 24 0 if( pPager->noSync ){
57498 0 0 }else if( pgFlags & PAGER_FULLFSYNC ){
57504 0 24 if( pPager->fullSync ){
57507 0 24 if( (pgFlags & PAGER_CKPT_FULLFSYNC) && !pPager->noSync ){
0 0 if( (pgFlags & PAGER_CKPT_FULLFSYNC) && !pPager->noSync ){
57510 24 0 if( pgFlags & PAGER_CACHESPILL ){
57640 261 570 if( (pPager->memDb==0 || pPager->dbSize==0)
216 45 if( (pPager->memDb==0 || pPager->dbSize==0)
57641 769 17 && sqlite3PcacheRefCount(pPager->pPCache)==0
57642 430 339 && pageSize && pageSize!=(u32)pPager->pageSize
366 64 && pageSize && pageSize!=(u32)pPager->pageSize
57647 260 106 if( pPager->eState>PAGER_OPEN && isOpen(pPager->fd) ){
0 260 if( pPager->eState>PAGER_OPEN && isOpen(pPager->fd) ){
57650 366 0 if( rc==SQLITE_OK ){
57654 0 366 if( !pNew ){
57661 366 0 if( rc==SQLITE_OK ){
57665 366 0 if( rc==SQLITE_OK ){
57677 831 0 if( rc==SQLITE_OK ){
57678 428 403 if( nReserve<0 ) nReserve = pPager->nReserve;
57706 0 0 if( mxPage>0 ){
57766 106 260 if( isOpen(pPager->fd) ){
57769 79 27 if( rc==SQLITE_IOERR_SHORT_READ ){
57819 26 1519 }while( rc==SQLITE_BUSY && pPager->xBusyHandler(pPager->pBusyHandlerArg) );
24 2 }while( rc==SQLITE_BUSY && pPager->xBusyHandler(pPager->pBusyHandlerArg) );
57908 0 0 if( !pPager->noSync ){
57911 0 0 if( rc==SQLITE_OK ){
57936 0 0 if( pPager->pMmapFreelist ){
57944 0 0 if( p==0 ){
57988 0 364 for(p=pPager->pMmapFreelist; p; p=pNext){
58003 461 196 if( pPager->tempFile ) return SQLITE_OK;
58004 72 124 if( pPager->dbSize==0 ) return SQLITE_OK;
58007 0 124 if( rc==SQLITE_NOTFOUND ){
58012 124 0 }else if( rc==SQLITE_OK && bHasMoved ){
0 124 }else if( rc==SQLITE_OK && bHasMoved ){
58046 364 0 if( db && 0==(db->flags & SQLITE_NoCkptOnClose)
364 0 if( db && 0==(db->flags & SQLITE_NoCkptOnClose)
58047 364 0 && SQLITE_OK==databaseIsUnmoved(pPager)
58056 207 157 if( MEMDB ){
58070 0 157 if( isOpen(pPager->jfd) ){
58151 0 90 if( rc!=SQLITE_OK ) return rc;
58153 90 0 if( !pPager->noSync ){
58155 90 0 if( isOpen(pPager->jfd) && pPager->journalMode!=PAGER_JOURNALMODE_MEMORY ){
90 0 if( isOpen(pPager->jfd) && pPager->journalMode!=PAGER_JOURNALMODE_MEMORY ){
58159 90 0 if( 0==(iDc&SQLITE_IOCAP_SAFE_APPEND) ){
58191 0 90 if( rc==SQLITE_OK && 0==memcmp(aMagic, aJournalMagic, 8) ){
0 0 if( rc==SQLITE_OK && 0==memcmp(aMagic, aJournalMagic, 8) ){
58195 90 0 if( rc!=SQLITE_OK && rc!=SQLITE_IOERR_SHORT_READ ){
0 90 if( rc!=SQLITE_OK && rc!=SQLITE_IOERR_SHORT_READ ){
58210 90 0 if( pPager->fullSync && 0==(iDc&SQLITE_IOCAP_SEQUENTIAL) ){
90 0 if( pPager->fullSync && 0==(iDc&SQLITE_IOCAP_SEQUENTIAL) ){
58214 0 90 if( rc!=SQLITE_OK ) return rc;
58220 0 90 if( rc!=SQLITE_OK ) return rc;
58222 90 0 if( 0==(iDc&SQLITE_IOCAP_SEQUENTIAL) ){
58226 0 90 (pPager->syncFlags==SQLITE_SYNC_FULL?SQLITE_SYNC_DATAONLY:0)
58228 0 90 if( rc!=SQLITE_OK ) return rc;
58232 0 90 if( newHdr && 0==(iDc&SQLITE_IOCAP_SAFE_APPEND) ){
0 0 if( newHdr && 0==(iDc&SQLITE_IOCAP_SAFE_APPEND) ){
58235 0 0 if( rc!=SQLITE_OK ) return rc;
58297 0 90 if( !isOpen(pPager->fd) ){
58306 90 0 if( rc==SQLITE_OK
58307 29 61 && pPager->dbHintSizedbSize
58308 1 28 && (pList->pDirty || pList->pgno>pPager->dbHintSize)
1 0 && (pList->pDirty || pList->pgno>pPager->dbHintSize)
58315 309 0 while( rc==SQLITE_OK && pList ){
219 90 while( rc==SQLITE_OK && pList ){
58326 219 0 if( pgno<=pPager->dbSize && 0==(pList->flags&PGHDR_DONT_WRITE) ){
218 1 if( pgno<=pPager->dbSize && 0==(pList->flags&PGHDR_DONT_WRITE) ){
58331 90 128 if( pList->pgno==1 ) pager_write_changecounter(pList);
58342 90 128 if( pgno==1 ){
58345 75 143 if( pgno>pPager->dbFileSize ){
58377 25 30 if( !isOpen(pPager->sjfd) ){
58382 8 17 if( pPager->journalMode==PAGER_JOURNALMODE_MEMORY || pPager->subjInMemory ){
0 8 if( pPager->journalMode==PAGER_JOURNALMODE_MEMORY || pPager->subjInMemory ){
58404 55 0 if( pPager->journalMode!=PAGER_JOURNALMODE_OFF ){
58418 55 0 if( rc==SQLITE_OK ){
58425 55 0 if( rc==SQLITE_OK ){
58430 55 0 if( rc==SQLITE_OK ){
58438 55 328 if( subjRequiresPage(pPg) ){
58487 0 0 if( NEVER(pPager->errCode) ) return SQLITE_OK;
58491 0 0 if( pPager->doNotSpill
58492 0 0 && ((pPager->doNotSpill & (SPILLFLAG_ROLLBACK|SPILLFLAG_OFF))!=0
58493 0 0 || (pPg->flags & PGHDR_NEED_SYNC)!=0)
58500 0 0 if( pagerUseWal(pPager) ){
58503 0 0 if( rc==SQLITE_OK ){
58516 0 0 if( pPg->flags&PGHDR_NEED_SYNC
58517 0 0 || pPager->eState==PAGER_WRITER_CACHEMOD
58523 0 0 if( rc==SQLITE_OK ){
58530 0 0 if( rc==SQLITE_OK ){
58543 0 0 if( !MEMDB ){
58546 0 0 while( rc==SQLITE_OK && pList ){
0 0 while( rc==SQLITE_OK && pList ){
58548 0 0 if( pList->nRef==0 ){
58628 207 165 if( flags & PAGER_MEMORY ){
58630 207 0 if( zFilename && zFilename[0] ){
207 0 if( zFilename && zFilename[0] ){
58632 0 207 if( zPathname==0 ) return SQLITE_NOMEM_BKPT;
58643 115 257 if( zFilename && zFilename[0] ){
112 3 if( zFilename && zFilename[0] ){
58647 0 112 if( zPathname==0 ){
58652 0 112 if( rc!=SQLITE_OK ){
58653 0 0 if( rc==SQLITE_OK_SYMLINK ){
58654 0 0 if( vfsFlags & SQLITE_OPEN_NOFOLLOW ){
58663 10 112 while( *z ){
58670 112 0 if( rc==SQLITE_OK && nPathname+8>pVfs->mxPathname ){
0 112 if( rc==SQLITE_OK && nPathname+8>pVfs->mxPathname ){
58679 0 112 if( rc!=SQLITE_OK ){
58745 0 372 if( !pPtr ){
58760 319 53 if( nPathname>0 ){
58762 112 207 if( zUri ){
58771 319 53 if( nPathname>0 ){
58785 319 53 if( nPathname>0 ){
58799 319 53 if( nPathname ) sqlite3DbFree(0, zPathname);
58805 115 257 if( zFilename && zFilename[0] ){
112 3 if( zFilename && zFilename[0] ){
58822 106 6 if( rc==SQLITE_OK ){
58824 103 3 if( !readOnly ){
58827 0 103 if( szPageDfltsectorSize ){
58828 0 0 if( pPager->sectorSize>SQLITE_MAX_DEFAULT_PAGE_SIZE ){
58849 106 0 if( (iDc & SQLITE_IOCAP_IMMUTABLE)!=0
58850 0 106 || sqlite3_uri_boolean(pPager->zFilename, "immutable", 0) ){
58877 366 6 if( rc==SQLITE_OK ){
58884 366 6 if( rc==SQLITE_OK ){
58887 159 207 rc = sqlite3PcacheOpen(szPageDflt, nExtra, !memDb,
58893 6 366 if( rc!=SQLITE_OK ){
58923 106 260 if( pPager->noSync ){
58941 17 349 if( !useJournal ){
58943 142 207 }else if( memDb || memJM ){
0 142 }else if( memDb || memJM ){
58964 0 0 while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
0 0 while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
0 0 while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
0 0 while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
59018 336 0 if( !jrnlOpen ){
59021 336 0 if( rc==SQLITE_OK && exists ){
152 184 if( rc==SQLITE_OK && exists ){
59033 152 0 if( rc==SQLITE_OK && !locked ){
0 152 if( rc==SQLITE_OK && !locked ){
59038 0 0 if( rc==SQLITE_OK ){
59047 0 0 if( nPage==0 && !jrnlOpen ){
0 0 if( nPage==0 && !jrnlOpen ){
59049 0 0 if( pagerLockDb(pPager, RESERVED_LOCK)==SQLITE_OK ){
59051 0 0 if( !pPager->exclusiveMode ) pagerUnlockDb(pPager, SHARED_LOCK);
59061 0 0 if( !jrnlOpen ){
59065 0 0 if( rc==SQLITE_OK ){
59068 0 0 if( rc==SQLITE_IOERR_SHORT_READ ){
59071 0 0 if( !jrnlOpen ){
59075 0 0 }else if( rc==SQLITE_CANTOPEN ){
59135 2380 0 if( !pagerUseWal(pPager) && pPager->eState==PAGER_OPEN ){
338 2042 if( !pagerUseWal(pPager) && pPager->eState==PAGER_OPEN ){
59142 2 336 if( rc!=SQLITE_OK ){
59150 336 0 if( pPager->eLock<=SHARED_LOCK ){
59153 0 336 if( rc!=SQLITE_OK ){
59156 0 336 if( bHotJournal ){
59157 0 0 if( pPager->readOnly ){
59178 0 0 if( rc!=SQLITE_OK ){
59195 0 0 if( !isOpen(pPager->jfd) && pPager->journalMode!=PAGER_JOURNALMODE_OFF ){
0 0 if( !isOpen(pPager->jfd) && pPager->journalMode!=PAGER_JOURNALMODE_OFF ){
59200 0 0 if( rc==SQLITE_OK && bExists ){
0 0 if( rc==SQLITE_OK && bExists ){
59206 0 0 if( rc==SQLITE_OK && fout&SQLITE_OPEN_READONLY ){
0 0 if( rc==SQLITE_OK && fout&SQLITE_OPEN_READONLY ){
59221 0 0 if( isOpen(pPager->jfd) ){
59224 0 0 if( rc==SQLITE_OK ){
59228 0 0 }else if( !pPager->exclusiveMode ){
59232 0 0 if( rc!=SQLITE_OK ){
59259 336 0 if( !pPager->tempFile && pPager->hasHeldSharedLock ){
283 53 if( !pPager->tempFile && pPager->hasHeldSharedLock ){
59280 12 271 if( rc!=SQLITE_OK ){
59281 0 12 if( rc!=SQLITE_IOERR_SHORT_READ ){
59287 11 272 if( memcmp(pPager->dbFileVers, dbFileVers, sizeof(dbFileVers))!=0 ){
59296 0 11 if( USEFETCH(pPager) ){
59311 0 2378 if( pagerUseWal(pPager) ){
59316 336 2042 if( pPager->tempFile==0 && pPager->eState==PAGER_OPEN && rc==SQLITE_OK ){
336 0 if( pPager->tempFile==0 && pPager->eState==PAGER_OPEN && rc==SQLITE_OK ){
336 0 if( pPager->tempFile==0 && pPager->eState==PAGER_OPEN && rc==SQLITE_OK ){
59321 2 2378 if( rc!=SQLITE_OK ){
59341 2378 44 if( sqlite3PcacheRefCount(pPager->pPCache)==0 ){
59420 0 11594 if( pgno==0 ) return SQLITE_CORRUPT_BKPT;
59422 0 11594 if( pBase==0 ){
59425 0 0 if( rc!=SQLITE_OK ) goto pager_acquire_err;
59426 0 0 if( pBase==0 ){
59437 10258 1336 if( pPg->pPager && !noContent ){
10257 1 if( pPg->pPager && !noContent ){
59451 0 1337 if( pgno==PAGER_SJ_PGNO(pPager) ){
59459 164 1173 if( !isOpen(pPager->fd) || pPager->dbSize
89 75 if( !isOpen(pPager->fd) || pPager->dbSize
1 88 if( !isOpen(pPager->fd) || pPager->dbSize
59460 0 1249 if( pgno>pPager->mxPgno ){
59464 1001 248 if( noContent ){
59472 1 1000 if( pgno<=pPager->dbOrigSize ){
59486 0 88 if( rc!=SQLITE_OK ){
59496 0 0 if( pPg ){
59521 0 0 && (pPager->eState==PAGER_READER || (flags & PAGER_GET_READONLY))
0 0 && (pPager->eState==PAGER_READER || (flags & PAGER_GET_READONLY))
0 0 && (pPager->eState==PAGER_READER || (flags & PAGER_GET_READONLY))
59530 0 0 if( pgno<=1 && pgno==0 ){
0 0 if( pgno<=1 && pgno==0 ){
59538 0 0 if( bMmapOk && pagerUseWal(pPager) ){
0 0 if( bMmapOk && pagerUseWal(pPager) ){
59540 0 0 if( rc!=SQLITE_OK ){
59545 0 0 if( bMmapOk && iFrame==0 ){
0 0 if( bMmapOk && iFrame==0 ){
59550 0 0 if( rc==SQLITE_OK && pData ){
0 0 if( rc==SQLITE_OK && pData ){
59551 0 0 if( pPager->eState>PAGER_READER || pPager->tempFile ){
0 0 if( pPager->eState>PAGER_READER || pPager->tempFile ){
59554 0 0 if( pPg==0 ){
59559 0 0 if( pPg ){
59565 0 0 if( rc!=SQLITE_OK ){
59619 0 29 if( pPage==0 ) return 0;
59638 0 9177 if( pPg->flags & PGHDR_MMAP ){
59648 979 0 if( pPg ) sqlite3PagerUnrefNotNull(pPg);
59693 0 1104 if( NEVER(pPager->errCode) ) return pPager->errCode;
59695 1104 0 if( !pagerUseWal(pPager) && pPager->journalMode!=PAGER_JOURNALMODE_OFF ){
1087 17 if( !pagerUseWal(pPager) && pPager->journalMode!=PAGER_JOURNALMODE_OFF ){
59697 0 1087 if( pPager->pInJournal==0 ){
59702 1087 0 if( !isOpen(pPager->jfd) ){
59703 794 293 if( pPager->journalMode==PAGER_JOURNALMODE_MEMORY ){
59709 201 92 if( pPager->tempFile ){
59720 293 0 if( rc==SQLITE_OK ){
59733 1087 0 if( rc==SQLITE_OK ){
59743 0 1104 if( rc!=SQLITE_OK ){
59775 0 1292 if( pPager->errCode ) return pPager->errCode;
59779 1292 0 if( pPager->eState==PAGER_READER ){
59782 0 1292 if( pagerUseWal(pPager) ){
59786 0 0 if( pPager->exclusiveMode && sqlite3WalExclusiveMode(pPager->pWal, -1) ){
0 0 if( pPager->exclusiveMode && sqlite3WalExclusiveMode(pPager->pWal, -1) ){
59788 0 0 if( rc!=SQLITE_OK ){
59807 1140 152 if( rc==SQLITE_OK && exFlag ){
14 1126 if( rc==SQLITE_OK && exFlag ){
59812 1140 152 if( rc==SQLITE_OK ){
59867 0 1308 if( rc!=SQLITE_OK ) return rc;
59869 0 1308 if( rc!=SQLITE_OK ) return rc;
59871 0 1308 if( rc!=SQLITE_OK ) return rc;
59924 1104 1413 if( pPager->eState==PAGER_WRITER_LOCKED ){
59926 0 1104 if( rc!=SQLITE_OK ) return rc;
59939 2490 27 if( pPager->pInJournal!=0
59940 2489 1 && sqlite3BitvecTestNotNull(pPager->pInJournal, pPg->pgno)==0
59943 1308 1181 if( pPg->pgno<=pPager->dbOrigSize ){
59945 0 1308 if( rc!=SQLITE_OK ){
59949 1181 0 if( pPager->eState!=PAGER_WRITER_DBMOD ){
59968 60 2457 if( pPager->nSavepoint>0 ){
59973 1208 1309 if( pPager->dbSizepgno ){
60015 0 0 if( pPg->pgno>nPageCount ){
60017 0 0 }else if( (pg1+nPagePerSector-1)>nPageCount ){
60026 0 0 for(ii=0; ii
0 0 for(ii=0; ii
60029 0 0 if( pg==pPg->pgno || !sqlite3BitvecTest(pPager->pInJournal, pg) ){
0 0 if( pg==pPg->pgno || !sqlite3BitvecTest(pPager->pInJournal, pg) ){
60030 0 0 if( pg!=PAGER_SJ_PGNO(pPager) ){
60032 0 0 if( rc==SQLITE_OK ){
60034 0 0 if( pPage->flags&PGHDR_NEED_SYNC ){
60040 0 0 }else if( (pPage = sqlite3PagerLookup(pPager, pg))!=0 ){
60041 0 0 if( pPage->flags&PGHDR_NEED_SYNC ){
60054 0 0 if( rc==SQLITE_OK && needSync ){
0 0 if( rc==SQLITE_OK && needSync ){
60056 0 0 for(ii=0; ii
60058 0 0 if( pPage ){
60089 4984 2517 if( (pPg->flags & PGHDR_WRITEABLE)!=0 && pPager->dbSize>=pPg->pgno ){
4984 0 if( (pPg->flags & PGHDR_WRITEABLE)!=0 && pPager->dbSize>=pPg->pgno ){
60090 323 4661 if( pPager->nSavepoint ) return subjournalPageIfRequired(pPg);
60092 0 2517 }else if( pPager->errCode ){
60094 0 2517 }else if( pPager->sectorSize > (u32)pPager->pageSize ){
60135 1 0 if( !pPager->tempFile && (pPg->flags&PGHDR_DIRTY) && pPager->nSavepoint==0 ){
1 0 if( !pPager->tempFile && (pPg->flags&PGHDR_DIRTY) && pPager->nSavepoint==0 ){
1 0 if( !pPager->tempFile && (pPg->flags&PGHDR_DIRTY) && pPager->nSavepoint==0 ){
60193 90 0 if( !pPager->changeCountDone && ALWAYS(pPager->dbSize>0) ){
90 0 if( !pPager->changeCountDone && ALWAYS(pPager->dbSize>0) ){
60207 90 0 if( !DIRECT_MODE && ALWAYS(rc==SQLITE_OK) ){
60211 90 0 if( rc==SQLITE_OK ){
60254 90 0 if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;
60255 90 0 if( rc==SQLITE_OK && !pPager->noSync ){
90 0 if( rc==SQLITE_OK && !pPager->noSync ){
60276 1169 0 if( rc==SQLITE_OK ){
60282 1169 0 if( 0==pagerUseWal(pPager) ){
60330 0 1079 if( NEVER(pPager->errCode) ) return pPager->errCode;
60333 0 1079 if( sqlite3FaultSim(400) ) return SQLITE_IOERR;
60339 23 1056 if( pPager->eState
60343 966 90 if( 0==pagerFlushOnCommit(pPager, 1) ){
60350 0 90 if( pagerUseWal(pPager) ){
60353 0 0 if( pList==0 ){
60361 0 0 if( ALWAYS(pList) ){
60365 0 0 if( rc==SQLITE_OK ){
60442 0 90 if( rc!=SQLITE_OK ) goto commit_phase_one_exit;
60449 0 90 if( rc!=SQLITE_OK ) goto commit_phase_one_exit;
60463 0 90 if( rc!=SQLITE_OK ) goto commit_phase_one_exit;
60495 0 90 if( rc!=SQLITE_OK ){
60507 0 90 if( pPager->dbSize>pPager->dbFileSize ){
60511 0 0 if( rc!=SQLITE_OK ) goto commit_phase_one_exit;
60515 90 0 if( !noSync ){
60523 1056 0 if( rc==SQLITE_OK && !pagerUseWal(pPager) ){
1056 0 if( rc==SQLITE_OK && !pagerUseWal(pPager) ){
60551 0 1079 if( NEVER(pPager->errCode) ) return pPager->errCode;
60571 23 1056 if( pPager->eState==PAGER_WRITER_LOCKED
60572 16 7 && pPager->exclusiveMode
60573 0 16 && pPager->journalMode==PAGER_JOURNALMODE_PERSIST
60620 0 61 if( pPager->eState==PAGER_ERROR ) return pPager->errCode;
60621 0 61 if( pPager->eState<=PAGER_READER ) return SQLITE_OK;
60623 0 61 if( pagerUseWal(pPager) ){
60627 0 0 if( rc==SQLITE_OK ) rc = rc2;
60628 31 30 }else if( !isOpen(pPager->jfd) || pPager->eState==PAGER_WRITER_LOCKED ){
0 31 }else if( !isOpen(pPager->jfd) || pPager->eState==PAGER_WRITER_LOCKED ){
60631 17 13 if( !MEMDB && eState>PAGER_WRITER_LOCKED ){
17 0 if( !MEMDB && eState>PAGER_WRITER_LOCKED ){
60740 0 6 if( reset ){
60749 95 0 return pPager->tempFile || pPager->memVfs;
0 95 return pPager->tempFile || pPager->memVfs;
60779 0 55 if( !aNew ){
60786 55 55 for(ii=nCurrent; ii
60788 55 0 if( isOpen(pPager->jfd) && pPager->journalOff>0 ){
55 0 if( isOpen(pPager->jfd) && pPager->journalOff>0 ){
60796 0 55 if( !aNew[ii].pInSavepoint ){
60799 0 55 if( pagerUseWal(pPager) ){
60812 55 3759 if( nSavepoint>pPager->nSavepoint && pPager->useJournal ){
55 0 if( nSavepoint>pPager->nSavepoint && pPager->useJournal ){
60860 55 0 if( rc==SQLITE_OK && iSavepointnSavepoint ){
55 0 if( rc==SQLITE_OK && iSavepointnSavepoint ){
60869 54 55 for(ii=nNew; iinSavepoint; ii++){
60876 54 1 if( op==SAVEPOINT_RELEASE ){
60878 54 0 if( pRel->bTruncateOnRelease && isOpen(pPager->sjfd) ){
54 0 if( pRel->bTruncateOnRelease && isOpen(pPager->sjfd) ){
60880 54 0 if( sqlite3JournalIsInMemory(pPager->sjfd) ){
60893 1 0 else if( pagerUseWal(pPager) || isOpen(pPager->jfd) ){
1 0 else if( pagerUseWal(pPager) || isOpen(pPager->jfd) ){
60894 1 0 PagerSavepoint *pSavepoint = (nNew==0)?0:&pPager->aSavepoint[nNew-1];
60933 2510 0 return (nullIfMemDb && pPager->memDb) ? &zFake[4] : pPager->zFilename;
361 2149 return (nullIfMemDb && pPager->memDb) ? &zFake[4] : pPager->zFilename;
60960 0 0 return pPager->pWal ? sqlite3WalFile(pPager->pWal) : pPager->jfd;
61013 0 0 if( pPager->tempFile ){
61015 0 0 if( rc ) return rc;
61036 0 0 if( (pPg->flags & PGHDR_DIRTY)!=0
61037 0 0 && SQLITE_OK!=(rc = subjournalPageIfRequired(pPg))
61053 0 0 if( (pPg->flags&PGHDR_NEED_SYNC) && !isCommit ){
0 0 if( (pPg->flags&PGHDR_NEED_SYNC) && !isCommit ){
61068 0 0 if( pPgOld ){
61069 0 0 if( NEVER(pPgOld->nRef>1) ){
61074 0 0 if( pPager->tempFile ){
61091 0 0 if( pPager->tempFile && pPgOld ){
0 0 if( pPager->tempFile && pPgOld ){
61096 0 0 if( needSyncPgno ){
61113 0 0 if( rc!=SQLITE_OK ){
61114 0 0 if( needSyncPgno<=pPager->dbOrigSize ){
61174 5 0 if( eMode>=0 && !pPager->tempFile && !sqlite3WalHeapMemory(pPager->pWal) ){
0 5 if( eMode>=0 && !pPager->tempFile && !sqlite3WalHeapMemory(pPager->pWal) ){
0 0 if( eMode>=0 && !pPager->tempFile && !sqlite3WalHeapMemory(pPager->pWal) ){
61220 2 0 if( MEMDB ){
61222 0 2 if( eMode!=PAGER_JOURNALMODE_MEMORY && eMode!=PAGER_JOURNALMODE_OFF ){
0 0 if( eMode!=PAGER_JOURNALMODE_MEMORY && eMode!=PAGER_JOURNALMODE_OFF ){
61227 0 2 if( eMode!=eOld ){
61245 0 0 if( !pPager->exclusiveMode && (eOld & 5)==1 && (eMode & 1)==0 ){
0 0 if( !pPager->exclusiveMode && (eOld & 5)==1 && (eMode & 1)==0 ){
0 0 if( !pPager->exclusiveMode && (eOld & 5)==1 && (eMode & 1)==0 ){
61255 0 0 if( pPager->eLock>=RESERVED_LOCK ){
61261 0 0 if( state==PAGER_OPEN ){
61264 0 0 if( pPager->eState==PAGER_READER ){
61268 0 0 if( rc==SQLITE_OK ){
61271 0 0 if( rc==SQLITE_OK && state==PAGER_READER ){
0 0 if( rc==SQLITE_OK && state==PAGER_READER ){
61273 0 0 }else if( state==PAGER_OPEN ){
61278 0 0 }else if( eMode==PAGER_JOURNALMODE_OFF ){
61301 0 2 if( pPager->eState>=PAGER_WRITER_CACHEMOD ) return 0;
61302 0 2 if( isOpen(pPager->jfd) && pPager->journalOff>0 ) return 0;
0 0 if( isOpen(pPager->jfd) && pPager->journalOff>0 ) return 0;
61313 0 0 if( iLimit>=-1 ){
61336 0 0 if( pPager->tempFile==0 ) pager_reset(pPager);
61357 0 0 if( pPager->pWal==0 && pPager->journalMode==PAGER_JOURNALMODE_WAL ){
0 0 if( pPager->pWal==0 && pPager->journalMode==PAGER_JOURNALMODE_WAL ){
61369 0 0 if( pPager->pWal ){
61370 0 0 rc = sqlite3WalCheckpoint(pPager->pWal, db, eMode,
61390 0 0 if( pPager->noLock ) return 0;
61391 0 0 return pPager->exclusiveMode || (pMethods->iVersion>=2 && pMethods->xShmMap);
0 0 return pPager->exclusiveMode || (pMethods->iVersion>=2 && pMethods->xShmMap);
0 0 return pPager->exclusiveMode || (pMethods->iVersion>=2 && pMethods->xShmMap);
61403 0 0 if( rc!=SQLITE_OK ){
61429 0 0 if( pPager->exclusiveMode ){
61436 0 0 if( rc==SQLITE_OK ){
61475 0 0 if( !pPager->tempFile && !pPager->pWal ){
0 0 if( !pPager->tempFile && !pPager->pWal ){
61476 0 0 if( !sqlite3PagerWalSupported(pPager) ) return SQLITE_CANTOPEN;
61482 0 0 if( rc==SQLITE_OK ){
61511 0 0 if( !pPager->pWal ){
61514 0 0 if( rc==SQLITE_OK ){
61519 0 0 if( rc==SQLITE_OK && logexists ){
0 0 if( rc==SQLITE_OK && logexists ){
61527 0 0 if( rc==SQLITE_OK && pPager->pWal ){
0 0 if( rc==SQLITE_OK && pPager->pWal ){
61529 0 0 if( rc==SQLITE_OK ){
61534 0 0 if( rc && !pPager->exclusiveMode ) pagerUnlockDb(pPager, SHARED_LOCK);
0 0 if( rc && !pPager->exclusiveMode ) pagerUnlockDb(pPager, SHARED_LOCK);
62301 0 0 if( pWal->nWiData<=iPage ){
62305 0 0 if( !apNew ){
62317 0 0 if( pWal->exclusiveMode==WAL_HEAPMEMORY_MODE ){
62319 0 0 if( !pWal->apWiData[iPage] ) rc = SQLITE_NOMEM_BKPT;
62328 0 0 if( rc==SQLITE_OK ){
62329 0 0 if( iPage>0 && sqlite3FaultSim(600) ) rc = SQLITE_NOMEM;
0 0 if( iPage>0 && sqlite3FaultSim(600) ) rc = SQLITE_NOMEM;
62330 0 0 }else if( (rc&0xff)==SQLITE_READONLY ){
62332 0 0 if( rc==SQLITE_READONLY ){
62347 0 0 if( pWal->nWiData<=iPage || (*ppPage = pWal->apWiData[iPage])==0 ){
0 0 if( pWal->nWiData<=iPage || (*ppPage = pWal->apWiData[iPage])==0 ){
62401 0 0 if( aIn ){
62412 0 0 if( nativeCksum ){
62416 0 0 }while( aData
62422 0 0 }while( aData
62434 0 0 if( pWal->exclusiveMode!=WAL_HEAPMEMORY_MODE ){
62496 0 0 if( pWal->iReCksum==0 ){
62530 0 0 if( memcmp(&pWal->hdr.aSalt, &aFrame[8], 8)!=0 ){
62537 0 0 if( pgno==0 ){
62549 0 0 if( aCksum[0]!=sqlite3Get4byte(&aFrame[16])
62550 0 0 || aCksum[1]!=sqlite3Get4byte(&aFrame[20])
62596 0 0 if( pWal->exclusiveMode ) return SQLITE_OK;
62605 0 0 if( pWal->exclusiveMode ) return;
62612 0 0 if( pWal->exclusiveMode ) return SQLITE_OK;
62621 0 0 if( pWal->exclusiveMode ) return;
62678 0 0 if( pLoc->aPgno ){
62680 0 0 if( iHash==0 ){
62686 0 0 }else if( NEVER(rc==SQLITE_OK) ){
62715 0 0 if( iHash==0 ){
62744 0 0 if( pWal->hdr.mxFrame==0 ) return;
62753 0 0 if( NEVER(i) ) return; /* Defense-in-depth, in case (1) above is wrong */
62760 0 0 for(i=0; i
62761 0 0 if( sLoc.aHash[i]>iLimit ){
62804 0 0 if( rc==SQLITE_OK ){
62815 0 0 if( idx==1 ){
62827 0 0 if( sLoc.aPgno[idx-1] ){
62834 0 0 for(iKey=walHash(iPage); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){
62835 0 0 if( (nCollide--)==0 ) return SQLITE_CORRUPT_BKPT;
62902 0 0 if( rc ){
62911 0 0 if( rc!=SQLITE_OK ){
62915 0 0 if( nSize>WAL_HDRSIZE ){
62930 0 0 if( rc!=SQLITE_OK ){
62941 0 0 if( (magic&0xFFFFFFFE)!=WAL_MAGIC
62942 0 0 || szPage&(szPage-1)
62943 0 0 || szPage>SQLITE_MAX_PAGE_SIZE
62944 0 0 || szPage<512
62957 0 0 if( pWal->hdr.aFrameCksum[0]!=sqlite3Get4byte(&aBuf[24])
62958 0 0 || pWal->hdr.aFrameCksum[1]!=sqlite3Get4byte(&aBuf[28])
62966 0 0 if( version!=WAL_MAX_VERSION ){
62974 0 0 if( !aFrame ){
62983 0 0 for(iPg=0; iPg<=(u32)walFramePage(iLastFrame); iPg++){
62987 0 0 u32 iFirst = 1 + (iPg==0?0:HASHTABLE_NPAGE_ONE+(iPg-1)*HASHTABLE_NPAGE);
62991 0 0 if( aShare==0 ) break;
62994 0 0 for(iFrame=iFirst; iFrame<=iLast; iFrame++){
63001 0 0 if( rc!=SQLITE_OK ) break;
63003 0 0 if( !isValid ) break;
63005 0 0 if( NEVER(rc!=SQLITE_OK) ) break;
63008 0 0 if( nTruncate ){
63019 0 0 nHdr = (iPg==0 ? WALINDEX_HDR_SIZE : 0);
63049 0 0 if( iFrame<=iLast ) break;
63056 0 0 if( rc==SQLITE_OK ){
63071 0 0 for(i=1; i
63073 0 0 if( rc==SQLITE_OK ){
63074 0 0 if( i==1 && pWal->hdr.mxFrame ){
0 0 if( i==1 && pWal->hdr.mxFrame ){
63080 0 0 }else if( rc!=SQLITE_BUSY ){
63090 0 0 if( pWal->hdr.nPage ){
63108 0 0 if( pWal->exclusiveMode==WAL_HEAPMEMORY_MODE || pWal->bShmUnreliable ){
0 0 if( pWal->exclusiveMode==WAL_HEAPMEMORY_MODE || pWal->bShmUnreliable ){
63110 0 0 for(i=0; inWiData; i++){
63115 0 0 if( pWal->exclusiveMode!=WAL_HEAPMEMORY_MODE ){
63198 0 0 if( !pRet ){
63210 0 0 pRet->exclusiveMode = (bNoShm ? WAL_HEAPMEMORY_MODE: WAL_NORMAL_MODE);
63215 0 0 if( rc==SQLITE_OK && flags&SQLITE_OPEN_READONLY ){
0 0 if( rc==SQLITE_OK && flags&SQLITE_OPEN_READONLY ){
63219 0 0 if( rc!=SQLITE_OK ){
63225 0 0 if( iDC & SQLITE_IOCAP_SEQUENTIAL ){ pRet->syncHeader = 0; }
63226 0 0 if( iDC & SQLITE_IOCAP_POWERSAFE_OVERWRITE ){
63239 0 0 if( pWal ) pWal->mxWalSize = iLimit;
63263 0 0 for(i=p->nSegment-1; i>=0; i--){
63265 0 0 while( pSegment->iNextnEntry ){
63267 0 0 if( iPg>iMin ){
63268 0 0 if( iPg
63320 0 0 while( iRight
0 0 while( iRight
63324 0 0 if( (iLeft
63325 0 0 && (iRight>=nRight || aContent[aLeft[iLeft]]
0 0 && (iRight>=nRight || aContent[aLeft[iLeft]]
63334 0 0 if( iLeft
0 0 if( iLeft
63384 0 0 for(iList=0; iList
63387 0 0 for(iSub=0; iList & (1<
63399 0 0 for(iSub++; iSub
63400 0 0 if( nList & (1<
63463 0 0 if( !p ){
63472 0 0 aTmp = (ht_slot *)sqlite3_malloc64(
63475 0 0 if( !aTmp ){
63479 0 0 for(i=walFramePage(nBackfill+1); rc==SQLITE_OK && i
0 0 for(i=walFramePage(nBackfill+1); rc==SQLITE_OK && i
63483 0 0 if( rc==SQLITE_OK ){
63488 0 0 if( (i+1)==nSegment ){
63496 0 0 for(j=0; j
63508 0 0 if( rc!=SQLITE_OK ){
63615 0 0 }while( xBusy && rc==SQLITE_BUSY && xBusy(pBusyArg) );
0 0 }while( xBusy && rc==SQLITE_BUSY && xBusy(pBusyArg) );
0 0 }while( xBusy && rc==SQLITE_BUSY && xBusy(pBusyArg) );
63662 0 0 for(i=2; iaReadMark[i] = READMARK_NOT_USED;
63720 0 0 if( pInfo->nBackfillhdr.mxFrame ){
63733 0 0 for(i=1; i
63735 0 0 if( mxSafeFrame>y ){
63738 0 0 if( rc==SQLITE_OK ){
63739 0 0 u32 iMark = (i==1 ? mxSafeFrame : READMARK_NOT_USED);
63742 0 0 }else if( rc==SQLITE_BUSY ){
63752 0 0 if( pInfo->nBackfill
63757 0 0 if( pIter
63758 0 0 && (rc = walBusyLock(pWal,xBusy,pBusyArg,WAL_READ_LOCK(0),1))==SQLITE_OK
63770 0 0 if( rc==SQLITE_OK ){
63775 0 0 if( rc==SQLITE_OK && nSize
0 0 if( rc==SQLITE_OK && nSize
63776 0 0 if( (nSize+65536+(i64)pWal->hdr.mxFrame*szPage)
63790 0 0 while( rc==SQLITE_OK && 0==walIteratorNext(pIter, &iDbpage, &iFrame) ){
0 0 while( rc==SQLITE_OK && 0==walIteratorNext(pIter, &iDbpage, &iFrame) ){
63793 0 0 if( AtomicLoad(&db->u1.isInterrupted) ){
63794 0 0 rc = db->mallocFailed ? SQLITE_NOMEM_BKPT : SQLITE_INTERRUPT;
63797 0 0 if( iFrame<=nBackfill || iFrame>mxSafeFrame || iDbpage>mxPage ){
0 0 if( iFrame<=nBackfill || iFrame>mxSafeFrame || iDbpage>mxPage ){
0 0 if( iFrame<=nBackfill || iFrame>mxSafeFrame || iDbpage>mxPage ){
63803 0 0 if( rc!=SQLITE_OK ) break;
63807 0 0 if( rc!=SQLITE_OK ) break;
63812 0 0 if( rc==SQLITE_OK ){
63813 0 0 if( mxSafeFrame==walIndexHdr(pWal)->mxFrame ){
63817 0 0 if( rc==SQLITE_OK ){
63821 0 0 if( rc==SQLITE_OK ){
63830 0 0 if( rc==SQLITE_BUSY ){
63842 0 0 if( rc==SQLITE_OK && eMode!=SQLITE_CHECKPOINT_PASSIVE ){
0 0 if( rc==SQLITE_OK && eMode!=SQLITE_CHECKPOINT_PASSIVE ){
63844 0 0 if( pInfo->nBackfillhdr.mxFrame ){
63846 0 0 }else if( eMode>=SQLITE_CHECKPOINT_RESTART ){
63851 0 0 if( rc==SQLITE_OK ){
63852 0 0 if( eMode==SQLITE_CHECKPOINT_TRUNCATE ){
63888 0 0 if( rx==SQLITE_OK && (sz > nMax ) ){
0 0 if( rx==SQLITE_OK && (sz > nMax ) ){
63892 0 0 if( rx ){
63908 0 364 if( pWal ){
63919 0 0 if( zBuf!=0
63920 0 0 && SQLITE_OK==(rc = sqlite3OsLock(pWal->pDbFd, SQLITE_LOCK_EXCLUSIVE))
63922 0 0 if( pWal->exclusiveMode==WAL_NORMAL_MODE ){
63928 0 0 if( rc==SQLITE_OK ){
63933 0 0 if( bPersist!=1 ){
63938 0 0 }else if( pWal->mxWalSize>=0 ){
63952 0 0 if( isDelete ){
64010 0 0 if( memcmp(&h1, &h2, sizeof(h1))!=0 ){
64013 0 0 if( h1.isInit==0 ){
64017 0 0 if( aCksum[0]!=h1.aCksum[0] || aCksum[1]!=h1.aCksum[1] ){
0 0 if( aCksum[0]!=h1.aCksum[0] || aCksum[1]!=h1.aCksum[1] ){
64021 0 0 if( memcmp(&pWal->hdr, &h1, sizeof(WalIndexHdr)) ){
64061 0 0 if( rc!=SQLITE_OK ){
64063 0 0 if( rc==SQLITE_READONLY_CANTINIT ){
64091 0 0 badHdr = (page0 ? walIndexTryHdr(pWal, pChanged) : 1);
64096 0 0 if( badHdr ){
64097 0 0 if( pWal->bShmUnreliable==0 && (pWal->readOnly & WAL_SHM_RDONLY) ){
0 0 if( pWal->bShmUnreliable==0 && (pWal->readOnly & WAL_SHM_RDONLY) ){
64098 0 0 if( SQLITE_OK==(rc = walLockShared(pWal, WAL_WRITE_LOCK)) ){
64104 0 0 if( bWriteLock || SQLITE_OK==(rc = walLockWriter(pWal)) ){
0 0 if( bWriteLock || SQLITE_OK==(rc = walLockWriter(pWal)) ){
64106 0 0 if( SQLITE_OK==(rc = walIndexPage(pWal, 0, &page0)) ){
64108 0 0 if( badHdr ){
64117 0 0 if( bWriteLock==0 ){
64129 0 0 if( badHdr==0 && pWal->hdr.iVersion!=WALINDEX_MAX_VERSION ){
0 0 if( badHdr==0 && pWal->hdr.iVersion!=WALINDEX_MAX_VERSION ){
64132 0 0 if( pWal->bShmUnreliable ){
64133 0 0 if( rc!=SQLITE_OK ){
64140 0 0 if( rc==SQLITE_IOERR_SHORT_READ ) rc = WAL_RETRY;
64194 0 0 if( rc!=SQLITE_OK ){
64195 0 0 if( rc==SQLITE_BUSY ) rc = WAL_RETRY;
64224 0 0 if( rc!=SQLITE_READONLY_CANTINIT ){
64225 0 0 rc = (rc==SQLITE_READONLY ? WAL_RETRY : rc);
64239 0 0 if( rc!=SQLITE_OK ){
64242 0 0 if( szWal
64250 0 0 rc = (pWal->hdr.mxFrame==0 ? SQLITE_OK : WAL_RETRY);
64256 0 0 if( rc!=SQLITE_OK ){
64259 0 0 if( memcmp(&pWal->hdr.aSalt, &aBuf[16], 8) ){
64272 0 0 if( aFrame==0 ){
64284 0 0 for(iOffset=walFrameOffset(pWal->hdr.mxFrame+1, pWal->szPage);
64293 0 0 if( rc!=SQLITE_OK ) break;
64294 0 0 if( !walDecodeFrame(pWal, &pgno, &nTruncate, aData, aFrame) ) break;
64299 0 0 if( nTruncate ){
64309 0 0 if( rc!=SQLITE_OK ){
64311 0 0 for(i=0; inWiData; i++){
64402 0 0 if( cnt>5 ){
64404 0 0 if( cnt>100 ){
64408 0 0 if( cnt>=10 ) nDelay = (cnt-9)*(cnt-9)*39;
64412 0 0 if( !useWal ){
64414 0 0 if( pWal->bShmUnreliable==0 ){
64417 0 0 if( rc==SQLITE_BUSY ){
64426 0 0 if( pWal->apWiData[0]==0 ){
64435 0 0 }else if( SQLITE_OK==(rc = walLockShared(pWal, WAL_RECOVER_LOCK)) ){
64438 0 0 }else if( rc==SQLITE_BUSY ){
64442 0 0 if( rc!=SQLITE_OK ){
64445 0 0 else if( pWal->bShmUnreliable ){
64453 0 0 if( !useWal && AtomicLoad(&pInfo->nBackfill)==pWal->hdr.mxFrame
0 0 if( !useWal && AtomicLoad(&pInfo->nBackfill)==pWal->hdr.mxFrame
64463 0 0 if( rc==SQLITE_OK ){
64464 0 0 if( memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr)) ){
64483 0 0 }else if( rc!=SQLITE_BUSY ){
64501 0 0 for(i=1; i
64503 0 0 if( mxReadMark<=thisMark && thisMark<=mxFrame ){
0 0 if( mxReadMark<=thisMark && thisMark<=mxFrame ){
64509 0 0 if( (pWal->readOnly & WAL_SHM_RDONLY)==0
64510 0 0 && (mxReadMark
0 0 && (mxReadMark
64512 0 0 for(i=1; i
64514 0 0 if( rc==SQLITE_OK ){
64520 0 0 }else if( rc!=SQLITE_BUSY ){
64525 0 0 if( mxI==0 ){
64527 0 0 return rc==SQLITE_BUSY ? WAL_RETRY : SQLITE_READONLY_CANTINIT;
64531 0 0 if( rc ){
64532 0 0 return rc==SQLITE_BUSY ? WAL_RETRY : rc;
64570 0 0 if( AtomicLoad(pInfo->aReadMark+mxI)!=mxReadMark
64571 0 0 || memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr))
64710 0 0 }while( rc==WAL_RETRY );
64783 0 0 if( pWal->readLock>=0 ){
64816 0 0 if( iLast==0 || (pWal->readLock==0 && pWal->bShmUnreliable==0) ){
0 0 if( iLast==0 || (pWal->readLock==0 && pWal->bShmUnreliable==0) ){
0 0 if( iLast==0 || (pWal->readLock==0 && pWal->bShmUnreliable==0) ){
64847 0 0 for(iHash=walFramePage(iLast); iHash>=iMinHash; iHash--){
64855 0 0 if( rc!=SQLITE_OK ){
64860 0 0 while( (iH = AtomicLoad(&sLoc.aHash[iKey]))!=0 ){
64862 0 0 if( iFrame<=iLast && iFrame>=pWal->minFrame && sLoc.aPgno[iH-1]==pgno ){
0 0 if( iFrame<=iLast && iFrame>=pWal->minFrame && sLoc.aPgno[iH-1]==pgno ){
0 0 if( iFrame<=iLast && iFrame>=pWal->minFrame && sLoc.aPgno[iH-1]==pgno ){
64866 0 0 if( (nCollide--)==0 ){
64871 0 0 if( iRead ) break;
64922 0 336 if( pWal && ALWAYS(pWal->readLock>=0) ){
0 0 if( pWal && ALWAYS(pWal->readLock>=0) ){
64960 0 0 if( pWal->readOnly ){
64968 0 0 if( rc ){
64977 0 0 if( memcmp(&pWal->hdr, (void *)walIndexHdr(pWal), sizeof(WalIndexHdr))!=0 ){
64991 0 0 if( pWal->writeLock ){
65014 0 0 if( ALWAYS(pWal->writeLock) ){
65023 0 0 for(iFrame=pWal->hdr.mxFrame+1;
65024 0 0 ALWAYS(rc==SQLITE_OK) && iFrame<=iMax;
65041 0 0 if( iMax!=pWal->hdr.mxFrame ) walCleanupHash(pWal);
65072 0 0 if( aWalData[3]!=pWal->nCkpt ){
65081 0 0 if( aWalData[0]hdr.mxFrame ){
65107 0 0 if( pWal->readLock==0 ){
65110 0 0 if( pInfo->nBackfill>0 ){
65114 0 0 if( rc==SQLITE_OK ){
65126 0 0 }else if( rc!=SQLITE_BUSY ){
65136 0 0 }while( rc==WAL_RETRY );
65173 0 0 if( iOffsetiSyncPoint && iOffset+iAmt>=p->iSyncPoint ){
0 0 if( iOffsetiSyncPoint && iOffset+iAmt>=p->iSyncPoint ){
65176 0 0 if( rc ) return rc;
65182 0 0 if( iAmt==0 || rc ) return rc;
0 0 if( iAmt==0 || rc ) return rc;
65203 0 0 if( rc ) return rc;
65226 0 0 if( aBuf==0 ) return SQLITE_NOMEM_BKPT;
65234 0 0 if( pWal->iReCksum==1 ){
65245 0 0 for(; rc==SQLITE_OK && iRead<=iLast; iRead++){
0 0 for(; rc==SQLITE_OK && iRead<=iLast; iRead++){
65248 0 0 if( rc==SQLITE_OK ){
65300 0 0 if( memcmp(&pWal->hdr, (void *)pLive, sizeof(WalIndexHdr))!=0 ){
65307 0 0 if( SQLITE_OK!=(rc = walRestartLog(pWal)) ){
65316 0 0 if( iFrame==0 ){
65324 0 0 if( pWal->nCkpt==0 ) sqlite3_randomness(8, pWal->hdr.aSalt);
65338 0 0 if( rc!=SQLITE_OK ){
65349 0 0 if( pWal->syncHeader ){
65351 0 0 if( rc ) return rc;
65366 0 0 for(p=pList; p; p=p->pDirty){
65373 0 0 if( iFirst && (p->pDirty || isCommit==0) ){
0 0 if( iFirst && (p->pDirty || isCommit==0) ){
0 0 if( iFirst && (p->pDirty || isCommit==0) ){
65377 0 0 if( iWrite>=iFirst ){
65380 0 0 if( pWal->iReCksum==0 || iWriteiReCksum ){
0 0 if( pWal->iReCksum==0 || iWriteiReCksum ){
65385 0 0 if( rc ) return rc;
65393 0 0 nDbSize = (isCommit && p->pDirty==0) ? nTruncate : 0;
0 0 nDbSize = (isCommit && p->pDirty==0) ? nTruncate : 0;
65395 0 0 if( rc ) return rc;
65402 0 0 if( isCommit && pWal->iReCksum ){
0 0 if( isCommit && pWal->iReCksum ){
65404 0 0 if( rc ) return rc;
65421 0 0 if( isCommit && WAL_SYNC_FLAGS(sync_flags)!=0 ){
0 0 if( isCommit && WAL_SYNC_FLAGS(sync_flags)!=0 ){
65423 0 0 if( pWal->padToSectorBoundary ){
65428 0 0 while( iOffset
65430 0 0 if( rc ) return rc;
65436 0 0 if( bSync ){
65446 0 0 if( isCommit && pWal->truncateOnCommit && pWal->mxWalSize>=0 ){
0 0 if( isCommit && pWal->truncateOnCommit && pWal->mxWalSize>=0 ){
0 0 if( isCommit && pWal->truncateOnCommit && pWal->mxWalSize>=0 ){
65448 0 0 if( walFrameOffset(iFrame+nExtra+1, szPage)>pWal->mxWalSize ){
65461 0 0 for(p=pList; p && rc==SQLITE_OK; p=p->pDirty){
0 0 for(p=pList; p && rc==SQLITE_OK; p=p->pDirty){
65462 0 0 if( (p->flags & PGHDR_WAL_APPEND)==0 ) continue;
65467 0 0 while( rc==SQLITE_OK && nExtra>0 ){
0 0 while( rc==SQLITE_OK && nExtra>0 ){
65473 0 0 if( rc==SQLITE_OK ){
65479 0 0 if( isCommit ){
65484 0 0 if( isCommit ){
65528 0 0 if( pWal->readOnly ) return SQLITE_READONLY;
65547 0 0 if( rc==SQLITE_OK ){
65559 0 0 if( eMode!=SQLITE_CHECKPOINT_PASSIVE ){
65561 0 0 if( rc==SQLITE_OK ){
65563 0 0 }else if( rc==SQLITE_BUSY ){
65573 0 0 if( rc==SQLITE_OK ){
65577 0 0 if( isChanged && pWal->pDbFd->pMethods->iVersion>=3 ){
0 0 if( isChanged && pWal->pDbFd->pMethods->iVersion>=3 ){
65583 0 0 if( rc==SQLITE_OK ){
65585 0 0 if( pWal->hdr.mxFrame && walPagesize(pWal)!=nBuf ){
0 0 if( pWal->hdr.mxFrame && walPagesize(pWal)!=nBuf ){
65592 0 0 if( rc==SQLITE_OK || rc==SQLITE_BUSY ){
0 0 if( rc==SQLITE_OK || rc==SQLITE_BUSY ){
65593 0 0 if( pnLog ) *pnLog = (int)pWal->hdr.mxFrame;
65594 0 0 if( pnCkpt ) *pnCkpt = (int)(walCkptInfo(pWal)->nBackfill);
65598 0 0 if( isChanged ){
65613 0 0 if( pWal->ckptLock ){
65621 0 0 return (rc==SQLITE_OK && eMode!=eMode2 ? SQLITE_BUSY : rc);
0 0 return (rc==SQLITE_OK && eMode!=eMode2 ? SQLITE_BUSY : rc);
65631 0 3828 if( pWal ){
65676 0 0 if( op==0 ){
65677 0 0 if( pWal->exclusiveMode!=WAL_NORMAL_MODE ){
65679 0 0 if( walLockShared(pWal, WAL_READ_LOCK(pWal->readLock))!=SQLITE_OK ){
65687 0 0 }else if( op>0 ){
65705 0 0 return (pWal && pWal->exclusiveMode==WAL_HEAPMEMORY_MODE );
0 0 return (pWal && pWal->exclusiveMode==WAL_HEAPMEMORY_MODE );
66648 26541 0 if( !p->sharable ) return;
66650 0 0 if( p->locked ) return;
66667 0 0 if( sqlite3_mutex_try(p->pBt->mutex)==SQLITE_OK ){
66678 0 0 for(pLater=p->pNext; pLater; pLater=pLater->pNext){
66682 0 0 if( pLater->locked ){
66687 0 0 for(pLater=p->pNext; pLater; pLater=pLater->pNext){
66688 0 0 if( pLater->wantToLock ){
66700 0 26524 if( p->sharable ){
66703 0 0 if( p->wantToLock==0 ){
66746 649 322 for(i=0; inDb; i++){
66748 323 326 if( p && p->sharable ){
0 323 if( p && p->sharable ){
66756 322 5788 if( db->noSharedCache==0 ) btreeEnterAll(db);
66762 0 0 for(i=0; inDb; i++){
66764 0 0 if( p ) sqlite3BtreeLeave(p);
66768 0 6110 if( db->noSharedCache==0 ) btreeLeaveAll(db);
67171 2233 0 if( !p->sharable ){
67178 0 0 if( pBt->pWriter!=p && (pBt->btsFlags & BTS_EXCLUSIVE)!=0 ){
0 0 if( pBt->pWriter!=p && (pBt->btsFlags & BTS_EXCLUSIVE)!=0 ){
67183 0 0 for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){
67195 0 0 if( pIter->pBtree!=p && pIter->iTable==iTab && pIter->eLock!=eLock ){
0 0 if( pIter->pBtree!=p && pIter->iTable==iTab && pIter->eLock!=eLock ){
0 0 if( pIter->pBtree!=p && pIter->iTable==iTab && pIter->eLock!=eLock ){
67197 0 0 if( eLock==WRITE_LOCK ){
67247 0 0 for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){
67248 0 0 if( pIter->iTable==iTable && pIter->pBtree==p ){
0 0 if( pIter->iTable==iTable && pIter->pBtree==p ){
67257 0 0 if( !pLock ){
67259 0 0 if( !pLock ){
67273 0 0 if( eLock>pLock->eLock ){
67298 0 2226 while( *ppIter ){
67302 0 0 if( pLock->pBtree==p ){
67305 0 0 if( pLock->iTable!=1 ){
67314 1140 1086 if( pBt->pWriter==p ){
67317 0 1086 }else if( pBt->nTransaction==2 ){
67336 0 292 if( pBt->pWriter==p ){
67340 0 0 for(pLock=pBt->pLock; pLock; pLock=pLock->pNext){
67390 0 0 for(p=pBt->pCursor; p; p=p->pNext){
67419 31 17 for(p=pBtree->pBt->pCursor; p; p=p->pNext){
67420 14 17 if( (p->curFlags & BTCF_Incrblob)!=0 ){
67422 7 7 if( p->pgnoRoot==pgnoRoot && (isClearTable || p->info.nKey==iRow) ){
7 0 if( p->pgnoRoot==pgnoRoot && (isClearTable || p->info.nKey==iRow) ){
7 0 if( p->pgnoRoot==pgnoRoot && (isClearTable || p->info.nKey==iRow) ){
67471 1 0 if( !pBt->pHasContent ){
67474 0 1 if( !pBt->pHasContent ){
67478 1 0 if( rc==SQLITE_OK && pgno<=sqlite3BitvecSize(pBt->pHasContent) ){
1 0 if( rc==SQLITE_OK && pgno<=sqlite3BitvecSize(pBt->pHasContent) ){
67493 0 1 return p && (pgno>sqlite3BitvecSize(p) || sqlite3BitvecTestNotNull(p, pgno));
0 0 return p && (pgno>sqlite3BitvecSize(p) || sqlite3BitvecTestNotNull(p, pgno));
0 0 return p && (pgno>sqlite3BitvecSize(p) || sqlite3BitvecTestNotNull(p, pgno));
67510 5741 453 if( pCur->iPage>=0 ){
67511 1451 5741 for(i=0; iiPage; i++){
67538 72 0 if( pCur->curIntKey ){
67551 0 0 if( pKey ){
67553 0 0 if( rc==SQLITE_OK ){
67581 0 54 if( pCur->curFlags & BTCF_Pinned ){
67584 0 54 if( pCur->eState==CURSOR_SKIPNEXT ){
67591 54 0 if( rc==SQLITE_OK ){
67628 243 785 for(p=pBt->pCursor; p; p=p->pNext){
67629 124 119 if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ) break;
124 0 if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ) break;
5 119 if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ) break;
67631 119 785 if( p ) return saveCursorsOnList(p, iRoot, pExcept);
67632 0 785 if( pExcept ) pExcept->curFlags &= ~BTCF_Multiple;
67647 132 0 if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ){
132 0 if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ){
132 0 if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ){
67648 78 54 if( p->eState==CURSOR_VALID || p->eState==CURSOR_SKIPNEXT ){
0 78 if( p->eState==CURSOR_VALID || p->eState==CURSOR_SKIPNEXT ){
67650 0 54 if( SQLITE_OK!=rc ){
67659 13 119 }while( p );
67688 0 18 if( pKey ){
67692 0 0 if( pIdxKey==0 ) return SQLITE_NOMEM_BKPT;
67694 0 0 if( pIdxKey->nField==0 || pIdxKey->nField>pKeyInfo->nAllField ){
0 0 if( pIdxKey->nField==0 || pIdxKey->nField>pKeyInfo->nAllField ){
67719 0 18 if( pCur->eState==CURSOR_FAULT ){
67723 0 18 if( sqlite3FaultSim(410) ){
67728 18 0 if( rc==SQLITE_OK ){
67732 18 0 if( skipNext ) pCur->skipNext = skipNext;
67733 18 0 if( pCur->skipNext && pCur->eState==CURSOR_VALID ){
10 8 if( pCur->skipNext && pCur->eState==CURSOR_VALID ){
67794 0 0 rc = restoreCursorPosition(pCur);
67795 0 0 if( rc ){
67799 0 0 if( pCur->eState!=CURSOR_VALID ){
67841 0 0 if( pgno<2 ) return 0;
67845 0 0 if( ret==PENDING_BYTE_PAGE(pBt) ){
67868 0 0 if( *pRC ) return;
67875 0 0 if( key==0 ){
67881 0 0 if( rc!=SQLITE_OK ){
67885 0 0 if( ((char*)sqlite3PagerGetExtra(pDbPage))[0]!=0 ){
67893 0 0 if( offset<0 ){
67900 0 0 if( eType!=pPtrmap[offset] || get4byte(&pPtrmap[offset+1])!=parent ){
0 0 if( eType!=pPtrmap[offset] || get4byte(&pPtrmap[offset+1])!=parent ){
67903 0 0 if( rc==SQLITE_OK ){
67931 0 0 if( rc!=0 ){
67937 0 0 if( offset<0 ){
67944 0 0 if( pPgno ) *pPgno = get4byte(&pPtrmap[offset+1]);
67947 0 0 if( *pEType<1 || *pEType>5 ) return SQLITE_CORRUPT_PGNO(iPtrmap);
0 0 if( *pEType<1 || *pEType>5 ) return SQLITE_CORRUPT_PGNO(iPtrmap);
68002 2 50 if( surplus <= maxLocal ){
68017 0 0 if( nPayload<=maxLocal ){
68024 0 0 return ( surplus <= maxLocal ) ? surplus : minLocal;
68081 354 11250 if( nPayload>=0x80 ){
68086 44 354 }while( (*pIter)>=0x80 && pIter
44 0 }while( (*pIter)>=0x80 && pIter
68098 5365 6239 if( iKey>=0x80 ){
68101 0 5365 if( x>=0x80 ){
68103 0 0 if( x>=0x80 ){
68105 0 0 if( x>=0x80 ){
68107 0 0 if( x>=0x80 ){
68109 0 0 if( x>=0x80 ){
68111 0 0 if( x>=0x80 ){
68113 0 0 if( x>=0x80 ){
68130 11552 52 if( nPayload<=pPage->maxLocal ){
68135 2 11550 if( pInfo->nSize<4 ) pInfo->nSize = 4;
68154 0 529 if( nPayload>=0x80 ){
68159 0 0 }while( *(pIter)>=0x80 && pIter
0 0 }while( *(pIter)>=0x80 && pIter
68167 529 0 if( nPayload<=pPage->maxLocal ){
68172 1 528 if( pInfo->nSize<4 ) pInfo->nSize = 4;
68214 0 0 if( nSize>=0x80 ){
68219 0 0 }while( *(pIter)>=0x80 && pIter
0 0 }while( *(pIter)>=0x80 && pIter
68224 0 0 if( nSize<=pPage->maxLocal ){
68226 0 0 if( nSize<4 ) nSize = 4;
68232 0 0 if( nSize>pPage->maxLocal ){
68257 0 0 while( (*pIter++)&0x80 && pIter
0 0 while( (*pIter++)&0x80 && pIter
68276 133 24 if( nSize>=0x80 ){
68281 0 133 }while( *(pIter)>=0x80 && pIter
0 0 }while( *(pIter)>=0x80 && pIter
68287 6 151 if( (*pIter++)&0x80
68288 0 6 && (*pIter++)&0x80
68289 0 0 && (*pIter++)&0x80
68290 0 0 && (*pIter++)&0x80
68291 0 0 && (*pIter++)&0x80
68292 0 0 && (*pIter++)&0x80
68293 0 0 && (*pIter++)&0x80
68294 0 0 && (*pIter++)&0x80 ){ pIter++; }
68297 147 10 if( nSize<=pPage->maxLocal ){
68299 0 147 if( nSize<4 ) nSize = 4;
68305 10 0 if( nSize>pPage->maxLocal ){
68332 0 0 if( *pRC ) return;
68335 0 0 if( info.nLocal
68337 0 0 if( SQLITE_WITHIN(pSrc->aDataEnd, pCell, pCell+info.nLocal) ){
0 0 if( SQLITE_WITHIN(pSrc->aDataEnd, pCell, pCell+info.nLocal) ){
68396 0 0 if( (int)data[hdr+7]<=nMaxFrag ){
68398 0 0 if( iFree>usableSize-4 ) return SQLITE_CORRUPT_PAGE(pPage);
68399 0 0 if( iFree ){
68401 0 0 if( iFree2>usableSize-4 ) return SQLITE_CORRUPT_PAGE(pPage);
68402 0 0 if( 0==iFree2 || (data[iFree2]==0 && data[iFree2+1]==0) ){
0 0 if( 0==iFree2 || (data[iFree2]==0 && data[iFree2+1]==0) ){
0 0 if( 0==iFree2 || (data[iFree2]==0 && data[iFree2+1]==0) ){
68408 0 0 if( top>=iFree ){
68411 0 0 if( iFree2 ){
68412 0 0 if( iFree+sz>iFree2 ) return SQLITE_CORRUPT_PAGE(pPage);
68414 0 0 if( iFree2+sz2 > usableSize ) return SQLITE_CORRUPT_PAGE(pPage);
68417 0 0 }else if( iFree+sz>usableSize ){
68424 0 0 for(pAddr=&data[cellOffset]; pAddr
68426 0 0 if( pc
68427 0 0 else if( pc
68437 0 0 for(i=0; i
68446 0 0 if( pciCellLast ){
0 0 if( pciCellLast ){
68452 0 0 if( cbrkusableSize ){
0 0 if( cbrkusableSize ){
68459 0 0 if( temp==0 ){
68460 0 0 if( cbrk==pc ) continue;
68471 0 0 if( data[hdr+7]+cbrk-iCellFirst!=pPage->nFree ){
68508 58 36 while( pc<=maxPC ){
68514 32 26 if( (x = size - nByte)>=0 ){
68517 32 0 if( x<4 ){
68520 0 32 if( aData[hdr+7]>57 ) return 0;
68528 0 0 }else if( x+pc > maxPC ){
68542 26 0 if( pc<=iAddr+size ){
68543 0 26 if( pc ){
68550 0 36 if( pc>maxPC+nByte-4 ){
68597 0 3857 if( gap>top ){
68598 0 0 if( top==0 && pPage->pBt->usableSize==65536 ){
0 0 if( top==0 && pPage->pBt->usableSize==65536 ){
68612 3763 94 if( (data[hdr+2] || data[hdr+1]) && gap+2<=top ){
0 3763 if( (data[hdr+2] || data[hdr+1]) && gap+2<=top ){
94 0 if( (data[hdr+2] || data[hdr+1]) && gap+2<=top ){
68614 32 62 if( pSpace ){
68618 0 32 if( g2<=gap ){
68623 0 62 }else if( rc ){
68632 0 3825 if( gap+2+nByte>top ){
68636 0 0 if( rc ) return rc;
68692 289 2 if( data[iPtr+1]==0 && data[iPtr]==0 ){
289 0 if( data[iPtr+1]==0 && data[iPtr]==0 ){
68695 0 2 while( (iFreeBlk = get2byte(&data[iPtr]))
68696 0 0 if( iFreeBlk
68697 0 0 if( iFreeBlk==0 ) break; /* TH3: corrupt082.100 */
68702 0 2 if( iFreeBlk>pPage->pBt->usableSize-4 ){ /* TH3: corrupt081.100 */
68713 2 0 if( iFreeBlk && iEnd+3>=iFreeBlk ){
2 0 if( iFreeBlk && iEnd+3>=iFreeBlk ){
68715 0 2 if( iEnd>iFreeBlk ) return SQLITE_CORRUPT_PAGE(pPage);
68717 0 2 if( iEnd > pPage->pBt->usableSize ){
68728 0 2 if( iPtr>hdr+1 ){
68730 0 0 if( iPtrEnd+3>=iStart ){
68731 0 0 if( iPtrEnd>iStart ) return SQLITE_CORRUPT_PAGE(pPage);
68737 0 2 if( nFrag>data[hdr+7] ) return SQLITE_CORRUPT_PAGE(pPage);
68742 227 64 if( iStart<=x ){
68746 0 227 if( iStart
68747 0 227 if( iPtr!=hdr+1 ) return SQLITE_CORRUPT_PAGE(pPage);
68754 0 291 if( pPage->pBt->btsFlags & BTS_FAST_SECURE ){
68786 723 51 if( flagByte==(PTF_LEAFDATA | PTF_INTKEY) ){
68794 715 8 if( pPage->leaf ){
68805 51 0 }else if( flagByte==PTF_ZERODATA ){
68870 0 48 if( pc>0 ){
68872 0 0 if( pc
68879 0 0 if( pc>iCellLast ){
68886 0 0 if( next<=pc+size+3 ) break;
68889 0 0 if( next>0 ){
68893 0 0 if( pc+size>(unsigned int)usableSize ){
68906 48 0 if( nFree>usableSize || nFree
0 48 if( nFree>usableSize || nFree
68932 0 0 if( !pPage->leaf ) iCellLast--;
68933 0 0 for(i=0; inCell; i++){
68937 0 0 if( pciCellLast ){
0 0 if( pciCellLast ){
68942 0 0 if( pc+sz>usableSize ){
68974 0 109 if( decodeFlags(pPage, data[0]) ){
68987 0 109 if( pPage->nCell>MX_CELL(pBt) ){
69001 0 109 if( pBt->db->flags & SQLITE_CellSizeCk ){
69022 0 665 if( pBt->btsFlags & BTS_FAST_SECURE ){
69026 7 658 first = hdr + ((flags&PTF_LEAF)==0 ? 12 : 8);
69050 1329 2203 if( pgno!=pPage->pgno ){
69055 285 1044 pPage->hdrOffset = pgno==1 ? 100 : 0;
69084 17 3431 if( rc ) return rc;
69098 0 0 if( pDbPage ){
69143 0 7465 if( pgno>btreePagecount(pBt) ){
69148 0 7465 if( rc ){
69152 101 7364 if( (*ppPage)->isInit==0 ){
69155 0 101 if( rc!=SQLITE_OK ){
69164 1686 5779 if( pCur && ((*ppPage)->nCell<1 || (*ppPage)->intKey!=pCur->curIntKey) ){
1686 0 if( pCur && ((*ppPage)->nCell<1 || (*ppPage)->intKey!=pCur->curIntKey) ){
0 1686 if( pCur && ((*ppPage)->nCell<1 || (*ppPage)->intKey!=pCur->curIntKey) ){
69173 0 0 if( pCur ){
69200 903 2035 if( pPage ) releasePageNotNull(pPage);
69229 1003 0 if( rc==SQLITE_OK ){
69230 0 1003 if( sqlite3PagerPageRefcount((*ppPage)->pDbPage)>1 ){
69255 29 0 if( pPage->isInit ){
69258 1 28 if( sqlite3PagerPageRefcount(pData)>1 ){
69317 322 50 const int isTempDb = zFilename==0 || zFilename[0]==0;
3 319 const int isTempDb = zFilename==0 || zFilename[0]==0;
69325 115 207 const int isMemdb = (zFilename && strcmp(zFilename, ":memory:")==0)
69326 53 112 || (isTempDb && sqlite3TempInMemory(db))
53 0 || (isTempDb && sqlite3TempInMemory(db))
69327 322 50 || (vfsFlags & SQLITE_OPEN_MEMORY)!=0;
0 165 || (vfsFlags & SQLITE_OPEN_MEMORY)!=0;
69341 207 165 if( isMemdb ){
69344 322 50 if( (vfsFlags & SQLITE_OPEN_MAIN_DB)!=0 && (isMemdb || isTempDb) ){
115 207 if( (vfsFlags & SQLITE_OPEN_MAIN_DB)!=0 && (isMemdb || isTempDb) ){
3 112 if( (vfsFlags & SQLITE_OPEN_MAIN_DB)!=0 && (isMemdb || isTempDb) ){
69348 0 372 if( !p ){
69363 319 53 if( isTempDb==0 && (isMemdb==0 || (vfsFlags&SQLITE_OPEN_URI)!=0) ){
207 112 if( isTempDb==0 && (isMemdb==0 || (vfsFlags&SQLITE_OPEN_URI)!=0) ){
0 207 if( isTempDb==0 && (isMemdb==0 || (vfsFlags&SQLITE_OPEN_URI)!=0) ){
69364 0 112 if( vfsFlags & SQLITE_OPEN_SHAREDCACHE ){
69371 0 0 if( !zFullPathname ){
69375 0 0 if( isMemdb ){
69380 0 0 if( rc ){
69381 0 0 if( rc==SQLITE_OK_SYMLINK ){
69396 0 0 for(pBt=GLOBAL(BtShared*,sqlite3SharedCacheList); pBt; pBt=pBt->pNext){
69398 0 0 if( 0==strcmp(zFullPathname, sqlite3PagerFilename(pBt->pPager, 0))
69399 0 0 && sqlite3PagerVfs(pBt->pPager)==pVfs ){
69401 0 0 for(iDb=db->nDb-1; iDb>=0; iDb--){
69403 0 0 if( pExisting && pExisting->pBt==pBt ){
0 0 if( pExisting && pExisting->pBt==pBt ){
69431 372 0 if( pBt==0 ){
69444 0 372 if( pBt==0 ){
69450 366 6 if( rc==SQLITE_OK ){
69454 6 366 if( rc!=SQLITE_OK ){
69464 5 361 if( sqlite3PagerIsreadonly(pBt->pPager) ) pBt->btsFlags |= BTS_READ_ONLY;
69474 27 339 if( pBt->pageSize<512 || pBt->pageSize>SQLITE_MAX_PAGE_SIZE
27 0 if( pBt->pageSize<512 || pBt->pageSize>SQLITE_MAX_PAGE_SIZE
69475 0 27 || ((pBt->pageSize-1)&pBt->pageSize)!=0 ){
69484 289 50 if( zFilename && !isMemdb ){
82 207 if( zFilename && !isMemdb ){
69502 0 366 if( rc ) goto btree_open_out;
69510 0 366 if( p->sharable ){
69513 0 0 if( SQLITE_THREADSAFE && sqlite3GlobalConfig.bCoreMutex ){
69515 0 0 if( pBt->mutex==0 ){
69533 0 366 if( p->sharable ){
69536 0 0 for(i=0; inDb; i++){
69537 0 0 if( (pSib = db->aDb[i].pBt)!=0 && pSib->sharable ){
0 0 if( (pSib = db->aDb[i].pBt)!=0 && pSib->sharable ){
69538 0 0 while( pSib->pPrev ){ pSib = pSib->pPrev; }
69539 0 0 if( (uptr)p->pBt<(uptr)pSib->pBt ){
69544 0 0 while( pSib->pNext && (uptr)pSib->pNext->pBt<(uptr)p->pBt ){
0 0 while( pSib->pNext && (uptr)pSib->pNext->pBt<(uptr)p->pBt ){
69549 0 0 if( p->pNext ){
69562 6 366 if( rc!=SQLITE_OK ){
69563 6 0 if( pBt && pBt->pPager ){
0 6 if( pBt && pBt->pPager ){
69576 366 0 if( sqlite3BtreeSchema(p, 0, 0)==0 ){
69581 106 260 if( pFile->pMethods ){
69585 0 372 if( mutexOpen ){
69609 0 0 if( pBt->nRef<=0 ){
69610 0 0 if( GLOBAL(BtShared*,sqlite3SharedCacheList)==pBt ){
69614 0 0 while( ALWAYS(pList) && pList->pNext!=pBt ){
0 0 while( ALWAYS(pList) && pList->pNext!=pBt ){
69617 0 0 if( ALWAYS(pList) ){
69645 0 210 if( pBt->pTmpSpace==0 ){
69676 208 160 if( pBt->pTmpSpace ){
69718 0 364 if( !p->sharable || removeFromSharingList(pBt) ){
0 0 if( !p->sharable || removeFromSharingList(pBt) ){
69726 314 50 if( pBt->xFreeSchema && pBt->pSchema ){
314 0 if( pBt->xFreeSchema && pBt->pSchema ){
69737 0 364 if( p->pPrev ) p->pPrev->pNext = p->pNext;
69738 0 364 if( p->pNext ) p->pNext->pPrev = p->pPrev;
69846 0 41 if( nReserve
69847 4 37 if( pBt->btsFlags & BTS_PAGESIZE_FIXED ){
69852 4 33 if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&
4 0 if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&
4 0 if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&
69856 0 4 if( nReserve>32 && pageSize==512 ) pageSize = 1024;
0 0 if( nReserve>32 && pageSize==512 ) pageSize = 1024;
69862 0 37 if( iFix ) pBt->btsFlags |= BTS_PAGESIZE_FIXED;
69944 0 10 if( p==0 ) return 0;
69948 5 5 if( newFlag>=0 ){
69972 0 0 if( (pBt->btsFlags & BTS_PAGESIZE_FIXED)!=0 && (av ?1:0)!=pBt->autoVacuum ){
0 0 if( (pBt->btsFlags & BTS_PAGESIZE_FIXED)!=0 && (av ?1:0)!=pBt->autoVacuum ){
69994 0 0 (!p->pBt->autoVacuum)?BTREE_AUTOVACUUM_NONE:
69995 0 0 (!p->pBt->incrVacuum)?BTREE_AUTOVACUUM_FULL:
70052 2 2378 if( rc!=SQLITE_OK ) return rc;
70054 0 2378 if( rc!=SQLITE_OK ) return rc;
70061 1975 403 if( nPage==0 || memcmp(24+(u8*)pPage1->aData, 92+(u8*)pPage1->aData,4)!=0 ){
0 1975 if( nPage==0 || memcmp(24+(u8*)pPage1->aData, 92+(u8*)pPage1->aData,4)!=0 ){
70064 0 2378 if( (pBt->db->flags & SQLITE_ResetDatabase)!=0 ){
70067 1975 403 if( nPage>0 ){
70075 0 1975 if( memcmp(page1, zMagicHeader, 16)!=0 ){
70087 0 1975 if( page1[18]>2 ){
70090 0 1975 if( page1[19]>2 ){
70102 0 1975 if( page1[19]==2 && (pBt->btsFlags & BTS_NO_WAL)==0 ){
0 0 if( page1[19]==2 && (pBt->btsFlags & BTS_NO_WAL)==0 ){
70105 0 0 if( rc!=SQLITE_OK ){
70109 0 0 if( isOpen==0 ){
70126 0 1975 if( memcmp(&page1[21], "\100\040\040",3)!=0 ){
70135 1975 0 if( ((pageSize-1)&pageSize)!=0
70136 1975 0 || pageSize>SQLITE_MAX_PAGE_SIZE
70137 1975 0 || pageSize<=256
70151 0 1975 if( (u32)pageSize!=pBt->pageSize ){
70166 0 1975 if( nPage>nPageFile ){
70167 0 0 if( sqlite3WritableSchema(pBt->db)==0 ){
70177 0 1975 if( usableSize<480 ){
70205 2378 0 if( pBt->maxLocal>127 ){
70256 3091 6044 if( pBt->inTransaction==TRANS_NONE && pBt->pPage1!=0 ){
2378 713 if( pBt->inTransaction==TRANS_NONE && pBt->pPage1!=0 ){
70276 995 200 if( pBt->nPage>0 ){
70283 0 200 if( rc ) return rc;
70370 2710 3092 if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){
475 2235 if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){
0 475 if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){
70375 0 2235 if( (p->db->flags & SQLITE_ResetDatabase)
70376 0 0 && sqlite3PagerIsreadonly(pPager)==0
70382 4 2231 if( (pBt->btsFlags & BTS_READ_ONLY)!=0 && wrflag ){
2 2 if( (pBt->btsFlags & BTS_READ_ONLY)!=0 && wrflag ){
70394 1147 1086 if( (wrflag && pBt->inTransaction==TRANS_WRITE)
1147 0 if( (wrflag && pBt->inTransaction==TRANS_WRITE)
70395 0 2233 || (pBt->btsFlags & BTS_PENDING)!=0
70398 14 2219 }else if( wrflag>1 ){
70400 0 14 for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){
70401 0 0 if( pIter->pBtree!=p ){
70407 0 2233 if( pBlock ){
70419 0 2233 if( SQLITE_OK!=rc ) goto trans_begun;
70422 437 1796 if( pBt->nPage==0 ) pBt->btsFlags |= BTS_INITIALLY_EMPTY;
70443 2380 2378 while( pBt->pPage1==0 && SQLITE_OK==(rc = lockBtree(pBt)) );
2378 2 while( pBt->pPage1==0 && SQLITE_OK==(rc = lockBtree(pBt)) );
70445 2378 2 if( rc==SQLITE_OK && wrflag ){
1292 1086 if( rc==SQLITE_OK && wrflag ){
70446 0 1292 if( (pBt->btsFlags & BTS_READ_ONLY)!=0 ){
70450 1140 152 if( rc==SQLITE_OK ){
70452 0 152 }else if( rc==SQLITE_BUSY_SNAPSHOT && pBt->inTransaction==TRANS_NONE ){
0 0 }else if( rc==SQLITE_BUSY_SNAPSHOT && pBt->inTransaction==TRANS_NONE ){
70461 154 2226 if( rc!=SQLITE_OK ){
70466 154 2226 btreeInvokeBusyHandler(pBt) );
70472 2226 7 if( rc==SQLITE_OK ){
70473 2226 0 if( p->inTrans==TRANS_NONE ){
70476 0 2226 if( p->sharable ){
70484 1140 1086 p->inTrans = (wrflag?TRANS_WRITE:TRANS_READ);
70485 2226 0 if( p->inTrans>pBt->inTransaction ){
70488 1140 1086 if( wrflag ){
70494 14 1126 if( wrflag>1 ) pBt->btsFlags |= BTS_EXCLUSIVE;
70503 0 1140 if( pBt->nPage!=get4byte(&pPage1->aData[28]) ){
70505 0 0 if( rc==SQLITE_OK ){
70513 5793 9 if( rc==SQLITE_OK ){
70514 5561 232 if( pSchemaVersion ){
70517 3760 2033 if( wrflag ){
70546 0 0 rc = pPage->isInit ? SQLITE_OK : btreeInitPage(pPage);
70547 0 0 if( rc!=SQLITE_OK ) return rc;
70550 0 0 for(i=0; i
70555 0 0 if( !pPage->leaf ){
70561 0 0 if( !pPage->leaf ){
70586 0 0 if( eType==PTRMAP_OVERFLOW2 ){
70588 0 0 if( get4byte(pPage->aData)!=iFrom ){
70597 0 0 rc = pPage->isInit ? SQLITE_OK : btreeInitPage(pPage);
70598 0 0 if( rc ) return rc;
70601 0 0 for(i=0; i
70603 0 0 if( eType==PTRMAP_OVERFLOW1 ){
70606 0 0 if( info.nLocal
70607 0 0 if( pCell+info.nSize > pPage->aData+pPage->pBt->usableSize ){
70610 0 0 if( iFrom==get4byte(pCell+info.nSize-4) ){
70616 0 0 if( get4byte(pCell)==iFrom ){
70623 0 0 if( i==nCell ){
70661 0 0 if( iDbPage<3 ) return SQLITE_CORRUPT_BKPT;
70667 0 0 if( rc!=SQLITE_OK ){
70680 0 0 if( eType==PTRMAP_BTREE || eType==PTRMAP_ROOTPAGE ){
0 0 if( eType==PTRMAP_BTREE || eType==PTRMAP_ROOTPAGE ){
70682 0 0 if( rc!=SQLITE_OK ){
70687 0 0 if( nextOvfl!=0 ){
70689 0 0 if( rc!=SQLITE_OK ){
70699 0 0 if( eType!=PTRMAP_ROOTPAGE ){
70701 0 0 if( rc!=SQLITE_OK ){
70705 0 0 if( rc!=SQLITE_OK ){
70711 0 0 if( rc==SQLITE_OK ){
70745 0 0 if( !PTRMAP_ISPAGE(pBt, iLastPg) && iLastPg!=PENDING_BYTE_PAGE(pBt) ){
0 0 if( !PTRMAP_ISPAGE(pBt, iLastPg) && iLastPg!=PENDING_BYTE_PAGE(pBt) ){
70750 0 0 if( nFreeList==0 ){
70755 0 0 if( rc!=SQLITE_OK ){
70758 0 0 if( eType==PTRMAP_ROOTPAGE ){
70762 0 0 if( eType==PTRMAP_FREEPAGE ){
70763 0 0 if( bCommit==0 ){
70772 0 0 if( rc!=SQLITE_OK ){
70785 0 0 if( rc!=SQLITE_OK ){
70796 0 0 if( bCommit==0 ){
70804 0 0 if( rc!=SQLITE_OK ){
70809 0 0 if( iFreePg>dbSize ){
70813 0 0 }while( bCommit && iFreePg>nFin );
0 0 }while( bCommit && iFreePg>nFin );
70818 0 0 if( rc!=SQLITE_OK ){
70824 0 0 if( bCommit==0 ){
70827 0 0 }while( iLastPg==PENDING_BYTE_PAGE(pBt) || PTRMAP_ISPAGE(pBt, iLastPg) );
0 0 }while( iLastPg==PENDING_BYTE_PAGE(pBt) || PTRMAP_ISPAGE(pBt, iLastPg) );
70847 0 0 if( nOrig>PENDING_BYTE_PAGE(pBt) && nFin
0 0 if( nOrig>PENDING_BYTE_PAGE(pBt) && nFin
70850 0 0 while( PTRMAP_ISPAGE(pBt, nFin) || nFin==PENDING_BYTE_PAGE(pBt) ){
0 0 while( PTRMAP_ISPAGE(pBt, nFin) || nFin==PENDING_BYTE_PAGE(pBt) ){
70871 0 0 if( !pBt->autoVacuum ){
70878 0 0 if( nOrig=nOrig ){
0 0 if( nOrig=nOrig ){
70880 0 0 }else if( nFree>0 ){
70882 0 0 if( rc==SQLITE_OK ){
70886 0 0 if( rc==SQLITE_OK ){
70917 0 0 if( !pBt->incrVacuum ){
70925 0 0 if( PTRMAP_ISPAGE(pBt, nOrig) || nOrig==PENDING_BYTE_PAGE(pBt) ){
0 0 if( PTRMAP_ISPAGE(pBt, nOrig) || nOrig==PENDING_BYTE_PAGE(pBt) ){
70935 0 0 if( db->xAutovacPages ){
70937 0 0 for(iDb=0; ALWAYS(iDbnDb); iDb++){
70938 0 0 if( db->aDb[iDb].pBt==p ) break;
70947 0 0 if( nVac>nFree ){
70950 0 0 if( nVac==0 ){
70957 0 0 if( nFin>nOrig ) return SQLITE_CORRUPT_BKPT;
70958 0 0 if( nFin
70961 0 0 for(iFree=nOrig; iFree>nFin && rc==SQLITE_OK; iFree--){
0 0 for(iFree=nOrig; iFree>nFin && rc==SQLITE_OK; iFree--){
70964 0 0 if( (rc==SQLITE_DONE || rc==SQLITE_OK) && nFree>0 ){
0 0 if( (rc==SQLITE_DONE || rc==SQLITE_OK) && nFree>0 ){
0 0 if( (rc==SQLITE_DONE || rc==SQLITE_OK) && nFree>0 ){
70966 0 0 if( nVac==nFree ){
70974 0 0 if( rc!=SQLITE_OK ){
71015 1071 1977 if( p->inTrans==TRANS_WRITE ){
71019 0 1071 if( pBt->autoVacuum ){
71021 0 0 if( rc!=SQLITE_OK ){
71026 0 1071 if( pBt->bDoTruncate ){
71048 2518 711 if( p->inTrans>TRANS_NONE && db->nVdbeRead>1 ){
292 2226 if( p->inTrans>TRANS_NONE && db->nVdbeRead>1 ){
71059 2226 711 if( p->inTrans!=TRANS_NONE ){
71062 2226 0 if( 0==pBt->nTransaction ){
71104 601 2455 if( p->inTrans==TRANS_NONE ) return SQLITE_OK;
71111 1079 1376 if( p->inTrans==TRANS_WRITE ){
71117 0 1079 if( rc!=SQLITE_OK && bCleanup==0 ){
0 0 if( rc!=SQLITE_OK && bCleanup==0 ){
71138 207 0 if( rc==SQLITE_OK ){
71176 29 1 if( pBtree ){
71178 0 29 for(p=pBtree->pBt->pCursor; p; p=p->pNext){
71179 0 0 if( writeOnly && (p->curFlags & BTCF_WriteFlag)==0 ){
0 0 if( writeOnly && (p->curFlags & BTCF_WriteFlag)==0 ){
71180 0 0 if( p->eState==CURSOR_VALID || p->eState==CURSOR_SKIPNEXT ){
0 0 if( p->eState==CURSOR_VALID || p->eState==CURSOR_SKIPNEXT ){
71182 0 0 if( rc!=SQLITE_OK ){
71206 5 94 if( nPage==0 ) sqlite3PagerPagecount(pBt->pPager, &nPage);
71230 746 28 if( tripCode==SQLITE_OK ){
71232 0 746 if( rc ) writeOnly = 0;
71236 28 746 if( tripCode ){
71239 0 28 if( rc2!=SQLITE_OK ) rc = rc2;
71243 61 713 if( p->inTrans==TRANS_WRITE ){
71248 0 61 if( rc2!=SQLITE_OK ){
71255 44 17 if( btreeGetPage(pBt, 1, &pPage1, 0)==SQLITE_OK ){
71320 57 3 if( p && p->inTrans==TRANS_WRITE ){
55 2 if( p && p->inTrans==TRANS_WRITE ){
71325 1 54 if( op==SAVEPOINT_ROLLBACK ){
71328 55 0 if( rc==SQLITE_OK ){
71331 55 0 if( rc==SQLITE_OK ){
71332 0 55 if( iSavepoint<0 && (pBt->btsFlags & BTS_INITIALLY_EMPTY)!=0 ){
0 0 if( iSavepoint<0 && (pBt->btsFlags & BTS_INITIALLY_EMPTY)!=0 ){
71419 1200 4844 if( iTable<=1 ){
71420 0 1200 if( iTable<1 ){
71422 200 1000 }else if( btreePagecount(pBt)==0 ){
71438 802 6044 for(pX=pBt->pCursor; pX; pX=pX->pNext){
71439 495 307 if( pX->pgnoRoot==iTable ){
71447 4155 1889 if( wrFlag ){
71450 210 3945 if( pBt->pTmpSpace==0 ) return allocateTempSpace(pBt);
71476 0 6044 if( p->sharable ){
71513 6044 0 if( pBtree ){
71517 5738 306 if( pBt->pCursor==pCur ){
71522 306 6 if( pPrev->pNext==pCur ){
71527 6 0 }while( ALWAYS(pPrev) );
71533 17 6027 if( (pBt->openFlags & BTREE_SINGLE) && pBt->pCursor==0 ){
17 0 if( (pBt->openFlags & BTREE_SINGLE) && pBt->pCursor==0 ){
71573 11603 1365 if( pCur->info.nSize==0 ){
71710 0 0 if( pBt->autoVacuum ){
71715 0 0 while( PTRMAP_ISPAGE(pBt, iGuess) || iGuess==PENDING_BYTE_PAGE(pBt) ){
0 0 while( PTRMAP_ISPAGE(pBt, iGuess) || iGuess==PENDING_BYTE_PAGE(pBt) ){
71719 0 0 if( iGuess<=btreePagecount(pBt) ){
71721 0 0 if( rc==SQLITE_OK && eType==PTRMAP_OVERFLOW2 && pgno==ovfl ){
0 0 if( rc==SQLITE_OK && eType==PTRMAP_OVERFLOW2 && pgno==ovfl ){
0 0 if( rc==SQLITE_OK && eType==PTRMAP_OVERFLOW2 && pgno==ovfl ){
71730 0 0 if( rc==SQLITE_OK ){
71731 0 0 rc = btreeGetPage(pBt, ovfl, &pPage, (ppPage==0) ? PAGER_GET_READONLY : 0);
71733 0 0 if( rc==SQLITE_OK ){
71739 0 0 if( ppPage ){
71744 0 0 return (rc==SQLITE_DONE ? SQLITE_OK : rc);
71765 0 655 if( eOp ){
71768 0 0 if( rc!=SQLITE_OK ){
71827 0 87 if( pCur->ix>=pPage->nCell ){
71837 0 87 if( (uptr)(aPayload - pPage->aData) > (pBt->usableSize - pCur->info.nLocal) ){
71847 87 0 if( offsetinfo.nLocal ){
71849 19 68 if( a+offset>pCur->info.nLocal ){
71861 87 0 if( rc==SQLITE_OK && amt>0 ){
19 68 if( rc==SQLITE_OK && amt>0 ){
71874 19 0 if( (pCur->curFlags & BTCF_ValidOvfl)==0 ){
71876 7 12 if( pCur->aOverflow==0
71877 0 7 || nOvfl*(int)sizeof(Pgno) > sqlite3MallocSize(pCur->aOverflow)
71882 0 12 if( aNew==0 ){
71895 0 0 if( pCur->aOverflow[offset/ovflSize] ){
71903 568 0 while( nextPage ){
71905 0 568 if( nextPage > pBt->nPage ) return SQLITE_CORRUPT_BKPT;
71911 0 568 if( offset>=ovflSize ){
71920 0 0 if( pCur->aOverflow[iIdx+1] ){
71931 549 19 if( a + offset > ovflSize ){
71968 568 0 rc = sqlite3PagerGet(pBt->pPager, nextPage, &pDbPage,
71971 568 0 if( rc==SQLITE_OK ){
71980 19 549 if( amt==0 ) return rc;
71983 0 549 if( rc ) break;
71988 68 0 if( rc==SQLITE_OK && amt>0 ){
0 68 if( rc==SQLITE_OK && amt>0 ){
72032 0 0 if ( pCur->eState==CURSOR_INVALID ){
72037 0 0 return rc ? rc : accessPayload(pCur, offset, amt, pBuf, 0);
72040 72 0 if( pCur->eState==CURSOR_VALID ){
72082 0 9286 if( amt>(int)(pCur->pPage->aDataEnd - pCur->info.pPayload) ){
72128 0 1686 if( pCur->iPage>=(BTCURSOR_MAX_DEPTH-1) ){
72222 825 5941 if( pCur->iPage>=0 ){
72223 85 740 if( pCur->iPage ){
72225 0 85 while( --pCur->iPage ){
72231 200 5741 }else if( pCur->pgnoRoot==0 ){
72236 0 5741 if( pCur->eState>=CURSOR_REQUIRESEEK ){
72237 0 0 if( pCur->eState==CURSOR_FAULT ){
72245 0 5741 if( rc!=SQLITE_OK ){
72266 6481 0 if( pRoot->isInit==0 || (pCur->pKeyInfo==0)!=pRoot->intKey ){
0 6481 if( pRoot->isInit==0 || (pCur->pKeyInfo==0)!=pRoot->intKey ){
72275 5682 884 if( pRoot->nCell>0 ){
72277 0 884 }else if( !pRoot->leaf ){
72279 0 0 if( pRoot->pgno!=1 ) return SQLITE_CORRUPT_BKPT;
72304 965 0 while( rc==SQLITE_OK && !(pPage = pCur->pPage)->leaf ){
12 953 while( rc==SQLITE_OK && !(pPage = pCur->pPage)->leaf ){
72329 1437 2856 while( !(pPage = pCur->pPage)->leaf ){
72333 0 1437 if( rc ) return rc;
72351 939 277 if( rc==SQLITE_OK ){
72355 277 0 }else if( rc==SQLITE_EMPTY ){
72374 2 3225 if( CURSOR_VALID==pCur->eState && (pCur->curFlags & BTCF_AtLast)!=0 ){
1 1 if( CURSOR_VALID==pCur->eState && (pCur->curFlags & BTCF_AtLast)!=0 ){
72392 2856 370 if( rc==SQLITE_OK ){
72396 2856 0 if( rc==SQLITE_OK ){
72401 370 0 }else if( rc==SQLITE_EMPTY ){
72448 3254 1604 if( pCur->eState==CURSOR_VALID && (pCur->curFlags & BTCF_ValidNKey)!=0 ){
3248 6 if( pCur->eState==CURSOR_VALID && (pCur->curFlags & BTCF_ValidNKey)!=0 ){
72449 0 3248 if( pCur->info.nKey==intKey ){
72453 2899 349 if( pCur->info.nKey
72454 2850 49 if( (pCur->curFlags & BTCF_AtLast)!=0 ){
72462 2 47 if( pCur->info.nKey+1==intKey ){
72465 2 0 if( rc==SQLITE_OK ){
72467 2 0 if( pCur->info.nKey==intKey ){
72470 0 0 }else if( rc!=SQLITE_DONE ){
72482 381 1625 if( rc ){
72483 381 0 if( rc==SQLITE_EMPTY ){
72518 3986 968 if( pPage->intKeyLeaf ){
72519 387 3986 while( 0x80 <= *(pCell++) ){
72520 0 387 if( pCell>=pPage->aDataEnd ){
72526 3338 1616 if( nCellKey
72528 469 2869 if( lwr>upr ){ c = -1; break; }
72529 232 1384 }else if( nCellKey>intKey ){
72531 3 229 if( lwr>upr ){ c = +1; break; }
72535 66 1318 if( !pPage->leaf ){
72551 307 165 if( pPage->leaf ){
72559 165 66 if( lwr>=pPage->nCell ){
72566 0 231 if( rc ) break;
72602 4 0 if( nCell<=pPage->max1bytePayload ){
72608 0 0 }else if( !(pCell[1] & 0x80)
72609 0 0 && (nCell = ((nCell&0x7f)<<7) + pCell[1])<=pPage->maxLocal
72630 0 12 for(i=0; iiPage; i++){
72632 0 0 if( pCur->aiIdx[i]nCell ) return 0;
72699 12 271 if( pCur->eState==CURSOR_VALID
72700 12 0 && pCur->pPage->leaf
72701 12 0 && cursorOnLastPage(pCur)
72704 4 8 if( pCur->ix==pCur->pPage->nCell-1
72705 0 4 && (c = indexCellCompare(pCur, pCur->ix, pIdxKey, xRecordCompare))<=0
72706 0 0 && pIdxKey->errCode==SQLITE_OK
72711 0 12 if( pCur->iPage>0
72712 0 0 && indexCellCompare(pCur, 0, pIdxKey, xRecordCompare)<=0
72713 0 0 && pIdxKey->errCode==SQLITE_OK
72716 0 0 if( !pCur->pPage->isInit ){
72725 40 243 if( rc ){
72726 40 0 if( rc==SQLITE_EMPTY ){
72771 553 0 if( nCell<=pPage->max1bytePayload ){
72777 0 0 }else if( !(pCell[1] & 0x80)
72778 0 0 && (nCell = ((nCell&0x7f)<<7) + pCell[1])<=pPage->maxLocal
72803 0 0 if( nCell<2 || nCell/pCur->pBt->usableSize>pCur->pBt->nPage ){
0 0 if( nCell<2 || nCell/pCur->pBt->usableSize>pCur->pBt->nPage ){
72808 0 0 if( pCellKey==0 ){
72816 0 0 if( rc ){
72827 517 36 if( c<0 ){
72829 33 3 }else if( c>0 ){
72836 0 3 if( pIdxKey->errCode ) rc = SQLITE_CORRUPT_BKPT;
72839 240 310 if( lwr>upr ) break;
72845 240 0 if( pPage->leaf ){
72852 0 0 if( lwr>=pPage->nCell ){
72859 0 0 if( rc ) break;
72898 0 0 if( NEVER(pCur->eState!=CURSOR_VALID) ) return -1;
72899 0 0 if( NEVER(pCur->pPage->leaf==0) ) return -1;
72902 0 0 for(i=0; iiPage; i++){
72934 18 743 if( pCur->eState!=CURSOR_VALID ){
72936 18 0 rc = restoreCursorPosition(pCur);
72937 0 18 if( rc!=SQLITE_OK ){
72940 8 10 if( CURSOR_INVALID==pCur->eState ){
72943 10 0 if( pCur->eState==CURSOR_SKIPNEXT ){
72945 3 7 if( pCur->skipNext>0 ) return SQLITE_OK;
72951 750 0 if( !pPage->isInit || sqlite3FaultSim(412) ){
0 750 if( !pPage->isInit || sqlite3FaultSim(412) ){
72962 749 1 if( idx>=pPage->nCell ){
72963 6 743 if( !pPage->leaf ){
72965 0 6 if( rc ) return rc;
72969 729 18 if( pCur->iPage==0 ){
72975 4 14 }while( pCur->ix>=pPage->nCell );
72976 14 0 if( pPage->intKey ){
72982 1 0 if( pPage->leaf ){
72995 18 6994 if( pCur->eState!=CURSOR_VALID ) return btreeNext(pCur);
72997 743 6251 if( (++pCur->ix)>=pPage->nCell ){
73001 6243 8 if( pPage->leaf ){
73035 0 113 if( pCur->eState!=CURSOR_VALID ){
73036 0 0 rc = restoreCursorPosition(pCur);
73037 0 0 if( rc!=SQLITE_OK ){
73040 0 0 if( CURSOR_INVALID==pCur->eState ){
73043 0 0 if( CURSOR_SKIPNEXT==pCur->eState ){
73045 0 0 if( pCur->skipNext<0 ) return SQLITE_OK;
73051 0 113 if( !pPage->leaf ){
73054 0 0 if( rc ) return rc;
73057 113 0 while( pCur->ix==0 ){
73058 113 0 if( pCur->iPage==0 ){
73069 0 0 if( pPage->intKey && !pPage->leaf ){
0 0 if( pPage->intKey && !pPage->leaf ){
73083 424 0 if( pCur->eState!=CURSOR_VALID
73084 311 113 || pCur->ix==0
73085 0 311 || pCur->pPage->leaf==0
73138 0 1002 if( n>=mxPage ){
73141 2 1000 if( n>0 ){
73152 0 2 if( eMode==BTALLOC_EXACT ){
73153 0 0 if( nearby<=mxPage ){
73158 0 0 if( rc ) return rc;
73159 0 0 if( eType==PTRMAP_FREEPAGE ){
73163 0 2 }else if( eMode==BTALLOC_LE ){
73172 0 2 if( rc ) return rc;
73182 0 2 if( pPrevTrunk ){
73194 2 0 if( iTrunk>mxPage || nSearch++ > n ){
0 2 if( iTrunk>mxPage || nSearch++ > n ){
73199 0 2 if( rc ){
73208 1 1 if( k==0 && !searchList ){
1 0 if( k==0 && !searchList ){
73214 0 1 if( rc ){
73222 0 1 }else if( k>(u32)(pBt->usableSize/4 - 2) ){
73227 0 1 }else if( searchList
73228 0 0 && (nearby==iTrunk || (iTrunk
0 0 && (nearby==iTrunk || (iTrunk
0 0 && (nearby==iTrunk || (iTrunk
73237 0 0 if( rc ){
73240 0 0 if( k==0 ){
73241 0 0 if( !pPrevTrunk ){
73245 0 0 if( rc!=SQLITE_OK ){
73257 0 0 if( iNewTrunk>mxPage ){
73263 0 0 if( rc!=SQLITE_OK ){
73267 0 0 if( rc!=SQLITE_OK ){
73275 0 0 if( !pPrevTrunk ){
73280 0 0 if( rc ){
73289 1 0 }else if( k>0 ){
73294 1 0 if( nearby>0 ){
73297 0 1 if( eMode==BTALLOC_LE ){
73298 0 0 for(i=0; i
73300 0 0 if( iPage<=nearby ){
73308 0 1 for(i=1; i
73310 0 0 if( d2
73322 1 0 if( iPage>mxPage || iPage<2 ){
0 1 if( iPage>mxPage || iPage<2 ){
73327 0 1 if( !searchList
73328 0 0 || (iPage==nearby || (iPage
0 0 || (iPage==nearby || (iPage
0 0 || (iPage==nearby || (iPage
73336 0 1 if( rc ) goto end_allocate_page;
73337 0 1 if( closest
73343 1 0 if( rc==SQLITE_OK ){
73345 0 1 if( rc!=SQLITE_OK ){
73355 0 2 }while( searchList );
73378 0 1000 if( rc ) return rc;
73380 0 1000 if( pBt->nPage==PENDING_BYTE_PAGE(pBt) ) pBt->nPage++;
73383 0 1000 if( pBt->autoVacuum && PTRMAP_ISPAGE(pBt, pBt->nPage) ){
0 0 if( pBt->autoVacuum && PTRMAP_ISPAGE(pBt, pBt->nPage) ){
73392 0 0 if( rc==SQLITE_OK ){
73396 0 0 if( rc ) return rc;
73398 0 0 if( pBt->nPage==PENDING_BYTE_PAGE(pBt) ){ pBt->nPage++; }
73406 0 1000 if( rc ) return rc;
73408 0 1000 if( rc!=SQLITE_OK ){
73449 5 0 if( iPage<2 || iPage>pBt->nPage ){
0 5 if( iPage<2 || iPage>pBt->nPage ){
73452 5 0 if( pMemPage ){
73461 0 5 if( rc ) goto freepage_out;
73465 0 5 if( pBt->btsFlags & BTS_SECURE_DELETE ){
73469 0 0 if( (!pPage && ((rc = btreeGetPage(pBt, iPage, &pPage, 0))!=0) )
0 0 if( (!pPage && ((rc = btreeGetPage(pBt, iPage, &pPage, 0))!=0) )
73470 0 0 || ((rc = sqlite3PagerWrite(pPage->pDbPage))!=0)
73480 0 5 if( ISAUTOVACUUM ){
73482 0 0 if( rc ) goto freepage_out;
73492 1 4 if( nFree!=0 ){
73496 0 1 if( iTrunk>btreePagecount(pBt) ){
73501 0 1 if( rc!=SQLITE_OK ){
73507 0 1 if( nLeaf > (u32)pBt->usableSize/4 - 2 ){
73511 1 0 if( nLeaf < (u32)pBt->usableSize/4 - 8 ){
73532 1 0 if( rc==SQLITE_OK ){
73535 1 0 if( pPage && (pBt->btsFlags & BTS_SECURE_DELETE)==0 ){
1 0 if( pPage && (pBt->btsFlags & BTS_SECURE_DELETE)==0 ){
73551 0 4 if( pPage==0 && SQLITE_OK!=(rc = btreeGetPage(pBt, iPage, &pPage, 0)) ){
0 0 if( pPage==0 && SQLITE_OK!=(rc = btreeGetPage(pBt, iPage, &pPage, 0)) ){
73555 0 4 if( rc!=SQLITE_OK ){
73564 5 0 if( pPage ){
73572 5 0 if( (*pRC)==SQLITE_OK ){
73595 0 0 if( pCell + pInfo->nSize > pPage->aDataEnd ){
73607 0 0 while( nOvfl-- ){
73610 0 0 if( ovflPgno<2 || ovflPgno>btreePagecount(pBt) ){
0 0 if( ovflPgno<2 || ovflPgno>btreePagecount(pBt) ){
73616 0 0 if( nOvfl ){
73618 0 0 if( rc ) return rc;
73621 0 0 if( ( pOvfl || ((pOvfl = btreePageLookup(pBt, ovflPgno))!=0) )
0 0 if( ( pOvfl || ((pOvfl = btreePageLookup(pBt, ovflPgno))!=0) )
73622 0 0 && sqlite3PagerPageRefcount(pOvfl->pDbPage)!=1
73639 0 0 if( pOvfl ){
73642 0 0 if( rc ) return rc;
73701 3979 87 if( pPage->intKey ){
73706 3772 207 nHeader += putVarint32(&pCell[nHeader], nPayload);
73712 87 0 nHeader += putVarint32(&pCell[nHeader], nPayload);
73717 4040 26 if( nPayload<=pPage->maxLocal ){
73723 5 4035 if( n<4 ) n = 4;
73739 24 2 if( n > pPage->maxLocal ) n = mn;
73773 575 26 if( n>spaceLeft ) n = spaceLeft;
73784 601 0 if( nSrc>=n ){
73786 0 0 }else if( nSrc>0 ){
73793 26 575 if( nPayload<=0 ) break;
73798 575 0 if( spaceLeft==0 ){
73802 0 575 if( pBt->autoVacuum ){
73806 0 0 PTRMAP_ISPAGE(pBt, pgnoOvfl) || pgnoOvfl==PENDING_BYTE_PAGE(pBt)
73807 0 0 );
73822 0 575 if( pBt->autoVacuum && rc==SQLITE_OK ){
0 0 if( pBt->autoVacuum && rc==SQLITE_OK ){
73823 0 0 u8 eType = (pgnoPtrmap?PTRMAP_OVERFLOW2:PTRMAP_OVERFLOW1);
73825 0 0 if( rc ){
73830 0 575 if( rc ){
73872 0 291 if( *pRC ) return;
73892 0 291 if( pc+sz > pPage->pBt->usableSize ){
73897 0 291 if( rc ){
73902 174 117 if( pPage->nCell==0 ){
73952 3996 0 if( pPage->nOverflow || sz+2>pPage->nFree ){
139 3857 if( pPage->nOverflow || sz+2>pPage->nFree ){
73953 0 139 if( pTemp ){
73957 0 139 if( iChild ){
73977 0 3857 if( rc!=SQLITE_OK ){
73985 0 3857 if( rc ){ *pRC = rc; return; }
73992 139 3718 if( iChild ){
74008 6 3851 if( (++data[pPage->hdrOffset+4])==0 ) data[pPage->hdrOffset+3]++;
74011 0 3857 if( pPage->pBt->autoVacuum ){
74120 0 0 while( N>0 ){
74122 0 0 if( p->szCell[idx]==0 ){
74144 0 0 if( p->szCell[N] ) return p->szCell[N];
74182 0 139 if( j>(u32)usableSize ){ j = 0; }
74185 0 139 for(k=0; pCArray->ixNx[k]<=i && ALWAYS(k
0 0 for(k=0; pCArray->ixNx[k]<=i && ALWAYS(k
74193 15 124 if( SQLITE_WITHIN(pCell,aData+j,pEnd) ){
0 15 if( SQLITE_WITHIN(pCell,aData+j,pEnd) ){
74194 0 0 if( ((uptr)(pCell+sz))>(uptr)pEnd ) return SQLITE_CORRUPT_BKPT;
74196 16 123 }else if( (uptr)(pCell+sz)>(uptr)pSrcEnd
74197 0 16 && (uptr)(pCell)<(uptr)pSrcEnd
74205 0 139 if( pData < pCellptr ) return SQLITE_CORRUPT_BKPT;
74209 139 0 if( i>=iEnd ) break;
74210 0 0 if( pCArray->ixNx[k]<=i ){
74267 0 0 if( iEnd<=iFirst ) return 0;
74268 0 0 for(k=0; pCArray->ixNx[k]<=i && ALWAYS(k
0 0 for(k=0; pCArray->ixNx[k]<=i && ALWAYS(k
74275 0 0 if( (aData[1]==0 && aData[2]==0) || (pSlot = pageFindSlot(pPg,sz,&rc))==0 ){
0 0 if( (aData[1]==0 && aData[2]==0) || (pSlot = pageFindSlot(pPg,sz,&rc))==0 ){
0 0 if( (aData[1]==0 && aData[2]==0) || (pSlot = pageFindSlot(pPg,sz,&rc))==0 ){
74276 0 0 if( (pData - pBegin)
74286 0 0 if( (uptr)(pCArray->apCell[i]+sz)>(uptr)pEnd
74287 0 0 && (uptr)(pCArray->apCell[i])<(uptr)pEnd
74297 0 0 if( i>=iEnd ) break;
74298 0 0 if( pCArray->ixNx[k]<=i ){
74331 0 0 for(i=iFirst; i
74333 0 0 if( SQLITE_WITHIN(pCell, pStart, pEnd) ){
0 0 if( SQLITE_WITHIN(pCell, pStart, pEnd) ){
74339 0 0 if( pFree!=(pCell + sz) ){
74340 0 0 if( pFree ){
74346 0 0 if( pFree+sz>pEnd ){
74356 0 0 if( pFree ){
74399 0 0 if( iOld
74401 0 0 if( NEVER(nShift>nCell) ) return SQLITE_CORRUPT_BKPT;
74405 0 0 if( iNewEnd < iOldEnd ){
74412 0 0 if( pData
74413 0 0 if( pData>pPg->aDataEnd ) goto editpage_fail;
74416 0 0 if( iNew
74422 0 0 if( pageInsertArray(
74430 0 0 for(i=0; inOverflow; i++){
74432 0 0 if( iCell>=0 && iCell
0 0 if( iCell>=0 && iCell
74434 0 0 if( nCell>iCell ){
74439 0 0 if( pageInsertArray(
74449 0 0 if( pageInsertArray(
74514 0 139 if( pPage->nCell==0 ) return SQLITE_CORRUPT_BKPT; /* dbfuzz001.test */
74524 139 0 if( rc==SQLITE_OK ){
74542 0 139 if( NEVER(rc) ){
74557 0 139 if( ISAUTOVACUUM ){
74559 0 0 if( szCell>pNew->minLocal ){
74579 133 139 while( (*(pCell++)&0x80) && pCell
133 0 while( (*(pCell++)&0x80) && pCell
74581 6 139 while( ((*(pOut++) = *(pCell++))&0x80) && pCell
6 0 while( ((*(pOut++) = *(pCell++))&0x80) && pCell
74584 139 0 if( rc==SQLITE_OK ){
74660 7 0 if( (*pRC)==SQLITE_OK ){
74665 0 7 int const iToHdr = ((pTo->pgno==1) ? 100 : 0);
74686 7 0 if( rc==SQLITE_OK ) rc = btreeComputeFreeSpace(pTo);
74687 0 7 if( rc!=SQLITE_OK ){
74695 0 7 if( ISAUTOVACUUM ){
74789 0 0 if( !aOvflSpace ){
74806 0 0 if( i<2 ){
74810 0 0 if( iParentIdx==0 ){
74812 0 0 }else if( iParentIdx==i ){
74820 0 0 if( (i+nxDiv-pParent->nOverflow)==pParent->nCell ){
74827 0 0 if( rc==SQLITE_OK ){
74830 0 0 if( rc ){
74834 0 0 if( apOld[i]->nFree<0 ){
74836 0 0 if( rc ){
74842 0 0 if( (i--)==0 ) break;
74844 0 0 if( pParent->nOverflow && i+nxDiv==pParent->aiOvfl[0] ){
0 0 if( pParent->nOverflow && i+nxDiv==pParent->aiOvfl[0] ){
74866 0 0 if( pBt->btsFlags & BTS_FAST_SECURE ){
74872 0 0 if( (iOff+szNew[i])<=(int)pBt->usableSize ){
74895 0 0 if( b.apCell==0 ){
74922 0 0 for(i=0; i
74934 0 0 if( pOld->aData[0]!=apOld[0]->aData[0] ){
74957 0 0 if( pOld->nOverflow>0 ){
74958 0 0 if( NEVER(limitaiOvfl[0]) ){
74963 0 0 for(j=0; j
74968 0 0 for(k=0; knOverflow; k++){
74975 0 0 while( piCell
74984 0 0 if( i
0 0 if( i
74997 0 0 if( !pOld->leaf ){
75005 0 0 while( b.szCell[b.nCell]<4 ){
75035 0 0 for(i=k=0; i
75039 0 0 if( k && b.ixNx[k]==b.ixNx[k-1] ){
0 0 if( k && b.ixNx[k]==b.ixNx[k-1] ){
75042 0 0 if( !leafData ){
75049 0 0 for(j=0; jnOverflow; j++){
75055 0 0 for(i=0; i
75057 0 0 while( szNew[i]>usableSpace ){
75058 0 0 if( i+1>=k ){
75060 0 0 if( k>NB+2 ){ rc = SQLITE_CORRUPT_BKPT; goto balance_cleanup; }
75066 0 0 if( !leafData ){
75067 0 0 if( cntNew[i]
75076 0 0 while( cntNew[i]
75078 0 0 if( szNew[i]+sz>usableSpace ) break;
75081 0 0 if( !leafData ){
75082 0 0 if( cntNew[i]
75090 0 0 if( cntNew[i]>=b.nCell ){
75092 0 0 }else if( cntNew[i] <= (i>0 ? cntNew[i-1] : 0) ){
0 0 }else if( cntNew[i] <= (i>0 ? cntNew[i-1] : 0) ){
75109 0 0 for(i=k-1; i>0; i--){
75122 0 0 if( szRight!=0
75123 0 0 && (bBulk || szRight+b.szCell[d]+2 > szLeft-(b.szCell[r]+(i==k-1?0:2)))){
0 0 && (bBulk || szRight+b.szCell[d]+2 > szLeft-(b.szCell[r]+(i==k-1?0:2)))){
0 0 && (bBulk || szRight+b.szCell[d]+2 > szLeft-(b.szCell[r]+(i==k-1?0:2)))){
75131 0 0 }while( r>=0 );
75134 0 0 if( cntNew[i-1] <= (i>1 ? cntNew[i-2] : 0) ){
0 0 if( cntNew[i-1] <= (i>1 ? cntNew[i-2] : 0) ){
75158 0 0 for(i=0; i
75160 0 0 if( i
75165 0 0 if( sqlite3PagerPageRefcount(pNew->pDbPage)!=1+(i==(iParentIdx-nxDiv))
0 0 if( sqlite3PagerPageRefcount(pNew->pDbPage)!=1+(i==(iParentIdx-nxDiv))
75166 0 0 && rc==SQLITE_OK
75170 0 0 if( rc ) goto balance_cleanup;
75173 0 0 rc = allocateBtreePage(pBt, &pNew, &pgno, (bBulk ? 1 : pgno), 0);
75174 0 0 if( rc ) goto balance_cleanup;
75181 0 0 if( ISAUTOVACUUM ){
75183 0 0 if( rc!=SQLITE_OK ){
75202 0 0 for(i=0; i
75207 0 0 for(i=0; i
75209 0 0 for(j=i+1; j
75210 0 0 if( apNew[j]->pgno < apNew[iB]->pgno ) iB = j;
75218 0 0 if( iB!=i ){
75253 0 0 if( (pageFlags & PTF_LEAF)==0 && nOld!=nNew ){
0 0 if( (pageFlags & PTF_LEAF)==0 && nOld!=nNew ){
75254 0 0 MemPage *pOld = (nNew>nOld ? apNew : apOld)[nOld-1];
75274 0 0 if( ISAUTOVACUUM ){
75281 0 0 for(i=0; i
75283 0 0 while( i==cntOldNext ){
75287 0 0 pOld = iOld
75290 0 0 if( i==cntNew[iNew] ){
75292 0 0 if( !leafData ) continue;
75301 0 0 if( iOld>=nNew
75302 0 0 || pNew->pgno!=aPgno[iOld]
75303 0 0 || !SQLITE_WITHIN(pCell,pOld->aData,pOld->aDataEnd)
0 0 || !SQLITE_WITHIN(pCell,pOld->aData,pOld->aDataEnd)
75305 0 0 if( !leafCorrection ){
75308 0 0 if( cachedCellSize(&b,i)>pNew->minLocal ){
75311 0 0 if( rc ) goto balance_cleanup;
75317 0 0 for(i=0; i
75330 0 0 if( !pNew->leaf ){
75332 0 0 }else if( leafData ){
75357 0 0 if( b.szCell[j]==4 ){
75365 0 0 for(k=0; b.ixNx[k]<=j && ALWAYS(k
0 0 for(k=0; b.ixNx[k]<=j && ALWAYS(k
75367 0 0 if( SQLITE_WITHIN(pSrcEnd, pCell, pCell+sz) ){
0 0 if( SQLITE_WITHIN(pSrcEnd, pCell, pCell+sz) ){
75372 0 0 if( rc!=SQLITE_OK ) goto balance_cleanup;
75398 0 0 for(i=1-nNew; i
75401 0 0 if( abDone[iPg] ) continue; /* Skip pages already processed */
75402 0 0 if( i>=0 /* On the upwards pass, or... */
75403 0 0 || cntOld[iPg-1]>=cntNew[iPg-1] /* Condition (1) is true */
75417 0 0 if( iPg==0 ){
75421 0 0 iOld = iPg
75427 0 0 if( rc ) goto balance_cleanup;
75441 0 0 if( isRoot && pParent->nCell==0 && pParent->hdrOffset<=apNew[0]->nFree ){
0 0 if( isRoot && pParent->nCell==0 && pParent->hdrOffset<=apNew[0]->nFree ){
0 0 if( isRoot && pParent->nCell==0 && pParent->hdrOffset<=apNew[0]->nFree ){
75467 0 0 }else if( ISAUTOVACUUM && !leafCorrection ){
0 0 }else if( ISAUTOVACUUM && !leafCorrection ){
75471 0 0 for(i=0; i
75483 0 0 for(i=nNew; i
75503 0 0 for(i=0; i
75506 0 0 for(i=0; i
75547 7 0 if( rc==SQLITE_OK ){
75550 0 7 if( ISAUTOVACUUM ){
75554 0 7 if( rc ){
75593 7 7 for(pOther=pCur->pBt->pCursor; pOther; pOther=pOther->pNext){
75594 0 7 if( pOther!=pCur
75595 0 0 && pOther->eState==CURSOR_VALID
75596 0 0 && pOther->pPage==pCur->pPage
75626 0 306 if( NEVER(pPage->nFree<0) && btreeComputeFreeSpace(pPage) ) break;
0 0 if( NEVER(pPage->nFree<0) && btreeComputeFreeSpace(pPage) ) break;
75627 160 146 if( pPage->nOverflow==0 && pPage->nFree*3<=(int)pCur->pBt->usableSize*2 ){
160 0 if( pPage->nOverflow==0 && pPage->nFree*3<=(int)pCur->pBt->usableSize*2 ){
75633 167 139 }else if( (iPage = pCur->iPage)==0 ){
75634 7 160 if( pPage->nOverflow && (rc = anotherValidCursor(pCur))==SQLITE_OK ){
7 0 if( pPage->nOverflow && (rc = anotherValidCursor(pCur))==SQLITE_OK ){
75643 7 0 if( rc==SQLITE_OK ){
75659 139 0 if( rc==SQLITE_OK && pParent->nFree<0 ){
0 139 if( rc==SQLITE_OK && pParent->nFree<0 ){
75662 139 0 if( rc==SQLITE_OK ){
75664 139 0 if( pPage->intKeyLeaf
75665 139 0 && pPage->nOverflow==1
75666 139 0 && pPage->aiOvfl[0]==pPage->nCell
75667 139 0 && pParent->pgno!=1
75668 139 0 && pParent->nCell==iIdx
75709 0 0 if( pFree ){
75732 146 0 }while( rc==SQLITE_OK );
75734 0 160 if( pFree ){
75751 0 3 if( nData<=0 ){
75754 0 0 for(i=0; i
0 0 for(i=0; i
75755 0 0 if( i
75757 0 0 if( rc ) return rc;
75761 0 3 if( nData
75766 0 0 if( rc ) return rc;
75769 3 0 if( memcmp(pDest, ((u8*)pX->pData) + iOffset, iAmt)!=0 ){
75771 0 3 if( rc ) return rc;
75795 3 0 if( pCur->info.pPayload + pCur->info.nLocal > pPage->aDataEnd
75796 0 3 || pCur->info.pPayload < pPage->aData + pPage->cellOffset
75803 0 3 if( rc ) return rc;
75804 3 0 if( pCur->info.nLocal==nTotal ) return SQLITE_OK;
75815 0 0 if( rc ) return rc;
75816 0 0 if( sqlite3PagerPageRefcount(pPage->pDbPage)!=1 || pPage->isInit ){
0 0 if( sqlite3PagerPageRefcount(pPage->pDbPage)!=1 || pPage->isInit ){
75819 0 0 if( iOffset+ovflPageSize<(u32)nTotal ){
75828 0 0 if( rc ) return rc;
75830 0 0 }while( iOffset
75895 119 3950 if( pCur->curFlags & BTCF_Multiple ){
75897 0 119 if( rc ) return rc;
75898 0 119 if( loc && pCur->iPage<0 ){
0 0 if( loc && pCur->iPage<0 ){
75911 0 4069 if( pCur->eState>=CURSOR_REQUIRESEEK ){
75915 0 0 if( rc && rc!=SQLITE_EMPTY ) return rc;
0 0 if( rc && rc!=SQLITE_EMPTY ) return rc;
75931 3982 87 if( pCur->pKeyInfo==0 ){
75935 16 3966 if( p->hasIncrblobCur ){
75954 3141 841 if( (pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey ){
291 2850 if( (pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey ){
75958 267 24 if( pCur->info.nSize!=0
75959 3 264 && pCur->info.nPayload==(u32)pX->nData+pX->nZero
75965 3346 345 }else if( loc==0 ){
75972 0 3346 if( rc ) return rc;
75987 26 61 if( loc==0 && (flags & BTREE_SAVEPOSITION)==0 ){
26 0 if( loc==0 && (flags & BTREE_SAVEPOSITION)==0 ){
75988 26 0 if( pX->nMem ){
76000 0 26 if( rc ) return rc;
76007 0 87 if( loc==0 ){
76009 0 0 if( pCur->info.nKey==pX->nKey ){
76024 38 4028 if( pPage->nFree<0 ){
76025 0 38 if( NEVER(pCur->eState>CURSOR_INVALID) ){
76031 0 38 if( rc ) return rc;
76040 0 4066 if( flags & BTREE_PREFORMAT ){
76043 0 0 if( szNew<4 ) szNew = 4;
76044 0 0 if( ISAUTOVACUUM && szNew>pPage->maxLocal ){
0 0 if( ISAUTOVACUUM && szNew>pPage->maxLocal ){
76047 0 0 if( info.nPayload!=info.nLocal ){
76055 0 4066 if( rc ) goto end_insert;
76059 479 3587 if( loc==0 ){
76062 0 479 if( idx>=pPage->nCell ){
76066 0 479 if( rc ){
76070 0 479 if( !pPage->leaf ){
76073 0 479 BTREE_CLEAR_CELL(rc, pPage, oldCell, info);
76076 209 270 if( info.nSize==szNew && info.nLocal==info.nPayload
209 0 if( info.nSize==szNew && info.nLocal==info.nPayload
76077 0 209 && (!ISAUTOVACUUM || szNewminLocal)
0 0 && (!ISAUTOVACUUM || szNewminLocal)
76089 0 209 if( oldCell < pPage->aData+pPage->hdrOffset+10 ){
76092 0 209 if( oldCell+szNew > pPage->aDataEnd ){
76099 0 270 if( rc ) goto end_insert;
76100 3573 14 }else if( loc<0 && pPage->nCell>0 ){
3174 399 }else if( loc<0 && pPage->nCell>0 ){
76132 139 3718 if( pPage->nOverflow ){
76143 0 139 if( (flags & BTREE_SAVEPOSITION) && rc==SQLITE_OK ){
0 0 if( (flags & BTREE_SAVEPOSITION) && rc==SQLITE_OK ){
76145 0 0 if( pCur->pKeyInfo ){
76148 0 0 if( pCur->pKey==0 ){
76188 0 0 if( pSrc->info.nPayload<0x80 ){
76193 0 0 if( pDest->pKeyInfo==0 ) aOut += putVarint(aOut, iKey);
76196 0 0 if( aIn+nIn>pSrc->pPage->aDataEnd ){
76200 0 0 if( nIn==nRem && nInpPage->maxLocal ){
0 0 if( nIn==nRem && nInpPage->maxLocal ){
76213 0 0 if( nOutinfo.nPayload ){
76218 0 0 if( nRem>nIn ){
76219 0 0 if( aIn+nIn+4>pSrc->pPage->aDataEnd ){
76229 0 0 if( nIn>0 ){
76237 0 0 if( nOut>0 ){
76241 0 0 if( rc==SQLITE_OK ){
76248 0 0 }while( rc==SQLITE_OK && nOut>0 );
0 0 }while( rc==SQLITE_OK && nOut>0 );
76250 0 0 if( rc==SQLITE_OK && nRem>0 && ALWAYS(pPgnoOut) ){
0 0 if( rc==SQLITE_OK && nRem>0 && ALWAYS(pPgnoOut) ){
0 0 if( rc==SQLITE_OK && nRem>0 && ALWAYS(pPgnoOut) ){
76255 0 0 if( ISAUTOVACUUM && pPageOut ){
0 0 if( ISAUTOVACUUM && pPageOut ){
76260 0 0 if( pPageOut ){
76267 0 0 }while( nRem>0 && rc==SQLITE_OK );
0 0 }while( nRem>0 && rc==SQLITE_OK );
76311 0 21 if( pCur->eState!=CURSOR_VALID ){
76312 0 0 if( pCur->eState>=CURSOR_REQUIRESEEK ){
76315 0 0 if( rc || pCur->eState!=CURSOR_VALID ) return rc;
0 0 if( rc || pCur->eState!=CURSOR_VALID ) return rc;
76325 0 21 if( pPage->nCell<=iCellIdx ){
76329 3 18 if( pPage->nFree<0 && btreeComputeFreeSpace(pPage) ){
0 3 if( pPage->nFree<0 && btreeComputeFreeSpace(pPage) ){
76350 18 3 if( bPreserve ){
76351 18 0 if( !pPage->leaf
76352 0 18 || (pPage->nFree+pPage->xCellSize(pPage,pCell)+2) >
76354 0 0 || pPage->nCell==1 /* See dbfuzz001.test for a test case */
76359 0 18 if( rc ) return rc;
76372 0 21 if( !pPage->leaf ){
76375 0 0 if( rc ) return rc;
76380 0 21 if( pCur->curFlags & BTCF_Multiple ){
76382 0 0 if( rc ) return rc;
76387 20 1 if( pCur->pKeyInfo==0 && p->hasIncrblobCur ){
1 19 if( pCur->pKeyInfo==0 && p->hasIncrblobCur ){
76395 0 21 if( rc ) return rc;
76396 0 21 BTREE_CLEAR_CELL(rc, pPage, pCell, info);
76398 0 21 if( rc ) return rc;
76405 0 21 if( !pPage->leaf ){
76411 0 0 if( pLeaf->nFree<0 ){
76413 0 0 if( rc ) return rc;
76415 0 0 if( iCellDepthiPage-1 ){
76421 0 0 if( pCell<&pLeaf->aData[4] ) return SQLITE_CORRUPT_BKPT;
76427 0 0 if( rc==SQLITE_OK ){
76431 0 0 if( rc ) return rc;
76451 0 21 if( pCur->pPage->nFree*3<=(int)pCur->pBt->usableSize*2 ){
76458 21 0 if( rc==SQLITE_OK && pCur->iPage>iCellDepth ){
0 21 if( rc==SQLITE_OK && pCur->iPage>iCellDepth ){
76461 0 0 while( pCur->iPage>iCellDepth ){
76468 21 0 if( rc==SQLITE_OK ){
76469 0 21 if( bPreserve>1 ){
76474 0 0 if( iCellIdx>=pPage->nCell ){
76482 18 3 if( bPreserve ){
76486 10 11 if( rc==SQLITE_EMPTY ) rc = SQLITE_OK;
76520 0 281 if( pBt->autoVacuum ){
76536 0 0 if( pgnoRoot>btreePagecount(pBt) ){
76544 0 0 while( pgnoRoot==PTRMAP_PAGENO(pBt, pgnoRoot) ||
0 0 while( pgnoRoot==PTRMAP_PAGENO(pBt, pgnoRoot) ||
76555 0 0 if( rc!=SQLITE_OK ){
76559 0 0 if( pgnoMove!=pgnoRoot ){
76574 0 0 if( rc!=SQLITE_OK ){
76580 0 0 if( rc!=SQLITE_OK ){
76584 0 0 if( eType==PTRMAP_ROOTPAGE || eType==PTRMAP_FREEPAGE ){
0 0 if( eType==PTRMAP_ROOTPAGE || eType==PTRMAP_FREEPAGE ){
76587 0 0 if( rc!=SQLITE_OK ){
76597 0 0 if( rc!=SQLITE_OK ){
76601 0 0 if( rc!=SQLITE_OK ){
76605 0 0 if( rc!=SQLITE_OK ){
76615 0 0 if( rc ){
76626 0 0 if( NEVER(rc) ){
76633 0 281 if( rc ) return rc;
76637 232 49 if( createTabFlags & BTREE_INTKEY ){
76674 0 38 if( pgno>btreePagecount(pBt) ){
76678 0 38 if( rc ) return rc;
76679 38 0 if( (pBt->openFlags & BTREE_SINGLE)==0
76680 0 38 && sqlite3PagerPageRefcount(pPage->pDbPage) != (1 + (pgno==1))
0 38 && sqlite3PagerPageRefcount(pPage->pDbPage) != (1 + (pgno==1))
76686 30 38 for(i=0; inCell; i++){
76688 0 30 if( !pPage->leaf ){
76690 0 0 if( rc ) goto cleardatabasepage_out;
76692 0 30 BTREE_CLEAR_CELL(rc, pPage, pCell, info);
76693 0 30 if( rc ) goto cleardatabasepage_out;
76695 0 38 if( !pPage->leaf ){
76697 0 0 if( rc ) goto cleardatabasepage_out;
76698 0 0 if( pPage->intKey ) pnChange = 0;
76700 33 5 if( pnChange ){
76704 0 38 if( freePageFlag ){
76706 38 0 }else if( (rc = sqlite3PagerWrite(pPage->pDbPage))==0 ){
76735 38 0 if( SQLITE_OK==rc ){
76739 0 38 if( p->hasIncrblobCur ){
76785 0 5 if( iTable>btreePagecount(pBt) ){
76790 0 5 if( rc ) return rc;
76792 0 5 if( NEVER(rc) ){
76803 0 5 if( pBt->autoVacuum ){
76807 0 0 if( iTable==maxRootPgno ){
76813 0 0 if( rc!=SQLITE_OK ){
76824 0 0 if( rc!=SQLITE_OK ){
76829 0 0 if( rc!=SQLITE_OK ){
76836 0 0 if( rc!=SQLITE_OK ){
76848 0 0 while( maxRootPgno==PENDING_BYTE_PAGE(pBt)
76849 0 0 || PTRMAP_ISPAGE(pBt, maxRootPgno) ){
76900 0 1376 if( idx==BTREE_DATA_VERSION ){
76931 632 0 if( rc==SQLITE_OK ){
76934 0 632 if( idx==BTREE_INCR_VACUUM ){
76958 6 4 if( rc==SQLITE_EMPTY ){
76966 4 0 while( rc==SQLITE_OK && !AtomicLoad(&db->u1.isInterrupted) ){
4 0 while( rc==SQLITE_OK && !AtomicLoad(&db->u1.isInterrupted) ){
76975 0 4 if( pPage->leaf || !pPage->intKey ){
0 0 if( pPage->leaf || !pPage->intKey ){
76989 4 0 if( pPage->leaf ){
76991 4 0 if( pCur->iPage==0 ){
76997 0 0 }while ( pCur->ix>=pCur->pPage->nCell );
77007 0 0 if( iIdx==pPage->nCell ){
77036 0 0 if( !pCheck->mxErr ) return;
77040 0 0 if( pCheck->errMsg.nChar ){
77043 0 0 if( pCheck->zPfx ){
77048 0 0 if( pCheck->errMsg.accError==SQLITE_NOMEM ){
77083 0 0 if( iPage>pCheck->nPage || iPage==0 ){
0 0 if( iPage>pCheck->nPage || iPage==0 ){
77087 0 0 if( getPageReferenced(pCheck, iPage) ){
77091 0 0 if( AtomicLoad(&pCheck->db->u1.isInterrupted) ) return 1;
77113 0 0 if( rc!=SQLITE_OK ){
77114 0 0 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) pCheck->bOomFault = 1;
0 0 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) pCheck->bOomFault = 1;
77119 0 0 if( ePtrmapType!=eType || iPtrmapParent!=iParent ){
0 0 if( ePtrmapType!=eType || iPtrmapParent!=iParent ){
77140 0 0 while( iPage!=0 && pCheck->mxErr ){
0 0 while( iPage!=0 && pCheck->mxErr ){
77143 0 0 if( checkRef(pCheck, iPage) ) break;
77145 0 0 if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage, 0) ){
77150 0 0 if( isFreeList ){
77153 0 0 if( pCheck->pBt->autoVacuum ){
77157 0 0 if( n>pCheck->pBt->usableSize/4-2 ){
77162 0 0 for(i=0; i<(int)n; i++){
77165 0 0 if( pCheck->pBt->autoVacuum ){
77180 0 0 if( pCheck->pBt->autoVacuum && N>0 ){
0 0 if( pCheck->pBt->autoVacuum && N>0 ){
77189 0 0 if( N && nErrAtStart==pCheck->nErr ){
0 0 if( N && nErrAtStart==pCheck->nErr ){
77190 0 0 checkAppendMsg(pCheck,
77223 0 0 while( (j = i/2)>0 && aHeap[j]>aHeap[i] ){
0 0 while( (j = i/2)>0 && aHeap[j]>aHeap[i] ){
77232 0 0 if( (x = aHeap[0])==0 ) return 0;
77238 0 0 while( (j = i*2)<=aHeap[0] ){
77239 0 0 if( aHeap[j]>aHeap[j+1] ) j++;
77240 0 0 if( aHeap[i]
77300 0 0 if( iPage==0 ) return 0;
77301 0 0 if( checkRef(pCheck, iPage) ) return 0;
77304 0 0 if( (rc = btreeGetPage(pBt, iPage, &pPage, 0))!=0 ){
77314 0 0 if( (rc = btreeInitPage(pPage))!=0 ){
77320 0 0 if( (rc = btreeComputeFreeSpace(pPage))!=0 ){
77344 0 0 if( !pPage->leaf ){
77348 0 0 if( pBt->autoVacuum ){
77364 0 0 for(i=nCell-1; i>=0 && pCheck->mxErr; i--){
0 0 for(i=nCell-1; i>=0 && pCheck->mxErr; i--){
77372 0 0 if( pcusableSize-4 ){
0 0 if( pcusableSize-4 ){
77380 0 0 if( pc+info.nSize>usableSize ){
77387 0 0 if( pPage->intKey ){
77388 0 0 if( keyCanBeEqual ? (info.nKey > maxKey) : (info.nKey >= maxKey) ){
0 0 if( keyCanBeEqual ? (info.nKey > maxKey) : (info.nKey >= maxKey) ){
77396 0 0 if( info.nPayload>info.nLocal ){
77403 0 0 if( pBt->autoVacuum ){
77410 0 0 if( !pPage->leaf ){
77414 0 0 if( pBt->autoVacuum ){
77420 0 0 if( d2!=depth ){
77434 0 0 if( doCoverageCheck && pCheck->mxErr>0 ){
0 0 if( doCoverageCheck && pCheck->mxErr>0 ){
77438 0 0 if( !pPage->leaf ){
77441 0 0 for(i=nCell-1; i>=0; i--){
77455 0 0 while( i>0 ){
77487 0 0 while( btreeHeapPull(heap,&x) ){
77488 0 0 if( (prev&0xffff)>=(x>>16) ){
77503 0 0 if( heap[0]==0 && nFrag!=data[hdr+7] ){
0 0 if( heap[0]==0 && nFrag!=data[hdr+7] ){
77511 0 0 if( !doCoverageCheck ) pPage->isInit = savedIsInit;
77562 0 0 if( aRoot[0]==0 ){
77565 0 0 if( aRoot[1]!=1 ) bCkFreelist = 0;
77586 0 0 if( sCheck.nPage==0 ){
77591 0 0 if( !sCheck.aPgRef ){
77596 0 0 if( sCheck.heap==0 ){
77602 0 0 if( i<=sCheck.nPage ) setPageReferenced(&sCheck, i);
77606 0 0 if( bCkFreelist ){
77616 0 0 if( !bPartial ){
77617 0 0 if( pBt->autoVacuum ){
77620 0 0 for(i=0; (int)i
0 0 for(i=0; (int)i
77622 0 0 if( mx!=mxInHdr ){
77628 0 0 }else if( get4byte(&pBt->pPage1->aData[64])!=0 ){
77637 0 0 for(i=0; (int)i
0 0 for(i=0; (int)i
77639 0 0 if( aRoot[i]==0 ) continue;
77641 0 0 if( pBt->autoVacuum && aRoot[i]>1 && !bPartial ){
0 0 if( pBt->autoVacuum && aRoot[i]>1 && !bPartial ){
0 0 if( pBt->autoVacuum && aRoot[i]>1 && !bPartial ){
77651 0 0 if( !bPartial ){
77652 0 0 for(i=1; i<=sCheck.nPage && sCheck.mxErr; i++){
0 0 for(i=1; i<=sCheck.nPage && sCheck.mxErr; i++){
77662 0 0 (PTRMAP_PAGENO(pBt, i)!=i || !pBt->autoVacuum) ){
77666 0 0 (PTRMAP_PAGENO(pBt, i)==i && pBt->autoVacuum) ){
77678 0 0 if( sCheck.bOomFault ){
77683 0 0 if( sCheck.nErr==0 ) sqlite3_str_reset(&sCheck.errMsg);
77722 3490 2014 return p ? p->inTrans : 0;
77736 0 0 if( p ){
77739 0 0 if( pBt->inTransaction!=TRANS_NONE ){
77782 682 0 if( !pBt->pSchema && nBytes ){
316 366 if( !pBt->pSchema && nBytes ){
77815 0 31 if( p->sharable ){
77822 0 0 if( rc==SQLITE_OK ){
77848 0 0 rc = restoreCursorPosition(pCsr);
77849 0 0 if( rc!=SQLITE_OK ){
77853 0 0 if( pCsr->eState!=CURSOR_VALID ){
77875 0 0 if( (pCsr->curFlags & BTCF_WriteFlag)==0 ){
77911 0 0 if( iVersion==1 ) pBt->btsFlags |= BTS_NO_WAL;
77914 0 0 if( rc==SQLITE_OK ){
77916 0 0 if( aData[18]!=(u8)iVersion || aData[19]!=(u8)iVersion ){
0 0 if( aData[18]!=(u8)iVersion || aData[19]!=(u8)iVersion ){
77918 0 0 if( rc==SQLITE_OK ){
77920 0 0 if( rc==SQLITE_OK ){
78057 0 16 if( i==1 ){
78061 0 0 if( sqlite3OpenTempDatabase(&sParse) ){
78067 0 0 if( rc ){
78072 0 16 if( i<0 ){
78097 0 8 if( sqlite3BtreeTxnState(p)!=SQLITE_TXN_NONE ){
78138 0 8 if( pSrcDb==pDestDb ){
78149 0 8 if( !p ){
78155 8 0 if( p ){
78163 8 0 if( 0==p->pSrc || 0==p->pDest
8 0 if( 0==p->pSrc || 0==p->pDest
78164 0 8 || checkReadTransaction(pDestDb, p->pDest)!=SQLITE_OK
78175 8 0 if( p ){
78190 0 8 return (rc!=SQLITE_OK && rc!=SQLITE_BUSY && ALWAYS(rc!=SQLITE_LOCKED));
0 0 return (rc!=SQLITE_OK && rc!=SQLITE_BUSY && ALWAYS(rc!=SQLITE_LOCKED));
0 0 return (rc!=SQLITE_OK && rc!=SQLITE_BUSY && ALWAYS(rc!=SQLITE_LOCKED));
78221 0 20 if( nSrcPgsz!=nDestPgsz && sqlite3PagerIsMemdb(pDestPager) ){
0 0 if( nSrcPgsz!=nDestPgsz && sqlite3PagerIsMemdb(pDestPager) ){
78229 40 0 for(iOff=iEnd-(i64)nSrcPgsz; rc==SQLITE_OK && iOff
20 20 for(iOff=iEnd-(i64)nSrcPgsz; rc==SQLITE_OK && iOff
78232 0 20 if( iDest==PENDING_BYTE_PAGE(p->pDest->pBt) ) continue;
78233 20 0 if( SQLITE_OK==(rc = sqlite3PagerGet(pDestPager, iDest, &pDestPg, 0))
78234 20 0 && SQLITE_OK==(rc = sqlite3PagerWrite(pDestPg))
78249 8 12 if( iOff==0 && bUpdate==0 ){
8 0 if( iOff==0 && bUpdate==0 ){
78270 0 0 if( rc==SQLITE_OK && iCurrent>iSize ){
0 0 if( rc==SQLITE_OK && iCurrent>iSize ){
78303 8 0 if( p->pDestDb ){
78308 8 0 if( !isFatalError(rc) ){
78318 8 0 if( p->pDestDb && p->pSrc->pBt->inTransaction==TRANS_WRITE ){
0 8 if( p->pDestDb && p->pSrc->pBt->inTransaction==TRANS_WRITE ){
78328 8 0 if( rc==SQLITE_OK && SQLITE_TXN_NONE==sqlite3BtreeTxnState(p->pSrc) ){
8 0 if( rc==SQLITE_OK && SQLITE_TXN_NONE==sqlite3BtreeTxnState(p->pSrc) ){
78339 8 0 if( p->bDestLocked==0 && rc==SQLITE_OK && setDestPgsz(p)==SQLITE_NOMEM ){
8 0 if( p->bDestLocked==0 && rc==SQLITE_OK && setDestPgsz(p)==SQLITE_NOMEM ){
0 8 if( p->bDestLocked==0 && rc==SQLITE_OK && setDestPgsz(p)==SQLITE_NOMEM ){
78344 8 0 if( SQLITE_OK==rc && p->bDestLocked==0
8 0 if( SQLITE_OK==rc && p->bDestLocked==0
78345 8 0 && SQLITE_OK==(rc = sqlite3BtreeBeginTrans(p->pDest, 2,
78356 8 0 if( SQLITE_OK==rc && destMode==PAGER_JOURNALMODE_WAL && pgszSrc!=pgszDest ){
0 8 if( SQLITE_OK==rc && destMode==PAGER_JOURNALMODE_WAL && pgszSrc!=pgszDest ){
0 0 if( SQLITE_OK==rc && destMode==PAGER_JOURNALMODE_WAL && pgszSrc!=pgszDest ){
78365 0 28 for(ii=0; (nPage<0 || iiiNext<=(Pgno)nSrcPage && !rc; ii++){
0 0 for(ii=0; (nPage<0 || iiiNext<=(Pgno)nSrcPage && !rc; ii++){
20 8 for(ii=0; (nPage<0 || iiiNext<=(Pgno)nSrcPage && !rc; ii++){
20 0 for(ii=0; (nPage<0 || iiiNext<=(Pgno)nSrcPage && !rc; ii++){
78367 20 0 if( iSrcPg!=PENDING_BYTE_PAGE(p->pSrc->pBt) ){
78370 20 0 if( rc==SQLITE_OK ){
78377 8 0 if( rc==SQLITE_OK ){
78380 8 0 if( p->iNext>(Pgno)nSrcPage ){
78382 0 0 }else if( !p->isAttached ){
78392 8 0 if( rc==SQLITE_DONE ){
78393 0 8 if( nSrcPage==0 ){
78397 8 0 if( rc==SQLITE_OK || rc==SQLITE_DONE ){
8 0 if( rc==SQLITE_OK || rc==SQLITE_DONE ){
78400 8 0 if( rc==SQLITE_OK ){
78401 8 0 if( p->pDestDb ){
78404 0 8 if( destMode==PAGER_JOURNALMODE_WAL ){
78408 8 0 if( rc==SQLITE_OK ){
78424 0 8 if( pgszSrc
78427 0 0 if( nDestTruncate==(int)PENDING_BYTE_PAGE(p->pDest->pBt) ){
78435 0 8 if( pgszSrc
78466 0 0 for(iPg=nDestTruncate; rc==SQLITE_OK && iPg<=(Pgno)nDstPage; iPg++){
0 0 for(iPg=nDestTruncate; rc==SQLITE_OK && iPg<=(Pgno)nDstPage; iPg++){
78467 0 0 if( iPg!=PENDING_BYTE_PAGE(p->pDest->pBt) ){
78470 0 0 if( rc==SQLITE_OK ){
78476 0 0 if( rc==SQLITE_OK ){
78482 0 0 for(
78484 0 0 rc==SQLITE_OK && iOff
78490 0 0 if( rc==SQLITE_OK ){
78496 0 0 if( rc==SQLITE_OK ){
78501 0 0 if( rc==SQLITE_OK ){
78510 8 0 if( SQLITE_OK==rc
78511 8 0 && SQLITE_OK==(rc = sqlite3BtreeCommitPhaseTwo(p->pDest, 0))
78523 8 0 if( bCloseTrans ){
78530 0 8 if( rc==SQLITE_IOERR_NOMEM ){
78535 8 0 if( p->pDestDb ){
78552 0 8 if( p==0 ) return SQLITE_OK;
78556 8 0 if( p->pDestDb ){
78561 8 0 if( p->pDestDb ){
78564 0 8 if( p->isAttached ){
78567 0 0 while( *pp!=p ){
78578 0 8 rc = (p->rc==SQLITE_DONE) ? SQLITE_OK : p->rc;
78579 8 0 if( p->pDestDb ){
78586 8 0 if( p->pDestDb ){
78644 0 0 if( !isFatalError(p->rc) && iPageiNext ){
0 0 if( !isFatalError(p->rc) && iPageiNext ){
78655 0 0 if( rc!=SQLITE_OK ){
78659 0 0 }while( (p = p->pNext)!=0 );
78662 0 218 if( pBackup ) backupUpdate(pBackup, iPage, aData);
78678 0 1707 for(p=pBackup; p; p=p->pNext){
78702 0 0 if( pFd->pMethods ){
78705 0 0 if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;
78706 0 0 if( rc ) goto copy_finished;
78730 0 0 if( rc==SQLITE_OK ){
78855 355 2 if( p->flags & MEM_Int ){
78868 0 2 sqlite3_str_appendf(&acc, "%!.15g",
78952 774 3611 if( !(pMem->flags&MEM_Str) ){
78956 3611 0 if( pMem->enc==desiredEnc ){
78997 447 26956 if( pMem->szMalloc>0 && bPreserve && pMem->z==pMem->zMalloc ){
379 68 if( pMem->szMalloc>0 && bPreserve && pMem->z==pMem->zMalloc ){
282 97 if( pMem->szMalloc>0 && bPreserve && pMem->z==pMem->zMalloc ){
78998 282 0 if( pMem->db ){
79002 0 0 if( pMem->zMalloc==0 ) sqlite3_free(pMem->z);
79007 165 26956 if( pMem->szMalloc>0 ) sqlite3DbFreeNN(pMem->db, pMem->zMalloc);
79010 0 27403 if( pMem->zMalloc==0 ){
79019 314 27089 if( bPreserve && pMem->z ){
314 0 if( bPreserve && pMem->z ){
79023 4 27399 if( (pMem->flags&MEM_Dyn)!=0 ){
79049 23892 5514 if( pMem->szMalloc
79068 0 596 if( sqlite3VdbeMemGrow(pMem, pMem->n+3, 1) ){
79088 193 469 if( (pMem->flags & (MEM_Str|MEM_Blob))!=0 ){
79089 0 193 if( ExpandBlob(pMem) ) return SQLITE_NOMEM;
0 0 if( ExpandBlob(pMem) ) return SQLITE_NOMEM;
79090 97 96 if( pMem->szMalloc==0 || pMem->z!=pMem->zMalloc ){
97 0 if( pMem->szMalloc==0 || pMem->z!=pMem->zMalloc ){
79092 0 193 if( rc ) return rc;
79119 0 0 if( nByte<=0 ){
79120 0 0 if( (pMem->flags & MEM_Blob)==0 ) return SQLITE_OK;
79123 0 0 if( sqlite3VdbeMemGrow(pMem, nByte, 1) ){
79144 0 403 if( (pMem->flags & (MEM_Term|MEM_Str))!=MEM_Str ){
79177 0 357 if( sqlite3VdbeMemClearAndResize(pMem, nByte) ){
79187 4 353 if( bForce ) pMem->flags &= ~(MEM_Int|MEM_Real|MEM_IntReal);
79219 138 81 if( pMem->szMalloc>0 ) sqlite3DbFreeNN(pMem->db, pMem->zMalloc);
79263 0 120 if( p->flags&MEM_Agg ){
79268 120 0 if( p->flags&MEM_Dyn ){
79284 110 477 if( VdbeMemDynamic(p) ){
79287 461 126 if( p->szMalloc ){
79306 6111 110 if( VdbeMemDynamic(p) || p->szMalloc ){
461 5650 if( VdbeMemDynamic(p) || p->szMalloc ){
79316 0 925 if( p->szMalloc ) vdbeMemClear(p);
79339 0 4 if( r<=(double)minInt ){
79341 0 4 }else if( r>=(double)maxInt ){
79371 3337 544 if( flags & (MEM_Int|MEM_IntReal) ){
79374 0 544 }else if( flags & MEM_Real ){
79376 464 80 }else if( (flags & (MEM_Str|MEM_Blob))!=0 && pMem->z!=0 ){
464 0 }else if( (flags & (MEM_Str|MEM_Blob))!=0 && pMem->z!=0 ){
79399 226 24 if( pMem->flags & MEM_Real ){
79401 24 0 }else if( pMem->flags & (MEM_Int|MEM_IntReal) ){
79404 0 0 }else if( pMem->flags & (MEM_Str|MEM_Blob) ){
79418 489 340 if( pMem->flags & (MEM_Int|MEM_IntReal) ) return pMem->u.i!=0;
79419 128 212 if( pMem->flags & MEM_Null ) return ifNull;
79447 0 4 if( pMem->u.r==ix && ix>SMALLEST_INT64 && ix
0 0 if( pMem->u.r==ix && ix>SMALLEST_INT64 && ix
0 0 if( pMem->u.r==ix && ix>SMALLEST_INT64 && ix
79493 390 0 || (memcmp(&r1, &r2, sizeof(r1))==0
390 0 || (memcmp(&r1, &r2, sizeof(r1))==0
79494 390 0 && i >= -2251799813685248LL && i < 2251799813685248LL);
390 0 && i >= -2251799813685248LL && i < 2251799813685248LL);
79511 0 0 if( (pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal|MEM_Null))==0 ){
79517 0 0 if( ((rc==0 || rc==1) && sqlite3Atoi64(pMem->z, &ix, pMem->n, pMem->enc)<=1)
0 0 if( ((rc==0 || rc==1) && sqlite3Atoi64(pMem->z, &ix, pMem->n, pMem->enc)<=1)
0 0 if( ((rc==0 || rc==1) && sqlite3Atoi64(pMem->z, &ix, pMem->n, pMem->enc)<=1)
79518 0 0 || sqlite3RealSameAsInt(pMem->u.r, (ix = (i64)pMem->u.r))
79539 0 3 if( pMem->flags & MEM_Null ) return SQLITE_OK;
79542 0 0 if( (pMem->flags & MEM_Blob)==0 ){
79545 0 0 if( pMem->flags & MEM_Str ) MemSetTypeFlag(pMem, MEM_Blob);
79602 10 5513 if( VdbeMemDynamic(pMem) ){
79621 0 1 if( n<0 ) n = 0;
79658 0 1647 if( VdbeMemDynamic(pMem) ){
79681 16 0 pMem->u.zPType = zPType ? zPType : "";
79685 0 16 pMem->xDel = xDestructor ? xDestructor : sqlite3NoopDestructor;
79695 220 0 if( !sqlite3IsNaN(val) ){
79727 0 8 if( p==0 ) return SQLITE_NOMEM;
79740 3202 1113 if( p->flags & (MEM_Str|MEM_Blob) ){
79742 0 3202 if( p->flags & MEM_Zero ){
79802 0 1030 if( VdbeMemDynamic(pTo) ){ vdbeClrCopy(pTo,pFrom,srcType); return; }
79804 884 146 if( (pFrom->flags&MEM_Static)==0 ){
79819 0 158 if( VdbeMemDynamic(pTo) ) vdbeMemClearExternAndSetNull(pTo);
79822 104 54 if( pTo->flags&(MEM_Str|MEM_Blob) ){
79823 75 29 if( 0==(pFrom->flags&MEM_Static) ){
79888 3139 22731 if( !z ){
79893 22731 0 if( pMem->db ){
79898 19713 3018 if( nByte<0 ){
79900 19713 0 if( enc==SQLITE_UTF8 ){
79903 0 0 for(nByte=0; nByte<=iLimit && (z[nByte] | z[nByte+1]); nByte+=2){}
0 0 for(nByte=0; nByte<=iLimit && (z[nByte] | z[nByte+1]); nByte+=2){}
79906 1138 1880 }else if( enc==0 ){
79912 0 22731 if( nByte>iLimit ){
79913 0 0 if( xDel && xDel!=SQLITE_TRANSIENT ){
0 0 if( xDel && xDel!=SQLITE_TRANSIENT ){
79914 0 0 if( xDel==SQLITE_DYNAMIC ){
79928 19980 2751 if( xDel==SQLITE_TRANSIENT ){
79930 17793 2187 if( flags&MEM_Term ){
79931 17793 0 nAlloc += (enc==SQLITE_UTF8?1:2);
79936 198 19782 if( sqlite3VdbeMemClearAndResize(pMem, (int)MAX(nAlloc,32)) ){
0 19980 if( sqlite3VdbeMemClearAndResize(pMem, (int)MAX(nAlloc,32)) ){
79943 666 2085 if( xDel==SQLITE_DYNAMIC ){
79948 1985 100 flags |= ((xDel==SQLITE_STATIC)?MEM_Static:MEM_Dyn);
79957 0 22731 if( enc>SQLITE_UTF8 && sqlite3VdbeMemHandleBom(pMem) ){
0 0 if( enc>SQLITE_UTF8 && sqlite3VdbeMemHandleBom(pMem) ){
79989 0 15 if( sqlite3BtreeMaxRecordSize(pCur)
79992 15 0 if( SQLITE_OK==(rc = sqlite3VdbeMemClearAndResize(pMem, amt+1)) ){
79994 15 0 if( rc==SQLITE_OK ){
80021 925 0 if( amt<=available ){
80042 403 353 if( pVal->flags & (MEM_Blob|MEM_Str) ){
80043 0 403 if( ExpandBlob(pVal) ) return 0;
0 0 if( ExpandBlob(pVal) ) return 0;
80045 0 403 if( pVal->enc != (enc & ~SQLITE_UTF16_ALIGNED) ){
80048 0 403 if( (enc & SQLITE_UTF16_ALIGNED)!=0 && 1==(1&SQLITE_PTR_TO_INT(pVal->z)) ){
0 0 if( (enc & SQLITE_UTF16_ALIGNED)!=0 && 1==(1&SQLITE_PTR_TO_INT(pVal->z)) ){
80050 0 0 if( sqlite3VdbeMemMakeWriteable(pVal)!=SQLITE_OK ){
80061 756 0 if( pVal->enc==(enc & ~SQLITE_UTF16_ALIGNED) ){
80080 17 9257 if( !pVal ) return 0;
80084 8466 791 if( (pVal->flags&(MEM_Str|MEM_Term))==(MEM_Str|MEM_Term) && pVal->enc==enc ){
8466 0 if( (pVal->flags&(MEM_Str|MEM_Term))==(MEM_Str|MEM_Term) && pVal->enc==enc ){
80088 35 756 if( pVal->flags&MEM_Null ){
80099 47 0 if( p ){
80304 0 0 while( (op = pExpr->op)==TK_UPLUS || op==TK_SPAN ) pExpr = pExpr->pLeft;
0 0 while( (op = pExpr->op)==TK_UPLUS || op==TK_SPAN ) pExpr = pExpr->pLeft;
80305 0 0 if( op==TK_REGISTER ) op = pExpr->op2;
80313 0 0 if( op==TK_CAST ){
80319 0 0 if( *ppVal ){
80329 0 0 if( op==TK_UMINUS
80330 0 0 && (pExpr->pLeft->op==TK_INTEGER || pExpr->pLeft->op==TK_FLOAT) ){
0 0 && (pExpr->pLeft->op==TK_INTEGER || pExpr->pLeft->op==TK_FLOAT) ){
80337 0 0 if( op==TK_STRING || op==TK_FLOAT || op==TK_INTEGER ){
0 0 if( op==TK_STRING || op==TK_FLOAT || op==TK_INTEGER ){
0 0 if( op==TK_STRING || op==TK_FLOAT || op==TK_INTEGER ){
80339 0 0 if( pVal==0 ) goto no_mem;
80340 0 0 if( ExprHasProperty(pExpr, EP_IntValue) ){
80344 0 0 if( zVal==0 ) goto no_mem;
80347 0 0 if( (op==TK_INTEGER || op==TK_FLOAT ) && affinity==SQLITE_AFF_BLOB ){
0 0 if( (op==TK_INTEGER || op==TK_FLOAT ) && affinity==SQLITE_AFF_BLOB ){
0 0 if( (op==TK_INTEGER || op==TK_FLOAT ) && affinity==SQLITE_AFF_BLOB ){
80353 0 0 if( pVal->flags & (MEM_Int|MEM_IntReal|MEM_Real) ){
80358 0 0 if( enc!=SQLITE_UTF8 ){
80361 0 0 }else if( op==TK_UMINUS ) {
80363 0 0 if( SQLITE_OK==valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx)
80364 0 0 && pVal!=0
80367 0 0 if( pVal->flags & MEM_Real ){
80369 0 0 }else if( pVal->u.i==SMALLEST_INT64 ){
80381 0 0 }else if( op==TK_NULL ){
80383 0 0 if( pVal==0 ) goto no_mem;
80387 0 0 else if( op==TK_BLOB ){
80393 0 0 if( !pVal ) goto no_mem;
80406 0 0 else if( op==TK_TRUEFALSE ){
80409 0 0 if( pVal ){
80450 0 4721 return pExpr ? valueFromExpr(db, pExpr, enc, affinity, ppVal, 0) : 0;
80679 118 0 if( v ) sqlite3VdbeMemSetStr((Mem *)v, z, n, enc, xDel);
80686 538 47 if( !v ) return;
80697 0 0 return valueToText(pVal, enc)!=0 ? pVal->n : 0;
80702 3426 775 if( (p->flags & MEM_Str)!=0 && pVal->enc==enc ){
3426 0 if( (p->flags & MEM_Str)!=0 && pVal->enc==enc ){
80705 775 0 if( (p->flags & MEM_Blob)!=0 ){
80706 0 775 if( p->flags & MEM_Zero ){
80712 0 0 if( p->flags & MEM_Null ) return 0;
80746 0 5389 if( p==0 ) return 0;
80749 1167 4222 if( db->pVdbe ){
80788 24 4840 if( p==0 ) return;
80790 11 4829 if( (prepFlags & SQLITE_PREPARE_SAVESQL)==0 ){
80890 41 5389 : (sqlite3_int64)(1024/sizeof(Op)));
80895 0 5430 if( nNew > p->db->aLimit[SQLITE_LIMIT_VDBE_OP] ){
80903 5430 0 if( pNew ){
80908 5430 0 return (pNew ? SQLITE_OK : SQLITE_NOMEM_BKPT);
80947 0 5430 if( growOpArray(p, 1) ) return 1;
80958 5430 64762 if( p->nOpAlloc<=i ){
81029 1545 306 for(i=0; (c = zTypes[i])!=0; i++){
81030 847 698 if( c=='s' ){
81031 594 253 const char *z = va_arg(ap, const char*);
81032 147 700 sqlite3VdbeAddOp4(p, z==0 ? OP_Null : OP_String8, 0, iDest+i, 0, z, 0);
81033 682 16 }else if( c=='i' ){
81034 372 310 sqlite3VdbeAddOp2(p, OP_Integer, va_arg(ap, int), iDest+i);
81087 0 700 if( pCtx==0 ){
81098 0 700 addr = sqlite3VdbeAddOp4(v, eCallCtx ? OP_PureFunc : OP_Function,
81119 2192 0 if( p4copy ) memcpy(p4copy, zP4, 8);
81130 1986 0 if( pParse->addrExplain==0 ) return 0;
81156 0 814 if( pParse->explain==2 )
81171 0 0 if( bPush){
81198 612 302 for(j=0; jdb->nDb; j++) sqlite3VdbeUsesBtree(p, j);
81214 9440 0 if( p->db->mallocFailed==0 ){
81275 0 4821 if( p->aLabel==0 ){
81297 4821 6526 if( p->nLabelAlloc + p->nLabel < 0 ){
81317 0 0 for(i=1; ALWAYS(inOp); i++){
81318 0 0 if( ALWAYS(p->aOp[i].opcode==OP_Expire) ){
81536 21155 43766 if( pOp->opcode<=SQLITE_MX_JUMP_OPCODE ){
81541 3225 1534 if( pOp->p2!=0 ) p->readOnly = 0;
81560 22 0 if( pOp->p2>nMaxArgs ) nMaxArgs = pOp->p2;
81568 119 29 if( n>nMaxArgs ) nMaxArgs = n;
81574 3608 12473 if( pOp->p2<0 ){
81590 5379 59542 if( pOp==p->aOp ) break;
81593 4799 580 if( aLabel ){
81776 0 36 if( p->nOp + nOp > p->nOpAlloc && growOpArray(p, nOp) ){
0 0 if( p->nOp + nOp > p->nOpAlloc && growOpArray(p, nOp) ){
81780 222 36 for(i=0; i
81785 41 181 if( (sqlite3OpcodeProperty[aOp->opcode] & OPFLG_JUMP)!=0 && aOp->p2>0 ){
41 0 if( (sqlite3OpcodeProperty[aOp->opcode] & OPFLG_JUMP)!=0 && aOp->p2>0 ){
81856 12411 0 if( p->nOp>0 ) p->aOp[p->nOp-1].p5 = p5;
81881 27 14 if( addr==p->nOp-1 ){
81901 25 951 if( (pDef->funcFlags & SQLITE_FUNC_EPHEM)!=0 ){
81910 0 0 if( p->szMalloc ) sqlite3DbFree(db, p->zMalloc);
81932 762 0 if( db->pnBytesFreed==0 ) sqlite3KeyInfoUnref((KeyInfo*)p4);
81946 0 0 if( db->pnBytesFreed==0 ){
81954 192 0 if( db->pnBytesFreed==0 ) sqlite3VtabUnlock((VTable *)p4);
81967 5389 0 if( aOp ){
81970 8298 56659 if( pOp->p4type <= P4_FREE_IF_LE ) freeP4(db, pOp->p4type, pOp->p4.p);
81974 5389 59568 if( pOp==aOp ) break;
82003 0 801 if( p->db->mallocFailed ) return 0;
82018 8 0 if( p->nOp>0 && p->aOp[p->nOp-1].opcode==op ){
0 8 if( p->nOp>0 && p->aOp[p->nOp-1].opcode==op ){
82083 1246 4108 if( pOp->p4type ){
82088 1246 4108 if( n<0 ){
82091 3495 613 if( n==0 ) n = sqlite3Strlen30(zP4);
82103 0 12067 if( db->mallocFailed ){
82104 0 0 if( n!=P4_VTAB ) freeP4(db, n, (void*)*(char**)&zP4);
82109 1802 10265 if( addr<0 ){
82113 7959 4108 if( n>=0 || pOp->p4type ){
1246 6713 if( n>=0 || pOp->p4type ){
82117 1246 5467 if( n==P4_INT32 ){
82122 5377 90 }else if( zP4!=0 ){
82126 192 5185 if( n==P4_VTAB ) sqlite3VtabLock((VTable*)zP4);
82143 0 3140 if( p->db->mallocFailed ){
82165 77 0 if( pKeyInfo ) sqlite3VdbeAppendP4(v, pKeyInfo, P4_KEYINFO);
82230 237 6288 if( addr<0 ){
82234 0 6525 if( p->db->mallocFailed ){
82443 0 0 for(j=0; jnKeyField; j++){
82445 0 0 const char *zColl = pColl ? pColl->zName : "";
82446 0 0 if( strcmp(zColl, "BINARY")==0 ) zColl = "B";
82447 0 0 sqlite3_str_appendf(&x, ",%s%s%s",
0 0 sqlite3_str_appendf(&x, ",%s%s%s",
82493 0 0 if( pMem->flags & MEM_Str ){
82495 0 0 }else if( pMem->flags & (MEM_Int|MEM_IntReal) ){
82497 0 0 }else if( pMem->flags & MEM_Real ){
82499 0 0 }else if( pMem->flags & MEM_Null ){
82519 0 0 for(i=1; i<=n; i++){
82520 0 0 sqlite3_str_appendf(&x, "%c%u", (i==1 ? '[' : ','), ai[i]);
82537 0 0 if( zP4 ) sqlite3_str_appendall(&x, zP4);
82538 0 0 if( (x.accError & SQLITE_NOMEM)!=0 ){
82557 2753 2917 if( i!=1 && sqlite3BtreeSharable(p->db->aDb[i].pBt) ){
0 2753 if( i!=1 && sqlite3BtreeSharable(p->db->aDb[i].pBt) ){
82589 18706 0 if( DbMaskAllZero(p->lockMask) ) return; /* The common case */
82593 0 0 for(i=0; i
82594 0 0 if( i!=1 && DbMaskTest(p->lockMask,i) && ALWAYS(aDb[i].pBt!=0) ){
0 0 if( i!=1 && DbMaskTest(p->lockMask,i) && ALWAYS(aDb[i].pBt!=0) ){
0 0 if( i!=1 && DbMaskTest(p->lockMask,i) && ALWAYS(aDb[i].pBt!=0) ){
82613 0 0 for(i=0; i
82614 0 0 if( i!=1 && DbMaskTest(p->lockMask,i) && ALWAYS(aDb[i].pBt!=0) ){
0 0 if( i!=1 && DbMaskTest(p->lockMask,i) && ALWAYS(aDb[i].pBt!=0) ){
0 0 if( i!=1 && DbMaskTest(p->lockMask,i) && ALWAYS(aDb[i].pBt!=0) ){
82620 18706 0 if( DbMaskAllZero(p->lockMask) ) return; /* The common case */
82674 7943 4825 if( N>0 ){
82683 48015 7943 }while( (--N)>0 );
82696 13653 0 if( p && N ){
8828 4825 if( p && N ){
82699 0 8828 if( db->pnBytesFreed ){
82701 0 0 if( p->szMalloc ) sqlite3DbFree(db, p->zMalloc);
82702 0 0 }while( (++p)
82723 51 63258 if( p->flags&(MEM_Agg|MEM_Dyn) ){
82727 33381 29877 }else if( p->szMalloc ){
82737 54481 8828 }while( (++p)
82801 0 0 if( pSub!=0 ){
82802 0 0 if( pSub->flags&MEM_Blob ){
82808 0 0 for(i=0; i
82815 0 0 if( i>=nRow ){
82820 0 0 if( inOp ){
82831 0 0 for(j=0; i>=apSub[j]->nOp; j++){
82843 0 0 if( pSub!=0 && aOp[i].p4type==P4_SUBPROGRAM ){
0 0 if( pSub!=0 && aOp[i].p4type==P4_SUBPROGRAM ){
82846 0 0 for(j=0; j
82847 0 0 if( apSub[j]==aOp[i].p4.pProgram ) break;
82849 0 0 if( j==nSub ){
82851 0 0 if( p->rc!=SQLITE_OK ){
82862 0 0 if( eMode==0 ) break;
82873 0 0 if( aOp[i].opcode==OP_Explain ) break;
82874 0 0 if( aOp[i].opcode==OP_Init && iPc>1 ) break;
0 0 if( aOp[i].opcode==OP_Init && iPc>1 ) break;
82894 0 0 for(i=0; inChildCsr; i++){
82895 0 0 if( apCsr[i] ) sqlite3VdbeFreeCursorNN(p->v, apCsr[i]);
82929 0 0 int bListSubprogs = (p->explain==1 || (db->flags & SQLITE_TriggerEQP)!=0);
0 0 int bListSubprogs = (p->explain==1 || (db->flags & SQLITE_TriggerEQP)!=0);
82944 0 0 if( p->rc==SQLITE_NOMEM ){
82951 0 0 if( bListSubprogs ){
82965 0 0 if( rc==SQLITE_OK ){
82967 0 0 if( AtomicLoad(&db->u1.isInterrupted) ){
82973 0 0 if( p->explain==2 ){
83000 0 0 if( db->mallocFailed ){
83092 21986 1218 if( pBuf==0 ){
83094 21516 470 if( nByte <= p->nFree ){
83195 986 4393 if( nCursor==0 && nMem>0 ) nMem++; /* Space for aMem[0] even if not used */
695 291 if( nCursor==0 && nMem>0 ) nMem++; /* Space for aMem[0] even if not used */
83209 335 5044 p->usesStmtJournal = (u8)(pParse->isMultiWrite && pParse->mayAbort);
310 25 p->usesStmtJournal = (u8)(pParse->isMultiWrite && pParse->mayAbort);
83210 0 5379 if( pParse->explain ){
83216 0 0 if( nMem<10 ) nMem = 10;
83218 0 0 if( pParse->explain==2 ){
83227 0 0 for(i=iFirst; i
83252 422 4957 if( x.nNeeded ){
83255 422 0 if( !db->mallocFailed ){
83266 0 5379 if( db->mallocFailed ){
83289 677 235 if( pCx ) sqlite3VdbeFreeCursorNN(p,pCx);
83320 7256 6264 for(i=0; inCursor; i++){
83322 5878 1378 if( pC ){
83364 0 6264 if( p->pFrame ){
83366 0 0 for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent);
83374 0 6264 while( p->pDelFrame ){
83381 0 6264 if( p->pAuxData ) sqlite3VdbeDeleteAuxData(p->db, &p->pAuxData, -1, 0);
83395 4 2006 if( p->nResColumn ){
83402 0 2010 if( p->aColName==0 ) return;
83427 0 22353 if( p->db->mallocFailed ){
83473 7233 0 for(i=0; rc==SQLITE_OK && inDb; i++){
4855 2378 for(i=0; rc==SQLITE_OK && inDb; i++){
83475 1079 3776 if( sqlite3BtreeTxnState(pBt)==SQLITE_TXN_WRITE ){
83491 878 201 if( db->aDb[i].safety_level!=PAGER_SYNCHRONOUS_OFF
83492 95 783 && aMJNeeded[sqlite3PagerGetJournalMode(pPager)]
83493 95 0 && sqlite3PagerIsMemdb(pPager)==0
83502 0 2378 if( rc!=SQLITE_OK ){
83507 1061 1317 if( needXcommit && db->xCommitCallback ){
10 1051 if( needXcommit && db->xCommitCallback ){
83509 4 6 if( rc ){
83523 323 2051 if( 0==sqlite3Strlen30(sqlite3BtreeGetFilename(db->aDb[0].pBt))
83524 323 0 || nTrans<=1
83526 7221 0 for(i=0; rc==SQLITE_OK && inDb; i++){
4847 2374 for(i=0; rc==SQLITE_OK && inDb; i++){
83528 2833 2014 if( pBt ){
83538 7221 0 for(i=0; rc==SQLITE_OK && inDb; i++){
4847 2374 for(i=0; rc==SQLITE_OK && inDb; i++){
83540 2833 2014 if( pBt ){
83544 2374 0 if( rc==SQLITE_OK ){
83567 0 0 if( zSuper==0 ) return SQLITE_NOMEM_BKPT;
83571 0 0 if( retryCount ){
83572 0 0 if( retryCount>100 ){
83576 0 0 }else if( retryCount==1 ){
83589 0 0 }while( rc==SQLITE_OK && res );
0 0 }while( rc==SQLITE_OK && res );
83590 0 0 if( rc==SQLITE_OK ){
83597 0 0 if( rc!=SQLITE_OK ){
83608 0 0 for(i=0; inDb; i++){
83610 0 0 if( sqlite3BtreeTxnState(pBt)==SQLITE_TXN_WRITE ){
83612 0 0 if( zFile==0 ){
83618 0 0 if( rc!=SQLITE_OK ){
83630 0 0 if( 0==(sqlite3OsDeviceCharacteristics(pSuperJrnl)&SQLITE_IOCAP_SEQUENTIAL)
83631 0 0 && SQLITE_OK!=(rc = sqlite3OsSync(pSuperJrnl, SQLITE_SYNC_NORMAL))
83649 0 0 for(i=0; rc==SQLITE_OK && inDb; i++){
0 0 for(i=0; rc==SQLITE_OK && inDb; i++){
83651 0 0 if( pBt ){
83657 0 0 if( rc!=SQLITE_OK ){
83669 0 0 if( rc ){
83682 0 0 for(i=0; inDb; i++){
83684 0 0 if( pBt ){
83750 108 54 for(i=0; inDb; i++){
83753 54 54 if( pBt ){
83754 0 54 if( eOp==SAVEPOINT_ROLLBACK ){
83757 54 0 if( rc2==SQLITE_OK ){
83760 54 0 if( rc==SQLITE_OK ){
83768 54 0 if( rc==SQLITE_OK ){
83769 0 54 if( eOp==SAVEPOINT_ROLLBACK ){
83772 54 0 if( rc==SQLITE_OK ){
83780 0 54 if( eOp==SAVEPOINT_ROLLBACK ){
83787 108 3187 if( p->db->nStatement && p->iStatement ){
54 54 if( p->db->nStatement && p->iStatement ){
83807 2587 5654 if( (deferred && (db->nDeferredCons+db->nDeferredImmCons)>0)
2587 0 if( (deferred && (db->nDeferredCons+db->nDeferredImmCons)>0)
83808 5654 2587 || (!deferred && p->nFkConstraint>0)
1 5653 || (!deferred && p->nFkConstraint>0)
83813 0 1 if( (p->prepFlags & SQLITE_PREPARE_SAVESQL)==0 ) return SQLITE_ERROR;
83854 0 6264 if( db->mallocFailed ){
83862 5692 572 if( p->bIsReader ){
83871 38 5654 if( p->rc ){
83874 38 0 || mrc==SQLITE_IOERR
83875 38 0 || mrc==SQLITE_INTERRUPT
83876 38 0 || mrc==SQLITE_FULL;
0 38 || mrc==SQLITE_FULL;
83880 0 5692 if( isSpecialError ){
83893 0 0 if( !p->readOnly || mrc!=SQLITE_INTERRUPT ){
0 0 if( !p->readOnly || mrc!=SQLITE_INTERRUPT ){
83894 0 0 if( (mrc==SQLITE_NOMEM || mrc==SQLITE_FULL) && p->usesStmtJournal ){
0 0 if( (mrc==SQLITE_NOMEM || mrc==SQLITE_FULL) && p->usesStmtJournal ){
0 0 if( (mrc==SQLITE_NOMEM || mrc==SQLITE_FULL) && p->usesStmtJournal ){
83909 38 5654 if( p->rc==SQLITE_OK || (p->errorAction==OE_Fail && !isSpecialError) ){
0 38 if( p->rc==SQLITE_OK || (p->errorAction==OE_Fail && !isSpecialError) ){
0 0 if( p->rc==SQLITE_OK || (p->errorAction==OE_Fail && !isSpecialError) ){
83919 547 5145 if( !sqlite3VtabInSync(db)
259 288 if( !sqlite3VtabInSync(db)
83920 2812 2592 && db->autoCommit
83921 2397 415 && db->nVdbeWrite==(p->readOnly==0)
83923 19 2378 if( p->rc==SQLITE_OK || (p->errorAction==OE_Fail && !isSpecialError) ){
0 19 if( p->rc==SQLITE_OK || (p->errorAction==OE_Fail && !isSpecialError) ){
0 0 if( p->rc==SQLITE_OK || (p->errorAction==OE_Fail && !isSpecialError) ){
83925 0 2378 if( rc!=SQLITE_OK ){
83926 0 0 if( NEVER(p->readOnly) ){
83931 0 2378 }else if( db->flags & SQLITE_CorruptRdOnly ){
83941 0 2378 if( rc==SQLITE_BUSY && p->readOnly ){
0 0 if( rc==SQLITE_BUSY && p->readOnly ){
83944 4 2374 }else if( rc!=SQLITE_OK ){
83959 3295 0 }else if( eStatementOp==0 ){
83960 20 3275 if( p->rc==SQLITE_OK || p->errorAction==OE_Fail ){
0 20 if( p->rc==SQLITE_OK || p->errorAction==OE_Fail ){
83962 20 0 }else if( p->errorAction==OE_Abort ){
83978 3295 2397 if( eStatementOp ){
83980 0 3295 if( rc ){
83981 0 0 if( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT ){
0 0 if( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT ){
83996 3354 2338 if( p->changeCntOn ){
83997 3354 0 if( eStatementOp!=SAVEPOINT_ROLLBACK ){
84011 3728 2536 if( !p->readOnly ) db->nVdbeWrite--;
84012 5692 572 if( p->bIsReader ) db->nVdbeRead--;
84018 0 6264 if( db->mallocFailed ){
84031 7 6257 return (p->rc==SQLITE_BUSY ? SQLITE_BUSY : SQLITE_OK);
84054 76 375 if( p->zErrMsg ){
84057 14 62 if( db->pErr==0 ) db->pErr = sqlite3ValueNew(db);
84061 363 12 }else if( db->pErr ){
84113 541 7126 if( p->eVdbeState==VDBE_RUN_STATE ) sqlite3VdbeHalt(p);
84120 6264 1403 if( p->pc>=0 ){
84122 5863 401 if( db->pErr || p->zErrMsg ){
0 5863 if( db->pErr || p->zErrMsg ){
84139 38 7629 if( p->zErrMsg ){
84195 5379 10 if( p->eVdbeState>=VDBE_READY_STATE ){
84220 0 6 while( *pp ){
84222 0 0 if( (iOp<0)
84223 0 0 || (pAux->iAuxOp==iOp
84224 0 0 && pAux->iAuxArg>=0
84225 0 0 && (pAux->iAuxArg>31 || !(mask & MASKBIT32(pAux->iAuxArg))))
0 0 && (pAux->iAuxArg>31 || !(mask & MASKBIT32(pAux->iAuxArg))))
84228 0 0 if( pAux->xDeleteAux ){
84250 2006 3383 if( p->aColName ){
84254 0 5389 for(pSub=p->pProgram; pSub; pSub=pNext){
84259 5379 10 if( p->eVdbeState!=VDBE_INIT_STATE ){
84261 22 5357 if( p->pVList ) sqlite3DbFreeNN(db, p->pVList);
84262 422 4957 if( p->pFree ) sqlite3DbFreeNN(db, p->pFree);
84297 5389 0 if( db->pnBytesFreed==0 ){
84298 133 5256 if( p->pPrev ){
84304 1100 4289 if( p->pNext ){
84325 0 430 if( rc ) return rc;
84326 0 430 if( res!=0 ) return SQLITE_CORRUPT_BKPT;
84349 0 0 if( isDifferentRow ) p->nullRow = 1;
84359 0 1118 if( sqlite3BtreeCursorHasMoved(p->uc.pCursor) ){
84504 632 20211 if( serial_type>=128 ){
84594 84 62837 if( serial_type==6 ){
84618 0 62837 pMem->flags = IsNaN(x) ? MEM_Null : MEM_Real;
0 0 pMem->flags = IsNaN(x) ? MEM_Null : MEM_Real;
84734 0 213 if( !p ) return 0;
84762 20122 0 idx = getVarint32(aKey, szHdr);
84765 20132 0 while( idx
20132 0 while( idx
84768 20132 0 idx += getVarint32(&aKey[idx], serial_type);
84777 20122 10 if( (++u)>=p->nField ) break;
84779 0 20122 if( d>(u32)nKey && u ){
0 0 if( d>(u32)nKey && u ){
84950 2373 0 if( pMem1->enc==pColl->enc ){
84965 0 0 if( (v1==0 || v2==0) ){
0 0 if( (v1==0 || v2==0) ){
84966 0 0 if( prcErr ) *prcErr = SQLITE_NOMEM_BKPT;
84983 0 0 for(i=0; i
84984 0 0 if( z[i] ) return 0;
85006 0 191 if( (pB1->flags|pB2->flags) & MEM_Zero ){
85007 0 0 if( pB1->flags & pB2->flags & MEM_Zero ){
85009 0 0 }else if( pB1->flags & MEM_Zero ){
85010 0 0 if( !isAllZero(pB2->z, pB2->n) ) return -1;
85013 0 0 if( !isAllZero(pB1->z, pB1->n) ) return +1;
85018 0 191 if( c ) return c;
85033 0 0 if( x
85034 0 0 if( x>r ) return +1; /*NO_TEST*/ /* work around bugs in gcov */
85072 25 2409 if( combined_flags&MEM_Null ){
85078 541 1868 if( combined_flags&(MEM_Int|MEM_Real|MEM_IntReal) ){
85082 405 136 if( (f1 & f2 & (MEM_Int|MEM_IntReal))!=0 ){
85085 44 361 if( pMem1->u.i < pMem2->u.i ) return -1;
85086 21 340 if( pMem1->u.i > pMem2->u.i ) return +1;
85089 0 136 if( (f1 & f2 & MEM_Real)!=0 ){
85090 0 0 if( pMem1->u.r < pMem2->u.r ) return -1;
85091 0 0 if( pMem1->u.r > pMem2->u.r ) return +1;
85094 16 120 if( (f1&(MEM_Int|MEM_IntReal))!=0 ){
85097 0 16 if( (f2&MEM_Real)!=0 ){
85099 0 16 }else if( (f2&(MEM_Int|MEM_IntReal))!=0 ){
85100 0 0 if( pMem1->u.i < pMem2->u.i ) return -1;
85101 0 0 if( pMem1->u.i > pMem2->u.i ) return +1;
85107 120 0 if( (f1&MEM_Real)!=0 ){
85108 0 120 if( (f2&(MEM_Int|MEM_IntReal))!=0 ){
85122 1868 0 if( combined_flags&MEM_Str ){
85123 0 1868 if( (f1 & MEM_Str)==0 ){
85126 0 1868 if( (f2 & MEM_Str)==0 ){
85140 1677 191 if( pColl ){
85232 60 36047 if( bSkip ){
85234 60 0 if( s1<0x80 ){
85244 36047 0 if( (szHdr1 = aKey1[0])<0x80 ){
85252 0 36107 if( d1>(unsigned)nKey1 ){
85267 543 35583 if( pRhs->flags & (MEM_Int|MEM_IntReal) ){
85272 0 543 if( serial_type>=10 ){
85274 8 535 }else if( serial_type==0 ){
85276 0 535 }else if( serial_type==7 ){
85282 96 439 if( lhs
85284 4 435 }else if( lhs>rhs ){
85291 34839 744 else if( pRhs->flags & MEM_Real ){
85293 0 34839 if( serial_type>=10 ){
85299 0 34839 }else if( serial_type==0 ){
85303 34839 0 if( serial_type==7 ){
85304 17463 17376 if( mem1.u.ru.r ){
85306 17376 0 }else if( mem1.u.r>pRhs->u.r ){
85316 702 42 else if( pRhs->flags & MEM_Str ){
85317 0 702 getVarint32NR(&aKey1[idx1], serial_type);
85319 6 696 if( serial_type<12 ){
85321 0 696 }else if( !(serial_type & 0x01) ){
85327 696 0 if( (d1+mem1.n) > (unsigned)nKey1
85328 0 696 || (pKeyInfo = pPKey2->pKeyInfo)->nAllField<=i
85332 696 0 }else if( pKeyInfo->aColl[i] ){
85343 0 0 if( rc==0 ) rc = mem1.n - pRhs->n;
85349 0 42 else if( pRhs->flags & MEM_Blob ){
85351 0 0 getVarint32NR(&aKey1[idx1], serial_type);
85353 0 0 if( serial_type<12 || (serial_type & 0x01) ){
0 0 if( serial_type<12 || (serial_type & 0x01) ){
85359 0 0 if( (d1+nStr) > (unsigned)nKey1 ){
85362 0 0 }else if( pRhs->flags & MEM_Zero ){
85363 0 0 if( !isAllZero((const char*)&aKey1[d1],nStr) ){
85371 0 0 if( rc==0 ) rc = nStr - pRhs->n;
85382 35599 527 if( rc!=0 ){
85384 17430 18169 if( sortFlags ){
85385 0 17430 if( (sortFlags & KEYINFO_ORDER_BIGNULL)==0
85386 0 0 || ((sortFlags & KEYINFO_ORDER_DESC)
85387 0 0 !=(serial_type==0 || (pRhs->flags&MEM_Null)))
0 0 !=(serial_type==0 || (pRhs->flags&MEM_Null)))
85398 508 19 if( i==pPKey2->nField ) break;
85402 19 0 }while( idx1<(unsigned)szHdr1 && d1<=(unsigned)nKey1 );
19 0 }while( idx1<(unsigned)szHdr1 && d1<=(unsigned)nKey1 );
85506 378 114 if( v>lhs ){
85508 2 112 }else if( v
85510 55 57 }else if( pPKey2->nField>1 ){
85546 2 11 if( serial_type<12 ){
85547 0 2 if( serial_type<0 ){
85549 0 0 if( serial_type>=12 ) goto vrcs_restart;
85553 0 11 }else if( !(serial_type & 0x01) ){
85561 0 11 if( (szHdr + nStr) > nKey1 ){
85568 0 11 if( res>0 ){
85570 1 10 }else if( res<0 ){
85574 4 6 if( res==0 ){
85575 0 4 if( pPKey2->nField>1 ){
85581 0 6 }else if( res>0 ){
85615 283 0 if( p->pKeyInfo->nAllField<=13 ){
85617 0 283 if( p->pKeyInfo->aSortFlags[0] ){
85618 0 0 if( p->pKeyInfo->aSortFlags[0] & KEYINFO_ORDER_BIGNULL ){
85627 234 49 if( (flags & MEM_Int) ){
85634 33 16 if( (flags & (MEM_Real|MEM_IntReal|MEM_Null|MEM_Blob))==0
85635 15 18 && p->pKeyInfo->aColl[0]==0
85675 0 450 if( rc ){
85680 0 450 getVarint32NR((u8*)m.z, szHdr);
85685 450 0 if( unlikely(szHdr<3 || szHdr>(unsigned)m.n) ){
450 0 if( unlikely(szHdr<3 || szHdr>(unsigned)m.n) ){
85691 0 450 getVarint32NR((u8*)&m.z[szHdr-1], typeRowid);
85700 450 0 if( unlikely(typeRowid<1 || typeRowid>9 || typeRowid==7) ){
450 0 if( unlikely(typeRowid<1 || typeRowid>9 || typeRowid==7) ){
450 0 if( unlikely(typeRowid<1 || typeRowid>9 || typeRowid==7) ){
85705 0 450 if( unlikely((u32)m.n
85751 0 0 if( nCellKey<=0 || nCellKey>0x7fffffff ){
0 0 if( nCellKey<=0 || nCellKey>0x7fffffff ){
85757 0 0 if( rc ){
85803 191 507 for(p = db->pVdbe; p; p=p->pNext){
85832 0 0 if( v ){
85835 0 0 if( 0==(pMem->flags & MEM_Null) ){
85837 0 0 if( pRet ){
85855 0 0 if( iVar>=32 ){
85877 0 0 if( pOp->opcode==OP_PureFunc ){
85880 0 0 if( pOp->p5 & NC_IsCheck ){
85882 0 0 }else if( pOp->p5 & NC_GenCol ){
85903 0 2123 if( pVtab->zErrMsg ){
86037 0 0 return p==0 || p->expired;
0 0 return p==0 || p->expired;
86047 0 17873 if( p->db==0 ){
86055 0 16069 if( p==0 ){
86078 6 0 if( db->xProfile ){
86082 0 6 if( db->mTrace & SQLITE_TRACE_PROFILE ){
86108 1266 1804 if( pStmt==0 ){
86115 0 1804 if( vdbeSafety(v) ) return SQLITE_MISUSE_BKPT;
86117 0 1804 checkProfileCallback(db, v);
86135 104 2288 if( pStmt==0 ){
86141 0 2288 checkProfileCallback(db, v);
86162 0 0 for(i=0; inVar; i++){
86167 0 0 if( p->expmask ){
86181 782 0 if( p->flags & (MEM_Blob|MEM_Str) ){
86182 0 782 if( ExpandBlob(p)!=SQLITE_OK ){
0 0 if( ExpandBlob(p)!=SQLITE_OK ){
86187 780 2 return p->n ? p->z : 0;
86209 0 0 return ((pMem->flags & MEM_Subtype) ? pMem->eSubtype : 0);
86213 16 0 if( (p->flags&(MEM_TypeMask|MEM_Term|MEM_Subtype)) ==
86215 16 0 && zPType!=0
86216 16 0 && p->eSubtype=='p'
86217 16 0 && strcmp(p->u.zPType, zPType)==0
86341 0 0 if( pOrig==0 ) return 0;
86343 0 0 if( pNew==0 ) return 0;
86348 0 0 if( pNew->flags&(MEM_Str|MEM_Blob) ){
86351 0 0 if( sqlite3VdbeMemMakeWriteable(pNew)!=SQLITE_OK ){
86355 0 0 }else if( pNew->flags & MEM_Null ){
86390 0 1274 if( rc ){
86391 0 0 if( rc==SQLITE_TOOBIG ){
86402 0 1274 if( sqlite3VdbeMemTooBig(pOut) ){
86412 0 0 if( xDel==0 ){
86414 0 0 }else if( xDel==SQLITE_TRANSIENT ){
86440 0 0 if( n>0x7fffffff ){
86510 0 0 if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE;
86511 0 0 if( n>0x7fffffff ){
86551 0 102 if( sqlite3VdbeMemTooBig(pOut) ){
86561 0 1 if( n>(u64)pOut->db->aLimit[SQLITE_LIMIT_LENGTH] ){
86573 0 0 pCtx->isError = errCode ? errCode : -1;
86577 0 0 if( pCtx->pOut->flags & MEM_Null ){
86606 0 0 if( pCtx->pOut->flags & MEM_Int ){
86622 6400 3120 for(i=0; inDb; i++){
86624 3828 2572 if( pBt ){
86629 0 3828 if( nEntry>0 && db->xWalCallback && rc==SQLITE_OK ){
0 0 if( nEntry>0 && db->xWalCallback && rc==SQLITE_OK ){
0 0 if( nEntry>0 && db->xWalCallback && rc==SQLITE_OK ){
86654 6265 6663 if( p->eVdbeState!=VDBE_RUN_STATE ){
86656 6265 0 if( p->eVdbeState==VDBE_READY_STATE ){
86657 1 6264 if( p->expired ){
86660 1 0 if( (p->prepFlags & SQLITE_PREPARE_SAVESQL)!=0 ){
86675 5174 1090 if( db->nVdbeActive==0 ){
86684 8 6256 if( (db->mTrace & (SQLITE_TRACE_PROFILE|SQLITE_TRACE_XPROFILE))!=0
86685 6 2 && !db->init.busy && p->zSql ){
6 0 && !db->init.busy && p->zSql ){
86693 3728 2536 if( p->readOnly==0 ) db->nVdbeWrite++;
86694 5692 572 if( p->bIsReader ) db->nVdbeRead++;
86699 0 0 if( ALWAYS(p->eVdbeState==VDBE_HALT_STATE) ){
86734 0 12927 if( p->explain ){
86744 7197 5730 if( rc==SQLITE_ROW ){
86752 6 5724 checkProfileCallback(db, p);
86755 5681 49 if( rc==SQLITE_DONE && db->autoCommit ){
3120 2561 if( rc==SQLITE_DONE && db->autoCommit ){
86758 0 3120 if( p->rc!=SQLITE_OK ){
86761 49 2561 }else if( rc!=SQLITE_DONE && (p->prepFlags & SQLITE_PREPARE_SAVESQL)!=0 ){
49 0 }else if( rc!=SQLITE_DONE && (p->prepFlags & SQLITE_PREPARE_SAVESQL)!=0 ){
86771 0 5730 if( SQLITE_NOMEM==sqlite3ApiExit(p->db, p->rc) ){
86773 0 0 if( (p->prepFlags & SQLITE_PREPARE_SAVESQL)!=0 ) rc = p->rc;
86796 0 12927 if( vdbeSafetyNotNull(v) ){
86801 1 12927 while( (rc = sqlite3Step(v))==SQLITE_SCHEMA
86802 1 0 && cnt++ < SQLITE_MAX_SCHEMA_RETRY ){
86805 0 1 if( rc!=SQLITE_OK ){
86816 0 0 if( !db->mallocFailed ){
86826 0 1 if( savedPc>=0 ){
86896 0 0 if( pVal==0 ) return SQLITE_MISUSE;
86898 0 0 if( pRhs==0 ) return SQLITE_MISUSE;
86899 0 0 if( bNext ){
86905 0 0 if( sqlite3BtreeEof(pRhs->pCsr) ) rc = SQLITE_DONE;
86907 0 0 if( rc==SQLITE_OK ){
86913 0 0 if( rc==SQLITE_OK ){
86917 0 0 int iOff = 1 + getVarint32(&zBuf[1], iSerial);
86920 0 0 if( (pOut->flags & MEM_Ephem)!=0 && sqlite3VdbeMemMakeWriteable(pOut) ){
0 0 if( (pOut->flags & MEM_Ephem)!=0 && sqlite3VdbeMemMakeWriteable(pOut) ){
86963 0 0 if( *piTime==0 ){
86965 0 0 if( rc ) *piTime = 0;
86977 81 138 if( nByte<=0 ){
86984 138 0 if( pMem->z ){
87000 219 500 if( (p->pMem->flags & MEM_Agg)==0 ){
87026 0 0 for(pAuxData=pCtx->pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNextAux){
87027 0 0 if( pAuxData->iAuxArg==iArg && (pAuxData->iAuxOp==pCtx->iOp || iArg<0) ){
0 0 if( pAuxData->iAuxArg==iArg && (pAuxData->iAuxOp==pCtx->iOp || iArg<0) ){
0 0 if( pAuxData->iAuxArg==iArg && (pAuxData->iAuxOp==pCtx->iOp || iArg<0) ){
87061 0 0 for(pAuxData=pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNextAux){
87062 0 0 if( pAuxData->iAuxArg==iArg && (pAuxData->iAuxOp==pCtx->iOp || iArg<0) ){
0 0 if( pAuxData->iAuxArg==iArg && (pAuxData->iAuxOp==pCtx->iOp || iArg<0) ){
0 0 if( pAuxData->iAuxArg==iArg && (pAuxData->iAuxOp==pCtx->iOp || iArg<0) ){
87066 0 0 if( pAuxData==0 ){
87068 0 0 if( !pAuxData ) goto failed;
87073 0 0 if( pCtx->isError==0 ) pCtx->isError = -1;
87074 0 0 }else if( pAuxData->xDeleteAux ){
87083 0 0 if( xDelete ){
87109 5398 4 return pVm ? pVm->nResColumn : 0;
87118 75 0 if( pVm==0 || pVm->pResultSet==0 ) return 0;
0 75 if( pVm==0 || pVm->pResultSet==0 ) return 0;
87170 0 13649 if( pVm==0 ) return (Mem*)columnNullValue();
87173 13647 2 if( pVm->pResultSet!=0 && inResColumn && i>=0 ){
13647 0 if( pVm->pResultSet!=0 && inResColumn && i>=0 ){
13647 0 if( pVm->pResultSet!=0 && inResColumn && i>=0 ){
87208 13649 0 if( p ){
87262 0 75 if( pOut->flags&MEM_Static ){
87319 3740 0 if( N=0 ){
3740 0 if( N=0 ){
87324 0 3740 if( useUtf16 ){
87334 0 3740 if( db->mallocFailed ){
87442 0 3142 if( vdbeSafetyNotNull(p) ){
87446 0 3142 if( p->eVdbeState!=VDBE_READY_STATE ){
87453 3142 0 if( i<1 || i>p->nVar ){
0 3142 if( i<1 || i>p->nVar ){
87474 0 3142 if( p->expmask!=0 && (p->expmask & (i>=31 ? 0x80000000 : (u32)1<
0 0 if( p->expmask!=0 && (p->expmask & (i>=31 ? 0x80000000 : (u32)1<
0 0 if( p->expmask!=0 && (p->expmask & (i>=31 ? 0x80000000 : (u32)1<
87496 1852 0 if( rc==SQLITE_OK ){
87497 1852 0 if( zData!=0 ){
87500 1852 0 if( rc==SQLITE_OK && encoding!=0 ){
1300 552 if( rc==SQLITE_OK && encoding!=0 ){
87503 0 1852 if( rc ){
87509 0 0 }else if( xDel!=SQLITE_STATIC && xDel!=SQLITE_TRANSIENT ){
0 0 }else if( xDel!=SQLITE_STATIC && xDel!=SQLITE_TRANSIENT ){
87545 2 0 if( rc==SQLITE_OK ){
87558 1005 0 if( rc==SQLITE_OK ){
87568 283 0 if( rc==SQLITE_OK ){
87583 0 0 if( rc==SQLITE_OK ){
87586 0 0 }else if( xDestructor ){
87609 0 0 if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE;
87632 0 0 rc = sqlite3_bind_double(pStmt, i,
87638 0 0 if( pValue->flags & MEM_Zero ){
87661 0 0 if( rc==SQLITE_OK ){
87675 0 0 if( n>(u64)p->db->aLimit[SQLITE_LIMIT_LENGTH] ){
87692 1515 7 return p ? p->nVar : 0;
87703 0 4 if( p==0 ) return 0;
87713 7 0 if( p==0 || zName==0 ) return 0;
0 7 if( p==0 || zName==0 ) return 0;
87730 0 1 for(i=0; inVar; i++){
87753 0 0 if( pFrom->nVar!=pTo->nVar ){
87757 0 0 if( pTo->expmask ){
87761 0 0 if( pFrom->expmask ){
87775 0 0 return pStmt ? ((Vdbe*)pStmt)->db : 0;
87783 0 0 return pStmt ? ((Vdbe*)pStmt)->readOnly : 1;
87791 0 0 return pStmt ? ((Vdbe*)pStmt)->explain : 0;
87799 0 0 return v!=0 && v->eVdbeState==VDBE_RUN_STATE;
0 0 return v!=0 && v->eVdbeState==VDBE_RUN_STATE;
87817 0 0 if( pStmt==0 ){
87840 0 6 if( op==SQLITE_STMTSTATUS_MEMUSED ){
87850 0 6 if( resetFlag ) pVdbe->aCounter[op] = 0;
87860 1678 0 return p ? p->zSql : 0;
87878 0 0 if( zSql ){
88209 44 4 while( zSql[0] ){
88212 4 40 if( tokenType==TK_VARIABLE ){
88264 0 6 if( db->nVdbeExec>1 ){
88265 0 0 while( *zRawSql ){
88267 0 0 while( *(zRawSql++)!='\n' && *zRawSql );
0 0 while( *(zRawSql++)!='\n' && *zRawSql );
88272 2 4 }else if( p->nVar==0 ){
88275 8 0 while( zRawSql[0] ){
88281 4 4 if( nToken==0 ) break;
88282 4 0 if( zRawSql[0]=='?' ){
88283 0 4 if( nToken>1 ){
88303 0 4 if( pVar->flags & MEM_Null ){
88305 0 4 }else if( pVar->flags & (MEM_Int|MEM_IntReal) ){
88307 0 4 }else if( pVar->flags & MEM_Real ){
88309 4 0 }else if( pVar->flags & MEM_Str ){
88313 0 4 if( enc!=SQLITE_UTF8 ){
88317 0 0 if( SQLITE_NOMEM==sqlite3VdbeChangeEncoding(&utf8, SQLITE_UTF8) ){
88338 0 4 if( enc!=SQLITE_UTF8 ) sqlite3VdbeMemRelease(&utf8);
88340 0 0 }else if( pVar->flags & MEM_Zero ){
88350 0 0 for(i=0; i
88362 0 6 if( out.accError ) sqlite3_str_reset(&out);
88633 1213 5544 Mem *pMem = iCur>0 ? &p->aMem[p->nMem-iCur] : p->aMem;
88637 6044 713 nByte =
88642 202 6555 if( p->apCsr[iCur] ){ /*OPTIMIZATION-IF-FALSE*/
88654 6552 205 if( pMem->szMalloc
88655 194 6358 if( pMem->szMalloc>0 ){
88659 0 6552 if( pMem->zMalloc==0 ){
88671 6044 713 if( eCurType==CURTYPE_BTREE ){
88687 390 0 if( sqlite3RealSameAsInt(rValue,iValue) ){
88715 38 394 if( rc<=0 ) return;
88716 390 4 if( rc==1 && alsoAnInt(pRec, rValue, &pRec->u.i) ){
390 0 if( rc==1 && alsoAnInt(pRec, rValue, &pRec->u.i) ){
88721 4 0 if( bTryForInt ) sqlite3VdbeIntegerAffinity(pRec);
88754 2166 1369 if( affinity>=SQLITE_AFF_NUMERIC ){
88757 1117 1049 if( (pRec->flags & MEM_Int)==0 ){ /*OPTIMIZATION-IF-FALSE*/
88758 1117 0 if( (pRec->flags & MEM_Real)==0 ){
88759 312 805 if( pRec->flags & MEM_Str ) applyNumericAffinity(pRec,1);
88764 1359 10 }else if( affinity==SQLITE_AFF_TEXT ){
88770 41 1318 if( 0==(pRec->flags&MEM_Str) ){ /*OPTIMIZATION-IF-FALSE*/
88771 4 37 if( (pRec->flags&(MEM_Real|MEM_Int|MEM_IntReal)) ){
88790 26 10 if( eType==SQLITE_TEXT ){
88821 0 2 if( ExpandBlob(pMem) ){
0 0 if( ExpandBlob(pMem) ){
88826 0 2 if( rc<=0 ){
88827 0 0 if( rc==0 && sqlite3Atoi64(pMem->z, &ix, pMem->n, pMem->enc)<=1 ){
0 0 if( rc==0 && sqlite3Atoi64(pMem->z, &ix, pMem->n, pMem->enc)<=1 ){
88833 2 0 }else if( rc==1 && sqlite3Atoi64(pMem->z, &ix, pMem->n, pMem->enc)==0 ){
2 0 }else if( rc==1 && sqlite3Atoi64(pMem->z, &ix, pMem->n, pMem->enc)==0 ){
88848 119 43 if( pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal) ){
88854 2 41 if( pMem->flags & (MEM_Str|MEM_Blob) ){
89033 9 16888 if( VdbeMemDynamic(pOut) ){ /*OPTIMIZATION-IF-FALSE*/
89050 0 0 for(i=pOp->p3, mx=i+pOp->p4.i; i
89052 0 0 if( p->flags & (MEM_Int|MEM_IntReal) ){
89054 0 0 }else if( p->flags & MEM_Real ){
89056 0 0 }else if( p->flags & (MEM_Str|MEM_Blob) ){
89058 0 0 if( p->flags & MEM_Zero ) h += p->u.nZero;
89115 4014 9000 if( db->xProgress ){
89123 0 13014 if( p->rc==SQLITE_NOMEM ){
89136 0 13014 if( AtomicLoad(&db->u1.isInterrupted) ) goto abort_due_to_interrupt;
89320 0 19125 if( AtomicLoad(&db->u1.isInterrupted) ) goto abort_due_to_interrupt;
89328 240 19125 while( nVmStep>=nProgressLimit && db->xProgress!=0 ){
240 0 while( nVmStep>=nProgressLimit && db->xProgress!=0 ){
89331 0 240 if( db->xProgress(db->pProgressArg) ){
89382 239 81 if( pIn1->flags & MEM_Int ){
89410 22 26 if( pOp->p2==0 ) break;
89480 88 0 if( (pIn3->flags & MEM_Null)==0 ) break;
89522 0 5453 if( p->pFrame && pOp->p1==SQLITE_OK ){
0 0 if( p->pFrame && pOp->p1==SQLITE_OK ){
89529 0 0 if( pOp->p2==OE_Ignore ){
89545 4 5449 if( p->rc ){
89546 4 0 if( pOp->p5 ){
89554 3 1 if( pOp->p4.z ){
89565 0 5453 if( rc==SQLITE_BUSY ){
89570 5 5448 rc = p->rc ? SQLITE_ERROR : SQLITE_DONE;
89629 0 3027 if( encoding!=SQLITE_UTF8 ){
89632 0 0 if( rc ) goto too_big;
89633 0 0 if( SQLITE_OK!=sqlite3VdbeChangeEncoding(pOut, encoding) ) goto no_mem;
89638 0 0 if( pOp->p4type==P4_DYNAMIC ){
89646 0 3027 if( pOp->p1>db->aLimit[SQLITE_LIMIT_LENGTH] ){
89676 0 3222 if( pOp->p3>0 ){
89680 0 0 if( pIn3->u.i==pOp->p5 ) pOut->flags = MEM_Blob|MEM_Static|MEM_Term;
89727 0 1666 pOut->flags = nullFlag = pOp->p1 ? (MEM_Null|MEM_Cleared) : MEM_Null;
89732 819 1666 while( cnt>0 ){
89768 0 267 if( pOp->p4.z==0 ){
89770 0 0 if( sqlite3VdbeMemExpandBlob(pOut) ) goto no_mem;
89793 0 2939 if( sqlite3VdbeMemTooBig(pVar) ){
89797 0 2939 if( VdbeMemDynamic(pOut) ) sqlite3VdbeMemSetNull(pOut);
89843 0 149 Deephemeralize(pOut);
0 0 Deephemeralize(pOut);
89847 0 149 }while( --n );
89874 587 57 Deephemeralize(pOut);
0 587 Deephemeralize(pOut);
89875 0 644 if( (pOut->flags & MEM_Subtype)!=0 && (pOp->p5 & 0x0002)!=0 ){
0 0 if( (pOut->flags & MEM_Subtype)!=0 && (pOp->p5 & 0x0002)!=0 ){
89882 638 6 if( (n--)==0 ) break;
89942 0 0 if( (rc = sqlite3VdbeCheckFk(p,0))!=SQLITE_OK ){
89980 0 7284 if( db->mallocFailed ) goto no_mem;
89981 0 7284 if( db->mTrace & SQLITE_TRACE_ROW ){
90015 0 0 if( (flags1 | pIn2->flags) & MEM_Null ){
90019 0 0 if( (flags1 & (MEM_Str|MEM_Blob))==0 ){
90020 0 0 if( sqlite3VdbeMemStringify(pIn1,encoding,0) ) goto no_mem;
90022 0 0 }else if( (flags1 & MEM_Zero)!=0 ){
90023 0 0 if( sqlite3VdbeMemExpandBlob(pIn1) ) goto no_mem;
90027 0 0 if( (flags2 & (MEM_Str|MEM_Blob))==0 ){
90028 0 0 if( sqlite3VdbeMemStringify(pIn2,encoding,0) ) goto no_mem;
90030 0 0 }else if( (flags2 & MEM_Zero)!=0 ){
90031 0 0 if( sqlite3VdbeMemExpandBlob(pIn2) ) goto no_mem;
90035 0 0 if( nByte>db->aLimit[SQLITE_LIMIT_LENGTH] ){
90038 0 0 if( sqlite3VdbeMemGrow(pOut, (int)nByte+2, pOut==pIn2) ){
90042 0 0 if( pOut!=pIn2 ){
90050 0 0 if( encoding>SQLITE_UTF8 ) nByte &= ~1;
90117 40 41 if( (type1 & type2 & MEM_Int)!=0 ){
90121 0 40 case OP_Add: if( sqlite3AddInt64(&iB,iA) ) goto fp_math; break;
90122 0 0 case OP_Subtract: if( sqlite3SubInt64(&iB,iA) ) goto fp_math; break;
90123 0 0 case OP_Multiply: if( sqlite3MulInt64(&iB,iA) ) goto fp_math; break;
90125 0 0 if( iA==0 ) goto arithmetic_result_is_null;
90126 0 0 if( iA==-1 && iB==SMALLEST_INT64 ) goto fp_math;
0 0 if( iA==-1 && iB==SMALLEST_INT64 ) goto fp_math;
90131 0 0 if( iA==0 ) goto arithmetic_result_is_null;
90132 0 0 if( iA==-1 ) iA = 1;
90139 41 0 }else if( (flags & MEM_Null)!=0 ){
90151 0 0 if( rA==(double)0 ) goto arithmetic_result_is_null;
90158 0 0 if( iA==0 ) goto arithmetic_result_is_null;
90159 0 0 if( iA==-1 ) iA = 1;
90168 0 0 if( sqlite3IsNaN(rB) ){
90199 0 27 if( pOp->p1 ){
90247 0 0 if( (pIn1->flags | pIn2->flags) & MEM_Null ){
90254 0 0 if( op==OP_BitAnd ){
90256 0 0 }else if( op==OP_BitOr ){
90258 0 0 }else if( iB!=0 ){
90262 0 0 if( iB<0 ){
90265 0 0 iB = iB>(-64) ? -iB : 64;
90268 0 0 if( iB>=64 ){
90269 0 0 iA = (iA>=0 || op==OP_ShiftLeft) ? 0 : -1;
0 0 iA = (iA>=0 || op==OP_ShiftLeft) ? 0 : -1;
90272 0 0 if( op==OP_ShiftLeft ){
90277 0 0 if( iA<0 ) uA |= ((((u64)0xffffffff)<<32)|0xffffffff) << (64-iB);
90312 114 267 if( (pIn1->flags & MEM_Int)==0 ){
90314 4 110 if( (pIn1->flags & MEM_Int)==0 ){
90316 4 0 if( pOp->p2==0 ){
90341 0 0 if( pIn1->flags & (MEM_Int|MEM_IntReal) ){
90376 0 3 rc = ExpandBlob(pIn1);
90377 0 3 if( rc ) goto abort_due_to_error;
90379 0 3 if( rc ) goto abort_due_to_error;
90493 283 2101 if( (flags1 & flags3 & MEM_Int)!=0 ){
90496 225 58 if( pIn3->u.i > pIn1->u.i ){
90497 0 225 if( sqlite3aGTb[pOp->opcode] ){
90502 21 37 }else if( pIn3->u.i < pIn1->u.i ){
90503 20 1 if( sqlite3aLTb[pOp->opcode] ){
90509 9 28 if( sqlite3aEQb[pOp->opcode] ){
90518 49 2052 if( (flags1 | flags3)&MEM_Null ){
90520 12 37 if( pOp->p5 & SQLITE_NULLEQ ){
90528 2 10 if( (flags1&flags3&MEM_Null)!=0
90529 2 0 && (flags3&MEM_Cleared)==0
90533 0 10 res = ((flags3 & MEM_Null) ? -1 : +1); /* Operands are not equal */
90541 16 21 if( pOp->p5 & SQLITE_JUMPIFNULL ){
90551 94 1958 if( affinity>=SQLITE_AFF_NUMERIC ){
90552 94 0 if( (flags1 | flags3)&MEM_Str ){
90553 94 0 if( (flags1 & (MEM_Int|MEM_IntReal|MEM_Real|MEM_Str))==MEM_Str ){
90558 0 94 if( (flags3 & (MEM_Int|MEM_IntReal|MEM_Real|MEM_Str))==MEM_Str ){
90562 1109 849 }else if( affinity==SQLITE_AFF_TEXT ){
90563 0 1109 if( (flags1 & MEM_Str)==0 && (flags1&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){
0 0 if( (flags1 & MEM_Str)==0 && (flags1&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){
90570 0 0 if( pIn1==pIn3 ) flags3 = flags1 | MEM_Str;
90572 0 1109 if( (flags3 & MEM_Str)==0 && (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){
0 0 if( (flags3 & MEM_Str)==0 && (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){
90593 988 1076 if( res<0 ){
90595 739 337 }else if( res==0 ){
90609 1059 1005 if( res2 ){
90640 0 0 if( iCompare==0 ) goto jump_to_p2;
90697 382 0 if( (pOp->p5 & OPFLAG_PERMUTE)==0 ){
90723 382 347 for(i=0; i
90724 0 382 idx = aPermute ? aPermute[i] : (u32)i;
90733 35 347 if( iCompare ){
90734 0 35 if( (pKeyInfo->aSortFlags[i] & KEYINFO_ORDER_BIGNULL)
90735 0 0 && ((aMem[p1+idx].flags & MEM_Null) || (aMem[p2+idx].flags & MEM_Null))
0 0 && ((aMem[p1+idx].flags & MEM_Null) || (aMem[p2+idx].flags & MEM_Null))
90739 0 35 if( bRev ) iCompare = -iCompare;
90757 35 347 if( iCompare<0 ){
90759 347 0 }else if( iCompare==0 ){
90794 0 0 if( pOp->opcode==OP_And ){
90802 0 0 if( v1==2 ){
90850 0 0 if( (pIn1->flags & MEM_Null)==0 ){
90869 0 0 if( (pIn1->flags & MEM_Null)==0 ){
90896 0 322 if( p->pFrame ){
90898 0 0 if( (p->pFrame->aOnce[iAddr/8] & (1<<(iAddr & 7)))!=0 ){
90904 0 322 if( p->aOp[0].p1==pOp->p1 ){
90924 203 302 if( c ) goto jump_to_p2;
90938 239 85 if( c ) goto jump_to_p2;
90950 95 648 if( (pIn1->flags & MEM_Null)!=0 ){
90966 0 0 doTheJump = (pIn1->flags & MEM_Null)!=0 || sqlite3_value_type(pIn1)==pOp->p3;
0 0 doTheJump = (pIn1->flags & MEM_Null)!=0 || sqlite3_value_type(pIn1)==pOp->p3;
90968 0 0 if( doTheJump ) goto jump_to_p2;
90980 0 0 if( (aMem[pOp->p1].flags & MEM_Null)!=0
90981 0 0 || (aMem[pOp->p3].flags & MEM_Null)!=0
90998 545 118 if( (pIn1->flags & MEM_Null)==0 ){
91015 0 0 if( p->apCsr[pOp->p1]->nullRow ){
91111 13286 7038 if( pC->cacheStatus!=p->cacheCtr ){ /*OPTIMIZATION-IF-FALSE*/
91112 4925 8361 if( pC->nullRow ){
91113 4925 0 if( pC->eCurType==CURTYPE_PSEUDO && pC->seekResult>0 ){
4925 0 if( pC->eCurType==CURTYPE_PSEUDO && pC->seekResult>0 ){
91129 429 7932 if( pC->deferredMoveto ){
91132 0 429 if( pC->ub.aAltMap && (iMap = pC->ub.aAltMap[1+p2])>0 ){
0 0 if( pC->ub.aAltMap && (iMap = pC->ub.aAltMap[1+p2])>0 ){
91138 0 429 if( rc ) goto abort_due_to_error;
91139 0 7932 }else if( sqlite3BtreeCursorHasMoved(pCrsr) ){
91141 0 0 if( rc ) goto abort_due_to_error;
91153 13286 0 if( (aOffset[0] = pC->aRow[0])<0x80 ){
91160 0 13286 if( pC->szRow
91177 0 0 if( aOffset[0] > 98307 || aOffset[0] > pC->payloadSize ){
0 0 if( aOffset[0] > 98307 || aOffset[0] > pC->payloadSize ){
91199 0 7038 }else if( sqlite3BtreeCursorHasMoved(pC->uc.pCursor) ){
91201 0 0 if( rc ) goto abort_due_to_error;
91208 3086 3952 if( pC->nHdrParsed<=p2 ){
91212 3086 0 if( pC->iHdrOffset
91214 0 3086 if( pC->aRow==0 ){
91217 0 0 if( rc!=SQLITE_OK ) goto abort_due_to_error;
91231 21166 499 if( (pC->aType[i] = t = zHdr[0])<0x80 ){
91240 5411 16254 }while( (u32)i<=p2 && zHdr
5293 118 }while( (u32)i<=p2 && zHdr
91247 11763 4609 if( (zHdr>=zEndHdr && (zHdr>zEndHdr || offset64!=pC->payloadSize))
11763 0 if( (zHdr>=zEndHdr && (zHdr>zEndHdr || offset64!=pC->payloadSize))
11763 0 if( (zHdr>=zEndHdr && (zHdr>zEndHdr || offset64!=pC->payloadSize))
91248 0 16372 || (offset64 > pC->payloadSize)
91250 0 0 if( aOffset[0]==0 ){
91254 0 0 if( pC->aRow==0 ) sqlite3VdbeMemRelease(&sMem);
91261 0 16372 if( pC->aRow==0 ) sqlite3VdbeMemRelease(&sMem);
91270 118 16254 if( pC->nHdrParsed<=p2 ){
91273 0 118 if( pOp->p4type==P4_MEM ){
91293 0 20206 if( VdbeMemDynamic(pDest) ){
91297 20191 15 if( pC->szRow>=aOffset[p2+1] ){
91301 12885 7306 if( t<12 ){
91311 2915 4391 if( pDest->szMalloc < len+2 ){
91312 0 2915 if( len>db->aLimit[SQLITE_LIMIT_LENGTH] ) goto too_big;
91314 0 2915 if( sqlite3VdbeMemGrow(pDest, len+2, 0) ) goto no_mem;
91326 0 15 if( ((pOp->p5 & (OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG))!=0
91327 0 0 && ((t>=12 && (t&1)==0) || (pOp->p5 & OPFLAG_TYPEOFARG)!=0))
0 0 && ((t>=12 && (t&1)==0) || (pOp->p5 & OPFLAG_TYPEOFARG)!=0))
0 0 && ((t>=12 && (t&1)==0) || (pOp->p5 & OPFLAG_TYPEOFARG)!=0))
91328 0 15 || (len = sqlite3VdbeSerialTypeLen(t))==0
91345 0 15 if( len>db->aLimit[SQLITE_LIMIT_LENGTH] ) goto too_big;
91347 0 15 if( rc!=SQLITE_OK ) goto abort_due_to_error;
91359 0 0 if( aOp[0].p3>0 ){
91405 0 0 for(i=0; inCol; i++){
91406 0 0 if( aCol[i].colFlags & COLFLAG_GENERATED ){
91407 0 0 if( aCol[i].colFlags & COLFLAG_VIRTUAL ) continue;
91408 0 0 if( pOp->p3 ){ pIn1++; continue; }
91412 0 0 if( (pIn1->flags & MEM_Null)==0 ){
91415 0 0 if( (pIn1->flags & MEM_Blob)==0 ) goto vdbe_type_error;
91420 0 0 if( (pIn1->flags & MEM_Int)==0 ) goto vdbe_type_error;
91424 0 0 if( (pIn1->flags & MEM_Str)==0 ) goto vdbe_type_error;
91430 0 0 if( pIn1->flags & MEM_Int ){
91439 0 0 if( pIn1->u.i<=140737488355327LL && pIn1->u.i>=-140737488355328LL){
0 0 if( pIn1->u.i<=140737488355327LL && pIn1->u.i>=-140737488355328LL){
91447 0 0 }else if( (pIn1->flags & (MEM_Real|MEM_IntReal))==0 ){
91493 0 546 if( zAffinity[0]==SQLITE_AFF_REAL && (pIn1->flags & MEM_Int)!=0 ){
0 0 if( zAffinity[0]==SQLITE_AFF_REAL && (pIn1->flags & MEM_Int)!=0 ){
91502 0 0 if( pIn1->u.i<=140737488355327LL && pIn1->u.i>=-140737488355328LL ){
0 0 if( pIn1->u.i<=140737488355327LL && pIn1->u.i>=-140737488355328LL ){
91513 388 158 if( zAffinity[0]==0 ) break;
91595 1057 7677 if( zAffinity ){
91599 0 2823 if( zAffinity[0]==SQLITE_AFF_REAL && (pRec->flags & MEM_Int) ){
0 0 if( zAffinity[0]==SQLITE_AFF_REAL && (pRec->flags & MEM_Int) ){
91607 1766 1057 }while( zAffinity[0] );
91653 939 12767 if( pRec->flags & MEM_Null ){
91654 0 939 if( pRec->flags & MEM_Zero ){
91669 2696 10071 }else if( pRec->flags & (MEM_Int|MEM_IntReal) ){
91675 101 2595 if( i<0 ){
91686 2448 248 if( uu<=127 ){
91687 1421 1027 if( (i&1)==i && p->minWriteFileFormat>=4 ){
1421 0 if( (i&1)==i && p->minWriteFileFormat>=4 ){
91693 86 162 }else if( uu<=32767 ){
91696 0 162 }else if( uu<=8388607 ){
91699 30 132 }else if( uu<=2147483647 ){
91702 48 84 }else if( uu<=140737488355327LL ){
91707 0 84 if( pRec->flags & MEM_IntReal ){
91719 6162 3909 }else if( pRec->flags & MEM_Real ){
91728 1 3908 if( pRec->flags & MEM_Zero ){
91730 0 1 if( nData ){
91731 0 0 if( sqlite3VdbeMemExpandBlob(pRec) ) goto no_mem;
91741 8734 4972 if( pRec==pData0 ) break;
91751 8734 0 if( nHdr<=126 ){
91758 0 0 if( nVarint
91767 4740 3994 if( nByte+nZero<=pOut->szMalloc ){
91774 0 3994 if( nByte+nZero>db->aLimit[SQLITE_LIMIT_LENGTH] ){
91777 0 3994 if( sqlite3VdbeMemClearAndResize(pOut, (int)nByte) ){
91783 1 8733 if( nZero ){
91792 8734 0 if( nHdr<0x80 ){
91805 8376 5330 if( serial_type<=7 ){
91807 7437 939 if( serial_type==0 ){
91812 6162 1275 if( serial_type==7 ){
91823 7437 44138 if( i==0 ) break;
91828 4928 402 }else if( serial_type<0x80 ){
91830 3503 1425 if( serial_type>=14 && pRec->n>0 ){
3503 0 if( serial_type>=14 && pRec->n>0 ){
91837 401 1 if( pRec->n ){
91843 8734 4972 if( pRec==pLast ) break;
91871 0 10 if( pOp->p3 ){
91876 0 10 if( rc ) goto abort_due_to_error;
91912 24 10 if( p1==SAVEPOINT_BEGIN ){
91913 0 24 if( db->nVdbeWrite>0 ){
91930 0 24 if( rc!=SQLITE_OK ) goto abort_due_to_error;
91935 24 0 if( pNew ){
91941 13 11 if( db->autoCommit ){
91961 12 0 for(
91963 2 10 pSavepoint && sqlite3StrICmp(pSavepoint->zName, zName);
91968 0 10 if( !pSavepoint ){
91971 0 10 }else if( db->nVdbeWrite>0 && p1==SAVEPOINT_RELEASE ){
0 0 }else if( db->nVdbeWrite>0 && p1==SAVEPOINT_RELEASE ){
91984 8 2 int isTransaction = pSavepoint->pNext==0 && db->isTransactionSavepoint;
7 1 int isTransaction = pSavepoint->pNext==0 && db->isTransactionSavepoint;
91985 7 3 if( isTransaction && p1==SAVEPOINT_RELEASE ){
7 0 if( isTransaction && p1==SAVEPOINT_RELEASE ){
91986 0 7 if( (rc = sqlite3VdbeCheckFk(p, 1))!=SQLITE_OK ){
91990 0 7 if( sqlite3VdbeHalt(p)==SQLITE_BUSY ){
91997 0 7 if( rc ){
92005 1 2 if( p1==SAVEPOINT_ROLLBACK ){
92007 2 1 for(ii=0; iinDb; ii++){
92011 0 2 if( rc!=SQLITE_OK ) goto abort_due_to_error;
92017 6 3 for(ii=0; iinDb; ii++){
92019 0 6 if( rc!=SQLITE_OK ){
92023 1 2 if( isSchemaChange ){
92029 0 10 if( rc ) goto abort_due_to_error;
92033 2 10 while( db->pSavepoint!=pSavepoint ){
92044 9 1 if( p1==SAVEPOINT_RELEASE ){
92048 2 7 if( !isTransaction ){
92057 7 3 if( !isTransaction || p1==SAVEPOINT_ROLLBACK ){
0 7 if( !isTransaction || p1==SAVEPOINT_ROLLBACK ){
92059 0 3 if( rc!=SQLITE_OK ) goto abort_due_to_error;
92063 0 34 if( rc ) goto abort_due_to_error;
92064 7 27 if( p->eVdbeState==VDBE_HALT_STATE ){
92091 230 20 if( desiredAutoCommit!=db->autoCommit ){
92092 28 202 if( iRollback ){
92096 90 112 }else if( desiredAutoCommit && db->nVdbeWrite>0 ){
0 90 }else if( desiredAutoCommit && db->nVdbeWrite>0 ){
92104 0 202 }else if( (rc = sqlite3VdbeCheckFk(p, 1))!=SQLITE_OK ){
92109 0 230 if( sqlite3VdbeHalt(p)==SQLITE_BUSY ){
92116 226 4 if( p->rc==SQLITE_OK ){
92123 0 20 sqlite3VdbeError(p,
92124 0 0 (!desiredAutoCommit)?"cannot start a transaction within a transaction":(
92180 3819 1818 if( pOp->p2 && (db->flags & (SQLITE_QueryOnly|SQLITE_CorruptRdOnly))!=0 ){
0 3819 if( pOp->p2 && (db->flags & (SQLITE_QueryOnly|SQLITE_CorruptRdOnly))!=0 ){
92181 0 0 if( db->flags & SQLITE_QueryOnly ){
92194 5562 75 if( pBt ){
92198 9 5553 if( rc!=SQLITE_OK ){
92199 7 2 if( (rc&0xff)==SQLITE_BUSY ){
92207 276 5277 if( p->usesStmtJournal
92208 276 0 && pOp->p2
92209 249 27 && (db->autoCommit==0 || db->nVdbeRead>1)
27 222 && (db->autoCommit==0 || db->nVdbeRead>1)
92212 54 0 if( p->iStatement==0 ){
92219 54 0 if( rc==SQLITE_OK ){
92231 5628 0 if( rc==SQLITE_OK
92232 4954 674 && pOp->p5
92233 4954 0 && (iMeta!=pOp->p3 || pDb->pSchema->iGeneration!=pOp->p4.i)
0 4954 && (iMeta!=pOp->p3 || pDb->pSchema->iGeneration!=pOp->p4.i)
92255 0 0 if( db->aDb[pOp->p1].pSchema->schema_cookie!=iMeta ){
92266 0 5628 if( rc ) goto abort_due_to_error;
92329 273 351 if( pOp->p2==BTREE_SCHEMA_VERSION ){
92334 175 176 }else if( pOp->p2==BTREE_FILE_FORMAT ){
92338 87 537 if( pOp->p1==1 ){
92344 0 624 if( rc ) goto abort_due_to_error;
92445 9 2 if( pCur && pCur->pgnoRoot==(u32)pOp->p2 ){
9 0 if( pCur && pCur->pgnoRoot==(u32)pOp->p2 ){
92461 0 6027 if( p->expired==1 ){
92475 4138 1889 if( pOp->opcode==OP_OpenWrite ){
92479 3543 595 if( pDb->pSchema->file_format < p->minWriteFileFormat ){
92485 6 6021 if( pOp->p5 & OPFLAG_P2ISREG ){
92500 287 5740 if( pOp->p4type==P4_KEYINFO ){
92505 5740 0 }else if( pOp->p4type==P4_INT32 ){
92512 0 6027 if( pCur==0 ) goto no_mem;
92535 0 6036 if( rc ) goto abort_due_to_error;
92556 0 0 if( pCx==0 ) goto no_mem;
92622 7 10 if( pOp->p3>0 ){
92632 0 17 if( pCx && !pCx->noReuse && ALWAYS(pOp->p2<=pCx->nField) ){
0 0 if( pCx && !pCx->noReuse && ALWAYS(pOp->p2<=pCx->nField) ){
0 0 if( pCx && !pCx->noReuse && ALWAYS(pOp->p2<=pCx->nField) ){
92642 0 17 if( pCx==0 ) goto no_mem;
92647 17 0 if( rc==SQLITE_OK ){
92649 17 0 if( rc==SQLITE_OK ){
92655 10 7 if( (pCx->pKeyInfo = pKeyInfo = pOp->p4.pKeyInfo)!=0 ){
92659 10 0 if( rc==SQLITE_OK ){
92675 0 17 if( rc ){
92680 0 17 if( rc ) goto abort_due_to_error;
92701 0 262 if( pCx==0 ) goto no_mem;
92706 0 262 if( rc ) goto abort_due_to_error;
92722 114 312 if( (pC->seqCount++)==0 ){
92750 0 257 if( pCx==0 ) goto no_mem;
92916 0 195 if( pC->isTable ){
92927 0 0 if( (flags3 & (MEM_Int|MEM_Real|MEM_IntReal|MEM_Str))==MEM_Str ){
92936 0 0 if( (newType & (MEM_Int|MEM_IntReal))==0 ){
92938 0 0 if( (newType & MEM_Real)==0 ){
92939 0 0 if( (newType & MEM_Null) || oc>=OP_SeekGE ){
0 0 if( (newType & MEM_Null) || oc>=OP_SeekGE ){
92944 0 0 if( rc!=SQLITE_OK ) goto abort_due_to_error;
92957 0 0 if( c>0 ){
92961 0 0 if( (oc & 0x0001)==(OP_SeekGT & 0x0001) ) oc--;
92966 0 0 else if( c<0 ){
92970 0 0 if( (oc & 0x0001)==(OP_SeekLT & 0x0001) ) oc++;
92975 0 0 if( rc!=SQLITE_OK ){
92984 41 154 if( sqlite3BtreeCursorHasHint(pC->uc.pCursor, BTREE_SEEK_EQ) ){
93009 188 7 r.default_rc = ((1 & (oc - OP_SeekLT)) ? -1 : +1);
93021 0 195 if( rc!=SQLITE_OK ){
93024 41 154 if( eqOnly && r.eqSeen==0 ){
8 33 if( eqOnly && r.eqSeen==0 ){
93032 13 174 if( oc>=OP_SeekGE ){ assert( oc==OP_SeekGE || oc==OP_SeekGT );
93033 9 4 if( res<0 || (res==0 && oc==OP_SeekGT) ){
0 9 if( res<0 || (res==0 && oc==OP_SeekGT) ){
0 0 if( res<0 || (res==0 && oc==OP_SeekGT) ){
93036 1 3 if( rc!=SQLITE_OK ){
93037 1 0 if( rc==SQLITE_DONE ){
93049 174 0 if( res>0 || (res==0 && oc==OP_SeekLT) ){
0 174 if( res>0 || (res==0 && oc==OP_SeekLT) ){
0 0 if( res>0 || (res==0 && oc==OP_SeekLT) ){
93052 0 0 if( rc!=SQLITE_OK ){
93053 0 0 if( rc==SQLITE_DONE ){
93070 10 185 if( res ){
93072 33 152 }else if( eqOnly ){
93148 0 0 if( !sqlite3BtreeCursorIsValidNN(pC->uc.pCursor) ){
93174 0 0 if( rc ) goto abort_due_to_error;
93175 0 0 if( res>0 ){
93186 0 0 if( res==0 ){
93196 0 0 if( nStep<=0 ){
93207 0 0 if( rc ){
93208 0 0 if( rc==SQLITE_DONE ){
93241 0 0 if( pC->seekHitp2 ){
93248 0 0 }else if( pC->seekHit>pOp->p3 ){
93267 0 0 if( !p->apCsr[pOp->p1] ){
93373 0 0 if( pC->seekHit>=pOp->p4.i ) break;
93402 62 0 if( r.nField>0 ){
93418 0 0 rc = ExpandBlob(r.aMem);
93420 0 0 if( rc ) goto no_mem;
93422 0 0 if( pIdxKey==0 ) goto no_mem;
93428 0 62 if( rc!=SQLITE_OK ){
93435 4 58 if( pOp->opcode==OP_Found ){
93437 0 4 if( alreadyExists ) goto jump_to_p2;
93439 55 3 if( !alreadyExists ){
93443 3 0 if( pOp->opcode==OP_NoConflict ){
93447 3 3 for(ii=0; ii
93448 0 3 if( r.aMem[ii].flags & MEM_Null ){
93455 0 3 if( pOp->opcode==OP_IfNoHope ){
93520 52 515 if( (pIn3->flags & (MEM_Int|MEM_IntReal))==0 ){
93528 0 52 if( (x.flags & MEM_Int)==0 ) goto jump_to_p2;
93558 365 699 if( res!=0 ){
93560 0 365 if( pOp->p2==0 ){
93566 0 699 if( rc ) goto abort_due_to_error;
93648 3189 0 if( !pC->useRandomRowid ){
93650 0 3189 if( rc!=SQLITE_OK ){
93653 336 2853 if( res ){
93658 0 2853 if( v>=MAX_ROWID ){
93667 192 2997 if( pOp->p3 ){
93670 0 192 if( p->pFrame ){
93671 0 0 for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent);
93686 192 0 if( pMem->u.i==MAX_ROWID || pC->useRandomRowid ){
0 192 if( pMem->u.i==MAX_ROWID || pC->useRandomRowid ){
93690 0 192 if( vu.i+1 ){
93696 0 3189 if( pC->useRandomRowid ){
93709 0 0 && (res==0)
93710 0 0 && (++cnt<100));
0 0 && (++cnt<100));
93711 0 0 if( rc ) goto abort_due_to_error;
93712 0 0 if( res==0 ){
93790 3227 755 if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){
60 3167 if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){
93814 3227 755 if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++;
93815 3221 761 if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = x.nKey;
93819 3260 722 seekResult = ((pOp->p5 & OPFLAG_USESEEKRESULT) ? pC->seekResult : 0);
93820 1 3981 if( pData->flags & MEM_Zero ){
93834 0 3982 if( rc ) goto abort_due_to_error;
93835 60 3922 if( pTab ){
93838 0 60 db->xUpdateCallback(db->pUpdateArg,
93866 0 0 iKey = pOp->p3 ? aMem[pOp->p3].u.i : 0;
93868 0 0 if( rc!=SQLITE_OK ) goto abort_due_to_error;
93941 13 8 if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){
0 13 if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){
93946 0 0 if( (pOp->p5 & OPFLAG_SAVEPOSITION)!=0 && pC->isTable ){
0 0 if( (pOp->p5 & OPFLAG_SAVEPOSITION)!=0 && pC->isTable ){
93993 0 21 if( rc ) goto abort_due_to_error;
93996 13 8 if( opflags & OPFLAG_NCHANGE ){
93998 0 13 if( db->xUpdateCallback && ALWAYS(pTab!=0) && HasRowid(pTab) ){
0 0 if( db->xUpdateCallback && ALWAYS(pTab!=0) && HasRowid(pTab) ){
0 0 if( db->xUpdateCallback && ALWAYS(pTab!=0) && HasRowid(pTab) ){
94048 0 1 if( rc ) goto abort_due_to_error;
94049 1 0 if( res ) goto jump_to_p2;
94074 0 4922 if( rc ) goto abort_due_to_error;
94135 0 0 if( n>(u32)db->aLimit[SQLITE_LIMIT_LENGTH] ){
94140 0 0 if( rc ) goto abort_due_to_error;
94141 0 0 if( !pOp->p3 ) Deephemeralize(pOut);
0 0 if( !pOp->p3 ) Deephemeralize(pOut);
0 0 if( !pOp->p3 ) Deephemeralize(pOut);
94168 0 769 if( pC->nullRow ){
94171 12 757 }else if( pC->deferredMoveto ){
94174 89 668 }else if( pC->eCurType==CURTYPE_VTAB ){
94181 0 89 if( rc ) goto abort_due_to_error;
94187 0 668 if( rc ) goto abort_due_to_error;
94188 0 668 if( pC->nullRow ){
94212 0 2 if( pC==0 ){
94216 0 0 if( pC==0 ) goto no_mem;
94224 0 2 if( pC->eCurType==CURTYPE_BTREE ){
94272 2 36 if( pOp->opcode==OP_SeekEnd ){
94275 0 2 if( sqlite3BtreeCursorIsValidNN(pCrsr) ){
94283 0 38 if( rc ) goto abort_due_to_error;
94284 34 4 if( pOp->p2>0 ){
94286 33 1 if( res ) goto jump_to_p2;
94308 0 0 if( rc ) goto abort_due_to_error;
94309 0 0 if( res==0 ){
94311 0 0 if( ALWAYS(sz>=0) && sqlite3LogEst((u64)sz)p3 ) res = 1;
0 0 if( ALWAYS(sz>=0) && sqlite3LogEst((u64)sz)p3 ) res = 1;
94314 0 0 if( res ) goto jump_to_p2;
94376 262 1216 if( isSorter(pC) ){
94386 0 1478 if( rc ) goto abort_due_to_error;
94390 327 1151 if( res ) goto jump_to_p2;
94485 11277 1055 if( rc==SQLITE_OK ){
94493 0 1055 if( rc!=SQLITE_DONE ) goto abort_due_to_error;
94538 0 87 if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++;
94541 0 87 rc = ExpandBlob(pIn2);
94542 0 87 if( rc ) goto abort_due_to_error;
94547 66 21 rc = sqlite3BtreeInsert(pC->uc.pCursor, &x,
94553 0 87 if( rc) goto abort_due_to_error;
94575 0 4926 rc = ExpandBlob(pIn2);
94576 0 4926 if( rc ) goto abort_due_to_error;
94578 0 4926 if( rc) goto abort_due_to_error;
94617 0 0 if( rc ) goto abort_due_to_error;
94618 0 0 if( res==0 ){
94620 0 0 if( rc ) goto abort_due_to_error;
94621 0 0 }else if( pOp->p5 && !sqlite3WritableSchema(db) ){
0 0 }else if( pOp->p5 && !sqlite3WritableSchema(db) ){
94681 0 450 if( NEVER(rc!=SQLITE_OK) ) goto abort_due_to_error;
94683 450 0 if( !pC->nullRow ){
94686 0 450 if( rc!=SQLITE_OK ){
94689 440 10 if( pOp->opcode==OP_DeferredSeek ){
94727 1 0 if( pC->deferredMoveto ){
94729 0 1 if( rc ) goto abort_due_to_error;
94796 16 459 if( pOp->opcode
94826 475 0 if( nCellKey<=0 || nCellKey>0x7fffffff ){
0 475 if( nCellKey<=0 || nCellKey>0x7fffffff ){
94832 0 475 if( rc ) goto abort_due_to_error;
94839 460 15 if( (pOp->opcode&1)==(OP_IdxLT&1) ){
94848 42 433 if( res>0 ) goto jump_to_p2;
94888 0 5 if( db->nVdbeRead > db->nVDestroy+1 ){
94899 0 5 if( rc ) goto abort_due_to_error;
94901 0 5 if( iMoved!=0 ){
94937 32 1 if( pOp->p3 ){
94939 0 32 if( pOp->p3>0 ){
94945 0 33 if( rc ) goto abort_due_to_error;
94963 0 0 if( isSorter(pC) ){
94969 0 0 if( rc ) goto abort_due_to_error;
94997 0 271 if( rc ) goto abort_due_to_error;
95011 0 0 if( rc ) goto abort_due_to_error;
95047 0 266 if( pOp->p4.z==0 ){
95065 0 266 if( zSql==0 ){
95074 266 0 if( rc==SQLITE_OK ) rc = initData.rc;
95075 266 0 if( rc==SQLITE_OK && initData.nInitRow==0 ){
0 266 if( rc==SQLITE_OK && initData.nInitRow==0 ){
95085 0 266 if( rc ){
95087 0 0 if( rc==SQLITE_NOMEM ){
95105 0 1 if( rc ) goto abort_due_to_error;
95195 0 0 if( nErr==0 ){
95197 0 0 }else if( z==0 ){
95221 1 0 if( (pIn1->flags & MEM_Blob)==0 ){
95222 0 1 if( sqlite3VdbeMemSetRowSet(pIn1) ) goto no_mem;
95242 2 0 if( (pIn1->flags & MEM_Blob)==0
95243 1 1 || sqlite3RowSetNext((RowSet*)pIn1->z, &val)==0
95292 7 9 if( (pIn1->flags & MEM_Blob)==0 ){
95293 0 7 if( sqlite3VdbeMemSetRowSet(pIn1) ) goto no_mem;
95298 12 4 if( iSet ){
95301 0 12 if( exists ) goto jump_to_p2;
95303 10 6 if( iSet>=0 ){
95352 0 0 if( pOp->p5 ){
95354 0 0 for(pFrame=p->pFrame; pFrame && pFrame->token!=t; pFrame=pFrame->pParent);
0 0 for(pFrame=p->pFrame; pFrame && pFrame->token!=t; pFrame=pFrame->pParent);
95355 0 0 if( pFrame ) break;
95358 0 0 if( p->nFrame>=db->aLimit[SQLITE_LIMIT_TRIGGER_DEPTH] ){
95368 0 0 if( (pRt->flags&MEM_Blob)==0 ){
95376 0 0 if( pProgram->nCsr==0 ) nMem++;
95382 0 0 if( !pFrame ){
95410 0 0 for(pMem=VdbeFrameMem(pFrame); pMem!=pEnd; pMem++){
95493 0 1 if( db->flags & SQLITE_DeferFKs ){
95495 0 1 }else if( pOp->p1 ){
95516 0 2 if( pOp->p1 ){
95518 0 0 if( db->nDeferredCons==0 && db->nDeferredImmCons==0 ) goto jump_to_p2;
0 0 if( db->nDeferredCons==0 && db->nDeferredImmCons==0 ) goto jump_to_p2;
95521 2 0 if( p->nFkConstraint==0 && db->nDeferredImmCons==0 ) goto jump_to_p2;
2 0 if( p->nFkConstraint==0 && db->nDeferredImmCons==0 ) goto jump_to_p2;
95541 0 192 if( p->pFrame ){
95542 0 0 for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent);
95551 0 192 if( pIn1->u.iu.i){
95572 42 50 if( pIn1->u.i>0 ){
95605 0 0 if( x<=0 || sqlite3AddInt64(&x, pIn3->u.i>0?pIn3->u.i:0) ){
0 0 if( x<=0 || sqlite3AddInt64(&x, pIn3->u.i>0?pIn3->u.i:0) ){
95632 3 2 if( pIn1->u.i ){
95633 3 0 if( pIn1->u.i>0 ) pIn1->u.i--;
95648 78 0 if( pIn1->u.i>SMALLEST_INT64 ) pIn1->u.i--;
95650 78 0 if( pIn1->u.i==0 ) goto jump_to_p2;
95706 0 91 if( pCtx==0 ) goto no_mem;
95751 91 409 if( pCtx->pMem != pMem ){
95753 41 91 for(i=pCtx->argc-1; i>=0; i--) pCtx->argv[i] = &aMem[pOp->p2+i];
95768 0 500 if( pOp->p1 ){
95774 0 500 if( pCtx->isError ){
95775 0 0 if( pCtx->isError>0 ){
95779 0 0 if( pCtx->skipFlag ){
95782 0 0 if( i ) sqlite3VdbeMemSetInt64(&aMem[i], 1);
95788 0 0 if( rc ) goto abort_due_to_error;
95829 0 219 if( pOp->p3 ){
95839 0 219 if( rc ){
95874 0 0 if( rc ){
95875 0 0 if( rc!=SQLITE_BUSY ) goto abort_due_to_error;
95879 0 0 for(i=0, pMem = &aMem[pOp->p3]; i<3; i++, pMem++){
95923 2 0 if( eNew==PAGER_JOURNALMODE_QUERY ) eNew = eOld;
95925 0 2 if( !sqlite3PagerOkToChangeJournalMode(pPager) ) eNew = eOld;
95933 0 2 if( eNew==PAGER_JOURNALMODE_WAL
95934 0 0 && (sqlite3Strlen30(zFilename)==0 /* Temp file */
95935 0 0 || !sqlite3PagerWalSupported(pPager)) /* No shared-memory support */
95940 0 2 if( (eNew!=eOld)
95941 0 0 && (eOld==PAGER_JOURNALMODE_WAL || eNew==PAGER_JOURNALMODE_WAL)
0 0 && (eOld==PAGER_JOURNALMODE_WAL || eNew==PAGER_JOURNALMODE_WAL)
95943 0 0 if( !db->autoCommit || db->nVdbeRead>1 ){
0 0 if( !db->autoCommit || db->nVdbeRead>1 ){
95945 0 0 sqlite3VdbeError(p,
95952 0 0 if( eOld==PAGER_JOURNALMODE_WAL ){
95959 0 0 if( rc==SQLITE_OK ){
95962 0 0 }else if( eOld==PAGER_JOURNALMODE_MEMORY ){
95972 0 0 if( rc==SQLITE_OK ){
95973 0 0 rc = sqlite3BtreeSetVersion(pBt, (eNew==PAGER_JOURNALMODE_WAL ? 2 : 1));
95979 0 2 if( rc ) eNew = eOld;
95987 0 2 if( rc ) goto abort_due_to_error;
96004 0 0 rc = sqlite3RunVacuum(&p->zErrMsg, db, pOp->p1,
96006 0 0 if( rc ) goto abort_due_to_error;
96027 0 0 if( rc ){
96028 0 0 if( rc!=SQLITE_DONE ) goto abort_due_to_error;
96054 54 224 if( !pOp->p1 ){
96110 31 0 if( isWriteLock || 0==(db->flags&SQLITE_ReadUncommit) ){
31 0 if( isWriteLock || 0==(db->flags&SQLITE_ReadUncommit) ){
96116 0 31 if( rc ){
96117 0 0 if( (rc&0xFF)==SQLITE_LOCKED ){
96142 48 31 if( pVTab ) sqlite3VtabImportErrmsg(p, pVTab->pVtab);
96143 0 79 if( rc ) goto abort_due_to_error;
96168 29 0 if( zTab ){
96172 1 28 if( rc ) goto abort_due_to_error;
96188 0 2 if( rc ) goto abort_due_to_error;
96210 194 0 if( pVtab==0 || NEVER(pVtab->pModule==0) ){
0 194 if( pVtab==0 || NEVER(pVtab->pModule==0) ){
96217 0 194 if( rc ) goto abort_due_to_error;
96224 194 0 if( pCur ){
96253 0 0 if( pRhs==0 ) goto no_mem;
96315 202 204 for(i = 0; i
96320 0 204 if( rc ) goto abort_due_to_error;
96324 28 176 if( res ) goto jump_to_p2;
96355 2 1131 if( pCur->nullRow ){
96367 0 1131 if( pOp->p5 & OPFLAG_NOCHNG ){
96376 0 1131 if( sContext.isError>0 ){
96384 0 1131 if( rc ) goto abort_due_to_error;
96405 1 337 if( pCur->nullRow ){
96420 0 337 if( rc ) goto abort_due_to_error;
96423 221 116 if( !res ){
96456 0 0 if( rc ) goto abort_due_to_error;
96458 0 0 if( isLegacy==0 ) db->flags &= ~(u64)SQLITE_LegacyAlter;
96461 0 0 if( rc ) goto abort_due_to_error;
96507 0 50 if( db->mallocFailed ) goto no_mem;
96510 50 0 if( pVtab==0 || NEVER(pVtab->pModule==0) ){
0 50 if( pVtab==0 || NEVER(pVtab->pModule==0) ){
96517 50 0 if( ALWAYS(pModule->xUpdate) ){
96521 302 50 for(i=0; i
96531 50 0 if( rc==SQLITE_OK && pOp->p1 ){
49 1 if( rc==SQLITE_OK && pOp->p1 ){
96535 0 50 if( (rc&0xff)==SQLITE_CONSTRAINT && pOp->p4.pVtab->bConstraint ){
0 0 if( (rc&0xff)==SQLITE_CONSTRAINT && pOp->p4.pVtab->bConstraint ){
96536 0 0 if( pOp->p5==OE_Ignore ){
96539 0 0 p->errorAction = ((pOp->p5==OE_Replace) ? OE_Abort : pOp->p5);
96544 0 50 if( rc ) goto abort_due_to_error;
96579 0 0 if( pOp->p3 ){
96581 0 0 if( newMax < (unsigned)pOp->p3 ) newMax = (unsigned)pOp->p3;
96647 669 411 if( pCtx->pOut != pOut ){
96651 1143 669 for(i=pCtx->argc-1; i>=0; i--) pCtx->argv[i] = &aMem[pOp->p2+i];
96667 6 1074 if( pCtx->isError ){
96668 6 0 if( pCtx->isError>0 ){
96674 6 0 if( rc ) goto abort_due_to_error;
96758 0 0 if( (pIn1->z[h/8] & (1<<(h&7)))==0 ){
96816 10 6254 if( (db->mTrace & (SQLITE_TRACE_STMT|SQLITE_TRACE_LEGACY))!=0
96817 10 0 && p->minWriteFileFormat!=254 /* tag-20220401a */
96818 0 10 && (zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql))!=0
6 4 && (zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql))!=0
96821 6 0 if( db->mTrace & SQLITE_TRACE_LEGACY ){
96827 0 0 if( db->nVdbeExec>1 ){
96854 0 6264 if( pOp->p1>=sqlite3GlobalConfig.iOnceResetThreshold ){
96855 0 0 if( pOp->opcode==OP_Trace ) break;
96856 0 0 for(i=1; inOp; i++){
96857 0 0 if( p->aOp[i].opcode==OP_Once ) p->aOp[i].p1 = 0;
97020 0 33 if( db->mallocFailed ){
97022 0 33 }else if( rc==SQLITE_IOERR_CORRUPTFS ){
97038 6 27 if( p->zErrMsg==0 && rc!=SQLITE_IOERR_NOMEM ){
6 0 if( p->zErrMsg==0 && rc!=SQLITE_IOERR_NOMEM ){
97046 33 0 if( p->eVdbeState==VDBE_RUN_STATE ) sqlite3VdbeHalt(p);
97047 0 33 if( rc==SQLITE_IOERR_NOMEM ) sqlite3OomFault(db);
97048 0 33 if( rc==SQLITE_CORRUPT && db->autoCommit==0 ){
0 0 if( rc==SQLITE_CORRUPT && db->autoCommit==0 ){
97052 0 33 if( resetSchemaOnFault>0 ){
97061 80 13014 while( nVmStep>=nProgressLimit && db->xProgress!=0 ){
80 0 while( nVmStep>=nProgressLimit && db->xProgress!=0 ){
97063 0 80 if( db->xProgress(db->pProgressArg) ){
97173 87 31 if( v->pc>4 ){
97180 118 0 if( rc==SQLITE_ROW ){
97185 118 0 type = pC->nHdrParsed>p->iCol ? pC->aType[p->iCol] : 0;
97188 0 118 if( type<12 ){
97189 0 0 zErr = sqlite3MPrintf(p->db, "cannot open value of type %s",
97190 0 0 type==0?"null": type==7?"real": "integer"
97203 118 0 if( rc==SQLITE_ROW ){
97205 0 0 }else if( p->pStmt ){
97208 0 0 if( rc==SQLITE_OK ){
97261 0 31 if( !pBlob ) goto blob_open_out;
97267 31 0 if( pTab && IsVirtual(pTab) ){
0 31 if( pTab && IsVirtual(pTab) ){
97271 31 0 if( pTab && !HasRowid(pTab) ){
0 31 if( pTab && !HasRowid(pTab) ){
97276 31 0 if( pTab && IsView(pTab) ){
0 31 if( pTab && IsView(pTab) ){
97281 0 31 if( !pTab ){
97282 0 0 if( sParse.zErrMsg ){
97295 62 0 for(iCol=0; iColnCol; iCol++) {
97296 31 31 if( sqlite3StrICmp(pTab->aCol[iCol].zCnName, zColumn)==0 ){
97300 0 31 if( iCol==pTab->nCol ){
97311 0 31 if( wrFlag ){
97315 0 0 if( db->flags&SQLITE_ForeignKeys ){
97322 0 0 for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pFKey->pNextFrom){
97324 0 0 for(j=0; jnCol; j++){
97325 0 0 if( pFKey->aCol[j].iFrom==iCol ){
97332 0 0 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
97334 0 0 for(j=0; jnKeyCol; j++){
97336 0 0 if( pIdx->aiColumn[j]==iCol || pIdx->aiColumn[j]==XN_EXPR ){
0 0 if( pIdx->aiColumn[j]==iCol || pIdx->aiColumn[j]==XN_EXPR ){
97341 0 0 if( zFault ){
97352 31 0 if( pBlob->pStmt ){
97393 31 0 if( db->mallocFailed==0 ){
97404 31 0 if( db->mallocFailed==0 ){
97409 0 31 if( wrFlag ) aOp[1].opcode = OP_OpenWrite;
97434 0 31 if( db->mallocFailed ){
97438 31 0 if( (++nAttempt)>=SQLITE_MAX_SCHEMA_RETRY || rc!=SQLITE_SCHEMA ) break;
0 31 if( (++nAttempt)>=SQLITE_MAX_SCHEMA_RETRY || rc!=SQLITE_SCHEMA ) break;
97443 31 0 if( rc==SQLITE_OK && db->mallocFailed==0 ){
31 0 if( rc==SQLITE_OK && db->mallocFailed==0 ){
97446 0 0 if( pBlob && pBlob->pStmt ) sqlite3VdbeFinalize((Vdbe *)pBlob->pStmt);
0 0 if( pBlob && pBlob->pStmt ) sqlite3VdbeFinalize((Vdbe *)pBlob->pStmt);
97449 0 31 sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr);
97466 31 660 if( p ){
97494 0 72 if( p==0 ) return SQLITE_MISUSE_BKPT;
97499 72 0 if( n<0 || iOffset<0 || ((sqlite3_int64)iOffset+n)>p->nByte ){
72 0 if( n<0 || iOffset<0 || ((sqlite3_int64)iOffset+n)>p->nByte ){
0 72 if( n<0 || iOffset<0 || ((sqlite3_int64)iOffset+n)>p->nByte ){
97502 0 72 }else if( v==0 ){
97541 0 72 if( rc==SQLITE_ABORT ){
97576 118 0 return (p && p->pStmt) ? p->nByte : 0;
118 0 return (p && p->pStmt) ? p->nByte : 0;
97594 0 87 if( p==0 ) return SQLITE_MISUSE_BKPT;
97598 0 87 if( p->pStmt==0 ){
97607 0 87 if( rc!=SQLITE_OK ){
97608 0 0 sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr);
98095 0 0 if( pReadr->aMap ) sqlite3OsUnfetch(pReadr->pFd, 0, pReadr->aMap);
98117 0 0 if( p->aMap ){
98129 0 0 if( iBuf==0 ){
98134 0 0 if( (p->iEof - p->iReadOff) > (i64)p->nBuffer ){
98144 0 0 if( rc!=SQLITE_OK ) return rc;
98148 0 0 if( nByte<=nAvail ){
98161 0 0 if( p->nAlloc
98164 0 0 while( nByte>nNew ) nNew = nNew*2;
98166 0 0 if( !aNew ) return SQLITE_NOMEM_BKPT;
98179 0 0 while( nRem>0 ){
98185 0 0 if( nRem>p->nBuffer ) nCopy = p->nBuffer;
98187 0 0 if( rc!=SQLITE_OK ) return rc;
98206 0 0 if( p->aMap ){
98210 0 0 if( iBuf && (p->nBuffer-iBuf)>=9 ){
0 0 if( iBuf && (p->nBuffer-iBuf)>=9 ){
98217 0 0 if( rc ) return rc;
98219 0 0 }while( (a[0]&0x80)!=0 );
98238 0 0 if( pFile->iEof<=(i64)(pTask->pSorter->db->nMaxSorterMmap) ){
98240 0 0 if( pFd->pMethods->iVersion>=3 ){
98263 0 0 if( sqlite3FaultSim(201) ) return SQLITE_IOERR_READ;
98264 0 0 if( pReadr->aMap ){
98273 0 0 if( rc==SQLITE_OK && pReadr->aMap==0 ){
0 0 if( rc==SQLITE_OK && pReadr->aMap==0 ){
98276 0 0 if( pReadr->aBuffer==0 ){
98278 0 0 if( pReadr->aBuffer==0 ) rc = SQLITE_NOMEM_BKPT;
98281 0 0 if( rc==SQLITE_OK && iBuf ){
0 0 if( rc==SQLITE_OK && iBuf ){
98283 0 0 if( (pReadr->iReadOff + nRead) > pReadr->iEof ){
98305 0 0 if( pReadr->iReadOff>=pReadr->iEof ){
98308 0 0 if( pIncr ){
98310 0 0 if( rc==SQLITE_OK && pIncr->bEof==0 ){
0 0 if( rc==SQLITE_OK && pIncr->bEof==0 ){
98318 0 0 if( bEof ){
98326 0 0 if( rc==SQLITE_OK ){
98329 0 0 if( rc==SQLITE_OK ){
98362 0 0 if( rc==SQLITE_OK ){
98369 0 0 if( rc==SQLITE_OK ){
98387 5 0 if( *pbKey2Cached==0 ){
98414 20116 15403 if( !*pbKey2Cached ){
98441 0 103 getVarint32NR(&p1[1], n1);
98442 0 103 getVarint32NR(&p2[1], n2);
98444 34 69 if( res==0 ){
98448 34 69 if( res==0 ){
98449 5 29 if( pTask->pSorter->pKeyInfo->nKeyField>1 ){
98456 0 69 if( pTask->pSorter->pKeyInfo->aSortFlags[0] ){
98485 233 360 if( s1==s2 ){
98491 233 0 for(i=0; i
98492 233 0 if( (res = v1[i] - v2[i])!=0 ){
98493 0 233 if( ((v1[0] ^ v2[0]) & 0x80)!=0 ){
98494 0 0 res = v1[0] & 0x80 ? -1 : +1;
98499 140 220 }else if( s1>7 && s2>7 ){
104 36 }else if( s1>7 && s2>7 ){
98502 220 36 if( s2>7 ){
98504 36 0 }else if( s1>7 ){
98511 220 36 if( res>0 ){
98512 0 220 if( *v1 & 0x80 ) res = -1;
98514 0 36 if( *v2 & 0x80 ) res = +1;
98518 0 593 if( res==0 ){
98519 0 0 if( pTask->pSorter->pKeyInfo->nKeyField>1 ){
98524 2 591 }else if( pTask->pSorter->pKeyInfo->aSortFlags[0] ){
98571 262 0 if( sqlite3TempInMemory(db) || sqlite3GlobalConfig.bCoreMutex==0 ){
0 262 if( sqlite3TempInMemory(db) || sqlite3GlobalConfig.bCoreMutex==0 ){
98594 0 262 if( pSorter==0 ){
98601 5 257 if( nField && nWorker==0 ){
5 0 if( nField && nWorker==0 ){
98611 262 262 for(i=0; inTask; i++){
98616 262 0 if( !sqlite3TempInMemory(db) ){
98622 261 1 if( mxCache<0 ){
98634 262 0 if( sqlite3GlobalConfig.bSmallMalloc==0 ){
98638 0 262 if( !pSorter->list.aMemory ) rc = SQLITE_NOMEM_BKPT;
98642 262 0 if( pKeyInfo->nAllField<13
98643 257 5 && (pKeyInfo->aColl[0]==0 || pKeyInfo->aColl[0]==db->pDfltColl)
241 16 && (pKeyInfo->aColl[0]==0 || pKeyInfo->aColl[0]==db->pDfltColl)
98644 246 0 && (pKeyInfo->aSortFlags[0] & KEYINFO_ORDER_BIGNULL)==0
98660 0 262 for(p=pRecord; p; p=pNext){
98675 0 262 if( pTask->list.aMemory ){
98683 0 262 if( pTask->file.pFd ){
98686 0 262 if( pTask->file2.pFd ){
98738 0 262 if( pTask->pThread ){
98781 262 262 for(i=pSorter->nTask-1; i>=0; i--){
98784 262 0 if( rc==SQLITE_OK ) rc = rc2;
98807 0 0 while( N
98810 0 0 pNew = sqlite3FaultSim(100) ? 0 : (MergeEngine*)sqlite3MallocZero(nByte);
98811 0 0 if( pNew ){
98825 0 262 if( pMerger ){
98826 0 0 for(i=0; inTree; i++){
98838 0 0 if( pIncr ){
98840 0 0 if( pIncr->bUseThread ){
98842 0 0 if( pIncr->aFile[0].pFd ) sqlite3OsCloseFree(pIncr->aFile[0].pFd);
98843 0 0 if( pIncr->aFile[1].pFd ) sqlite3OsCloseFree(pIncr->aFile[1].pFd);
98859 0 262 if( pSorter->pReader ){
98867 262 262 for(i=0; inTask; i++){
98872 0 262 if( pSorter->list.aMemory==0 ){
98891 262 0 if( pSorter ){
98910 0 0 if( nByte<=(i64)(db->nMaxSorterMmap) && pFd->pMethods->iVersion>=3 ){
0 0 if( nByte<=(i64)(db->nMaxSorterMmap) && pFd->pMethods->iVersion>=3 ){
98916 0 0 if( p ) sqlite3OsUnfetch(pFd, 0, p);
98934 0 0 if( sqlite3FaultSim(202) ) return SQLITE_IOERR_ACCESS;
98940 0 0 if( rc==SQLITE_OK ){
98943 0 0 if( nExtend>0 ){
98956 212 0 if( pTask->pUnpacked==0 ){
98958 0 212 if( pTask->pUnpacked==0 ) return SQLITE_NOMEM_BKPT;
98985 17720 18495 if( res<=0 ){
98989 2270 15450 if( p1==0 ){
98998 2444 16051 if( p2==0 ){
99012 148 64 if( p->typeMask==SORTER_TYPE_INTEGER ){
99014 38 26 }else if( p->typeMask==SORTER_TYPE_TEXT ){
99032 0 212 if( rc!=SQLITE_OK ) return rc;
99038 4926 212 while( p ){
99040 4926 0 if( pList->aMemory ){
99041 212 4714 if( (u8*)p==pList->aMemory ){
99052 4639 4926 for(i=0; aSlot[i]; i++){
99061 13568 212 for(i=0; i
99062 13281 287 if( aSlot[i]==0 ) continue;
99063 75 212 p = p ? vdbeSorterMerge(pTask, p, aSlot[i]) : aSlot[i];
99084 0 0 if( !p->aBuffer ){
99100 0 0 while( nRem>0 && p->eFWErr==0 ){
0 0 while( nRem>0 && p->eFWErr==0 ){
99102 0 0 if( nCopy>(p->nBuffer - p->iBufEnd) ){
99108 0 0 if( p->iBufEnd==p->nBuffer ){
99133 0 0 if( p->eFWErr==0 && ALWAYS(p->aBuffer) && p->iBufEnd>p->iBufStart ){
0 0 if( p->eFWErr==0 && ALWAYS(p->aBuffer) && p->iBufEnd>p->iBufStart ){
0 0 if( p->eFWErr==0 && ALWAYS(p->aBuffer) && p->iBufEnd>p->iBufStart ){
99187 0 0 if( pTask->file.pFd==0 ){
99195 0 0 if( rc==SQLITE_OK ){
99200 0 0 if( rc==SQLITE_OK ){
99204 0 0 if( rc==SQLITE_OK ){
99212 0 0 for(p=pList->pList; p; p=pNext){
99216 0 0 if( pList->aMemory==0 ) sqlite3_free(p);
99247 0 0 if( rc==SQLITE_OK ){
99258 0 0 for(i=(pMerger->nTree+iPrev)/2; i>0; i=i/2){
99261 0 0 if( pReadr1->pFd==0 ){
99263 0 0 }else if( pReadr2->pFd==0 ){
99286 0 0 if( iRes<0 || (iRes==0 && pReadr1
0 0 if( iRes<0 || (iRes==0 && pReadr1
0 0 if( iRes<0 || (iRes==0 && pReadr1
99291 0 0 if( pReadr1->pFd ) bCached = 0;
99299 0 0 return (rc==SQLITE_OK ? pTask->pUnpacked->errCode : rc);
99342 0 0 for(i=0; i
99345 0 0 if( pTask->bDone ){
99348 0 0 if( rc!=SQLITE_OK || pTask->pThread==0 ) break;
0 0 if( rc!=SQLITE_OK || pTask->pThread==0 ) break;
99351 0 0 if( rc==SQLITE_OK ){
99352 0 0 if( i==nWorker ){
99371 0 0 if( aMem ){
99374 0 0 }else if( pSorter->list.aMemory ){
99376 0 0 if( !pSorter->list.aMemory ) return SQLITE_NOMEM_BKPT;
99404 0 4926 getVarint32NR((const u8*)&pVal->z[1], t);
99405 4920 6 if( t>0 && t<10 && t!=7 ){
4556 364 if( t>0 && t<10 && t!=7 ){
556 4000 if( t>0 && t<10 && t!=7 ){
99407 364 4006 }else if( t>10 && (t & 0x01) ){
364 0 }else if( t>10 && (t & 0x01) ){
99433 4926 0 if( pSorter->mxPmaSize ){
99434 4926 0 if( pSorter->list.aMemory ){
99435 4714 212 bFlush = pSorter->iMemory && (pSorter->iMemory+nReq) > pSorter->mxPmaSize;
0 4714 bFlush = pSorter->iMemory && (pSorter->iMemory+nReq) > pSorter->mxPmaSize;
99439 0 0 || (pSorter->list.szPMA > pSorter->mnPmaSize && sqlite3HeapNearlyFull())
0 0 || (pSorter->list.szPMA > pSorter->mnPmaSize && sqlite3HeapNearlyFull())
0 0 || (pSorter->list.szPMA > pSorter->mnPmaSize && sqlite3HeapNearlyFull())
99442 0 4926 if( bFlush ){
99451 301 4625 if( nPMA>pSorter->mxKeysize ){
99455 4926 0 if( pSorter->list.aMemory ){
99458 19 4907 if( nMin>pSorter->nMemory ){
99462 17 2 if( pSorter->list.pList ){
99465 6 19 while( nNew < nMin ) nNew = nNew*2;
99466 0 19 if( nNew > pSorter->mxPmaSize ) nNew = pSorter->mxPmaSize;
99467 0 19 if( nNew < nMin ) nNew = nMin;
99469 0 19 if( !aNew ) return SQLITE_NOMEM_BKPT;
99470 17 2 if( iListOff>=0 ){
99479 4714 212 if( pSorter->list.pList ){
99484 0 0 if( pNew==0 ){
99515 0 0 while( rc==SQLITE_OK ){
99523 0 0 if( pReader->pFd==0 ) break;
99524 0 0 if( (iEof + nKey + sqlite3VarintLen(nKey))>(iStart + pIncr->mxSz) ) break;
99534 0 0 if( rc==SQLITE_OK ) rc = rc2;
99582 0 0 if( pIncr->bUseThread ){
99585 0 0 if( rc==SQLITE_OK ){
99591 0 0 if( rc==SQLITE_OK ){
99592 0 0 if( pIncr->aFile[0].iEof==pIncr->iStartOff ){
99603 0 0 if( pIncr->aFile[0].iEof==pIncr->iStartOff ){
99623 0 0 IncrMerger *pIncr = *ppOut = (IncrMerger*)
99625 0 0 if( pIncr ){
99667 0 0 if( iOut>=(pMerger->nTree/2) ){
99678 0 0 if( p1->pFd==0 ){
99680 0 0 }else if( p2->pFd==0 ){
99690 0 0 if( res<=0 ){
99758 0 0 for(i=0; i
99759 0 0 if( SQLITE_MAX_WORKER_THREADS>0 && eMode==INCRINIT_ROOT ){
99771 0 0 if( rc!=SQLITE_OK ) return rc;
99774 0 0 for(i=pMerger->nTree-1; i>0; i--){
99827 0 0 if( rc==SQLITE_OK ){
99830 0 0 if( pIncr->bUseThread ){
99832 0 0 if( rc==SQLITE_OK ){
99838 0 0 if( pTask->file2.pFd==0 ){
99843 0 0 if( rc==SQLITE_OK ){
99852 0 0 if( rc==SQLITE_OK && pIncr->bUseThread ){
0 0 if( rc==SQLITE_OK && pIncr->bUseThread ){
99868 0 0 if( rc==SQLITE_OK && (SQLITE_MAX_WORKER_THREADS==0 || eMode!=INCRINIT_TASK) ){
0 0 if( rc==SQLITE_OK && (SQLITE_MAX_WORKER_THREADS==0 || eMode!=INCRINIT_TASK) ){
99904 0 0 if( pIncr ){
99907 0 0 if( pIncr->bUseThread ){
99943 0 0 if( pNew==0 ) rc = SQLITE_NOMEM_BKPT;
99945 0 0 for(i=0; i
0 0 for(i=0; i
99952 0 0 if( rc!=SQLITE_OK ){
99973 0 0 while( nDiv < (i64)nPMA ){
100003 0 0 for(i=1; i
100007 0 0 for(i=1; i
0 0 for(i=1; i
100011 0 0 if( pReadr->pIncr==0 ){
100013 0 0 if( pNew==0 ){
100019 0 0 if( rc==SQLITE_OK ){
100025 0 0 if( rc==SQLITE_OK ){
100057 0 0 if( pSorter->nTask>1 ){
100059 0 0 if( pMain==0 ) rc = SQLITE_NOMEM_BKPT;
100063 0 0 for(iTask=0; rc==SQLITE_OK && iTasknTask; iTask++){
0 0 for(iTask=0; rc==SQLITE_OK && iTasknTask; iTask++){
100066 0 0 if( SQLITE_MAX_WORKER_THREADS==0 || pTask->nPMA ){
100071 0 0 if( pTask->nPMA<=SORTER_MAX_MERGE_COUNT ){
100077 0 0 if( pRoot==0 ) rc = SQLITE_NOMEM_BKPT;
100078 0 0 for(i=0; inPMA && rc==SQLITE_OK; i += SORTER_MAX_MERGE_COUNT){
0 0 for(i=0; inPMA && rc==SQLITE_OK; i += SORTER_MAX_MERGE_COUNT){
100084 0 0 if( rc==SQLITE_OK ){
100090 0 0 if( rc==SQLITE_OK ){
100092 0 0 if( pMain!=0 ){
100106 0 0 if( rc!=SQLITE_OK ){
100131 0 0 for(i=0; inTask; i++){
100137 0 0 if( rc==SQLITE_OK ){
100140 0 0 if( pSorter->bUseThreads ){
100145 0 0 if( rc==SQLITE_OK ){
100148 0 0 if( pReadr==0 ) rc = SQLITE_NOMEM_BKPT;
100150 0 0 if( rc==SQLITE_OK ){
100152 0 0 if( rc==SQLITE_OK ){
100154 0 0 for(iTask=0; iTask<(pSorter->nTask-1); iTask++){
100156 0 0 if( (pIncr = pMain->aReadr[iTask].pIncr) ){
100161 0 0 for(iTask=0; rc==SQLITE_OK && iTasknTask; iTask++){
0 0 for(iTask=0; rc==SQLITE_OK && iTasknTask; iTask++){
100181 0 0 if( rc==SQLITE_OK ){
100193 0 0 if( rc!=SQLITE_OK ){
100216 262 0 if( pSorter->bUsePMA==0 ){
100217 212 50 if( pSorter->list.pList ){
100241 0 0 if( rc==SQLITE_OK ){
100264 0 4916 if( pSorter->bUsePMA ){
100269 0 0 if( pSorter->bUseThreads ){
100271 0 0 if( rc==SQLITE_OK && pSorter->pReader->pFd==0 ) rc = SQLITE_DONE;
0 0 if( rc==SQLITE_OK && pSorter->pReader->pFd==0 ) rc = SQLITE_DONE;
100279 0 0 if( rc==SQLITE_OK && res ) rc = SQLITE_DONE;
0 0 if( rc==SQLITE_OK && res ) rc = SQLITE_DONE;
100285 0 4916 if( pSorter->list.aMemory==0 ) vdbeSorterRecordFree(db, pFree);
100286 4710 206 rc = pSorter->list.pList ? SQLITE_OK : SQLITE_DONE;
100300 0 4923 if( pSorter->bUsePMA ){
100303 0 0 if( pSorter->bUseThreads ){
100329 0 4922 if( sqlite3VdbeMemClearAndResize(pOut, nKey) ){
100371 1 0 if( r2==0 ){
100373 0 1 if( r2==0 ) return SQLITE_NOMEM_BKPT;
100380 1 1 for(i=0; i
100381 0 1 if( r2->aMem[i].flags & MEM_Null ){
100917 0 283 if( (iAmt+iOfst)>p->endpoint.iOffset ){
100921 172 111 if( p->readpoint.iOffset!=iOfst || iOfst==0 ){
1 171 if( p->readpoint.iOffset!=iOfst || iOfst==0 ){
100923 288 0 for(pChunk=p->pFirst;
100924 176 112 ALWAYS(pChunk) && (iOff+p->nChunkSize)<=iOfst;
100942 92 283 } while( nRead>=0 && (pChunk=pChunk->pNext)!=0 && nRead>0 );
92 0 } while( nRead>=0 && (pChunk=pChunk->pNext)!=0 && nRead>0 );
92 0 } while( nRead>=0 && (pChunk=pChunk->pNext)!=0 && nRead>0 );
100943 283 0 p->readpoint.iOffset = pChunk ? iOfst+iAmt : 0;
100955 5170 1074 for(pIter=pFirst; pIter; pIter=pNext){
100971 0 0 if( rc==SQLITE_OK ){
100975 0 0 for(pIter=copy.pFirst; pIter; pIter=pIter->pNext){
100976 0 0 if( iOff + nChunk > copy.endpoint.iOffset ){
100980 0 0 if( rc ) break;
100983 0 0 if( rc==SQLITE_OK ){
100988 0 0 if( rc!=SQLITE_OK ){
101018 748 3846 if( p->nSpill>0 && (iAmt+iOfst)>p->nSpill ){
0 748 if( p->nSpill>0 && (iAmt+iOfst)>p->nSpill ){
101020 0 0 if( rc==SQLITE_OK ){
101034 3552 1042 if( iOfst>0 && iOfst!=p->endpoint.iOffset ){
0 3552 if( iOfst>0 && iOfst!=p->endpoint.iOffset ){
101037 1042 3552 if( iOfst==0 && p->pFirst ){
0 1042 if( iOfst==0 && p->pFirst ){
101041 8722 4594 while( nWrite>0 ){
101047 5170 3552 if( iChunkOffset==0 ){
101050 0 5170 if( !pNew ){
101054 4128 1042 if( pChunk ){
101082 54 0 if( sizeendpoint.iOffset ){
101084 46 8 if( size==0 ){
101089 40 0 for(pIter=p->pFirst; ALWAYS(pIter) && iOffpNext){
32 8 for(pIter=p->pFirst; ALWAYS(pIter) && iOffpNext){
101092 8 0 if( ALWAYS(pIter) ){
101186 92 1020 if( nSpill==0 ){
101190 209 811 if( nSpill>0 ){
101287 0 0 for(pWin=pList; pWin; pWin=pWin->pNextWin){
101290 0 0 if( rc ) return WRC_Abort;
101292 0 0 if( rc ) return WRC_Abort;
101294 0 0 if( rc ) return WRC_Abort;
101296 0 0 if( rc ) return WRC_Abort;
101298 0 0 if( rc ) return WRC_Abort;
101299 0 0 if( bOneOnly ) break;
101330 9884 36459 if( rc ) return rc & WRC_Abort;
101331 11674 24785 if( !ExprHasProperty(pExpr,(EP_TokenOnly|EP_Leaf)) ){
101333 6048 5626 if( pExpr->pLeft && walkExpr(pWalker, pExpr->pLeft) ) return WRC_Abort;
17 6031 if( pExpr->pLeft && walkExpr(pWalker, pExpr->pLeft) ) return WRC_Abort;
101334 5474 6183 if( pExpr->pRight ){
101338 89 6094 }else if( ExprUseXSelect(pExpr) ){
101340 26 63 if( sqlite3WalkSelect(pWalker, pExpr->x.pSelect) ) return WRC_Abort;
101342 2008 4086 if( pExpr->x.pList ){
101343 219 1789 if( sqlite3WalkExprList(pWalker, pExpr->x.pList) ) return WRC_Abort;
101346 0 5875 if( ExprHasProperty(pExpr, EP_WinFunc) ){
101347 0 0 if( walkWindowList(pWalker, pExpr->y.pWin, 1) ) return WRC_Abort;
101357 34821 10254 return pExpr ? walkExpr(pWalker,pExpr) : WRC_Continue;
101367 8084 6958 if( p ){
101368 15971 7859 for(i=p->nExpr, pItem=p->a; i>0; i--, pItem++){
101369 225 15746 if( sqlite3WalkExpr(pWalker, pItem->pExpr) ) return WRC_Abort;
101392 0 4015 if( sqlite3WalkExprList(pWalker, p->pEList) ) return WRC_Abort;
101393 0 4015 if( sqlite3WalkExpr(pWalker, p->pWhere) ) return WRC_Abort;
101394 0 4015 if( sqlite3WalkExprList(pWalker, p->pGroupBy) ) return WRC_Abort;
101395 0 4015 if( sqlite3WalkExpr(pWalker, p->pHaving) ) return WRC_Abort;
101396 0 4015 if( sqlite3WalkExprList(pWalker, p->pOrderBy) ) return WRC_Abort;
101397 0 4015 if( sqlite3WalkExpr(pWalker, p->pLimit) ) return WRC_Abort;
101399 0 4015 if( p->pWinDefn ){
101401 0 0 if( pWalker->xSelectCallback2==sqlite3WalkWinDefnDummyCallback
101402 0 0 || ((pParse = pWalker->pParse)!=0 && IN_RENAME_OBJECT)
0 0 || ((pParse = pWalker->pParse)!=0 && IN_RENAME_OBJECT)
101404 0 0 || pWalker->xSelectCallback2==sqlite3SelectPopWith
101430 4015 0 if( ALWAYS(pSrc) ){
101431 2951 4015 for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){
101432 85 2866 if( pItem->pSelect && sqlite3WalkSelect(pWalker, pItem->pSelect) ){
0 85 if( pItem->pSelect && sqlite3WalkSelect(pWalker, pItem->pSelect) ){
101435 0 2951 if( pItem->fg.isTabFunc
101436 0 0 && sqlite3WalkExprList(pWalker, pItem->u1.pFuncArg)
101464 147 5748 if( p==0 ) return WRC_Continue;
101465 0 5748 if( pWalker->xSelectCallback==0 ) return WRC_Continue;
101468 1955 4015 if( rc ) return rc & WRC_Abort;
101469 4015 0 if( sqlite3WalkSelectExpr(pWalker, p)
101470 0 4015 || sqlite3WalkSelectFrom(pWalker, p)
101474 3920 95 if( pWalker->xSelectCallback2 ){
101478 222 3793 }while( p!=0 );
101556 0 0 if( pExpr->op==TK_AGG_FUNCTION ) pExpr->op2 += pWalker->u.n;
101560 0 164 if( N>0 ){
101604 0 164 if( db->mallocFailed ){
101610 0 164 if( pExpr->op==TK_COLLATE ){
101617 0 164 if( ExprHasProperty(pExpr, EP_WinFunc) ){
101618 0 0 if( ALWAYS(pExpr->y.pWin!=0) ){
101643 0 0 if( pItem->fg.eEName!=ENAME_TAB ) return 0;
101645 0 0 for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}
0 0 for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}
101646 0 0 if( zDb && (sqlite3StrNICmp(zSpan, zDb, n)!=0 || zDb[n]!=0) ){
0 0 if( zDb && (sqlite3StrNICmp(zSpan, zDb, n)!=0 || zDb[n]!=0) ){
0 0 if( zDb && (sqlite3StrNICmp(zSpan, zDb, n)!=0 || zDb[n]!=0) ){
101650 0 0 for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}
0 0 for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}
101651 0 0 if( zTab && (sqlite3StrNICmp(zSpan, zTab, n)!=0 || zTab[n]!=0) ){
0 0 if( zTab && (sqlite3StrNICmp(zSpan, zTab, n)!=0 || zTab[n]!=0) ){
0 0 if( zTab && (sqlite3StrNICmp(zSpan, zTab, n)!=0 || zTab[n]!=0) ){
101655 0 0 if( zCol && sqlite3StrICmp(zSpan, zCol)!=0 ){
0 0 if( zCol && sqlite3StrICmp(zSpan, zCol)!=0 ){
101665 2 19 if( db->init.busy ) return 1; /* Always support for legacy schemas */
101666 4 15 if( pTopNC->ncFlags & NC_IsDDL ){
101668 0 4 if( sqlite3WritableSchema(db) && (db->flags & SQLITE_DqsDML)!=0 ){
0 0 if( sqlite3WritableSchema(db) && (db->flags & SQLITE_DqsDML)!=0 ){
101690 0 5204 if( (pExTab->tabFlags & TF_HasGenerated)!=0
101691 0 0 && (pExTab->aCol[n].colFlags & COLFLAG_GENERATED)!=0
101695 0 0 return pExTab->nCol>=BMS ? ALLBITS : MASKBIT(pExTab->nCol)-1;
101699 0 5204 if( n>=BMS ) n = BMS-1;
101717 0 0 if( pNew ){
101789 4 6285 if( zDb ){
101792 0 4 if( (pNC->ncFlags & (NC_PartIdx|NC_IsCheck))!=0 ){
101799 8 0 for(i=0; inDb; i++){
101801 4 4 if( sqlite3StrICmp(db->aDb[i].zDbSName,zDb)==0 ){
101806 0 4 if( i==db->nDb && sqlite3StrICmp("main", zDb)==0 ){
0 0 if( i==db->nDb && sqlite3StrICmp("main", zDb)==0 ){
101821 6287 14 if( pSrcList ){
101822 6340 6287 for(i=0, pItem=pSrcList->a; inSrc; i++, pItem++){
101828 0 6340 if( pItem->fg.isNestedFrom ){
101840 0 0 for(j=0; jnExpr; j++){
101841 0 0 if( !sqlite3MatchEName(&pEList->a[j], zCol, zTab, zDb) ){
101844 0 0 if( cnt>0 ){
101845 0 0 if( pItem->fg.isUsing==0
101846 0 0 || sqlite3IdListIndex(pItem->u3.pUsing, zCol)<0
101854 0 0 if( (pItem->fg.jointype & JT_RIGHT)==0 ){
101858 0 0 if( (pItem->fg.jointype & JT_LEFT)==0 ){
101874 0 0 if( pEList->a[j].fg.bUsingTerm ) break;
101876 0 0 if( hit || zTab==0 ) continue;
0 0 if( hit || zTab==0 ) continue;
101879 139 6201 if( zTab ){
101881 8 131 if( zDb ){
101882 4 4 if( pTab->pSchema!=pSchema ) continue;
101883 0 4 if( pSchema==0 && strcmp(zDb,"*")!=0 ) continue;
0 0 if( pSchema==0 && strcmp(zDb,"*")!=0 ) continue;
101885 108 27 zTabName = pItem->zAlias ? pItem->zAlias : pTab->zName;
101887 48 87 if( sqlite3StrICmp(zTabName, zTab)!=0 ){
101891 0 87 if( IN_RENAME_OBJECT && pItem->zAlias ){
0 0 if( IN_RENAME_OBJECT && pItem->zAlias ){
101896 17602 941 for(j=0, pCol=pTab->aCol; jnCol; j++, pCol++){
101897 5347 12255 if( pCol->hName==hCol
101898 5347 0 && sqlite3StrICmp(pCol->zCnName, zCol)==0
101900 0 5347 if( cnt>0 ){
101901 0 0 if( pItem->fg.isUsing==0
101902 0 0 || sqlite3IdListIndex(pItem->u3.pUsing, zCol)<0
101910 0 0 if( (pItem->fg.jointype & JT_RIGHT)==0 ){
101914 0 0 if( (pItem->fg.jointype & JT_LEFT)==0 ){
101927 5096 251 pExpr->iColumn = j==pTab->iPKey ? -1 : (i16)j;
101928 0 5347 if( pItem->fg.isNestedFrom ){
101934 928 5360 if( 0==cnt && VisibleRowid(pTab) ){
921 7 if( 0==cnt && VisibleRowid(pTab) ){
101939 6268 19 if( pMatch ){
101943 7 6261 if( (pMatch->fg.jointype & (JT_LEFT|JT_LTORJ))!=0 ){
101956 954 5347 if( cnt==0 && zDb==0 ){
954 0 if( cnt==0 && zDb==0 ){
101959 0 954 if( pParse->pTriggerTab!=0 ){
101962 0 0 if( pParse->bReturning ){
101963 0 0 if( (pNC->ncFlags & NC_UBaseReg)!=0
101964 0 0 && (zTab==0 || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0)
0 0 && (zTab==0 || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0)
101969 0 0 }else if( op!=TK_DELETE && zTab && sqlite3StrICmp("new",zTab) == 0 ){
0 0 }else if( op!=TK_DELETE && zTab && sqlite3StrICmp("new",zTab) == 0 ){
0 0 }else if( op!=TK_DELETE && zTab && sqlite3StrICmp("new",zTab) == 0 ){
101972 0 0 }else if( op!=TK_INSERT && zTab && sqlite3StrICmp("old",zTab)==0 ){
0 0 }else if( op!=TK_INSERT && zTab && sqlite3StrICmp("old",zTab)==0 ){
0 0 }else if( op!=TK_INSERT && zTab && sqlite3StrICmp("old",zTab)==0 ){
101979 295 659 if( (pNC->ncFlags & NC_UUpsert)!=0 && zTab!=0 ){
0 295 if( (pNC->ncFlags & NC_UUpsert)!=0 && zTab!=0 ){
101981 0 0 if( pUpsert && sqlite3StrICmp("excluded",zTab)==0 ){
0 0 if( pUpsert && sqlite3StrICmp("excluded",zTab)==0 ){
101988 0 954 if( pTab ){
101993 0 0 for(iCol=0, pCol=pTab->aCol; iColnCol; iCol++, pCol++){
101994 0 0 if( pCol->hName==hCol
101995 0 0 && sqlite3StrICmp(pCol->zCnName, zCol)==0
101997 0 0 if( iCol==pTab->iPKey ){
102003 0 0 if( iCol>=pTab->nCol && sqlite3IsRowid(zCol) && VisibleRowid(pTab) ){
0 0 if( iCol>=pTab->nCol && sqlite3IsRowid(zCol) && VisibleRowid(pTab) ){
0 0 if( iCol>=pTab->nCol && sqlite3IsRowid(zCol) && VisibleRowid(pTab) ){
102007 0 0 if( iColnCol ){
102011 0 0 if( pExpr->iTable==EXCLUDED_TABLE_NUMBER ){
102014 0 0 if( IN_RENAME_OBJECT ){
102028 0 0 if( pParse->bReturning ){
102037 0 0 if( iCol<0 ){
102039 0 0 }else if( pExpr->iTable==0 ){
102042 0 0 pParse->oldmask |= (iCol>=32 ? 0xffffffff : (((u32)1)<
102046 0 0 pParse->newmask |= (iCol>=32 ? 0xffffffff : (((u32)1)<
102059 954 5347 if( cnt==0
102060 921 33 && cntTab==1
102061 921 0 && pMatch
102062 921 0 && (pNC->ncFlags & (NC_IdxExpr|NC_GenCol))==0
102063 914 7 && sqlite3IsRowid(zCol)
102064 914 0 && ALWAYS(VisibleRowid(pMatch->pTab))
102089 40 6261 if( cnt==0
102090 20 20 && (pNC->ncFlags & NC_UEList)!=0
102091 8 12 && zTab==0
102095 16 1 for(j=0; jnExpr; j++){
102097 9 7 if( pEList->a[j].fg.eEName==ENAME_NAME
102098 7 2 && sqlite3_stricmp(zAs, zCol)==0
102105 7 0 if( (pNC->ncFlags&NC_AllowAgg)==0 && ExprHasProperty(pOrig, EP_Agg) ){
0 7 if( (pNC->ncFlags&NC_AllowAgg)==0 && ExprHasProperty(pOrig, EP_Agg) ){
102109 0 7 if( ExprHasProperty(pOrig, EP_Win)
102110 0 0 && ((pNC->ncFlags&NC_AllowWin)==0 || pNC!=pTopNC )
0 0 && ((pNC->ncFlags&NC_AllowWin)==0 || pNC!=pTopNC )
102115 0 7 if( sqlite3ExprVectorSize(pOrig)!=1 ){
102123 0 7 if( IN_RENAME_OBJECT ){
102134 6261 33 if( cnt ) break;
102137 12 21 }while( pNC );
102150 21 6261 if( cnt==0 && zTab==0 ){
21 0 if( cnt==0 && zTab==0 ){
102152 21 0 if( ExprHasProperty(pExpr,EP_DblQuoted)
102153 17 4 && areDoubleQuotedStringsEnabled(db, pTopNC)
102178 0 4 if( sqlite3ExprIdToTrueFalse(pExpr) ){
102192 4 6261 if( cnt!=1 ){
102194 0 4 if( pFJMatch ){
102195 0 0 if( pFJMatch->nExpr==cnt-1 ){
102196 0 0 if( ExprHasProperty(pExpr,EP_Leaf) ){
102215 4 0 zErr = cnt==0 ? "no such column" : "ambiguous column name";
102216 0 4 if( zDb ){
102218 0 4 }else if( zTab ){
102230 2881 3384 if( !ExprHasProperty(pExpr,(EP_TokenOnly|EP_Leaf)) ){
102252 5100 1165 if( pExpr->iColumn>=0 && pMatch!=0 ){
5098 2 if( pExpr->iColumn>=0 && pMatch!=0 ){
102258 6268 4 if( cnt==1 ){
102261 0 6268 if( pParse->db->xAuth
102262 0 0 && (pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER)
0 0 && (pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER)
102272 6268 12 if( pTopNC==pNC ) break;
102287 0 0 if( p ){
102293 0 0 if( p->y.pTab->iPKey==iCol ){
102297 0 0 if( (pTab->tabFlags & TF_HasGenerated)!=0
102298 0 0 && (pTab->aCol[iCol].colFlags & COLFLAG_GENERATED)!=0
102302 0 0 pItem->colUsed = pTab->nCol>=64 ? ALLBITS : MASKBIT(pTab->nCol)-1;
102337 0 0 if( pNC->ncFlags & NC_IdxExpr ) zIn = "index expressions";
102339 0 0 else if( pNC->ncFlags & NC_IsCheck ) zIn = "CHECK constraints";
102342 0 0 else if( pNC->ncFlags & NC_GenCol ) zIn = "generated columns";
102345 0 0 if( pExpr ) pExpr->op = TK_NULL;
102359 0 0 if( p->op!=TK_FLOAT ) return -1;
102363 0 0 if( r>1.0 ) return -1;
102436 40 28 for(i=0, p=pNC; p && ipNext, i++){
40 0 for(i=0, p=pNC; p && ipNext, i++){
102440 0 28 if( 0==sqlite3ExprCanBeNull(pExpr->pLeft) && !IN_RENAME_OBJECT ){
0 0 if( 0==sqlite3ExprCanBeNull(pExpr->pLeft) && !IN_RENAME_OBJECT ){
102443 0 0 if( pExpr->op==TK_NOTNULL ){
102451 0 0 for(i=0, p=pNC; p && ipNext, i++){
0 0 for(i=0, p=pNC; p && ipNext, i++){
102475 6202 87 if( pExpr->op==TK_ID ){
102484 0 87 sqlite3ResolveNotValid(pParse, pNC, "the \".\" operator",
102487 83 4 if( pRight->op==TK_ID ){
102500 0 87 if( IN_RENAME_OBJECT ){
102512 739 103 int n = pList ? pList->nExpr : 0; /* Number of arguments */
102521 0 842 Window *pWin = (IsWindowFunc(pExpr) ? pExpr->y.pWin : 0);
0 0 Window *pWin = (IsWindowFunc(pExpr) ? pExpr->y.pWin : 0);
102526 6 836 if( pDef==0 ){
102528 6 0 if( pDef==0 ){
102535 0 836 if( pDef->funcFlags & SQLITE_FUNC_UNLIKELY ){
102537 0 0 if( n==2 ){
102539 0 0 if( pExpr->iTable<0 ){
102555 0 0 pExpr->iTable = pDef->zName[0]=='u' ? 8388608 : 125829120;
102561 0 836 if( auth!=SQLITE_OK ){
102562 0 0 if( auth==SQLITE_DENY ){
102572 187 649 if( pDef->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG) ){
102579 649 187 if( (pDef->funcFlags & SQLITE_FUNC_CONSTANT)==0 ){
102586 0 649 sqlite3ResolveNotValid(pParse, pNC, "non-deterministic functions",
102591 0 187 if( pNC->ncFlags & NC_FromDDL ) ExprSetProperty(pExpr, EP_FromDDL);
102593 0 836 if( (pDef->funcFlags & SQLITE_FUNC_INTERNAL)!=0
102594 0 0 && pParse->nested==0
102595 0 0 && (pParse->db->mDbFlags & DBFLAG_InternalFunc)==0
102604 664 172 if( (pDef->funcFlags & (SQLITE_FUNC_DIRECT|SQLITE_FUNC_UNSAFE))!=0
102605 664 0 && !IN_RENAME_OBJECT
102611 842 0 if( 0==IN_RENAME_OBJECT ){
102617 836 6 if( pDef && pDef->xValue==0 && pWin ){
779 57 if( pDef && pDef->xValue==0 && pWin ){
0 779 if( pDef && pDef->xValue==0 && pWin ){
102622 147 695 }else if(
102623 147 0 (is_agg && (pNC->ncFlags & NC_AllowAgg)==0)
102624 147 695 || (is_agg && (pDef->funcFlags&SQLITE_FUNC_WINDOW) && !pWin)
0 147 || (is_agg && (pDef->funcFlags&SQLITE_FUNC_WINDOW) && !pWin)
0 0 || (is_agg && (pDef->funcFlags&SQLITE_FUNC_WINDOW) && !pWin)
102625 147 695 || (is_agg && pWin && (pNC->ncFlags & NC_AllowWin)==0)
0 147 || (is_agg && pWin && (pNC->ncFlags & NC_AllowWin)==0)
0 0 || (is_agg && pWin && (pNC->ncFlags & NC_AllowWin)==0)
102628 0 0 if( (pDef->funcFlags & SQLITE_FUNC_WINDOW) || pWin ){
0 0 if( (pDef->funcFlags & SQLITE_FUNC_WINDOW) || pWin ){
102644 6 836 else if( no_such_func && pParse->db->init.busy==0
6 0 else if( no_such_func && pParse->db->init.busy==0
102651 0 836 }else if( wrong_num_args ){
102657 689 147 else if( is_agg==0 && ExprHasProperty(pExpr, EP_WinFunc) ){
0 689 else if( is_agg==0 && ExprHasProperty(pExpr, EP_WinFunc) ){
102665 147 695 if( is_agg ){
102670 147 0 pNC->ncFlags &= ~(NC_AllowWin | (!pWin ? NC_AllowAgg : 0));
102677 0 0 else if( ExprHasProperty(pExpr, EP_WinFunc) ){
102682 147 695 if( is_agg ){
102684 0 147 if( pWin ){
102687 0 0 if( IN_RENAME_OBJECT==0 ){
102688 0 0 sqlite3WindowUpdate(pParse, pSel ? pSel->pWinDefn : 0, pWin, pDef);
102689 0 0 if( pParse->db->mallocFailed ) break;
102703 0 147 if( ExprHasProperty(pExpr, EP_WinFunc) ){
102708 147 0 while( pNC2
102709 0 147 && sqlite3ReferencesSrcList(pParse, pExpr, pNC2->pSrcList)==0
102715 147 0 if( pNC2 && pDef ){
147 0 if( pNC2 && pDef ){
102738 21 16 if( ExprUseXSelect(pExpr) ){
102744 0 21 if( pNC->ncFlags & NC_SelfRef ){
102750 2 19 if( nRef!=pNC->nRef ){
102762 0 1388 sqlite3ResolveNotValid(pParse, pNC, "parameters",
102772 5 0 if( ALWAYS(pRight) && (pRight->op==TK_ID || pRight->op==TK_TRUEFALSE) ){
5 0 if( ALWAYS(pRight) && (pRight->op==TK_ID || pRight->op==TK_TRUEFALSE) ){
0 5 if( ALWAYS(pRight) && (pRight->op==TK_ID || pRight->op==TK_TRUEFALSE) ){
102774 0 0 if( rc==WRC_Abort ) return WRC_Abort;
102775 0 0 if( pRight->op==TK_TRUEFALSE ){
102791 0 1416 if( pParse->db->mallocFailed ) break;
102794 18 1398 if( pExpr->op==TK_BETWEEN ){
102797 18 0 if( nRight==nLeft ){
102804 0 1416 if( nLeft!=nRight ){
102821 6 9160 return pParse->nErr ? WRC_Abort : WRC_Continue;
102845 657 1 if( pE->op==TK_ID ){
102849 2820 582 for(i=0; inExpr; i++){
102850 2608 212 if( pEList->a[i].fg.eEName==ENAME_NAME
102851 75 2533 && sqlite3_stricmp(pEList->a[i].zEName, zCol)==0
102906 0 0 if( rc ) return 0;
102912 0 0 for(i=0; inExpr; i++){
102913 0 0 if( sqlite3ExprCompare(0, pEList->a[i].pExpr, pE, -1)<2 ){
102964 26 0 if( pOrderBy==0 ) return 0;
102966 0 0 if( pOrderBy->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){
102970 0 0 for(i=0; inExpr; i++){
102974 0 0 while( pSelect->pPrior ){
102978 0 0 while( pSelect && moreToDo ){
0 0 while( pSelect && moreToDo ){
102983 0 0 for(i=0, pItem=pOrderBy->a; inExpr; i++, pItem++){
102986 0 0 if( pItem->fg.done ) continue;
102988 0 0 if( NEVER(pE==0) ) continue;
102989 0 0 if( sqlite3ExprIsInteger(pE, &iCol) ){
102990 0 0 if( iCol<=0 || iCol>pEList->nExpr ){
0 0 if( iCol<=0 || iCol>pEList->nExpr ){
102996 0 0 if( iCol==0 ){
103009 0 0 if( !db->mallocFailed ){
103012 0 0 if( IN_RENAME_OBJECT && iCol>0 ){
0 0 if( IN_RENAME_OBJECT && iCol>0 ){
103019 0 0 if( iCol>0 ){
103022 0 0 if( !IN_RENAME_OBJECT ){
103024 0 0 if( pNew==0 ) return 1;
103027 0 0 if( pItem->pExpr==pE ){
103032 0 0 while( pParent->pLeft->op==TK_COLLATE ) pParent = pParent->pLeft;
103046 0 0 for(i=0; inExpr; i++){
103047 0 0 if( pOrderBy->a[i].fg.done==0 ){
103077 628 0 if( pOrderBy==0 || pParse->db->mallocFailed || IN_RENAME_OBJECT ) return 0;
628 0 if( pOrderBy==0 || pParse->db->mallocFailed || IN_RENAME_OBJECT ) return 0;
0 628 if( pOrderBy==0 || pParse->db->mallocFailed || IN_RENAME_OBJECT ) return 0;
103078 0 628 if( pOrderBy->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){
103084 678 628 for(i=0, pItem=pOrderBy->a; inExpr; i++, pItem++){
103085 157 521 if( pItem->u.x.iOrderByCol ){
103086 0 157 if( pItem->u.x.iOrderByCol>pEList->nExpr ){
103102 0 0 if( ExprHasProperty(pExpr, EP_WinFunc) ){
103114 0 82 if( pSelect->pWin ){
103159 678 628 for(i=0, pItem=pOrderBy->a; inExpr; i++, pItem++){
103162 0 678 if( NEVER(pE2==0) ) continue;
103163 658 20 if( zType[0]!='G' ){
103165 75 583 if( iCol>0 ){
103174 0 603 if( sqlite3ExprIsInteger(pE2, &iCol) ){
103178 0 0 if( iCol<1 || iCol>0xffff ){
0 0 if( iCol<1 || iCol>0xffff ){
103188 0 603 if( sqlite3ResolveExprNames(pNC, pE) ){
103191 2682 603 for(j=0; jpEList->nExpr; j++){
103192 82 2600 if( sqlite3ExprCompare(0, pE, pSelect->pEList->a[j].pExpr, -1)==0 ){
103220 21 1873 if( p->selFlags & SF_Resolved ){
103235 0 1873 if( (p->selFlags & SF_Expanded)==0 ){
103237 0 0 return pParse->nErr ? WRC_Abort : WRC_Prune;
103243 1958 1867 while( p ){
103256 0 1958 if( sqlite3ResolveExprNames(&sNC, p->pLimit) ){
103266 0 1958 if( p->selFlags & SF_Converted ){
103276 1439 1958 for(i=0; ipSrc->nSrc; i++){
103278 35 1404 if( pItem->pSelect && (pItem->pSelect->selFlags & SF_Resolved)==0 ){
35 0 if( pItem->pSelect && (pItem->pSelect->selFlags & SF_Resolved)==0 ){
103279 0 35 int nRef = pOuterNC ? pOuterNC->nRef : 0;
103282 0 35 if( pItem->zName ) pParse->zAuthContext = pItem->zName;
103285 0 35 if( pParse->nErr ) return WRC_Abort;
103294 0 35 if( pOuterNC ){
103309 6 1952 if( sqlite3ResolveExprListNames(&sNC, p->pEList) ) return WRC_Abort;
103317 1932 20 if( pGroupBy || (sNC.ncFlags & NC_HasAgg)!=0 ){
127 1805 if( pGroupBy || (sNC.ncFlags & NC_HasAgg)!=0 ){
103336 6 1946 if( p->pHaving ){
103337 0 6 if( (p->selFlags & SF_Aggregate)==0 ){
103341 0 6 if( sqlite3ResolveExprNames(&sNC, p->pHaving) ) return WRC_Abort;
103343 0 1952 if( sqlite3ResolveExprNames(&sNC, p->pWhere) ) return WRC_Abort;
103346 1439 1952 for(i=0; ipSrc->nSrc; i++){
103348 0 1439 if( pItem->fg.isTabFunc
103349 0 0 && sqlite3ResolveExprListNames(&sNC, pItem->u1.pFuncArg)
103356 0 1952 if( IN_RENAME_OBJECT ){
103358 0 0 for(pWin=p->pWinDefn; pWin; pWin=pWin->pNextWin){
103359 0 0 if( sqlite3ResolveExprListNames(&sNC, pWin->pOrderBy)
103360 0 0 || sqlite3ResolveExprListNames(&sNC, pWin->pPartition)
103379 0 1952 if( p->selFlags & SF_Converted ){
103395 608 1344 if( p->pOrderBy!=0
103396 608 0 && isCompound<=nCompound /* Defer right-most ORDER BY of a compound */
103397 0 608 && resolveOrderGroupBy(&sNC, p, p->pOrderBy, "ORDER")
103401 0 1952 if( db->mallocFailed ){
103409 20 1932 if( pGroupBy ){
103412 20 0 if( resolveOrderGroupBy(&sNC, p, pGroupBy, "GROUP") || db->mallocFailed ){
0 20 if( resolveOrderGroupBy(&sNC, p, pGroupBy, "GROUP") || db->mallocFailed ){
103415 20 20 for(i=0, pItem=pGroupBy->a; inExpr; i++, pItem++){
103416 0 20 if( ExprHasProperty(pItem->pExpr, EP_Agg) ){
103426 85 1867 if( p->pNext && p->pEList->nExpr!=p->pNext->pEList->nExpr ){
0 85 if( p->pNext && p->pEList->nExpr!=p->pNext->pEList->nExpr ){
103440 26 1841 if( isCompound && resolveCompoundOrderBy(pParse, pLeftmost) ){
0 26 if( isCompound && resolveCompoundOrderBy(pParse, pLeftmost) ){
103502 3032 3487 if( pExpr==0 ) return SQLITE_OK;
103507 3487 0 w.xSelectCallback = (pNC->ncFlags & NC_NoSelect) ? 0 : resolveSelectStep;
103512 0 3487 if( sqlite3ExprCheckHeight(w.pParse, w.pParse->nHeight) ){
103526 3487 0 return pNC->nNcErr>0 || w.pParse->nErr>0;
0 3487 return pNC->nNcErr>0 || w.pParse->nErr>0;
103541 0 4657 if( pList==0 ) return WRC_Continue;
103549 7896 4647 for(i=0; inExpr; i++){
103551 0 7896 if( pExpr==0 ) continue;
103554 0 7896 if( sqlite3ExprCheckHeight(w.pParse, w.pParse->nHeight) ){
103566 141 7755 if( pNC->ncFlags & (NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg) ){
103572 10 7886 if( w.pParse->nErr>0 ) return WRC_Abort;
103640 138 0 if( pTab ){
103645 136 2 if( pTab->pSchema!=pParse->db->aDb[1].pSchema ){
103654 0 138 if( (rc = sqlite3ResolveExprNames(&sNC, pExpr))!=SQLITE_OK ) return rc;
103655 6 132 if( pList ) rc = sqlite3ResolveExprListNames(&sNC, pList);
103685 1887 10 if( iCol<0 || NEVER(iCol>=pTab->nCol) ) return SQLITE_AFF_INTEGER;
0 1887 if( iCol<0 || NEVER(iCol>=pTab->nCol) ) return SQLITE_AFF_INTEGER;
103707 5 3706 while( ExprHasProperty(pExpr, EP_Skip|EP_IfNullRow) ){
103715 10 3696 if( op==TK_REGISTER ) op = pExpr->op2;
103716 1809 1897 if( op==TK_COLUMN || op==TK_AGG_COLUMN ){
0 1809 if( op==TK_COLUMN || op==TK_AGG_COLUMN ){
103718 1897 0 if( pExpr->y.pTab ){
103722 2 1807 if( op==TK_SELECT ){
103730 2 1805 if( op==TK_CAST ){
103735 0 1805 if( op==TK_SELECT_COLUMN ){
103743 0 1805 if( op==TK_VECTOR ){
103764 356 0 if( pCollName->n>0 ){
103766 356 0 if( pNew ){
103789 3569 41 while( pExpr && ExprHasProperty(pExpr, EP_Skip) ){
341 3228 while( pExpr && ExprHasProperty(pExpr, EP_Skip) ){
103802 10510 932 while( pExpr && ExprHasProperty(pExpr, EP_Skip|EP_Unlikely) ){
133 10377 while( pExpr && ExprHasProperty(pExpr, EP_Skip|EP_Unlikely) ){
103803 0 133 if( ExprHasProperty(pExpr, EP_Unlikely) ){
103834 2328 0 while( p ){
103836 0 2328 if( op==TK_REGISTER ) op = p->op2;
103837 2312 16 if( op==TK_AGG_COLUMN || op==TK_COLUMN || op==TK_TRIGGER ){
205 2107 if( op==TK_AGG_COLUMN || op==TK_COLUMN || op==TK_TRIGGER ){
0 205 if( op==TK_AGG_COLUMN || op==TK_COLUMN || op==TK_TRIGGER ){
103839 2123 0 if( p->y.pTab!=0 ){
103843 1585 538 if( j>=0 ){
103850 203 2 if( op==TK_CAST || op==TK_UPLUS ){
0 203 if( op==TK_CAST || op==TK_UPLUS ){
103854 0 203 if( op==TK_VECTOR ){
103859 21 182 if( op==TK_COLLATE ){
103864 0 182 if( p->flags & EP_Collate ){
103865 0 0 if( p->pLeft && (p->pLeft->flags & EP_Collate)!=0 ){
0 0 if( p->pLeft && (p->pLeft->flags & EP_Collate)!=0 ){
103872 0 0 if( p->x.pList!=0 && !db->mallocFailed ){
0 0 if( p->x.pList!=0 && !db->mallocFailed ){
103874 0 0 for(i=0; ALWAYS(ix.pList->nExpr); i++){
103875 0 0 if( ExprHasProperty(p->x.pList->a[i].pExpr, EP_Collate) ){
103887 0 2326 if( sqlite3CheckCollSeq(pParse, pColl) ){
103905 503 290 if( p==0 ) p = pParse->db->pDfltColl;
103926 765 683 if( aff1>SQLITE_AFF_NONE && aff2>SQLITE_AFF_NONE ){
34 731 if( aff1>SQLITE_AFF_NONE && aff2>SQLITE_AFF_NONE ){
103930 15 19 if( sqlite3IsNumericAffinity(aff1) || sqlite3IsNumericAffinity(aff2) ){
0 15 if( sqlite3IsNumericAffinity(aff1) || sqlite3IsNumericAffinity(aff2) ){
103938 683 731 return (aff1<=SQLITE_AFF_NONE ? aff2 : aff1) | SQLITE_AFF_NONE;
103953 617 0 if( pExpr->pRight ){
103955 0 0 }else if( ExprUseXSelect(pExpr) ){
103957 0 0 }else if( aff==0 ){
103971 37 580 if( aff
103974 399 181 if( aff==SQLITE_AFF_TEXT ){
104013 0 1235 if( pLeft->flags & EP_Collate ){
104015 1235 0 }else if( pRight && (pRight->flags & EP_Collate)!=0 ){
0 1235 }else if( pRight && (pRight->flags & EP_Collate)!=0 ){
104019 32 1203 if( !pColl ){
104035 0 433 if( ExprHasProperty(p, EP_Commuted) ){
104059 0 761 if( pParse->nErr ) return 0;
104060 0 761 if( isCommuted ){
104093 300 5133 if( op==TK_REGISTER ) op = pExpr->op2;
104094 0 5433 if( op==TK_VECTOR ){
104097 2 5431 }else if( op==TK_SELECT ){
104122 0 60 if( sqlite3ExprIsVector(pVector) ){
104124 0 0 if( pVector->op==TK_SELECT || pVector->op2==TK_SELECT ){
0 0 if( pVector->op==TK_SELECT || pVector->op2==TK_SELECT ){
104163 0 0 if( pVector->op==TK_SELECT ){
104182 0 0 if( pRet ){
104188 0 0 if( pVector->op==TK_VECTOR ){
104193 0 0 if( IN_RENAME_OBJECT ){
104215 0 0 if( pExpr->op==TK_SELECT ){
104250 0 0 if( op==TK_REGISTER ){
104254 0 0 if( op==TK_SELECT ){
104259 0 0 if( op==TK_VECTOR ){
104298 0 0 if( pParse->nErr ) return;
104299 0 0 if( nLeft!=sqlite3ExprVectorSize(pRight) ){
104313 0 0 if( op==TK_LE ) opx = TK_LT;
104314 0 0 if( op==TK_GE ) opx = TK_GT;
104315 0 0 if( op==TK_NE ) opx = TK_EQ;
104326 0 0 if( addrCmp ) sqlite3VdbeJumpHere(v, addrCmp);
104339 0 0 if( (opx==TK_LT || opx==TK_GT) && i
0 0 if( (opx==TK_LT || opx==TK_GT) && i
0 0 if( (opx==TK_LT || opx==TK_GT) && i
104344 0 0 if( p5==SQLITE_NULLEQ ){
104349 0 0 if( i==nLeft-1 ){
104352 0 0 if( opx==TK_EQ ){
104357 0 0 if( i==nLeft-2 ) opx = op;
104362 0 0 if( op==TK_NE ){
104376 0 15252 if( nHeight>mxHeight ){
104395 1652 146 if( p ){
104396 806 846 if( p->nHeight>*pnHeight ){
104402 862 88 if( p ){
104404 1603 862 for(i=0; inExpr; i++){
104411 65 65 for(p=pSelect; p; p=p->pPrior){
104432 2291 1581 int nHeight = p->pLeft ? p->pLeft->nHeight : 0;
104433 2285 1587 if( p->pRight && p->pRight->nHeight>nHeight ) nHeight = p->pRight->nHeight;
114 2171 if( p->pRight && p->pRight->nHeight>nHeight ) nHeight = p->pRight->nHeight;
104434 21 3851 if( ExprUseXSelect(p) ){
104436 755 3096 }else if( p->x.pList ){
104452 0 879 if( pParse->nErr ) return;
104511 5281 14 if( pToken ){
104512 579 4702 if( op!=TK_INTEGER || pToken->z==0
579 0 if( op!=TK_INTEGER || pToken->z==0
104513 12 567 || sqlite3GetInt32(pToken->z, &iValue)==0 ){
104519 5295 0 if( pNew ){
104523 5281 14 if( pToken ){
104524 567 4714 if( nExtra==0 ){
104525 529 38 pNew->flags |= EP_IntValue|EP_Leaf|(iValue?EP_IsTrue:EP_IsFalse);
104530 4124 590 if( pToken->n ) memcpy(pNew->u.zToken, pToken->z, pToken->n);
104532 897 3817 if( dequote && sqlite3Isquote(pNew->u.zToken[0]) ){
0 897 if( dequote && sqlite3Isquote(pNew->u.zToken[0]) ){
104571 0 2993 if( pRoot==0 ){
104576 2285 708 if( pRight ){
104580 2272 721 if( pLeft ){
104603 2990 0 if( p ){
104621 21 0 if( pExpr ){
104654 0 0 for(ii=0; iinExpr; ii++){
104658 0 0 if( pExpr->op==TK_VECTOR ){
104664 0 0 if( nExprElem!=nElem ){
104665 0 0 sqlite3ErrorMsg(pParse, "IN(...) element has %d term%s - expected %d",
104673 0 0 if( pSel ){
104674 0 0 if( pRet ){
104682 0 0 if( pRet && pRet->pPrior ){
0 0 if( pRet && pRet->pPrior ){
104699 75 361 if( pLeft==0 ){
104701 0 361 }else if( pRight==0 ){
104703 361 0 }else if( (ExprAlwaysFalse(pLeft) || ExprAlwaysFalse(pRight))
0 361 }else if( (ExprAlwaysFalse(pLeft) || ExprAlwaysFalse(pRight))
104704 0 0 && !IN_RENAME_OBJECT
104728 0 842 if( pNew==0 ){
104734 739 103 if( pList
104735 0 739 && pList->nExpr > pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG]
104736 0 0 && !pParse->nested
104744 0 842 if( eDistinct==SF_Distinct ) ExprSetProperty(pNew, EP_Distinct);
104766 0 1155 if( ExprHasProperty(pExpr, EP_FromDDL) ){
104767 0 0 if( (pDef->funcFlags & SQLITE_FUNC_DIRECT)!=0
104768 0 0 || (pParse->db->flags & SQLITE_TrustedSchema)==0
104803 0 1398 if( pExpr==0 ) return;
104809 1367 31 if( z[1]==0 ){
104815 13 18 if( z[0]=='?' ){
104820 13 0 if( n==2 ){ /*OPTIMIZATION-IF-TRUE*/
104830 13 0 if( bOk==0 || i<1 || i>db->aLimit[SQLITE_LIMIT_VARIABLE_NUMBER] ){
13 0 if( bOk==0 || i<1 || i>db->aLimit[SQLITE_LIMIT_VARIABLE_NUMBER] ){
0 13 if( bOk==0 || i<1 || i>db->aLimit[SQLITE_LIMIT_VARIABLE_NUMBER] ){
104837 13 0 if( x>pParse->nVar ){
104840 0 0 }else if( sqlite3VListNumToName(pParse->pVList, x)==0 ){
104849 17 1 if( x==0 ){
104854 30 1 if( doAdd ){
104859 2 1396 if( x>db->aLimit[SQLITE_LIMIT_VARIABLE_NUMBER] ){
104882 5415 16125 if( !ExprHasProperty(p, (EP_TokenOnly|EP_Leaf)) ){
104885 2777 2638 if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft);
2777 0 if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft);
104886 2209 3206 if( p->pRight ){
104889 21 3185 }else if( ExprUseXSelect(p) ){
104895 0 3185 if( ExprHasProperty(p, EP_WinFunc) ){
104901 0 21540 if( ExprHasProperty(p, EP_MemToken) ){
104905 21536 4 if( !ExprHasProperty(p, EP_Static) ){
104910 16554 18826 if( p ) sqlite3ExprDeleteNN(db, p);
104917 0 0 if( p==0 ){
104919 0 0 }else if( p->pOn ){
104921 0 0 }else if( p->pUsing ){
104945 0 0 if( p ){
104946 0 0 if( IN_RENAME_OBJECT ){
104959 0 3396 if( ExprHasProperty(p, EP_TokenOnly) ) return EXPR_TOKENONLYSIZE;
104960 0 3396 if( ExprHasProperty(p, EP_Reduced) ) return EXPR_REDUCEDSIZE;
105003 24 6792 if( 0==flags || p->op==TK_SELECT_COLUMN
24 0 if( 0==flags || p->op==TK_SELECT_COLUMN
105005 0 24 || ExprHasProperty(p, EP_WinFunc)
105014 12 12 if( p->pLeft || p->x.pList ){
0 12 if( p->pLeft || p->x.pList ){
105031 3315 97 if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){
3193 122 if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){
105052 3404 12 if( p ){
105054 8 3396 if( flags&EXPRDUP_REDUCE ){
105080 4 3400 if( pzBuffer ){
105090 3404 0 if( pNew ){
105099 3309 95 if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){
3187 122 if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){
105104 8 3396 if( dupFlags ){
105110 0 3396 if( nSize
105125 3187 217 if( nToken ){
105130 578 2826 if( 0==((p->flags|pNew->flags) & (EP_TokenOnly|EP_Leaf)) ){
105132 0 578 if( ExprUseXSelect(p) ){
105140 8 3396 if( ExprHasProperty(pNew, EP_Reduced|EP_TokenOnly|EP_WinFunc) ){
105142 4 4 if( !ExprHasProperty(pNew, EP_TokenOnly|EP_Leaf) ){
105144 4 0 exprDup(db, p->pLeft, EXPRDUP_REDUCE, &zAlloc) : 0;
105146 0 4 exprDup(db, p->pRight, EXPRDUP_REDUCE, &zAlloc) : 0;
105149 0 8 if( ExprHasProperty(p, EP_WinFunc) ){
105154 4 4 if( pzBuffer ){
105158 574 2822 if( !ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){
105159 0 574 if( pNew->op==TK_SELECT_COLUMN ){
105181 0 3 if( p ){
105184 0 0 if( pRet ){
105187 0 0 for(i=0; inCte; i++){
105209 0 0 if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_WinFunc) ){
0 0 if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_WinFunc) ){
105253 3400 946 return p ? exprDup(db, p, flags, 0) : 0;
105263 377 226 if( p==0 ) return 0;
105265 0 226 if( pNew==0 ) return 0;
105270 395 226 for(i=0; inExpr; i++, pItem++, pOldItem++){
105274 395 0 if( pOldExpr
105275 0 395 && pOldExpr->op==TK_SELECT_COLUMN
105276 0 0 && (pNewExpr = pItem->pExpr)!=0
105278 0 0 if( pNewExpr->pRight ){
105283 0 0 if( pOldExpr->pLeft!=pPriorSelectColOld ){
105312 0 3 if( p==0 ) return 0;
105313 3 0 nByte = sizeof(*p) + (p->nSrc>0 ? sizeof(p->a[0]) * (p->nSrc-1) : 0);
105315 0 3 if( pNew==0 ) return 0;
105317 3 3 for(i=0; inSrc; i++){
105329 0 3 if( pNewItem->fg.isIndexedBy ){
105333 0 3 if( pNewItem->fg.isCte ){
105336 0 3 if( pNewItem->fg.isTabFunc ){
105341 3 0 if( pTab ){
105345 0 3 if( pOldItem->fg.isUsing ){
105359 0 0 if( p==0 ) return 0;
105362 0 0 if( pNew==0 ) return 0;
105365 0 0 for(i=0; inId; i++){
105380 3 6 for(p=pDup; p; p=p->pPrior){
105382 0 3 if( pNew==0 ) break;
105403 0 3 if( p->pWin && db->mallocFailed==0 ) gatherSelectWindows(pNew);
0 0 if( p->pWin && db->mallocFailed==0 ) gatherSelectWindows(pNew);
105406 0 3 if( db->mallocFailed ){
105453 0 8003 if( pList==0 ){
105474 0 906 if( pNew==0 ){
105492 8003 5768 if( pList==0 ){
105495 906 4862 if( pList->nAllocnExpr+1 ){
105524 0 0 int iFirst = pList ? pList->nExpr : 0;
105527 0 0 if( NEVER(pColumns==0) ) goto vector_append_error;
105528 0 0 if( pExpr==0 ) goto vector_append_error;
105535 0 0 if( pExpr->op!=TK_SELECT && pColumns->nId!=(n=sqlite3ExprVectorSize(pExpr)) ){
0 0 if( pExpr->op!=TK_SELECT && pColumns->nId!=(n=sqlite3ExprVectorSize(pExpr)) ){
105541 0 0 for(i=0; inId; i++){
105544 0 0 if( pSubExpr==0 ) continue;
105546 0 0 if( pList ){
105553 0 0 if( !db->mallocFailed && pExpr->op==TK_SELECT && ALWAYS(pList!=0) ){
0 0 if( !db->mallocFailed && pExpr->op==TK_SELECT && ALWAYS(pList!=0) ){
0 0 if( !db->mallocFailed && pExpr->op==TK_SELECT && ALWAYS(pList!=0) ){
105579 0 796 if( p==0 ) return;
105594 746 50 if( iSortOrder==SQLITE_SO_UNDEFINED ){
105599 0 796 if( eNulls!=SQLITE_SO_UNDEFINED ){
105601 0 0 if( iSortOrder!=eNulls ){
105623 1836 0 if( pList ){
105630 1836 0 if( dequote ){
105635 0 1836 if( IN_RENAME_OBJECT ){
105658 1943 0 if( pList ){
105661 1627 316 if( pItem->zEName==0 ){
105680 363 0 if( pEList && pEList->nExpr>mx ){
0 363 if( pEList && pEList->nExpr>mx ){
105696 5937 8229 }while( --i>0 );
105700 8229 17907 if( pList ) exprListDeleteNN(db, pList);
105711 1270 755 for(i=0; inExpr; i++){
105741 0 146 if( sqlite3StrICmp(zIn, "true")==0 ) return EP_IsTrue;
105742 0 146 if( sqlite3StrICmp(zIn, "false")==0 ) return EP_IsFalse;
105755 0 4 if( !ExprHasProperty(pExpr, EP_Quoted|EP_IntValue)
105756 0 0 && (v = sqlite3IsTrueOrFalse(pExpr->u.zToken))!=0
105793 36 16 if( pExpr->op==TK_AND || pExpr->op==TK_OR ){
6 30 if( pExpr->op==TK_AND || pExpr->op==TK_OR ){
105796 22 0 if( ExprAlwaysTrue(pLeft) || ExprAlwaysFalse(pRight) ){
0 22 if( ExprAlwaysTrue(pLeft) || ExprAlwaysFalse(pRight) ){
105797 0 0 pExpr = pExpr->op==TK_AND ? pRight : pLeft;
105798 22 0 }else if( ExprAlwaysTrue(pRight) || ExprAlwaysFalse(pLeft) ){
0 22 }else if( ExprAlwaysTrue(pRight) || ExprAlwaysFalse(pLeft) ){
105799 0 0 pExpr = pExpr->op==TK_AND ? pLeft : pRight;
105837 4032 1764 if( pWalker->eCode==2 && ExprHasProperty(pExpr, EP_OuterON) ){
12 4020 if( pWalker->eCode==2 && ExprHasProperty(pExpr, EP_OuterON) ){
105847 871 0 if( (pWalker->eCode>=4 || ExprHasProperty(pExpr,EP_ConstFunc))
360 511 if( (pWalker->eCode>=4 || ExprHasProperty(pExpr,EP_ConstFunc))
105848 360 0 && !ExprHasProperty(pExpr, EP_WinFunc)
105850 0 360 if( pWalker->eCode==5 ) ExprSetProperty(pExpr, EP_FromDDL);
105859 0 0 if( sqlite3ExprIdToTrueFalse(pExpr) ){
105870 0 1428 if( ExprHasProperty(pExpr, EP_FixedCol) && pWalker->eCode!=2 ){
0 0 if( ExprHasProperty(pExpr, EP_FixedCol) && pWalker->eCode!=2 ){
105873 23 1405 if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){
22 1 if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){
105886 0 1385 if( pWalker->eCode==5 ){
105891 0 1385 }else if( pWalker->eCode==4 ){
105980 0 23 if( pSrc->fg.jointype & JT_LTORJ ){
105983 0 23 if( pSrc->fg.jointype & JT_LEFT ){
105984 0 0 if( !ExprHasProperty(pExpr, EP_OuterON) ) return 0; /* rule (4a) */
105985 0 0 if( pExpr->w.iJoin!=pSrc->iCursor ) return 0; /* rule (4b) */
105987 0 23 if( ExprHasProperty(pExpr, EP_OuterON) ) return 0; /* rule (5) */
106002 12 12 for(i=0; inExpr; i++){
106004 0 12 if( sqlite3ExprCompare(0, pExpr, p, -1)<2 ){
106006 0 0 if( sqlite3IsBinary(pColl) ){
106013 0 12 if( ExprUseXSelect(pExpr) ){
106103 0 1152 if( NEVER(p==0) ) return 0; /* Used to only happen following on OOM */
106110 61 1091 if( p->flags & EP_IntValue ){
106121 0 0 if( sqlite3ExprIsInteger(p->pLeft, &v) ){
106150 0 116 while( p->op==TK_UPLUS || p->op==TK_UMINUS ){
0 116 while( p->op==TK_UPLUS || p->op==TK_UMINUS ){
106155 0 116 if( op==TK_REGISTER ) op = p->op2;
106164 52 0 return ExprHasProperty(p, EP_CanBeNull) ||
106165 52 3 p->y.pTab==0 || /* Reference to column of index on expression */
50 2 p->y.pTab==0 || /* Reference to column of index on expression */
106167 50 0 && p->y.pTab->aCol!=0 /* Possible due to prior error */
106168 50 0 && p->y.pTab->aCol[p->iColumn].notNull==0);
106187 5 62 if( aff==SQLITE_AFF_BLOB ) return 1;
106188 0 62 while( p->op==TK_UPLUS || p->op==TK_UMINUS ){
0 62 while( p->op==TK_UPLUS || p->op==TK_UMINUS ){
106189 0 0 if( p->op==TK_UMINUS ) unaryMinus = 1;
106193 0 62 if( op==TK_REGISTER ) op = p->op2;
106202 0 0 return !unaryMinus && aff==SQLITE_AFF_TEXT;
0 0 return !unaryMinus && aff==SQLITE_AFF_TEXT;
106209 4 0 return aff>=SQLITE_AFF_NUMERIC && p->iColumn<0;
2 2 return aff>=SQLITE_AFF_NUMERIC && p->iColumn<0;
106221 0 923 if( sqlite3StrICmp(z, "_ROWID_")==0 ) return 1;
106222 914 9 if( sqlite3StrICmp(z, "ROWID")==0 ) return 1;
106223 0 9 if( sqlite3StrICmp(z, "OID")==0 ) return 1;
106241 16 3 if( !ExprUseXSelect(pX) ) return 0; /* Not a subquery */
106242 0 3 if( ExprHasProperty(pX, EP_VarSelect) ) return 0; /* Correlated subq */
106244 0 3 if( p->pPrior ) return 0; /* Not a compound SELECT */
106245 0 3 if( p->selFlags & (SF_Distinct|SF_Aggregate) ){
106251 0 3 if( p->pLimit ) return 0; /* Has no LIMIT clause */
106252 1 2 if( p->pWhere ) return 0; /* Has no WHERE clause */
106255 0 2 if( pSrc->nSrc!=1 ) return 0; /* Single term in FROM clause */
106256 0 2 if( pSrc->a[0].pSelect ) return 0; /* FROM is not a subquery or view */
106260 2 0 if( IsVirtual(pTab) ) return 0; /* FROM clause not a virtual table */
106264 0 0 for(i=0; inExpr; i++){
106266 0 0 if( pRes->op!=TK_COLUMN ) return 0;
106416 0 19 if( prRhsHasNull && ExprUseXSelect(pX) ){
0 0 if( prRhsHasNull && ExprUseXSelect(pX) ){
106419 0 0 for(i=0; inExpr; i++){
106420 0 0 if( sqlite3ExprCanBeNull(pEList->a[i].pExpr) ) break;
106422 0 0 if( i==pEList->nExpr ){
106430 19 0 if( pParse->nErr==0 && (p = isCandidateForInOpt(pX))!=0 ){
0 19 if( pParse->nErr==0 && (p = isCandidateForInOpt(pX))!=0 ){
106449 0 0 if( nExpr==1 && pEList->a[0].pExpr->iColumn<0 ){
0 0 if( nExpr==1 && pEList->a[0].pExpr->iColumn<0 ){
106468 0 0 for(i=0; i
0 0 for(i=0; i
106490 0 0 if( affinity_ok ){
106492 0 0 for(pIdx=pTab->pIndex; pIdx && eType==0; pIdx=pIdx->pNext){
0 0 for(pIdx=pTab->pIndex; pIdx && eType==0; pIdx=pIdx->pNext){
106495 0 0 if( pIdx->nColumn
106496 0 0 if( pIdx->pPartIdxWhere!=0 ) continue;
106501 0 0 if( pIdx->nColumn>=BMS-1 ) continue;
106502 0 0 if( mustBeUnique ){
106503 0 0 if( pIdx->nKeyCol>nExpr
106504 0 0 ||(pIdx->nColumn>nExpr && !IsUniqueIndex(pIdx))
0 0 ||(pIdx->nColumn>nExpr && !IsUniqueIndex(pIdx))
106511 0 0 for(i=0; i
106518 0 0 for(j=0; j
106519 0 0 if( pIdx->aiColumn[j]!=pRhs->iColumn ) continue;
106521 0 0 if( pReq!=0 && sqlite3StrICmp(pReq->zName, pIdx->azColl[j])!=0 ){
0 0 if( pReq!=0 && sqlite3StrICmp(pReq->zName, pIdx->azColl[j])!=0 ){
106526 0 0 if( j==nExpr ) break;
106528 0 0 if( mCol & colUsed ) break; /* Each column used only once */
106530 0 0 if( aiMap ) aiMap[i] = j;
106534 0 0 if( colUsed==(MASKBIT(nExpr)-1) ){
106545 0 0 if( prRhsHasNull ){
106552 0 0 if( nExpr==1 ){
106570 19 0 if( eType==0
106571 16 3 && (inFlags & IN_INDEX_NOOP_OK)
106572 16 0 && ExprUseXList(pX)
106573 16 0 && (!sqlite3InRhsIsConstant(pX) || pX->x.pList->nExpr<=2)
16 0 && (!sqlite3InRhsIsConstant(pX) || pX->x.pList->nExpr<=2)
106580 3 16 if( eType==0 ){
106587 3 0 if( inFlags & IN_INDEX_LOOP ){
106589 0 0 }else if( prRhsHasNull ){
106594 0 3 if( rMayHaveNull ){
106600 16 3 if( aiMap && eType!=IN_INDEX_INDEX_ASC && eType!=IN_INDEX_INDEX_DESC ){
16 0 if( aiMap && eType!=IN_INDEX_INDEX_ASC && eType!=IN_INDEX_INDEX_DESC ){
16 0 if( aiMap && eType!=IN_INDEX_INDEX_ASC && eType!=IN_INDEX_INDEX_DESC ){
106603 16 16 for(i=0; i
106622 3 16 Select *pSelect = ExprUseXSelect(pExpr) ? pExpr->x.pSelect : 0;
106627 19 0 if( zRet ){
106629 19 19 for(i=0; i
106632 3 16 if( pSelect ){
106652 0 0 if( pParse->nErr==0 ){
106672 0 0 if( ExprUseXSelect(pExpr) ){
106729 3 0 if( !ExprHasProperty(pExpr, EP_VarSelect) && pParse->iSelfTab==0 ){
3 0 if( !ExprHasProperty(pExpr, EP_VarSelect) && pParse->iSelfTab==0 ){
106734 0 3 if( ExprHasProperty(pExpr, EP_Subrtn) ){
106736 0 0 if( ExprUseXSelect(pExpr) ){
106778 3 0 if( ExprUseXSelect(pExpr) ){
106787 3 0 ExplainQueryPlan((pParse, 1, "%sLIST SUBQUERY %d",
106792 3 0 if( ALWAYS(pEList->nExpr==nVal) ){
106803 3 0 rc = pParse->db->mallocFailed ? 1 :sqlite3Select(pParse, pCopy, &dest);
106806 0 3 if( rc ){
106814 3 3 for(i=0; i
106821 0 0 }else if( ALWAYS(pExpr->x.pList!=0) ){
106835 0 0 if( affinity<=SQLITE_AFF_NONE ){
106837 0 0 }else if( affinity==SQLITE_AFF_REAL ){
106840 0 0 if( pKeyInfo ){
106848 0 0 for(i=pList->nExpr, pItem=pList->a; i>0; i--, pItem++){
106856 0 0 if( addrOnce && !sqlite3ExprIsConstant(pE2) ){
0 0 if( addrOnce && !sqlite3ExprIsConstant(pE2) ){
106871 3 0 if( pKeyInfo ){
106874 3 0 if( addrOnce ){
106913 0 18 if( pParse->nErr ) return 0;
106922 0 18 if( ExprHasProperty(pExpr, EP_Subrtn) ){
106948 16 2 if( !ExprHasProperty(pExpr, EP_VarSelect) ){
106962 16 2 ExplainQueryPlan((pParse, 1, "%sSCALAR SUBQUERY %d",
106964 18 0 nReg = pExpr->op==TK_SELECT ? pSel->pEList->nExpr : 1;
106967 18 0 if( pExpr->op==TK_SELECT ){
106978 0 18 if( pSel->pLimit ){
106983 0 0 if( pLimit ){
106996 0 18 if( sqlite3Select(pParse, pSel, &dest) ){
107003 16 2 if( addrOnce ){
107028 3 32 if( ExprUseXSelect(pIn) && !pParse->db->mallocFailed ){
3 0 if( ExprUseXSelect(pIn) && !pParse->db->mallocFailed ){
107029 0 3 if( nVector!=pIn->x.pSelect->pEList->nExpr ){
107033 0 32 }else if( nVector!=1 ){
107094 0 16 if( sqlite3ExprCheckIN(pParse, pExpr) ) return;
107100 0 16 if( pParse->db->mallocFailed ) goto sqlite3ExprCodeIN_oom_error;
107109 0 16 eType = sqlite3FindInIndex(pParse, pExpr,
107143 16 16 for(i=0; i
16 0 for(i=0; i
107144 16 0 if( i==nVector ){
107150 0 0 for(i=0; i
107161 16 0 if( eType==IN_INDEX_NOOP ){
107171 0 16 if( destIfNull!=destIfFalse ){
107175 32 16 for(ii=0; iinExpr; ii++){
107177 0 32 if( regCkNull && sqlite3ExprCanBeNull(pList->a[ii].pExpr) ){
0 0 if( regCkNull && sqlite3ExprCanBeNull(pList->a[ii].pExpr) ){
107181 16 16 if( iinExpr-1 || destIfNull!=destIfFalse ){
0 16 if( iinExpr-1 || destIfNull!=destIfFalse ){
107182 16 0 int op = rLhs!=r2 ? OP_Eq : OP_NotNull;
107191 16 0 int op = rLhs!=r2 ? OP_Ne : OP_IsNull;
107200 0 16 if( regCkNull ){
107213 0 0 if( destIfNull==destIfFalse ){
107218 0 0 for(i=0; i
107220 0 0 if( pParse->nErr ) goto sqlite3ExprCodeIN_oom_error;
107221 0 0 if( sqlite3ExprCanBeNull(p) ){
107231 0 0 if( eType==IN_INDEX_ROWID ){
107240 0 0 if( destIfFalse==destIfNull ){
107254 0 0 if( rRhsHasNull && nVector==1 ){
0 0 if( rRhsHasNull && nVector==1 ){
107262 0 0 if( destIfFalse==destIfNull ) sqlite3VdbeGoto(v, destIfFalse);
107271 0 0 if( destStep6 ) sqlite3VdbeResolveLabel(v, destStep6);
107274 0 0 if( nVector>1 ){
107281 0 0 for(i=0; i
107294 0 0 if( nVector>1 ){
107308 0 16 if( rLhs!=rLhsOrig ) sqlite3ReleaseTempReg(pParse, rLhs);
107326 2166 0 if( ALWAYS(z!=0) ){
107330 0 2166 if( negateFlag ) value = -value;
107345 543 12 if( pExpr->flags & EP_IntValue ){
107348 1 542 if( negFlag ) i = -i;
107356 0 12 if( (c==3 && !negFlag) || (c==2) || (negFlag && value==SMALLEST_INT64)){
0 0 if( (c==3 && !negFlag) || (c==2) || (negFlag && value==SMALLEST_INT64)){
12 0 if( (c==3 && !negFlag) || (c==2) || (negFlag && value==SMALLEST_INT64)){
0 12 if( (c==3 && !negFlag) || (c==2) || (negFlag && value==SMALLEST_INT64)){
0 0 if( (c==3 && !negFlag) || (c==2) || (negFlag && value==SMALLEST_INT64)){
107361 0 0 if( sqlite3_strnicmp(z,"0x",2)==0 ){
107362 0 0 sqlite3ErrorMsg(pParse, "hex literal too big: %s%#T",
107371 0 12 if( negFlag ){ value = c==3 ? SMALLEST_INT64 : -value; }
0 0 if( negFlag ){ value = c==3 ? SMALLEST_INT64 : -value; }
107389 0 14 if( iTabCol==XN_EXPR ){
107416 0 0 if( pParse->iSelfTab>0 ){
107422 0 0 if( pCol->affinity>=SQLITE_AFF_TEXT ){
107425 0 0 if( iAddr ) sqlite3VdbeJumpHere(v, iAddr);
107441 0 4883 if( pTab==0 ){
107445 4723 160 if( iCol<0 || iCol==pTab->iPKey ){
2 4721 if( iCol<0 || iCol==pTab->iPKey ){
107451 214 4507 if( IsVirtual(pTab) ){
107455 0 4507 }else if( (pCol = &pTab->aCol[iCol])->colFlags & COLFLAG_VIRTUAL ){
107457 0 0 if( pCol->colFlags & COLFLAG_BUSY ){
107470 0 4507 }else if( !HasRowid(pTab) ){
107501 17 4768 if( p5 ){
107503 17 0 if( pOp->opcode==OP_Column ) pOp->p5 = p5;
107523 0 0 if( NEVER(p==0) ) return;
107543 16 0 if( nResult==1 ){
107547 0 0 if( p->op==TK_SELECT ){
107558 0 0 for(i=0; i
107571 0 8 if( sqlite3VdbeGetOp(v, -1)->opcode==OP_Copy ){
107602 8 8 for(i=1; i
107666 0 0 if( pA1->op==TK_COLUMN ){
107685 0 0 sqlite3VdbeLoadString(v, target,
107720 66 13329 if( pExpr==0 ){
107733 15 77 if( !pAggInfo->directMode ){
107736 23 54 }else if( pAggInfo->useSortingIdx ){
107740 23 0 if( pCol->iColumn<0 ){
107745 0 23 if( pTab->aCol[pCol->iColumn].affinity==SQLITE_AFF_REAL ){
107757 0 4785 if( ExprHasProperty(pExpr, EP_FixedCol) ){
107767 0 0 if( pExpr->y.pTab ){
107772 0 0 if( aff>SQLITE_AFF_BLOB ){
107781 0 4785 if( iTab<0 ){
107782 0 0 if( pParse->iSelfTab<0 ){
107798 0 0 if( iCol<0 ){
107805 0 0 if( pCol->colFlags & COLFLAG_GENERATED ){
107806 0 0 if( pCol->colFlags & COLFLAG_BUSY ){
107812 0 0 if( pCol->colFlags & COLFLAG_NOTAVAIL ){
107819 0 0 if( pCol->affinity==SQLITE_AFF_REAL ){
107836 0 4785 if( pExpr->y.pTab==0 && pExpr->affExpr==SQLITE_AFF_REAL ){
0 0 if( pExpr->y.pTab==0 && pExpr->affExpr==SQLITE_AFF_REAL ){
107891 31 1357 if( pExpr->u.zToken[1]!=0 ){
107906 0 3 if( inReg!=target ){
107918 0 0 op = (op==TK_IS) ? TK_EQ : TK_NE;
107928 0 0 if( sqlite3ExprIsVector(pLeft) ){
107943 0 0 if( p5==SQLITE_NULLEQ ){
107986 1 0 if( pLeft->op==TK_INTEGER ){
107990 0 0 }else if( pLeft->op==TK_FLOAT ){
108045 147 0 if( pInfo==0
108046 147 0 || NEVER(pExpr->iAgg<0)
108047 0 147 || NEVER(pExpr->iAgg>=pInfo->nFunc)
108068 0 760 if( ExprHasProperty(pExpr, EP_WinFunc) ){
108073 646 114 if( ConstFactorOk(pParse) && sqlite3ExprIsConstantNotJoin(pExpr) ){
57 589 if( ConstFactorOk(pParse) && sqlite3ExprIsConstantNotJoin(pExpr) ){
108081 685 18 nFarg = pFarg ? pFarg->nExpr : 0;
108090 703 0 if( pDef==0 || pDef->xFinalize!=0 ){
0 703 if( pDef==0 || pDef->xFinalize!=0 ){
108094 8 695 if( pDef->funcFlags & SQLITE_FUNC_INLINE ){
108099 491 204 }else if( pDef->funcFlags & (SQLITE_FUNC_DIRECT|SQLITE_FUNC_UNSAFE) ){
108103 1180 695 for(i=0; i
108104 1180 0 if( i<32 && sqlite3ExprIsConstant(pFarg->a[i].pExpr) ){
984 196 if( i<32 && sqlite3ExprIsConstant(pFarg->a[i].pExpr) ){
108108 0 1180 if( (pDef->funcFlags & SQLITE_FUNC_NEEDCOLL)!=0 && !pColl ){
0 0 if( (pDef->funcFlags & SQLITE_FUNC_NEEDCOLL)!=0 && !pColl ){
108112 677 18 if( pFarg ){
108113 585 92 if( constMask ){
108125 35 642 if( (pDef->funcFlags & (SQLITE_FUNC_LENGTH|SQLITE_FUNC_TYPEOF))!=0 ){
108130 18 17 if( exprOp==TK_COLUMN || exprOp==TK_AGG_COLUMN ){
0 18 if( exprOp==TK_COLUMN || exprOp==TK_AGG_COLUMN ){
108157 488 207 if( nFarg>=2 && ExprHasProperty(pExpr, EP_InfixFunc) ){
148 340 if( nFarg>=2 && ExprHasProperty(pExpr, EP_InfixFunc) ){
108159 529 18 }else if( nFarg>0 ){
108163 0 695 if( pDef->funcFlags & SQLITE_FUNC_NEEDCOLL ){
108164 0 0 if( !pColl ) pColl = db->pDfltColl;
108169 677 18 if( nFarg ){
108170 92 585 if( constMask==0 ){
108184 0 18 if( pParse->db->mallocFailed ){
108186 18 0 }else if( op==TK_SELECT
108187 18 0 && ALWAYS( ExprUseXSelect(pExpr) )
108188 0 18 && (nCol = pExpr->x.pSelect->pEList->nExpr)!=1
108199 0 0 if( pLeft->iTable==0 || pParse->withinRJSubrtn > pLeft->op2 ){
0 0 if( pLeft->iTable==0 || pParse->withinRJSubrtn > pLeft->op2 ){
108205 0 0 if( pExpr->iTable!=n ){
108241 77 40 if( !ExprHasProperty(pExpr, EP_Collate)
108242 77 0 && ALWAYS(pExpr->pLeft)
108243 0 77 && pExpr->pLeft->op==TK_FUNCTION
108246 0 0 if( inReg!=target ){
108316 0 0 if( iCol>=0 && pTab->aCol[iCol].affinity==SQLITE_AFF_REAL ){
0 0 if( iCol>=0 && pTab->aCol[iCol].affinity==SQLITE_AFF_REAL ){
108390 0 0 if( (pX = pExpr->pLeft)!=0 ){
108392 0 0 if( db->mallocFailed ){
108409 0 0 for(i=0; i
108410 0 0 if( pX ){
108424 0 0 if( (nExpr&1)!=0 ){
108441 0 0 if( !pParse->pTriggerTab && !pParse->nested ){
0 0 if( !pParse->pTriggerTab && !pParse->nested ){
108446 0 0 if( pExpr->affExpr==OE_Abort ){
108450 0 0 if( pExpr->affExpr==OE_Ignore ){
108455 0 0 sqlite3HaltConstraint(pParse,
108494 904 858 if( regDest<0 && p ){
357 547 if( regDest<0 && p ){
108497 466 333 for(pItem=p->a, i=p->nExpr; i>0; pItem++, i--){
108498 349 117 if( pItem->fg.reusable
108499 24 325 && sqlite3ExprCompare(0,pItem->pExpr,pExpr,-1)==0
108506 1683 55 if( pExpr!=0 && ExprHasProperty(pExpr, EP_HasFunc) ){
108 1575 if( pExpr!=0 && ExprHasProperty(pExpr, EP_HasFunc) ){
108512 108 0 if( !pParse->db->mallocFailed ){
108513 108 0 if( regDest<0 ) regDest = ++pParse->nMem;
108521 1630 0 if( p ){
108524 772 858 if( regDest<0 ) regDest = ++pParse->nMem;
108548 1767 20 if( ConstFactorOk(pParse)
108549 1767 0 && ALWAYS(pExpr!=0)
108550 1757 10 && pExpr->op!=TK_REGISTER
108551 847 910 && sqlite3ExprIsConstantNotJoin(pExpr)
108558 906 34 if( r2==r1 ){
108579 0 6600 if( pParse->pVdbe==0 ) return;
108581 306 6294 if( inReg!=target ){
108583 306 0 if( ALWAYS(pExpr) && ExprHasProperty(pExpr,EP_Subquery) ){
0 306 if( ALWAYS(pExpr) && ExprHasProperty(pExpr,EP_Subquery) ){
108600 0 0 if( !db->mallocFailed ) sqlite3ExprCode(pParse, pExpr, target);
108611 55 0 if( pParse->okConstFactor && sqlite3ExprIsConstantNotJoin(pExpr) ){
55 0 if( pParse->okConstFactor && sqlite3ExprIsConstantNotJoin(pExpr) ){
108647 2776 29 u8 copyOp = (flags & SQLITE_ECEL_DUP) ? OP_Copy : OP_SCopy;
108653 108 2697 if( !ConstFactorOk(pParse) ) flags &= ~SQLITE_ECEL_FACTOR;
108654 6070 2805 for(pItem=pList->a, i=0; i
108662 280 5790 if( (flags & SQLITE_ECEL_REF)!=0 && (j = pItem->u.x.iOrderByCol)>0 ){
120 160 if( (flags & SQLITE_ECEL_REF)!=0 && (j = pItem->u.x.iOrderByCol)>0 ){
108663 120 0 if( flags & SQLITE_ECEL_OMITREF ){
108669 999 4951 }else if( (flags & SQLITE_ECEL_FACTOR)!=0
108670 803 196 && sqlite3ExprIsConstantNotJoin(pExpr)
108675 212 4935 if( inReg!=target+i ){
108677 212 0 if( copyOp==OP_Copy
108678 8 204 && (pOp=sqlite3VdbeGetOp(v, -1))->opcode==OP_Copy
108679 8 0 && pOp->p1+pOp->p3+1==inReg
108680 8 0 && pOp->p2+pOp->p3+1==target+i
108681 8 0 && pOp->p5==0 /* The do-not-merge flag must be clear */
108733 0 0 if( db->mallocFailed==0 ){
108744 0 0 if( xJump ){
108793 0 18 if( NEVER(v==0) ) return; /* Existence of VDBE checked by caller */
108794 0 18 if( NEVER(pExpr==0) ) return; /* No way this can happen */
108801 0 3 if( pAlt!=pExpr ){
108803 2 1 }else if( op==TK_AND ){
108830 0 0 if( isTrue ^ isNot ){
108831 0 0 sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest,
108834 0 0 sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest,
108843 0 0 op = (op==TK_IS) ? TK_EQ : TK_NE;
108852 0 2 if( sqlite3ExprIsVector(pExpr->pLeft) ) goto default_expr;
108891 0 0 int destIfNull = jumpIfNull ? dest : destIfFalse;
108900 0 12 if( ExprAlwaysTrue(pExpr) ){
108902 12 0 }else if( ExprAlwaysFalse(pExpr) ){
108935 0 1093 if( NEVER(v==0) ) return; /* Existence of VDBE checked by caller */
108936 141 952 if( pExpr==0 ) return;
108974 0 5 if( pAlt!=pExpr ){
108976 3 2 }else if( pExpr->op==TK_AND ){
109003 0 0 if( isTrue ^ isNot ){
109005 0 0 sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest,
109010 0 0 sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest,
109019 1 2 op = (pExpr->op==TK_IS) ? TK_NE : TK_EQ;
109028 0 759 if( sqlite3ExprIsVector(pExpr->pLeft) ) goto default_expr;
109064 16 0 if( jumpIfNull ){
109076 0 139 if( ExprAlwaysFalse(pExpr) ){
109078 139 0 }else if( ExprAlwaysTrue(pExpr) ){
109102 0 0 if( db->mallocFailed==0 ){
109131 0 0 if( pR ){
109135 0 0 if( pL ){
109136 0 0 if( sqlite3_value_type(pL)==SQLITE_TEXT ){
109184 3068 5393 if( pA==0 || pB==0 ){
0 3068 if( pA==0 || pB==0 ){
109185 5393 0 return pB==pA ? 0 : 2;
109187 0 3068 if( pParse && pA->op==TK_VARIABLE && exprCompareVariable(pParse, pA, pB) ){
0 0 if( pParse && pA->op==TK_VARIABLE && exprCompareVariable(pParse, pA, pB) ){
0 0 if( pParse && pA->op==TK_VARIABLE && exprCompareVariable(pParse, pA, pB) ){
109191 0 3068 if( combinedFlags & EP_IntValue ){
109192 0 0 if( (pA->flags&pB->flags&EP_IntValue)!=0 && pA->u.iValue==pB->u.iValue ){
0 0 if( (pA->flags&pB->flags&EP_IntValue)!=0 && pA->u.iValue==pB->u.iValue ){
109197 2991 77 if( pA->op!=pB->op || pA->op==TK_RAISE ){
0 2991 if( pA->op!=pB->op || pA->op==TK_RAISE ){
109198 16 61 if( pA->op==TK_COLLATE && sqlite3ExprCompare(pParse, pA->pLeft,pB,iTab)<2 ){
16 0 if( pA->op==TK_COLLATE && sqlite3ExprCompare(pParse, pA->pLeft,pB,iTab)<2 ){
109201 0 61 if( pB->op==TK_COLLATE && sqlite3ExprCompare(pParse, pA,pB->pLeft,iTab)<2 ){
0 0 if( pB->op==TK_COLLATE && sqlite3ExprCompare(pParse, pA,pB->pLeft,iTab)<2 ){
109208 2981 10 if( pA->u.zToken ){
109209 2981 0 if( pA->op==TK_FUNCTION || pA->op==TK_AGG_FUNCTION ){
1 2980 if( pA->op==TK_FUNCTION || pA->op==TK_AGG_FUNCTION ){
109210 0 1 if( sqlite3StrICmp(pA->u.zToken,pB->u.zToken)!=0 ) return 2;
109213 0 1 if( ExprHasProperty(pA,EP_WinFunc)!=ExprHasProperty(pB,EP_WinFunc) ){
109216 0 1 if( ExprHasProperty(pA,EP_WinFunc) ){
109217 0 0 if( sqlite3WindowCompare(pParse, pA->y.pWin, pB->y.pWin, 1)!=0 ){
109222 0 2980 }else if( pA->op==TK_NULL ){
109224 0 2980 }else if( pA->op==TK_COLLATE ){
109225 0 0 if( sqlite3_stricmp(pA->u.zToken,pB->u.zToken)!=0 ) return 2;
109227 2978 2 if( pB->u.zToken!=0
109228 318 2660 && pA->op!=TK_COLUMN
109229 318 0 && pA->op!=TK_AGG_COLUMN
109230 292 26 && strcmp(pA->u.zToken,pB->u.zToken)!=0
109235 0 2699 if( (pA->flags & (EP_Distinct|EP_Commuted))
109237 2699 0 if( ALWAYS((combinedFlags & EP_TokenOnly)==0) ){
109238 0 2699 if( combinedFlags & EP_xIsSelect ) return 2;
109239 2699 0 if( (combinedFlags & EP_FixedCol)==0
109240 0 2699 && sqlite3ExprCompare(pParse, pA->pLeft, pB->pLeft, iTab) ) return 2;
109241 0 2699 if( sqlite3ExprCompare(pParse, pA->pRight, pB->pRight, iTab) ) return 2;
109242 0 2699 if( sqlite3ExprListCompare(pA->x.pList, pB->x.pList, iTab) ) return 2;
109243 2675 24 if( pA->op!=TK_STRING
109244 2675 0 && pA->op!=TK_TRUEFALSE
109245 2675 0 && ALWAYS((combinedFlags & EP_Reduced)==0)
109247 2567 108 if( pA->iColumn!=pB->iColumn ) return 2;
109248 0 108 if( pA->op2!=pB->op2 && pA->op==TK_TRUTH ) return 2;
0 0 if( pA->op2!=pB->op2 && pA->op==TK_TRUTH ) return 2;
109249 108 0 if( pA->op!=TK_IN && pA->iTable!=pB->iTable && pA->iTable!=iTab ){
2 106 if( pA->op!=TK_IN && pA->iTable!=pB->iTable && pA->iTable!=iTab ){
2 0 if( pA->op!=TK_IN && pA->iTable!=pB->iTable && pA->iTable!=iTab ){
109275 2702 3 if( pA==0 && pB==0 ) return 0;
2698 4 if( pA==0 && pB==0 ) return 0;
109276 3 4 if( pA==0 || pB==0 ) return 1;
0 3 if( pA==0 || pB==0 ) return 1;
109277 0 3 if( pA->nExpr!=pB->nExpr ) return 1;
109278 3 2 for(i=0; inExpr; i++){
109282 0 3 if( pA->a[i].fg.sortFlags!=pB->a[i].fg.sortFlags ) return 1;
109283 1 2 if( (res = sqlite3ExprCompare(0, pExprA, pExprB, iTab)) ) return res;
109314 0 0 if( sqlite3ExprCompare(pParse, p, pNN, iTab)==0 ){
109319 0 0 if( seenNot && ExprHasProperty(p, EP_xIsSelect) ) return 0;
0 0 if( seenNot && ExprHasProperty(p, EP_xIsSelect) ) return 0;
109329 0 0 if( seenNot ) return 0;
109330 0 0 if( exprImpliesNotNull(pParse, pList->a[0].pExpr, pNN, iTab, 1)
109331 0 0 || exprImpliesNotNull(pParse, pList->a[1].pExpr, pNN, iTab, 1)
109355 0 0 if( exprImpliesNotNull(pParse, p->pRight, pNN, iTab, seenNot) ) return 1;
109365 0 0 if( seenNot ) return 0;
109366 0 0 if( p->op2!=TK_IS ) return 0;
109408 0 0 if( sqlite3ExprCompare(pParse, pE1, pE2, iTab)==0 ){
109411 0 0 if( pE2->op==TK_OR
109412 0 0 && (sqlite3ExprImpliesExpr(pParse, pE1, pE2->pLeft, iTab)
109413 0 0 || sqlite3ExprImpliesExpr(pParse, pE1, pE2->pRight, iTab) )
109417 0 0 if( pE2->op==TK_NOTNULL
109418 0 0 && exprImpliesNotNull(pParse, pE1, pE2->pLeft, iTab, 0)
109437 3 4 if( ExprHasProperty(pExpr, EP_OuterON) ) return WRC_Prune;
109461 1 0 if( pWalker->u.iCur==pExpr->iTable ){
109468 0 0 if( pWalker->eCode==0 ){
109470 0 0 if( pWalker->eCode ){
109478 0 0 if( sqlite3WalkExpr(pWalker, pExpr->pLeft)==WRC_Abort ){
109505 1 0 if( (pLeft->op==TK_COLUMN
109506 1 0 && pLeft->y.pTab!=0
109507 0 1 && IsVirtual(pLeft->y.pTab))
109508 0 0 || (pRight->op==TK_COLUMN
109509 0 0 && pRight->y.pTab!=0
109510 0 0 && IsVirtual(pRight->y.pTab))
109546 0 8 if( p==0 ) return 0;
109547 1 7 if( p->op==TK_NOTNULL ){
109550 4 6 while( p->op==TK_AND ){
109551 1 3 if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab) ) return 1;
109582 51 119 if( pExpr->op==TK_COLUMN
109583 51 0 && pExpr->iTable==pWalker->u.pIdxCover->iCur
109584 0 51 && sqlite3TableColumnToIndex(pWalker->u.pIdxCover->pIdx, pExpr->iColumn)<0
109642 0 0 if( pSrc->nSrc==0 ) return WRC_Continue;
109646 0 0 if( piNew==0 ){
109652 0 0 for(i=0; inSrc; i++, j++){
109660 0 0 if( p->nExclude ){
109675 0 62 if( pExpr->op==TK_COLUMN
109676 0 0 || pExpr->op==TK_AGG_COLUMN
109681 62 0 int nSrc = pSrc ? pSrc->nSrc : 0;
109682 62 0 for(i=0; i
109683 62 0 if( pExpr->iTable==pSrc->a[i].iCursor ){
109688 0 0 for(i=0; inExclude && p->aiExclude[i]!=pExpr->iTable; i++){}
0 0 for(i=0; inExclude && p->aiExclude[i]!=pExpr->iTable; i++){}
109689 0 0 if( i>=p->nExclude ){
109726 0 147 if( ExprHasProperty(pExpr, EP_WinFunc) ){
109731 62 85 if( w.eCode & 0x01 ){
109733 0 85 }else if( w.eCode ){
109754 78 0 if( ALWAYS(!ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced))
109755 0 78 && pExpr->pAggInfo!=0
109762 0 0 if( pExpr->op==TK_AGG_COLUMN ){
109764 0 0 if( pAggInfo->aCol[iAgg].pCExpr==pExpr ){
109766 0 0 if( pExpr ){
109773 0 0 if( pAggInfo->aFunc[iAgg].pFExpr==pExpr ){
109775 0 0 if( pExpr ){
109848 78 0 if( ALWAYS(pSrcList!=0) ){
109850 79 0 for(i=0; inSrc; i++, pItem++){
109853 78 1 if( pExpr->iTable==pItem->iCursor ){
109862 11 77 for(k=0; knColumn; k++, pCol++){
109863 9 2 if( pCol->iTable==pExpr->iTable &&
1 8 if( pCol->iTable==pExpr->iTable &&
109868 77 1 if( (k>=pAggInfo->nColumn)
109869 77 0 && (k = addAggInfoColumn(pParse->db, pAggInfo))>=0
109879 23 54 if( pAggInfo->pGroupBy ){
109884 23 9 for(j=0; j
109886 23 0 if( pE->op==TK_COLUMN && pE->iTable==pExpr->iTable &&
22 1 if( pE->op==TK_COLUMN && pE->iTable==pExpr->iTable &&
14 8 if( pE->op==TK_COLUMN && pE->iTable==pExpr->iTable &&
109893 63 14 if( pCol->iSorterColumn<0 ){
109913 148 0 if( (pNC->ncFlags & NC_InAggFunc)==0
109914 148 0 && pWalker->walkerDepth==pExpr->op2
109920 1 147 for(i=0; inFunc; i++, pItem++){
109921 0 1 if( pItem->pFExpr==pExpr ) break;
109922 1 0 if( sqlite3ExprCompare(0, pItem->pFExpr, pExpr, -1)==0 ){
109926 147 1 if( i>=pAggInfo->nFunc ){
109931 147 0 if( i>=0 ){
109937 62 85 pItem->pFunc = sqlite3FindFunction(pParse->db,
109940 0 147 if( pExpr->flags & EP_Distinct ){
109992 211 230 if( pList ){
109993 220 211 for(pItem=pList->a, i=0; inExpr; i++, pItem++){
110003 791 417 if( pParse->nTempReg==0 ){
110014 1467 1142 if( iReg ){
110016 1467 0 if( pParse->nTempRegaTempReg) ){
110027 192 173 if( nReg==1 ) return sqlite3GetTempReg(pParse);
110030 1 172 if( nReg<=n ){
110040 192 96 if( nReg==1 ){
110045 20 76 if( nReg>pParse->nRangeReg ){
110120 0 0 if( 0==sqlite3StrNICmp(pTab->zName, "sqlite_", 7)
110122 0 0 || (pTab->tabFlags & TF_Eponymous)!=0
110123 0 0 || ( (pTab->tabFlags & TF_Shadow)!=0
110124 0 0 && sqlite3ReadOnlyShadowTables(pParse->db)
110159 0 0 if( bTemp==0 ){
110185 0 0 if( bTemp==0 ){
110201 0 0 if( v ){
110204 0 0 if( iDb!=1 ) sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, 1, 0, p5);
110227 0 0 if( NEVER(db->mallocFailed) ) goto exit_rename_table;
110232 0 0 if( !pTab ) goto exit_rename_table;
110238 0 0 if( !zName ) goto exit_rename_table;
110243 0 0 if( sqlite3FindTable(db, zName, zDb)
110244 0 0 || sqlite3FindIndex(db, zName, zDb)
110245 0 0 || sqlite3IsShadowTableOf(db, pTab, zName)
110255 0 0 if( SQLITE_OK!=isAlterableTable(pParse, pTab) ){
110258 0 0 if( SQLITE_OK!=sqlite3CheckObjectName(pParse,zName,"table",zName) ){
110263 0 0 if( IsView(pTab) ){
110271 0 0 if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){
110277 0 0 if( sqlite3ViewGetColumnNames(pParse, pTab) ){
110280 0 0 if( IsVirtual(pTab) ){
110282 0 0 if( pVTab->pVtab->pModule->xRename==0 ){
110293 0 0 if( v==0 ){
110334 0 0 if( sqlite3FindTable(db, "sqlite_sequence", zDb) ){
110344 0 0 if( iDb!=1 ){
110362 0 0 if( pVTab ){
110416 0 0 if( pParse->nErr ) return;
110432 0 0 if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){
110442 0 0 if( pCol->colFlags & COLFLAG_PRIMKEY ){
110446 0 0 if( pNew->pIndex ){
110451 0 0 if( (pCol->colFlags & COLFLAG_GENERATED)==0 ){
110457 0 0 if( pDflt && pDflt->pLeft->op==TK_NULL ){
0 0 if( pDflt && pDflt->pLeft->op==TK_NULL ){
110461 0 0 if( (db->flags&SQLITE_ForeignKeys) && pNew->u.tab.pFKey && pDflt ){
0 0 if( (db->flags&SQLITE_ForeignKeys) && pNew->u.tab.pFKey && pDflt ){
0 0 if( (db->flags&SQLITE_ForeignKeys) && pNew->u.tab.pFKey && pDflt ){
110465 0 0 if( pCol->notNull && !pDflt ){
0 0 if( pCol->notNull && !pDflt ){
110474 0 0 if( pDflt ){
110479 0 0 if( rc!=SQLITE_OK ){
110483 0 0 if( !pVal ){
110489 0 0 }else if( pCol->colFlags & COLFLAG_STORED ){
110496 0 0 if( zCol ){
110498 0 0 while( zEnd>zCol && (*zEnd==';' || sqlite3Isspace(*zEnd)) ){
0 0 while( zEnd>zCol && (*zEnd==';' || sqlite3Isspace(*zEnd)) ){
0 0 while( zEnd>zCol && (*zEnd==';' || sqlite3Isspace(*zEnd)) ){
110517 0 0 if( v ){
110535 0 0 if( pNew->pCheck!=0
110536 0 0 || (pCol->notNull && (pCol->colFlags & COLFLAG_GENERATED)!=0)
0 0 || (pCol->notNull && (pCol->colFlags & COLFLAG_GENERATED)!=0)
110577 0 0 if( db->mallocFailed ) goto exit_begin_add_column;
110579 0 0 if( !pTab ) goto exit_begin_add_column;
110582 0 0 if( IsVirtual(pTab) ){
110589 0 0 if( IsView(pTab) ){
110593 0 0 if( SQLITE_OK!=isAlterableTable(pParse, pTab) ){
110610 0 0 if( !pNew ) goto exit_begin_add_column;
110619 0 0 if( !pNew->aCol || !pNew->zName ){
0 0 if( !pNew->aCol || !pNew->zName ){
110624 0 0 for(i=0; inCol; i++){
110652 0 0 if( IsView(pTab) ){
110657 0 0 if( IsVirtual(pTab) ){
110661 0 0 if( zType ){
110662 0 0 sqlite3ErrorMsg(pParse, "cannot %s %s \"%s\"",
110696 0 0 if( !pTab ) goto exit_rename_column;
110699 0 0 if( SQLITE_OK!=isAlterableTable(pParse, pTab) ) goto exit_rename_column;
110700 0 0 if( SQLITE_OK!=isRealTable(pParse, pTab, 0) ) goto exit_rename_column;
110709 0 0 if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){
110717 0 0 if( !zOld ) goto exit_rename_column;
110718 0 0 for(iCol=0; iColnCol; iCol++){
110719 0 0 if( 0==sqlite3StrICmp(pTab->aCol[iCol].zCnName, zOld) ) break;
110721 0 0 if( iCol==pTab->nCol ){
110736 0 0 if( !zNew ) goto exit_rename_column;
110865 0 0 if( ALWAYS(pParse->eParseMode!=PARSE_MODE_UNMAP) ){
110867 0 0 if( pNew ){
110886 0 0 for(p=pParse->pRename; p; p=p->pNext){
110887 0 0 if( p->p==pFrom ){
110900 0 0 if( ExprUseYTab(pExpr) ){
110912 0 0 if( pWith ){
110917 0 0 if( (pWith->a[0].pSelect->selFlags & SF_Expanded)==0 ){
110926 0 0 for(i=0; inCte; i++){
110931 0 0 if( pCopy ) sqlite3SelectPrep(sNC.pParse, p, &sNC);
110932 0 0 if( sNC.pParse->db->mallocFailed ) return;
110936 0 0 if( pCopy && pParse->pWith==pCopy ){
0 0 if( pCopy && pParse->pWith==pCopy ){
110951 0 0 for(ii=0; iinId; ii++){
110962 0 0 if( pParse->nErr ) return WRC_Abort;
110965 0 0 if( p->selFlags & (SF_View|SF_CopyCte) ){
110968 0 0 if( ALWAYS(p->pEList) ){
110970 0 0 for(i=0; inExpr; i++){
110971 0 0 if( pList->a[i].zEName && pList->a[i].fg.eEName==ENAME_NAME ){
0 0 if( pList->a[i].zEName && pList->a[i].fg.eEName==ENAME_NAME ){
110976 0 0 if( ALWAYS(p->pSrc) ){ /* Every Select as a SrcList, even if it is empty */
110978 0 0 for(i=0; inSrc; i++){
110980 0 0 if( pSrc->a[i].fg.isUsing==0 ){
111012 0 0 if( pEList ){
111019 0 0 for(i=0; inExpr; i++){
111020 0 0 if( ALWAYS(pEList->a[i].fg.eEName==ENAME_NAME) ){
111033 0 0 for(p=pToken; p; p=pNext){
111054 0 0 if( NEVER(pPtr==0) ){
111057 0 0 for(pp=&pParse->pRename; (*pp); pp=&(*pp)->pNext){
111058 0 0 if( (*pp)->p==pPtr ){
111060 0 0 if( pCtx ){
111078 0 0 if( p->selFlags & (SF_View|SF_CopyCte) ){
111098 0 0 if( pExpr->op==TK_TRIGGER
111099 0 0 && pExpr->iColumn==p->iCol
111100 0 0 && pWalker->pParse->pTriggerTab==p->pTab
111103 0 0 }else if( pExpr->op==TK_COLUMN
111104 0 0 && pExpr->iColumn==p->iCol
111105 0 0 && ALWAYS(ExprUseYTab(pExpr))
111106 0 0 && p->pTab==pExpr->y.pTab
111127 0 0 for(pToken=pBest->pNext; pToken; pToken=pToken->pNext){
111128 0 0 if( pToken->t.z>pBest->t.z ) pBest = pToken;
111130 0 0 for(pp=&pCtx->pList; *pp!=pBest; pp=&(*pp)->pNext);
111154 0 0 zErr = sqlite3MPrintf(pParse->db, "error in %s %s%s%s: %s",
111174 0 0 if( pEList ){
111176 0 0 for(i=0; inExpr; i++){
111178 0 0 if( ALWAYS(pEList->a[i].fg.eEName==ENAME_NAME)
111179 0 0 && ALWAYS(zName!=0)
111180 0 0 && 0==sqlite3_stricmp(zName, zOld)
111199 0 0 if( pIdList ){
111201 0 0 for(i=0; inId; i++){
111203 0 0 if( 0==sqlite3_stricmp(zName, zOld) ){
111225 0 0 if( zSql==0 ){
111228 0 0 if( sqlite3StrNICmp(zSql,"CREATE ",7)!=0 ){
111231 0 0 db->init.iDb = bTemp ? 1 : sqlite3FindDbName(db, zDb);
111236 0 0 if( db->mallocFailed ) rc = SQLITE_NOMEM;
111237 0 0 if( rc==SQLITE_OK
111238 0 0 && NEVER(p->pNewTable==0 && p->pNewIndex==0 && p->pNewTrigger==0)
0 0 && NEVER(p->pNewTable==0 && p->pNewIndex==0 && p->pNewTrigger==0)
0 0 && NEVER(p->pNewTable==0 && p->pNewIndex==0 && p->pNewTrigger==0)
111285 0 0 if( zNew ){
111292 0 0 if( zQuot==0 ){
111302 0 0 if( zOut ){
111312 0 0 if( zOut ){
111315 0 0 while( pRename->pList ){
111321 0 0 if( zNew ){
111322 0 0 if( bQuote==0 && sqlite3IsIdChar(*pBest->t.z) ){
0 0 if( bQuote==0 && sqlite3IsIdChar(*pBest->t.z) ){
111328 0 0 if( pBest->t.z[pBest->t.n]=='"' ) nReplace++;
111340 0 0 sqlite3_snprintf(nSql*2, zBuf2, "%Q%s", zBuf1,
111348 0 0 if( pBest->t.n!=nReplace ){
111391 0 0 if( ALWAYS(pParse->pTriggerTab) ){
111396 0 0 if( rc==SQLITE_OK && pNew->pWhen ){
0 0 if( rc==SQLITE_OK && pNew->pWhen ){
111400 0 0 for(pStep=pNew->step_list; rc==SQLITE_OK && pStep; pStep=pStep->pNext){
0 0 for(pStep=pNew->step_list; rc==SQLITE_OK && pStep; pStep=pStep->pNext){
111401 0 0 if( pStep->pSelect ){
111403 0 0 if( pParse->nErr ) rc = pParse->rc;
111405 0 0 if( rc==SQLITE_OK && pStep->zTarget ){
0 0 if( rc==SQLITE_OK && pStep->zTarget ){
111407 0 0 if( pSrc ){
111411 0 0 if( pSel==0 ){
111420 0 0 if( pStep->pExprList ) pSel->pEList = 0;
111424 0 0 if( pStep->pFrom ){
111426 0 0 for(i=0; ipFrom->nSrc && rc==SQLITE_OK; i++){
0 0 for(i=0; ipFrom->nSrc && rc==SQLITE_OK; i++){
111428 0 0 if( p->pSelect ){
111434 0 0 if( db->mallocFailed ){
111438 0 0 if( rc==SQLITE_OK && pStep->pWhere ){
0 0 if( rc==SQLITE_OK && pStep->pWhere ){
111441 0 0 if( rc==SQLITE_OK ){
111445 0 0 if( pStep->pUpsert && rc==SQLITE_OK ){
0 0 if( pStep->pUpsert && rc==SQLITE_OK ){
111451 0 0 if( rc==SQLITE_OK ){
111455 0 0 if( rc==SQLITE_OK ){
111458 0 0 if( rc==SQLITE_OK ){
111484 0 0 for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){
111488 0 0 if( pStep->pUpsert ){
111495 0 0 if( pStep->pFrom ){
111497 0 0 for(i=0; ipFrom->nSrc; i++){
111511 0 0 if( pParse->pVdbe ){
111515 0 0 while( (pIdx = pParse->pNewIndex)!=0 ){
111575 0 0 if( zSql==0 ) return;
111576 0 0 if( zTable==0 ) return;
111577 0 0 if( zNew==0 ) return;
111578 0 0 if( iCol<0 ) return;
111581 0 0 if( pTab==0 || iCol>=pTab->nCol ){
0 0 if( pTab==0 || iCol>=pTab->nCol ){
111587 0 0 sCtx.iCol = ((iCol==pTab->iPKey) ? -1 : iCol);
111602 0 0 if( rc!=SQLITE_OK ) goto renameColumnFunc_done;
111603 0 0 if( sParse.pNewTable ){
111604 0 0 if( IsView(sParse.pNewTable) ){
111609 0 0 rc = (db->mallocFailed ? SQLITE_NOMEM : sParse.rc);
111610 0 0 if( rc==SQLITE_OK ){
111613 0 0 if( rc!=SQLITE_OK ) goto renameColumnFunc_done;
111614 0 0 }else if( IsOrdinaryTable(sParse.pNewTable) ){
111619 0 0 if( bFKOnly==0 ){
111620 0 0 if( iColnCol ){
111625 0 0 if( sCtx.iCol<0 ){
111629 0 0 for(pIdx=sParse.pNewTable->pIndex; pIdx; pIdx=pIdx->pNext){
111632 0 0 for(pIdx=sParse.pNewIndex; pIdx; pIdx=pIdx->pNext){
111636 0 0 for(i=0; inCol; i++){
111645 0 0 for(pFKey=sParse.pNewTable->u.tab.pFKey; pFKey; pFKey=pFKey->pNextFrom){
111646 0 0 for(i=0; inCol; i++){
111647 0 0 if( bFKOnly==0 && pFKey->aCol[i].iFrom==iCol ){
0 0 if( bFKOnly==0 && pFKey->aCol[i].iFrom==iCol ){
111650 0 0 if( 0==sqlite3_stricmp(pFKey->zTo, zTable)
111651 0 0 && 0==sqlite3_stricmp(pFKey->aCol[i].zCol, zOld)
111658 0 0 }else if( sParse.pNewIndex ){
111665 0 0 if( rc!=SQLITE_OK ) goto renameColumnFunc_done;
111667 0 0 for(pStep=sParse.pNewTrigger->step_list; pStep; pStep=pStep->pNext){
111668 0 0 if( pStep->zTarget ){
111670 0 0 if( pTarget==pTab ){
111671 0 0 if( pStep->pUpsert ){
111683 0 0 if( sParse.pTriggerTab==pTab ){
111695 0 0 if( rc!=SQLITE_OK ){
111696 0 0 if( rc==SQLITE_ERROR && sqlite3WritableSchema(db) ){
0 0 if( rc==SQLITE_ERROR && sqlite3WritableSchema(db) ){
111698 0 0 }else if( sParse.zErrMsg ){
111718 0 0 if( pExpr->op==TK_COLUMN
111719 0 0 && ALWAYS(ExprUseYTab(pExpr))
111720 0 0 && p->pTab==pExpr->y.pTab
111734 0 0 if( pSelect->selFlags & (SF_View|SF_CopyCte) ){
111739 0 0 if( NEVER(pSrc==0) ){
111743 0 0 for(i=0; inSrc; i++){
111745 0 0 if( pItem->pTab==p->pTab ){
111787 0 0 if( zInput && zOld && zNew ){
0 0 if( zInput && zOld && zNew ){
0 0 if( zInput && zOld && zNew ){
111811 0 0 if( rc==SQLITE_OK ){
111813 0 0 if( sParse.pNewTable ){
111816 0 0 if( IsView(pTab) ){
111817 0 0 if( isLegacy==0 ){
111826 0 0 if( sParse.nErr ){
111835 0 0 if( (isLegacy==0 || (db->flags & SQLITE_ForeignKeys))
0 0 if( (isLegacy==0 || (db->flags & SQLITE_ForeignKeys))
111836 0 0 && !IsVirtual(pTab)
111840 0 0 for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pFKey->pNextFrom){
111841 0 0 if( sqlite3_stricmp(pFKey->zTo, zOld)==0 ){
111851 0 0 if( sqlite3_stricmp(zOld, pTab->zName)==0 ){
111853 0 0 if( isLegacy==0 ){
111861 0 0 else if( sParse.pNewIndex ){
111863 0 0 if( isLegacy==0 ){
111872 0 0 if( 0==sqlite3_stricmp(sParse.pNewTrigger->table, zOld)
111873 0 0 && sCtx.pTab->pSchema==pTrigger->pTabSchema
111878 0 0 if( isLegacy==0 ){
111880 0 0 if( rc==SQLITE_OK ){
111882 0 0 for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){
111883 0 0 if( pStep->zTarget && 0==sqlite3_stricmp(pStep->zTarget, zOld) ){
0 0 if( pStep->zTarget && 0==sqlite3_stricmp(pStep->zTarget, zOld) ){
111886 0 0 if( pStep->pFrom ){
111888 0 0 for(i=0; ipFrom->nSrc; i++){
111890 0 0 if( 0==sqlite3_stricmp(pItem->zName, zOld) ){
111902 0 0 if( rc==SQLITE_OK ){
111905 0 0 if( rc!=SQLITE_OK ){
111906 0 0 if( rc==SQLITE_ERROR && sqlite3WritableSchema(db) ){
0 0 if( rc==SQLITE_ERROR && sqlite3WritableSchema(db) ){
111908 0 0 }else if( sParse.zErrMsg ){
111927 0 0 if( pExpr->op==TK_STRING && (pExpr->flags & EP_DblQuoted) ){
0 0 if( pExpr->op==TK_STRING && (pExpr->flags & EP_DblQuoted) ){
111977 0 0 if( zDb && zInput ){
0 0 if( zDb && zInput ){
111982 0 0 if( rc==SQLITE_OK ){
111994 0 0 if( sParse.pNewTable ){
111995 0 0 if( IsView(sParse.pNewTable) ){
112000 0 0 rc = (db->mallocFailed ? SQLITE_NOMEM : sParse.rc);
112001 0 0 if( rc==SQLITE_OK ){
112008 0 0 for(i=0; inCol; i++){
112015 0 0 }else if( sParse.pNewIndex ){
112021 0 0 if( rc==SQLITE_OK ){
112027 0 0 if( rc==SQLITE_OK ){
112032 0 0 if( rc!=SQLITE_OK ){
112033 0 0 if( sqlite3WritableSchema(db) && rc==SQLITE_ERROR ){
0 0 if( sqlite3WritableSchema(db) && rc==SQLITE_ERROR ){
112093 0 0 if( zDb && zInput ){
0 0 if( zDb && zInput ){
112097 0 0 if( bNoDQS ) db->flags &= ~(SQLITE_DqsDML|SQLITE_DqsDDL);
112100 0 0 if( rc==SQLITE_OK ){
112101 0 0 if( isLegacy==0 && sParse.pNewTable && IsView(sParse.pNewTable) ){
0 0 if( isLegacy==0 && sParse.pNewTable && IsView(sParse.pNewTable) ){
0 0 if( isLegacy==0 && sParse.pNewTable && IsView(sParse.pNewTable) ){
112106 0 0 if( sParse.nErr ) rc = sParse.rc;
112109 0 0 else if( sParse.pNewTrigger ){
112110 0 0 if( isLegacy==0 ){
112113 0 0 if( rc==SQLITE_OK ){
112116 0 0 if( i1==i2 ){
112124 0 0 if( rc!=SQLITE_OK && zWhen && !sqlite3WritableSchema(db) ){
0 0 if( rc!=SQLITE_OK && zWhen && !sqlite3WritableSchema(db) ){
0 0 if( rc!=SQLITE_OK && zWhen && !sqlite3WritableSchema(db) ){
112172 0 0 if( rc!=SQLITE_OK ) goto drop_column_done;
112174 0 0 if( pTab==0 || pTab->nCol==1 || iCol>=pTab->nCol ){
0 0 if( pTab==0 || pTab->nCol==1 || iCol>=pTab->nCol ){
0 0 if( pTab==0 || pTab->nCol==1 || iCol>=pTab->nCol ){
112181 0 0 if( iColnCol-1 ){
112188 0 0 while( ALWAYS(pCol->t.z[0]!=0) && pCol->t.z[0]!=',' ) pCol->t.z--;
0 0 while( ALWAYS(pCol->t.z[0]!=0) && pCol->t.z[0]!=',' ) pCol->t.z--;
112200 0 0 if( rc!=SQLITE_OK ){
112224 0 0 if( NEVER(db->mallocFailed) ) goto exit_drop_column;
112226 0 0 if( !pTab ) goto exit_drop_column;
112230 0 0 if( SQLITE_OK!=isAlterableTable(pParse, pTab) ) goto exit_drop_column;
112231 0 0 if( SQLITE_OK!=isRealTable(pParse, pTab, 1) ) goto exit_drop_column;
112235 0 0 if( zCol==0 ){
112240 0 0 if( iCol<0 ){
112247 0 0 if( pTab->aCol[iCol].colFlags & (COLFLAG_PRIMKEY|COLFLAG_UNIQUE) ){
112248 0 0 sqlite3ErrorMsg(pParse, "cannot drop %s column: \"%s\"",
112256 0 0 if( pTab->nCol<=1 ){
112267 0 0 if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, zCol) ){
112285 0 0 if( pParse->nErr==0 && (pTab->aCol[iCol].colFlags & COLFLAG_VIRTUAL)==0 ){
0 0 if( pParse->nErr==0 && (pTab->aCol[iCol].colFlags & COLFLAG_VIRTUAL)==0 ){
112298 0 0 if( HasRowid(pTab) ){
112304 0 0 for(i=0; inKeyCol; i++){
112310 0 0 for(i=0; inCol; i++){
112311 0 0 if( i!=iCol && (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0 ){
0 0 if( i!=iCol && (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0 ){
112313 0 0 if( pPk ){
112316 0 0 if( iPosnKeyCol ) continue;
112321 0 0 if( i==pTab->iPKey ){
112329 0 0 if( nField==0 ){
112336 0 0 if( pPk ){
112565 0 1 if( v==0 ) return;
112573 3 1 for(i=0; i
112577 3 0 if( (pStat = sqlite3FindTable(db, zTab, pDb->zDbSName))==0 ){
112578 1 2 if( i
112595 0 0 if( zWhere ){
112612 1 1 for(i=0; i
112805 0 0 if( p==0 ){
113085 0 0 if( p->nRow==0 ){
113087 0 0 for(i=0; inCol; i++) p->current.anEq[i] = 1;
113096 0 0 for(i=0; i
113099 0 0 for(i=iChng; inCol; i++){
113138 0 0 if( p->nLimit && p->nRow>(tRowcnt)p->nLimit*(p->nSkipAhead+1) ){
0 0 if( p->nLimit && p->nRow>(tRowcnt)p->nLimit*(p->nSkipAhead+1) ){
113231 0 0 sqlite3_str_appendf(&sStat, "%llu",
113233 0 0 for(i=0; inKeyCol; i++){
113236 0 0 if( iVal==2 && p->nRow*10 <= nDistinct*11 ) iVal = 1;
0 0 if( iVal==2 && p->nRow*10 <= nDistinct*11 ) iVal = 1;
113370 2 0 if( v==0 || NEVER(pTab==0) ){
0 2 if( v==0 || NEVER(pTab==0) ){
113373 0 2 if( !IsOrdinaryTable(pTab) ){
113377 1 1 if( sqlite3_strlike("sqlite\\_%", pTab->zName, '\\')==0 ){
113386 0 1 if( sqlite3AuthCheck(pParse, SQLITE_ANALYZE, pTab->zName, 0,
113415 0 1 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
113422 0 0 if( pOnlyIdx && pOnlyIdx!=pIdx ) continue;
0 0 if( pOnlyIdx && pOnlyIdx!=pIdx ) continue;
113423 0 0 if( pIdx->pPartIdxWhere==0 ) needTableCnt = 0;
113424 0 0 if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIdx) ){
0 0 if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIdx) ){
113431 0 0 nColTest = pIdx->uniqNotNull ? pIdx->nKeyCol-1 : nCol-1;
113520 0 0 if( nColTest>0 ){
113524 0 0 if( aGotoChng==0 ) continue;
113538 0 0 if( nColTest==1 && pIdx->nKeyCol==1 && IsUniqueIndex(pIdx) ){
0 0 if( nColTest==1 && pIdx->nKeyCol==1 && IsUniqueIndex(pIdx) ){
0 0 if( nColTest==1 && pIdx->nKeyCol==1 && IsUniqueIndex(pIdx) ){
113545 0 0 for(i=0; i
113567 0 0 for(i=0; i
113607 0 0 if( db->nAnalysisLimit ){
113677 1 0 if( pOnlyIdx==0 && needTableCnt ){
1 0 if( pOnlyIdx==0 && needTableCnt ){
113701 1 0 if( v ){
113724 2 1 for(k=sqliteHashFirst(&pSchema->tblHash); k; k=sqliteHashNext(k)){
113746 0 0 if( pOnlyIdx ){
113780 0 1 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
113785 1 0 if( pName1==0 ){
113787 2 1 for(i=0; inDb; i++){
113788 1 1 if( i==1 ) continue; /* Do not analyze the TEMP database */
113791 0 0 }else if( pName2->n==0 && (iDb = sqlite3FindDb(db, pName1))>=0 ){
0 0 }else if( pName2->n==0 && (iDb = sqlite3FindDb(db, pName1))>=0 ){
113797 0 0 if( iDb>=0 ){
113798 0 0 zDb = pName2->n ? db->aDb[iDb].zDbSName : 0;
113800 0 0 if( z ){
113801 0 0 if( (pIdx = sqlite3FindIndex(db, z, zDb))!=0 ){
113803 0 0 }else if( (pTab = sqlite3LocateTable(pParse, 0, z, zDb))!=0 ){
113810 1 0 if( db->nSqlExec==0 && (v = sqlite3GetVdbe(pParse))!=0 ){
1 0 if( db->nSqlExec==0 && (v = sqlite3GetVdbe(pParse))!=0 ){
113847 0 0 for(i=0; *z && i
0 0 for(i=0; *z && i
113849 0 0 while( (c=z[0])>='0' && c<='9' ){
0 0 while( (c=z[0])>='0' && c<='9' ){
113862 0 0 if( *z==' ' ) z++;
113871 0 0 while( z[0] ){
113872 0 0 if( sqlite3_strglob("unordered*", z)==0 ){
113874 0 0 }else if( sqlite3_strglob("sz=[0-9]*", z)==0 ){
113876 0 0 if( sz<2 ) sz = 2;
113878 0 0 }else if( sqlite3_strglob("noskipscan*", z)==0 ){
113886 0 0 while( z[0]!=0 && z[0]!=' ' ) z++;
0 0 while( z[0]!=0 && z[0]!=' ' ) z++;
113887 0 0 while( z[0]==' ' ) z++;
113912 0 0 if( argv==0 || argv[0]==0 || argv[2]==0 ){
0 0 if( argv==0 || argv[0]==0 || argv[2]==0 ){
0 0 if( argv==0 || argv[0]==0 || argv[2]==0 ){
113916 0 0 if( pTable==0 ){
113919 0 0 if( argv[1]==0 ){
113921 0 0 }else if( sqlite3_stricmp(argv[0],argv[1])==0 ){
113928 0 0 if( pIndex ){
113944 0 0 if( pIndex->pPartIdxWhere==0 ){
114247 270 222 for(i=sqliteHashFirst(&pSchema->tblHash); i; i=sqliteHashNext(i)){
114251 1 222 for(i=sqliteHashFirst(&pSchema->idxHash); i; i=sqliteHashNext(i)){
114263 1 221 if( (pStat1 = sqlite3FindTable(db, "sqlite_stat1", sInfo.zDatabase))
114264 1 0 && IsOrdinaryTable(pStat1)
114268 0 1 if( zSql==0 ){
114278 1 222 for(i=sqliteHashFirst(&pSchema->idxHash); i; i=sqliteHashNext(i)){
114280 1 0 if( !pIdx->hasStat1 ) sqlite3DefaultRowEst(pIdx);
114297 0 222 if( rc==SQLITE_NOMEM ){
114345 10 5 if( pExpr ){
114346 3 7 if( pExpr->op!=TK_ID ){
114362 1124 1079 || (iDb==0 && sqlite3StrICmp("main", zName)==0)
315 809 || (iDb==0 && sqlite3StrICmp("main", zName)==0)
0 315 || (iDb==0 && sqlite3StrICmp("main", zName)==0)
114402 0 5 if( zFile==0 ) zFile = "";
114403 0 5 if( zName==0 ) zName = "";
114411 0 5 if( REOPEN_AS_MEMDB(db) ){
114416 0 0 if( pVfs==0 ) return;
114418 0 0 if( pNew->pBt ) sqlite3BtreeClose(pNew->pBt);
114431 0 5 if( db->nDb>=db->aLimit[SQLITE_LIMIT_ATTACHED]+2 ){
114437 10 5 for(i=0; inDb; i++){
114439 0 10 if( sqlite3DbIsNamed(db, i, zName) ){
114448 5 0 if( db->aDb==db->aDbStatic ){
114450 0 5 if( aNew==0 ) return;
114454 0 0 if( aNew==0 ) return;
114466 0 5 if( rc!=SQLITE_OK ){
114467 0 0 if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);
114479 0 5 if( rc==SQLITE_CONSTRAINT ){
114482 5 0 }else if( rc==SQLITE_OK ){
114485 0 5 if( !pNew->pSchema ){
114487 0 5 }else if( pNew->pSchema->file_format && pNew->pSchema->enc!=ENC(db) ){
0 0 }else if( pNew->pSchema->file_format && pNew->pSchema->enc!=ENC(db) ){
114504 5 0 if( rc==SQLITE_OK && pNew->zDbSName==0 ){
0 5 if( rc==SQLITE_OK && pNew->zDbSName==0 ){
114514 5 0 if( rc==SQLITE_OK ){
114518 5 0 if( !REOPEN_AS_MEMDB(db) ){
114533 0 5 if( rc ){
114534 0 0 if( !REOPEN_AS_MEMDB(db) ){
114537 0 0 if( db->aDb[iDb].pBt ){
114544 0 0 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
0 0 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
114548 0 0 }else if( zErrDyn==0 ){
114559 0 0 if( zErrDyn ){
114563 0 0 if( rc ) sqlite3_result_error_code(context, rc);
114588 0 0 if( zName==0 ) zName = "";
114589 0 0 for(i=0; inDb; i++){
114591 0 0 if( pDb->pBt==0 ) continue;
114592 0 0 if( sqlite3DbIsNamed(db, i, zName) ) break;
114595 0 0 if( i>=db->nDb ){
114599 0 0 if( i<2 ){
114603 0 0 if( sqlite3BtreeTxnState(pDb->pBt)!=SQLITE_TXN_NONE
114604 0 0 || sqlite3BtreeIsInBackup(pDb->pBt)
114614 0 0 while( pEntry ){
114616 0 0 if( pTrig->pTabSchema==pDb->pSchema ){
114651 0 5 if( pParse->nErr ) goto attach_end;
114655 5 0 if(
114656 5 0 SQLITE_OK!=resolveAttachExpr(&sName, pFilename) ||
114657 5 0 SQLITE_OK!=resolveAttachExpr(&sName, pDbname) ||
114664 5 0 if( ALWAYS(pAuthArg) ){
114666 5 0 if( pAuthArg->op==TK_STRING ){
114673 0 5 if(rc!=SQLITE_OK ){
114687 5 0 if( v ){
114749 0 0 if( !pFix->bTemp ) ExprSetProperty(pExpr, EP_FromDDL);
114750 0 0 if( pExpr->op==TK_VARIABLE ){
114751 0 0 if( pFix->pParse->db->init.busy ){
114772 0 10 if( NEVER(pList==0) ) return WRC_Continue;
114773 10 10 for(i=0, pItem=pList->a; inSrc; i++, pItem++){
114774 10 0 if( pFix->bTemp==0 ){
114775 0 10 if( pItem->zDatabase ){
114776 0 0 if( iDb!=sqlite3FindDbName(db, pItem->zDatabase) ){
114790 10 0 if( pList->a[i].fg.isUsing==0
114791 0 10 && sqlite3WalkExpr(&pFix->w, pList->a[i].u3.pOn)
114797 0 10 if( pSelect->pWith ){
114798 0 0 for(i=0; ipWith->nCte; i++){
114799 0 0 if( sqlite3WalkSelect(p, pSelect->pWith->a[i].pSelect) ){
114854 10 0 if( pList ){
114882 0 0 while( pStep ){
114883 0 0 if( sqlite3WalkSelect(&pFix->w, pStep->pSelect)
114884 0 0 || sqlite3WalkExpr(&pFix->w, pStep->pWhere)
114885 0 0 || sqlite3WalkExprList(&pFix->w, pStep->pExprList)
114886 0 0 || sqlite3FixSrcList(pFix, pStep->pFrom)
114893 0 0 for(pUp=pStep->pUpsert; pUp; pUp=pUp->pNextUpsert){
114894 0 0 if( sqlite3WalkExprList(&pFix->w, pUp->pUpsertTarget)
114895 0 0 || sqlite3WalkExpr(&pFix->w, pUp->pUpsertTargetWhere)
114896 0 0 || sqlite3WalkExprList(&pFix->w, pUp->pUpsertSet)
114897 0 0 || sqlite3WalkExpr(&pFix->w, pUp->pUpsertWhere)
114993 2 2 if( db->xAuth ) sqlite3ExpirePreparedStatements(db, 1);
115026 0 0 if( db->init.busy ) return SQLITE_OK;
115032 0 0 if( rc==SQLITE_DENY ){
115034 0 0 if( db->nDb>2 || iDb!=0 ) z = sqlite3_mprintf("%s.%z", zDb, z);
0 0 if( db->nDb>2 || iDb!=0 ) z = sqlite3_mprintf("%s.%z", zDb, z);
115037 0 0 }else if( rc!=SQLITE_IGNORE && rc!=SQLITE_OK ){
0 0 }else if( rc!=SQLITE_IGNORE && rc!=SQLITE_OK ){
115068 0 0 if( iDb<0 ){
115074 0 0 if( pExpr->op==TK_TRIGGER ){
115078 0 0 for(iSrc=0; iSrcnSrc; iSrc++){
115079 0 0 if( pExpr->iTable==pTabList->a[iSrc].iCursor ){
115086 0 0 if( pTab==0 ) return;
115088 0 0 if( iCol>=0 ){
115091 0 0 }else if( pTab->iPKey>=0 ){
115098 0 0 if( SQLITE_IGNORE==sqlite3AuthReadCol(pParse, pTab->zName, zCol, iDb) ){
115123 4 9969 if( db->xAuth==0 || db->init.busy || IN_SPECIAL_PARSE ){
4 0 if( db->xAuth==0 || db->init.busy || IN_SPECIAL_PARSE ){
0 4 if( db->xAuth==0 || db->init.busy || IN_SPECIAL_PARSE ){
115143 2 2 if( rc==SQLITE_DENY ){
115146 0 2 }else if( rc!=SQLITE_OK && rc!=SQLITE_IGNORE ){
0 0 }else if( rc!=SQLITE_OK && rc!=SQLITE_IGNORE ){
115174 0 377 if( pContext->pParse ){
115245 0 0 pToplevel = sqlite3ParseToplevel(pParse);
115246 0 0 for(i=0; inTableLock; i++){
115248 0 0 if( p->iDb==iDb && p->iTab==iTab ){
0 0 if( p->iDb==iDb && p->iTab==iTab ){
115249 0 0 p->isWriteLock = (p->isWriteLock || isWriteLock);
0 0 p->isWriteLock = (p->isWriteLock || isWriteLock);
115257 0 0 if( pToplevel->aTableLock ){
115275 2529 2450 if( iDb==1 ) return;
115276 2450 0 if( !sqlite3BtreeSharable(pParse->db->aDb[iDb].pBt) ) return;
115289 0 4863 for(i=0; inTableLock; i++){
115330 351 6118 if( pParse->nested ) return;
115331 21 6097 if( pParse->nErr ){
115332 0 21 if( db->mallocFailed ) pParse->rc = SQLITE_NOMEM;
115341 749 5348 if( v==0 ){
115342 749 0 if( db->init.busy ){
115347 0 0 if( v==0 ) pParse->rc = SQLITE_ERROR;
115351 5348 0 if( v ){
115352 0 5348 if( pParse->bReturning ){
115358 0 0 if( pReturning->nRetCol ){
115364 0 0 for(i=0; inRetCol; i++){
115392 5348 0 if( db->mallocFailed==0
115393 864 4484 && (DbMaskNonZero(pParse->cookieMask) || pParse->pConstExpr)
379 485 && (DbMaskNonZero(pParse->cookieMask) || pParse->pConstExpr)
115402 5306 4527 if( DbMaskTest(pParse->cookieMask, iDb)==0 ) continue;
115412 4040 487 if( db->init.busy==0 ) sqlite3VdbeChangeP5(v, 1);
115415 4970 4863 }while( ++iDbnDb );
115417 22 4863 for(i=0; inVtabLock; i++){
115441 932 3931 if( pParse->pConstExpr ){
115444 1630 932 for(i=0; inExpr; i++){
115446 1630 0 if( iReg>0 ){
115452 0 4863 if( pParse->bReturning ){
115454 0 0 if( pRet->nRetCol ){
115468 5348 0 if( pParse->nErr==0 ){
115499 2 351 if( pParse->nErr ) return;
115504 0 351 if( zSql==0 ){
115508 0 0 if( !db->mallocFailed ) pParse->rc = SQLITE_TOOBIG;
115558 2410 4181 if( zDatabase ){
115559 2950 0 for(i=0; inDb; i++){
115560 2410 540 if( sqlite3StrICmp(zDatabase, db->aDb[i].zDbSName)==0 ) break;
115562 0 2410 if( i>=db->nDb ){
115565 0 0 if( sqlite3StrICmp(zDatabase,"main")==0 ){
115572 1340 1070 if( p==0 && sqlite3StrNICmp(zName, "sqlite_", 7)==0 ){
767 573 if( p==0 && sqlite3StrNICmp(zName, "sqlite_", 7)==0 ){
115573 279 488 if( i==1 ){
115574 279 0 if( sqlite3StrICmp(zName+7, &PREFERRED_TEMP_SCHEMA_TABLE[7])==0
115575 279 0 || sqlite3StrICmp(zName+7, &PREFERRED_SCHEMA_TABLE[7])==0
115576 63 216 || sqlite3StrICmp(zName+7, &LEGACY_SCHEMA_TABLE[7])==0
115582 0 488 if( sqlite3StrICmp(zName+7, &PREFERRED_SCHEMA_TABLE[7])==0 ){
115591 2411 1770 if( p ) return p;
115594 1203 567 if( p ) return p;
115596 5 567 for(i=2; inDb; i++){
115599 0 5 if( p ) break;
115601 567 0 if( p==0 && sqlite3StrNICmp(zName, "sqlite_", 7)==0 ){
216 351 if( p==0 && sqlite3StrNICmp(zName, "sqlite_", 7)==0 ){
115602 0 216 if( sqlite3StrICmp(zName+7, &PREFERRED_SCHEMA_TABLE[7])==0 ){
115604 0 216 }else if( sqlite3StrICmp(zName+7, &PREFERRED_TEMP_SCHEMA_TABLE[7])==0 ){
115634 266 4369 if( (db->mDbFlags & DBFLAG_SchemaKnownOk)==0
115635 0 266 && SQLITE_OK!=sqlite3ReadSchema(pParse)
115641 22 4613 if( p==0 ){
115646 22 0 if( pParse->disableVtab==0 && db->init.busy==0 ){
22 0 if( pParse->disableVtab==0 && db->init.busy==0 ){
115648 22 0 if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){
0 22 if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){
115651 0 22 if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){
0 0 if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){
115657 14 8 if( flags & LOCATE_NOERR ) return 0;
115659 185 4428 }else if( IsVirtual(p) && pParse->disableVtab ){
0 185 }else if( IsVirtual(p) && pParse->disableVtab ){
115663 8 4613 if( p==0 ){
115664 0 8 const char *zMsg = flags & LOCATE_VIEW ? "no such view" : "no such table";
115665 0 8 if( zDbase ){
115693 10 4498 if( p->pSchema ){
115707 0 0 if( sqlite3StrNICmp(zName, "sqlite_", 7)==0 ){
115708 0 0 if( sqlite3StrICmp(zName+7, &LEGACY_SCHEMA_TABLE[7])==0 ){
115711 0 0 if( sqlite3StrICmp(zName+7, &LEGACY_TEMP_SCHEMA_TABLE[7])==0 ){
115735 2193 1032 for(i=OMIT_TEMPDB; inDb; i++){
115736 2157 36 int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */
115739 2193 0 if( zDb && sqlite3DbIsNamed(db, j, zDb)==0 ) continue;
1114 1079 if( zDb && sqlite3DbIsNamed(db, j, zDb)==0 ) continue;
115742 47 1032 if( p ) break;
115757 0 79 if( p->isResized ) sqlite3DbFree(db, (void *)p->azColl);
115777 0 0 if( ALWAYS(pIndex) ){
115778 0 0 if( pIndex->pTable->pIndex==pIndex ){
115785 0 0 while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; }
0 0 while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; }
115786 0 0 if( ALWAYS(p && p->pNext==pIndex) ){
0 0 if( ALWAYS(p && p->pNext==pIndex) ){
115805 5 329 for(i=j=2; inDb; i++){
115807 5 0 if( pDb->pBt==0 ){
115812 0 0 if( j
115818 329 0 if( db->nDb<=2 && db->aDb!=db->aDbStatic ){
5 324 if( db->nDb<=2 && db->aDb!=db->aDbStatic ){
115834 0 0 if( iDb>=0 ){
115841 0 0 if( db->nSchemaLock==0 ){
115842 0 0 for(i=0; inDb; i++){
115843 0 0 if( DbHasProperty(db, i, DB_ResetWanted) ){
115857 28 14 for(i=0; inDb; i++){
115859 28 0 if( pDb->pSchema ){
115860 28 0 if( db->nSchemaLock==0 ){
115870 14 0 if( db->nSchemaLock==0 ){
115896 0 4 if( pCol->iDflt==0
115897 0 0 || NEVER(pList==0)
115898 0 0 || NEVER(pList->nExpriDflt)
115900 2 2 pCol->iDflt = pList==0 ? 1 : pList->nExpr+1;
115914 4923 0 if( pCol->iDflt==0 ) return 0;
115915 0 0 if( NEVER(!IsOrdinaryTable(pTab)) ) return 0;
115916 0 0 if( NEVER(pTab->u.tab.pDfltList==0) ) return 0;
115917 0 0 if( NEVER(pTab->u.tab.pDfltList->nExpriDflt) ) return 0;
115934 33 52 if( pCol->colFlags & COLFLAG_HASTYPE ){
115939 85 0 if( zNew ){
115951 1678 47 if( (pCol->colFlags & COLFLAG_HASCOLL)==0 ) return 0;
115953 311 47 while( *z ){ z++; }
115954 47 0 if( pCol->colFlags & COLFLAG_HASTYPE ){
115955 188 47 do{ z++; }while( *z );
115968 1015 61 if( (pCol = pTable->aCol)!=0 ){
115969 3487 1015 for(i=0; inCol; i++, pCol++){
115974 984 31 if( IsOrdinaryTable(pTable) ){
115977 285 730 if( db==0 || db->pnBytesFreed==0 ){
279 6 if( db==0 || db->pnBytesFreed==0 ){
115980 978 31 if( IsOrdinaryTable(pTable) ){
116020 74 1076 for(pIndex = pTable->pIndex; pIndex; pIndex=pNext){
116024 34 40 if( (db==0 || db->pnBytesFreed==0) && !IsVirtual(pTable) ){
34 0 if( (db==0 || db->pnBytesFreed==0) && !IsVirtual(pTable) ){
74 0 if( (db==0 || db->pnBytesFreed==0) && !IsVirtual(pTable) ){
116035 1015 61 if( IsOrdinaryTable(pTable) ){
116039 61 0 else if( IsVirtual(pTable) ){
116061 3114 5564 if( !pTable ) return;
116062 4833 731 if( ((!db || db->pnBytesFreed==0) && (--pTable->nTabRef)>0) ) return;
4827 6 if( ((!db || db->pnBytesFreed==0) && (--pTable->nTabRef)>0) ) return;
4488 1070 if( ((!db || db->pnBytesFreed==0) && (--pTable->nTabRef)>0) ) return;
116101 9114 118 if( pName ){
116118 292 5 if( p->nTab==0 ){
116131 309 0 if( zName ){
116133 630 0 for(i=(db->nDb-1), pDb=&db->aDb[i]; i>=0; i--, pDb--){
116134 309 321 if( 0==sqlite3_stricmp(pDb->zDbSName, zName) ) break;
116137 0 321 if( i==0 && 0==sqlite3_stricmp("main", zName) ) break;
0 0 if( i==0 && 0==sqlite3_stricmp("main", zName) ) break;
116184 161 672 if( pName2->n>0 ){
116185 0 161 if( db->init.busy ) {
116191 0 161 if( iDb<0 ){
116236 1051 0 if( sqlite3WritableSchema(db)
116237 1051 0 || db->init.imposterTable
116238 0 1051 || !sqlite3Config.bExtraSchemaChecks
116243 749 302 if( db->init.busy ){
116244 749 0 if( sqlite3_stricmp(zType, db->init.azInit[0])
116245 749 0 || sqlite3_stricmp(zName, db->init.azInit[1])
116246 0 749 || sqlite3_stricmp(zTblName, db->init.azInit[2])
116252 297 5 if( (pParse->nested==0 && 0==sqlite3StrNICmp(zName, "sqlite_", 7))
297 0 if( (pParse->nested==0 && 0==sqlite3StrNICmp(zName, "sqlite_", 7))
116253 1 301 || (sqlite3ReadOnlyShadowTables(db) && sqlite3ShadowTableName(db, zName))
0 1 || (sqlite3ReadOnlyShadowTables(db) && sqlite3ShadowTableName(db, zName))
116269 30 46 for(p=pTab->pIndex; p && !IsPrimaryKeyIndex(p); p=p->pNext){}
4 26 for(p=pTab->pIndex; p && !IsPrimaryKeyIndex(p); p=p->pNext){}
116281 284 53 for(i=0; inColumn; i++){
116282 106 178 if( iCol==pIdx->aiColumn[i] ) return i;
116300 0 100 if( pTab->tabFlags & TF_HasVirtual ){
116302 0 0 for(i=0; i<=iCol; i++){
116303 0 0 if( pTab->aCol[i].colFlags & COLFLAG_VIRTUAL ) iCol++;
116351 0 4669 if( (pTab->tabFlags & TF_HasVirtual)==0 || iCol<0 ) return iCol;
0 0 if( (pTab->tabFlags & TF_HasVirtual)==0 || iCol<0 ) return iCol;
116352 0 0 for(i=0, n=0; i
116353 0 0 if( (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0 ) n++;
116355 0 0 if( pTab->aCol[i].colFlags & COLFLAG_VIRTUAL ){
116376 2 0 if( v ){
116414 744 297 if( db->init.busy && db->init.newTnum==1 ){
437 307 if( db->init.busy && db->init.newTnum==1 ){
116417 216 221 zName = sqlite3DbStrDup(db, SCHEMA_TABLE(iDb));
116422 0 604 if( iDb<0 ) return;
116423 25 579 if( !OMIT_TEMPDB && isTemp && pName2->n>0 && iDb!=1 ){
0 25 if( !OMIT_TEMPDB && isTemp && pName2->n>0 && iDb!=1 ){
0 0 if( !OMIT_TEMPDB && isTemp && pName2->n>0 && iDb!=1 ){
116429 25 579 if( !OMIT_TEMPDB && isTemp ) iDb = 1;
116431 0 604 if( IN_RENAME_OBJECT ){
116436 0 1041 if( zName==0 ) return;
116437 0 1041 if( sqlite3CheckObjectName(pParse, zName, isView?"view":"table", zName) ){
0 1041 if( sqlite3CheckObjectName(pParse, zName, isView?"view":"table", zName) ){
116440 247 794 if( db->init.iDb==1 ) isTemp = 1;
116452 272 769 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0, zDb) ){
0 1041 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0, zDb) ){
116455 980 61 if( !isVirtual && sqlite3AuthCheck(pParse, (int)aCode[isTemp+2*isView],
0 980 if( !isVirtual && sqlite3AuthCheck(pParse, (int)aCode[isTemp+2*isView],
116469 1010 31 if( !IN_SPECIAL_PARSE ){
116471 0 1010 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
116475 0 1010 if( pTable ){
116476 0 0 if( !noErr ){
116477 0 0 sqlite3ErrorMsg(pParse, "%s %T already exists",
116486 0 1010 if( sqlite3FindIndex(db, zName, zDb)!=0 ){
116493 0 1041 if( pTable==0 ){
116519 297 744 if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){
297 0 if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){
116528 29 268 if( isVirtual ){
116543 0 297 1 : SQLITE_MAX_FILE_FORMAT;
116558 297 0 if( isView || isVirtual ){
29 268 if( isView || isVirtual ){
116637 0 0 if( pParse->pNewTrigger ){
116644 0 0 if( pRet==0 ){
116654 0 0 if( db->mallocFailed ) return;
116667 0 0 if( sqlite3HashInsert(pHash, RETURNING_TRIGGER_NAME, &pRet->retTrig)
116694 0 3341 if( (p = pParse->pNewTable)==0 ) return;
116695 0 3341 if( p->nCol+1>db->aLimit[SQLITE_LIMIT_COLUMN] ){
116699 3341 0 if( !IN_RENAME_OBJECT ) sqlite3DequoteToken(&sName);
116705 0 3341 if( sType.n>=16
116706 0 0 && sqlite3_strnicmp(sType.z+(sType.n-6),"always",6)==0
116709 0 0 while( ALWAYS(sType.n>0) && sqlite3Isspace(sType.z[sType.n-1]) ) sType.n--;
0 0 while( ALWAYS(sType.n>0) && sqlite3Isspace(sType.z[sType.n-1]) ) sType.n--;
116710 0 0 if( sType.n>=9
116711 0 0 && sqlite3_strnicmp(sType.z+(sType.n-9),"generated",9)==0
116714 0 0 while( sType.n>0 && sqlite3Isspace(sType.z[sType.n-1]) ) sType.n--;
0 0 while( sType.n>0 && sqlite3Isspace(sType.z[sType.n-1]) ) sType.n--;
116721 2973 368 if( sType.n>=3 ){
116723 15281 166 for(i=0; i
116724 6951 8330 if( sType.n==sqlite3StdTypeLen[i]
116725 2807 4144 && sqlite3_strnicmp(sType.z, sqlite3StdType[i], sType.n)==0
116730 1887 920 if( affinity<=SQLITE_AFF_TEXT ) szEst = 5;
116737 0 3341 if( z==0 ) return;
116738 0 3341 if( IN_RENAME_OBJECT ) sqlite3RenameTokenMap(pParse, (void*)z, &sName);
116743 5393 3341 for(i=0; inCol; i++){
116744 4 5389 if( p->aCol[i].hName==hName && sqlite3StrICmp(z, p->aCol[i].zCnName)==0 ){
0 4 if( p->aCol[i].hName==hName && sqlite3StrICmp(z, p->aCol[i].zCnName)==0 ){
116751 0 3341 if( aNew==0 ){
116762 3173 168 if( sType.n==0 ){
116798 173 0 if( p==0 || NEVER(p->nCol<1) ) return;
0 173 if( p==0 || NEVER(p->nCol<1) ) return;
116805 0 173 if( pCol->colFlags & COLFLAG_UNIQUE ){
116807 0 0 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){
116809 0 0 if( pIdx->aiColumn[0]==p->nCol-1 ){
116847 1445 166 while( zIn[0] ){
116850 126 1319 if( h==(('c'<<24)+('h'<<16)+('a'<<8)+'r') ){ /* CHAR */
116853 0 1319 }else if( h==(('c'<<24)+('l'<<16)+('o'<<8)+'b') ){ /* CLOB */
116855 0 1319 }else if( h==(('t'<<24)+('e'<<16)+('x'<<8)+'t') ){ /* TEXT */
116857 2 1317 }else if( h==(('b'<<24)+('l'<<16)+('o'<<8)+'b') /* BLOB */
116858 0 2 && (aff==SQLITE_AFF_NUMERIC || aff==SQLITE_AFF_REAL) ){
0 0 && (aff==SQLITE_AFF_NUMERIC || aff==SQLITE_AFF_REAL) ){
116860 0 2 if( zIn[0]=='(' ) zChar = zIn;
116862 0 1317 }else if( h==(('r'<<24)+('e'<<16)+('a'<<8)+'l') /* REAL */
116863 0 0 && aff==SQLITE_AFF_NUMERIC ){
116865 0 1317 }else if( h==(('f'<<24)+('l'<<16)+('o'<<8)+'a') /* FLOA */
116866 0 0 && aff==SQLITE_AFF_NUMERIC ){
116868 0 1317 }else if( h==(('d'<<24)+('o'<<16)+('u'<<8)+'b') /* DOUB */
116869 0 0 && aff==SQLITE_AFF_NUMERIC ){
116872 7 1310 }else if( (h&0x00FFFFFF)==(('i'<<16)+('n'<<8)+'t') ){ /* INT */
116880 168 5 if( pCol ){
116882 128 40 if( aff
116883 126 2 if( zChar ){
116884 269 27 while( zChar[0] ){
116885 99 170 if( sqlite3Isdigit(zChar[0]) ){
116902 0 168 if( v>255 ) v = 255;
116928 4 0 if( p!=0 ){
116929 2 2 int isInit = db->init.busy && db->init.iDb!=1;
2 0 int isInit = db->init.busy && db->init.iDb!=1;
116931 0 4 if( !sqlite3ExprIsConstantOrFunction(pExpr, isInit) ){
116935 0 4 }else if( pCol->colFlags & COLFLAG_GENERATED ){
116955 0 4 if( IN_RENAME_OBJECT ){
116978 0 218 if( p->op==TK_STRING ){
116980 0 218 }else if( p->op==TK_COLLATE && p->pLeft->op==TK_STRING ){
0 0 }else if( p->op==TK_COLLATE && p->pLeft->op==TK_STRING ){
116991 0 265 if( pCol->colFlags & COLFLAG_GENERATED ){
117029 0 220 if( pTab==0 ) goto primary_key_exit;
117030 0 220 if( pTab->tabFlags & TF_HasPrimaryKey ){
117036 179 41 if( pList==0 ){
117043 86 41 for(i=0; i
117047 86 0 if( pCExpr->op==TK_ID ){
117051 159 0 for(iCol=0; iColnCol; iCol++){
117052 86 73 if( sqlite3StrICmp(zCName, pTab->aCol[iCol].zCnName)==0 ){
117061 189 31 if( nTerm==1
117062 189 0 && pCol
117063 167 22 && pCol->eCType==COLTYPE_INTEGER
117064 167 0 && sortOrder!=SQLITE_SO_DESC
117066 0 167 if( IN_RENAME_OBJECT && pList ){
0 0 if( IN_RENAME_OBJECT && pList ){
117074 6 161 if( pList ) pParse->iPkSortOrder = pList->a[0].fg.sortFlags;
117076 0 53 }else if( autoInc ){
117104 6 0 if( pTab && !IN_DECLARE_VTAB
6 0 if( pTab && !IN_DECLARE_VTAB
117105 6 0 && !sqlite3BtreeIsReadonly(db->aDb[db->init.iDb].pBt)
117108 0 6 if( pParse->constraintName.n ){
117112 0 6 for(zStart++; sqlite3Isspace(zStart[0]); zStart++){}
117113 0 6 while( sqlite3Isspace(zEnd[-1]) ){ zEnd--; }
117135 0 0 if( (p = pParse->pNewTable)==0 || IN_RENAME_OBJECT ) return;
0 0 if( (p = pParse->pNewTable)==0 || IN_RENAME_OBJECT ) return;
117139 0 0 if( !zColl ) return;
117141 0 0 if( sqlite3LocateCollSeq(pParse, zColl) ){
117149 0 0 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){
117151 0 0 if( pIdx->aiColumn[0]==i ){
117167 0 0 if( pTab==0 ){
117172 0 0 if( IN_DECLARE_VTAB ){
117176 0 0 if( pCol->iDflt>0 ) goto generated_error;
117177 0 0 if( pType ){
117178 0 0 if( pType->n==7 && sqlite3StrNICmp("virtual",pType->z,7)==0 ){
0 0 if( pType->n==7 && sqlite3StrNICmp("virtual",pType->z,7)==0 ){
117180 0 0 }else if( pType->n==6 && sqlite3StrNICmp("stored",pType->z,6)==0 ){
0 0 }else if( pType->n==6 && sqlite3StrNICmp("stored",pType->z,6)==0 ){
117186 0 0 if( eType==COLFLAG_VIRTUAL ) pTab->nNVCol--;
117191 0 0 if( pCol->colFlags & COLFLAG_PRIMKEY ){
117248 0 0 for(n=0; *z; n++, z++){
117249 0 0 if( *z=='"' ){ n++; }
117272 0 0 for(j=0; zIdent[j]; j++){
117273 0 0 if( !sqlite3Isalnum(zIdent[j]) && zIdent[j]!='_' ) break;
0 0 if( !sqlite3Isalnum(zIdent[j]) && zIdent[j]!='_' ) break;
117276 0 0 || sqlite3KeywordCode(zIdent, j)!=TK_ID
117277 0 0 || zIdent[j]!=0
117278 0 0 || j==0;
0 0 || j==0;
117280 0 0 if( needQuote ) z[i++] = '"';
117281 0 0 for(j=0; zIdent[j]; j++){
117283 0 0 if( zIdent[j]=='"' ) z[i++] = '"';
117285 0 0 if( needQuote ) z[i++] = '"';
117301 0 0 for(pCol = p->aCol, i=0; inCol; i++, pCol++){
117305 0 0 if( n<50 ){
117316 0 0 if( zStmt==0 ){
117324 0 0 for(pCol=p->aCol, i=0; inCol; i++, pCol++){
117366 0 0 if( pIdx->nColumn>=N ) return SQLITE_OK;
117370 0 0 if( zExtra==0 ) return SQLITE_NOMEM_BKPT;
117394 3341 980 for(i=pTab->nCol, pTabCol=pTab->aCol; i>0; i--, pTabCol++){
117397 813 167 if( pTab->iPKey<0 ) wTable++;
117408 211 79 for(i=0; inColumn; i++){
117411 132 79 wIndex += x<0 ? 1 : aCol[pIdx->aiColumn[i]].szEst;
117421 0 0 while( nCol-- > 0 ){
117422 0 0 if( x==*(aiCol++) ){
117452 0 0 for(i=0; i
117454 0 0 if( pIdx->aiColumn[i]==j
117455 0 0 && sqlite3StrICmp(pIdx->azColl[i], pPk->azColl[iCol])==0
117485 211 79 for(j=pIdx->nColumn-1; j>=0; j--){
117487 132 79 if( x>=0 && (pTab->aCol[x].colFlags & COLFLAG_VIRTUAL)==0 ){
132 0 if( x>=0 && (pTab->aCol[x].colFlags & COLFLAG_VIRTUAL)==0 ){
117490 132 0 if( x
117532 0 0 if( !db->init.imposterTable ){
117533 0 0 for(i=0; inCol; i++){
117534 0 0 if( (pTab->aCol[i].colFlags & COLFLAG_PRIMKEY)!=0
117535 0 0 && (pTab->aCol[i].notNull==OE_None)
117547 0 0 if( pParse->u1.addrCrTab ){
117555 0 0 if( pTab->iPKey>=0 ){
117561 0 0 if( pList==0 ){
117565 0 0 if( IN_RENAME_OBJECT ){
117573 0 0 if( pParse->nErr ){
117589 0 0 for(i=j=1; inKeyCol; i++){
117590 0 0 if( isDupColumn(pPk, j, pPk, i) ){
117603 0 0 if( !db->init.imposterTable ) pPk->uniqNotNull = 1;
117610 0 0 if( v && pPk->tnum>0 ){
0 0 if( v && pPk->tnum>0 ){
117621 0 0 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
117623 0 0 if( IsPrimaryKeyIndex(pIdx) ) continue;
117624 0 0 for(i=n=0; i
117625 0 0 if( !isDupColumn(pIdx, pIdx->nKeyCol, pPk, i) ){
117630 0 0 if( n==0 ){
117635 0 0 if( resizeIndexObject(db, pIdx, pIdx->nKeyCol+n) ) return;
117636 0 0 for(i=0, j=pIdx->nKeyCol; i
117637 0 0 if( !isDupColumn(pIdx, pIdx->nKeyCol, pPk, i) ){
117641 0 0 if( pPk->aSortOrder[i] ){
117655 0 0 for(i=0; inCol; i++){
117656 0 0 if( !hasColumn(pPk->aiColumn, nPk, i)
117657 0 0 && (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0 ) nExtra++;
117659 0 0 if( resizeIndexObject(db, pPk, nPk+nExtra) ) return;
117660 0 0 for(i=0, j=nPk; inCol; i++){
117661 0 0 if( !hasColumn(pPk->aiColumn, j, i)
117662 0 0 && (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0
117685 0 74 if( !IsVirtual(pTab) ) return 0;
117687 0 74 if( sqlite3_strnicmp(zName, pTab->zName, nName)!=0 ) return 0;
117688 0 74 if( zName[nName]!='_' ) return 0;
117690 0 74 if( pMod==0 ) return 0;
117691 0 74 if( pMod->pModule->iVersion<3 ) return 0;
117692 0 74 if( pMod->pModule->xShadowName==0 ) return 0;
117711 0 32 if( pMod==0 ) return;
117712 0 32 if( NEVER(pMod->pModule==0) ) return;
117713 21 11 if( pMod->pModule->iVersion<3 ) return;
117714 0 11 if( pMod->pModule->xShadowName==0 ) return;
117717 23 11 for(k=sqliteHashFirst(&pTab->pSchema->tblHash); k; k=sqliteHashNext(k)){
117720 4 19 if( !IsOrdinaryTable(pOther) ) continue;
117721 6 13 if( pOther->tabFlags & TF_Shadow ) continue;
117722 0 13 if( sqlite3StrNICmp(pOther->zName, pTab->zName, nName)==0
117723 0 0 && pOther->zName[nName]=='_'
117724 0 0 && pMod->pModule->xShadowName(pOther->zName+nName+1)
117744 355 626 if( zTail==0 ) return 0;
117748 552 74 if( pTab==0 ) return 0;
117749 0 74 if( !IsVirtual(pTab) ) return 0;
117813 0 980 if( pEnd==0 && pSelect==0 ){
0 0 if( pEnd==0 && pSelect==0 ){
117817 0 980 if( p==0 ) return;
117819 980 0 if( pSelect==0 && sqlite3ShadowTableName(db, p->zName) ){
74 906 if( pSelect==0 && sqlite3ShadowTableName(db, p->zName) ){
117832 712 268 if( db->init.busy ){
117833 712 0 if( pSelect || (!IsOrdinaryTable(p) && db->init.newTnum) ){
0 712 if( pSelect || (!IsOrdinaryTable(p) && db->init.newTnum) ){
0 0 if( pSelect || (!IsOrdinaryTable(p) && db->init.newTnum) ){
117838 437 275 if( p->tnum==1 ) p->tabFlags |= TF_Readonly;
117850 0 980 if( tabOpts & TF_Strict ){
117853 0 0 for(ii=0; iinCol; ii++){
117855 0 0 if( pCol->eCType==COLTYPE_CUSTOM ){
117856 0 0 if( pCol->colFlags & COLFLAG_HASTYPE ){
117866 0 0 }else if( pCol->eCType==COLTYPE_ANY ){
117869 0 0 if( (pCol->colFlags & COLFLAG_PRIMKEY)!=0
117870 0 0 && p->iPKey!=ii
117871 0 0 && pCol->notNull == OE_None
117885 0 980 if( tabOpts & TF_WithoutRowid ){
117886 0 0 if( (p->tabFlags & TF_Autoincrement) ){
117891 0 0 if( (p->tabFlags & TF_HasPrimaryKey)==0 ){
117903 6 974 if( p->pCheck ){
117905 2 4 if( pParse->nErr ){
117916 0 980 if( p->tabFlags & TF_HasGenerated ){
117920 0 0 for(ii=0; iinCol; ii++){
117922 0 0 if( (colFlags & COLFLAG_GENERATED)!=0 ){
117926 0 0 if( sqlite3ResolveSelfReference(pParse, p, NC_GenCol, pX, 0) ){
117940 0 0 if( nNG==0 ){
117949 69 980 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){
117959 268 712 if( !db->init.busy ){
117967 0 268 if( NEVER(v==0) ) return;
117974 268 0 if( IsOrdinaryTable(p) ){
117999 0 268 if( pSelect ){
118008 0 0 if( IN_SPECIAL_PARSE ){
118023 0 0 if( pParse->nErr ) return;
118025 0 0 if( pSelTab==0 ) return;
118034 0 0 if( pParse->nErr ) return;
118049 0 268 if( pSelect ){
118052 0 268 Token *pEnd2 = tabOpts ? &pParse->sLastToken : pEnd;
118054 268 0 if( pEnd2->z[0]!=';' ) n += pEnd2->n;
118083 5 263 if( (p->tabFlags & TF_Autoincrement)!=0 && !IN_SPECIAL_PARSE ){
5 0 if( (p->tabFlags & TF_Autoincrement)!=0 && !IN_SPECIAL_PARSE ){
118086 4 1 if( pDb->pSchema->pSeqTab==0 ){
118102 712 268 if( db->init.busy ){
118108 0 712 if( pOld ){
118121 4 708 if( strcmp(p->zName, "sqlite_sequence")==0 ){
118129 980 0 if( !pSelect && IsOrdinaryTable(p) ){
980 0 if( !pSelect && IsOrdinaryTable(p) ){
118131 931 49 if( pCons->z==0 ){
118162 0 0 if( pParse->nVar>0 ){
118168 0 0 if( p==0 || pParse->nErr ) goto create_view_fail;
0 0 if( p==0 || pParse->nErr ) goto create_view_fail;
118182 0 0 if( sqlite3FixSelect(&sFix, pSelect) ) goto create_view_fail;
118190 0 0 if( IN_RENAME_OBJECT ){
118198 0 0 if( db->mallocFailed ) goto create_view_fail;
118205 0 0 if( sEnd.z[0]!=';' ){
118212 0 0 while( sqlite3Isspace(z[n-1]) ){ n--; }
118221 0 0 if( IN_RENAME_OBJECT ){
118250 185 3110 if( IsVirtual(pTable) ){
118262 3110 0 if( pTable->nCol>0 ) return 0;
118279 0 0 if( pTable->nCol<0 ){
118294 0 0 if( pSel ){
118312 0 0 if( pSelTab==0 ){
118315 0 0 }else if( pTable->pCheck ){
118324 0 0 if( pParse->nErr==0
118325 0 0 && pTable->nCol==pSel->pEList->nExpr
118346 0 0 EnableLookaside;
118352 0 0 if( db->mallocFailed ){
118367 7 0 if( !DbHasProperty(db, idx, DB_UnresetViews) ) return;
118368 0 0 for(i=sqliteHashFirst(&db->aDb[idx].pSchema->tblHash); i;i=sqliteHashNext(i)){
118370 0 0 if( IsView(pTab) ){
118406 0 0 for(pElem=sqliteHashFirst(pHash); pElem; pElem=sqliteHashNext(pElem)){
118408 0 0 if( pTab->tnum==iFrom ){
118413 0 0 for(pElem=sqliteHashFirst(pHash); pElem; pElem=sqliteHashNext(pElem)){
118415 0 0 if( pIdx->tnum==iFrom ){
118431 0 5 if( iTable<2 ) sqlite3ErrorMsg(pParse, "corrupt schema");
118482 5 5 if( iDestroyed==0 || iTab
0 5 if( iDestroyed==0 || iTab
118485 0 10 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
118488 0 0 if( (iDestroyed==0 || (iIdxiLargest ){
0 0 if( (iDestroyed==0 || (iIdxiLargest ){
0 0 if( (iDestroyed==0 || (iIdxiLargest ){
118492 5 5 if( iLargest==0 ){
118515 28 7 for(i=1; i<=4; i++){
118518 0 28 if( sqlite3FindTable(pParse->db, zTab, zDbName) ){
118541 2 5 if( IsVirtual(pTab) ){
118551 0 7 while( pTrigger ){
118564 0 7 if( pTab->tabFlags & TF_Autoincrement ){
118583 7 0 if( !isView && !IsVirtual(pTab) ){
5 2 if( !isView && !IsVirtual(pTab) ){
118590 2 5 if( IsVirtual(pTab) ){
118605 1 350 if( (db->flags & SQLITE_Defensive)!=0
118606 1 0 && db->pVtabCtx==0
118607 1 0 && db->nVdbeExec==0
118608 0 1 && !sqlite3VtabInSync(db)
0 0 && !sqlite3VtabInSync(db)
118620 0 7 if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0 ){
118621 0 0 if( sqlite3StrNICmp(pTab->zName+7, "stat", 4)==0 ) return 0;
118622 0 0 if( sqlite3StrNICmp(pTab->zName+7, "parameters", 10)==0 ) return 0;
118625 0 7 if( (pTab->tabFlags & TF_Shadow)!=0 && sqlite3ReadOnlyShadowTables(db) ){
0 0 if( (pTab->tabFlags & TF_Shadow)!=0 && sqlite3ReadOnlyShadowTables(db) ){
118628 0 7 if( pTab->tabFlags & TF_Eponymous ){
118644 0 15 if( db->mallocFailed ){
118649 0 15 if( sqlite3ReadSchema(pParse) ) goto exit_drop_table;
118650 2 13 if( noErr ) db->suppressErr++;
118653 2 13 if( noErr ) db->suppressErr--;
118655 8 7 if( pTab==0 ){
118656 2 6 if( noErr ){
118668 2 5 if( IsVirtual(pTab) && sqlite3ViewGetColumnNames(pParse, pTab) ){
0 2 if( IsVirtual(pTab) && sqlite3ViewGetColumnNames(pParse, pTab) ){
118674 0 7 const char *zTab = SCHEMA_TABLE(iDb);
118677 0 7 if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb)){
118680 0 7 if( isView ){
118681 0 0 if( !OMIT_TEMPDB && iDb==1 ){
118687 2 5 }else if( IsVirtual(pTab) ){
118692 0 5 if( !OMIT_TEMPDB && iDb==1 ){
118698 0 7 if( sqlite3AuthCheck(pParse, code, pTab->zName, zArg2, zDb) ){
118701 0 7 if( sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, zDb) ){
118706 0 7 if( tableMayNotBeDropped(db, pTab) ){
118715 0 7 if( isView && !IsView(pTab) ){
0 0 if( isView && !IsView(pTab) ){
118719 7 0 if( !isView && IsView(pTab) ){
0 7 if( !isView && IsView(pTab) ){
118729 7 0 if( v ){
118731 7 0 if( !isView ){
118776 16 0 if( p==0 || IN_DECLARE_VTAB ) goto fk_end;
16 0 if( p==0 || IN_DECLARE_VTAB ) goto fk_end;
118777 12 4 if( pFromCol==0 ){
118779 0 12 if( NEVER(iCol<0) ) goto fk_end;
118780 12 0 if( pToCol && pToCol->nExpr!=1 ){
0 12 if( pToCol && pToCol->nExpr!=1 ){
118787 4 0 }else if( pToCol && pToCol->nExpr!=pFromCol->nExpr ){
0 4 }else if( pToCol && pToCol->nExpr!=pFromCol->nExpr ){
118796 16 0 if( pToCol ){
118797 18 16 for(i=0; inExpr; i++){
118802 0 16 if( pFKey==0 ){
118810 0 16 if( IN_RENAME_OBJECT ){
118818 12 4 if( pFromCol==0 ){
118821 6 4 for(i=0; i
118823 16 0 for(j=0; jnCol; j++){
118824 6 10 if( sqlite3StrICmp(p->aCol[j].zCnName, pFromCol->a[i].zEName)==0 ){
118829 0 6 if( j>=p->nCol ){
118835 0 6 if( IN_RENAME_OBJECT ){
118840 16 0 if( pToCol ){
118841 18 16 for(i=0; i
118844 0 18 if( IN_RENAME_OBJECT ){
118860 0 16 if( pNextTo==pFKey ){
118864 0 16 if( pNextTo ){
118894 0 6 if( (pTab = pParse->pNewTable)==0 ) return;
118895 0 6 if( NEVER(!IsOrdinaryTable(pTab)) ) return;
118896 0 6 if( (pFKey = pTab->u.tab.pFKey)==0 ) return;
118929 0 5 if( sqlite3AuthCheck(pParse, SQLITE_REINDEX, pIndex->zName, 0,
118939 0 5 if( v==0 ) return;
118940 5 0 if( memRootPage>=0 ){
118965 0 5 if( memRootPage<0 ) sqlite3VdbeAddOp2(v, OP_Clear, tnum, iDb);
118968 5 0 sqlite3VdbeChangeP5(v, OPFLAG_BULKCSR|((memRootPage>=0)?OPFLAG_P2ISREG:0));
118971 2 3 if( IsUniqueIndex(pIndex) ){
118991 5 0 if( !pIndex->bAscKeyBug ){
119034 80 0 if( p ){
119053 59 187 if( pList ){
119055 112 59 for(i=0; inExpr; i++){
119056 0 112 if( pList->a[i].fg.bNulls ){
119058 0 0 sqlite3ErrorMsg(pParse, "unsupported use of NULLS %s",
119059 0 0 (sf==0 || sf==3) ? "FIRST" : "LAST"
119111 0 79 if( pParse->nErr ){
119115 0 79 if( IN_DECLARE_VTAB && idxType!=SQLITE_IDXTYPE_PRIMARYKEY ){
0 0 if( IN_DECLARE_VTAB && idxType!=SQLITE_IDXTYPE_PRIMARYKEY ){
119118 0 79 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
119121 0 79 if( sqlite3HasExplicitNulls(pParse, pList) ){
119128 10 69 if( pTblName!=0 ){
119136 0 10 if( iDb<0 ) goto exit_create_index;
119144 5 5 if( !db->init.busy ){
119146 5 0 if( pName2->n==0 && pTab && pTab->pSchema==db->aDb[1].pSchema ){
5 0 if( pName2->n==0 && pTab && pTab->pSchema==db->aDb[1].pSchema ){
0 5 if( pName2->n==0 && pTab && pTab->pSchema==db->aDb[1].pSchema ){
119160 0 10 if( pTab==0 ) goto exit_create_index;
119161 0 10 if( iDb==1 && db->aDb[iDb].pSchema!=pTab->pSchema ){
0 0 if( iDb==1 && db->aDb[iDb].pSchema!=pTab->pSchema ){
119167 0 10 if( !HasRowid(pTab) ) pPk = sqlite3PrimaryKeyIndex(pTab);
119172 0 69 if( !pTab ) goto exit_create_index;
119178 0 79 if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0
119179 0 0 && db->init.busy==0
119180 0 0 && pTblName!=0
119189 0 79 if( IsView(pTab) ){
119195 0 79 if( IsVirtual(pTab) ){
119214 10 69 if( pName ){
119216 0 10 if( zName==0 ) goto exit_create_index;
119218 0 10 if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName,"index",pTab->zName) ){
119221 10 0 if( !IN_RENAME_OBJECT ){
119222 5 5 if( !db->init.busy ){
119223 0 5 if( sqlite3FindTable(db, zName, 0)!=0 ){
119228 0 10 if( sqlite3FindIndex(db, zName, pDb->zDbSName)!=0 ){
119229 0 0 if( !ifNotExist ){
119242 2 69 for(pLoop=pTab->pIndex, n=1; pLoop; pLoop=pLoop->pNext, n++){}
119244 0 69 if( zName==0 ){
119253 0 69 if( IN_SPECIAL_PARSE ) zName[7]++;
119259 79 0 if( !IN_RENAME_OBJECT ){
119261 2 77 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iDb), 0, zDb) ){
0 79 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iDb), 0, zDb) ){
119265 2 77 if( !OMIT_TEMPDB && iDb==1 ) i = SQLITE_CREATE_TEMP_INDEX;
119266 0 79 if( sqlite3AuthCheck(pParse, i, zName, pTab->zName, zDb) ){
119276 26 53 if( pList==0 ){
119283 0 26 if( pList==0 ) goto exit_create_index;
119288 0 53 if( pParse->nErr ) goto exit_create_index;
119294 132 79 for(i=0; inExpr; i++){
119297 0 132 if( pExpr->op==TK_COLLATE ){
119307 0 79 nExtraCol = pPk ? pPk->nKeyCol : 1;
119311 0 79 if( db->mallocFailed ){
119325 0 79 if( pPIWhere ){
119334 58 21 if( pDb->pSchema->file_format>=4 ){
119350 0 79 if( IN_RENAME_OBJECT ){
119354 132 79 for(i=0; inKeyCol; i++, pListItem++){
119361 0 132 if( pParse->nErr ) goto exit_create_index;
119363 0 132 if( pCExpr->op!=TK_COLUMN ){
119364 0 0 if( pTab==pParse->pNewTable ){
119369 0 0 if( pIndex->aColExpr==0 ){
119379 0 132 if( j<0 ){
119382 104 28 if( pTab->aCol[j].notNull==0 ){
119385 0 132 if( pTab->aCol[j].colFlags & COLFLAG_VIRTUAL ){
119392 0 132 if( pListItem->pExpr->op==TK_COLLATE ){
119402 132 0 }else if( j>=0 ){
119405 132 0 if( !zColl ) zColl = sqlite3StrBINARY;
119406 65 67 if( !db->init.busy && !sqlite3LocateCollSeq(pParse, zColl) ){
0 65 if( !db->init.busy && !sqlite3LocateCollSeq(pParse, zColl) ){
119418 0 79 if( pPk ){
119419 0 0 for(j=0; jnKeyCol; j++){
119422 0 0 if( isDupColumn(pIndex, pIndex->nKeyCol, pPk, j) ){
119438 10 69 if( pParse->pNewTable==0 ) estimateIndexWidth(pIndex);
119445 10 69 if( pTblName!=0 && pIndex->nColumn>=pTab->nCol ){
6 4 if( pTblName!=0 && pIndex->nColumn>=pTab->nCol ){
119447 10 2 for(j=0; jnCol; j++){
119448 2 8 if( j==pTab->iPKey ) continue;
119449 4 4 if( sqlite3TableColumnToIndex(pIndex,j)>=0 ) continue;
119455 69 10 if( pTab==pParse->pNewTable ){
119478 2 69 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
119484 0 2 if( pIdx->nKeyCol!=pIndex->nKeyCol ) continue;
119485 2 0 for(k=0; knKeyCol; k++){
119489 2 0 if( pIdx->aiColumn[k]!=pIndex->aiColumn[k] ) break;
119492 0 0 if( sqlite3StrICmp(z1, z2) ) break;
119494 0 2 if( k==pIdx->nKeyCol ){
119495 0 0 if( pIdx->onError!=pIndex->onError ){
119503 0 0 if( !(pIdx->onError==OE_Default || pIndex->onError==OE_Default) ){
0 0 if( !(pIdx->onError==OE_Default || pIndex->onError==OE_Default) ){
119507 0 0 if( pIdx->onError==OE_Default ){
119511 0 0 if( idxType==SQLITE_IDXTYPE_PRIMARYKEY ) pIdx->idxType = idxType;
119512 0 0 if( IN_RENAME_OBJECT ){
119522 79 0 if( !IN_RENAME_OBJECT ){
119528 40 39 if( db->init.busy ){
119532 5 35 if( pTblName!=0 ){
119534 0 5 if( sqlite3IndexHasDuplicateRootPage(pIndex) ){
119542 0 40 if( p ){
119563 0 39 else if( HasRowid(pTab) || pTblName!=0 ){
0 0 else if( HasRowid(pTab) || pTblName!=0 ){
119569 0 39 if( v==0 ) goto exit_create_index;
119586 5 34 if( pStart ){
119588 3 2 if( pName->z[n-1]==';' ) n--;
119590 3 2 zStmt = sqlite3MPrintf(db, "CREATE%s INDEX %.*s",
119613 5 34 if( pTblName ){
119624 39 40 if( db->init.busy || pTblName==0 ){
34 5 if( db->init.busy || pTblName==0 ){
119629 0 5 else if( IN_RENAME_OBJECT ){
119637 5 74 if( pIndex ) sqlite3FreeIndex(db, pIndex);
119638 79 0 if( pTab ){
119645 88 79 for(ppFrom=&pTab->pIndex; (pThis = *ppFrom)!=0; ppFrom=&pThis->pNext){
119647 88 0 if( pThis->onError!=OE_Replace ) continue;
119648 0 0 while( (pNext = pThis->pNext)!=0 && pNext->onError!=OE_Replace ){
0 0 while( (pNext = pThis->pNext)!=0 && pNext->onError!=OE_Replace ){
119696 78 2 int nCopy = MIN(ArraySize(aVal), pIdx->nKeyCol);
119714 0 80 if( x<99 ){
119717 0 80 if( pIdx->pPartIdxWhere!=0 ){ x -= 10; assert( 10==sqlite3LogEst(2) ); }
119723 2 80 for(i=nCopy+1; i<=pIdx->nKeyCol; i++){
119728 74 6 if( IsUniqueIndex(pIdx) ) a[pIdx->nKeyCol] = 0;
119741 0 0 if( db->mallocFailed ){
119746 0 0 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
119750 0 0 if( pIndex==0 ){
119751 0 0 if( !ifExists ){
119760 0 0 if( pIndex->idxType!=SQLITE_IDXTYPE_APPDEF ){
119771 0 0 const char *zTab = SCHEMA_TABLE(iDb);
119772 0 0 if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){
119775 0 0 if( !OMIT_TEMPDB && iDb==1 ) code = SQLITE_DROP_TEMP_INDEX;
119776 0 0 if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){
119784 0 0 if( v ){
119826 224 0 if( (n & (n-1))==0 ){
119827 9 215 sqlite3_int64 sz = (n==0) ? 1 : 2*n;
119829 0 224 if( pNew==0 ){
119850 2294 88 if( pList==0 ){
119852 0 2294 if( pList==0 ) return 0;
119857 0 88 if( pNew==0 ){
119865 0 2382 if( IN_RENAME_OBJECT && pList->a[i].zName ){
0 0 if( IN_RENAME_OBJECT && pList->a[i].zName ){
119876 405 2294 if( pList==0 ) return;
119878 2382 2294 for(i=0; inId; i++){
119891 0 0 for(i=0; inId; i++){
119892 0 0 if( sqlite3StrICmp(pList->a[i].zName, zName)==0 ) return i;
119944 11 0 if( (u32)pSrc->nSrc+nExtra>pSrc->nAlloc ){
119949 0 11 if( pSrc->nSrc+nExtra>=SQLITE_MAX_SRCLIST ){
119954 0 11 if( nAlloc>SQLITE_MAX_SRCLIST ) nAlloc = SQLITE_MAX_SRCLIST;
119957 0 11 if( pNew==0 ){
119967 0 11 for(i=pSrc->nSrc-1; i>=iStart; i--){
119974 11 11 for(i=iStart; i
120030 4529 11 if( pList==0 ){
120032 0 4529 if( pList==0 ) return 0;
120039 0 11 if( pNew==0 ){
120047 1799 2741 if( pDatabase && pDatabase->z==0 ){
826 973 if( pDatabase && pDatabase->z==0 ){
120050 973 3567 if( pDatabase ){
120067 1993 0 if( ALWAYS(pList) ){
120068 1452 1993 for(i=0, pItem=pList->a; inSrc; i++, pItem++){
120069 13 1439 if( pItem->iCursor>=0 ) continue;
120071 35 1404 if( pItem->pSelect ){
120084 69 7755 if( pList==0 ) return;
120085 4543 7755 for(pItem=pList->a, i=0; inSrc; i++, pItem++){
120086 973 3570 if( pItem->zDatabase ) sqlite3DbFreeNN(db, pItem->zDatabase);
120088 29 4514 if( pItem->zAlias ) sqlite3DbFreeNN(db, pItem->zAlias);
120089 0 4543 if( pItem->fg.isIndexedBy ) sqlite3DbFree(db, pItem->u1.zIndexedBy);
120090 0 4543 if( pItem->fg.isTabFunc ) sqlite3ExprListDelete(db, pItem->u1.pFuncArg);
120092 22 4521 if( pItem->pSelect ) sqlite3SelectDelete(db, pItem->pSelect);
120093 0 4543 if( pItem->fg.isUsing ){
120095 0 4543 }else if( pItem->u3.pOn ){
120129 1426 11 if( !p && pOnUsing!=0 && (pOnUsing->pOn || pOnUsing->pUsing) ){
1426 0 if( !p && pOnUsing!=0 && (pOnUsing->pOn || pOnUsing->pUsing) ){
1426 0 if( !p && pOnUsing!=0 && (pOnUsing->pOn || pOnUsing->pUsing) ){
0 1426 if( !p && pOnUsing!=0 && (pOnUsing->pOn || pOnUsing->pUsing) ){
120130 0 0 sqlite3ErrorMsg(pParse, "a JOIN clause is required before %s",
120136 0 1437 if( p==0 ){
120143 0 1437 if( IN_RENAME_OBJECT && pItem->zName ){
0 0 if( IN_RENAME_OBJECT && pItem->zName ){
120144 0 0 Token *pToken = (ALWAYS(pDatabase) && pDatabase->z) ? pDatabase : pTable;
0 0 Token *pToken = (ALWAYS(pDatabase) && pDatabase->z) ? pDatabase : pTable;
120148 29 1408 if( pAlias->n ){
120151 35 1402 if( pSubquery ){
120153 0 35 if( pSubquery->selFlags & SF_NestedFrom ){
120159 0 1437 if( pOnUsing==0 ){
120161 0 1437 }else if( pOnUsing->pUsing ){
120182 377 0 if( p && pIndexedBy->n>0 ){
0 377 if( p && pIndexedBy->n>0 ){
120189 0 0 if( pIndexedBy->n==1 && !pIndexedBy->z ){
0 0 if( pIndexedBy->n==1 && !pIndexedBy->z ){
120208 0 0 if( p2 ){
120210 0 0 if( pNew==0 ){
120227 0 0 if( p ){
120263 1426 0 if( p && p->nSrc>1 ){
11 1415 if( p && p->nSrc>1 ){
120268 0 11 }while( (--i)>0 );
120273 0 11 if( allFlags & JT_RIGHT ){
120274 0 0 for(i=p->nSrc-1; ALWAYS(i>0) && (p->a[i].fg.jointype&JT_RIGHT)==0; i--){}
0 0 for(i=p->nSrc-1; ALWAYS(i>0) && (p->a[i].fg.jointype&JT_RIGHT)==0; i--){}
120279 0 0 }while( (--i)>=0 );
120295 0 139 if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "BEGIN", 0, 0) ){
120299 0 139 if( !v ) return;
120300 100 39 if( type!=TK_DEFERRED ){
120301 200 100 for(i=0; inDb; i++){
120304 118 82 if( pBt && sqlite3BtreeIsReadonly(pBt) ){
0 118 if( pBt && sqlite3BtreeIsReadonly(pBt) ){
120306 12 188 }else if( type==TK_EXCLUSIVE ){
120331 28 90 if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION,
0 118 if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION,
120336 118 0 if( v ){
120347 34 0 if( zName ){
120353 34 0 if( !v || sqlite3AuthCheck(pParse, SQLITE_SAVEPOINT, az[op], zName, 0) ){
0 34 if( !v || sqlite3AuthCheck(pParse, SQLITE_SAVEPOINT, az[op], zName, 0) ){
120367 33 2454 if( db->aDb[1].pBt==0 && !pParse->explain ){
33 0 if( db->aDb[1].pBt==0 && !pParse->explain ){
120378 0 33 if( rc!=SQLITE_OK ){
120386 0 33 if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, 0, 0) ){
120405 4531 749 if( DbMaskTest(pToplevel->cookieMask, iDb)==0 ){
120407 2484 2047 if( !OMIT_TEMPDB && iDb==1 ){
120413 0 1860 sqlite3CodeVerifySchemaAtToplevel(sqlite3ParseToplevel(pParse), iDb);
120424 173 76 for(i=0; inDb; i++){
120426 128 45 if( pDb->pBt && (!zDb || 0==sqlite3StrICmp(zDb, pDb->zDbSName)) ){
101 27 if( pDb->pBt && (!zDb || 0==sqlite3StrICmp(zDb, pDb->zDbSName)) ){
57 44 if( pDb->pBt && (!zDb || 0==sqlite3StrICmp(zDb, pDb->zDbSName)) ){
120446 0 3420 Parse *pToplevel = sqlite3ParseToplevel(pParse);
120460 0 45 Parse *pToplevel = sqlite3ParseToplevel(pParse);
120481 0 1212 Parse *pToplevel = sqlite3ParseToplevel(pParse);
120502 66 0 if( onError==OE_Abort ){
120524 0 26 if( pIdx->aColExpr ){
120527 37 26 for(j=0; jnKeyCol; j++){
120531 11 26 if( j ) sqlite3_str_append(&errMsg, ", ", 2);
120538 19 7 sqlite3HaltConstraint(pParse,
120555 34 0 if( pTab->iPKey>=0 ){
120575 0 0 for(i=0; inColumn; i++){
120578 0 0 if( pIndex->aiColumn[i]>=0 && 0==sqlite3StrICmp(z, zColl) ){
0 0 if( pIndex->aiColumn[i]>=0 && 0==sqlite3StrICmp(z, zColl) ){
120592 0 0 if( !IsVirtual(pTab) ){
120595 0 0 for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){
120596 0 0 if( zColl==0 || collationMatch(zColl, pIndex) ){
0 0 if( zColl==0 || collationMatch(zColl, pIndex) ){
120620 0 0 for(iDb=0, pDb=db->aDb; iDbnDb; iDb++, pDb++){
120622 0 0 for(k=sqliteHashFirst(&pDb->pSchema->tblHash); k; k=sqliteHashNext(k)){
120656 0 0 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
120660 0 0 if( pName1==0 ){
120663 0 0 }else if( NEVER(pName2==0) || pName2->z==0 ){
0 0 }else if( NEVER(pName2==0) || pName2->z==0 ){
120667 0 0 if( !zColl ) return;
120669 0 0 if( pColl ){
120677 0 0 if( iDb<0 ) return;
120679 0 0 if( z==0 ) return;
120682 0 0 if( pTab ){
120689 0 0 if( pIndex ){
120709 0 82 if( pParse->nErr ) return 0;
120710 6 76 if( pIdx->uniqNotNull ){
120715 82 0 if( pKey ){
120717 222 82 for(i=0; i
120719 1 221 pKey->aColl[i] = zColl==sqlite3StrBINARY ? 0 :
120724 0 82 if( pParse->nErr ){
120726 0 0 if( pIdx->bNoQuery==0 ){
120761 0 0 if( db->mallocFailed ){
120808 0 0 if( pCte==0 ){
120815 0 0 if( zName && pWith ){
0 0 if( zName && pWith ){
120817 0 0 for(i=0; inCte; i++){
120818 0 0 if( sqlite3StrICmp(zName, pWith->a[i].zName)==0 ){
120824 0 0 if( pWith ){
120832 0 0 if( db->mallocFailed ){
120847 0 0 if( pWith ){
120849 0 0 for(i=0; inCte; i++){
120883 12 0 if( db->xCollNeeded ){
120885 0 12 if( !zExternal ) return;
120890 0 12 if( db->xCollNeeded16 ){
120895 0 0 if( zExternal ){
120915 0 0 for(i=0; i<3; i++){
120917 0 0 if( pColl2->xCmp!=0 ){
120938 1606 720 if( pColl && pColl->xCmp==0 ){
0 1606 if( pColl && pColl->xCmp==0 ){
120942 0 0 if( !p ){
120973 1946 1745 if( 0==pColl && create ){
967 979 if( 0==pColl && create ){
120976 967 0 if( pColl ){
120992 0 967 if( pDel!=0 ){
121026 3691 1538 if( zName ){
121028 2712 979 if( pColl ) pColl += enc-1;
121072 21 0 if( !p ){
121075 9 12 if( !p || !p->xCmp ){
0 9 if( !p || !p->xCmp ){
121082 21 0 if( p && !p->xCmp && synthCollSeq(db, p) ){
0 21 if( p && !p->xCmp && synthCollSeq(db, p) ){
0 0 if( p && !p->xCmp && synthCollSeq(db, p) ){
121086 0 21 if( p==0 ){
121120 66 0 if( !initbusy && (!pColl || !pColl->xCmp) ){
66 0 if( !initbusy && (!pColl || !pColl->xCmp) ){
0 66 if( !initbusy && (!pColl || !pColl->xCmp) ){
121165 2821 2061 if( p->nArg!=nArg ){
121166 6 2815 if( nArg==(-2) ) return (p->xSFunc==0) ? 0 : FUNC_PERFECT_MATCH;
6 0 if( nArg==(-2) ) return (p->xSFunc==0) ? 0 : FUNC_PERFECT_MATCH;
121167 2611 204 if( p->nArg>=0 ) return 0;
121172 2061 204 if( p->nArg==nArg ){
121179 2265 0 if( enc==(p->funcFlags & SQLITE_FUNC_ENCMASK) ){
121181 0 0 }else if( (enc & p->funcFlags & 2)!=0 ){
121197 95659 21216 for(p=sqlite3BuiltinFunctions.a[h]; p; p=p->u.pHash){
121199 3090 92569 if( sqlite3StrICmp(p->zName, zFunc)==0 ){
121214 16170 550 for(i=0; i
121221 2530 13640 if( pOther ){
121274 3848 14891 while( p ){
121276 1673 2175 if( score>bestScore ){
121295 9803 5088 if( !createFlag && (pBest==0 || (db->mDbFlags & DBFLAG_PreferBuiltin)!=0) ){
1667 8136 if( !createFlag && (pBest==0 || (db->mDbFlags & DBFLAG_PreferBuiltin)!=0) ){
0 1667 if( !createFlag && (pBest==0 || (db->mDbFlags & DBFLAG_PreferBuiltin)!=0) ){
121299 1034 8136 while( p ){
121301 592 442 if( score>bestScore ){
121313 5088 9803 if( createFlag && bestScore
5082 6 if( createFlag && bestScore
5082 0 if( createFlag && bestScore
121321 44063 5082 for(z=(u8*)pBest->zName; *z; z++) *z = sqlite3UpperToLower[*z];
121323 0 5082 if( pOther==pBest ){
121332 7315 7576 if( pBest && (pBest->xSFunc || createFlag) ){
5088 2227 if( pBest && (pBest->xSFunc || createFlag) ){
5082 6 if( pBest && (pBest->xSFunc || createFlag) ){
121356 0 651 for(pElem=sqliteHashFirst(&temp2); pElem; pElem=sqliteHashNext(pElem)){
121361 731 651 for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){
121368 433 218 if( pSchema->schemaFlags & DB_SchemaLoaded ){
121380 316 311 if( pBt ){
121385 0 627 if( !p ){
121387 627 0 }else if ( 0==p->file_format ){
121436 3079 0 if( pTab ){
121438 0 3079 if( pItem->fg.isIndexedBy && sqlite3IndexedByLookup(pParse, pItem) ){
0 0 if( pItem->fg.isIndexedBy && sqlite3IndexedByLookup(pParse, pItem) ){
121472 22 3052 if( IsVirtual(pTab) ){
121475 2652 400 if( (pTab->tabFlags & (TF_Readonly|TF_Shadow))==0 ) return 0;
121477 351 49 if( (pTab->tabFlags & TF_Readonly)!=0 ){
121478 349 2 return sqlite3WritableSchema(db)==0 && pParse->nested==0;
3 346 return sqlite3WritableSchema(db)==0 && pParse->nested==0;
121490 3 3071 if( tabIsReadOnly(pParse, pTab) ){
121495 3071 0 if( !viewOk && IsView(pTab) ){
0 3071 if( !viewOk && IsView(pTab) ){
121525 0 0 if( pFrom ){
121695 0 67 if( pParse->nErr ){
121707 0 67 if( pTab==0 ) goto delete_from_cleanup;
121719 67 0 bComplex = pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0);
0 67 bComplex = pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0);
121745 0 67 if( sqlite3ViewGetColumnNames(pParse, pTab) ){
121749 0 67 if( sqlite3IsReadOnly(pParse, pTab, (pTrigger?1:0)) ){
121757 2 65 if( rcauth==SQLITE_DENY ){
121766 10 65 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){
121772 0 65 if( isView ){
121779 0 65 if( v==0 ){
121782 58 7 if( pParse->nested==0 ) sqlite3VdbeCountChanges(v);
121789 0 65 if( isView ){
121804 0 65 if( sqlite3ResolveExprNames(&sNC, pWhere) ){
121811 0 65 if( (db->flags & SQLITE_CountRows)!=0
121812 0 0 && !pParse->nested
121813 0 0 && !pParse->pTriggerTab
121814 0 0 && !pParse->bReturning
121832 65 0 if( rcauth==SQLITE_OK
121833 32 33 && pWhere==0
121834 32 0 && !bComplex
121835 32 0 && !IsVirtual(pTab)
121842 32 0 if( HasRowid(pTab) ){
121843 0 32 sqlite3VdbeAddOp4(v, OP_Clear, pTab->tnum, iDb, memCnt ? memCnt : -1,
121846 1 32 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
121849 1 0 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){
0 1 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){
121850 0 0 sqlite3VdbeChangeP3(v, -1, memCnt ? memCnt : -1);
121857 0 33 if( sNC.ncFlags & NC_VarSelect ) bComplex = 1;
121858 0 33 wcf |= (bComplex ? 0 : WHERE_ONEPASS_MULTIROW);
121859 33 0 if( HasRowid(pTab) ){
121887 0 33 if( pWInfo==0 ) goto delete_from_cleanup;
121891 28 5 if( eOnePass!=ONEPASS_SINGLE ) sqlite3MultiWrite(pParse);
121892 9 24 if( sqlite3WhereUsesDeferredSeek(pWInfo) ){
121897 0 33 if( memCnt ){
121902 0 33 if( pPk ){
121903 0 0 for(i=0; i
121914 32 1 if( eOnePass!=ONEPASS_OFF ){
121920 0 32 if( aToOpen==0 ){
121926 32 0 if( aiCurOnePass[0]>=0 ) aToOpen[aiCurOnePass[0]-iTabCur] = 0;
121927 9 23 if( aiCurOnePass[1]>=0 ) aToOpen[aiCurOnePass[1]-iTabCur] = 0;
121928 0 32 if( addrEphOpen ) sqlite3VdbeChangeToNoop(v, addrEphOpen);
121931 0 1 if( pPk ){
121951 33 0 if( !isView ){
121953 27 6 if( eOnePass==ONEPASS_MULTI ){
121961 27 6 if( eOnePass==ONEPASS_MULTI ){
121969 32 1 if( eOnePass!=ONEPASS_OFF ){
121971 32 0 if( !IsVirtual(pTab) && aToOpen[iDataCur-iTabCur] ){
0 32 if( !IsVirtual(pTab) && aToOpen[iDataCur-iTabCur] ){
121976 0 1 }else if( pPk ){
121978 0 0 if( IsVirtual(pTab) ){
121992 1 32 if( IsVirtual(pTab) ){
121997 0 1 if( eOnePass==ONEPASS_SINGLE ){
121999 0 0 if( sqlite3IsToplevel(pParse) ){
122014 32 1 if( eOnePass!=ONEPASS_OFF ){
122017 0 1 }else if( pPk ){
122030 58 7 if( pParse->nested==0 && pParse->pTriggerTab==0 ){
58 0 if( pParse->nested==0 && pParse->pTriggerTab==0 ){
122038 0 65 if( memCnt ){
122131 40 0 opSeek = HasRowid(pTab) ? OP_NotExists : OP_NotFound;
122132 8 32 if( eMode==ONEPASS_OFF ){
122140 40 0 if( sqlite3FkRequired(pParse, pTab, 0, 0) || pTrigger ){
0 40 if( sqlite3FkRequired(pParse, pTab, 0, 0) || pTrigger ){
122157 0 0 for(iCol=0; iColnCol; iCol++){
122160 0 0 if( mask==0xffffffff || (iCol<=31 && (mask & MASKBIT32(iCol))!=0) ){
0 0 if( mask==0xffffffff || (iCol<=31 && (mask & MASKBIT32(iCol))!=0) ){
0 0 if( mask==0xffffffff || (iCol<=31 && (mask & MASKBIT32(iCol))!=0) ){
122180 0 0 if( addrStart
122204 40 0 if( !IsView(pTab) ){
122208 7 33 if( pParse->nested==0 || 0==sqlite3_stricmp(pTab->zName, "sqlite_stat1") ){
0 7 if( pParse->nested==0 || 0==sqlite3_stricmp(pTab->zName, "sqlite_stat1") ){
122211 32 8 if( eMode!=ONEPASS_OFF ){
122214 17 23 if( iIdxNoSeek>=0 && iIdxNoSeek!=iDataCur ){
17 0 if( iIdxNoSeek>=0 && iIdxNoSeek!=iDataCur ){
122217 27 13 if( eMode==ONEPASS_MULTI ) p5 |= OPFLAG_SAVEPOSITION;
122273 0 347 pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab);
122274 17 347 for(i=0, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){
122276 0 17 if( aRegIdx!=0 && aRegIdx[i]==0 ) continue;
0 0 if( aRegIdx!=0 && aRegIdx[i]==0 ) continue;
122277 0 17 if( pIdx==pPk ) continue;
122278 17 0 if( iIdxCur+i==iIdxNoSeek ) continue;
122282 0 0 sqlite3VdbeAddOp3(v, OP_IdxDelete, iIdxCur+i, r1,
122336 5 1 if( piPartIdxLabel ){
122337 0 5 if( pIdx->pPartIdxWhere ){
122349 0 6 nCol = (prefixOnly && pIdx->uniqNotNull) ? pIdx->nKeyCol : pIdx->nColumn;
0 0 nCol = (prefixOnly && pIdx->uniqNotNull) ? pIdx->nKeyCol : pIdx->nColumn;
122351 0 6 if( pPrior && (regBase!=regPrior || pPrior->pPartIdxWhere) ) pPrior = 0;
0 0 if( pPrior && (regBase!=regPrior || pPrior->pPartIdxWhere) ) pPrior = 0;
0 0 if( pPrior && (regBase!=regPrior || pPrior->pPartIdxWhere) ) pPrior = 0;
122352 14 6 for(j=0; j
122353 0 14 if( pPrior
122354 0 0 && pPrior->aiColumn[j]==pIdx->aiColumn[j]
122355 0 0 && pPrior->aiColumn[j]!=XN_EXPR
122361 8 6 if( pIdx->aiColumn[j]>=0 ){
122371 6 0 if( regOut ){
122384 0 5 if( iLabel ){
122450 0 0 mask = sqlite3_user_data(context)==0 ? 0 : -1;
122455 0 0 if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;
122456 0 0 for(i=1; i
122457 0 0 if( sqlite3_value_type(argv[i])==SQLITE_NULL ) return;
122458 0 0 if( (sqlite3MemCompare(argv[iBest], argv[i], pColl)^mask)>=0 ){
122524 0 14 if( z==0 ) return;
122526 161 14 while( (c = *z)!=0 ){
122528 3 158 if( c>=0xc0 ){
122529 4 3 while( (*z & 0xc0)==0x80 ){ z++; z0++; }
122554 0 0 if( iVal<0 ){
122555 0 0 if( iVal==SMALLEST_INT64 ){
122579 0 0 if( rVal<0 ) rVal = -rVal;
122616 0 0 if( typeHaystack==SQLITE_NULL || typeNeedle==SQLITE_NULL ) return;
0 0 if( typeHaystack==SQLITE_NULL || typeNeedle==SQLITE_NULL ) return;
122619 0 0 if( nNeedle>0 ){
122620 0 0 if( typeHaystack==SQLITE_BLOB && typeNeedle==SQLITE_BLOB ){
0 0 if( typeHaystack==SQLITE_BLOB && typeNeedle==SQLITE_BLOB ){
122624 0 0 }else if( typeHaystack!=SQLITE_BLOB && typeNeedle!=SQLITE_BLOB ){
0 0 }else if( typeHaystack!=SQLITE_BLOB && typeNeedle!=SQLITE_BLOB ){
122631 0 0 if( zHaystack==0 ) goto endInstrOOM;
122635 0 0 if( zNeedle==0 ) goto endInstrOOM;
122639 0 0 if( zNeedle==0 || (nHaystack && zHaystack==0) ) goto endInstrOOM;
0 0 if( zNeedle==0 || (nHaystack && zHaystack==0) ) goto endInstrOOM;
0 0 if( zNeedle==0 || (nHaystack && zHaystack==0) ) goto endInstrOOM;
122641 0 0 while( nNeedle<=nHaystack
122642 0 0 && (zHaystack[0]!=firstChar || memcmp(zHaystack, zNeedle, nNeedle)!=0)
0 0 && (zHaystack[0]!=firstChar || memcmp(zHaystack, zNeedle, nNeedle)!=0)
122648 0 0 }while( isText && (zHaystack[0]&0xc0)==0x80 );
0 0 }while( isText && (zHaystack[0]&0xc0)==0x80 );
122650 0 0 if( nNeedle>nHaystack ) N = 0;
122676 0 0 if( argc>=1 && (zFormat = (const char*)sqlite3_value_text(argv[0]))!=0 ){
0 0 if( argc>=1 && (zFormat = (const char*)sqlite3_value_text(argv[0]))!=0 ){
122714 0 0 if( sqlite3_value_type(argv[1])==SQLITE_NULL
122715 0 0 || (argc==3 && sqlite3_value_type(argv[2])==SQLITE_NULL)
0 0 || (argc==3 && sqlite3_value_type(argv[2])==SQLITE_NULL)
122721 0 0 if( p0type==SQLITE_BLOB ){
122724 0 0 if( z==0 ) return;
122728 0 0 if( z==0 ) return;
122730 0 0 if( p1<0 ){
122731 0 0 for(z2=z; *z2; len++){
122732 0 0 SQLITE_SKIP_UTF8(z2);
0 0 SQLITE_SKIP_UTF8(z2);
122744 0 0 if( argc==3 ){
122746 0 0 if( p2<0 ){
122753 0 0 if( p1<0 ){
122755 0 0 if( p1<0 ){
122757 0 0 if( p2<0 ) p2 = 0;
122760 0 0 }else if( p1>0 ){
122762 0 0 }else if( p2>0 ){
122765 0 0 if( negP2 ){
122767 0 0 if( p1<0 ){
122773 0 0 if( p0type!=SQLITE_BLOB ){
122774 0 0 while( *z && p1 ){
0 0 while( *z && p1 ){
122775 0 0 SQLITE_SKIP_UTF8(z);
0 0 SQLITE_SKIP_UTF8(z);
122778 0 0 for(z2=z; *z2 && p2; p2--){
0 0 for(z2=z; *z2 && p2; p2--){
122779 0 0 SQLITE_SKIP_UTF8(z2);
0 0 SQLITE_SKIP_UTF8(z2);
122784 0 0 if( p1+p2>len ){
122786 0 0 if( p2<0 ) p2 = 0;
122801 0 0 if( argc==2 ){
122802 0 0 if( SQLITE_NULL==sqlite3_value_type(argv[1]) ) return;
122804 0 0 if( n>30 ) n = 30;
122805 0 0 if( n<0 ) n = 0;
122807 0 0 if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;
122813 0 0 if( r<-4503599627370496.0 || r>+4503599627370496.0 ){
0 0 if( r<-4503599627370496.0 || r>+4503599627370496.0 ){
122815 0 0 }else if( n==0 ){
122816 0 0 r = (double)((sqlite_int64)(r+(r<0?-0.5:+0.5)));
122819 0 0 if( zBuf==0 ){
122843 0 20 if( nByte>db->aLimit[SQLITE_LIMIT_LENGTH] ){
122848 0 20 if( !z ){
122867 20 0 if( z2 ){
122869 20 0 if( z1 ){
122870 100 20 for(i=0; i
122886 0 0 if( z2 ){
122888 0 0 if( z1 ){
122889 0 0 for(i=0; i
122918 0 0 if( r<0 ){
122946 0 0 if( n<1 ){
122950 0 0 if( p ){
123094 714 56 while( (c = Utf8Read(zPattern))!=0 ){
707 63 while( (c = Utf8Read(zPattern))!=0 ){
123095 149 558 if( c==matchAll ){ /* Match "*" */
123099 149 0 while( (c=Utf8Read(zPattern)) == matchAll
0 149 while( (c=Utf8Read(zPattern)) == matchAll
123100 0 149 || (c == matchOne && matchOne!=0) ){
0 0 || (c == matchOne && matchOne!=0) ){
123101 0 0 if( c==matchOne && sqlite3Utf8Read(&zString)==0 ){
0 0 if( c==matchOne && sqlite3Utf8Read(&zString)==0 ){
123105 22 127 if( c==0 ){
123107 0 127 }else if( c==matchOther ){
123108 0 0 if( pInfo->matchSet==0 ){
123110 0 0 if( c==0 ) return SQLITE_NOWILDCARDMATCH;
123115 0 0 while( *zString ){
123117 0 0 if( bMatch!=SQLITE_NOMATCH ) return bMatch;
123118 0 0 SQLITE_SKIP_UTF8(zString);
0 0 SQLITE_SKIP_UTF8(zString);
123133 127 0 if( c<=0x80 ){
123136 127 0 if( noCase ){
123146 110 216 if( zString[0]==0 ) break;
123149 17 199 if( bMatch!=SQLITE_NOMATCH ) return bMatch;
123153 0 0 while( (c2 = Utf8Read(zString))!=0 ){
0 0 while( (c2 = Utf8Read(zString))!=0 ){
123154 0 0 if( c2!=c ) continue;
123156 0 0 if( bMatch!=SQLITE_NOMATCH ) return bMatch;
123161 9 549 if( c==matchOther ){
123162 9 0 if( pInfo->matchSet==0 ){
123164 0 9 if( c==0 ) return SQLITE_NOMATCH;
123171 0 0 if( c==0 ) return SQLITE_NOMATCH;
123173 0 0 if( c2=='^' ){
123177 0 0 if( c2==']' ){
123178 0 0 if( c==']' ) seen = 1;
123181 0 0 while( c2 && c2!=']' ){
0 0 while( c2 && c2!=']' ){
123182 0 0 if( c2=='-' && zPattern[0]!=']' && zPattern[0]!=0 && prior_c>0 ){
0 0 if( c2=='-' && zPattern[0]!=']' && zPattern[0]!=0 && prior_c>0 ){
0 0 if( c2=='-' && zPattern[0]!=']' && zPattern[0]!=0 && prior_c>0 ){
0 0 if( c2=='-' && zPattern[0]!=']' && zPattern[0]!=0 && prior_c>0 ){
123184 0 0 if( c>=prior_c && c<=c2 ) seen = 1;
0 0 if( c>=prior_c && c<=c2 ) seen = 1;
123187 0 0 if( c==c2 ){
123194 0 0 if( c2==0 || (seen ^ invert)==0 ){
0 0 if( c2==0 || (seen ^ invert)==0 ){
123200 530 28 c2 = Utf8Read(zString);
123201 236 322 if( c==c2 ) continue;
123202 322 0 if( noCase && sqlite3Tolower(c)==sqlite3Tolower(c2) && c<0x80 && c2<0x80 ){
54 268 if( noCase && sqlite3Tolower(c)==sqlite3Tolower(c2) && c<0x80 && c2<0x80 ){
54 0 if( noCase && sqlite3Tolower(c)==sqlite3Tolower(c2) && c<0x80 && c2<0x80 ){
54 0 if( noCase && sqlite3Tolower(c)==sqlite3Tolower(c2) && c<0x80 && c2<0x80 ){
123205 3 265 if( c==matchOne && zPattern!=zEscaped && c2!=0 ) continue;
1 2 if( c==matchOne && zPattern!=zEscaped && c2!=0 ) continue;
1 0 if( c==matchOne && zPattern!=zEscaped && c2!=0 ) continue;
123279 0 132 if( nPat > db->aLimit[SQLITE_LIMIT_LIKE_PATTERN_LENGTH] ){
123283 0 132 if( argc==3 ){
123288 0 0 if( zEsc==0 ) return;
123289 0 0 if( sqlite3Utf8CharLen((char*)zEsc, -1)!=1 ){
123295 0 0 if( escape==pInfo->matchAll || escape==pInfo->matchOne ){
0 0 if( escape==pInfo->matchAll || escape==pInfo->matchOne ){
123298 0 0 if( escape==pInfo->matchAll ) pInfo->matchAll = 0;
123299 0 0 if( escape==pInfo->matchOne ) pInfo->matchOne = 0;
123306 132 0 if( zA && zB ){
132 0 if( zA && zB ){
123327 0 0 if( sqlite3MemCompare(argv[0], argv[1], pColl)!=0 ){
123396 0 0 if( (zOptName = (const char*)sqlite3_value_text(argv[0]))!=0 ){
123448 0 0 if( zVal ){
123450 0 0 if( r1!=r2 ){
123466 0 0 if( pStr->accError==0 ){
123469 0 0 for(i=0; i
123513 0 0 if( str.accError!=SQLITE_OK ){
123530 0 0 if( z && z[0] ) sqlite3_result_int(context, sqlite3Utf8Read(&z));
0 0 if( z && z[0] ) sqlite3_result_int(context, sqlite3Utf8Read(&z));
123546 0 0 if( z==0 ){
123550 0 0 for(i=0; i
123554 0 0 if( x<0 || x>0x10ffff ) x = 0xfffd;
0 0 if( x<0 || x>0x10ffff ) x = 0xfffd;
123556 0 0 if( c<0x00080 ){
123558 0 0 }else if( c<0x00800 ){
123561 0 0 }else if( c<0x10000 ){
123593 0 0 if( zHex ){
123594 0 0 for(i=0; i
123617 0 1 if( n<0 ) n = 0;
123619 0 1 if( rc ){
123651 0 0 if( zStr==0 ) return;
123655 0 0 if( zPattern==0 ){
123660 0 0 if( zPattern[0]==0 ){
123668 0 0 if( zRep==0 ) return;
123674 0 0 if( zOut==0 ){
123679 0 0 for(i=j=0; i<=loopLimit; i++){
123680 0 0 if( zStr[i]!=zPattern[0] || memcmp(&zStr[i], zPattern, nPattern) ){
0 0 if( zStr[i]!=zPattern[0] || memcmp(&zStr[i], zPattern, nPattern) ){
123683 0 0 if( nRep>nPattern ){
123687 0 0 if( nOut-1>db->aLimit[SQLITE_LIMIT_LENGTH] ){
123693 0 0 if( (cntExpand&(cntExpand-1))==0 ){
123699 0 0 if( zOut==0 ){
123737 0 6 if( sqlite3_value_type(argv[0])==SQLITE_NULL ){
123741 0 6 if( zIn==0 ) return;
123744 6 0 if( argc==1 ){
123751 0 0 }else if( (zCharSet = sqlite3_value_text(argv[1]))==0 ){
123755 0 0 for(z=zCharSet, nChar=0; *z; nChar++){
123756 0 0 SQLITE_SKIP_UTF8(z);
0 0 SQLITE_SKIP_UTF8(z);
123758 0 0 if( nChar>0 ){
123761 0 0 if( azChar==0 ){
123765 0 0 for(z=zCharSet, nChar=0; *z; nChar++){
123767 0 0 SQLITE_SKIP_UTF8(z);
0 0 SQLITE_SKIP_UTF8(z);
123772 6 0 if( nChar>0 ){
123774 6 0 if( flags & 1 ){
123775 6 0 while( nIn>0 ){
123777 6 6 for(i=0; i
123779 6 0 if( len<=nIn && memcmp(zIn, azChar[i], len)==0 ) break;
0 6 if( len<=nIn && memcmp(zIn, azChar[i], len)==0 ) break;
123781 6 0 if( i>=nChar ) break;
123786 6 0 if( flags & 2 ){
123787 6 0 while( nIn>0 ){
123789 6 6 for(i=0; i
123791 6 0 if( len<=nIn && memcmp(&zIn[nIn-len],azChar[i],len)==0 ) break;
0 6 if( len<=nIn && memcmp(&zIn[nIn-len],azChar[i],len)==0 ) break;
123793 6 0 if( i>=nChar ) break;
123797 0 6 if( zCharSet ){
123898 0 0 if( (db->flags & SQLITE_LoadExtFunc)==0 ){
123903 0 0 if( argc==2 ){
123908 0 0 if( zFile && sqlite3_load_extension(db, zFile, zProc, &zErrMsg) ){
0 0 if( zFile && sqlite3_load_extension(db, zFile, zProc, &zErrMsg) ){
123946 10 0 if( p && type!=SQLITE_NULL ){
10 0 if( p && type!=SQLITE_NULL ){
123948 10 0 if( type==SQLITE_INTEGER ){
123951 10 0 if( (p->approx|p->overflow)==0 && sqlite3AddInt64(&p->iSum, v) ){
0 10 if( (p->approx|p->overflow)==0 && sqlite3AddInt64(&p->iSum, v) ){
123970 0 0 if( ALWAYS(p) && type!=SQLITE_NULL ){
0 0 if( ALWAYS(p) && type!=SQLITE_NULL ){
123974 0 0 if( type==SQLITE_INTEGER && p->approx==0 ){
0 0 if( type==SQLITE_INTEGER && p->approx==0 ){
123989 5 0 if( p && p->cnt>0 ){
5 0 if( p && p->cnt>0 ){
123990 0 5 if( p->overflow ){
123992 0 5 }else if( p->approx ){
124002 0 0 if( p && p->cnt>0 ){
0 0 if( p && p->cnt>0 ){
124010 0 0 sqlite3_result_double(context, p ? p->rSum : (double)0);
124031 251 56 if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && p ){
251 0 if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && p ){
307 0 if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && p ){
124047 40 4 sqlite3_result_int64(context, p ? p->n : 0);
124054 0 0 if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && ALWAYS(p) ){
0 0 if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && ALWAYS(p) ){
0 0 if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && ALWAYS(p) ){
124078 0 27 if( !pBest ) return;
124080 0 27 if( sqlite3_value_type(pArg)==SQLITE_NULL ){
124081 0 0 if( pBest->flags ) sqlite3SkipAccumulatorLoad(context);
124082 0 27 }else if( pBest->flags ){
124096 0 0 if( (max && cmp<0) || (!max && cmp>0) ){
0 0 if( (max && cmp<0) || (!max && cmp>0) ){
0 0 if( (max && cmp<0) || (!max && cmp>0) ){
0 0 if( (max && cmp<0) || (!max && cmp>0) ){
124109 27 41 if( pRes ){
124110 27 0 if( pRes->flags ){
124113 27 0 if( bValue==0 ) sqlite3VdbeMemRelease(pRes);
124160 0 0 if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;
124162 0 0 if( pGCC ){
124166 0 0 if( argc==1 ){
124167 0 0 if( !firstTerm ){
124175 0 0 }else if( !firstTerm ){
124178 0 0 if( zSep ){
124185 0 0 if( nSep != pGCC->nFirstSepLength || pGCC->pnSepLengths != 0 ){
0 0 if( nSep != pGCC->nFirstSepLength || pGCC->pnSepLengths != 0 ){
124187 0 0 if( pnsl == 0 ){
124190 0 0 if( pnsl!=0 ){
124192 0 0 while( inFirstSepLength;
124197 0 0 if( pnsl!=0 ){
124198 0 0 if( ALWAYS(pGCC->nAccum>0) ){
124216 0 0 if( zVal ) sqlite3_str_append(&pGCC->str, zVal, nVal);
124229 0 0 if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;
124233 0 0 if( ALWAYS(pGCC) ){
124240 0 0 if( pGCC->pnSepLengths!=0 ){
124242 0 0 if( pGCC->nAccum>0 ){
124251 0 0 if( nVS>=(int)pGCC->str.nChar ){
124257 0 0 if( pGCC->str.nChar==0 ){
124270 0 0 if( pGCC ){
124281 0 0 if( pGCC ){
124283 0 0 if( pAccum->accError==SQLITE_TOOBIG ){
124285 0 0 }else if( pAccum->accError==SQLITE_NOMEM ){
124305 0 311 if( rc==SQLITE_NOMEM ){
124318 0 0 if( caseSensitive ){
124354 0 218 if( !pExpr->x.pList ){
124363 218 0 if( NEVER(pDef==0) || (pDef->funcFlags & SQLITE_FUNC_LIKE)==0 ){
99 119 if( NEVER(pDef==0) || (pDef->funcFlags & SQLITE_FUNC_LIKE)==0 ){
124376 119 0 if( nExpr<3 ){
124381 0 0 if( pEscape->op!=TK_STRING ) return 0;
124384 0 0 if( zEscape[0]==0 || zEscape[1]!=0 ) return 0;
0 0 if( zEscape[0]==0 || zEscape[1]!=0 ) return 0;
124385 0 0 if( zEscape[0]==aWc[0] ) return 0;
124386 0 0 if( zEscape[0]==aWc[1] ) return 0;
124464 0 0 switch( sqlite3_value_numeric_type(argv[0]) ){
124468 0 0 if( x<=0.0 ) return;
124473 0 0 if( argc==2 ){
124474 0 0 switch( sqlite3_value_numeric_type(argv[0]) ){
124478 0 0 if( b<=0.0 ) return;
124480 0 0 if( x<=0.0 ) return;
124525 0 0 if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
0 0 if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
124547 0 0 if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
0 0 if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
124549 0 0 if( type1!=SQLITE_INTEGER && type1!=SQLITE_FLOAT ) return;
0 0 if( type1!=SQLITE_INTEGER && type1!=SQLITE_FLOAT ) return;
124584 0 0 if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
0 0 if( type0!=SQLITE_INTEGER && type0!=SQLITE_FLOAT ) return;
124586 0 0 sqlite3_result_int(context, x<0.0 ? -1 : x>0.0 ? +1 : 0);
124984 10 0 if( nCol==1 ){
124992 10 0 if( pParent->iPKey>=0 ){
124993 0 10 if( !zKey ) return 0;
124994 10 0 if( !sqlite3StrICmp(pParent->aCol[pParent->iPKey].zCnName, zKey) ){
124998 0 0 }else if( paiCol ){
125001 0 0 if( !aiCol ) return 1;
125005 0 0 for(pIdx=pParent->pIndex; pIdx; pIdx=pIdx->pNext){
125006 0 0 if( pIdx->nKeyCol==nCol && IsUniqueIndex(pIdx) && pIdx->pPartIdxWhere==0 ){
0 0 if( pIdx->nKeyCol==nCol && IsUniqueIndex(pIdx) && pIdx->pPartIdxWhere==0 ){
0 0 if( pIdx->nKeyCol==nCol && IsUniqueIndex(pIdx) && pIdx->pPartIdxWhere==0 ){
125011 0 0 if( zKey==0 ){
125015 0 0 if( IsPrimaryKeyIndex(pIdx) ){
125016 0 0 if( aiCol ){
125018 0 0 for(i=0; iaCol[i].iFrom;
125028 0 0 for(i=0; i
125033 0 0 if( iCol<0 ) break; /* No foreign keys against expression indexes */
125039 0 0 if( !zDfltColl ) zDfltColl = sqlite3StrBINARY;
125040 0 0 if( sqlite3StrICmp(pIdx->azColl[i], zDfltColl) ) break;
125043 0 0 for(j=0; j
125044 0 0 if( sqlite3StrICmp(pFKey->aCol[j].zCol, zIdxCol)==0 ){
125045 0 0 if( aiCol ) aiCol[i] = pFKey->aCol[j].iFrom;
125049 0 0 if( j==nCol ) break;
125051 0 0 if( i==nCol ) break; /* pIdx is usable */
125056 0 0 if( !pIdx ){
125057 0 0 if( !pParse->disableTriggers ){
125125 2 8 if( nIncr<0 ){
125129 10 10 for(i=0; inCol; i++){
125134 10 0 if( isIgnore==0 ){
125135 10 0 if( pIdx==0 ){
125155 0 10 if( pTab==pFKey->pFrom && nIncr==1 ){
0 0 if( pTab==pFKey->pFrom && nIncr==1 ){
125172 0 0 for(i=0; i
125188 0 0 if( pTab==pFKey->pFrom && nIncr==1 ){
0 0 if( pTab==pFKey->pFrom && nIncr==1 ){
125190 0 0 for(i=0; i
125198 0 0 if( pIdx->aiColumn[i]==pTab->iPKey ){
125216 10 0 if( !pFKey->isDeferred && !(pParse->db->flags & SQLITE_DeferFKs)
10 0 if( !pFKey->isDeferred && !(pParse->db->flags & SQLITE_DeferFKs)
125217 10 0 && !pParse->pToplevel
125218 6 4 && !pParse->isMultiWrite
125228 2 2 if( nIncr>0 && pFKey->isDeferred==0 ){
2 0 if( nIncr>0 && pFKey->isDeferred==0 ){
125259 0 0 if( pExpr ){
125260 0 0 if( iCol>=0 && iCol!=pTab->iPKey ){
0 0 if( iCol>=0 && iCol!=pTab->iPKey ){
125265 0 0 if( zColl==0 ) zColl = db->pDfltColl->zName;
125286 0 0 if( pExpr ){
125346 0 0 if( nIncr<0 ){
125359 0 0 for(i=0; inCol; i++){
125366 0 0 iCol = pIdx ? pIdx->aiColumn[i] : -1;
125368 0 0 iCol = aiCol ? aiCol[i] : pFKey->aCol[0].iFrom;
125390 0 0 if( pTab==pFKey->pFrom && nIncr>0 ){
0 0 if( pTab==pFKey->pFrom && nIncr>0 ){
125394 0 0 if( HasRowid(pTab) ){
125401 0 0 for(i=0; inKeyCol; i++){
125423 0 0 if( pParse->nErr==0 ){
125426 0 0 if( pWInfo ){
125433 0 0 if( iFkIfZero ){
125465 0 32 if( p ){
125483 486 273 for(k=sqliteHashFirst(pHash); k; k=sqliteHashNext(k)){
125486 66 420 if( !IsOrdinaryTable(pTab) ) continue;
125487 0 420 for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pFKey->pNextFrom){
125513 0 7 if( (db->flags&SQLITE_ForeignKeys) && IsOrdinaryTable(pTab) ){
0 0 if( (db->flags&SQLITE_ForeignKeys) && IsOrdinaryTable(pTab) ){
125519 0 0 if( sqlite3FkReferences(pTab)==0 ){
125526 0 0 for(p=pTab->u.tab.pFKey; p; p=p->pNextFrom){
125527 0 0 if( p->isDeferred || (db->flags & SQLITE_DeferFKs) ) break;
0 0 if( p->isDeferred || (db->flags & SQLITE_DeferFKs) ) break;
125529 0 0 if( !p ) return;
125547 0 0 if( (db->flags & SQLITE_DeferFKs)==0 ){
125555 0 0 if( iSkip ){
125581 6 0 for(i=0; inCol; i++){
125583 6 0 if( aChange[iChildKey]>=0 ) return 1;
125584 0 0 if( iChildKey==pTab->iPKey && bChngRowid ) return 1;
0 0 if( iChildKey==pTab->iPKey && bChngRowid ) return 1;
125608 0 0 for(i=0; inCol; i++){
125611 0 0 for(iKey=0; iKeynCol; iKey++){
125612 0 0 if( aChange[iKey]>=0 || (iKey==pTab->iPKey && bChngRowid) ){
0 0 if( aChange[iKey]>=0 || (iKey==pTab->iPKey && bChngRowid) ){
0 0 if( aChange[iKey]>=0 || (iKey==pTab->iPKey && bChngRowid) ){
125614 0 0 if( zKey ){
125615 0 0 if( 0==sqlite3StrICmp(pCol->zCnName, zKey) ) return 1;
125616 0 0 }else if( pCol->colFlags & COLFLAG_PRIMKEY ){
125631 0 8 Parse *pTop = sqlite3ParseToplevel(pParse);
125632 0 8 if( pTop->pTriggerPrg ){
125634 0 0 if( (p==pFKey->apTrigger[0] && pFKey->aAction[0]==OE_SetNull)
0 0 if( (p==pFKey->apTrigger[0] && pFKey->aAction[0]==OE_SetNull)
125635 0 0 || (p==pFKey->apTrigger[1] && pFKey->aAction[1]==OE_SetNull)
0 0 || (p==pFKey->apTrigger[1] && pFKey->aAction[1]==OE_SetNull)
125681 2647 31 if( (db->flags&SQLITE_ForeignKeys)==0 ) return;
125682 0 31 if( !IsOrdinaryTable(pTab) ) return;
125689 10 31 for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pFKey->pNextFrom){
125698 4 6 if( aChange
125699 4 0 && sqlite3_stricmp(pTab->zName, pFKey->zTo)!=0
125700 0 4 && fkChildIsModified(pTab, pFKey, aChange, bChngRowid)==0
125709 0 10 if( pParse->disableTriggers ){
125714 10 0 if( !pTo || sqlite3FkLocateIndex(pParse, pTo, pFKey, &pIdx, &aiFree) ){
0 10 if( !pTo || sqlite3FkLocateIndex(pParse, pTo, pFKey, &pIdx, &aiFree) ){
125716 0 0 if( !isIgnoreErrors || db->mallocFailed ) return;
0 0 if( !isIgnoreErrors || db->mallocFailed ) return;
125717 0 0 if( pTo==0 ){
125727 0 0 for(i=0; inCol; i++){
125739 0 10 if( aiFree ){
125745 10 10 for(i=0; inCol; i++){
125746 0 10 if( aiCol[i]==pTab->iPKey ){
125754 0 10 if( db->xAuth ){
125756 0 0 char *zCol = pTo->aCol[pIdx ? pIdx->aiColumn[i] : pTo->iPKey].zCnName;
125769 2 8 if( regOld!=0 ){
125775 8 2 if( regNew!=0 && !isSetNullAction(pParse, pFKey) ){
8 0 if( regNew!=0 && !isSetNullAction(pParse, pFKey) ){
125792 15 31 for(pFKey = sqlite3FkReferences(pTab); pFKey; pFKey=pFKey->pNextTo){
125797 0 15 if( aChange && fkParentIsModified(pTab, pFKey, aChange, bChngRowid)==0 ){
0 0 if( aChange && fkParentIsModified(pTab, pFKey, aChange, bChngRowid)==0 ){
125801 15 0 if( !pFKey->isDeferred && !(db->flags & SQLITE_DeferFKs)
15 0 if( !pFKey->isDeferred && !(db->flags & SQLITE_DeferFKs)
125802 15 0 && !pParse->pToplevel && !pParse->isMultiWrite
15 0 && !pParse->pToplevel && !pParse->isMultiWrite
125810 0 0 if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ){
125811 0 0 if( !isIgnoreErrors || db->mallocFailed ) return;
0 0 if( !isIgnoreErrors || db->mallocFailed ) return;
125819 0 0 if( pSrc ){
125826 0 0 if( regNew!=0 ){
125829 0 0 if( regOld!=0 ){
125849 0 0 if( !pFKey->isDeferred && eAction!=OE_Cascade && eAction!=OE_SetNull ){
0 0 if( !pFKey->isDeferred && eAction!=OE_Cascade && eAction!=OE_SetNull ){
0 0 if( !pFKey->isDeferred && eAction!=OE_Cascade && eAction!=OE_SetNull ){
125871 2 0 if( pParse->db->flags&SQLITE_ForeignKeys && IsOrdinaryTable(pTab) ){
2 0 if( pParse->db->flags&SQLITE_ForeignKeys && IsOrdinaryTable(pTab) ){
125874 2 2 for(p=pTab->u.tab.pFKey; p; p=p->pNextFrom){
125875 2 0 for(i=0; inCol; i++) mask |= COLUMN_MASK(p->aCol[i].iFrom);
2 2 for(i=0; inCol; i++) mask |= COLUMN_MASK(p->aCol[i].iFrom);
125877 0 2 for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){
125880 0 0 if( pIdx ){
125881 0 0 for(i=0; inKeyCol; i++){
125883 0 0 mask |= COLUMN_MASK(pIdx->aiColumn[i]);
125924 61 397 if( pParse->db->flags&SQLITE_ForeignKeys && IsOrdinaryTable(pTab) ){
61 0 if( pParse->db->flags&SQLITE_ForeignKeys && IsOrdinaryTable(pTab) ){
125925 44 17 if( !aChange ){
125929 29 15 bHaveFK = (sqlite3FkReferences(pTab) || pTab->u.tab.pFKey);
8 21 bHaveFK = (sqlite3FkReferences(pTab) || pTab->u.tab.pFKey);
125936 2 17 for(p=pTab->u.tab.pFKey; p; p=p->pNextFrom){
125937 2 0 if( fkChildIsModified(pTab, p, aChange, chngRowid) ){
125938 0 2 if( 0==sqlite3_stricmp(pTab->zName, p->zTo) ) eRet = 2;
125944 0 17 for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){
125945 0 0 if( fkParentIsModified(pTab, p, aChange, chngRowid) ){
125946 0 0 if( p->aAction[1]!=OE_None ) return 2;
125952 25 433 return bHaveFK ? eRet : 0;
125996 0 0 if( action==OE_Restrict && (db->flags & SQLITE_DeferFKs) ){
0 0 if( action==OE_Restrict && (db->flags & SQLITE_DeferFKs) ){
126001 0 0 if( action!=OE_None && !pTrigger ){
0 0 if( action!=OE_None && !pTrigger ){
126013 0 0 if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ) return 0;
126016 0 0 for(i=0; inCol; i++){
126024 0 0 iFromCol = aiCol ? aiCol[i] : pFKey->aCol[0].iFrom;
126029 0 0 pTab->aCol[pIdx ? pIdx->aiColumn[i] : pTab->iPKey].zCnName);
126049 0 0 if( pChanges ){
126061 0 0 if( action!=OE_Restrict && (action!=OE_Cascade || pChanges) ){
0 0 if( action!=OE_Restrict && (action!=OE_Cascade || pChanges) ){
0 0 if( action!=OE_Restrict && (action!=OE_Cascade || pChanges) ){
126063 0 0 if( action==OE_Cascade ){
126067 0 0 }else if( action==OE_SetDflt ){
126070 0 0 if( pCol->colFlags & COLFLAG_GENERATED ){
126077 0 0 if( pDflt ){
126094 0 0 if( action==OE_Restrict ){
126106 0 0 if( pRaise ){
126126 0 0 if( pTrigger ){
126134 0 0 if( pWhen ){
126141 0 0 EnableLookaside;
126147 0 0 if( db->mallocFailed==1 ){
126159 0 0 if( !pChanges ){
126171 0 0 pTrigger->op = (pChanges ? TK_UPDATE : TK_DELETE);
126193 2 40 if( pParse->db->flags&SQLITE_ForeignKeys ){
126195 0 2 for(pFKey = sqlite3FkReferences(pTab); pFKey; pFKey=pFKey->pNextTo){
126196 0 0 if( aChange==0 || fkParentIsModified(pTab, pFKey, aChange, bChngRowid) ){
0 0 if( aChange==0 || fkParentIsModified(pTab, pFKey, aChange, bChngRowid) ){
126198 0 0 if( pAct ){
126218 16 1015 for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pNext){
126222 8 8 if( !db || db->pnBytesFreed==0 ){
8 0 if( !db || db->pnBytesFreed==0 ){
126223 0 16 if( pFKey->pPrevTo ){
126227 0 16 const char *z = (p ? pFKey->pNextTo->zTo : pFKey->zTo);
126230 0 16 if( pFKey->pNextTo ){
126293 4280 0 if( HasRowid(pTab) ){
126327 17 27 if( !pIdx->zColAff ){
126339 0 17 if( !pIdx->zColAff ){
126343 49 17 for(n=0; nnColumn; n++){
126346 32 17 if( x>=0 ){
126348 17 0 }else if( x==XN_ROWID ){
126355 0 49 if( aff
126356 43 6 if( aff>SQLITE_AFF_NUMERIC) aff = SQLITE_AFF_NUMERIC;
126408 0 2981 if( pTab->tabFlags & TF_Strict ){
126409 0 0 if( iReg==0 ){
126428 361 2620 if( zColAff==0 ){
126431 0 361 if( !zColAff ){
126436 1303 361 for(i=j=0; inCol; i++){
126438 1303 0 if( (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0 ){
126444 445 61 }while( j>=0 && zColAff[j]<=SQLITE_AFF_BLOB );
145 300 }while( j>=0 && zColAff[j]<=SQLITE_AFF_BLOB );
126449 554 2427 if( i ){
126450 20 534 if( iReg ){
126471 2 2 VTable *pVTab = IsVirtual(pTab) ? sqlite3GetVTable(p->db, pTab) : 0;
126474 46 4 for(i=1; i
126477 0 46 if( pOp->opcode==OP_OpenRead && pOp->p3==iDb ){
0 0 if( pOp->opcode==OP_OpenRead && pOp->p3==iDb ){
126480 0 0 if( tnum==pTab->tnum ){
126483 0 0 for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){
126484 0 0 if( tnum==pIndex->tnum ){
126490 0 46 if( pOp->opcode==OP_VOpen && pOp->p4.pVtab==pVTab ){
0 0 if( pOp->opcode==OP_VOpen && pOp->p4.pVtab==pVTab ){
126504 0 0 if( pExpr->op==TK_COLUMN && pExpr->iColumn>=0 ){
0 0 if( pExpr->op==TK_COLUMN && pExpr->iColumn>=0 ){
126538 0 0 if( (pTab->tabFlags & TF_HasStored)!=0 ){
126540 0 0 if( pOp->opcode==OP_Affinity ){
126548 0 0 for(ii=jj=0; zP4[jj]; ii++){
126549 0 0 if( pTab->aCol[ii].colFlags & COLFLAG_VIRTUAL ){
126552 0 0 if( pTab->aCol[ii].colFlags & COLFLAG_STORED ){
126557 0 0 }else if( pOp->opcode==OP_TypeCheck ){
126569 0 0 for(i=0; inCol; i++){
126570 0 0 if( pTab->aCol[i].colFlags & COLFLAG_GENERATED ){
126591 0 0 for(i=0; inCol; i++){
126593 0 0 if( (pCol->colFlags & COLFLAG_NOTAVAIL)!=0 ){
126599 0 0 if( w.eCode & COLFLAG_NOTAVAIL ){
126610 0 0 }while( pRedo && eProgress );
0 0 }while( pRedo && eProgress );
126611 0 0 if( pRedo ){
126650 2 2695 if( (pTab->tabFlags & TF_Autoincrement)!=0
126651 2 0 && (pParse->db->mDbFlags & DBFLAG_Vacuum)==0
126653 0 2 Parse *pToplevel = sqlite3ParseToplevel(pParse);
126660 2 0 if( pSeqTab==0
126661 2 0 || !HasRowid(pSeqTab)
126662 2 0 || NEVER(IsVirtual(pSeqTab))
126663 0 2 || pSeqTab->nCol!=2
126671 0 2 while( pInfo && pInfo->pTab!=pTab ){ pInfo = pInfo->pNext; }
0 0 while( pInfo && pInfo->pTab!=pTab ){ pInfo = pInfo->pNext; }
126672 2 0 if( pInfo==0 ){
126676 0 2 if( pParse->db->mallocFailed ) return 0;
126707 2 4863 for(p = pParse->pAinc; p; p = p->pNext){
126730 0 2 if( aOp==0 ) break;
126743 0 2 if( pParse->nTab==0 ) pParse->nTab = 1;
126756 2 2693 if( memId>0 ){
126774 2 2 for(p = pParse->pAinc; p; p = p->pNext){
126794 0 2 if( aOp==0 ) break;
126806 2 2719 if( pParse->pAinc ) autoIncrementEnd(pParse);
126972 0 2697 if( pParse->nErr ){
126982 2697 0 if( pSelect && (pSelect->selFlags & SF_Values)!=0 && pSelect->pPrior==0 ){
2697 0 if( pSelect && (pSelect->selFlags & SF_Values)!=0 && pSelect->pPrior==0 ){
2693 4 if( pSelect && (pSelect->selFlags & SF_Values)!=0 && pSelect->pPrior==0 ){
126993 0 2697 if( pTab==0 ){
126998 0 2697 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, pTab->zName, 0,
127032 0 2697 if( sqlite3ViewGetColumnNames(pParse, pTab) ){
127038 0 2697 if( sqlite3IsReadOnly(pParse, pTab, tmask) ){
127045 0 2697 if( v==0 ) goto insert_cleanup;
127046 2658 39 if( pParse->nested==0 ) sqlite3VdbeCountChanges(v);
127047 2693 4 sqlite3BeginWriteOperation(pParse, pSelect || pTrigger, iDb);
0 2693 sqlite3BeginWriteOperation(pParse, pSelect || pTrigger, iDb);
127059 403 2294 if( pColumn==0
127060 2 401 && pSelect!=0
127061 2 0 && pTrigger==0
127062 0 2 && xferOptimization(pParse, pTab, pSelect, onError, iDb)
127080 21 2676 if( IsVirtual(pTab) ){
127106 2294 403 if( pColumn ){
127109 2382 2294 for(i=0; inId; i++){
127112 2382 2294 for(i=0; inId; i++){
127113 2555 0 for(j=0; jnCol; j++){
127114 2382 173 if( sqlite3StrICmp(pColumn->a[i].zName, pTab->aCol[j].zCnName)==0 ){
127116 53 2329 if( i!=j ) bIdListInOrder = 0;
127117 19 2363 if( j==pTab->iPKey ){
127121 0 2382 if( pTab->aCol[j].colFlags & (COLFLAG_STORED|COLFLAG_VIRTUAL) ){
127131 0 2382 if( j>=pTab->nCol ){
127132 0 0 if( sqlite3IsRowid(pColumn->a[i].zName) && !withoutRowid ){
0 0 if( sqlite3IsRowid(pColumn->a[i].zName) && !withoutRowid ){
127150 4 2693 if( pSelect ){
127161 4 0 dest.iSdst = bIdListInOrder ? regData : 0;
127166 4 0 if( rc || pParse->nErr ) goto insert_cleanup;
4 0 if( rc || pParse->nErr ) goto insert_cleanup;
127182 4 0 if( pTrigger || readsTable(pParse, iDb, pTab) ){
0 4 if( pTrigger || readsTable(pParse, iDb, pTab) ){
127186 0 4 if( useTempTable ){
127223 2693 0 if( pList ){
127225 2 2691 if( sqlite3ResolveExprListNames(&sNC, pList) ){
127237 401 2294 if( pColumn==0 && nColumn>0 ){
401 0 if( pColumn==0 && nColumn>0 ){
127240 33 368 if( ipkColumn>=0 && (pTab->tabFlags & TF_HasGenerated)!=0 ){
0 33 if( ipkColumn>=0 && (pTab->tabFlags & TF_HasGenerated)!=0 ){
127243 0 0 for(i=ipkColumn-1; i>=0; i--){
127244 0 0 if( pTab->aCol[i].colFlags & COLFLAG_GENERATED ){
127259 0 401 if( (pTab->tabFlags & (TF_HasGenerated|TF_HasHidden))!=0 ){
127260 0 0 for(i=0; inCol; i++){
127261 0 0 if( pTab->aCol[i].colFlags & COLFLAG_NOINSERT ) nHidden++;
127264 0 401 if( nColumn!=(pTab->nCol-nHidden) ){
127271 2294 401 if( pColumn!=0 && nColumn!=pColumn->nId ){
0 2294 if( pColumn!=0 && nColumn!=pColumn->nId ){
127278 0 2695 if( (db->flags & SQLITE_CountRows)!=0
127279 0 0 && !pParse->nested
127280 0 0 && !pParse->pTriggerTab
127281 0 0 && !pParse->bReturning
127288 2695 0 if( !isView ){
127293 0 2695 if( aRegIdx==0 ){
127296 33 2695 for(i=0, pIdx=pTab->pIndex; ipNext, i++){
127304 0 2695 if( pUpsert ){
127306 0 0 if( IsVirtual(pTab) ){
127311 0 0 if( IsView(pTab) ){
127315 0 0 if( sqlite3HasExplicitNulls(pParse, pUpsert->pUpsertTarget) ){
127325 0 0 if( pNx->pUpsertTarget ){
127326 0 0 if( sqlite3UpsertAnalyzeTarget(pParse, pTabList, pNx) ){
127331 0 0 }while( pNx!=0 );
127337 0 2695 if( useTempTable ){
127349 4 2691 }else if( pSelect ){
127361 2 2 if( ipkColumn>=0 ){
127378 3233 2695 for(i=0; inCol; i++, iRegStore++){
127382 73 3160 if( i==pTab->iPKey ){
127390 51 3109 if( ((colFlags = pTab->aCol[i].colFlags) & COLFLAG_NOINSERT)!=0 ){
127392 0 51 if( (colFlags & COLFLAG_VIRTUAL)!=0 ){
127398 0 51 }else if( (colFlags & COLFLAG_STORED)!=0 ){
127403 0 0 if( tmask & TRIGGER_BEFORE ){
127407 0 51 }else if( pColumn==0 ){
127416 2418 742 if( pColumn ){
127418 2593 55 for(j=0; jnId && pColumn->a[j].u4.idx!=i; j++){}
230 2363 for(j=0; jnId && pColumn->a[j].u4.idx!=i; j++){}
127419 55 2363 if( j>=pColumn->nId ){
127428 0 742 }else if( nColumn==0 ){
127438 0 3105 if( useTempTable ){
127440 4 3101 }else if( pSelect ){
127441 0 4 if( regFromSelect!=regData ){
127453 0 2695 if( tmask & TRIGGER_BEFORE ){
127462 0 0 if( ipkColumn<0 ){
127467 0 0 if( useTempTable ){
127488 0 0 if( pTab->tabFlags & TF_HasGenerated ){
127500 0 0 if( !isView ){
127511 2695 0 if( !isView ){
127512 21 2674 if( IsVirtual(pTab) ){
127516 52 2643 if( ipkColumn>=0 ){
127518 0 52 if( useTempTable ){
127520 50 2 }else if( pSelect ){
127524 0 50 if( pIpk->op==TK_NULL && !IsVirtual(pTab) ){
0 0 if( pIpk->op==TK_NULL && !IsVirtual(pTab) ){
127534 52 0 if( !appendFlag ){
127536 52 0 if( !IsVirtual(pTab) ){
127546 2622 21 }else if( IsVirtual(pTab) || withoutRowid ){
0 2622 }else if( IsVirtual(pTab) || withoutRowid ){
127559 0 2695 if( pTab->tabFlags & TF_HasGenerated ){
127568 21 2674 if( IsVirtual(pTab) ){
127572 4 17 sqlite3VdbeChangeP5(v, onError==OE_Default ? OE_Abort : onError);
127592 26 2648 bUseSeek = (isReplace==0 || !sqlite3VdbeHasSubProgram(v));
26 0 bUseSeek = (isReplace==0 || !sqlite3VdbeHasSubProgram(v));
127608 0 2695 if( regRowCount ){
127612 0 2695 if( pTrigger ){
127622 0 2695 if( useTempTable ){
127626 4 2691 }else if( pSelect ){
127647 2656 39 if( pParse->nested==0 && pParse->pTriggerTab==0 ){
2656 0 if( pParse->nested==0 && pParse->pTriggerTab==0 ){
127656 0 2695 if( regRowCount ){
127695 0 0 if( pExpr->op==TK_COLUMN ){
127697 0 0 if( pExpr->iColumn>=0 ){
127698 0 0 if( pWalker->u.aiCol[pExpr->iColumn]>=0 ){
127734 0 0 if( !chngRowid ){
127783 0 2981 if( pIter->eType ){
127794 0 33 if( pIter->eType ){
127796 0 0 if( i>=pIter->u.ax.nIdx ){
127952 2981 0 if( HasRowid(pTab) ){
127966 47 2934 if( pTab->tabFlags & TF_HasNotNull ){
127971 117 47 for(i=0; i
127976 17 100 if( onError==OE_None ) continue; /* No NOT NULL on this column */
127977 19 81 if( i==pTab->iPKey ){
127981 0 81 if( isGenerated && !b2ndPass ){
0 0 if( isGenerated && !b2ndPass ){
127985 0 81 if( aiChng && aiChng[i]<0 && !isGenerated ){
0 0 if( aiChng && aiChng[i]<0 && !isGenerated ){
0 0 if( aiChng && aiChng[i]<0 && !isGenerated ){
127989 0 81 if( overrideError!=OE_Default ){
127991 81 0 }else if( onError==OE_Default ){
127994 0 81 if( onError==OE_Replace ){
127995 0 0 if( b2ndPass /* REPLACE becomes ABORT on the 2nd pass */
127996 0 0 || pCol->iDflt==0 /* REPLACE is ABORT if no DEFAULT value */
128005 0 81 }else if( b2ndPass && !isGenerated ){
0 0 }else if( b2ndPass && !isGenerated ){
128045 47 0 if( nGenerated==0 && nSeenReplace==0 ){
47 0 if( nGenerated==0 && nSeenReplace==0 ){
128051 0 0 if( b2ndPass ) break; /* Never need more than 2 passes */
128054 0 0 if( nSeenReplace>0 && (pTab->tabFlags & TF_HasGenerated)!=0 ){
0 0 if( nSeenReplace>0 && (pTab->tabFlags & TF_HasGenerated)!=0 ){
128068 0 2981 if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){
0 0 if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){
128071 0 0 onError = overrideError!=OE_Default ? overrideError : OE_Abort;
128072 0 0 for(i=0; inExpr; i++){
128076 0 0 if( aiChng
128077 0 0 && !sqlite3ExprReferencesUpdatedColumn(pExpr, aiChng, pkChng)
128083 0 0 if( bAffinityDone==0 ){
128090 0 0 if( !db->mallocFailed ){
128094 0 0 if( onError==OE_Ignore ){
128099 0 0 if( onError==OE_Replace ) onError = OE_Abort; /* IMP: R-26383-51744 */
128142 0 2981 if( pUpsert ){
128143 0 0 if( pUpsert->pUpsertTarget==0 ){
128146 0 0 if( pUpsert->isDoUpdate==0 ){
128155 0 0 }else if( pTab->pIndex!=0 ){
128163 0 0 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){
128170 0 0 if( sIdxIter.u.ax.aIdx==0 ) return; /* OOM */
128173 0 0 for(i=0, pTerm=pUpsert; pTerm; pTerm=pTerm->pNextUpsert){
128174 0 0 if( pTerm->pUpsertTarget==0 ) break;
128175 0 0 if( pTerm->pUpsertIdx==0 ) continue; /* Skip ON CONFLICT for the IPK */
128178 0 0 while( ALWAYS(pIdx!=0) && pIdx!=pTerm->pUpsertIdx ){
0 0 while( ALWAYS(pIdx!=0) && pIdx!=pTerm->pUpsertIdx ){
128182 0 0 if( bUsed[jj] ) continue; /* Duplicate ON CONFLICT clause ignored */
128188 0 0 for(jj=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, jj++){
128189 0 0 if( bUsed[jj] ) continue;
128218 2937 44 if( (db->flags & (SQLITE_RecTriggers|SQLITE_ForeignKeys))==0 ){
128224 0 44 if( db->flags&SQLITE_RecTriggers ){
128226 0 0 regTrigCnt = pTrigger!=0 || sqlite3FkRequired(pParse, pTab, 0, 0);
0 0 regTrigCnt = pTrigger!=0 || sqlite3FkRequired(pParse, pTab, 0, 0);
128231 23 21 if( regTrigCnt ){
128245 52 2929 if( pkChng && pPk==0 ){
52 0 if( pkChng && pPk==0 ){
128250 18 34 if( overrideError!=OE_Default ){
128252 34 0 }else if( onError==OE_Default ){
128257 0 52 if( pUpsert ){
128259 0 0 if( pUpsertClause!=0 ){
128260 0 0 if( pUpsertClause->isDoUpdate==0 ){
128266 0 0 if( pUpsertClause!=pUpsert ){
128279 18 34 if( onError==OE_Replace /* IPK rule is REPLACE */
128280 0 18 && onError!=overrideError /* Rules for other constraints are different */
128281 0 0 && pTab->pIndex /* There exist other constraints */
128282 0 0 && !upsertIpkDelay /* IPK check already deferred by UPSERT */
128288 0 52 if( isUpdate ){
128341 0 18 if( regTrigCnt ){
128357 0 18 if( pTab->pIndex ){
128378 0 52 if( pUpsert && pUpsertClause!=pUpsert ){
0 0 if( pUpsert && pUpsertClause!=pUpsert ){
128380 0 52 }else if( ipkTop ){
128393 33 2981 for(pIdx = indexIteratorFirst(&sIdxIter, &ix);
128403 0 33 if( aRegIdx[ix]==0 ) continue; /* Skip indices that do not change */
128404 0 33 if( pUpsert ){
128406 0 0 if( upsertIpkDelay && pUpsertClause==pUpsert ){
0 0 if( upsertIpkDelay && pUpsertClause==pUpsert ){
128411 33 0 if( bAffinityDone==0 ){
128420 0 33 if( pIdx->pPartIdxWhere ){
128432 84 33 for(i=0; inColumn; i++){
128435 0 84 if( iField==XN_EXPR ){
128440 51 33 }else if( iField==XN_ROWID || iField==pTab->iPKey ){
0 51 }else if( iField==XN_ROWID || iField==pTab->iPKey ){
128464 0 33 if( isUpdate && pPk==pIdx && pkChng==0 ){
0 0 if( isUpdate && pPk==pIdx && pkChng==0 ){
0 0 if( isUpdate && pPk==pIdx && pkChng==0 ){
128471 1 32 if( onError==OE_None ){
128475 8 24 if( overrideError!=OE_Default ){
128477 23 1 }else if( onError==OE_Default ){
128482 0 32 if( pUpsertClause ){
128483 0 0 if( pUpsertClause->isDoUpdate==0 ){
128502 32 0 if( (ix==0 && pIdx->pNext==0) /* Condition 3 */
32 0 if( (ix==0 && pIdx->pNext==0) /* Condition 3 */
128503 0 32 && pPk==pIdx /* Condition 2 */
128504 0 0 && onError==OE_Replace /* Condition 1 */
128507 0 0 && ( 0==(db->flags&SQLITE_ForeignKeys) || /* Condition 5 */
0 0 && ( 0==(db->flags&SQLITE_ForeignKeys) || /* Condition 5 */
128508 0 0 (0==pTab->u.tab.pFKey && 0==sqlite3FkReferences(pTab)))
128522 32 0 regR = pIdx==pPk ? regIdx : sqlite3GetTempRange(pParse, nPkField);
128523 32 0 if( isUpdate || onError==OE_Replace ){
8 24 if( isUpdate || onError==OE_Replace ){
128524 8 0 if( HasRowid(pTab) ){
128528 0 8 if( isUpdate ){
128537 0 0 if( pIdx!=pPk ){
128538 0 0 for(i=0; inKeyCol; i++){
128546 0 0 if( isUpdate ){
128556 0 0 int regCmp = (IsPrimaryKeyIndex(pIdx) ? regIdx : regR);
128558 0 0 for(i=0; inKeyCol; i++){
128562 0 0 if( i==(pPk->nKeyCol-1) ){
128610 0 8 if( regTrigCnt ){
128614 0 8 if( pTrigger && isUpdate ){
0 0 if( pTrigger && isUpdate ){
128620 0 8 if( pTrigger && isUpdate ){
0 0 if( pTrigger && isUpdate ){
128623 0 8 if( regTrigCnt ){
128635 0 0 if( pIdx->pPartIdxWhere ){
128644 0 0 while( nConflictCk>0 ){
128650 0 0 if( x.opcode!=OP_IdxRowid ){
128653 0 0 if( sqlite3OpcodeProperty[x.opcode]&OPFLG_JUMP ){
128658 0 0 zP4 = x.p4type==P4_INT32 ? SQLITE_INT_TO_PTR(x.p4.i) : x.p4.z;
128676 32 0 if( regR!=regIdx ) sqlite3ReleaseTempRange(pParse, regR, nPkField);
128677 0 32 if( pUpsertClause
128678 0 0 && upsertIpkReturn
128679 0 0 && sqlite3UpsertNextIsIPK(pUpsertClause)
128688 0 2981 if( ipkTop ){
128698 0 2981 if( nReplaceTrig ){
128700 0 0 if( !pPk ){
128701 0 0 if( isUpdate ){
128716 2981 0 if( HasRowid(pTab) ){
128720 2948 33 if( !bAffinityDone ){
128810 33 2981 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
128815 0 33 if( aRegIdx[i]==0 ) continue;
128816 0 33 if( pIdx->pPartIdxWhere ){
128820 33 0 pik_flags = (useSeekResult ? OPFLAG_USESEEKRESULT : 0);
128821 27 6 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){
0 27 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){
128828 4 29 sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iIdxCur+i, aRegIdx[i],
128833 0 2981 if( !HasRowid(pTab) ) return;
128834 339 2642 if( pParse->nested ){
128838 7 2635 pik_flags |= (update_flags?update_flags:OPFLAG_LASTROWID);
128840 2622 359 if( appendBias ){
128843 2674 307 if( useSeekResult ){
128847 2642 339 if( !pParse->nested ){
128892 22 3013 if( IsVirtual(pTab) ){
128902 2674 339 if( iBase<0 ) iBase = pParse->nTab;
128904 2706 307 if( piDataCur ) *piDataCur = iDataCur;
128905 3013 0 if( HasRowid(pTab) && (aToOpen==0 || aToOpen[0]) ){
339 2674 if( HasRowid(pTab) && (aToOpen==0 || aToOpen[0]) ){
7 332 if( HasRowid(pTab) && (aToOpen==0 || aToOpen[0]) ){
128910 2706 307 if( piIdxCur ) *piIdxCur = iBase;
128911 42 3013 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
128914 36 6 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){
0 36 if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){
128915 0 0 if( piDataCur ) *piDataCur = iIdxCur;
128918 9 33 if( aToOpen==0 || aToOpen[i+1] ){
0 9 if( aToOpen==0 || aToOpen[i+1] ){
128925 2674 339 if( iBase>pParse->nTab ) pParse->nTab = iBase;
128957 0 0 if( pDest->nKeyCol!=pSrc->nKeyCol || pDest->nColumn!=pSrc->nColumn ){
0 0 if( pDest->nKeyCol!=pSrc->nKeyCol || pDest->nColumn!=pSrc->nColumn ){
128960 0 0 if( pDest->onError!=pSrc->onError ){
128963 0 0 for(i=0; inKeyCol; i++){
128964 0 0 if( pSrc->aiColumn[i]!=pDest->aiColumn[i] ){
128967 0 0 if( pSrc->aiColumn[i]==XN_EXPR ){
128969 0 0 if( sqlite3ExprCompare(0, pSrc->aColExpr->a[i].pExpr,
128974 0 0 if( pSrc->aSortOrder[i]!=pDest->aSortOrder[i] ){
128977 0 0 if( sqlite3_stricmp(pSrc->azColl[i],pDest->azColl[i])!=0 ){
128981 0 0 if( sqlite3ExprCompare(0, pSrc->pPartIdxWhere, pDest->pPartIdxWhere, -1) ){
129038 2 0 if( pParse->pWith || pSelect->pWith ){
0 2 if( pParse->pWith || pSelect->pWith ){
129045 2 0 if( IsVirtual(pDest) ){
129049 0 0 if( onError==OE_Default ){
129050 0 0 if( pDest->iPKey>=0 ) onError = pDest->keyConf;
129051 0 0 if( onError==OE_Default ) onError = OE_Abort;
129054 0 0 if( pSelect->pSrc->nSrc!=1 ){
129057 0 0 if( pSelect->pSrc->a[0].pSelect ){
129060 0 0 if( pSelect->pWhere ){
129063 0 0 if( pSelect->pOrderBy ){
129068 0 0 if( pSelect->pGroupBy ){
129071 0 0 if( pSelect->pLimit ){
129074 0 0 if( pSelect->pPrior ){
129077 0 0 if( pSelect->selFlags & SF_Distinct ){
129082 0 0 if( pEList->nExpr!=1 ){
129086 0 0 if( pEList->a[0].pExpr->op!=TK_ASTERISK ){
129096 0 0 if( pSrc==0 ){
129099 0 0 if( pSrc->tnum==pDest->tnum && pSrc->pSchema==pDest->pSchema ){
0 0 if( pSrc->tnum==pDest->tnum && pSrc->pSchema==pDest->pSchema ){
129103 0 0 if( HasRowid(pDest)!=HasRowid(pSrc) ){
129106 0 0 if( !IsOrdinaryTable(pSrc) ){
129109 0 0 if( pDest->nCol!=pSrc->nCol ){
129112 0 0 if( pDest->iPKey!=pSrc->iPKey ){
129115 0 0 if( (pDest->tabFlags & TF_Strict)!=0 && (pSrc->tabFlags & TF_Strict)==0 ){
0 0 if( (pDest->tabFlags & TF_Strict)!=0 && (pSrc->tabFlags & TF_Strict)==0 ){
129118 0 0 for(i=0; inCol; i++){
129145 0 0 if( (pDestCol->colFlags & COLFLAG_GENERATED) !=
129153 0 0 if( (pDestCol->colFlags & COLFLAG_GENERATED)!=0 ){
129154 0 0 if( sqlite3ExprCompare(0,
129163 0 0 if( pDestCol->affinity!=pSrcCol->affinity ){
129166 0 0 if( sqlite3_stricmp(sqlite3ColumnColl(pDestCol),
129170 0 0 if( pDestCol->notNull && !pSrcCol->notNull ){
0 0 if( pDestCol->notNull && !pSrcCol->notNull ){
129174 0 0 if( (pDestCol->colFlags & COLFLAG_GENERATED)==0 && i>0 ){
0 0 if( (pDestCol->colFlags & COLFLAG_GENERATED)==0 && i>0 ){
129181 0 0 if( (pDestExpr==0)!=(pSrcExpr==0)
129182 0 0 || (pDestExpr!=0 && strcmp(pDestExpr->u.zToken,
0 0 || (pDestExpr!=0 && strcmp(pDestExpr->u.zToken,
129189 0 0 for(pDestIdx=pDest->pIndex; pDestIdx; pDestIdx=pDestIdx->pNext){
129190 0 0 if( IsUniqueIndex(pDestIdx) ){
129193 0 0 for(pSrcIdx=pSrc->pIndex; pSrcIdx; pSrcIdx=pSrcIdx->pNext){
129194 0 0 if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break;
129196 0 0 if( pSrcIdx==0 ){
129199 0 0 if( pSrcIdx->tnum==pDestIdx->tnum && pSrc->pSchema==pDest->pSchema
0 0 if( pSrcIdx->tnum==pDestIdx->tnum && pSrc->pSchema==pDest->pSchema
129200 0 0 && sqlite3FaultSim(411)==SQLITE_OK ){
129208 0 0 if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){
0 0 if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){
129221 0 0 if( (db->flags & SQLITE_ForeignKeys)!=0 && pDest->u.tab.pFKey!=0 ){
0 0 if( (db->flags & SQLITE_ForeignKeys)!=0 && pDest->u.tab.pFKey!=0 ){
129225 0 0 if( (db->flags & SQLITE_CountRows)!=0 ){
129247 0 0 if( (db->mDbFlags & DBFLAG_Vacuum)==0 && (
0 0 if( (db->mDbFlags & DBFLAG_Vacuum)==0 && (
129248 0 0 (pDest->iPKey<0 && pDest->pIndex!=0) /* (1) */
129249 0 0 || destHasUniqueIdx /* (2) */
129250 0 0 || (onError!=OE_Abort && onError!=OE_Rollback) /* (3) */
0 0 || (onError!=OE_Abort && onError!=OE_Rollback) /* (3) */
129273 0 0 if( HasRowid(pSrc) ){
129277 0 0 if( pDest->iPKey>=0 ){
129279 0 0 if( (db->mDbFlags & DBFLAG_Vacuum)==0 ){
129287 0 0 }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_VacuumInto) ){
0 0 }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_VacuumInto) ){
129294 0 0 if( db->mDbFlags & DBFLAG_Vacuum ){
129310 0 0 if( (db->mDbFlags & DBFLAG_Vacuum)==0 ){
129322 0 0 for(pDestIdx=pDest->pIndex; pDestIdx; pDestIdx=pDestIdx->pNext){
129324 0 0 for(pSrcIdx=pSrc->pIndex; ALWAYS(pSrcIdx); pSrcIdx=pSrcIdx->pNext){
129325 0 0 if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break;
129336 0 0 if( db->mDbFlags & DBFLAG_Vacuum ){
129351 0 0 for(i=0; inColumn; i++){
129353 0 0 if( sqlite3_stricmp(sqlite3StrBINARY, zColl) ) break;
129355 0 0 if( i==pSrcIdx->nColumn ){
129360 0 0 }else if( !HasRowid(pSrc) && pDestIdx->idxType==SQLITE_IDXTYPE_PRIMARYKEY ){
0 0 }else if( !HasRowid(pSrc) && pDestIdx->idxType==SQLITE_IDXTYPE_PRIMARYKEY ){
129363 0 0 if( idxInsFlags!=(OPFLAG_USESEEKRESULT|OPFLAG_PREFORMAT) ){
129365 0 0 if( (db->mDbFlags & DBFLAG_Vacuum)==0
129366 0 0 && !HasRowid(pDest)
129379 0 0 if( emptySrcTest ) sqlite3VdbeJumpHere(v, emptySrcTest);
129382 0 0 if( emptyDestTest ){
129438 0 3554 if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
129439 0 3554 if( zSql==0 ) zSql = "";
129443 7066 44 while( rc==SQLITE_OK && zSql[0] ){
3556 3510 while( rc==SQLITE_OK && zSql[0] ){
129450 9 3547 if( rc!=SQLITE_OK ){
129453 4 3543 if( !pStmt ){
129465 835 7055 if( xCallback && (SQLITE_ROW==rc ||
488 347 if( xCallback && (SQLITE_ROW==rc ||
488 0 if( xCallback && (SQLITE_ROW==rc ||
129466 187 301 (SQLITE_DONE==rc && !callbackIsInit
129467 0 187 && db->flags&SQLITE_NullCallback)) ){
129468 301 46 if( !callbackIsInit ){
129471 0 301 if( azCols==0 ){
129474 1505 301 for(i=0; i
129482 347 0 if( rc==SQLITE_ROW ){
129484 1735 347 for(i=0; i
129486 35 1700 if( !azVals[i] && sqlite3_column_type(pStmt, i)!=SQLITE_NULL ){
0 35 if( !azVals[i] && sqlite3_column_type(pStmt, i)!=SQLITE_NULL ){
129493 0 347 if( xCallback(pArg, nCol, azVals, azCols) ){
129505 3543 4347 if( rc!=SQLITE_ROW ){
129509 0 3543 while( sqlite3Isspace(zSql[0]) ) zSql++;
129519 0 3554 if( pStmt ) sqlite3VdbeFinalize((Vdbe *)pStmt);
129523 44 3510 if( rc!=SQLITE_OK && pzErrMsg ){
44 0 if( rc!=SQLITE_OK && pzErrMsg ){
129525 0 44 if( *pzErrMsg==0 ){
129529 2989 521 }else if( pzErrMsg ){
130807 0 0 if( pzErrMsg ) *pzErrMsg = 0;
130816 0 0 if( (db->flags & SQLITE_LoadExtension)==0 ){
130817 0 0 if( pzErrMsg ){
130823 0 0 zEntry = zProc ? zProc : "sqlite3_extension_init";
130829 0 0 if( nMsg>SQLITE_MAX_PATHLEN ) goto extension_not_found;
130833 0 0 for(ii=0; ii
0 0 for(ii=0; ii
130835 0 0 if( zAltFile==0 ) return SQLITE_NOMEM_BKPT;
130840 0 0 if( handle==0 ) goto extension_not_found;
130854 0 0 if( xInit==0 && zProc==0 ){
0 0 if( xInit==0 && zProc==0 ){
130858 0 0 if( zAltEntry==0 ){
130863 0 0 for(iFile=ncFile-1; iFile>=0 && !DirSep(zFile[iFile]); iFile--){}
0 0 for(iFile=ncFile-1; iFile>=0 && !DirSep(zFile[iFile]); iFile--){}
130865 0 0 if( sqlite3_strnicmp(zFile+iFile, "lib", 3)==0 ) iFile += 3;
130866 0 0 for(iEntry=8; (c = zFile[iFile])!=0 && c!='.'; iFile++){
0 0 for(iEntry=8; (c = zFile[iFile])!=0 && c!='.'; iFile++){
130867 0 0 if( sqlite3Isalpha(c) ){
130875 0 0 if( xInit==0 ){
130876 0 0 if( pzErrMsg ){
130879 0 0 if( zErrmsg ){
130892 0 0 if( rc ){
130893 0 0 if( rc==SQLITE_OK_LOAD_PERMANENTLY ) return SQLITE_OK;
130894 0 0 if( pzErrMsg ){
130904 0 0 if( aHandle==0 ){
130907 0 0 if( db->nExtension>0 ){
130917 0 0 if( pzErrMsg ){
130920 0 0 if( zErrmsg ){
130950 0 315 for(i=0; inExtension; i++){
130962 0 0 if( onoff ){
131012 0 0 if( rc ){
131023 0 0 for(i=0; i
131024 0 0 if( wsdAutoext.aExt[i]==xInit ) break;
131026 0 0 if( i==wsdAutoext.nExt ){
131030 0 0 if( aNew==0 ){
131063 0 0 for(i=(int)wsdAutoext.nExt-1; i>=0; i--){
131064 0 0 if( wsdAutoext.aExt[i]==xInit ){
131080 0 0 if( sqlite3_initialize()==SQLITE_OK )
131107 311 0 if( wsdAutoext.nExt==0 ){
131111 0 0 for(i=0; go; i++){
131122 0 0 if( i>=wsdAutoext.nExt ){
131130 0 0 if( xInit && (rc = xInit(db, &zErrmsg, pThunk))!=0 ){
0 0 if( xInit && (rc = xInit(db, &zErrmsg, pThunk))!=0 ){
131856 2 17 if( sqlite3Isdigit(*z) ){
131860 25 0 for(i=0; i
131861 17 8 if( iLength[i]==n && sqlite3StrNICmp(&zText[iOffset[i]],z,n)==0
17 0 if( iLength[i]==n && sqlite3StrNICmp(&zText[iOffset[i]],z,n)==0
131862 17 0 && (!omitFull || iValue[i]<=1)
17 0 && (!omitFull || iValue[i]<=1)
131887 0 0 if( z ){
131888 0 0 if( 0==sqlite3StrICmp(z, "exclusive") ) return PAGER_LOCKINGMODE_EXCLUSIVE;
131889 0 0 if( 0==sqlite3StrICmp(z, "normal") ) return PAGER_LOCKINGMODE_NORMAL;
131903 0 0 if( 0==sqlite3StrICmp(z, "none") ) return BTREE_AUTOVACUUM_NONE;
131904 0 0 if( 0==sqlite3StrICmp(z, "full") ) return BTREE_AUTOVACUUM_FULL;
131905 0 0 if( 0==sqlite3StrICmp(z, "incremental") ) return BTREE_AUTOVACUUM_INCR;
131907 0 0 return (u8)((i>=0&&i<=2)?i:0);
0 0 return (u8)((i>=0&&i<=2)?i:0);
131918 0 0 if( z[0]>='0' && z[0]<='2' ){
0 0 if( z[0]>='0' && z[0]<='2' ){
131920 0 0 }else if( sqlite3StrICmp(z, "file")==0 ){
131922 0 0 }else if( sqlite3StrICmp(z, "memory")==0 ){
131937 0 0 if( db->aDb[1].pBt!=0 ){
131938 0 0 if( !db->autoCommit
131939 0 0 || sqlite3BtreeTxnState(db->aDb[1].pBt)!=SQLITE_TXN_NONE
131962 0 0 if( db->temp_store==ts ) return SQLITE_OK;
131963 0 0 if( invalidateTempStorage( pParse ) != SQLITE_OK ){
131979 185 18 sqlite3VdbeSetNumCols(v, n==0 ? 1 : n);
131980 18 185 if( n==0 ){
131984 855 185 for(i=0, j=pPragma->iPragCName; i
132005 0 0 if( zValue ){
132018 19 0 if( db->autoCommit ){
132027 38 19 while( (n--) > 0 ){
132028 19 19 if( pDb->pBt ){
132080 0 2 if( eMode==ArraySize(azModeName) ) return 0;
132091 1206 0 while( lwr<=upr ){
132094 219 987 if( rc==0 ) break;
132095 337 650 if( rc<0 ){
132101 219 0 return lwr>upr ? 0 : &aPragmaName[mid];
132121 0 0 if( showInternFuncs ) mask = 0xffffffff;
132122 0 0 for(; p; p=p->pNext){
132131 0 0 if( p->xSFunc==0 ) continue;
132132 0 0 if( (p->funcFlags & SQLITE_FUNC_INTERNAL)!=0
132133 0 0 && showInternFuncs==0
132137 0 0 if( p->xValue!=0 ){
132139 0 0 }else if( p->xFinalize!=0 ){
132204 0 219 if( v==0 ) return;
132211 0 219 if( iDb<0 ) return;
132217 3 216 if( iDb==1 && sqlite3OpenTempDatabase(pParse) ){
0 3 if( iDb==1 && sqlite3OpenTempDatabase(pParse) ){
132222 0 219 if( !zLeft ) return;
132223 0 219 if( minusFlag ){
132230 109 110 zDb = pId2->n>0 ? pDb->zDbSName : 0;
132231 0 219 if( sqlite3AuthCheck(pParse, SQLITE_PRAGMA, zLeft, zRight, zDb) ){
132256 0 219 if( rc==SQLITE_OK ){
132263 0 219 if( rc!=SQLITE_NOTFOUND ){
132264 0 0 if( aFcntl[0] ){
132275 0 219 if( pPragma==0 ){
132282 116 103 if( (pPragma->mPragFlg & PragFlg_NeedSchema)!=0 ){
132283 0 116 if( sqlite3ReadSchema(pParse) ) goto pragma_out;
132287 219 0 if( (pPragma->mPragFlg & PragFlg_NoColumns)==0
132288 34 185 && ((pPragma->mPragFlg & PragFlg_NoColumns1)==0 || zRight==0)
14 20 && ((pPragma->mPragFlg & PragFlg_NoColumns1)==0 || zRight==0)
132328 0 0 if( !zRight ){
132361 10 0 if( !zRight ){
132362 10 0 int size = ALWAYS(pBt) ? sqlite3BtreeGetPageSize(pBt) : 0;
132369 0 0 if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize,0,0) ){
132388 0 0 if( zRight ){
132389 0 0 if( sqlite3_stricmp(zRight, "fast")==0 ){
132395 0 0 if( pId2->n==0 && b>=0 ){
0 0 if( pId2->n==0 && b>=0 ){
132397 0 0 for(ii=0; iinDb; ii++){
132428 0 0 if( sqlite3Tolower(zLeft[0])=='p' ){
132431 0 0 if( zRight && sqlite3DecOrHexToI64(zRight,&x)==0 ){
0 0 if( zRight && sqlite3DecOrHexToI64(zRight,&x)==0 ){
132432 0 0 if( x<0 ) x = 0;
132433 0 0 else if( x>0xfffffffe ) x = 0xfffffffe;
132451 0 0 if( pId2->n==0 && eMode==PAGER_LOCKINGMODE_QUERY ){
0 0 if( pId2->n==0 && eMode==PAGER_LOCKINGMODE_QUERY ){
132459 0 0 if( pId2->n==0 ){
132470 0 0 for(ii=2; iinDb; ii++){
132482 0 0 if( eMode==PAGER_LOCKINGMODE_EXCLUSIVE ){
132498 0 0 if( zRight==0 ){
132505 0 0 for(eMode=0; (zMode = sqlite3JournalModename(eMode))!=0; eMode++){
132506 0 0 if( sqlite3StrNICmp(zRight, zMode, n)==0 ) break;
132508 0 0 if( !zMode ){
132513 0 0 if( eMode==PAGER_JOURNALMODE_OFF && (db->flags & SQLITE_Defensive)!=0 ){
0 0 if( eMode==PAGER_JOURNALMODE_OFF && (db->flags & SQLITE_Defensive)!=0 ){
132519 0 0 if( eMode==PAGER_JOURNALMODE_QUERY && pId2->n==0 ){
0 0 if( eMode==PAGER_JOURNALMODE_QUERY && pId2->n==0 ){
132524 0 0 for(ii=db->nDb-1; ii>=0; ii--){
132525 0 0 if( db->aDb[ii].pBt && (ii==iDb || pId2->n==0) ){
0 0 if( db->aDb[ii].pBt && (ii==iDb || pId2->n==0) ){
0 0 if( db->aDb[ii].pBt && (ii==iDb || pId2->n==0) ){
132543 0 0 if( zRight ){
132545 0 0 if( iLimit<-1 ) iLimit = -1;
132565 0 0 if( !zRight ){
132577 0 0 if( rc==SQLITE_OK && (eAuto==1 || eAuto==2) ){
0 0 if( rc==SQLITE_OK && (eAuto==1 || eAuto==2) ){
0 0 if( rc==SQLITE_OK && (eAuto==1 || eAuto==2) ){
132616 0 0 if( zRight==0 || !sqlite3GetInt32(zRight, &iLimit) || iLimit<=0 ){
0 0 if( zRight==0 || !sqlite3GetInt32(zRight, &iLimit) || iLimit<=0 ){
0 0 if( zRight==0 || !sqlite3GetInt32(zRight, &iLimit) || iLimit<=0 ){
132644 0 0 if( !zRight ){
132678 0 0 if( !zRight ){
132679 0 0 returnSingleInt(v,
132684 0 0 if( sqlite3GetInt32(zRight, &size) ){
132687 0 0 if( sqlite3GetBoolean(zRight, size!=0) ){
132715 0 0 if( zRight ){
132718 0 0 if( sz<0 ) sz = sqlite3GlobalConfig.szMmap;
132719 0 0 if( pId2->n==0 ) db->szMmap = sz;
132720 0 0 for(ii=db->nDb-1; ii>=0; ii--){
132721 0 0 if( db->aDb[ii].pBt && (ii==iDb || pId2->n==0) ){
0 0 if( db->aDb[ii].pBt && (ii==iDb || pId2->n==0) ){
0 0 if( db->aDb[ii].pBt && (ii==iDb || pId2->n==0) ){
132732 0 0 if( rc==SQLITE_OK ){
132734 0 0 }else if( rc!=SQLITE_NOTFOUND ){
132753 0 0 if( !zRight ){
132773 0 0 if( !zRight ){
132777 0 0 if( zRight[0] ){
132780 0 0 if( rc!=SQLITE_OK || res==0 ){
0 0 if( rc!=SQLITE_OK || res==0 ){
132786 0 0 if( SQLITE_TEMP_STORE==0
132793 0 0 if( zRight[0] ){
132893 0 0 if( !zRight ){
132896 0 0 if( !db->autoCommit ){
132899 0 0 }else if( iDb!=1 ){
132901 0 0 if( iLevel==0 ) iLevel = 1;
132913 4 19 if( zRight==0 ){
132918 0 19 if( db->autoCommit==0 ){
132930 14 5 if( sqlite3GetBoolean(zRight, 0) ){
132934 0 5 if( mask==SQLITE_DeferFKs ) db->nDeferredImmCons = 0;
132935 2 3 if( (mask & SQLITE_WriteSchema)!=0
132936 0 2 && sqlite3_stricmp(zRight, "reset")==0
132970 74 0 case PragTyp_TABLE_INFO: if( zRight ){
132974 72 2 if( pTab ){
132981 147 72 for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){
132984 0 147 if( pCol->colFlags & COLFLAG_NOINSERT ){
132985 0 0 if( pPragma->iArg==0 ){
132989 0 0 if( pCol->colFlags & COLFLAG_VIRTUAL ){
132991 0 0 }else if( pCol->colFlags & COLFLAG_STORED ){
132997 88 59 if( (pCol->colFlags & COLFLAG_PRIMKEY)==0 ){
132999 26 33 }else if( pPk==0 ){
133002 41 0 for(k=1; k<=pTab->nCol && pPk->aiColumn[k-1]!=i; k++){}
8 33 for(k=1; k<=pTab->nCol && pPk->aiColumn[k-1]!=i; k++){}
133008 147 0 sqlite3VdbeMultiLoad(v, 1, pPragma->iArg ? "issisii" : "issisi",
0 147 sqlite3VdbeMultiLoad(v, 1, pPragma->iArg ? "issisii" : "issisi",
133013 0 147 (isHidden>=2 || pColExpr==0) ? 0 : pColExpr->u.zToken,
133038 0 0 for(ii=0; iinDb; ii++){
133042 0 0 if( zDb && sqlite3_stricmp(zDb, db->aDb[ii].zDbSName)!=0 ) continue;
0 0 if( zDb && sqlite3_stricmp(zDb, db->aDb[ii].zDbSName)!=0 ) continue;
133051 0 0 while( initNCol-- ){
133054 0 0 if( k==0 ){ initNCol = 0; break; }
133056 0 0 if( pTab->nCol==0 ){
133058 0 0 if( zSql ){
133064 0 0 if( db->mallocFailed ){
133074 0 0 for(k=sqliteHashFirst(pHash); k; k=sqliteHashNext(k) ){
133077 0 0 if( zRight && sqlite3_stricmp(zRight, pTab->zName)!=0 ) continue;
0 0 if( zRight && sqlite3_stricmp(zRight, pTab->zName)!=0 ) continue;
133078 0 0 if( IsView(pTab) ){
133080 0 0 }else if( IsVirtual(pTab) ){
133082 0 0 }else if( pTab->tabFlags & TF_Shadow ){
133127 24 0 case PragTyp_INDEX_INFO: if( zRight ){
133131 12 12 if( pIdx==0 ){
133136 0 12 if( pTab && !HasRowid(pTab) ){
0 0 if( pTab && !HasRowid(pTab) ){
133140 12 12 if( pIdx ){
133144 0 12 if( pPragma->iArg ){
133156 16 12 for(i=0; i
133158 16 0 sqlite3VdbeMultiLoad(v, 1, "iisX", i, cnum,
133160 0 16 if( pPragma->iArg ){
133172 4 0 case PragTyp_INDEX_LIST: if( zRight ){
133177 4 0 if( pTab ){
133181 16 4 for(pIdx=pTab->pIndex, i=0; pIdx; pIdx=pIdx->pNext, i++){
133197 165 69 for(i=0; inDb; i++){
133198 40 125 if( db->aDb[i].pBt==0 ) continue;
133212 0 0 for(p=sqliteHashFirst(&db->aCollSeq); p; p=sqliteHashNext(p)){
133226 0 0 for(i=0; i
133227 0 0 for(p=sqlite3BuiltinFunctions.a[i]; p; p=p->u.pHash ){
133232 0 0 for(j=sqliteHashFirst(&db->aFunc); j; j=sqliteHashNext(j)){
133244 0 0 for(j=sqliteHashFirst(&db->aModule); j; j=sqliteHashNext(j)){
133254 0 0 for(i=0; i
133264 14 0 case PragTyp_FOREIGN_KEY_LIST: if( zRight ){
133268 14 0 if( pTab && IsOrdinaryTable(pTab) ){
14 0 if( pTab && IsOrdinaryTable(pTab) ){
133270 11 3 if( pFK ){
133275 16 11 while(pFK){
133277 18 16 for(j=0; jnCol; j++){
133318 0 0 while( k ){
133319 0 0 if( zRight ){
133326 0 0 if( pTab==0 || !IsOrdinaryTable(pTab) || pTab->u.tab.pFKey==0 ) continue;
0 0 if( pTab==0 || !IsOrdinaryTable(pTab) || pTab->u.tab.pFKey==0 ) continue;
0 0 if( pTab==0 || !IsOrdinaryTable(pTab) || pTab->u.tab.pFKey==0 ) continue;
133331 0 0 if( pTab->nCol+regRow>pParse->nMem ) pParse->nMem = pTab->nCol + regRow;
133335 0 0 for(i=1, pFK=pTab->u.tab.pFKey; pFK; i++, pFK=pFK->pNextFrom){
133337 0 0 if( pParent==0 ) continue;
133341 0 0 if( x==0 ){
133342 0 0 if( pIdx==0 ){
133354 0 0 if( pFK ) break;
133355 0 0 if( pParse->nTabnTab = i;
133358 0 0 for(i=1, pFK=pTab->u.tab.pFKey; pFK; i++, pFK=pFK->pNextFrom){
133362 0 0 if( pParent ){
133372 0 0 if( regRow+pFK->nCol>pParse->nMem ) pParse->nMem = regRow+pFK->nCol;
133373 0 0 for(j=0; jnCol; j++){
133374 0 0 int iCol = aiCols ? aiCols[j] : pFK->aCol[j].iFrom;
133381 0 0 if( pIdx ){
133386 0 0 }else if( pParent ){
133394 0 0 if( HasRowid(pTab) ){
133417 0 0 if( zRight ){
133470 0 0 if( pId2->z==0 ) iDb = -1;
133477 0 0 if( zRight ){
133478 0 0 if( sqlite3GetInt32(zRight, &mxErr) ){
133479 0 0 if( mxErr<=0 ){
133483 0 0 pObjTab = sqlite3LocateTable(pParse, 0, zRight,
133490 0 0 for(i=0; inDb; i++){
133498 0 0 if( iDb>=0 && i!=iDb ) continue;
0 0 if( iDb>=0 && i!=iDb ) continue;
133509 0 0 for(cnt=0, x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){
133513 0 0 if( pObjTab && pObjTab!=pTab ) continue;
0 0 if( pObjTab && pObjTab!=pTab ) continue;
133514 0 0 if( HasRowid(pTab) ) cnt++;
133515 0 0 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){ cnt++; }
133516 0 0 if( nIdx>mxIdx ) mxIdx = nIdx;
133518 0 0 if( cnt==0 ) continue;
133519 0 0 if( pObjTab ) cnt++;
133521 0 0 if( aRoot==0 ) break;
133523 0 0 if( pObjTab ) aRoot[++cnt] = 0;
133524 0 0 for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){
133527 0 0 if( pObjTab && pObjTab!=pTab ) continue;
0 0 if( pObjTab && pObjTab!=pTab ) continue;
133528 0 0 if( HasRowid(pTab) ) aRoot[++cnt] = pTab->tnum;
133529 0 0 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
133552 0 0 for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){
133561 0 0 if( !IsOrdinaryTable(pTab) ) continue;
133562 0 0 if( pObjTab && pObjTab!=pTab ) continue;
0 0 if( pObjTab && pObjTab!=pTab ) continue;
133563 0 0 pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab);
133570 0 0 for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
133577 0 0 if( !isQuick ){
133586 0 0 for(j=0; jnCol; j++){
133590 0 0 if( j==pTab->iPKey ) continue;
133591 0 0 if( pCol->notNull==0 && !bStrict ) continue;
0 0 if( pCol->notNull==0 && !bStrict ) continue;
133592 0 0 doError = bStrict ? sqlite3VdbeMakeLabel(pParse) : 0;
133594 0 0 if( sqlite3VdbeGetOp(v,-1)->opcode==OP_Column ){
133597 0 0 if( pCol->notNull ){
133602 0 0 if( bStrict && pCol->eCType!=COLTYPE_ANY ){
0 0 if( bStrict && pCol->eCType!=COLTYPE_ANY ){
133609 0 0 if( (pTab->tabFlags & TF_Strict)!=0
133610 0 0 && pCol->eCType!=COLTYPE_ANY
133625 0 0 if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){
0 0 if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){
133627 0 0 if( db->mallocFailed==0 ){
133633 0 0 for(k=pCheck->nExpr-1; k>0; k--){
133648 0 0 if( !isQuick ){ /* Omit the remaining tests for quick_check */
133650 0 0 for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
133653 0 0 if( pPk==pIdx ) continue;
133672 0 0 if( IsUniqueIndex(pIdx) ){
133676 0 0 for(kk=0; kknKeyCol; kk++){
133679 0 0 if( iCol>=0 && pTab->aCol[iCol].notNull ) continue;
0 0 if( iCol>=0 && pTab->aCol[iCol].notNull ) continue;
133698 0 0 if( !isQuick ){
133700 0 0 for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
133701 0 0 if( pPk==pIdx ) continue;
133727 0 0 if( aOp ){
133779 0 0 if( !zRight ){ /* "PRAGMA encoding" */
133780 0 0 if( sqlite3ReadSchema(pParse) ) goto pragma_out;
133791 0 0 if( (db->mDbFlags & DBFLAG_EncodingFixed)==0 ){
133792 0 0 for(pEnc=&encnames[0]; pEnc->zName; pEnc++){
133793 0 0 if( 0==sqlite3StrICmp(zRight, pEnc->zName) ){
133794 0 0 u8 enc = pEnc->enc ? pEnc->enc : SQLITE_UTF16NATIVE;
133800 0 0 if( !pEnc->zName ){
133845 1 0 if( zRight && (pPragma->mPragFlg & PragFlg_ReadOnly)==0 ){
1 0 if( zRight && (pPragma->mPragFlg & PragFlg_ReadOnly)==0 ){
133891 0 0 while( (zOpt = sqlite3_compileoption_get(i++))!=0 ){
133907 0 0 int iBt = (pId2->z?iDb:SQLITE_MAX_DB);
133909 0 0 if( zRight ){
133910 0 0 if( sqlite3StrICmp(zRight, "full")==0 ){
133912 0 0 }else if( sqlite3StrICmp(zRight, "restart")==0 ){
133914 0 0 }else if( sqlite3StrICmp(zRight, "truncate")==0 ){
133933 0 0 if( zRight ){
133936 0 0 returnSingleInt(v,
134020 0 0 if( zRight ){
134022 0 0 if( (opMask & 0x02)==0 ) break;
134027 0 0 for(iDbLast = zDb?iDb:db->nDb-1; iDb<=iDbLast; iDb++){
0 0 for(iDbLast = zDb?iDb:db->nDb-1; iDb<=iDbLast; iDb++){
134028 0 0 if( iDb==1 ) continue;
134031 0 0 for(k=sqliteHashFirst(&pSchema->tblHash); k; k=sqliteHashNext(k)){
134037 0 0 if( (pTab->tabFlags & TF_StatsUsed)==0 ) continue;
134041 0 0 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
134042 0 0 if( !pIdx->hasStat1 ){
134047 0 0 if( szThreshold ){
134055 0 0 if( opMask & 0x01 ){
134079 0 0 if( zRight ){
134099 0 0 if( zRight && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK ){
0 0 if( zRight && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK ){
134119 0 0 if( zRight && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK ){
0 0 if( zRight && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK ){
134121 0 0 if( N>0 && (iPrior==0 || iPrior>N) ) sqlite3_hard_heap_limit64(N);
0 0 if( N>0 && (iPrior==0 || iPrior>N) ) sqlite3_hard_heap_limit64(N);
0 0 if( N>0 && (iPrior==0 || iPrior>N) ) sqlite3_hard_heap_limit64(N);
134136 0 0 if( zRight
134137 0 0 && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK
134138 0 0 && N>=0
134155 0 0 if( zRight
134156 0 0 && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK /* IMP: R-40975-20399 */
134157 0 0 && N>=0
134260 0 0 for(i=0, j=pPragma->iPragCName; inPragCName; i++, j++){
134264 0 0 if( i==0 ){
134269 0 0 if( pPragma->mPragFlg & PragFlg_Result1 ){
134273 0 0 if( pPragma->mPragFlg & (PragFlg_SchemaOpt|PragFlg_SchemaReq) ){
134281 0 0 if( rc==SQLITE_OK ){
134283 0 0 if( pTab==0 ){
134323 0 0 if( pTab->nHidden==0 ){ return SQLITE_OK; }
134327 0 0 for(i=0; inConstraint; i++, pConstraint++){
134328 0 0 if( pConstraint->usable==0 ) continue;
134329 0 0 if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue;
134330 0 0 if( pConstraint->iColumn < pTab->iHidden ) continue;
134335 0 0 if( seen[0]==0 ){
134343 0 0 if( seen[1]==0 ) return SQLITE_OK;
134356 0 0 if( pCsr==0 ) return SQLITE_NOMEM;
134368 0 0 for(i=0; iazArg); i++){
134390 0 0 if( SQLITE_ROW!=sqlite3_step(pCsr->pPragma) ){
134417 0 0 for(i=0; i
134421 0 0 if( zText ){
134423 0 0 if( pCsr->azArg[j]==0 ){
134430 0 0 if( pCsr->azArg[1] ){
134434 0 0 if( pCsr->azArg[0] ){
134438 0 0 if( zSql==0 ) return SQLITE_NOMEM;
134441 0 0 if( rc!=SQLITE_OK ){
134466 0 0 if( iiHidden ){
134520 0 0 if( pName==0 ) return 0;
134521 0 0 if( (pName->mPragFlg & (PragFlg_Result0|PragFlg_Result1))==0 ) return 0;
134559 0 0 if( db->mallocFailed ){
134561 0 0 }else if( pData->pzErrMsg[0]!=0 ){
134563 0 0 }else if( pData->mInitFlags & (INITFLAG_AlterMask) ){
134575 0 0 }else if( db->flags & SQLITE_WriteSchema ){
134579 0 0 const char *zObj = azObj[1] ? azObj[1] : "?";
134581 0 0 if( zExtra && zExtra[0] ) z = sqlite3MPrintf(db, "%z - %s", z, zExtra);
0 0 if( zExtra && zExtra[0] ) z = sqlite3MPrintf(db, "%z - %s", z, zExtra);
134594 43 40 for(p=pIndex->pTable->pIndex; p; p=p->pNext){
134595 35 8 if( p->tnum==pIndex->tnum && p!=pIndex ) return 1;
0 35 if( p->tnum==pIndex->tnum && p!=pIndex ) return 1;
134635 0 784 if( argv==0 ) return 0; /* Might happen if EMPTY_RESULT_CALLBACKS are on */
134637 0 784 if( db->mallocFailed ){
134643 0 784 if( argv[3]==0 ){
134645 749 35 }else if( argv[4]
134646 749 0 && 'c'==sqlite3UpperToLower[(unsigned char)argv[4][0]]
134647 749 0 && 'r'==sqlite3UpperToLower[(unsigned char)argv[4][1]] ){
134665 749 0 if( sqlite3GetUInt32(argv[3], &db->init.newTnum)==0
134666 437 312 || (db->init.newTnum>pData->mxPage && pData->mxPage>0)
0 437 || (db->init.newTnum>pData->mxPage && pData->mxPage>0)
134668 0 0 if( sqlite3Config.bExtraSchemaChecks ){
134680 0 749 if( SQLITE_OK!=rc ){
134681 0 0 if( db->init.orphanTrigger ){
134684 0 0 if( rc > pData->rc ) pData->rc = rc;
134685 0 0 if( rc==SQLITE_NOMEM ){
134687 0 0 }else if( rc!=SQLITE_INTERRUPT && (rc&0xFF)!=SQLITE_LOCKED ){
0 0 }else if( rc!=SQLITE_INTERRUPT && (rc&0xFF)!=SQLITE_LOCKED ){
134694 35 0 }else if( argv[1]==0 || (argv[4]!=0 && argv[4][0]!=0) ){
0 35 }else if( argv[1]==0 || (argv[4]!=0 && argv[4][0]!=0) ){
0 0 }else if( argv[1]==0 || (argv[4]!=0 && argv[4][0]!=0) ){
134705 0 35 if( pIndex==0 ){
134708 35 0 if( sqlite3GetUInt32(argv[3],&pIndex->tnum)==0
134709 35 0 || pIndex->tnum<2
134710 35 0 || pIndex->tnum>pData->mxPage
134711 0 35 || sqlite3IndexHasDuplicateRootPage(pIndex)
134713 0 0 if( sqlite3Config.bExtraSchemaChecks ){
134757 216 221 azArg[1] = zSchemaTabName = SCHEMA_TABLE(iDb);
134772 0 437 if( initData.rc ){
134780 216 221 if( pDb->pBt==0 ){
134791 197 24 if( sqlite3BtreeTxnState(pDb->pBt)==SQLITE_TXN_NONE ){
134793 0 197 if( rc!=SQLITE_OK ){
134817 1105 221 for(i=0; i
134820 0 221 if( (db->flags & SQLITE_ResetDatabase)!=0 ){
134830 35 186 if( meta[BTREE_TEXT_ENCODING-1] ){ /* text encoding */
134831 35 0 if( iDb==0 && (db->mDbFlags & DBFLAG_EncodingFixed)==0 ){
32 3 if( iDb==0 && (db->mDbFlags & DBFLAG_EncodingFixed)==0 ){
134836 0 32 if( encoding==0 ) encoding = SQLITE_UTF8;
134843 0 3 if( (meta[BTREE_TEXT_ENCODING-1] & 3)!=ENC(db) ){
134853 218 3 if( pDb->pSchema->cache_size==0 ){
134856 218 0 if( size==0 ){ size = SQLITE_DEFAULT_CACHE_SIZE; }
134871 186 35 if( pDb->pSchema->file_format==0 ){
134874 0 221 if( pDb->pSchema->file_format>SQLITE_MAX_FILE_FORMAT ){
134885 216 5 if( iDb==0 && meta[BTREE_FILE_FORMAT-1]>=4 ){
35 181 if( iDb==0 && meta[BTREE_FILE_FORMAT-1]>=4 ){
134909 221 0 if( rc==SQLITE_OK ) rc = initData.rc;
134912 221 0 if( rc==SQLITE_OK ){
134918 0 221 if( db->mallocFailed ){
134923 0 221 if( rc==SQLITE_OK || ((db->flags&SQLITE_NoSchemaError) && rc!=SQLITE_NOMEM)){
0 0 if( rc==SQLITE_OK || ((db->flags&SQLITE_NoSchemaError) && rc!=SQLITE_NOMEM)){
0 0 if( rc==SQLITE_OK || ((db->flags&SQLITE_NoSchemaError) && rc!=SQLITE_NOMEM)){
134943 197 24 if( openedTransaction ){
134949 0 437 if( rc ){
134950 0 0 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
0 0 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
134978 216 284 if( !DbHasProperty(db, 0, DB_SchemaLoaded) ){
134980 0 216 if( rc ) return rc;
134983 576 500 for(i=db->nDb-1; i>0; i--){
134985 221 355 if( !DbHasProperty(db, i, DB_SchemaLoaded) ){
134987 0 221 if( rc ) return rc;
134990 451 49 if( commit_internal ){
135004 482 1005 if( !db->init.busy ){
135006 0 482 if( rc!=SQLITE_OK ){
135009 482 0 }else if( db->noSharedCache ){
135030 20 10 for(iDb=0; iDbnDb; iDb++){
135033 10 10 if( pBt==0 ) continue;
135038 10 0 if( sqlite3BtreeTxnState(pBt)==SQLITE_TXN_NONE ){
135040 10 0 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
0 10 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
135044 0 10 if( rc!=SQLITE_OK ) return;
135053 0 10 if( cookie!=db->aDb[iDb].pSchema->schema_cookie ){
135059 10 0 if( openedTransaction ){
135087 13286 35 if( pSchema ){
135090 13286 5777 if( db->aDb[i].pSchema==pSchema ){
135110 326 6162 while( pParse->pCleanup ){
135117 932 5230 if( pParse->pConstExpr ){
135122 5664 498 db->lookaside.sz = db->lookaside.bDisable ? 0 : db->lookaside.szTrue;
135163 326 0 if( pCleanup ){
135194 0 62 if( db->mallocFailed ) sqlite3ErrorMsg(pParse, "out of memory");
135229 0 6100 if( db->mallocFailed ) sqlite3ErrorMsg(&sParse, "out of memory");
135235 98 6002 if( prepFlags & SQLITE_PREPARE_PERSISTENT ){
135264 0 6100 if( !db->noSharedCache ){
135265 0 0 for(i=0; inDb; i++) {
135267 0 0 if( pBt ){
135270 0 0 if( rc ){
135282 0 6100 if( nBytes>=0 && (nBytes==0 || zSql[nBytes-1]!=0) ){
0 0 if( nBytes>=0 && (nBytes==0 || zSql[nBytes-1]!=0) ){
0 0 if( nBytes>=0 && (nBytes==0 || zSql[nBytes-1]!=0) ){
135287 0 0 if( nBytes>mxLen ){
135293 0 0 if( zSqlCopy ){
135305 4932 1168 if( pzTail ){
135309 4864 1236 if( db->init.busy==0 ){
135312 0 6100 if( db->mallocFailed ){
135316 6092 8 if( sParse.rc!=SQLITE_OK && sParse.rc!=SQLITE_DONE ){
26 6066 if( sParse.rc!=SQLITE_OK && sParse.rc!=SQLITE_DONE ){
135317 10 16 if( sParse.checkSchema && db->init.busy==0 ){
10 0 if( sParse.checkSchema && db->init.busy==0 ){
135320 10 16 if( sParse.pVdbe ){
135325 26 0 if( sParse.zErrMsg ){
135340 0 6100 while( sParse.pTriggerPrg ){
135367 5351 0 if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
0 5351 if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
135378 26 5325 if( rc==SQLITE_OK || db->mallocFailed ) break;
26 0 if( rc==SQLITE_OK || db->mallocFailed ) break;
135379 0 0 }while( (rc==SQLITE_ERROR_RETRY && (cnt++)
135380 0 26 || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt++)==0) );
0 26 || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt++)==0) );
0 0 || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt++)==0) );
135412 0 1 if( rc ){
135413 0 0 if( rc==SQLITE_NOMEM ){
135515 0 0 if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
0 0 if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
135518 0 0 if( nBytes>=0 ){
135521 0 0 for(sz=0; sz
0 0 for(sz=0; sz
0 0 for(sz=0; sz
135526 0 0 if( zSql8 ){
135530 0 0 if( zTail8 && pzTail ){
0 0 if( zTail8 && pzTail ){
135675 4654 4569 while( p ){
135684 0 4654 if( OK_IF_ALWAYS_TRUE(p->pWith) ) sqlite3WithDelete(db, p->pWith);
135686 0 4654 if( OK_IF_ALWAYS_TRUE(p->pWinDefn) ){
135689 0 4654 while( p->pWin ){
135694 4654 0 if( bFree ) sqlite3DbFreeNN(db, p);
135731 0 4651 if( pNew==0 ){
135735 2 4649 if( pEList==0 ){
135748 3223 1428 if( pSrc==0 ) pSrc = sqlite3DbMallocZero(pParse->db, sizeof(*pSrc));
135762 0 4651 if( pParse->db->mallocFailed ) {
135776 4569 2693 if( OK_IF_ALWAYS_TRUE(p) ) clearSelect(db, p, 1);
135783 0 2 while( p->pNext ) p = p->pNext;
135873 16 0 for(i=0; i<3 && apAll[i]; i++){
8 8 for(i=0; i<3 && apAll[i]; i++){
135875 32 0 for(j=0; j
135876 16 16 if( p->n==aKeyword[j].nChar
135877 8 8 && sqlite3StrNICmp((char*)p->z, &zKeyText[aKeyword[j].i], p->n)==0 ){
135883 0 8 if( j>=ArraySize(aKeyword) ){
135888 8 0 if(
135889 8 0 (jointype & (JT_INNER|JT_OUTER))==(JT_INNER|JT_OUTER) ||
135890 0 8 (jointype & JT_ERROR)!=0 ||
135895 0 0 if( pB==0 ){ zSp1++; }
135896 0 0 if( pC==0 ){ zSp2++; }
135912 0 0 for(pCol=pTab->aCol, i=0; inCol; pCol++, i++){
135913 0 0 if( pCol->hName==h && sqlite3StrICmp(pCol->zCnName, zCol)==0 ) return i;
0 0 if( pCol->hName==h && sqlite3StrICmp(pCol->zCnName, zCol)==0 ) return i;
135924 0 0 if( pItem->fg.isNestedFrom ){
135960 0 0 for(i=iStart; i<=iEnd; i++){
135962 0 0 if( iCol>=0
135963 0 0 && (bIgnoreHidden==0 || IsHiddenColumn(&pSrc->a[i].pTab->aCol[iCol])==0)
0 0 && (bIgnoreHidden==0 || IsHiddenColumn(&pSrc->a[i].pTab->aCol[iCol])==0)
135965 0 0 if( piTab ){
136004 72 80 while( p ){
136009 0 72 if( p->op==TK_FUNCTION ){
136011 0 0 if( p->x.pList ){
136013 0 0 for(i=0; ix.pList->nExpr; i++){
136038 316 610 while( p ){
136039 8 308 if( iTable<0 || (ExprHasProperty(p, EP_OuterON) && p->w.iJoin==iTable) ){
5 3 if( iTable<0 || (ExprHasProperty(p, EP_OuterON) && p->w.iJoin==iTable) ){
5 0 if( iTable<0 || (ExprHasProperty(p, EP_OuterON) && p->w.iJoin==iTable) ){
136041 5 308 if( iTable>=0 ) ExprSetProperty(p, EP_InnerON);
136043 104 212 if( p->op==TK_COLUMN && p->iTable==iTable && !nullable ){
2 102 if( p->op==TK_COLUMN && p->iTable==iTable && !nullable ){
2 0 if( p->op==TK_COLUMN && p->iTable==iTable && !nullable ){
136046 96 220 if( p->op==TK_FUNCTION ){
136048 96 0 if( p->x.pList ){
136050 192 96 for(i=0; ix.pList->nExpr; i++){
136090 11 1958 for(i=0; inSrc-1; i++, pRight++, pLeft++){
136094 11 0 if( NEVER(pLeft->pTab==0 || pRightTab==0) ) continue;
0 11 if( NEVER(pLeft->pTab==0 || pRightTab==0) ) continue;
136095 4 7 joinType = (pRight->fg.jointype & JT_OUTER)!=0 ? EP_OuterON : EP_InnerON;
136100 0 11 if( pRight->fg.jointype & JT_NATURAL ){
136102 0 0 if( pRight->fg.isUsing || pRight->u3.pOn ){
0 0 if( pRight->fg.isUsing || pRight->u3.pOn ){
136107 0 0 for(j=0; jnCol; j++){
136110 0 0 if( IsHiddenColumn(&pRightTab->aCol[j]) ) continue;
136112 0 0 if( tableAndColumnIndex(pSrc, 0, i, zName, 0, 0, 1) ){
136114 0 0 if( pUsing ){
136121 0 0 if( pUsing ){
136126 0 0 if( pParse->nErr ) return 1;
136136 0 11 if( pRight->fg.isUsing ){
136140 0 0 for(j=0; jnId; j++){
136151 0 0 if( iRightCol<0
136152 0 0 || tableAndColumnIndex(pSrc, 0, i, zName, &iLeft, &iLeftCol,
136161 0 0 if( (pSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){
136177 0 0 while( tableAndColumnIndex(pSrc, iLeft+1, i, zName, &iLeft, &iLeftCol,
136179 0 0 if( pSrc->a[iLeft].fg.isUsing==0
136180 0 0 || sqlite3IdListIndex(pSrc->a[iLeft].u3.pUsing, zName)<0
136190 0 0 if( pFuncArgs ){
136199 0 0 if( pEq ){
136212 8 3 else if( pRight->u3.pOn ){
136271 1 106 if( pSort->pDeferredRowLoad ){
136319 107 0 if( nPrefixReg ){
136327 0 107 iLimit = pSelect->iOffset ? pSelect->iOffset+1 : pSelect->iLimit;
136329 19 88 sqlite3ExprCodeExprList(pParse, pSort->pOrderBy, regBase, regOrigData,
136331 1 106 if( bSeq ){
136334 0 107 if( nPrefixReg==0 && nData>0 ){
0 0 if( nPrefixReg==0 && nData>0 ){
136337 18 89 if( nOBSat>0 ){
136349 0 18 if( bSeq ){
136357 0 18 if( pParse->db->mallocFailed ) return;
136372 0 18 if( iLimit ){
136380 1 106 if( iLimit ){
136405 89 18 if( regRecord==0 ){
136408 106 1 if( pSort->sortFlags & SORTFLAG_UseSorter ){
136415 1 106 if( iSkip ){
136416 0 1 sqlite3VdbeChangeP2(v, iSkip,
136429 0 1835 if( iOffset>0 ){
136501 0 0 for(i=0; i
136503 0 0 if( i
136568 4 0 if( pParse->nErr==0
136569 4 0 && (eTnctType==WHERE_DISTINCT_UNIQUE || eTnctType==WHERE_DISTINCT_ORDERED)
0 4 && (eTnctType==WHERE_DISTINCT_UNIQUE || eTnctType==WHERE_DISTINCT_ORDERED)
136573 0 0 if( sqlite3VdbeGetOp(v, iOpenEphAddr+1)->opcode==OP_Explain ){
136576 0 0 if( eTnctType==WHERE_DISTINCT_ORDERED ){
136713 1798 143 hasDistinct = pDistinct ? pDistinct->eTnctType : WHERE_DISTINCT_NOOP;
136714 1798 143 if( pSort && pSort->pOrderBy==0 ) pSort = 0;
1691 107 if( pSort && pSort->pOrderBy==0 ) pSort = 0;
136715 1834 107 if( pSort==0 && !hasDistinct ){
1830 4 if( pSort==0 && !hasDistinct ){
136724 1836 105 if( pDest->iSdst==0 ){
136725 107 1729 if( pSort ){
136727 1 106 if( !(pSort->sortFlags & SORTFLAG_UseSorter) ) nPrefixReg++;
136732 0 105 }else if( pDest->iSdst+nResultCol > pParse->nMem ){
136742 2 1939 if( srcTab>=0 ){
136743 2 2 for(i=0; i
136747 1939 0 }else if( eDest!=SRT_Exists ){
136756 1921 18 if( eDest==SRT_Mem || eDest==SRT_Output || eDest==SRT_Coroutine ){
114 1807 if( eDest==SRT_Mem || eDest==SRT_Output || eDest==SRT_Coroutine ){
105 9 if( eDest==SRT_Mem || eDest==SRT_Output || eDest==SRT_Coroutine ){
136761 107 1832 if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){
107 0 if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){
107 0 if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){
107 0 if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){
136770 139 107 for(i=pSort->nOBSat; ipOrderBy->nExpr; i++){
136772 120 19 if( (j = pSort->pOrderBy->a[i].u.x.iOrderByCol)>0 ){
136794 261 107 for(i=0; inExpr; i++){
136795 120 141 if( pEList->a[i].u.x.iOrderByCol>0
136821 20 1919 if( p->iLimit
136822 1 19 && (ecelFlags & SQLITE_ECEL_OMITREF)!=0
136823 1 0 && nPrefixReg>0
136838 4 1937 if( hasDistinct ){
136844 4 0 if( pSort==0 ){
136886 0 0 if( eDest==SRT_DistFifo ){
136899 0 0 if( pSort ){
136914 0 0 if( pSort ){
136928 0 0 if( i2<0 ){
136943 0 3 if( pSort ){
136975 0 18 if( pSort ){
136992 107 1807 if( pSort ){
136995 107 1700 }else if( eDest==SRT_Coroutine ){
137022 0 0 if( eDest==SRT_DistQueue ){
137031 0 0 if( eDest==SRT_DistQueue ){
137035 0 0 for(i=0; i
137043 0 0 if( addrTest ) sqlite3VdbeJumpHere(v, addrTest);
137069 1834 107 if( pSort==0 && p->iLimit ){
19 1815 if( pSort==0 && p->iLimit ){
137081 737 0 if( p ){
137099 764 0 if( p ){
137102 737 27 if( p->nRef==0 ) sqlite3DbFreeNN(p->db, p);
137110 27 0 if( p ){
137155 650 0 if( pInfo ){
137157 703 650 for(i=iStart, pItem=pList->a+iStart; i
137243 18 89 if( pSort->labelBkOut ){
137260 0 107 if( eDest==SRT_Output || eDest==SRT_Coroutine || eDest==SRT_Mem ){
0 0 if( eDest==SRT_Output || eDest==SRT_Coroutine || eDest==SRT_Mem ){
0 0 if( eDest==SRT_Output || eDest==SRT_Coroutine || eDest==SRT_Mem ){
137261 0 107 if( eDest==SRT_Mem && p->iOffset ){
0 0 if( eDest==SRT_Mem && p->iOffset ){
137268 0 0 if( eDest==SRT_EphemTab || eDest==SRT_Table ){
0 0 if( eDest==SRT_EphemTab || eDest==SRT_Table ){
137276 106 1 if( pSort->sortFlags & SORTFLAG_UseSorter ){
137279 18 88 if( pSort->labelBkOut ){
137284 18 88 if( addrOnce ) sqlite3VdbeJumpHere(v, addrOnce);
137295 0 1 if( p->iOffset>0 ){
137299 261 107 for(i=0, iCol=nKey+bSeq-1; i
137303 141 120 if( aOutEx[i].u.x.iOrderByCol==0 ) iCol++;
137336 261 107 for(i=nColumn-1; i>=0; i--){
137344 120 141 if( aOutEx[i].u.x.iOrderByCol ){
137379 0 0 if( i2<0 ){
137390 107 0 if( eDest==SRT_Output ){
137398 0 107 if( regRowid ){
137399 0 0 if( eDest==SRT_Set ){
137409 106 1 if( pSort->sortFlags & SORTFLAG_UseSorter ){
137414 18 89 if( pSort->regReturn ) sqlite3VdbeAddOp1(v, OP_Return, pSort->regReturn);
137477 7564 0 while( pNC && !pTab ){
3782 3782 while( pNC && !pTab ){
137479 3787 0 for(j=0;jnSrc && pTabList->a[j].iCursor!=pExpr->iTable;j++);
5 3782 for(j=0;jnSrc && pTabList->a[j].iCursor!=pExpr->iTable;j++);
137480 3782 0 if( jnSrc ){
137488 0 3782 if( pTab==0 ){
137510 198 3584 if( pS ){
137515 198 0 if( iColpEList->nExpr
137519 198 0 && ALWAYS(iCol>=0)
137537 101 3483 if( iCol<0 ) iCol = pTab->iPKey;
137539 12 3572 if( iCol<0 ){
137547 3551 33 if( pNC->pParse && pTab->pSchema ){
3551 0 if( pNC->pParse && pTab->pSchema ){
137584 4494 146 if( pzOrigDb ){
137610 4296 1807 for(i=0; inExpr; i++){
137680 0 1807 if( pParse->explain ){
137685 0 1807 if( pParse->colNamesSet ) return;
137687 0 1807 while( pSelect->pPrior ) pSelect = pSelect->pPrior;
137695 1 1806 srcName = (db->flags & SQLITE_ShortColNames)!=0 || fullName;
1 0 srcName = (db->flags & SQLITE_ShortColNames)!=0 || fullName;
137697 4296 1807 for(i=0; inExpr; i++){
137704 4296 0 if( pEList->a[i].zEName && pEList->a[i].fg.eEName==ENAME_NAME ){
2806 1490 if( pEList->a[i].zEName && pEList->a[i].fg.eEName==ENAME_NAME ){
137708 1490 0 }else if( srcName && p->op==TK_COLUMN ){
866 624 }else if( srcName && p->op==TK_COLUMN ){
137713 86 780 if( iCol<0 ) iCol = pTab->iPKey;
137715 12 854 if( iCol<0 ){
137720 0 866 if( fullName ){
137729 0 624 z = z==0 ? sqlite3MPrintf(db, "column%d", i+1) : sqlite3DbStrDup(db, z);
137775 35 0 if( pEList ){
137779 0 35 if( NEVER(nCol>32767) ) nCol = 32767;
137788 146 35 for(i=0, pCol=aCol; imallocFailed; i++, pCol++){
146 0 for(i=0, pCol=aCol; imallocFailed; i++, pCol++){
137793 146 0 if( (zName = pX->zEName)!=0 && pX->fg.eEName==ENAME_NAME ){
87 59 if( (zName = pX->zEName)!=0 && pX->fg.eEName==ENAME_NAME ){
137797 59 0 while( ALWAYS(pColExpr!=0) && pColExpr->op==TK_DOT ){
0 59 while( ALWAYS(pColExpr!=0) && pColExpr->op==TK_DOT ){
137801 0 59 if( pColExpr->op==TK_COLUMN
137802 0 0 && ALWAYS( ExprUseYTab(pColExpr) )
137803 0 0 && ALWAYS( pColExpr->y.pTab!=0 )
137808 0 0 if( iCol<0 ) iCol = pTab->iPKey;
137809 0 0 zName = iCol>=0 ? pTab->aCol[iCol].zCnName : "rowid";
137810 59 0 }else if( pColExpr->op==TK_ID ){
137818 146 0 if( zName && !sqlite3IsTrueOrFalse(zName) ){
146 0 if( zName && !sqlite3IsTrueOrFalse(zName) ){
137828 146 0 while( zName && (pCollide = sqlite3HashFind(&ht, zName))!=0 ){
0 146 while( zName && (pCollide = sqlite3HashFind(&ht, zName))!=0 ){
137829 0 0 if( pCollide->fg.bUsingTerm ){
137833 0 0 if( nName>0 ){
137834 0 0 for(j=nName-1; j>0 && sqlite3Isdigit(zName[j]); j--){}
0 0 for(j=nName-1; j>0 && sqlite3Isdigit(zName[j]); j--){}
137835 0 0 if( zName[j]==':' ) nName = j;
137838 0 0 if( cnt>3 ) sqlite3_randomness(sizeof(cnt), &cnt);
137842 0 146 if( pX->fg.bNoExpand ){
137846 146 0 if( zName && sqlite3HashInsert(&ht, zName, pX)==pX ){
0 146 if( zName && sqlite3HashInsert(&ht, zName, pX)==pX ){
137851 0 35 if( db->mallocFailed ){
137852 0 0 for(j=0; j
137891 0 35 if( db->mallocFailed ) return;
137895 146 35 for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){
137903 33 113 if( zType ){
137907 33 0 if( pCol->zCnName ){
137915 87 59 if( pCol->affinity<=SQLITE_AFF_NONE ) pCol->affinity = aff;
137917 85 61 if( pColl ){
137939 0 0 if( pParse->nErr ) return 0;
137940 0 0 while( pSelect->pPrior ) pSelect = pSelect->pPrior;
137942 0 0 if( pTab==0 ){
137951 0 0 if( db->mallocFailed ){
137963 1395 5358 if( pParse->pVdbe ){
137966 5358 0 if( pParse->pToplevel==0
137967 5358 0 && OptimizationEnabled(pParse->db,SQLITE_FactorOutConst)
138005 0 1927 if( p->iLimit ) return;
138013 20 1907 if( pLimit ){
138019 20 0 if( sqlite3ExprIsInteger(pLimit->pLeft, &n) ){
138022 0 20 if( n==0 ){
138024 20 0 }else if( n>=0 && p->nSelectRow>sqlite3LogEst((u64)n) ){
20 0 }else if( n>=0 && p->nSelectRow>sqlite3LogEst((u64)n) ){
138034 0 20 if( pLimit->pRight ){
138057 4 2 if( p->pPrior ){
138066 6 0 if( pRet==0 && ALWAYS(iColpEList->nExpr) ){
6 0 if( pRet==0 && ALWAYS(iColpEList->nExpr) ){
138083 0 0 int nOrderBy = ALWAYS(pOrderBy!=0) ? pOrderBy->nExpr : 0;
138086 0 0 if( pRet ){
138088 0 0 for(i=0; i
138093 0 0 if( pTerm->flags & EP_Collate ){
138097 0 0 if( pColl==0 ) pColl = db->pDfltColl;
138172 0 0 if( p->pWin ){
138179 0 0 if( sqlite3AuthCheck(pParse, SQLITE_RECURSIVE, 0, 0, 0) ) return;
138193 0 0 for(i=0; ALWAYS(inSrc); i++){
138194 0 0 if( pSrc->a[i].fg.isRecursive ){
138204 0 0 if( p->op==TK_UNION ){
138205 0 0 eDest = pOrderBy ? SRT_DistQueue : SRT_DistFifo;
138208 0 0 eDest = pOrderBy ? SRT_Queue : SRT_Fifo;
138215 0 0 if( pOrderBy ){
138224 0 0 if( iDistinct ){
138239 0 0 for(pFirstRec=p; ALWAYS(pFirstRec!=0); pFirstRec=pFirstRec->pPrior){
138240 0 0 if( pFirstRec->selFlags & SF_Aggregate ){
138245 0 0 if( (pFirstRec->pPrior->selFlags & SF_Recursive)==0 ) break;
138254 0 0 if( rc ) goto end_of_recursive_query;
138261 0 0 if( pOrderBy ){
138273 0 0 if( regLimit ){
138337 0 14 if( p->pWin ) return -1;
138339 4 10 if( p->pPrior==0 ) break;
138344 0 4 ExplainQueryPlan((pParse, 0, "SCAN %d CONSTANT ROW%s", nRow,
138346 14 4 while( p ){
138348 0 14 if( !bShowAll ) break;
138361 0 0 while( p && (p->selFlags & SF_Recursive)!=0 ){ p = p->pPrior; }
0 0 while( p && (p->selFlags & SF_Recursive)!=0 ){ p = p->pPrior; }
138425 0 79 if( dest.eDest==SRT_EphemTab ){
138433 4 75 if( p->selFlags & SF_MultiValue ){
138435 4 0 if( rc>=0 ) goto multi_select_end;
138446 0 75 if( (p->selFlags & SF_Recursive)!=0 && hasAnchor(p) ){
0 0 if( (p->selFlags & SF_Recursive)!=0 && hasAnchor(p) ){
138453 0 75 if( p->pOrderBy ){
138458 22 53 if( pPrior->pPrior==0 ){
138477 0 71 if( rc ){
138483 0 71 if( p->iLimit ){
138486 0 0 if( p->iOffset ){
138498 0 71 if( p->pLimit
138499 0 0 && sqlite3ExprIsInteger(p->pLimit->pLeft, &nLimit)
138500 0 0 && nLimit>0 && p->nSelectRow > sqlite3LogEst((u64)nLimit)
0 0 && nLimit>0 && p->nSelectRow > sqlite3LogEst((u64)nLimit)
138504 0 71 if( addr ){
138521 2 2 if( dest.eDest==priorOp ){
138547 0 4 if( rc ){
138553 0 4 if( p->op==TK_EXCEPT ){
138572 4 0 if( p->op==TK_UNION ){
138585 2 2 if( dest.eDest!=priorOp && db->mallocFailed==0 ){
2 0 if( dest.eDest!=priorOp && db->mallocFailed==0 ){
138628 0 0 if( rc ){
138648 0 0 if( p->nSelectRow>pPrior->nSelectRow ){
138657 0 0 if( rc ) break;
138680 22 53 if( p->pNext==0 ){
138685 0 75 if( pParse->nErr ) goto multi_select_end;
138696 2 73 if( p->selFlags & SF_UsesEphemeral ){
138707 0 2 if( !pKeyInfo ){
138711 2 2 for(i=0, apColl=pKeyInfo->aColl; i
138713 2 0 if( 0==*apColl ){
138718 6 2 for(pLoop=p; pLoop; pLoop=pLoop->pPrior){
138719 8 0 for(i=0; i<2; i++){
138721 6 2 if( addr<0 ){
138739 0 79 if( pDelete ){
138753 0 0 if( p->selFlags & SF_Values ){
138801 0 0 if( regPrev ){
138811 0 0 if( pParse->db->mallocFailed ) return 0;
138866 0 0 if( pDest->iSdst==0 ){
138892 0 0 if( p->iLimit ){
139053 0 0 if( op!=TK_ALL ){
139054 0 0 for(i=1; db->mallocFailed==0 && i<=p->pEList->nExpr; i++){
0 0 for(i=1; db->mallocFailed==0 && i<=p->pEList->nExpr; i++){
139056 0 0 for(j=0, pItem=pOrderBy->a; j
139059 0 0 if( pItem->u.x.iOrderByCol==i ) break;
139061 0 0 if( j==nOrderBy ){
139063 0 0 if( pNew==0 ) return SQLITE_NOMEM_BKPT;
139067 0 0 if( pOrderBy ) pOrderBy->a[nOrderBy++].u.x.iOrderByCol = (u16)i;
139080 0 0 if( aPermute ){
139083 0 0 for(i=1, pItem=pOrderBy->a; i<=nOrderBy; i++, pItem++){
139098 0 0 if( op==TK_ALL ){
139107 0 0 if( pKeyDup ){
139109 0 0 for(i=0; i
139119 0 0 if( (op==TK_ALL || op==TK_UNION)
0 0 if( (op==TK_ALL || op==TK_UNION)
139120 0 0 && OptimizationEnabled(db, SQLITE_BalancedMerge)
139122 0 0 for(pSplit=p; pSplit->pPrior!=0 && pSplit->op==op; pSplit=pSplit->pPrior){
0 0 for(pSplit=p; pSplit->pPrior!=0 && pSplit->op==op; pSplit=pSplit->pPrior){
139127 0 0 if( nSelect<=3 ){
139131 0 0 for(i=2; ipPrior; }
139145 0 0 if( p->iLimit && op==TK_ALL ){
0 0 if( p->iLimit && op==TK_ALL ){
139148 0 0 sqlite3VdbeAddOp2(v, OP_Copy, p->iOffset ? p->iOffset+1 : p->iLimit,
139205 0 0 if( op==TK_ALL || op==TK_UNION ){
0 0 if( op==TK_ALL || op==TK_UNION ){
139216 0 0 if( op==TK_EXCEPT || op==TK_INTERSECT ){
0 0 if( op==TK_EXCEPT || op==TK_INTERSECT ){
139230 0 0 if( op==TK_INTERSECT ){
139232 0 0 if( p->nSelectRow > pPrior->nSelectRow ) p->nSelectRow = pPrior->nSelectRow;
139249 0 0 if( op==TK_ALL ){
139251 0 0 }else if( op==TK_INTERSECT ){
139265 0 0 if( op==TK_ALL || op==TK_UNION ){
0 0 if( op==TK_ALL || op==TK_UNION ){
139292 0 0 if( pSplit->pPrior ){
139373 1126 740 if( pExpr==0 ) return 0;
139374 0 740 if( ExprHasProperty(pExpr, EP_OuterON|EP_InnerON)
139375 0 0 && pExpr->w.iJoin==pSubst->iTable
139380 325 415 if( pExpr->op==TK_COLUMN
139381 233 92 && pExpr->iTable==pSubst->iTable
139382 233 0 && !ExprHasProperty(pExpr, EP_FixedCol)
139395 0 233 if( sqlite3ExprIsVector(pCopy) ){
139399 0 233 if( pSubst->isOuterJoin && pCopy->op!=TK_COLUMN ){
0 0 if( pSubst->isOuterJoin && pCopy->op!=TK_COLUMN ){
139409 0 233 if( db->mallocFailed ){
139413 0 233 if( pSubst->isOuterJoin ){
139416 0 233 if( ExprHasProperty(pExpr,EP_OuterON|EP_InnerON) ){
139422 0 233 if( pExpr->op==TK_TRUEFALSE ){
139430 82 151 if( pExpr->op!=TK_COLUMN && pExpr->op!=TK_COLLATE ){
82 0 if( pExpr->op!=TK_COLUMN && pExpr->op!=TK_COLLATE ){
139432 0 82 pExpr = sqlite3ExprAddCollateString(pSubst->pParse, pExpr,
139440 0 507 if( pExpr->op==TK_IF_NULL_ROW && pExpr->iTable==pSubst->iTable ){
0 0 if( pExpr->op==TK_IF_NULL_ROW && pExpr->iTable==pSubst->iTable ){
139445 0 507 if( ExprUseXSelect(pExpr) ){
139451 0 507 if( ExprHasProperty(pExpr, EP_WinFunc) ){
139466 510 219 if( pList==0 ) return;
139467 603 219 for(i=0; inExpr; i++){
139479 35 26 if( !p ) return;
139488 48 74 for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){
139490 0 48 if( pItem->fg.isTabFunc ){
139494 61 13 }while( doPrior && (p = p->pPrior)!=0 );
48 13 }while( doPrior && (p = p->pPrior)!=0 );
139508 260 198 if( pExpr->op!=TK_COLUMN ) return WRC_Continue;
139510 92 106 if( pItem->iCursor!=pExpr->iTable ) return WRC_Continue;
139511 0 106 if( pExpr->iColumn<0 ) return WRC_Continue;
139520 0 13 if( NEVER(pSrcItem->pTab==0) ) return;
139552 0 0 for(i=0, pItem=pSrc->a; inSrc; i++, pItem++){
139553 0 0 if( i!=iExcept ){
139556 0 0 if( !pItem->fg.isRecursive || aCsrMap[pItem->iCursor+1]==0 ){
0 0 if( !pItem->fg.isRecursive || aCsrMap[pItem->iCursor+1]==0 ){
139560 0 0 for(p=pItem->pSelect; p; p=p->pPrior){
139573 0 0 if( iCsr < aCsrMap[0] && aCsrMap[iCsr+1]>0 ){
0 0 if( iCsr < aCsrMap[0] && aCsrMap[iCsr+1]>0 ){
139584 0 0 if( op==TK_COLUMN || op==TK_IF_NULL_ROW ){
0 0 if( op==TK_COLUMN || op==TK_IF_NULL_ROW ){
139587 0 0 if( ExprHasProperty(pExpr, EP_OuterON) ){
139829 0 35 if( OptimizationDisabled(db, SQLITE_QueryFlattener) ) return 0;
139838 35 0 if( p->pWin || pSub->pWin ) return 0; /* Restriction (25) */
0 35 if( p->pWin || pSub->pWin ) return 0; /* Restriction (25) */
139848 0 35 if( pSub->pLimit && p->pLimit ) return 0; /* Restriction (13) */
0 0 if( pSub->pLimit && p->pLimit ) return 0; /* Restriction (13) */
139849 0 35 if( pSub->pLimit && pSub->pLimit->pRight ) return 0; /* Restriction (14) */
0 0 if( pSub->pLimit && pSub->pLimit->pRight ) return 0; /* Restriction (14) */
139850 0 35 if( (p->selFlags & SF_Compound)!=0 && pSub->pLimit ){
0 0 if( (p->selFlags & SF_Compound)!=0 && pSub->pLimit ){
139853 22 13 if( pSubSrc->nSrc==0 ) return 0; /* Restriction (7) */
139854 0 13 if( pSub->selFlags & SF_Distinct ) return 0; /* Restriction (4) */
139855 0 13 if( pSub->pLimit && (pSrc->nSrc>1 || isAgg) ){
0 0 if( pSub->pLimit && (pSrc->nSrc>1 || isAgg) ){
0 0 if( pSub->pLimit && (pSrc->nSrc>1 || isAgg) ){
139858 13 0 if( p->pOrderBy && pSub->pOrderBy ){
0 13 if( p->pOrderBy && pSub->pOrderBy ){
139861 0 13 if( isAgg && pSub->pOrderBy ) return 0; /* Restriction (16) */
0 0 if( isAgg && pSub->pOrderBy ) return 0; /* Restriction (16) */
139862 0 13 if( pSub->pLimit && p->pWhere ) return 0; /* Restriction (19) */
0 0 if( pSub->pLimit && p->pWhere ) return 0; /* Restriction (19) */
139863 0 13 if( pSub->pLimit && (p->selFlags & SF_Distinct)!=0 ){
0 0 if( pSub->pLimit && (p->selFlags & SF_Distinct)!=0 ){
139866 0 13 if( pSub->selFlags & (SF_Recursive) ){
139890 0 13 if( (pSubitem->fg.jointype & (JT_OUTER|JT_LTORJ))!=0 ){
139891 0 0 if( pSubSrc->nSrc>1 /* (3a) */
139892 0 0 || isAgg /* (3c) */
139893 0 0 || IsVirtual(pSubSrc->a[0].pTab) /* (3b) */
139894 0 0 || (p->selFlags & SF_Distinct)!=0 /* (3d) */
139895 0 0 || (pSubitem->fg.jointype & JT_RIGHT)!=0 /* (26) */
139912 0 13 if( iFrom>0 && (pSubSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){
0 0 if( iFrom>0 && (pSubSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){
139915 0 13 if( pSubitem->fg.isCte && pSubitem->u2.pCteUse->eM10d==M10d_Yes ){
0 0 if( pSubitem->fg.isCte && pSubitem->u2.pCteUse->eM10d==M10d_Yes ){
139936 0 13 if( pSubSrc->nSrc>=2
139937 0 0 && (pSubSrc->a[pSubSrc->nSrc-1].fg.jointype & JT_OUTER)!=0
139939 0 0 if( (pSubitem->fg.jointype & JT_NATURAL)!=0
139940 0 0 || pSubitem->fg.isUsing
139941 0 0 || NEVER(pSubitem->u3.pOn!=0) /* ON clause already shifted into WHERE */
139942 0 0 || pSubitem->fg.isOn
139953 0 13 if( pSub->pPrior ){
139954 0 0 if( pSub->pOrderBy ){
139957 0 0 if( isAgg || (p->selFlags & SF_Distinct)!=0 || isOuterJoin>0 ){
0 0 if( isAgg || (p->selFlags & SF_Distinct)!=0 || isOuterJoin>0 ){
0 0 if( isAgg || (p->selFlags & SF_Distinct)!=0 || isOuterJoin>0 ){
139960 0 0 for(pSub1=pSub; pSub1; pSub1=pSub1->pPrior){
139966 0 0 if( (pSub1->selFlags & (SF_Distinct|SF_Aggregate))!=0 /* (17b) */
139967 0 0 || (pSub1->pPrior && pSub1->op!=TK_ALL) /* (17a) */
0 0 || (pSub1->pPrior && pSub1->op!=TK_ALL) /* (17a) */
139968 0 0 || pSub1->pSrc->nSrc<1 /* (17c) */
139970 0 0 || pSub1->pWin /* (17e) */
139975 0 0 if( iFrom>0 && (pSub1->pSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){
0 0 if( iFrom>0 && (pSub1->pSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){
139985 0 0 if( p->pOrderBy ){
139987 0 0 for(ii=0; iipOrderBy->nExpr; ii++){
139988 0 0 if( p->pOrderBy->a[ii].u.x.iOrderByCol==0 ) return 0;
139993 0 0 if( (p->selFlags & SF_Recursive) ) return 0;
139995 0 0 if( pSrc->nSrc>1 ){
139996 0 0 if( pParse->nSelect>500 ) return 0;
139997 0 0 if( OptimizationDisabled(db, SQLITE_FlttnUnionAll) ) return 0;
139999 0 0 if( aCsrMap ) aCsrMap[0] = pParse->nTab;
140057 0 13 for(pSub=pSub->pPrior; pSub; pSub=pSub->pPrior){
140072 0 0 if( pNew==0 ){
140076 0 0 if( aCsrMap && ALWAYS(db->mallocFailed==0) ){
0 0 if( aCsrMap && ALWAYS(db->mallocFailed==0) ){
140080 0 0 if( pPrior ) pPrior->pNext = pNew;
140089 0 13 if( db->mallocFailed ){
140101 13 0 if( ALWAYS(pSubitem->pTab!=0) ){
140103 13 0 if( pTabToDel->nTabRef==1 ){
140104 0 13 Parse *pToplevel = sqlite3ParseToplevel(pParse);
140129 13 13 for(pParent=p; pParent; pParent=pParent->pPrior, pSub=pSub->pPrior){
140138 13 0 if( pParent==p ){
140157 0 13 if( nSubSrc>1 ){
140159 0 0 if( pSrc==0 ) break;
140166 13 13 for(i=0; i
140168 0 13 if( pItem->fg.isUsing ) sqlite3IdListDelete(db, pItem->u3.pUsing);
140190 0 13 if( pSub->pOrderBy && (pParent->selFlags & SF_NoopOrderBy)==0 ){
0 0 if( pSub->pOrderBy && (pParent->selFlags & SF_NoopOrderBy)==0 ){
140202 0 0 for(i=0; inExpr; i++){
140211 0 13 if( isOuterJoin>0 ){
140214 0 13 if( pWhere ){
140215 0 0 if( pParent->pWhere ){
140221 13 0 if( db->mallocFailed==0 ){
140242 0 13 if( pSub->pLimit ){
140249 13 13 for(i=0; i
140306 0 311 if( ExprHasProperty(pColumn, EP_FixedCol) ) return;
140307 0 311 if( sqlite3ExprAffinity(pValue)!=0 ) return;
140308 0 311 if( !sqlite3IsBinary(sqlite3ExprCompareCollSeq(pConst->pParse,pExpr)) ){
140314 36 311 for(i=0; inConst; i++){
140317 36 0 if( pE2->iTable==pColumn->iTable
140318 0 36 && pE2->iColumn==pColumn->iColumn
140323 3 308 if( sqlite3ExprAffinity(pColumn)==SQLITE_AFF_BLOB ){
140330 0 311 if( pConst->apExpr==0 ){
140346 0 981 if( NEVER(pExpr==0) ) return;
140347 3 978 if( ExprHasProperty(pExpr, pConst->mExcludeOn) ){
140352 331 647 if( pExpr->op==TK_AND ){
140357 333 314 if( pExpr->op!=TK_EQ ) return;
140362 2 312 if( pRight->op==TK_COLUMN && sqlite3ExprIsConstant(pLeft) ){
0 2 if( pRight->op==TK_COLUMN && sqlite3ExprIsConstant(pLeft) ){
140365 314 0 if( pLeft->op==TK_COLUMN && sqlite3ExprIsConstant(pRight) ){
311 3 if( pLeft->op==TK_COLUMN && sqlite3ExprIsConstant(pRight) ){
140385 0 1932 if( pConst->pOomFault[0] ) return WRC_Prune;
140386 1376 556 if( pExpr->op!=TK_COLUMN ) return WRC_Continue;
140387 2 554 if( ExprHasProperty(pExpr, EP_FixedCol|pConst->mExcludeOn) ){
140393 626 554 for(i=0; inConst; i++){
140395 314 312 if( pColumn==pExpr ) continue;
140396 2 310 if( pColumn->iTable!=pExpr->iTable ) continue;
140397 310 0 if( pColumn->iColumn!=pExpr->iColumn ) continue;
140398 0 0 if( bIgnoreAffBlob && sqlite3ExprAffinity(pColumn)==SQLITE_AFF_BLOB ){
0 0 if( bIgnoreAffBlob && sqlite3ExprAffinity(pColumn)==SQLITE_AFF_BLOB ){
140407 0 0 if( pConst->pParse->db->mallocFailed ) return WRC_Prune;
140435 21 1905 if( pConst->bHasAffBlob ){
140436 18 3 if( (pExpr->op>=TK_EQ && pExpr->op<=TK_GE)
15 3 if( (pExpr->op>=TK_EQ && pExpr->op<=TK_GE)
140437 0 18 || pExpr->op==TK_IS
140440 0 3 if( pConst->pOomFault[0] ) return WRC_Prune;
140441 3 0 if( sqlite3ExprAffinity(pExpr->pLeft)!=SQLITE_AFF_TEXT ){
140514 319 0 if( ALWAYS(p->pSrc!=0)
140515 313 6 && p->pSrc->nSrc>0
140516 0 313 && (p->pSrc->a[0].fg.jointype & JT_LTORJ)!=0
140526 275 44 if( x.nConst ){
140538 0 319 }while( x.nChng );
140648 3 22 if( pWhere==0 ) return 0;
140649 0 22 if( pSubq->selFlags & (SF_Recursive|SF_MultiPart) ) return 0;
140650 0 22 if( pSrc->fg.jointype & (JT_LTORJ|JT_RIGHT) ) return 0;
140653 22 0 if( pSubq->pPrior ){
140655 101 22 for(pSel=pSubq; pSel; pSel=pSel->pPrior){
140656 0 101 if( pSel->pWin ) return 0; /* restriction (6b) */
140659 0 0 if( pSubq->pWin && pSubq->pWin->pPartition==0 ) return 0;
0 0 if( pSubq->pWin && pSubq->pWin->pPartition==0 ) return 0;
140676 0 22 if( pSubq->pLimit!=0 ){
140679 3 22 while( pWhere->op==TK_AND ){
140698 22 0 if( sqlite3ExprIsTableConstraint(pWhere, pSrc) ){
140701 101 22 while( pSubq ){
140712 0 101 if( pSubq->pWin && 0==pushDownWindowCheck(pParse, pSubq, pNew) ){
0 0 if( pSubq->pWin && 0==pushDownWindowCheck(pParse, pSubq, pNew) ){
140719 0 101 if( pSubq->selFlags & SF_Aggregate ){
140759 54 73 if( pEList==0
140760 54 0 || pEList->nExpr!=1
140761 54 0 || ExprHasProperty(pFunc, EP_WinFunc)
140762 0 54 || OptimizationDisabled(db, SQLITE_MinMaxOpt)
140768 0 54 if( sqlite3StrICmp(zFunc, "min")==0 ){
140770 0 0 if( sqlite3ExprCanBeNull(pEList->a[0].pExpr) ){
140773 16 38 }else if( sqlite3StrICmp(zFunc, "max")==0 ){
140781 16 0 if( pOrderBy ) pOrderBy->a[0].fg.sortFlags = sortFlags;
140808 99 28 if( p->pWhere
140809 99 0 || p->pEList->nExpr!=1
140810 99 0 || p->pSrc->nSrc!=1
140811 99 0 || p->pSrc->a[0].pSelect
140812 99 0 || pAggInfo->nFunc!=1
140813 0 99 || p->pHaving
140820 0 99 if( !IsOrdinaryTable(pTab) ) return 0;
140823 0 99 if( pExpr->op!=TK_AGG_FUNCTION ) return 0;
140824 0 99 if( pExpr->pAggInfo!=pAggInfo ) return 0;
140825 90 9 if( (pAggInfo->aFunc[0].pFunc->funcFlags&SQLITE_FUNC_COUNT)==0 ) return 0;
140829 0 9 if( ExprHasProperty(pExpr, EP_Distinct|EP_WinFunc) ) return 0;
140848 0 0 for(pIdx=pTab->pIndex;
140849 0 0 pIdx && sqlite3StrICmp(pIdx->zName, zIndexedBy);
140852 0 0 if( !pIdx ){
140893 4 4 if( p->pPrior==0 ) return WRC_Continue;
140894 4 0 if( p->pOrderBy==0 ) return WRC_Continue;
140895 0 0 for(pX=p; pX && (pX->op==TK_ALL || pX->op==TK_SELECT); pX=pX->pPrior){}
0 0 for(pX=p; pX && (pX->op==TK_ALL || pX->op==TK_SELECT); pX=pX->pPrior){}
0 0 for(pX=p; pX && (pX->op==TK_ALL || pX->op==TK_SELECT); pX=pX->pPrior){}
140896 0 0 if( pX==0 ) return WRC_Continue;
140904 0 0 if( a[0].u.x.iOrderByCol ) return WRC_Continue;
140906 0 0 for(i=p->pOrderBy->nExpr-1; i>=0; i--){
140907 0 0 if( a[i].pExpr->flags & EP_Collate ) break;
140909 0 0 if( i<0 ) return WRC_Continue;
140916 0 0 if( pNew==0 ) return WRC_Abort;
140919 0 0 if( pNewSrc==0 ) return WRC_Abort;
140949 0 1257 if( pFrom->fg.isTabFunc ){
140976 0 0 for(p=pWith; p; p=p->pOuter){
140978 0 0 for(i=0; inCte; i++){
140979 0 0 if( sqlite3StrICmp(zName, p->a[i].zName)==0 ){
140984 0 0 if( p->bView ) break;
141007 0 1958 if( pWith ){
141008 0 0 if( bFree ){
141012 0 0 if( pWith==0 ) return 0;
141014 0 0 if( pParse->nErr==0 ){
141046 1404 0 if( pParse->pWith==0 ){
141050 0 0 if( pParse->nErr ){
141055 0 0 if( pFrom->zDatabase!=0 ){
141060 0 0 if( pFrom->fg.notCte ){
141069 0 0 if( pCte ){
141085 0 0 if( pCte->zCteErr ){
141089 0 0 if( cannotBeFunction(pParse, pFrom) ) return 2;
141093 0 0 if( pTab==0 ) return 2;
141095 0 0 if( pCteUse==0 ){
141097 0 0 if( pCteUse==0
141098 0 0 || sqlite3ParserAddCleanup(pParse,sqlite3DbFree,pCteUse)==0
141112 0 0 if( db->mallocFailed ) return 2;
141115 0 0 if( pFrom->fg.isIndexedBy ){
141122 0 0 if( pCteUse->nUse>=2 && pCteUse->eM10d==M10d_Any ){
0 0 if( pCteUse->nUse>=2 && pCteUse->eM10d==M10d_Any ){
141128 0 0 bMayRecursive = ( pSel->op==TK_ALL || pSel->op==TK_UNION );
0 0 bMayRecursive = ( pSel->op==TK_ALL || pSel->op==TK_UNION );
141129 0 0 while( bMayRecursive && pRecTerm->op==pSel->op ){
0 0 while( bMayRecursive && pRecTerm->op==pSel->op ){
141133 0 0 for(i=0; inSrc; i++){
141135 0 0 if( pItem->zDatabase==0
141136 0 0 && pItem->zName!=0
141137 0 0 && 0==sqlite3StrICmp(pItem->zName, pCte->zName)
141142 0 0 if( pRecTerm->selFlags & SF_Recursive ){
141149 0 0 if( iRecTab<0 ) iRecTab = pParse->nTab++;
141153 0 0 if( (pRecTerm->selFlags & SF_Recursive)==0 ) break;
141160 0 0 if( pSel->selFlags & SF_Recursive ){
141170 0 0 if( rc ){
141175 0 0 if( sqlite3WalkSelect(pWalker, pSel) ){
141182 0 0 for(pLeft=pSel; pLeft->pPrior; pLeft=pLeft->pPrior);
141184 0 0 if( pCte->pCols ){
141185 0 0 if( pEList && pEList->nExpr!=pCte->pCols->nExpr ){
0 0 if( pEList && pEList->nExpr!=pCte->pCols->nExpr ){
141196 0 0 if( bMayRecursive ){
141197 0 0 if( pSel->selFlags & SF_Recursive ){
141223 0 1958 if( OK_IF_ALWAYS_TRUE(pParse->pWith) && p->pPrior==0 ){
0 0 if( OK_IF_ALWAYS_TRUE(pParse->pWith) && p->pPrior==0 ){
141225 0 0 if( pWith!=0 ){
141246 0 35 if( pTab==0 ) return SQLITE_NOMEM;
141248 2 33 if( pFrom->zAlias ){
141253 75 35 while( pSel->pPrior ){ pSel = pSel->pPrior; }
141281 0 0 while( N>0 ){
141284 0 0 if( pBase->fg.isUsing==0 ) continue;
141285 0 0 if( NEVER(pBase->u3.pUsing==0) ) continue;
141286 0 0 if( sqlite3IdListIndex(pBase->u3.pUsing, zName)>=0 ) return 1;
141328 0 1993 if( db->mallocFailed ){
141332 35 1958 if( (selFlags & SF_Expanded)!=0 ){
141335 0 1958 if( pWalker->eCode ){
141341 0 1958 if( pParse->pWith && (p->selFlags & SF_View) ){
0 0 if( pParse->pWith && (p->selFlags & SF_View) ){
141342 0 0 if( p->pWith==0 ){
141344 0 0 if( p->pWith==0 ){
141361 1439 1958 for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){
141364 0 1439 if( pFrom->pTab ) continue;
141366 35 1404 if( pFrom->zName==0 ){
141372 0 35 if( sqlite3WalkSelect(pWalker, pSel) ) return WRC_Abort;
141373 0 35 if( sqlite3ExpandSubquery(pParse, pFrom) ) return WRC_Abort;
141376 0 1404 }else if( (rc = resolveFromTermToCte(pParse, pWalker, pFrom))!=0 ){
141377 0 0 if( rc>1 ) return WRC_Abort;
141385 0 1404 if( pTab==0 ) return WRC_Abort;
141386 0 1404 if( pTab->nTabRef>=0xffff ){
141393 1257 147 if( !IsVirtual(pTab) && cannotBeFunction(pParse, pFrom) ){
0 1257 if( !IsVirtual(pTab) && cannotBeFunction(pParse, pFrom) ){
141397 147 1257 if( !IsOrdinaryTable(pTab) ){
141400 0 147 if( sqlite3ViewGetColumnNames(pParse, pTab) ) return WRC_Abort;
141402 0 147 if( IsView(pTab) ){
141403 0 0 if( (db->flags & SQLITE_EnableView)==0
141404 0 0 && pTab->pSchema!=db->aDb[1].pSchema
141412 147 0 else if( ALWAYS(IsVirtual(pTab))
141413 0 147 && pFrom->fg.fromDDL
141414 0 0 && ALWAYS(pTab->u.vtab.p!=0)
141415 0 0 && pTab->u.vtab.p->eVtabRisk > ((db->flags & SQLITE_TrustedSchema)!=0)
141433 0 1439 if( pFrom->fg.isIndexedBy && sqlite3IndexedByLookup(pParse, pFrom) ){
0 0 if( pFrom->fg.isIndexedBy && sqlite3IndexedByLookup(pParse, pFrom) ){
141441 1958 0 if( pParse->nErr || sqlite3ProcessJoin(pParse, p) ){
0 1958 if( pParse->nErr || sqlite3ProcessJoin(pParse, p) ){
141456 2560 1365 for(k=0; knExpr; k++){
141458 590 1970 if( pE->op==TK_ASTERISK ) break;
141461 36 1934 if( pE->op==TK_DOT && pE->pRight->op==TK_ASTERISK ) break;
3 33 if( pE->op==TK_DOT && pE->pRight->op==TK_ASTERISK ) break;
141464 593 1365 if( knExpr ){
141474 1 592 && (flags & SQLITE_ShortColNames)==0;
1 0 && (flags & SQLITE_ShortColNames)==0;
141476 600 593 for(k=0; knExpr; k++){
141481 10 590 if( pE->op!=TK_ASTERISK
141482 6 4 && (pE->op!=TK_DOT || pRight->op!=TK_ASTERISK)
3 3 && (pE->op!=TK_DOT || pRight->op!=TK_ASTERISK)
141487 7 0 if( pNew ){
141498 3 590 if( pE->op==TK_DOT ){
141503 593 593 for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){
141511 593 0 if( (zTabName = pFrom->zAlias)==0 ){
141514 0 593 if( db->mallocFailed ) break;
141516 0 593 if( pFrom->fg.isNestedFrom ){
141522 3 590 if( zTName && sqlite3StrICmp(zTName, zTabName)!=0 ){
0 3 if( zTName && sqlite3StrICmp(zTName, zTabName)!=0 ){
141527 580 13 zSchemaName = iDb>=0 ? db->aDb[iDb].zDbSName : "*";
141529 0 593 if( i+1nSrc
141530 0 0 && pFrom[1].fg.isUsing
141531 0 0 && (selFlags & SF_NestedFrom)!=0
141535 0 0 for(ii=0; iinId; ii++){
141539 0 0 if( pNew ){
141550 2774 593 for(j=0; jnCol; j++){
141555 9 2765 if( zTName
141556 0 9 && pNestedFrom
141557 0 0 && sqlite3MatchEName(&pNestedFrom->a[j], 0, zTName, 0)==0
141566 2774 0 if( (p->selFlags & SF_IncludeHidden)==0
141567 6 2768 && IsHiddenColumn(&pTab->aCol[j])
141571 0 2768 if( (pTab->aCol[j].colFlags & COLFLAG_NOEXPAND)!=0
141572 0 0 && zTName==0
141573 0 0 && (selFlags & (SF_NestedFrom))==0
141579 0 2768 if( i>0 && zTName==0 && (selFlags & SF_NestedFrom)==0 ){
0 0 if( i>0 && zTName==0 && (selFlags & SF_NestedFrom)==0 ){
0 0 if( i>0 && zTName==0 && (selFlags & SF_NestedFrom)==0 ){
141580 0 0 if( pFrom->fg.isUsing
141581 0 0 && sqlite3IdListIndex(pFrom->u3.pUsing, zName)>=0
141589 0 2768 if( (pTabList->nSrc>1
141590 0 0 && ( (pFrom->fg.jointype & JT_LTORJ)==0
141591 0 0 || (selFlags & SF_NestedFrom)!=0
141592 0 0 || !inAnyUsingClause(zName,pFrom,pTabList->nSrc-i-1)
141595 0 2768 || IN_RENAME_OBJECT
141600 0 0 if( IN_RENAME_OBJECT && pE->pLeft ){
0 0 if( IN_RENAME_OBJECT && pE->pLeft ){
141603 0 0 if( zSchemaName ){
141611 0 2768 if( pNew==0 ){
141616 0 2768 if( (selFlags & SF_NestedFrom)!=0 && !IN_RENAME_OBJECT ){
0 0 if( (selFlags & SF_NestedFrom)!=0 && !IN_RENAME_OBJECT ){
141617 0 0 if( pNestedFrom ){
141626 0 0 if( (pFrom->fg.isUsing
141627 0 0 && sqlite3IdListIndex(pFrom->u3.pUsing, zName)>=0)
141628 0 0 || (pUsing && sqlite3IdListIndex(pUsing, zName)>=0)
0 0 || (pUsing && sqlite3IdListIndex(pUsing, zName)>=0)
141629 0 0 || (pTab->aCol[j].colFlags & COLFLAG_NOEXPAND)!=0
141633 3 2765 }else if( longNames ){
141642 0 593 if( !tableSeen ){
141643 0 0 if( zTName ){
141654 1958 0 if( p->pEList ){
141655 0 1958 if( p->pEList->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){
141659 673 1285 if( (elistFlags & (EP_HasFunc|EP_Subquery))!=0 ){
141699 2 1815 if( OK_IF_ALWAYS_TRUE(pParse->hasCompound) ){
141732 0 1952 if( p->selFlags & SF_HasTypeInfo ) return;
141736 1439 1952 for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){
141739 35 1404 if( (pTab->tabFlags & TF_Ephemeral)!=0 ){
141742 35 0 if( pSel ){
141743 75 35 while( pSel->pPrior ) pSel = pSel->pPrior;
141791 0 2010 if( pParse->db->mallocFailed ) return;
141792 193 1817 if( p->selFlags & SF_HasTypeInfo ) return;
141794 0 1817 if( pParse->nErr ) return;
141796 6 1811 if( pParse->nErr ) return;
141815 0 138 if( nReg==0 ) return;
141816 0 138 if( pParse->nErr ) return;
141831 138 138 for(pFunc=pAggInfo->aFunc, i=0; inFunc; i++, pFunc++){
141832 0 138 if( pFunc->iDistinct>=0 ){
141835 0 0 if( pE->x.pList==0 || pE->x.pList->nExpr!=1 ){
0 0 if( pE->x.pList==0 || pE->x.pList->nExpr!=1 ){
141858 138 138 for(i=0, pF=pAggInfo->aFunc; inFunc; i++, pF++){
141862 62 76 sqlite3VdbeAddOp2(v, OP_AggFinal, pF->iMem, pList ? pList->nExpr : 0);
141891 138 138 for(i=0, pF=pAggInfo->aFunc; inFunc; i++, pF++){
141899 0 138 if( ExprHasProperty(pF->pFExpr, EP_WinFunc) ){
141901 0 0 if( pAggInfo->nAccumulator
141902 0 0 && (pF->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL)
141903 0 0 && regAcc
141908 0 0 if( regHit==0 ) regHit = ++pParse->nMem;
141921 62 76 if( pList ){
141929 0 138 if( pF->iDistinct>=0 && pList ){
0 0 if( pF->iDistinct>=0 && pList ){
141930 0 0 if( addrNext==0 ){
141936 16 122 if( pF->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){
141941 24 8 for(j=0, pItem=pList->a; !pColl && j
16 8 for(j=0, pItem=pList->a; !pColl && j
141944 8 8 if( !pColl ){
141947 16 0 if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem;
0 16 if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem;
141954 0 138 if( addrNext ){
141958 138 0 if( regHit==0 && pAggInfo->nAccumulator ){
14 124 if( regHit==0 && pAggInfo->nAccumulator ){
141961 14 124 if( regHit ){
141964 15 138 for(i=0, pC=pAggInfo->aCol; inAccumulator; i++, pC++){
141969 14 124 if( addrHitTest ){
141984 0 9 if( pParse->explain==2 ){
141985 0 0 int bCover = (pIdx!=0 && (HasRowid(pTab) || !IsPrimaryKeyIndex(pIdx)));
0 0 int bCover = (pIdx!=0 && (HasRowid(pTab) || !IsPrimaryKeyIndex(pIdx)));
0 0 int bCover = (pIdx!=0 && (HasRowid(pTab) || !IsPrimaryKeyIndex(pIdx)));
141986 0 0 sqlite3VdbeExplain(pParse, 0, "SCAN %s%s%s",
0 0 sqlite3VdbeExplain(pParse, 0, "SCAN %s%s%s",
142009 6 0 if( pExpr->op!=TK_AND ){
142018 0 6 if( sqlite3ExprIsConstantOrGroupBy(pWalker->pParse, pExpr, pS->pGroupBy)
142019 0 0 && ExprAlwaysFalse(pExpr)==0
142020 0 0 && pExpr->pAggInfo==0
142024 0 0 if( pNew ){
142078 0 0 if( pThis->pSelect->selFlags & SF_PushDown ) return 0;
142079 0 0 for(pItem = pTabList->a; pItem
142081 0 0 if( pItem->pSelect==0 ) continue;
142082 0 0 if( pItem->fg.viaCoroutine ) continue;
142083 0 0 if( pItem->zName==0 ) continue;
142086 0 0 if( pItem->pTab->pSchema!=pThis->pTab->pSchema ) continue;
142087 0 0 if( sqlite3_stricmp(pItem->zName, pThis->zName)!=0 ) continue;
142089 0 0 if( pItem->pTab->pSchema==0 && pThis->pSelect->selId!=pS1->selId ){
0 0 if( pItem->pTab->pSchema==0 && pThis->pSelect->selId!=pS1->selId ){
142094 0 0 if( pItem->pSelect->selFlags & SF_PushDown ){
142209 0 0 for(i=0; inSrc; i++){
142211 0 0 if( p1==p0 ) continue;
142212 0 0 if( p0->pTab==p1->pTab && 0==sqlite3_stricmp(p0->zAlias, p1->zAlias) ){
0 0 if( p0->pTab==p1->pTab && 0==sqlite3_stricmp(p0->zAlias, p1->zAlias) ){
142215 0 0 if( p1->pSelect
142216 0 0 && (p1->pSelect->selFlags & SF_NestedFrom)!=0
142217 0 0 && sameSrcAlias(p0, p1->pSelect->pSrc)
142264 2010 0 if( p==0 || pParse->nErr ){
0 2010 if( p==0 || pParse->nErr ){
142268 0 2010 if( sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1;
142284 8 2002 if( IgnorableDistinct(pDest) ){
142289 0 8 if( p->pOrderBy ){
142306 6 2004 if( pParse->nErr ){
142327 0 2004 if( p->selFlags & SF_UFSrcCheck ){
142329 0 0 if( sameSrcAlias(p0, p->pSrc) ){
142330 0 0 sqlite3ErrorMsg(pParse,
142344 1807 197 if( pDest->eDest==SRT_Output ){
142349 0 2004 if( sqlite3WindowRewrite(pParse, p) ){
142369 3364 79 for(i=0; !p->pPrior && inSrc; i++){
1439 1925 for(i=0; !p->pPrior && inSrc; i++){
142382 4 1435 if( (pItem->fg.jointype & (JT_LEFT|JT_RIGHT))==JT_LEFT
142383 1 3 && sqlite3ExprImpliesNonNullRow(p->pWhere, pItem->iCursor)
142384 1 0 && OptimizationEnabled(db, SQLITE_SimplifyJoin)
142395 1404 35 if( pSub==0 ) continue;
142399 0 35 if( pTab->nCol!=pSub->pEList->nExpr ){
142412 0 35 if( (pSub->selFlags & SF_Aggregate)!=0 ) continue;
142435 0 35 if( pSub->pOrderBy!=0
142436 0 0 && (p->pOrderBy!=0 || pTabList->nSrc>1) /* Condition (5) */
0 0 && (p->pOrderBy!=0 || pTabList->nSrc>1) /* Condition (5) */
142437 0 0 && pSub->pLimit==0 /* Condition (1) */
142438 0 0 && (pSub->selFlags & SF_OrderByReqd)==0 /* Condition (2) */
142439 0 0 && (p->selFlags & SF_OrderByReqd)==0 /* Condition (3) and (4) */
142440 0 0 && OptimizationEnabled(db, SQLITE_OmitOrderBy)
142468 0 35 if( pSub->pOrderBy!=0
142469 0 0 && i==0
142470 0 0 && (p->selFlags & SF_ComplexResult)!=0
142471 0 0 && (pTabList->nSrc==1
142472 0 0 || (pTabList->a[1].fg.jointype&(JT_OUTER|JT_CROSS))!=0)
142477 13 22 if( flattenSubquery(pParse, p, i, isAgg) ){
142478 0 13 if( pParse->nErr ) goto select_end;
142483 0 35 if( db->mallocFailed ) goto select_end;
142484 35 0 if( !IgnorableOrderby(pDest) ){
142494 79 1925 if( p->pPrior ){
142502 26 53 if( p->pNext==0 ) ExplainQueryPlanPop(pParse);
142512 984 941 if( p->pWhere!=0
142513 319 665 && p->pWhere->op==TK_AND
142514 319 0 && OptimizationEnabled(db, SQLITE_PropagateConst)
142541 1426 1925 for(i=0; inSrc; i++){
142566 81 1345 if( pItem->colUsed==0 && pItem->zName!=0 ){
81 0 if( pItem->colUsed==0 && pItem->zName!=0 ){
142574 1404 22 if( pSub==0 ) continue;
142591 22 0 if( OptimizationEnabled(db, SQLITE_PushDown)
142592 0 22 && (pItem->fg.isCte==0
142593 0 0 || (pItem->u2.pCteUse->eM10d!=M10d_Yes && pItem->u2.pCteUse->nUse<2))
0 0 || (pItem->u2.pCteUse->eM10d!=M10d_Yes && pItem->u2.pCteUse->nUse<2))
142621 22 0 if( i==0
142622 0 22 && (pTabList->nSrc==1
142623 0 0 || (pTabList->a[1].fg.jointype&(JT_OUTER|JT_CROSS))!=0) /* (1) */
142624 0 22 && (pItem->fg.isCte==0 || pItem->u2.pCteUse->eM10d!=M10d_Yes) /* (2) */
0 0 && (pItem->fg.isCte==0 || pItem->u2.pCteUse->eM10d!=M10d_Yes) /* (2) */
142625 22 0 && (pTabList->a[0].fg.jointype & JT_LTORJ)==0 /* (3) */
142645 0 0 }else if( pItem->fg.isCte && pItem->u2.pCteUse->addrM9e>0 ){
0 0 }else if( pItem->fg.isCte && pItem->u2.pCteUse->addrM9e>0 ){
142652 0 0 if( pItem->iCursor!=pCteUse->iCur ){
142657 0 0 }else if( (pPrior = isSelfJoinView(pTabList, pItem))!=0 ){
142660 0 0 if( pPrior->addrFillSub ){
142676 0 0 if( pItem->fg.isCorrelated==0 ){
142689 0 0 if( onceAddr ) sqlite3VdbeJumpHere(v, onceAddr);
142694 0 0 if( pItem->fg.isCte && pItem->fg.isCorrelated==0 ){
0 0 if( pItem->fg.isCte && pItem->fg.isCorrelated==0 ){
142702 0 22 if( db->mallocFailed ) goto select_end;
142738 4 1921 if( (p->selFlags & (SF_Distinct|SF_Aggregate))==SF_Distinct
142739 0 4 && sqlite3ExprListCompare(sSort.pOrderBy, pEList, -1)==0
142741 0 0 && p->pWin==0
142769 608 1317 if( sSort.pOrderBy ){
142785 0 1925 if( pDest->eDest==SRT_EphemTab ){
142787 0 0 if( p->selFlags & SF_NestedFrom ){
142790 0 0 for(ii=pEList->nExpr-1; ii>0 && pEList->a[ii].fg.bUsed==0; ii--){
0 0 for(ii=pEList->nExpr-1; ii>0 && pEList->a[ii].fg.bUsed==0; ii--){
142795 0 0 for(ii=0; iinExpr; ii++){
142796 0 0 if( pEList->a[ii].fg.bUsed==0 ) pEList->a[ii].pExpr->op = TK_NULL;
142804 1925 0 if( (p->selFlags & SF_FixedLimit)==0 ){
142808 1905 20 if( p->iLimit==0 && sSort.addrSortIndex>=0 ){
607 1298 if( p->iLimit==0 && sSort.addrSortIndex>=0 ){
142815 4 1921 if( p->selFlags & SF_Distinct ){
142827 1778 147 if( !isAgg && pGroupBy==0 ){
1778 0 if( !isAgg && pGroupBy==0 ){
142829 4 1774 u16 wctrlFlags = (sDistinct.isTnct ? WHERE_WANT_DISTINCT : 0)
142833 0 1778 if( pWin ){
142844 0 1778 if( pWInfo==0 ) goto select_end;
142845 1777 1 if( sqlite3WhereOutputRowCount(pWInfo) < p->nSelectRow ){
142848 4 1774 if( sDistinct.isTnct && sqlite3WhereIsDistinct(pWInfo) ){
0 4 if( sDistinct.isTnct && sqlite3WhereIsDistinct(pWInfo) ){
142851 606 1172 if( sSort.pOrderBy ){
142854 500 106 if( sSort.nOBSat==sSort.pOrderBy->nExpr ){
142864 606 1172 if( sSort.addrSortIndex>=0 && sSort.pOrderBy==0 ){
500 106 if( sSort.addrSortIndex>=0 && sSort.pOrderBy==0 ){
142870 0 1778 if( pWin ){
142919 20 127 if( pGroupBy ){
142923 29 20 for(k=p->pEList->nExpr, pItem=p->pEList->a; k>0; k--, pItem++){
142926 20 20 for(k=pGroupBy->nExpr, pItem=pGroupBy->a; k>0; k--, pItem++){
142930 19 1 if( p->nSelectRow>66 ) p->nSelectRow = 66;
142940 2 18 if( sSort.pOrderBy && pGroupBy->nExpr==sSort.pOrderBy->nExpr ){
2 0 if( sSort.pOrderBy && pGroupBy->nExpr==sSort.pOrderBy->nExpr ){
142947 2 2 for(ii=0; iinExpr; ii++){
142952 1 1 if( sqlite3ExprListCompare(pGroupBy, sSort.pOrderBy, -1)==0 ){
142969 147 0 if( pAggInfo ){
142974 0 147 if( db->mallocFailed ){
142984 20 127 pAggInfo->nSortingColumn = pGroupBy ? pGroupBy->nExpr : 0;
142988 6 141 if( pHaving ){
142989 6 0 if( pGroupBy ){
142999 127 20 if( p->pGroupBy==0 && p->pHaving==0 && pAggInfo->nFunc==1 ){
127 0 if( p->pGroupBy==0 && p->pHaving==0 && pAggInfo->nFunc==1 ){
127 0 if( p->pGroupBy==0 && p->pHaving==0 && pAggInfo->nFunc==1 ){
143004 147 147 for(i=0; inFunc; i++){
143011 0 147 if( ExprHasProperty(pExpr, EP_WinFunc) ){
143018 0 147 if( db->mallocFailed ) goto select_end;
143045 20 127 if( pGroupBy ){
143059 20 0 if( pAggInfo->nFunc==1
143060 0 20 && pAggInfo->aFunc[0].iDistinct>=0
143061 0 0 && ALWAYS(pAggInfo->aFunc[0].pFExpr!=0)
143062 0 0 && ALWAYS(ExprUseXList(pAggInfo->aFunc[0].pFExpr))
143063 0 0 && pAggInfo->aFunc[0].pFExpr->x.pList!=0
143069 0 0 distFlag = pDistinct ? (WHERE_WANT_DISTINCT|WHERE_AGG_DISTINCT) : 0;
143107 0 20 pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pGroupBy, pDistinct,
1 19 pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pGroupBy, pDistinct,
143111 0 20 if( pWInfo==0 ){
143117 0 20 if( sqlite3WhereIsOrdered(pWInfo)==pGroupBy->nExpr ){
143134 0 20 explainTempTable(pParse,
143135 0 0 (sDistinct.isTnct && (p->selFlags&SF_Distinct)==0) ?
143142 23 20 for(i=0; inColumn; i++){
143143 9 14 if( pAggInfo->aCol[i].iSorterColumn>=j ){
143151 23 20 for(i=0; inColumn; i++){
143153 9 14 if( pCol->iSorterColumn>=j ){
143182 1 19 if( orderByGrp && OptimizationEnabled(db, SQLITE_GroupByOrder)
1 0 if( orderByGrp && OptimizationEnabled(db, SQLITE_GroupByOrder)
143183 0 1 && (groupBySort || sqlite3WhereIsSorted(pWInfo))
0 0 && (groupBySort || sqlite3WhereIsSorted(pWInfo))
143195 20 0 if( groupBySort ){
143199 20 20 for(j=0; jnExpr; j++){
143200 20 0 if( groupBySort ){
143239 20 0 if( groupBySort ){
143291 0 20 if( distFlag!=0 && eDist!=WHERE_DISTINCT_NOOP ){
0 0 if( distFlag!=0 && eDist!=WHERE_DISTINCT_NOOP ){
143298 9 118 if( (pTab = isSimpleCount(p, pAggInfo))!=0 ){
143331 0 9 if( !HasRowid(pTab) ) pBest = sqlite3PrimaryKeyIndex(pTab);
143332 9 0 if( !p->pSrc->a[0].fg.notIndexed ){
143333 0 9 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
143334 0 0 if( pIdx->bUnordered==0
143335 0 0 && pIdx->szIdxRowszTabRow
143336 0 0 && pIdx->pPartIdxWhere==0
143337 0 0 && (!pBest || pIdx->szIdxRowszIdxRow)
0 0 && (!pBest || pIdx->szIdxRowszIdxRow)
143343 0 9 if( pBest ){
143350 0 9 if( pKeyInfo ){
143371 0 118 if( pAggInfo->nAccumulator ){
143372 0 0 for(i=0; inFunc; i++){
143373 0 0 if( ExprHasProperty(pAggInfo->aFunc[i].pFExpr, EP_WinFunc) ){
143376 0 0 if( pAggInfo->aFunc[i].pFunc->funcFlags&SQLITE_FUNC_NEEDCOLL ){
143380 0 0 if( i==pAggInfo->nFunc ){
143384 118 0 }else if( pAggInfo->nFunc==1 && pAggInfo->aFunc[0].iDistinct>=0 ){
0 118 }else if( pAggInfo->nFunc==1 && pAggInfo->aFunc[0].iDistinct>=0 ){
143387 0 0 distFlag = pDistinct ? (WHERE_WANT_DISTINCT|WHERE_AGG_DISTINCT) : 0;
143408 0 118 if( pWInfo==0 ){
143414 0 118 if( eDist!=WHERE_DISTINCT_NOOP ){
143416 0 0 if( pF ){
143421 0 118 if( regAcc ) sqlite3VdbeAddOp2(v, OP_Integer, 1, regAcc);
143422 16 102 if( minMaxFlag ){
143439 4 1921 if( sDistinct.eTnctType==WHERE_DISTINCT_UNORDERED ){
143446 107 1818 if( sSort.pOrderBy ){
143447 18 89 explainTempTable(pParse,
143547 0 0 if( p->nRow==0 && argv!=0 ){
0 0 if( p->nRow==0 && argv!=0 ){
143552 0 0 if( p->nData + need > p->nAlloc ){
143556 0 0 if( azNew==0 ) goto malloc_failed;
143563 0 0 if( p->nRow==0 ){
143565 0 0 for(i=0; i
143567 0 0 if( z==0 ) goto malloc_failed;
143570 0 0 }else if( (int)p->nColumn!=nCol ){
143581 0 0 if( argv!=0 ){
143582 0 0 for(i=0; i
143583 0 0 if( argv[i]==0 ){
143588 0 0 if( z==0 ) goto malloc_failed;
143627 0 0 if( pnColumn ) *pnColumn = 0;
143628 0 0 if( pnRow ) *pnRow = 0;
143629 0 0 if( pzErrMsg ) *pzErrMsg = 0;
143637 0 0 if( res.azResult==0 ){
143645 0 0 if( (rc&0xff)==SQLITE_ABORT ){
143647 0 0 if( res.zErrMsg ){
143648 0 0 if( pzErrMsg ){
143658 0 0 if( rc!=SQLITE_OK ){
143662 0 0 if( res.nAlloc>res.nData ){
143665 0 0 if( azNew==0 ){
143673 0 0 if( pnColumn ) *pnColumn = res.nColumn;
143674 0 0 if( pnRow ) *pnRow = res.nRow;
143684 0 0 if( azResult ){
143689 0 0 for(i=1; i
0 0 for(i=1; i
143717 0 0 while( pTriggerStep ){
143756 0 7 while( p ){
143758 0 0 if( pTrig->pTabSchema==pTab->pSchema
143759 0 0 && pTrig->table
143760 0 0 && 0==sqlite3StrICmp(pTrig->table, pTab->zName)
143761 0 0 && pTrig->pTabSchema!=pTmpSchema
143765 0 0 }else if( pTrig->op==TK_RETURNING ){
143824 0 0 if( isTemp ){
143826 0 0 if( pName2->n>0 ){
143835 0 0 if( iDb<0 ){
143839 0 0 if( !pTableName || db->mallocFailed ){
0 0 if( !pTableName || db->mallocFailed ){
143851 0 0 if( db->init.busy && iDb!=1 ){
0 0 if( db->init.busy && iDb!=1 ){
143862 0 0 if( db->init.busy==0 && pName2->n==0 && pTab
0 0 if( db->init.busy==0 && pName2->n==0 && pTab
0 0 if( db->init.busy==0 && pName2->n==0 && pTab
143863 0 0 && pTab->pSchema==db->aDb[1].pSchema ){
143868 0 0 if( db->mallocFailed ) goto trigger_cleanup;
143871 0 0 if( sqlite3FixSrcList(&sFix, pTableName) ){
143875 0 0 if( !pTab ){
143879 0 0 if( IsVirtual(pTab) ){
143887 0 0 if( zName==0 ){
143891 0 0 if( sqlite3CheckObjectName(pParse, zName, "trigger", pTab->zName) ){
143895 0 0 if( !IN_RENAME_OBJECT ){
143896 0 0 if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash),zName) ){
143897 0 0 if( !noErr ){
143908 0 0 if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0 ){
143916 0 0 if( IsView(pTab) && tr_tm!=TK_INSTEAD ){
0 0 if( IsView(pTab) && tr_tm!=TK_INSTEAD ){
143917 0 0 sqlite3ErrorMsg(pParse, "cannot create %s trigger on view: %S",
143921 0 0 if( !IsView(pTab) && tr_tm==TK_INSTEAD ){
0 0 if( !IsView(pTab) && tr_tm==TK_INSTEAD ){
143928 0 0 if( !IN_RENAME_OBJECT ){
143932 0 0 const char *zDbTrig = isTemp ? db->aDb[1].zDbSName : zDb;
143933 0 0 if( iTabDb==1 || isTemp ) code = SQLITE_CREATE_TEMP_TRIGGER;
0 0 if( iTabDb==1 || isTemp ) code = SQLITE_CREATE_TEMP_TRIGGER;
143934 0 0 if( sqlite3AuthCheck(pParse, code, zName, pTab->zName, zDbTrig) ){
143937 0 0 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iTabDb),0,zDb)){
0 0 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iTabDb),0,zDb)){
143948 0 0 if (tr_tm == TK_INSTEAD){
143954 0 0 if( pTrigger==0 ) goto trigger_cleanup;
143961 0 0 pTrigger->tr_tm = tr_tm==TK_BEFORE ? TRIGGER_BEFORE : TRIGGER_AFTER;
143962 0 0 if( IN_RENAME_OBJECT ){
143979 0 0 if( !pParse->pNewTrigger ){
143987 0 0 if( db->init.iDb==1 ){
144020 0 0 if( NEVER(pParse->nErr) || !pTrig ) goto triggerfinish_cleanup;
0 0 if( NEVER(pParse->nErr) || !pTrig ) goto triggerfinish_cleanup;
144024 0 0 while( pStepList ){
144030 0 0 if( sqlite3FixTriggerStep(&sFix, pTrig->step_list)
144031 0 0 || sqlite3FixExpr(&sFix, pTrig->pWhen)
144037 0 0 if( IN_RENAME_OBJECT ){
144047 0 0 if( !db->init.busy ){
144054 0 0 if( sqlite3ReadOnlyShadowTables(db) ){
144056 0 0 for(pStep=pTrig->step_list; pStep; pStep=pStep->pNext){
144057 0 0 if( pStep->zTarget!=0
144058 0 0 && sqlite3ShadowTableName(db, pStep->zTarget)
144070 0 0 if( v==0 ) goto triggerfinish_cleanup;
144085 0 0 if( db->init.busy ){
144091 0 0 if( pTrig ){
144093 0 0 }else if( pLink->pSchema==pLink->pTabSchema ){
144115 0 0 if( z ) for(i=0; z[i]; i++) if( sqlite3Isspace(z[i]) ) z[i] = ' ';
0 0 if( z ) for(i=0; z[i]; i++) if( sqlite3Isspace(z[i]) ) z[i] = ' ';
0 0 if( z ) for(i=0; z[i]; i++) if( sqlite3Isspace(z[i]) ) z[i] = ' ';
144133 0 0 if( pTriggerStep==0 ) {
144160 0 0 if( pParse->nErr ) return 0;
144162 0 0 if( pTriggerStep ){
144169 0 0 if( IN_RENAME_OBJECT ){
144199 0 0 if( pTriggerStep ){
144200 0 0 if( IN_RENAME_OBJECT ){
144209 0 0 if( pUpsert ){
144242 0 0 if( pTriggerStep ){
144243 0 0 if( IN_RENAME_OBJECT ){
144279 0 0 if( pTriggerStep ){
144280 0 0 if( IN_RENAME_OBJECT ){
144296 0 0 if( pTrigger==0 || pTrigger->bReturning ) return;
0 0 if( pTrigger==0 || pTrigger->bReturning ) return;
144320 0 0 if( db->mallocFailed ) goto drop_trigger_cleanup;
144321 0 0 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
144329 0 0 for(i=OMIT_TEMPDB; inDb; i++){
144330 0 0 int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */
144331 0 0 if( zDb && sqlite3DbIsNamed(db, j, zDb)==0 ) continue;
0 0 if( zDb && sqlite3DbIsNamed(db, j, zDb)==0 ) continue;
144334 0 0 if( pTrigger ) break;
144336 0 0 if( !pTrigger ){
144337 0 0 if( !noErr ){
144374 0 0 if( pTable ){
144377 0 0 const char *zTab = SCHEMA_TABLE(iDb);
144378 0 0 if( iDb==1 ) code = SQLITE_DROP_TEMP_TRIGGER;
144388 0 0 if( (v = sqlite3GetVdbe(pParse))!=0 ){
144408 0 0 if( ALWAYS(pTrigger) ){
144409 0 0 if( pTrigger->pSchema==pTrigger->pTabSchema ){
144411 0 0 if( pTab ){
144413 0 0 for(pp=&pTab->pTrigger; *pp; pp=&((*pp)->pNext)){
144414 0 0 if( *pp==pTrigger ){
144437 0 0 if( pIdList==0 || NEVER(pEList==0) ) return 1;
0 0 if( pIdList==0 || NEVER(pEList==0) ) return 1;
144438 0 0 for(e=0; enExpr; e++){
144439 0 0 if( sqlite3IdListIndex(pIdList, pEList->a[e].zEName)>=0 ) return 1;
144448 0 3074 if( NEVER(db->aDb[1].pSchema==0) ) return 0;
144449 3074 0 if( sqliteHashFirst(&db->aDb[1].pSchema->trigHash)==0 ) return 0;
144473 0 0 if( pList!=0 ){
144475 0 0 if( (pParse->db->flags & SQLITE_EnableTrigger)==0
144476 0 0 && pTab->pTrigger!=0
144481 0 0 if( pList==pTab->pTrigger ){
144485 0 0 while( ALWAYS(p->pNext) && p->pNext!=pTab->pTrigger ) p = p->pNext;
0 0 while( ALWAYS(p->pNext) && p->pNext!=pTab->pTrigger ) p = p->pNext;
144490 0 0 if( p->op==op && checkColumnOverlap(p->pColumns, pChanges) ){
0 0 if( p->op==op && checkColumnOverlap(p->pColumns, pChanges) ){
144492 0 0 }else if( p->op==TK_RETURNING ){
144497 0 0 if( IsVirtual(pTab) ){
144498 0 0 if( op!=TK_INSERT ){
144499 0 0 sqlite3ErrorMsg(pParse,
144508 0 0 }else if( p->bReturning && p->op==TK_INSERT && op==TK_UPDATE
0 0 }else if( p->bReturning && p->op==TK_INSERT && op==TK_UPDATE
0 0 }else if( p->bReturning && p->op==TK_INSERT && op==TK_UPDATE
144509 0 0 && sqlite3IsToplevel(pParse) ){
144514 0 0 }while( p );
144517 0 0 if( pMask ){
144520 0 0 return (mask ? pList : 0);
144530 3074 0 if( (pTab->pTrigger==0 && !tempTriggersExist(pParse->db))
0 3074 if( (pTab->pTrigger==0 && !tempTriggersExist(pParse->db))
144531 0 0 || pParse->disableTriggers
144533 3007 67 if( pMask ) *pMask = 0;
144559 0 0 if( pSrc ){
144562 0 0 if( pSchema!=db->aDb[1].pSchema ){
144565 0 0 if( pStep->pFrom ){
144567 0 0 if( pDup && pDup->nSrc>1 && !IN_RENAME_OBJECT ){
0 0 if( pDup && pDup->nSrc>1 && !IN_RENAME_OBJECT ){
0 0 if( pDup && pDup->nSrc>1 && !IN_RENAME_OBJECT ){
144593 0 0 if( pTerm->op==TK_ASTERISK ) return 1;
144594 0 0 if( pTerm->op!=TK_DOT ) return 0;
144597 0 0 if( pTerm->pRight->op!=TK_ASTERISK ) return 0;
144617 0 0 for(i=0; inExpr; i++){
144619 0 0 if( NEVER(pOldExpr==0) ) continue;
144620 0 0 if( isAsteriskTerm(pParse, pOldExpr) ){
144622 0 0 for(jj=0; jjnCol; jj++){
144624 0 0 if( IsHiddenColumn(pTab->aCol+jj) ) continue;
144627 0 0 if( !db->mallocFailed ){
144636 0 0 if( !db->mallocFailed && ALWAYS(pList->a[i].zEName!=0) ){
0 0 if( !db->mallocFailed && ALWAYS(pList->a[i].zEName!=0) ){
144677 0 0 if( pParse->nErr==0 ){
144683 0 0 if( !db->mallocFailed ){
144686 0 0 if( pReturning->nRetCol==0 ){
144695 0 0 if( sqlite3ResolveExprListNames(&sNC, pNew)==SQLITE_OK
144696 0 0 && ALWAYS(!db->mallocFailed)
144703 0 0 for(i=0; i
144707 0 0 if( sqlite3ExprAffinity(pCol)==SQLITE_AFF_REAL ){
144739 0 0 for(pStep=pStepList; pStep; pStep=pStep->pNext){
144753 0 0 pParse->eOrconf = (orconf==OE_Default)?pStep->orconf:(u8)orconf;
144757 0 0 if( pStep->zSpan ){
144834 0 0 if( pTo->nErr==0 ){
144853 0 0 Parse *pTop = sqlite3ParseToplevel(pParse);
144870 0 0 if( !pPrg ) return 0;
144874 0 0 if( !pProgram ) return 0;
144894 0 0 if( v ){
144904 0 0 if( pTrigger->zName ){
144914 0 0 if( pTrigger->pWhen ){
144916 0 0 if( db->mallocFailed==0
144917 0 0 && SQLITE_OK==sqlite3ResolveExprNames(&sNC, pWhen)
144929 0 0 if( iEndTrigger ){
144936 0 0 if( pParse->nErr==0 ){
144967 0 0 Parse *pRoot = sqlite3ParseToplevel(pParse);
144976 0 0 for(pPrg=pRoot->pTriggerPrg;
144977 0 0 pPrg && (pPrg->pTrigger!=pTrigger || pPrg->orconf!=orconf);
0 0 pPrg && (pPrg->pTrigger!=pTrigger || pPrg->orconf!=orconf);
144982 0 0 if( !pPrg ){
145011 0 0 if( pPrg ){
145012 0 0 int bRecursive = (p->zName && 0==(pParse->db->flags&SQLITE_RecTriggers));
0 0 int bRecursive = (p->zName && 0==(pParse->db->flags&SQLITE_RecTriggers));
145085 0 347 for(p=pTrigger; p; p=p->pNext){
145100 0 0 if( (p->op==op || (p->bReturning && p->op==TK_INSERT && op==TK_UPDATE))
0 0 if( (p->op==op || (p->bReturning && p->op==TK_INSERT && op==TK_UPDATE))
0 0 if( (p->op==op || (p->bReturning && p->op==TK_INSERT && op==TK_UPDATE))
0 0 if( (p->op==op || (p->bReturning && p->op==TK_INSERT && op==TK_UPDATE))
145101 0 0 && p->tr_tm==tr_tm
145102 0 0 && checkColumnOverlap(p->pColumns, pChanges)
145104 0 0 if( !p->bReturning ){
145106 0 0 }else if( sqlite3IsToplevel(pParse) ){
145147 309 0 const int op = pChanges ? TK_UPDATE : TK_DELETE;
145152 0 309 for(p=pTrigger; p; p=p->pNext){
145153 0 0 if( p->op==op
145154 0 0 && (tr_tm&p->tr_tm)
145155 0 0 && checkColumnOverlap(p->pColumns,pChanges)
145157 0 0 if( p->bReturning ){
145162 0 0 if( pPrg ){
145238 4721 0 if( !IsView(pTab) ){
145247 0 4721 if( pValue ){
145252 0 4721 if( pTab->aCol[i].affinity==SQLITE_AFF_REAL && !IsVirtual(pTab) ){
0 0 if( pTab->aCol[i].affinity==SQLITE_AFF_REAL && !IsVirtual(pTab) ){
145277 0 0 if( iIdxCol>=0 ){
145304 0 0 if( pIdx->pPartIdxWhere==0 ) return 0;
145317 0 0 if( pRet ) pRet->iColumn = iCol+1;
145398 0 0 if( pSrc ){
145404 0 0 if( pPk ){
145405 0 0 for(i=0; inKeyCol; i++){
145414 0 0 eDest = IsVirtual(pTab) ? SRT_Table : SRT_Upfrom;
145415 0 0 }else if( IsView(pTab) ){
145416 0 0 for(i=0; inCol; i++){
145421 0 0 eDest = IsVirtual(pTab) ? SRT_Table : SRT_Upfrom;
145430 0 0 if( pChanges ){
145431 0 0 for(i=0; inExpr; i++){
145440 0 0 if( pSelect ) pSelect->selFlags |= SF_OrderByReqd;
145442 0 0 dest.iSDParm2 = (pPk ? pPk->nKeyCol : -1);
145526 0 310 if( pParse->nErr ){
145534 0 310 if( pTab==0 ) goto update_cleanup;
145566 0 310 nChangeFrom = (pTabList->nSrc>1) ? pChanges->nExpr : 0;
145579 0 310 if( sqlite3ViewGetColumnNames(pParse, pTab) ){
145582 3 307 if( sqlite3IsReadOnly(pParse, pTab, tmask) ){
145593 0 307 pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab);
145595 0 307 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){
145596 0 0 if( pPk==pIdx ){
145601 0 307 if( pUpsert ){
145613 0 307 if( aXRef==0 ) goto update_cleanup;
145618 1522 307 for(i=0; inCol; i++) aXRef[i] = -1;
145629 0 307 if( v==0 ) goto update_cleanup;
145638 1487 307 for(i=0; inExpr; i++){
145642 1487 0 if( nChangeFrom==0 && sqlite3ResolveExprNames(&sNC, pChanges->a[i].pExpr) ){
0 1487 if( nChangeFrom==0 && sqlite3ResolveExprNames(&sNC, pChanges->a[i].pExpr) ){
145645 4459 0 for(j=0; jnCol; j++){
145646 1487 2972 if( pTab->aCol[j].hName==hCol
145647 1487 0 && sqlite3StrICmp(pTab->aCol[j].zCnName, pChanges->a[i].zEName)==0
145649 0 1487 if( j==pTab->iPKey ){
145653 0 1487 }else if( pPk && (pTab->aCol[j].colFlags & COLFLAG_PRIMKEY)!=0 ){
0 0 }else if( pPk && (pTab->aCol[j].colFlags & COLFLAG_PRIMKEY)!=0 ){
145657 0 1487 else if( pTab->aCol[j].colFlags & COLFLAG_GENERATED ){
145670 0 1487 if( j>=pTab->nCol ){
145671 0 0 if( pPk==0 && sqlite3IsRowid(pChanges->a[i].zEName) ){
0 0 if( pPk==0 && sqlite3IsRowid(pChanges->a[i].zEName) ){
145685 1487 0 rc = sqlite3AuthCheck(pParse, SQLITE_UPDATE, pTab->zName,
145688 0 1487 if( rc==SQLITE_DENY ){
145690 0 1487 }else if( rc==SQLITE_IGNORE ){
145709 0 307 if( pTab->tabFlags & TF_HasGenerated ){
145715 0 0 for(i=0; inCol; i++){
145716 0 0 if( aXRef[i]>=0 ) continue;
145717 0 0 if( (pTab->aCol[i].colFlags & COLFLAG_GENERATED)==0 ) continue;
145718 0 0 if( sqlite3ExprReferencesUpdatedColumn(
145726 0 0 }while( bProgress );
145735 0 307 pTabList->a[0].colUsed = IsVirtual(pTab) ? ALLBITS : 0;
145743 0 307 if( onError==OE_Replace ) bReplace = 1;
145744 0 307 for(nAllIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nAllIdx++){
145746 0 0 if( chngKey || hasFK>1 || pIdx==pPk
0 0 if( chngKey || hasFK>1 || pIdx==pPk
0 0 if( chngKey || hasFK>1 || pIdx==pPk
145747 0 0 || indexWhereClauseMightChange(pIdx,aXRef,chngRowid)
145753 0 0 for(i=0; inKeyCol; i++){
145754 0 0 if( indexColumnIsBeingUpdated(pIdx, i, aXRef, chngRowid) ){
145757 0 0 if( onError==OE_Default && pIdx->onError==OE_Replace ){
0 0 if( onError==OE_Default && pIdx->onError==OE_Replace ){
145764 0 0 if( reg==0 ) aToOpen[nAllIdx+1] = 0;
145768 0 307 if( bReplace ){
145774 7 300 if( pParse->nested==0 ) sqlite3VdbeCountChanges(v);
145775 307 0 sqlite3BeginWriteOperation(pParse, pTrigger || hasFK, iDb);
2 305 sqlite3BeginWriteOperation(pParse, pTrigger || hasFK, iDb);
145778 307 0 if( !IsVirtual(pTab) ){
145787 307 0 if( chngPk || pTrigger || hasFK ){
307 0 if( chngPk || pTrigger || hasFK ){
2 305 if( chngPk || pTrigger || hasFK ){
145791 307 0 if( chngKey || pTrigger || hasFK ){
307 0 if( chngKey || pTrigger || hasFK ){
2 305 if( chngKey || pTrigger || hasFK ){
145799 0 307 if( isView ){
145807 307 0 if( nChangeFrom==0 && isView ){
0 307 if( nChangeFrom==0 && isView ){
145819 307 0 if( nChangeFrom==0 && sqlite3ResolveExprNames(&sNC, pWhere) ){
0 307 if( nChangeFrom==0 && sqlite3ResolveExprNames(&sNC, pWhere) ){
145825 0 307 if( IsVirtual(pTab) ){
145837 0 307 if( (db->flags&SQLITE_CountRows)!=0
145838 0 0 && !pParse->pTriggerTab
145839 0 0 && !pParse->nested
145840 0 0 && !pParse->bReturning
145841 0 0 && pUpsert==0
145847 307 0 if( nChangeFrom==0 && HasRowid(pTab) ){
307 0 if( nChangeFrom==0 && HasRowid(pTab) ){
145853 0 0 nPk = pPk ? pPk->nKeyCol : 0;
145858 0 0 if( pUpsert==0 ){
145859 0 0 int nEphCol = nPk + nChangeFrom + (isView ? pTab->nCol : 0);
145861 0 0 if( pPk ) sqlite3VdbeAddOp3(v, OP_Null, 0, iPk, iPk+nPk-1);
145863 0 0 if( pPk ){
145865 0 0 if( pKeyInfo ){
145870 0 0 if( nChangeFrom ){
145875 0 0 if( isView ) iDataCur = iEph;
145881 0 307 if( nChangeFrom ){
145887 0 307 if( pUpsert ){
145906 7 300 if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){
7 0 if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){
5 2 if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){
5 0 if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){
5 0 if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){
145910 0 307 if( pWInfo==0 ) goto update_cleanup;
145924 12 295 if( eOnePass!=ONEPASS_SINGLE ){
145926 5 7 if( eOnePass==ONEPASS_MULTI ){
145928 0 5 if( iCur>=0 && iCur!=iDataCur && aToOpen[iCur-iBaseCur] ){
0 0 if( iCur>=0 && iCur!=iDataCur && aToOpen[iCur-iBaseCur] ){
0 0 if( iCur>=0 && iCur!=iDataCur && aToOpen[iCur-iBaseCur] ){
145936 307 0 if( HasRowid(pTab) ){
145941 7 300 if( eOnePass==ONEPASS_OFF ){
145945 300 0 if( ALWAYS(addrOpen) ) sqlite3VdbeChangeToNoop(v, addrOpen);
145953 0 0 for(i=0; i
145958 0 0 if( eOnePass ){
145959 0 0 if( addrOpen ) sqlite3VdbeChangeToNoop(v, addrOpen);
145970 307 0 if( pUpsert==0 ){
145971 307 0 if( nChangeFrom==0 && eOnePass!=ONEPASS_MULTI ){
302 5 if( nChangeFrom==0 && eOnePass!=ONEPASS_MULTI ){
145975 307 0 if( !isView ){
145979 300 7 if( eOnePass!=ONEPASS_OFF ){
145980 300 0 if( aiCurOnePass[0]>=0 ) aToOpen[aiCurOnePass[0]-iBaseCur] = 0;
145981 0 300 if( aiCurOnePass[1]>=0 ) aToOpen[aiCurOnePass[1]-iBaseCur] = 0;
145984 5 302 if( eOnePass==ONEPASS_MULTI && (nIdx-(aiCurOnePass[1]>=0))>0 ){
0 5 if( eOnePass==ONEPASS_MULTI && (nIdx-(aiCurOnePass[1]>=0))>0 ){
145989 0 307 if( addrOnce ){
145995 300 7 if( eOnePass!=ONEPASS_OFF ){
145996 0 300 if( aiCurOnePass[0]!=iDataCur
145997 0 0 && aiCurOnePass[1]!=iDataCur
146006 5 295 if( eOnePass!=ONEPASS_SINGLE ){
146009 0 300 sqlite3VdbeAddOp2(v, OP_IsNull, pPk ? regKey : regOldRowid, labelBreak);
146012 7 0 }else if( pPk || nChangeFrom ){
0 7 }else if( pPk || nChangeFrom ){
146016 0 0 if( nChangeFrom ){
146017 0 0 if( !isView ){
146018 0 0 if( pPk ){
146019 0 0 for(i=0; i
146052 0 307 if( chngRowid ){
146054 0 0 if( nChangeFrom==0 ){
146064 307 0 if( chngPk || hasFK || pTrigger ){
305 2 if( chngPk || hasFK || pTrigger ){
0 305 if( chngPk || hasFK || pTrigger ){
146065 2 0 u32 oldmask = (hasFK ? sqlite3FkOldmask(pParse, pTab) : 0);
146069 6 2 for(i=0; inCol; i++){
146072 6 0 if( oldmask==0xffffffff
146073 6 0 || (i<32 && (oldmask & MASKBIT32(i))!=0)
4 2 || (i<32 && (oldmask & MASKBIT32(i))!=0)
146074 2 2 || (colFlags & COLFLAG_PRIMKEY)!=0
146082 2 0 if( chngRowid==0 && pPk==0 ){
2 0 if( chngRowid==0 && pPk==0 ){
146103 1522 307 for(i=0, k=regNew; inCol; i++, k++){
146104 2 1520 if( i==pTab->iPKey ){
146106 0 1520 }else if( (pTab->aCol[i].colFlags & COLFLAG_GENERATED)!=0 ){
146107 0 0 if( pTab->aCol[i].colFlags & COLFLAG_VIRTUAL ) k--;
146110 1487 33 if( j>=0 ){
146111 0 1487 if( nChangeFrom ){
146112 0 0 int nOff = (isView ? pTab->nCol : nPk);
146118 0 33 }else if( 0==(tmask&TRIGGER_BEFORE) || i>31 || (newmask & MASKBIT32(i)) ){
0 0 }else if( 0==(tmask&TRIGGER_BEFORE) || i>31 || (newmask & MASKBIT32(i)) ){
0 0 }else if( 0==(tmask&TRIGGER_BEFORE) || i>31 || (newmask & MASKBIT32(i)) ){
146134 0 307 if( pTab->tabFlags & TF_HasGenerated ){
146144 0 307 if( tmask&TRIGGER_BEFORE ){
146149 0 0 if( !isView ){
146156 0 0 if( pPk ){
146173 0 0 for(i=0, k=regNew; inCol; i++, k++){
146174 0 0 if( pTab->aCol[i].colFlags & COLFLAG_GENERATED ){
146175 0 0 if( pTab->aCol[i].colFlags & COLFLAG_VIRTUAL ) k--;
146176 0 0 }else if( aXRef[i]<0 && i!=pTab->iPKey ){
0 0 }else if( aXRef[i]<0 && i!=pTab->iPKey ){
146181 0 0 if( pTab->tabFlags & TF_HasGenerated ){
146190 307 0 if( !isView ){
146200 307 0 if( bReplace || chngKey ){
0 307 if( bReplace || chngKey ){
146201 0 0 if( pPk ){
146210 2 305 if( hasFK ){
146222 0 307 if( bFinishSeek ){
146249 307 0 if( hasFK>1 || chngKey ){
0 307 if( hasFK>1 || chngKey ){
146254 2 305 if( hasFK ){
146259 5 302 sqlite3CompleteInsertion(
146268 2 305 if( hasFK ){
146275 0 307 if( regRowCount ){
146285 12 295 if( eOnePass==ONEPASS_SINGLE ){
146287 5 7 }else if( eOnePass==ONEPASS_MULTI ){
146300 7 300 if( pParse->nested==0 && pParse->pTriggerTab==0 && pUpsert==0 ){
7 0 if( pParse->nested==0 && pParse->pTriggerTab==0 && pUpsert==0 ){
7 0 if( pParse->nested==0 && pParse->pTriggerTab==0 && pUpsert==0 ){
146308 0 307 if( regRowCount ){
146389 0 0 if( pSrc->nSrc>1 ){
146393 0 0 if( HasRowid(pTab) ){
146394 0 0 if( pRowid ){
146405 0 0 if( aXRef[iPk]>=0 ){
146413 0 0 for(i=0; inCol; i++){
146414 0 0 if( aXRef[i]>=0 ){
146434 0 0 if( pWInfo==0 ) return;
146437 0 0 for(i=0; inCol; i++){
146439 0 0 if( aXRef[i]>=0 ){
146446 0 0 if( HasRowid(pTab) ){
146448 0 0 if( pRowid ){
146469 0 0 if( eOnePass ){
146490 0 0 if( eOnePass==ONEPASS_OFF ){
146492 0 0 if( pSrc->nSrc==1 ){
146501 0 0 for(i=0; i
146507 0 0 sqlite3VdbeChangeP5(v, onError==OE_Default ? OE_Abort : onError);
146512 0 0 if( eOnePass==ONEPASS_OFF ){
146554 0 0 }while( p );
146557 0 2697 if( p ) upsertDelete(db, p);
146565 0 0 if( p==0 ) return 0;
146588 0 0 if( pNew==0 ){
146640 0 0 for(; pUpsert && pUpsert->pUpsertTarget;
0 0 for(; pUpsert && pUpsert->pUpsertTarget;
146643 0 0 if( rc ) return rc;
146645 0 0 if( rc ) return rc;
146651 0 0 if( HasRowid(pTab)
146652 0 0 && pTarget->nExpr==1
146653 0 0 && (pTerm = pTarget->a[0].pExpr)->op==TK_COLUMN
146654 0 0 && pTerm->iColumn==XN_ROWID
146674 0 0 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
146676 0 0 if( !IsUniqueIndex(pIdx) ) continue;
146677 0 0 if( pTarget->nExpr!=pIdx->nKeyCol ) continue;
146678 0 0 if( pIdx->pPartIdxWhere ){
146679 0 0 if( pUpsert->pUpsertTargetWhere==0 ) continue;
146680 0 0 if( sqlite3ExprCompare(pParse, pUpsert->pUpsertTargetWhere,
146686 0 0 for(ii=0; ii
146689 0 0 if( pIdx->aiColumn[ii]==XN_EXPR ){
146693 0 0 if( pExpr->op!=TK_COLLATE ){
146702 0 0 for(jj=0; jj
146703 0 0 if( sqlite3ExprCompare(pParse,pTarget->a[jj].pExpr,pExpr,iCursor)<2 ){
146707 0 0 if( jj>=nn ){
146712 0 0 if( ii
146720 0 0 if( pUpsert->pUpsertIdx==0 ){
146722 0 0 if( nClause==0 && pUpsert->pNextUpsert==0 ){
0 0 if( nClause==0 && pUpsert->pNextUpsert==0 ){
146742 0 0 if( NEVER(pUpsert==0) ) return 0;
146744 0 0 if( pNext==0 ) return 1;
146745 0 0 if( pNext->pUpsertTarget==0 ) return 1;
146746 0 0 if( pNext->pUpsertIdx==0 ) return 1;
146757 0 0 while(
146759 0 0 && pUpsert->pUpsertTarget!=0
146760 0 0 && pUpsert->pUpsertIdx!=pIdx
146795 0 0 if( pIdx && iCur!=iDataCur ){
0 0 if( pIdx && iCur!=iDataCur ){
146796 0 0 if( HasRowid(pTab) ){
146807 0 0 for(i=0; i
146828 0 0 for(i=0; inCol; i++){
146829 0 0 if( pTab->aCol[i].affinity==SQLITE_AFF_REAL ){
146879 0 0 if( rc!=SQLITE_OK ) return rc;
146880 0 0 while( SQLITE_ROW==(rc = sqlite3_step(pStmt)) ){
146888 0 0 if( zSubSql
146889 0 0 && (strncmp(zSubSql,"CRE",3)==0 || strncmp(zSubSql,"INS",3)==0)
0 0 && (strncmp(zSubSql,"CRE",3)==0 || strncmp(zSubSql,"INS",3)==0)
146892 0 0 if( rc!=SQLITE_OK ) break;
146896 0 0 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
146897 0 0 if( rc ){
146910 0 0 if( z==0 ) return SQLITE_NOMEM;
146949 0 0 if( v==0 ) goto build_vacuum_end;
146950 0 0 if( pParse->nErr ) goto build_vacuum_end;
146951 0 0 if( pNm ){
146956 0 0 if( iDb<0 ) goto build_vacuum_end;
146967 0 0 if( iDb!=1 ){
146969 0 0 if( pInto && sqlite3ResolveSelfReference(pParse,0,0,pInto,0)==0 ){
0 0 if( pInto && sqlite3ResolveSelfReference(pParse,0,0,pInto,0)==0 ){
147006 0 0 if( !db->autoCommit ){
147010 0 0 if( db->nVdbeActive>1 ){
147015 0 0 if( pOut ){
147016 0 0 if( sqlite3_value_type(pOut)!=SQLITE_TEXT ){
147062 0 0 if( rc!=SQLITE_OK ) goto end_of_vacuum;
147067 0 0 if( pOut ){
147070 0 0 if( id->pMethods!=0 && (sqlite3OsFileSize(id, &sz)!=SQLITE_OK || sz>0) ){
0 0 if( id->pMethods!=0 && (sqlite3OsFileSize(id, &sz)!=SQLITE_OK || sz>0) ){
0 0 if( id->pMethods!=0 && (sqlite3OsFileSize(id, &sz)!=SQLITE_OK || sz>0) ){
147088 0 0 if( rc!=SQLITE_OK ) goto end_of_vacuum;
147089 0 0 rc = sqlite3BtreeBeginTrans(pMain, pOut==0 ? 2 : 0, 0);
147090 0 0 if( rc!=SQLITE_OK ) goto end_of_vacuum;
147093 0 0 if( sqlite3PagerGetJournalMode(sqlite3BtreePager(pMain))
147095 0 0 && pOut==0
147100 0 0 if( sqlite3BtreeSetPageSize(pTemp, sqlite3BtreeGetPageSize(pMain), nRes, 0)
147101 0 0 || (!isMemDb && sqlite3BtreeSetPageSize(pTemp, db->nextPagesize, nRes, 0))
0 0 || (!isMemDb && sqlite3BtreeSetPageSize(pTemp, db->nextPagesize, nRes, 0))
147102 0 0 || NEVER(db->mallocFailed)
147109 0 0 sqlite3BtreeSetAutoVacuum(pTemp, db->nextAutovac>=0 ? db->nextAutovac :
147123 0 0 if( rc!=SQLITE_OK ) goto end_of_vacuum;
147129 0 0 if( rc!=SQLITE_OK ) goto end_of_vacuum;
147145 0 0 if( rc!=SQLITE_OK ) goto end_of_vacuum;
147159 0 0 if( rc ) goto end_of_vacuum;
147189 0 0 for(i=0; i
147194 0 0 if( NEVER(rc!=SQLITE_OK) ) goto end_of_vacuum;
147197 0 0 if( pOut==0 ){
147200 0 0 if( rc!=SQLITE_OK ) goto end_of_vacuum;
147202 0 0 if( rc!=SQLITE_OK ) goto end_of_vacuum;
147204 0 0 if( pOut==0 ){
147211 0 0 if( pOut==0 ){
147235 0 0 if( pDb ){
147300 0 3123 if( pModule==0 ){
147306 0 3123 if( pMod==0 ){
147320 0 3123 if( pDel ){
147321 0 0 if( pDel==pMod ){
147350 0 3123 if( rc!=SQLITE_OK && xDestroy ) xDestroy(pAux);
0 0 if( rc!=SQLITE_OK && xDestroy ) xDestroy(pAux);
147396 0 0 for(pThis=sqliteHashFirst(&db->aModule); pThis; pThis=pNext){
147399 0 0 if( azNames ){
147401 0 0 for(ii=0; azNames[ii]!=0 && strcmp(azNames[ii],pMod->zName)!=0; ii++){}
0 0 for(ii=0; azNames[ii]!=0 && strcmp(azNames[ii],pMod->zName)!=0; ii++){}
147402 0 0 if( azNames[ii]!=0 ) continue;
147416 3103 31 if( pMod->nRefModule==0 ){
147417 1249 1854 if( pMod->xDestroy ){
147446 641 3 for(pVtab=pTab->u.vtab.p; pVtab && pVtab->db!=db; pVtab=pVtab->pNext);
0 641 for(pVtab=pTab->u.vtab.p; pVtab && pVtab->db!=db; pVtab=pVtab->pNext);
147463 31 265 if( pVTab->nRef==0 ){
147466 29 2 if( p ){
147496 2 63 while( pVTable ){
147500 2 0 if( db2==db ){
147530 29 3 for(ppVTab=&p->u.vtab.p; *ppVTab; ppVTab=&(*ppVTab)->pNext){
147531 29 0 if( (*ppVTab)->db==db ){
147567 0 6755 if( p ){
147574 0 0 }while( p );
147594 31 30 if( !db || db->pnBytesFreed==0 ) vtabDisconnectAll(0, p);
31 0 if( !db || db->pnBytesFreed==0 ) vtabDisconnectAll(0, p);
147595 61 0 if( p->u.vtab.azArg ){
147597 353 61 for(i=0; iu.vtab.nArg; i++){
147598 292 61 if( i!=1 ) sqlite3DbFree(db, p->u.vtab.azArg[i]);
147617 0 353 if( pTable->u.vtab.nArg+3>=db->aLimit[SQLITE_LIMIT_COLUMN] ){
147621 0 353 if( azModuleArg==0 ){
147648 0 61 if( pTable==0 ) return;
147671 61 0 if( pTable->u.vtab.azArg ){
147686 170 63 if( pParse->sArg.z && pParse->pNewTable ){
170 0 if( pParse->sArg.z && pParse->pNewTable ){
147702 0 61 if( pTab==0 ) return;
147706 0 61 if( pTab->u.vtab.nArg<1 ) return;
147714 29 32 if( !db->init.busy ){
147724 29 0 if( pEnd ){
147768 0 32 if( pOld ){
147793 170 178 if( pArg->z==0 ){
147828 1 32 for(pCtx=db->pVtabCtx; pCtx; pCtx=pCtx->pPrior){
147829 0 1 if( pCtx->pTab==pTab ){
147838 0 32 if( !zModuleName ){
147843 0 32 if( !pVTable ){
147865 0 32 if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);
147868 1 31 if( SQLITE_OK!=rc ){
147869 0 1 if( zErr==0 ){
147876 31 0 }else if( ALWAYS(pVTable->pVtab) ){
147883 0 31 if( sCtx.bDeclared==0 ){
147899 100 31 for(iCol=0; iColnCol; iCol++){
147904 233 72 for(i=0; i
147905 28 205 if( 0==sqlite3StrNICmp("hidden", &zType[i], 6)
147906 0 28 && (i==0 || zType[i-1]==' ')
0 0 && (i==0 || zType[i-1]==' ')
147907 0 28 && (zType[i+6]=='\0' || zType[i+6]==' ')
0 0 && (zType[i+6]=='\0' || zType[i+6]==' ')
147912 28 72 if( i
147914 0 28 int nDel = 6 + (zType[i+6] ? 1 : 0);
147915 28 28 for(j=i; (j+nDel)<=nType; j++){
147918 28 0 if( zType[i]=='\0' && i>0 ){
0 28 if( zType[i]=='\0' && i>0 ){
147951 182 3 if( sqlite3GetVTable(db, pTab) ){
147959 0 3 if( !pMod ){
147966 0 3 if( rc!=SQLITE_OK ){
147983 71 0 if( (db->nVTrans%ARRAY_INCR)==0 ){
147988 0 71 if( !aVTrans ){
148033 29 0 if( pMod==0 || pMod->pModule->xCreate==0 || pMod->pModule->xDestroy==0 ){
29 0 if( pMod==0 || pMod->pModule->xCreate==0 || pMod->pModule->xDestroy==0 ){
0 29 if( pMod==0 || pMod->pModule->xCreate==0 || pMod->pModule->xDestroy==0 ){
148042 28 1 if( rc==SQLITE_OK && ALWAYS(sqlite3GetVTable(db, pTab)) ){
28 0 if( rc==SQLITE_OK && ALWAYS(sqlite3GetVTable(db, pTab)) ){
148044 28 0 if( rc==SQLITE_OK ){
148071 31 0 if( !pCtx || pCtx->bDeclared ){
0 31 if( !pCtx || pCtx->bDeclared ){
148089 31 0 if( SQLITE_OK==sqlite3RunParser(&sParse, zCreateTable)
148090 31 0 && ALWAYS(sParse.pNewTable!=0)
148091 31 0 && ALWAYS(!db->mallocFailed)
148092 31 0 && IsOrdinaryTable(sParse.pNewTable)
148095 31 0 if( !pTab->aCol ){
148106 0 31 if( !HasRowid(pNew)
148107 0 0 && pCtx->pVTable->pMod->pModule->xUpdate!=0
148108 0 0 && sqlite3PrimaryKeyIndex(pNew)->nKeyCol!=1
148115 0 31 if( pIdx ){
148124 0 0 sqlite3ErrorWithMsg(db, SQLITE_ERROR,
148131 31 0 if( sParse.pVdbe ){
148156 2 0 if( ALWAYS(pTab!=0)
148157 2 0 && ALWAYS(IsVirtual(pTab))
148158 2 0 && ALWAYS(pTab->u.vtab.p!=0)
148162 2 2 for(p=pTab->u.vtab.p; p; p=p->pNext){
148164 0 2 if( p->pVtab->nRef>0 ){
148170 0 2 if( xDestroy==0 ) xDestroy = p->pMod->pModule->xDisconnect;
148175 2 0 if( rc==SQLITE_OK ){
148197 71 2995 if( db->aVTrans ){
148200 71 71 for(i=0; inVTrans; i++){
148203 71 0 if( p ){
148206 70 1 if( x ) x(p);
148229 2449 0 for(i=0; rc==SQLITE_OK && inVTrans; i++){
71 2378 for(i=0; rc==SQLITE_OK && inVTrans; i++){
148232 71 0 if( pVtab && (x = pVtab->pModule->xSync)!=0 ){
70 1 if( pVtab && (x = pVtab->pModule->xSync)!=0 ){
148276 5 74 if( sqlite3VtabInSync(db) ){
0 5 if( sqlite3VtabInSync(db) ){
148279 31 48 if( !pVTab ){
148284 48 0 if( pModule->xBegin ){
148288 5 43 for(i=0; inVTrans; i++){
148289 5 0 if( db->aVTrans[i]==pVTab ){
148297 43 0 if( rc==SQLITE_OK ){
148299 43 0 if( rc==SQLITE_OK ){
148302 0 43 if( iSvpt && pModule->xSavepoint ){
0 0 if( iSvpt && pModule->xSavepoint ){
148332 2 133 if( db->aVTrans ){
148334 4 0 for(i=0; rc==SQLITE_OK && inVTrans; i++){
2 2 for(i=0; rc==SQLITE_OK && inVTrans; i++){
148337 2 0 if( pVTab->pVtab && pMod->iVersion>=2 ){
2 0 if( pVTab->pVtab && pMod->iVersion>=2 ){
148352 2 0 if( xMethod && pVTab->iSavepoint>iSavepoint ){
0 2 if( xMethod && pVTab->iSavepoint>iSavepoint ){
148390 0 677 if( NEVER(pExpr==0) ) return pDef;
148391 511 166 if( pExpr->op!=TK_COLUMN ) return pDef;
148394 0 166 if( pTab==0 ) return pDef;
148395 137 29 if( !IsVirtual(pTab) ) return pDef;
148400 0 29 if( pMod->xFindFunction==0 ) return pDef;
148419 4 25 if( rc==0 ){
148427 0 25 if( pNew==0 ){
148446 0 22 Parse *pToplevel = sqlite3ParseToplevel(pParse);
148451 0 22 for(i=0; inVtabLock; i++){
148452 0 0 if( pTab==pToplevel->apVtabLock[i] ) return;
148456 22 0 if( apVtabLock ){
148485 0 0 if( pMod->pEpoTab ) return 1;
148486 0 0 if( pModule->xCreate!=0 && pModule->xCreate!=pModule->xConnect ) return 0;
0 0 if( pModule->xCreate!=0 && pModule->xCreate!=pModule->xConnect ) return 0;
148488 0 0 if( pTab==0 ) return 0;
148490 0 0 if( pTab->zName==0 ){
148505 0 0 if( rc ){
148519 0 3103 if( pTab!=0 ){
148564 0 10 if( !p ){
148571 10 0 p->pVTable->bConstraint = (u8)va_arg(ap, int);
148590 0 10 if( rc!=SQLITE_OK ) sqlite3Error(db, rc);
149284 0 0 if( i==XN_EXPR ) return "";
149285 0 0 if( i==XN_ROWID ) return "rowid";
149308 0 0 if( bAnd ) sqlite3_str_append(pStr, " AND ", 5);
149310 0 0 if( nTerm>1 ) sqlite3_str_append(pStr, "(", 1);
149311 0 0 for(i=0; i
149312 0 0 if( i ) sqlite3_str_append(pStr, ",", 1);
149315 0 0 if( nTerm>1 ) sqlite3_str_append(pStr, ")", 1);
149319 0 0 if( nTerm>1 ) sqlite3_str_append(pStr, "(", 1);
149320 0 0 for(i=0; i
149321 0 0 if( i ) sqlite3_str_append(pStr, ",", 1);
149324 0 0 if( nTerm>1 ) sqlite3_str_append(pStr, ")", 1);
149347 0 0 if( nEq==0 && (pLoop->wsFlags&(WHERE_BTM_LIMIT|WHERE_TOP_LIMIT))==0 ) return;
0 0 if( nEq==0 && (pLoop->wsFlags&(WHERE_BTM_LIMIT|WHERE_TOP_LIMIT))==0 ) return;
149349 0 0 for(i=0; i
149351 0 0 if( i ) sqlite3_str_append(pStr, " AND ", 5);
149352 0 0 sqlite3_str_appendf(pStr, i>=nSkip ? "%s=?" : "ANY(%s)", z);
149356 0 0 if( pLoop->wsFlags&WHERE_BTM_LIMIT ){
149360 0 0 if( pLoop->wsFlags&WHERE_TOP_LIMIT ){
149383 0 1767 if( sqlite3ParseToplevel(pParse)->explain==2 )
0 1767 if( sqlite3ParseToplevel(pParse)->explain==2 )
149398 0 0 if( (flags&WHERE_MULTI_OR) || (wctrlFlags&WHERE_OR_SUBCLAUSE) ) return 0;
0 0 if( (flags&WHERE_MULTI_OR) || (wctrlFlags&WHERE_OR_SUBCLAUSE) ) return 0;
149401 0 0 || ((flags&WHERE_VIRTUALTABLE)==0 && (pLoop->u.btree.nEq>0))
0 0 || ((flags&WHERE_VIRTUALTABLE)==0 && (pLoop->u.btree.nEq>0))
149402 0 0 || (wctrlFlags&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX));
0 0 || (wctrlFlags&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX));
149406 0 0 sqlite3_str_appendf(&str, "%s %S", isSearch ? "SEARCH" : "SCAN", pItem);
149407 0 0 if( (flags & (WHERE_IPK|WHERE_VIRTUALTABLE))==0 ){
149414 0 0 if( !HasRowid(pItem->pTab) && IsPrimaryKeyIndex(pIdx) ){
0 0 if( !HasRowid(pItem->pTab) && IsPrimaryKeyIndex(pIdx) ){
149415 0 0 if( isSearch ){
149418 0 0 }else if( flags & WHERE_PARTIALIDX ){
149420 0 0 }else if( flags & WHERE_AUTO_INDEX ){
149422 0 0 }else if( flags & WHERE_IDX_ONLY ){
149427 0 0 if( zFmt ){
149432 0 0 }else if( (flags & WHERE_IPK)!=0 && (flags & WHERE_CONSTRAINT)!=0 ){
0 0 }else if( (flags & WHERE_IPK)!=0 && (flags & WHERE_CONSTRAINT)!=0 ){
149442 0 0 if( flags&(WHERE_COLUMN_EQ|WHERE_COLUMN_IN) ){
149444 0 0 }else if( (flags&WHERE_BOTH_LIMIT)==WHERE_BOTH_LIMIT ){
149447 0 0 }else if( flags&WHERE_BTM_LIMIT ){
149456 0 0 else if( (flags & WHERE_VIRTUALTABLE)!=0 ){
149461 0 0 if( pItem->fg.jointype & JT_LEFT ){
149509 0 0 if( pLoop->wsFlags & WHERE_IPK ){
149511 0 0 if( pTab->iPKey>=0 ){
149517 0 0 for(i=pLoop->nSkip; iu.btree.nEq; i++){
149519 0 0 if( i>pLoop->nSkip ) sqlite3_str_append(&str, " AND ", 5);
149606 877 3 while( (pTerm->wtFlags & TERM_CODED)==0
149607 0 877 && (pLevel->iLeftJoin==0 || ExprHasProperty(pTerm->pExpr, EP_OuterON))
0 0 && (pLevel->iLeftJoin==0 || ExprHasProperty(pTerm->pExpr, EP_OuterON))
149608 877 0 && (pLevel->notReady & pTerm->prereqAll)==0
149610 105 772 if( nLoop && (pTerm->wtFlags & TERM_LIKE)!=0 ){
0 105 if( nLoop && (pTerm->wtFlags & TERM_LIKE)!=0 ){
149621 751 126 if( pTerm->iParent<0 ) break;
149625 21 105 if( pTerm->nChild!=0 ) break;
149643 0 62 if( zAff==0 ){
149653 67 6 while( n>0 && zAff[0]<=SQLITE_AFF_BLOB ){
11 56 while( n>0 && zAff[0]<=SQLITE_AFF_BLOB ){
149658 2 62 while( n>1 && zAff[n-1]<=SQLITE_AFF_BLOB ){
2 0 while( n>1 && zAff[n-1]<=SQLITE_AFF_BLOB ){
149663 56 6 if( n>0 ){
149684 38 38 for(i=0; i
149686 38 0 if( sqlite3CompareAffinity(p, zAff[i])==SQLITE_AFF_BLOB
149687 2 36 || sqlite3ExprNeedsNoAffinityChange(p, zAff[i])
149733 0 0 if( db->mallocFailed==0 ){
149746 0 0 for(i=iEq; inLTerm; i++){
149747 0 0 if( pLoop->aLTerm[i]->pExpr==pX ){
149751 0 0 if( pOrigRhs->a[iField].pExpr==0 ) continue; /* Duplicate PK column */
149763 0 0 if( pLhs && pLhs->nExpr==1 ){
0 0 if( pLhs && pLhs->nExpr==1 ){
149773 0 0 if( pSelect->pOrderBy ){
149782 0 0 for(i=0; inExpr; i++){
149827 5 587 if( pX->op==TK_EQ || pX->op==TK_IS ){
0 5 if( pX->op==TK_EQ || pX->op==TK_IS ){
149829 2 3 }else if( pX->op==TK_ISNULL ){
149842 0 3 if( (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0
149843 0 0 && pLoop->u.btree.pIndex!=0
149844 0 0 && pLoop->u.btree.pIndex->aSortOrder[iEq]
149853 0 3 for(i=0; i
149854 0 0 if( pLoop->aLTerm[i] && pLoop->aLTerm[i]->pExpr==pX ){
0 0 if( pLoop->aLTerm[i] && pLoop->aLTerm[i]->pExpr==pX ){
149859 3 3 for(i=iEq;inLTerm; i++){
149861 3 0 if( pLoop->aLTerm[i]->pExpr==pX ) nEq++;
149865 3 0 if( !ExprUseXSelect(pX) || pX->x.pSelect->pEList->nExpr==1 ){
3 0 if( !ExprUseXSelect(pX) || pX->x.pSelect->pEList->nExpr==1 ){
149869 0 0 if( pExpr->iTable==0 || !ExprHasProperty(pExpr, EP_Subrtn) ){
0 0 if( pExpr->iTable==0 || !ExprHasProperty(pExpr, EP_Subrtn) ){
149872 0 0 if( !db->mallocFailed ){
149886 0 3 if( eType==IN_INDEX_INDEX_DESC ){
149890 0 3 sqlite3VdbeAddOp2(v, bRev ? OP_Last : OP_Rewind, iTab, 0);
149896 3 0 if( pLevel->u.in.nIn==0 ){
149899 0 3 if( iEq>0 && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)==0 ){
0 0 if( iEq>0 && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)==0 ){
149910 3 0 if( pIn ){
149913 3 3 for(i=iEq;inLTerm; i++){
149914 3 0 if( pLoop->aLTerm[i]->pExpr==pX ){
149916 0 3 if( eType==IN_INDEX_ROWID ){
149919 0 3 int iCol = aiMap ? aiMap[iMap++] : 0;
149923 3 0 if( i==iEq ){
149925 0 3 pIn->eEndLoopOp = bRev ? OP_Prev : OP_Next;
149926 0 3 if( iEq>0 ){
149941 0 3 if( iEq>0
149942 0 0 && (pLoop->wsFlags & (WHERE_IN_SEEKSCAN|WHERE_VIRTUALTABLE))==0
149962 0 592 if( (pLevel->pWLoop->wsFlags & WHERE_TRANSCONS)==0
149963 0 0 || (pTerm->eOperator & WO_EQUIV)==0
150051 0 44 if( nSkip ){
150054 0 0 sqlite3VdbeAddOp1(v, (bRev?OP_Last:OP_Rewind), iIdxCur);
150060 0 0 pLevel->addrSkip = sqlite3VdbeAddOp4Int(v, (bRev?OP_SeekLT:OP_SeekGT),
150065 0 0 for(j=0; j
150075 31 44 for(j=nSkip; j
150084 0 31 if( r1!=regBase+j ){
150085 0 0 if( nReg==1 ){
150093 31 44 for(j=nSkip; j
150095 0 31 if( pTerm->eOperator & WO_IN ){
150096 0 0 if( pTerm->pExpr->flags & EP_xIsSelect ){
150101 0 0 if( zAff ) zAff[j] = SQLITE_AFF_BLOB;
150103 29 2 }else if( (pTerm->eOperator & WO_ISNULL)==0 ){
150105 29 0 if( (pTerm->wtFlags & TERM_IS)==0 && sqlite3ExprCanBeNull(pRight) ){
23 6 if( (pTerm->wtFlags & TERM_IS)==0 && sqlite3ExprCanBeNull(pRight) ){
150109 29 0 if( pParse->nErr==0 ){
150111 5 24 if( sqlite3CompareAffinity(pRight, zAff[j])==SQLITE_AFF_BLOB ){
150114 11 18 if( sqlite3ExprNeedsNoAffinityChange(pRight, zAff[j]) ){
150147 0 38 if( pTerm->wtFlags & TERM_LIKEOPT ){
150416 4 31 if( (pWInfo->wctrlFlags & (WHERE_OR_SUBCLAUSE|WHERE_RIGHT_JOIN))
150417 0 4 && DbMaskAllZero(sqlite3ParseToplevel(pParse)->writeMask)
4 0 && DbMaskAllZero(sqlite3ParseToplevel(pParse)->writeMask)
150422 4 0 if( ai ){
150424 4 4 for(i=0; inColumn-1; i++){
150430 4 0 if( x1>=0 ) ai[x2+1] = i+1;
150448 172 6 if( p && sqlite3ExprIsVector(p) ){
0 172 if( p && sqlite3ExprIsVector(p) ){
150450 0 0 if( ExprUseXSelect(p) ){
150464 0 0 for(i=0; i
150494 0 0 if( pNew==0 ) return;
150509 0 0 if( sqlite3ExprCompare(0, pExpr, pX->pIdxExpr, pX->iTabCur)==0 ){
150530 0 0 if( pExpr->op==TK_COLUMN ){
150532 0 0 if( pExpr->iTable==pX->iTabCur && pExpr->iColumn==pX->iTabCol ){
0 0 if( pExpr->iTable==pX->iTabCur && pExpr->iColumn==pX->iTabCol ){
150566 40 0 if( aColExpr==0 && !pIdx->bHasVCol ){
40 0 if( aColExpr==0 && !pIdx->bHasVCol ){
150578 0 0 for(iIdxCol=0; iIdxColnColumn; iIdxCol++){
150580 0 0 if( iRef==XN_EXPR ){
150583 0 0 if( sqlite3ExprIsConstant(x.pIdxExpr) ) continue;
150586 0 0 }else if( iRef>=0
150587 0 0 && (pTab->aCol[iRef].colFlags & COLFLAG_VIRTUAL)!=0
150588 0 0 && ((pTab->aCol[iRef].colFlags & COLFLAG_HASCOLL)==0
150589 0 0 || sqlite3StrICmp(sqlite3ColumnColl(&pTab->aCol[iRef]),
150625 0 0 while( pTruth->op==TK_AND ){
150629 0 0 for(i=0, pTerm=pWC->a; inTerm; i++, pTerm++){
150631 0 0 if( pTerm->wtFlags & TERM_CODED ) continue;
150633 0 0 if( sqlite3ExprCompare(0, pExpr, pTruth, iTabCur)==0 ){
150661 0 1 while( ++iLevel < pWInfo->nLevel ){
150664 0 0 if( pLevel->regFilter==0 ) continue;
150665 0 0 if( pLevel->pWLoop->nSkip ) continue;
150668 0 0 if( NEVER(pLoop->prereq & notReady) ) continue;
150671 0 0 if( pLoop->wsFlags & WHERE_IPK ){
150774 11 1751 if( pLevel->iFrom>0 && (pTabItem[0].fg.jointype & JT_LEFT)!=0 ){
3 8 if( pLevel->iFrom>0 && (pTabItem[0].fg.jointype & JT_LEFT)!=0 ){
150782 11 1759 for(j=iLevel; j>0; j--){
150783 3 8 if( pWInfo->a[j].iLeftJoin ) break;
150784 0 8 if( pWInfo->a[j].pRJ ) break;
150789 22 1740 if( pTabItem->fg.viaCoroutine ){
150799 148 1592 if( (pLoop->wsFlags & WHERE_VIRTUALTABLE)!=0 ){
150809 143 148 for(j=0; j
150812 0 143 if( NEVER(pTerm==0) ) continue;
150813 3 140 if( pTerm->eOperator & WO_IN ){
150814 3 0 if( SMASKBIT32(j) & pLoop->u.vtab.mHandleIn ){
0 3 if( SMASKBIT32(j) & pLoop->u.vtab.mHandleIn ){
150826 0 140 if( pTerm->eMatchOp==SQLITE_INDEX_CONSTRAINT_OFFSET
150827 0 0 && pLoop->u.vtab.bOmitOffset
150839 82 66 sqlite3VdbeAddOp4(v, OP_VFilter, iCur, addrNotFound, iReg,
150846 0 148 if( db->mallocFailed ) pLoop->u.vtab.idxStr = 0;
150848 0 148 pLevel->op = pWInfo->eOnePass ? OP_Noop : OP_VNext;
150852 143 148 for(j=0; j
150854 143 0 if( j<16 && (pLoop->u.vtab.omitMask>>j)&1 ){
143 0 if( j<16 && (pLoop->u.vtab.omitMask>>j)&1 ){
150858 0 0 if( (pTerm->eOperator & WO_IN)!=0
150859 0 0 && (SMASKBIT32(j) & pLoop->u.vtab.mHandleIn)==0
0 0 && (SMASKBIT32(j) & pLoop->u.vtab.mHandleIn)==0
150860 0 0 && !db->mallocFailed
150872 0 0 for(iIn=0; ALWAYS(iInu.in.nIn); iIn++){
150874 0 0 if( (pOp->opcode==OP_Column && pOp->p3==iReg+j+2)
0 0 if( (pOp->opcode==OP_Column && pOp->p3==iReg+j+2)
150875 0 0 || (pOp->opcode==OP_Rowid && pOp->p2==iReg+j+2)
0 0 || (pOp->opcode==OP_Rowid && pOp->p2==iReg+j+2)
150887 0 0 if( !db->mallocFailed ){
150891 0 0 if( iFld>0 ){
150900 0 0 if( pRight ){
150922 1546 46 if( (pLoop->wsFlags & WHERE_IPK)!=0
150923 558 988 && (pLoop->wsFlags & (WHERE_COLUMN_IN|WHERE_COLUMN_EQ))!=0
150937 295 263 if( iRowidReg!=iReleaseReg ) sqlite3ReleaseTempReg(pParse, iReleaseReg);
150939 0 558 if( pLevel->regFilter ){
150948 988 46 }else if( (pLoop->wsFlags & WHERE_IPK)!=0
150949 0 988 && (pLoop->wsFlags & WHERE_COLUMN_RANGE)!=0
150960 0 0 if( pLoop->wsFlags & WHERE_BTM_LIMIT ) pStart = pLoop->aLTerm[j++];
150961 0 0 if( pLoop->wsFlags & WHERE_TOP_LIMIT ) pEnd = pLoop->aLTerm[j++];
150963 0 0 if( bRev ){
150969 0 0 if( pStart ){
150992 0 0 if( sqlite3ExprIsVector(pX->pRight) ){
151017 0 0 sqlite3VdbeAddOp2(v, bRev ? OP_Last : OP_Rewind, iCur, addrHalt);
151021 0 0 if( pEnd ){
151030 0 0 if( 0==sqlite3ExprIsVector(pX->pRight)
151031 0 0 && (pX->op==TK_LT || pX->op==TK_GT)
0 0 && (pX->op==TK_LT || pX->op==TK_GT)
151033 0 0 testOp = bRev ? OP_Le : OP_Ge;
151035 0 0 testOp = bRev ? OP_Lt : OP_Gt;
151037 0 0 if( 0==sqlite3ExprIsVector(pX->pRight) ){
151042 0 0 pLevel->op = bRev ? OP_Prev : OP_Next;
151046 0 0 if( testOp!=OP_Noop ){
151056 44 990 }else if( pLoop->wsFlags & WHERE_INDEXED ){
151133 20 24 if( pLoop->wsFlags & WHERE_BTM_LIMIT ){
151140 18 26 if( pLoop->wsFlags & WHERE_TOP_LIMIT ){
151144 0 18 if( (pRangeEnd->wtFlags & TERM_LIKEOPT)!=0 ){
151160 0 18 if( pRangeStart==0 ){
151162 0 0 if( (j>=0 && pIdx->pTable->aCol[j].notNull==0) || j==XN_EXPR ){
0 0 if( (j>=0 && pIdx->pTable->aCol[j].notNull==0) || j==XN_EXPR ){
0 0 if( (j>=0 && pIdx->pTable->aCol[j].notNull==0) || j==XN_EXPR ){
151176 24 20 if( (pLoop->wsFlags & (WHERE_TOP_LIMIT|WHERE_BTM_LIMIT))==0
151177 0 24 && (pLoop->wsFlags & WHERE_BIGNULL_SORT)!=0
151185 0 0 if( pLevel->iLeftJoin ){
151195 44 0 if( (nEqnColumn && bRev==(pIdx->aSortOrder[nEq]==SQLITE_SO_ASC)) ){
25 19 if( (nEqnColumn && bRev==(pIdx->aSortOrder[nEq]==SQLITE_SO_ASC)) ){
151201 1 43 if( iLevel>0 && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)!=0 ){
0 1 if( iLevel>0 && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)!=0 ){
151214 44 0 if( zStartAff && nTop ){
18 26 if( zStartAff && nTop ){
151217 0 44 addrNxt = (regBignull ? pLevel->addrBignull : pLevel->addrNxt);
151223 20 24 startEq = !pRangeStart || pRangeStart->eOperator & (WO_LE|WO_GE);
17 3 startEq = !pRangeStart || pRangeStart->eOperator & (WO_LE|WO_GE);
151224 18 26 endEq = !pRangeEnd || pRangeEnd->eOperator & (WO_LE|WO_GE);
17 1 endEq = !pRangeEnd || pRangeEnd->eOperator & (WO_LE|WO_GE);
151225 24 20 start_constraints = pRangeStart || nEq>0;
24 0 start_constraints = pRangeStart || nEq>0;
151229 20 24 if( pRangeStart ){
151233 19 1 if( (pRangeStart->wtFlags & TERM_VNULL)==0
151234 17 2 && sqlite3ExprCanBeNull(pRight)
151239 20 0 if( zStartAff ){
151244 20 0 if( sqlite3ExprIsVector(pRight)==0 ){
151250 0 24 }else if( bSeekPastNull ){
151255 0 24 }else if( regBignull ){
151261 0 44 if( pLoop->nSkip>0 && nConstraint==pLoop->nSkip ){
0 0 if( pLoop->nSkip>0 && nConstraint==pLoop->nSkip ){
151266 0 44 if( regBignull ){
151270 1 43 if( pLevel->regFilter ){
151279 0 44 if( (pLoop->wsFlags & WHERE_IN_SEEKSCAN)!=0 && op==OP_SeekGE ){
0 0 if( (pLoop->wsFlags & WHERE_IN_SEEKSCAN)!=0 && op==OP_SeekGE ){
151303 0 44 if( regBignull ){
151308 0 0 op = aStartOp[(nConstraint>1)*4 + 2 + bRev];
151325 18 26 if( pRangeEnd ){
151327 0 18 if( addrSeekScan ){
151339 18 0 if( (pRangeEnd->wtFlags & TERM_VNULL)==0
151340 18 0 && sqlite3ExprCanBeNull(pRight)
151345 18 0 if( zEndAff ){
151354 18 0 if( sqlite3ExprIsVector(pRight)==0 ){
151359 0 26 }else if( bStopAtNull ){
151360 0 0 if( regBignull==0 ){
151370 44 0 if( pLevel->p2==0 ) pLevel->p2 = sqlite3VdbeCurrentAddr(v);
151373 44 0 if( nConstraint ){
151374 0 44 if( regBignull ){
151386 0 44 if( addrSeekScan ) sqlite3VdbeJumpHere(v, addrSeekScan);
151388 0 44 if( regBignull ){
151406 0 44 if( (pLoop->wsFlags & WHERE_IN_EARLYOUT)!=0 ){
151412 13 31 && (pWInfo->wctrlFlags & (WHERE_OR_SUBCLAUSE|WHERE_RIGHT_JOIN))==0;
9 4 && (pWInfo->wctrlFlags & (WHERE_OR_SUBCLAUSE|WHERE_RIGHT_JOIN))==0;
151413 35 9 if( omitTable ){
151415 35 0 }else if( HasRowid(pIdx->pTable) ){
151417 0 0 }else if( iCur!=iIdxCur ){
151420 0 0 for(j=0; jnKeyCol; j++){
151428 44 0 if( pLevel->iLeftJoin==0 ){
151446 40 4 if( (pWInfo->wctrlFlags & (WHERE_OR_SUBCLAUSE|WHERE_RIGHT_JOIN))==0 ){
151457 0 44 if( pIdx->pPartIdxWhere ){
151469 6 38 if( pLoop->wsFlags & WHERE_ONEROW ){
151471 25 13 }else if( bRev ){
151478 0 44 if( (pLoop->wsFlags & WHERE_CONSTRAINT)==0 ){
151483 9 35 if( omitTable ) pIdx = 0;
151487 2 988 if( pLoop->wsFlags & WHERE_MULTI_OR ){
151558 0 2 if( pWInfo->nLevel>1 ){
151564 0 0 if( pOrTab==0 ) return notReady;
151569 0 0 for(k=1; k<=nNotReady; k++){
151588 2 0 if( (pWInfo->wctrlFlags & WHERE_DUPLICATES_OK)==0 ){
151589 2 0 if( HasRowid(pTab) ){
151630 1 1 if( pWC->nTerm>1 ){
151632 3 1 for(iTerm=0; iTermnTerm; iTerm++){
151634 1 2 if( &pWC->a[iTerm] == pTerm ) continue;
151638 1 1 if( (pWC->a[iTerm].wtFlags & (TERM_VIRTUAL|TERM_CODED|TERM_SLICE))!=0 ){
151641 0 1 if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue;
151642 0 1 if( ExprHasProperty(pExpr, EP_Subquery) ) continue; /* tag-20220303a */
151646 1 0 if( pAndExpr ){
151661 6 2 for(ii=0; iinTerm; ii++){
151663 5 1 if( pOrTerm->leftCursor==iCur || (pOrTerm->eOperator & WO_AND)!=0 ){
4 1 if( pOrTerm->leftCursor==iCur || (pOrTerm->eOperator & WO_AND)!=0 ){
151672 0 5 if( db->mallocFailed ){
151676 2 3 if( pAndExpr ){
151686 5 0 if( pSubWInfo ){
151698 5 0 if( (pWInfo->wctrlFlags & WHERE_DUPLICATES_OK)==0 ){
151699 3 2 int iSet = ((ii==pOrWc->nTerm-1)?-1:ii);
151700 5 0 if( HasRowid(pTab) ){
151713 0 0 for(iPk=0; iPk
151729 0 0 if( iSet ){
151733 0 0 if( iSet>=0 ){
151737 0 0 if( iSet ) sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT);
151750 5 0 if( jmp1 ) sqlite3VdbeJumpHere(v, jmp1);
151757 0 5 if( pSubWInfo->untestedTerms ) untestedTerms = 1;
151773 4 1 if( (pSubLoop->wsFlags & WHERE_INDEXED)!=0
151774 3 1 && (ii==0 || pSubLoop->u.btree.pIndex==pCov)
1 2 && (ii==0 || pSubLoop->u.btree.pIndex==pCov)
151775 0 2 && (HasRowid(pTab) || !IsPrimaryKeyIndex(pSubLoop->u.btree.pIndex))
0 0 && (HasRowid(pTab) || !IsPrimaryKeyIndex(pSubLoop->u.btree.pIndex))
151782 5 0 if( sqlite3WhereUsesDeferredSeek(pSubWInfo) ){
151798 0 2 if( pCov ) pLevel->iIdxCur = iCovCur;
151799 1 1 if( pAndExpr ){
151815 0 2 if( pWInfo->nLevel>1 ){ sqlite3StackFree(db, pOrTab); }
151816 2 0 if( !untestedTerms ) disableTerm(pLevel, pTerm);
151827 0 988 if( pTabItem->fg.isRecursive ){
151860 35 1727 iLoop = (pIdx ? 1 : 2);
151863 1966 1764 for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){
151868 1076 890 if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;
151869 14 876 if( (pTerm->prereqAll & pLevel->notReady)!=0 ){
151877 5 871 if( pTabItem->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT) ){
151878 2 3 if( !ExprHasProperty(pE,EP_OuterON|EP_InnerON) ){
151882 3 0 }else if( (pTabItem->fg.jointype & JT_LEFT)==JT_LEFT
151883 0 3 && !ExprHasProperty(pE,EP_OuterON) ){
151887 0 3 if( m & pLevel->notReady ){
151893 0 874 if( iLoop==1 && !sqlite3ExprCoveredByIndex(pE, pLevel->iTabCur, pIdx) ){
0 0 if( iLoop==1 && !sqlite3ExprCoveredByIndex(pE, pLevel->iTabCur, pIdx) ){
151897 872 2 if( iLoop<3 && (pTerm->wtFlags & TERM_VARSELECT) ){
2 870 if( iLoop<3 && (pTerm->wtFlags & TERM_VARSELECT) ){
151898 2 0 if( iNext==0 ) iNext = 3;
151902 0 872 if( (pTerm->wtFlags & TERM_LIKECOND)!=0 ){
151912 0 0 if( x>0 ){
151913 0 0 skipLikeAddr = sqlite3VdbeAddOp1(v, (x&1)?OP_IfNot:OP_If,(int)(x>>1));
151930 0 872 if( skipLikeAddr ) sqlite3VdbeJumpHere(v, skipLikeAddr);
151934 2 1762 }while( iLoop>0 );
151944 1660 1762 for(pTerm=pWC->a, j=pWC->nBase; j>0; j--, pTerm++){
151947 1644 16 if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;
151948 3 13 if( (pTerm->eOperator & (WO_EQ|WO_IS))==0 ) continue;
151949 6 7 if( (pTerm->eOperator & WO_EQUIV)==0 ) continue;
151950 2 5 if( pTerm->leftCursor!=iCur ) continue;
151951 0 5 if( pTabItem->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT) ) continue;
151964 5 0 if( pAlt==0 ) continue;
151965 0 0 if( pAlt->wtFlags & (TERM_CODED) ) continue;
151966 0 0 if( (pAlt->eOperator & WO_IN)
151967 0 0 && ExprUseXSelect(pAlt->pExpr)
151968 0 0 && (pAlt->pExpr->x.pSelect->pEList->nExpr>1)
151985 0 1762 if( pLevel->pRJ ){
151998 0 0 if( HasRowid(pTab) ){
152007 0 0 for(iPk=0; iPk
152026 3 1759 if( pLevel->iLeftJoin ){
152030 3 0 if( pLevel->pRJ==0 ){
152035 0 1759 if( pLevel->pRJ ){
152054 6 3 for(pTerm=pWC->a, j=0; jnBase; j++, pTerm++){
152057 4 2 if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;
152058 0 2 if( (pTerm->prereqAll & pLevel->notReady)!=0 ){
152062 0 2 if( pTabItem->fg.jointype & JT_LTORJ ) continue;
152107 0 0 for(k=0; k
152112 0 0 if( iIdxCur ){
152116 0 0 if( (pTabItem->fg.jointype & JT_LTORJ)==0 ){
152118 0 0 for(k=0; knTerm; k++){
152120 0 0 if( (pTerm->wtFlags & (TERM_VIRTUAL|TERM_SLICE))!=0
152121 0 0 && pTerm->eOperator!=WO_ROWVAL
152125 0 0 if( pTerm->prereqAll & ~mAll ) continue;
152126 0 0 if( ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) ) continue;
152139 0 0 if( pSubWInfo ){
152146 0 0 if( HasRowid(pTab) ){
152154 0 0 for(iPk=0; iPk
152238 0 2111 if( pWC->nTerm>=pWC->nSlot ){
152242 0 0 if( pWC->a==0 ){
152243 0 0 if( wtFlags & TERM_DYNAMIC ){
152253 1719 392 if( (wtFlags & TERM_VIRTUAL)==0 ) pWC->nBase = pWC->nTerm;
152254 2111 0 if( p && ExprHasProperty(p, EP_Unlikely) ){
0 2111 if( p && ExprHasProperty(p, EP_Unlikely) ){
152278 2000 19 return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;
1663 337 return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;
226 1437 return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;
533 30 return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;
2 531 return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;
152286 19 0 if( pExpr->pLeft->op==TK_VECTOR
152287 19 0 || pExpr->pRight->op==TK_VECTOR
152288 0 19 || sqlite3BinaryCompareCollSeq(pParse, pExpr->pLeft, pExpr->pRight) !=
152294 8 11 if( pExpr->op>=TK_GT ){
152311 19 1349 if( op==TK_IN ){
152313 22 1327 }else if( op==TK_ISNULL ){
152315 2 1325 }else if( op==TK_IS ){
152364 99 119 if( !sqlite3IsLikeFunction(db, pExpr, pnoCase, (char*)wc) ){
152376 0 119 if( op==TK_VARIABLE && (db->flags & SQLITE_EnableQPSG)==0 ){
0 0 if( op==TK_VARIABLE && (db->flags & SQLITE_EnableQPSG)==0 ){
152380 0 0 if( pVal && sqlite3_value_type(pVal)==SQLITE_TEXT ){
0 0 if( pVal && sqlite3_value_type(pVal)==SQLITE_TEXT ){
152385 119 0 }else if( op==TK_STRING ){
152389 119 0 if( z ){
152393 374 111 while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){
366 8 while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){
366 0 while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){
366 0 while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){
152395 0 366 if( c==wc[3] && z[cnt]!=0 ) cnt++;
0 0 if( c==wc[3] && z[cnt]!=0 ) cnt++;
152406 117 2 if( cnt!=0 && 255!=(u8)z[cnt-1] && (cnt>1 || z[0]!=wc[3]) ){
117 0 if( cnt!=0 && 255!=(u8)z[cnt-1] && (cnt>1 || z[0]!=wc[3]) ){
6 111 if( cnt!=0 && 255!=(u8)z[cnt-1] && (cnt>1 || z[0]!=wc[3]) ){
6 0 if( cnt!=0 && 255!=(u8)z[cnt-1] && (cnt>1 || z[0]!=wc[3]) ){
152410 6 111 *pisComplete = c==wc[0] && z[cnt+1]==0;
6 0 *pisComplete = c==wc[0] && z[cnt+1]==0;
152414 117 0 if( pPrefix ){
152420 366 117 for(iFrom=iTo=0; iFrom
152421 0 366 if( zNew[iFrom]==wc[3] ) iFrom++;
152440 66 51 if( pLeft->op!=TK_COLUMN
152441 63 3 || sqlite3ExprAffinity(pLeft)!=SQLITE_AFF_TEXT
152442 63 0 || (ALWAYS( ExprUseYTab(pLeft) )
152443 63 0 && pLeft->y.pTab
152444 0 63 && IsVirtual(pLeft->y.pTab)) /* Might be numeric */
152449 54 0 if( isNum<=0 ){
152450 2 52 if( iTo==1 && zNew[0]=='-' ){
0 2 if( iTo==1 && zNew[0]=='-' ){
152458 0 54 if( isNum>0 ){
152469 0 117 if( op==TK_VARIABLE ){
152473 0 0 if( *pisComplete && pRight->u.zToken[1] ){
0 0 if( *pisComplete && pRight->u.zToken[1] ){
152532 218 1759 if( pExpr->op==TK_FUNCTION ){
152548 218 0 if( pList==0 || pList->nExpr!=2 ){
0 218 if( pList==0 || pList->nExpr!=2 ){
152562 167 51 if( ExprIsVtab(pCol) ){
167 0 if( ExprIsVtab(pCol) ){
85 82 if( ExprIsVtab(pCol) ){
152563 92 0 for(i=0; i
152565 85 7 if( sqlite3StrICmp(pExpr->u.zToken, aOp[i].zOp)==0 ){
152587 0 133 if( ExprIsVtab(pCol) ){
0 0 if( ExprIsVtab(pCol) ){
0 0 if( ExprIsVtab(pCol) ){
152597 0 0 if( pMod->xFindFunction!=0 ){
152599 0 0 if( i>=SQLITE_INDEX_CONSTRAINT_FUNCTION ){
152607 1520 239 }else if( pExpr->op==TK_NE || pExpr->op==TK_ISNOT || pExpr->op==TK_NOTNULL ){
1517 3 }else if( pExpr->op==TK_NE || pExpr->op==TK_ISNOT || pExpr->op==TK_NOTNULL ){
14 1503 }else if( pExpr->op==TK_NE || pExpr->op==TK_ISNOT || pExpr->op==TK_NOTNULL ){
152613 256 0 if( ExprIsVtab(pLeft) ){
256 0 if( ExprIsVtab(pLeft) ){
4 252 if( ExprIsVtab(pLeft) ){
152618 242 14 if( pRight && ExprIsVtab(pRight) ){
0 242 if( pRight && ExprIsVtab(pRight) ){
0 0 if( pRight && ExprIsVtab(pRight) ){
0 0 if( pRight && ExprIsVtab(pRight) ){
152624 239 17 if( pExpr->op==TK_NE ) *peOp2 = SQLITE_INDEX_CONSTRAINT_NE;
152625 3 253 if( pExpr->op==TK_ISNOT ) *peOp2 = SQLITE_INDEX_CONSTRAINT_ISNOT;
152626 14 242 if( pExpr->op==TK_NOTNULL ) *peOp2 = SQLITE_INDEX_CONSTRAINT_ISNOTNULL;
152638 270 0 if( pDerived && ExprHasProperty(pBase, EP_OuterON|EP_InnerON) ){
0 270 if( pDerived && ExprHasProperty(pBase, EP_OuterON|EP_InnerON) ){
152659 0 0 if( pTerm->eOperator!=WO_AND ){
152660 0 0 return N==0 ? pTerm : 0;
152662 0 0 if( Nu.pAndInfo->wc.nTerm ){
152700 0 0 if( (pOne->wtFlags | pTwo->wtFlags) & TERM_VNULL ) return;
152701 0 0 if( (pOne->eOperator & (WO_EQ|WO_LT|WO_LE|WO_GT|WO_GE))==0 ) return;
152702 0 0 if( (pTwo->eOperator & (WO_EQ|WO_LT|WO_LE|WO_GT|WO_GE))==0 ) return;
152703 0 0 if( (eOp & (WO_EQ|WO_LT|WO_LE))!=eOp
152704 0 0 && (eOp & (WO_EQ|WO_GT|WO_GE))!=eOp ) return;
152707 0 0 if( sqlite3ExprCompare(0,pOne->pExpr->pLeft, pTwo->pExpr->pLeft, -1) ) return;
152708 0 0 if( sqlite3ExprCompare(0,pOne->pExpr->pRight, pTwo->pExpr->pRight,-1) )return;
152710 0 0 if( (eOp & (eOp-1))!=0 ){
152711 0 0 if( eOp & (WO_LT|WO_LE) ){
152720 0 0 if( pNew==0 ) return;
152721 0 0 for(op=TK_EQ; eOp!=(WO_EQ<<(op-TK_EQ)); op++){ assert( op
152840 0 5 if( pOrInfo==0 ) return;
152847 0 5 if( db->mallocFailed ) return;
152855 15 5 for(i=pOrWc->nTerm-1, pOrTerm=pOrWc->a; i>=0 && indexable; i--, pOrTerm++){
15 0 for(i=pOrWc->nTerm-1, pOrTerm=pOrWc->a; i>=0 && indexable; i--, pOrTerm++){
152856 9 6 if( (pOrTerm->eOperator & WO_SINGLE)==0 ){
152861 9 0 if( pAndInfo ){
152876 9 0 if( !db->mallocFailed ){
152877 30 9 for(j=0, pAndTerm=pAndWC->a; jnTerm; j++, pAndTerm++){
152879 8 22 if( allowedOp(pAndTerm->pExpr->op)
152880 0 8 || pAndTerm->eOperator==WO_AUX
152888 3 3 }else if( pOrTerm->wtFlags & TERM_COPIED ){
152894 3 0 if( pOrTerm->wtFlags & TERM_VIRTUAL ){
152899 0 3 if( (pOrTerm->eOperator & WO_EQ)==0 ){
152914 5 0 if( indexable ){
152920 5 0 if( indexable && pOrWc->nTerm==2 ){
0 5 if( indexable && pOrWc->nTerm==2 ){
152923 0 0 while( (pOne = whereNthSubterm(&pOrWc->a[0],iOne++))!=0 ){
152926 0 0 while( (pTwo = whereNthSubterm(&pOrWc->a[1],iTwo++))!=0 ){
152953 0 5 if( chngToIN ){
152965 0 0 for(j=0; j<2 && !okToChngToIN; j++){
0 0 for(j=0; j<2 && !okToChngToIN; j++){
152968 0 0 for(i=pOrWc->nTerm-1; i>=0; i--, pOrTerm++){
152971 0 0 if( pOrTerm->leftCursor==iCursor ){
152977 0 0 if( (chngToIN & sqlite3WhereGetMask(&pWInfo->sMaskSet,
152994 0 0 if( i<0 ){
153007 0 0 for(; i>=0 && okToChngToIN; i--, pOrTerm++){
0 0 for(; i>=0 && okToChngToIN; i--, pOrTerm++){
153010 0 0 if( pOrTerm->leftCursor!=iCursor ){
153012 0 0 }else if( pOrTerm->u.x.leftColumn!=iColumn || (iColumn==XN_EXPR
0 0 }else if( pOrTerm->u.x.leftColumn!=iColumn || (iColumn==XN_EXPR
153013 0 0 && sqlite3ExprCompare(pParse, pOrTerm->pExpr->pLeft, pLeft, -1)
153024 0 0 if( affRight!=0 && affRight!=affLeft ){
0 0 if( affRight!=0 && affRight!=affLeft ){
153037 0 0 if( okToChngToIN ){
153043 0 0 for(i=pOrWc->nTerm-1, pOrTerm=pOrWc->a; i>=0; i--, pOrTerm++){
153044 0 0 if( (pOrTerm->wtFlags & TERM_OK)==0 ) continue;
153056 0 0 if( pNew ){
153092 0 19 if( !OptimizationEnabled(pParse->db, SQLITE_Transitive) ) return 0;
153093 8 11 if( pExpr->op!=TK_EQ && pExpr->op!=TK_IS ) return 0;
8 0 if( pExpr->op!=TK_EQ && pExpr->op!=TK_IS ) return 0;
153094 0 11 if( ExprHasProperty(pExpr, EP_OuterON) ) return 0;
153097 0 11 if( aff1!=aff2
153098 0 0 && (!sqlite3IsNumericAffinity(aff1) || !sqlite3IsNumericAffinity(aff2))
0 0 && (!sqlite3IsNumericAffinity(aff1) || !sqlite3IsNumericAffinity(aff2))
153103 11 0 if( sqlite3IsBinary(pColl) ) return 1;
153114 5 10 while( pS ){
153121 5 0 if( ALWAYS(pSrc!=0) ){
153123 5 5 for(i=0; inSrc; i++){
153125 5 0 if( pSrc->a[i].fg.isUsing==0 ){
153128 0 5 if( pSrc->a[i].fg.isTabFunc ){
153160 4 16 for(i=0; mPrereq>1; i++, mPrereq>>=1){}
153162 9 16 for(pIdx=pFrom->a[i].pTab->pIndex; pIdx; pIdx=pIdx->pNext){
153163 9 0 if( pIdx->aColExpr==0 ) continue;
153164 0 0 for(i=0; inKeyCol; i++){
153165 0 0 if( pIdx->aiColumn[i]!=XN_EXPR ) continue;
153166 0 0 if( sqlite3ExprCompareSkip(pExpr, pIdx->aColExpr->a[i].pExpr, iCur)==0 ){
153188 0 2891 if( pExpr->op==TK_VECTOR && (op>=TK_GT && ALWAYS(op<=TK_GE)) ){
0 0 if( pExpr->op==TK_VECTOR && (op>=TK_GT && ALWAYS(op<=TK_GE)) ){
0 0 if( pExpr->op==TK_VECTOR && (op>=TK_GT && ALWAYS(op<=TK_GE)) ){
153194 1368 1523 if( pExpr->op==TK_COLUMN ){
153199 1507 16 if( mPrereq==0 ) return 0; /* No table references */
153200 0 16 if( (mPrereq&(mPrereq-1))!=0 ) return 0; /* Refs more than one table */
153244 0 1989 if( db->mallocFailed ){
153256 19 1970 if( op==TK_IN ){
153258 0 19 if( sqlite3ExprCheckIN(pParse, pExpr) ) return;
153259 3 16 if( ExprUseXSelect(pExpr) ){
153267 1747 223 if( pExpr->pLeft==0
153268 1747 0 || ExprHasProperty(pExpr, EP_xIsSelect|EP_IfNullRow)
153269 18 1729 || pExpr->x.pList!=0
153276 2 1987 if( pMaskSet->bVarSelect ) pTerm->wtFlags |= TERM_VARSELECT;
153286 8 1981 if( ExprHasProperty(pExpr, EP_OuterON|EP_InnerON) ){
153288 3 5 if( ExprHasProperty(pExpr, EP_OuterON) ){
153292 0 3 if( (prereqAll>>1)>=x ){
153296 0 5 }else if( (prereqAll>>1)>=x ){
153303 0 0 if( ALWAYS(pSrc->nSrc>0) && (pSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){
0 0 if( ALWAYS(pSrc->nSrc>0) && (pSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){
153314 1466 523 if( allowedOp(op) ){
153318 1466 0 u16 opMask = (pTerm->prereqRight & prereqLeft)==0 ? WO_ALL : WO_EQUIV;
153320 0 1466 if( pTerm->u.x.iField>0 ){
153327 1349 117 if( exprMightBeIndexed(pSrc, prereqLeft, aiCurCol, pLeft, op) ){
153333 2 1464 if( op==TK_IS ) pTerm->wtFlags |= TERM_IS;
153334 1425 41 if( pRight
153335 19 1406 && exprMightBeIndexed(pSrc, pTerm->prereqRight, aiCurCol, pRight, op)
153336 19 0 && !ExprHasProperty(pRight, EP_FixedCol)
153342 19 0 if( pTerm->leftCursor>=0 ){
153345 0 19 if( db->mallocFailed ){
153350 0 19 if( idxNew==0 ) return;
153353 0 19 if( op==TK_IS ) pNew->wtFlags |= TERM_IS;
153357 11 8 if( termIsEquivalence(pParse, pDup) ){
153374 22 1425 if( op==TK_ISNULL
153375 22 0 && !ExprHasProperty(pExpr,EP_OuterON)
153376 0 22 && 0==sqlite3ExprCanBeNull(pLeft)
153403 18 505 else if( pExpr->op==TK_BETWEEN && pWC->op==TK_AND ){
18 0 else if( pExpr->op==TK_BETWEEN && pWC->op==TK_AND ){
153411 36 18 for(i=0; i<2; i++){
153431 5 500 else if( pExpr->op==TK_OR ){
153443 14 486 else if( pExpr->op==TK_NOTNULL ){
153444 14 0 if( pExpr->pLeft->op==TK_COLUMN
153445 14 0 && pExpr->pLeft->iColumn>=0
153446 14 0 && !ExprHasProperty(pExpr, EP_OuterON)
153459 14 0 if( idxNew ){
153488 218 268 else if( pExpr->op==TK_FUNCTION
153489 218 0 && pWC->op==TK_AND
153490 117 101 && isLikeOrGlob(pParse, pExpr, &pStr1, &isComplete, &noCase)
153512 117 0 if( noCase && !pParse->db->mallocFailed ){
117 0 if( noCase && !pParse->db->mallocFailed ){
153516 366 117 for(i=0; (c = pStr1->u.zToken[i])!=0; i++){
153522 117 0 if( !db->mallocFailed ){
153526 117 0 if( noCase ){
153533 0 117 if( c=='A'-1 ) isComplete = 0;
153538 117 0 zCollSeqName = noCase ? "NOCASE" : sqlite3StrBINARY;
153556 6 111 if( isComplete ){
153573 887 1102 if( (pExpr->op==TK_EQ || pExpr->op==TK_IS)
2 885 if( (pExpr->op==TK_EQ || pExpr->op==TK_IS)
153574 0 1104 && (nLeft = sqlite3ExprVectorSize(pExpr->pLeft))>1
153575 0 0 && sqlite3ExprVectorSize(pExpr->pRight)==nLeft
153576 0 0 && ( (pExpr->pLeft->flags & EP_xIsSelect)==0
153577 0 0 || (pExpr->pRight->flags & EP_xIsSelect)==0)
153578 0 0 && pWC->op==TK_AND
153581 0 0 for(i=0; i
153606 19 1970 else if( pExpr->op==TK_IN
153607 19 0 && pTerm->u.x.iField==0
153608 0 19 && pExpr->pLeft->op==TK_VECTOR
153609 0 0 && ALWAYS( ExprUseXSelect(pExpr) )
153610 0 0 && pExpr->x.pSelect->pPrior==0
153612 0 0 && pExpr->x.pSelect->pWin==0
153614 0 0 && pWC->op==TK_AND
153617 0 0 for(i=0; ipLeft); i++){
153636 1977 12 else if( pWC->op==TK_AND ){
153639 89 1977 while( res-- > 0 ){
153646 89 0 if( (prereqExpr & prereqColumn)==0 ){
153650 0 89 if( ExprHasProperty(pExpr, EP_OuterON) && pNewExpr ){
0 0 if( ExprHasProperty(pExpr, EP_OuterON) && pNewExpr ){
153706 932 2095 if( pE2==0 ) return;
153707 1719 376 if( pE2->op!=op ){
153738 0 0 if( sqlite3ExprIsInteger(pExpr, &iVal) && iVal>=0 ){
0 0 if( sqlite3ExprIsInteger(pExpr, &iVal) && iVal>=0 ){
153740 0 0 if( pVal==0 ) return;
153746 0 0 if( pVal==0 ) return;
153750 0 0 if( pNew ){
153781 1778 483 if( (p && p->pLimit) /* 1 */
1 1777 if( (p && p->pLimit) /* 1 */
153782 1 0 && (p->selFlags & (SF_Distinct|SF_Aggregate))==0 /* 2 */
153783 1 0 && (p->pSrc->nSrc==1 && IsVirtual(p->pSrc->a[0].pTab)) /* 3 */
0 1 && (p->pSrc->nSrc==1 && IsVirtual(p->pSrc->a[0].pTab)) /* 3 */
153790 0 0 for(ii=0; iinTerm; ii++){
153791 0 0 if( pWC->a[ii].wtFlags & TERM_CODED ){
153798 0 0 if( pWC->a[ii].leftCursor!=iCsr ) return;
153802 0 0 if( pOrderBy ){
153803 0 0 for(ii=0; iinExpr; ii++){
153805 0 0 if( pExpr->op!=TK_COLUMN ) return;
153806 0 0 if( pExpr->iTable!=iCsr ) return;
153807 0 0 if( pOrderBy->a[ii].fg.sortFlags & KEYINFO_ORDER_BIGNULL ) return;
153815 0 0 if( p->iOffset>0 ){
153846 1343 932 if( pWC->nTerm>0 ){
153858 392 1719 if( a->wtFlags & TERM_DYNAMIC ){
153861 14 2097 if( a->wtFlags & (TERM_ORINFO|TERM_ANDINFO) ){
153862 5 9 if( a->wtFlags & TERM_ORINFO ){
153870 1343 768 if( a==aLast ) break;
153913 0 1339 mask = (p->op==TK_IF_NULL_ROW) ? sqlite3WhereGetMask(pMaskSet, p->iTable) : 0;
153914 556 783 if( p->pLeft ) mask |= sqlite3WhereExprUsageNN(pMaskSet, p->pLeft);
153915 66 1273 if( p->pRight ){
153918 2 1271 }else if( ExprUseXSelect(p) ){
153919 2 0 if( ExprHasProperty(p, EP_VarSelect) ) pMaskSet->bVarSelect = 1;
153921 258 1013 }else if( p->x.pList ){
153925 1099 240 if( (p->op==TK_FUNCTION || p->op==TK_AGG_FUNCTION) && ExprUseYWin(p) ){
2 1097 if( (p->op==TK_FUNCTION || p->op==TK_AGG_FUNCTION) && ExprUseYWin(p) ){
0 242 if( (p->op==TK_FUNCTION || p->op==TK_AGG_FUNCTION) && ExprUseYWin(p) ){
153935 2064 2995 if( p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){
2064 0 if( p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){
153937 1656 1339 }else if( ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){
153944 4196 527 return p ? sqlite3WhereExprUsageNN(pMaskSet,p) : 0;
153949 297 10 if( pList ){
153950 569 297 for(i=0; inExpr; i++){
153971 1719 2275 for(i=pWC->nTerm-1; i>=0; i--){
153993 1762 0 if( pItem->fg.isTabFunc==0 ) return;
153997 0 0 if( pArgs==0 ) return;
153998 0 0 for(j=k=0; jnExpr; j++){
154001 0 0 while( knCol && (pTab->aCol[k].colFlags & COLFLAG_HIDDEN)==0 ){k++;}
0 0 while( knCol && (pTab->aCol[k].colFlags & COLFLAG_HIDDEN)==0 ){k++;}
154002 0 0 if( k>=pTab->nCol ){
154008 0 0 if( pColRef==0 ) return;
154017 0 0 if( pItem->fg.jointype & (JT_LEFT|JT_LTORJ) ){
154126 606 0 if( !pWInfo->bOrderedInnerLoop ){
154133 0 0 return pInner->pRJ ? pWInfo->iContinue : pInner->addrNxt;
154150 0 16 if( !pWInfo->bOrderedInnerLoop ) return;
154151 0 16 if( pWInfo->nOBSat==0 ) return;
154152 16 16 for(i=pWInfo->nLevel-1; i>=0; i--){
154154 0 16 if( (pInner->pWLoop->wsFlags & WHERE_COLUMN_IN)!=0 ){
154239 11 11 for(i=pSet->n, p=pSet->a; i>0; i--, p++){
154240 10 1 if( rRun<=p->rRun && (prereq & p->prereq)==prereq ){
10 0 if( rRun<=p->rRun && (prereq & p->prereq)==prereq ){
154243 1 0 if( p->rRun<=rRun && (p->prereq & prereq)==p->prereq ){
1 0 if( p->rRun<=rRun && (p->prereq & prereq)==p->prereq ){
154247 11 0 if( pSet->n
154252 0 0 for(i=1; in; i++){
154253 0 0 if( p->rRun>pSet->a[i].rRun ) p = pSet->a + i;
154255 0 0 if( p->rRun<=rRun ) return 0;
154260 10 11 if( p->nOut>nOut ) p->nOut = nOut;
154273 4923 146 if( pMaskSet->ix[0]==iCursor ){
154276 61 85 for(i=1; in; i++){
154277 61 0 if( pMaskSet->ix[i]==iCursor ){
154289 3 0 if( pBlock ){
154299 3 0 if( pNew && pOld ){
0 3 if( pNew && pOld ){
154327 24 0 if( ALWAYS(p!=0) && p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){
24 0 if( ALWAYS(p!=0) && p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){
24 0 if( ALWAYS(p!=0) && p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){
154354 5324 3849 for(pTerm=pWC->a+k; knTerm; k++, pTerm++){
154356 3508 1816 if( pTerm->leftCursor==iCur
154357 1000 2508 && pTerm->u.x.leftColumn==iColumn
154358 0 1000 && (iColumn!=XN_EXPR
154359 0 0 || sqlite3ExprCompareSkip(pTerm->pExpr->pLeft,
154361 11 989 && (pScan->iEquiv<=1 || !ExprHasProperty(pTerm->pExpr, EP_OuterON))
11 0 && (pScan->iEquiv<=1 || !ExprHasProperty(pTerm->pExpr, EP_OuterON))
154363 24 976 if( (pTerm->eOperator & WO_EQUIV)!=0
154364 24 0 && pScan->nEquivaiCur)
154365 24 0 && (pX = whereRightSubexprIsColumn(pTerm->pExpr))!=0
154368 24 13 for(j=0; jnEquiv; j++){
154369 11 13 if( pScan->aiCur[j]==pX->iTable
154370 11 0 && pScan->aiColumn[j]==pX->iColumn ){
154374 13 11 if( j==pScan->nEquiv ){
154380 705 295 if( (pTerm->eOperator & pScan->opMask)!=0 ){
154382 109 596 if( pScan->zCollName && (pTerm->eOperator & WO_ISNULL)==0 ){
104 5 if( pScan->zCollName && (pTerm->eOperator & WO_ISNULL)==0 ){
154386 0 104 if( !sqlite3IndexAffinityOk(pX, pScan->idxaff) ){
154391 0 104 if( pColl==0 ) pColl = pParse->db->pDfltColl;
154392 0 104 if( sqlite3StrICmp(pColl->zName, pScan->zCollName) ){
154396 629 76 if( (pTerm->eOperator & (WO_EQ|WO_IS))!=0
154397 629 0 && (pX = pTerm->pExpr->pRight, ALWAYS(pX!=0))
154398 24 605 && pX->op==TK_COLUMN
154399 11 13 && pX->iTable==pScan->aiCur[0]
154400 11 0 && pX->iColumn==pScan->aiColumn[0]
154425 43 3806 }while( pWC!=0 );
154426 3793 13 if( pScan->iEquiv>=pScan->nEquiv ) break;
154482 1267 3109 if( pIdx ){
154485 995 272 if( iColumn==pIdx->pTable->iPKey ){
154487 184 88 }else if( iColumn>=0 ){
154490 0 88 }else if( iColumn==XN_EXPR ){
154496 0 3109 }else if( iColumn==XN_EXPR ){
154542 14 1504 while( p ){
154543 6 8 if( (p->prereqRight & notReady)==0 ){
154544 6 0 if( p->prereqRight==0 && (p->eOperator&op)!=0 ){
6 0 if( p->prereqRight==0 && (p->eOperator&op)!=0 ){
154548 0 0 if( pResult==0 ) pResult = p;
154572 0 0 for(i=0; inExpr; i++){
154574 0 0 if( ALWAYS(p!=0)
154575 0 0 && (p->op==TK_COLUMN || p->op==TK_AGG_COLUMN)
0 0 && (p->op==TK_COLUMN || p->op==TK_AGG_COLUMN)
154576 0 0 && p->iColumn==pIdx->aiColumn[iCol]
154577 0 0 && p->iTable==iBase
154580 0 0 if( 0==sqlite3StrICmp(pColl->zName, zColl) ){
154597 7 0 if( j>=0 ){
154599 0 0 }else if( j==(-1) ){
154629 4 0 if( pTabList->nSrc!=1 ) return 0;
154637 0 0 for(i=0; inExpr; i++){
154639 0 0 if( NEVER(p==0) ) continue;
154640 0 0 if( p->op!=TK_COLUMN && p->op!=TK_AGG_COLUMN ) continue;
0 0 if( p->op!=TK_COLUMN && p->op!=TK_AGG_COLUMN ) continue;
154641 0 0 if( p->iTable==iBase && p->iColumn<0 ) return 1;
0 0 if( p->iTable==iBase && p->iColumn<0 ) return 1;
154657 0 0 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
154658 0 0 if( !IsUniqueIndex(pIdx) ) continue;
154659 0 0 if( pIdx->pPartIdxWhere ) continue;
154660 0 0 for(i=0; inKeyCol; i++){
154661 0 0 if( 0==sqlite3WhereFindTerm(pWC, iBase, i, ~(Bitmask)0, WO_EQ, pIdx) ){
154662 0 0 if( findIndexCol(pParse, pDistinct, iBase, pIdx, i)<0 ) break;
154663 0 0 if( indexColumnNotNull(pIdx, i)==0 ) break;
154666 0 0 if( i==pIdx->nKeyCol ){
154680 2371 2 return N<=10 ? 0 : sqlite3LogEst(N) - 33;
154705 0 22 if( pParse->db->mallocFailed ) return;
154706 283 22 for(; iStart
154707 135 148 if( pOp->p1!=iTabCur ) continue;
154708 91 57 if( pOp->opcode==OP_Column ){
154714 0 57 }else if( pOp->opcode==OP_Rowid ){
154786 401 709 if( pTerm->leftCursor!=pSrc->iCursor ) return 0;
154787 194 515 if( (pTerm->eOperator & (WO_EQ|WO_IS))==0 ) return 0;
154789 0 515 if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 ){
154794 0 0 if( !ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON)
154795 0 0 || pTerm->pExpr->w.iJoin != pSrc->iCursor
154800 0 515 if( (pTerm->prereqRight & notReady)!=0 ) return 0;
154802 2 513 if( pTerm->u.x.leftColumn<0 ) return 0;
154804 0 513 if( !sqlite3IndexAffinityOk(pTerm->pExpr, aff) ) return 0;
154861 2 1 for(pTerm=pWC->a; pTerm
154866 1 1 if( (pTerm->wtFlags & TERM_VIRTUAL)==0
154867 0 1 && sqlite3ExprIsTableConstraint(pExpr, pSrc)
154872 1 1 if( termCanDriveIndex(pTerm, pSrc, notReady) ){
154877 1 0 cMask = iCol>=BMS ? MASKBIT(BMS-1) : MASKBIT(iCol);
154880 1 0 if( !sentWarning ){
154886 1 0 if( (idxCols & cMask)==0 ){
154887 0 1 if( whereLoopResize(pParse->db, pLoop, nKeyCol+1) ){
154912 2 1 for(i=0; i
154913 1 1 if( extraCols & MASKBIT(i) ) nKeyCol++;
154915 0 1 if( pSrc->colUsed & MASKBIT(BMS-1) ){
154921 0 1 if( pIdx==0 ) goto end_auto_index_create;
154927 2 1 for(pTerm=pWC->a; pTerm
154928 1 1 if( termCanDriveIndex(pTerm, pSrc, notReady) ){
154933 1 0 cMask = iCol>=BMS ? MASKBIT(BMS-1) : MASKBIT(iCol);
154936 1 0 if( (idxCols & cMask)==0 ){
154942 1 0 pIdx->azColl[n] = pColl ? pColl->zName : sqlite3StrBINARY;
154951 2 1 for(i=0; i
154952 1 1 if( extraCols & MASKBIT(i) ){
154958 0 1 if( pSrc->colUsed & MASKBIT(BMS-1) ){
154959 0 0 for(i=BMS-1; inCol; i++){
154975 1 0 if( OptimizationEnabled(pParse->db, SQLITE_BloomFilter) ){
154982 0 1 if( pTabItem->fg.viaCoroutine ){
154992 0 1 if( pPartial ){
155001 1 0 if( pLevel->regFilter ){
155007 0 1 if( pPartial ) sqlite3VdbeResolveLabel(v, iContinue);
155008 0 1 if( pTabItem->fg.viaCoroutine ){
155094 0 0 if( sz<10000 ){
155096 0 0 }else if( sz>10000000 ){
155103 0 0 for(pTerm=pWInfo->sWC.a; pTerm
155105 0 0 if( (pTerm->wtFlags & TERM_VIRTUAL)==0
155106 0 0 && sqlite3ExprIsTableConstraint(pExpr, pItem)
155111 0 0 if( pLoop->wsFlags & WHERE_IPK ){
155121 0 0 for(jj=0; jj
155134 0 0 if( OptimizationDisabled(pParse->db, SQLITE_BloomPulldown) ) break;
155135 0 0 while( ++iLevel < pWInfo->nLevel ){
155139 0 0 if( pTabItem->fg.jointype & (JT_LEFT|JT_LTORJ) ) continue;
155141 0 0 if( NEVER(pLoop==0) ) continue;
155142 0 0 if( pLoop->prereq & notReady ) continue;
155143 0 0 if( (pLoop->wsFlags & (WHERE_BLOOMFILTER|WHERE_COLUMN_IN))
155153 0 0 }while( iLevel < pWInfo->nLevel );
155195 263 148 for(i=nTerm=0, pTerm=pWC->a; inTerm; i++, pTerm++){
155197 104 159 if( pTerm->leftCursor != pSrc->iCursor ) continue;
155198 3 156 if( pTerm->prereqRight & mUnusable ) continue;
155204 0 156 if( (pTerm->eOperator & ~(WO_EQUIV))==0 ) continue;
155205 3 153 if( pTerm->wtFlags & TERM_VNULL ) continue;
155215 2 151 if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 ){
155221 0 2 if( !ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON)
155222 0 0 || pTerm->pExpr->w.iJoin != pSrc->iCursor
155236 29 119 if( pOrderBy ){
155238 29 23 for(i=0; i
155243 0 29 if( sqlite3ExprIsConstant(pExpr) ){
155248 0 29 if( pOrderBy->a[i].fg.sortFlags & KEYINFO_ORDER_BIGNULL ) break;
155251 29 0 if( pExpr->op==TK_COLUMN && pExpr->iTable==pSrc->iCursor ){
23 6 if( pExpr->op==TK_COLUMN && pExpr->iTable==pSrc->iCursor ){
155258 0 6 if( pExpr->op==TK_COLLATE
155259 0 0 && (pE2 = pExpr->pLeft)->op==TK_COLUMN
155260 0 0 && pE2->iTable==pSrc->iCursor
155267 0 0 if( pE2->iColumn<0 ) continue; /* Collseq does not matter for rowid */
155269 0 0 if( zColl==0 ) zColl = sqlite3StrBINARY;
155270 0 0 if( sqlite3_stricmp(pExpr->u.zToken, zColl)==0 ) continue;
155276 23 6 if( i==n ){
155278 2 21 if( (pWInfo->wctrlFlags & WHERE_DISTINCTBY) ){
155279 0 2 eDistinct = 2 + ((pWInfo->wctrlFlags & WHERE_SORTBYGROUP)!=0);
155280 0 21 }else if( pWInfo->wctrlFlags & WHERE_GROUPBY ){
155292 0 148 if( pIdxInfo==0 ){
155307 263 148 for(i=j=0, pTerm=pWC->a; inTerm; i++, pTerm++){
155309 112 151 if( (pTerm->wtFlags & TERM_OK)==0 ) continue;
155313 3 148 if( op==WO_IN ){
155314 3 0 if( (pTerm->wtFlags & TERM_SLICE)==0 ){
155315 3 0 pHidden->mIn |= SMASKBIT32(j);
155319 89 62 if( op==WO_AUX ){
155321 4 58 }else if( op & (WO_ISNULL|WO_IS) ){
155322 3 1 if( op==WO_ISNULL ){
155339 32 26 if( op & (WO_LT|WO_LE|WO_GT|WO_GE)
155340 0 32 && sqlite3ExprIsVector(pTerm->pExpr->pRight)
155343 0 0 if( j<16 ) mNoOmit |= (1 << j);
155344 0 0 if( op==WO_LT ) pIdxCons[j].op = WO_LE;
155345 0 0 if( op==WO_GT ) pIdxCons[j].op = WO_GE;
155353 23 148 for(i=j=0; i
155355 0 23 if( sqlite3ExprIsConstant(pExpr) ) continue;
155380 151 148 for(i=0; inConstraint; i++){
155413 0 156 if( rc!=SQLITE_OK && rc!=SQLITE_CONSTRAINT ){
0 0 if( rc!=SQLITE_OK && rc!=SQLITE_CONSTRAINT ){
155414 0 0 if( rc==SQLITE_NOMEM ){
155416 0 0 }else if( !pVtab->zErrMsg ){
155636 90 52 if( pTerm ){
155637 0 90 if( pTerm->truthProb<=0 ){
155639 86 4 }else if( (pTerm->wtFlags & TERM_VNULL)==0 ){
155956 52 19 if( pLower && pLower->truthProb>0 && pUpper && pUpper->truthProb>0 ){
52 0 if( pLower && pLower->truthProb>0 && pUpper && pUpper->truthProb>0 ){
19 33 if( pLower && pLower->truthProb>0 && pUpper && pUpper->truthProb>0 ){
19 0 if( pLower && pLower->truthProb>0 && pUpper && pUpper->truthProb>0 ){
155961 0 71 if( nNew<10 ) nNew = 10;
155962 69 2 if( nNew
156213 765 4402 if( p->wsFlags & (WHERE_VIRTUALTABLE|WHERE_AUTO_INDEX) ){
156214 297 468 if( (p->wsFlags & WHERE_VIRTUALTABLE)!=0 && p->u.vtab.needFree ){
5 292 if( (p->wsFlags & WHERE_VIRTUALTABLE)!=0 && p->u.vtab.needFree ){
156218 468 292 }else if( (p->wsFlags & WHERE_AUTO_INDEX)!=0 && p->u.btree.pIndex!=0 ){
1 467 }else if( (p->wsFlags & WHERE_AUTO_INDEX)!=0 && p->u.btree.pIndex!=0 ){
156230 14 3383 if( p->aLTerm!=p->aLTermSpace ) sqlite3DbFreeNN(db, p->aLTerm);
156240 2008 14 if( p->nLSlot>=n ) return SQLITE_OK;
156243 0 14 if( paNew==0 ) return SQLITE_NOMEM_BKPT;
156245 0 14 if( p->aLTerm!=p->aLTermSpace ) sqlite3DbFreeNN(db, p->aLTerm);
156256 0 1770 if( whereLoopResize(db, pTo, pFrom->nLTerm) ){
156262 153 1617 if( pFrom->wsFlags & WHERE_VIRTUALTABLE ){
156264 468 1149 }else if( (pFrom->wsFlags & WHERE_AUTO_INDEX)!=0 ){
156284 1688 2261 while( pWInfo->pLoops ){
156290 3 2261 while( pWInfo->pMemToFree ){
156301 0 0 while( pWInfo->pExprMods ){
156333 65 67 if( pX->nLTerm-pX->nSkip >= pY->nLTerm-pY->nSkip ){
156336 66 1 if( pX->rRun>pY->rRun && pX->nOut>pY->nOut ) return 0;
63 3 if( pX->rRun>pY->rRun && pX->nOut>pY->nOut ) return 0;
156337 0 4 if( pY->nSkip > pX->nSkip ) return 0;
156338 10 4 for(i=pX->nLTerm-1; i>=0; i--){
156339 0 10 if( pX->aLTerm[i]==0 ) continue;
156340 30 0 for(j=pY->nLTerm-1; j>=0; j--){
156341 10 20 if( pY->aLTerm[j]==pX->aLTerm[i] ) break;
156343 0 10 if( j<0 ) return 0; /* X not a subset of Y since term X[i] not used by Y */
156345 4 0 if( (pX->wsFlags&WHERE_IDX_ONLY)!=0
156346 0 4 && (pY->wsFlags&WHERE_IDX_ONLY)==0 ){
156367 1741 119 if( (pTemplate->wsFlags & WHERE_INDEXED)==0 ) return;
156368 203 119 for(; p; p=p->pNextLoop){
156369 0 203 if( p->iTab!=pTemplate->iTab ) continue;
156370 135 68 if( (p->wsFlags & WHERE_INDEXED)==0 ) continue;
156371 4 64 if( whereLoopCheaperProperSubset(p, pTemplate) ){
156380 0 64 }else if( whereLoopCheaperProperSubset(pTemplate, p) ){
156412 749 1697 for(p=(*ppPrev); p; ppPrev=&p->pNextLoop, p=*ppPrev){
156413 717 32 if( p->iTab!=pTemplate->iTab || p->iSortIdx!=pTemplate->iSortIdx ){
367 350 if( p->iTab!=pTemplate->iTab || p->iSortIdx!=pTemplate->iSortIdx ){
156433 254 96 if( (p->wsFlags & WHERE_AUTO_INDEX)!=0
156434 254 0 && (pTemplate->nSkip)==0
156435 9 245 && (pTemplate->wsFlags & WHERE_INDEXED)!=0
156436 9 0 && (pTemplate->wsFlags & WHERE_COLUMN_EQ)!=0
156437 9 0 && (p->prereq & pTemplate->prereq)==pTemplate->prereq
156447 330 11 if( (p->prereq & pTemplate->prereq)==p->prereq /* (1) */
156448 134 196 && p->rSetup<=pTemplate->rSetup /* (2a) */
156449 65 69 && p->rRun<=pTemplate->rRun /* (2b) */
156450 64 1 && p->nOut<=pTemplate->nOut /* (2c) */
156460 275 2 if( (p->prereq & pTemplate->prereq)==pTemplate->prereq /* (1) */
156461 73 202 && p->rRun>=pTemplate->rRun /* (2a) */
156462 73 0 && p->nOut>=pTemplate->nOut /* (2b) */
156502 0 1860 if( pBuilder->iPlanLimit==0 ){
156504 0 0 if( pBuilder->pOrSet ) pBuilder->pOrSet->n = 0;
156514 26 1834 if( pBuilder->pOrSet!=0 ){
156515 18 8 if( pTemplate->nLTerm ){
156536 64 1770 if( ppPrev==0 ){
156566 1697 73 if( p==0 ){
156569 0 1697 if( p==0 ) return SQLITE_NOMEM_BKPT;
156578 9 73 while( *ppTail ){
156580 0 9 if( ppTail==0 ) break;
156582 0 9 if( pToDel==0 ) break;
156594 1617 153 if( (p->wsFlags & WHERE_VIRTUALTABLE)==0 ){
156596 1147 470 if( pIndex && pIndex->idxType==SQLITE_IDXTYPE_IPK ){
1058 89 if( pIndex && pIndex->idxType==SQLITE_IDXTYPE_IPK ){
156643 1143 1190 for(i=pWC->nBase, pTerm=pWC->a; i>0; i--, pTerm++){
156645 12 1131 if( (pTerm->prereqAll & notAllowed)!=0 ) continue;
156646 42 1089 if( (pTerm->prereqAll & pLoop->maskSelf)==0 ) continue;
156647 8 1081 if( (pTerm->wtFlags & TERM_VIRTUAL)!=0 ) continue;
156648 202 967 for(j=pLoop->nLTerm-1; j>=0; j--){
156650 0 202 if( pX==0 ) continue;
156651 59 143 if( pX==pTerm ) break;
156652 57 86 if( pX->iParent>=0 && (&pWC->a[pX->iParent])==pTerm ) break;
55 2 if( pX->iParent>=0 && (&pWC->a[pX->iParent])==pTerm ) break;
156654 967 114 if( j<0 ){
156655 967 0 if( pLoop->maskSelf==pTerm->prereqAll ){
156665 411 556 if( (pTerm->eOperator & 0x3f)!=0
156666 411 0 || (pWC->pWInfo->pTabList->a[pLoop->iTab].fg.jointype
156672 0 967 if( pTerm->truthProb<=0 ){
156680 528 439 if( (pTerm->eOperator&(WO_EQ|WO_IS))!=0
156686 41 487 if( sqlite3ExprIsInteger(pRight, &k) && k>=(-1) && k<=1 ){
41 0 if( sqlite3ExprIsInteger(pRight, &k) && k>=(-1) && k<=1 ){
31 10 if( sqlite3ExprIsInteger(pRight, &k) && k>=(-1) && k<=1 ){
156691 477 51 if( iReduce
156699 471 719 if( pLoop->nOut > nRow-iReduce ){
156732 0 71 for(i=1; i
156743 0 0 if( ExprUseXSelect(pRhs) ){
156753 0 0 if( pLhs->op!=TK_COLUMN
156754 0 0 || pLhs->iTable!=iCur
156755 0 0 || pLhs->iColumn!=pIdx->aiColumn[i+nEq]
156756 0 0 || pIdx->aSortOrder[i+nEq]!=pIdx->aSortOrder[nEq]
156764 0 0 if( aff!=idxaff ) break;
156767 0 0 if( pColl==0 ) break;
156768 0 0 if( sqlite3StrICmp(pColl->zName, pIdx->azColl[i+nEq]) ) break;
156822 0 1192 if( db->mallocFailed ) return SQLITE_NOMEM_BKPT;
156829 33 1159 if( pNew->wsFlags & WHERE_BTM_LIMIT ){
156835 0 1192 if( pProbe->bUnordered ) opMask &= ~(WO_GT|WO_GE|WO_LT|WO_LE);
156854 1295 0 for(; rc==SQLITE_OK && pTerm!=0; pTerm = whereScanNext(&scan)){
103 1192 for(; rc==SQLITE_OK && pTerm!=0; pTerm = whereScanNext(&scan)){
156862 98 5 if( (eOp==WO_ISNULL || (pTerm->wtFlags&TERM_VNULL)!=0)
2 96 if( (eOp==WO_ISNULL || (pTerm->wtFlags&TERM_VNULL)!=0)
156863 0 7 && indexColumnNotNull(pProbe, saved_nEq)
156867 0 103 if( pTerm->prereqRight & pNew->maskSelf ) continue;
156871 0 103 if( pTerm->wtFlags & TERM_LIKEOPT && pTerm->eOperator==WO_LT ) continue;
0 0 if( pTerm->wtFlags & TERM_LIKEOPT && pTerm->eOperator==WO_LT ) continue;
156886 0 103 if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 ){
156892 0 0 if( !ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON)
156893 0 0 || pTerm->pExpr->w.iJoin != pSrc->iCursor
156899 83 20 if( IsUniqueIndex(pProbe) && saved_nEq==pProbe->nKeyCol-1 ){
11 72 if( IsUniqueIndex(pProbe) && saved_nEq==pProbe->nKeyCol-1 ){
156909 0 103 if( whereLoopResize(db, pNew, pNew->nLTerm+1) ) break; /* OOM */
156919 0 103 if( eOp & WO_IN ){
156921 0 0 if( ExprUseXSelect(pExpr) ){
156931 0 0 for(i=0; inLTerm-1; i++){
156932 0 0 if( pNew->aLTerm[i] && pNew->aLTerm[i]->pExpr==pExpr ) nIn = 0;
0 0 if( pNew->aLTerm[i] && pNew->aLTerm[i]->pExpr==pExpr ) nIn = 0;
156934 0 0 }else if( ALWAYS(pExpr->x.pList && pExpr->x.pList->nExpr) ){
0 0 }else if( ALWAYS(pExpr->x.pList && pExpr->x.pList->nExpr) ){
156938 0 0 if( pProbe->hasStat1 && rLogSize>=10 ){
0 0 if( pProbe->hasStat1 && rLogSize>=10 ){
156964 0 0 if( x>=0 ){
156969 0 0 }else if( nInMul<2 && OptimizationEnabled(db, SQLITE_SeekScan) ){
0 0 }else if( nInMul<2 && OptimizationEnabled(db, SQLITE_SeekScan) ){
156984 27 76 }else if( eOp & (WO_EQ|WO_IS) ){
156988 25 2 if( iCol==XN_ROWID
156989 25 0 || (iCol>=0 && nInMul==0 && saved_nEq==pProbe->nKeyCol-1)
25 0 || (iCol>=0 && nInMul==0 && saved_nEq==pProbe->nKeyCol-1)
4 21 || (iCol>=0 && nInMul==0 && saved_nEq==pProbe->nKeyCol-1)
156991 4 2 if( iCol==XN_ROWID || pProbe->uniqNotNull
3 1 if( iCol==XN_ROWID || pProbe->uniqNotNull
156992 3 0 || (pProbe->nKeyCol==1 && pProbe->onError && eOp==WO_EQ)
0 3 || (pProbe->nKeyCol==1 && pProbe->onError && eOp==WO_EQ)
0 0 || (pProbe->nKeyCol==1 && pProbe->onError && eOp==WO_EQ)
156999 0 27 if( scan.iEquiv>1 ) pNew->wsFlags |= WHERE_TRANSCONS;
157000 5 71 }else if( eOp & WO_ISNULL ){
157002 33 38 }else if( eOp & (WO_GT|WO_GE) ){
157011 0 33 if( pTerm->wtFlags & TERM_LIKEOPT ){
157018 0 0 if( whereLoopResize(db, pNew, pNew->nLTerm+1) ) break; /* OOM */
157033 19 19 pNew->aLTerm[pNew->nLTerm-2] : 0;
157042 71 32 if( pNew->wsFlags & WHERE_COLUMN_RANGE ){
157051 0 32 if( pTerm->truthProb<=0 && pProbe->aiColumn[saved_nEq]>=0 ){
0 0 if( pTerm->truthProb<=0 && pProbe->aiColumn[saved_nEq]>=0 ){
157107 5 27 if( eOp & WO_ISNULL ){
157124 51 52 if( (pNew->wsFlags & (WHERE_IDX_ONLY|WHERE_IPK))==0 ){
157135 71 32 if( pNew->wsFlags & WHERE_COLUMN_RANGE ){
157141 65 38 if( (pNew->wsFlags & WHERE_TOP_LIMIT)==0
157142 63 2 && pNew->u.btree.nEqnColumn
157143 15 48 && (pNew->u.btree.nEqnKeyCol ||
14 1 && (pNew->u.btree.nEqnKeyCol ||
157173 1157 35 if( saved_nEq==saved_nSkip
157174 52 1105 && saved_nEq+1nKeyCol
157175 35 17 && saved_nEq==pNew->nLTerm
157176 35 0 && pProbe->noSkipScan==0
157177 0 35 && pProbe->hasStat1!=0
157178 0 0 && OptimizationEnabled(db, SQLITE_SkipScan)
157179 0 0 && pProbe->aiRowLogEst[saved_nEq+1]>=42 /* TUNING: Minimum for skip-scan */
157180 0 0 && (rc = whereLoopResize(db, pNew, pNew->nLTerm+1))==SQLITE_OK
157221 0 1130 if( pIndex->bUnordered ) return 0;
157222 478 652 if( (pOB = pBuilder->pWInfo->pOrderBy)==0 ) return 0;
157223 706 118 for(ii=0; iinExpr; ii++){
157225 0 706 if( NEVER(pExpr==0) ) continue;
157226 706 0 if( pExpr->op==TK_COLUMN && pExpr->iTable==iCursor ){
701 5 if( pExpr->op==TK_COLUMN && pExpr->iTable==iCursor ){
157227 509 192 if( pExpr->iColumn<0 ) return 1;
157228 200 167 for(jj=0; jjnKeyCol; jj++){
157229 25 175 if( pExpr->iColumn==pIndex->aiColumn[jj] ) return 1;
157231 0 5 }else if( (aColExpr = pIndex->aColExpr)!=0 ){
157232 0 0 for(jj=0; jjnKeyCol; jj++){
157233 0 0 if( pIndex->aiColumn[jj]!=XN_EXPR ) continue;
157234 0 0 if( sqlite3ExprCompareSkip(pExpr,aColExpr->a[jj].pExpr,iCursor)==0 ){
157256 0 0 if( jointype & JT_LTORJ ) return 0;
157258 0 0 while( pWhere->op==TK_AND ){
157259 0 0 if( !whereUsablePartialIndex(iTab,jointype,pWC,pWhere->pLeft) ) return 0;
157262 0 0 if( pParse->db->flags & SQLITE_EnableQPSG ) pParse = 0;
157263 0 0 for(i=0, pTerm=pWC->a; inTerm; i++, pTerm++){
157266 0 0 if( (!ExprHasProperty(pExpr, EP_OuterON) || pExpr->w.iJoin==iTab)
0 0 if( (!ExprHasProperty(pExpr, EP_OuterON) || pExpr->w.iJoin==iTab)
157267 0 0 && ((jointype & JT_OUTER)==0 || ExprHasProperty(pExpr, EP_OuterON))
0 0 && ((jointype & JT_OUTER)==0 || ExprHasProperty(pExpr, EP_OuterON))
157268 0 0 && sqlite3ExprImpliesExpr(pParse, pExpr, pWhere, iTab)
157269 0 0 && (pTerm->wtFlags & TERM_VNULL)==0
157340 0 1061 if( pSrc->fg.isIndexedBy ){
157344 0 1061 }else if( !HasRowid(pTab) ){
157364 1061 0 if( pSrc->fg.notIndexed==0 ){
157375 1053 8 if( !pBuilder->pOrSet /* Not part of an OR optimization */
157376 1048 5 && (pWInfo->wctrlFlags & (WHERE_RIGHT_JOIN|WHERE_OR_SUBCLAUSE))==0
157377 1048 0 && (pWInfo->pParse->db->flags & SQLITE_AutoIndex)!=0
157378 1048 0 && !pSrc->fg.isIndexedBy /* Has no INDEXED BY clause */
157379 1048 0 && !pSrc->fg.notIndexed /* Has no NOT INDEXED clause */
157380 1048 0 && HasRowid(pTab) /* Not WITHOUT ROWID table. (FIXME: Why not?) */
157381 1048 0 && !pSrc->fg.isCorrelated /* Not a correlated subquery */
157382 1048 0 && !pSrc->fg.isRecursive /* Not a recursive common table expression. */
157383 1048 0 && (pSrc->fg.jointype & JT_RIGHT)==0 /* Not the right tab of a RIGHT JOIN */
157390 2168 0 for(pTerm=pWC->a; rc==SQLITE_OK && pTerm
1120 1048 for(pTerm=pWC->a; rc==SQLITE_OK && pTerm
157391 14 1106 if( pTerm->prereqRight & pNew->maskSelf ) continue;
157392 511 595 if( termCanDriveIndex(pTerm, pSrc, 0) ){
157407 511 0 if( !IsView(pTab) && (pTab->tabFlags & TF_Ephemeral)==0 ){
510 1 if( !IsView(pTab) && (pTab->tabFlags & TF_Ephemeral)==0 ){
157413 0 511 if( pNew->rSetup<0 ) pNew->rSetup = 0;
157430 2191 0 for(; rc==SQLITE_OK && pProbe;
1130 1061 for(; rc==SQLITE_OK && pProbe;
157431 1130 0 pProbe=(pSrc->fg.isIndexedBy ? 0 : pProbe->pNext), iSortIdx++
157433 0 1130 if( pProbe->pPartIdxWhere!=0
157434 0 0 && !whereUsablePartialIndex(pSrc->iCursor, pSrc->fg.jointype, pWC,
157440 0 1130 if( pProbe->bNoQuery ) continue;
157456 1061 69 if( pProbe->idxType==SQLITE_IDXTYPE_IPK ){
157461 508 553 pNew->iSortIdx = b ? iSortIdx : 0;
157483 0 1061 if( rc ) break;
157486 14 55 if( pProbe->isCovering ){
157491 18 37 pNew->wsFlags = (m==0) ? (WHERE_IDX_ONLY|WHERE_INDEXED) : WHERE_INDEXED;
157495 43 26 if( b
157496 43 0 || !HasRowid(pTab)
157497 43 0 || pProbe->pPartIdxWhere!=0
157498 43 0 || pSrc->fg.isIndexedBy
157499 23 20 || ( m==0
157500 23 0 && pProbe->bUnordered==0
157501 9 14 && (pProbe->szIdxRowszTabRow)
157502 0 9 && (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0
157503 0 0 && sqlite3GlobalConfig.bUseCis
157504 0 0 && OptimizationEnabled(pWInfo->pParse->db, SQLITE_CoverIdxScan)
157507 26 0 pNew->iSortIdx = b ? iSortIdx : 0;
157513 17 9 if( m!=0 ){
157523 51 17 for(ii=0; iinTerm; ii++){
157525 0 51 if( !sqlite3ExprCoveredByIndex(pTerm->pExpr, iCur, pProbe) ){
157530 0 51 if( pTerm->truthProb<=0 ){
157534 0 51 if( pTerm->eOperator & (WO_EQ|WO_IS) ) nLookup -= 19;
157542 0 26 if( (pSrc->fg.jointype & JT_RIGHT)!=0 && pProbe->aColExpr ){
0 0 if( (pSrc->fg.jointype & JT_RIGHT)!=0 && pProbe->aColExpr ){
157551 0 26 if( rc ) break;
157557 43 1087 if( pBuilder->bldFlags1==SQLITE_BLDF1_INDEXED ){
157581 0 148 && pTerm->eMatchOp<=SQLITE_INDEX_CONSTRAINT_OFFSET;
0 0 && pTerm->eMatchOp<=SQLITE_INDEX_CONSTRAINT_OFFSET;
157633 159 156 for(i=0; i
157636 154 5 if( (pTerm->prereqRight & mUsable)==pTerm->prereqRight
157637 151 3 && (pTerm->eOperator & mExclude)==0
157638 0 151 && (pbRetryLimit || !isLimitTerm(pTerm))
0 0 && (pbRetryLimit || !isLimitTerm(pTerm))
157658 0 156 if( rc ){
157659 0 0 if( rc==SQLITE_CONSTRAINT ){
157675 159 156 for(i=0; i
157677 148 11 if( (iTerm = pUsage[i].argvIndex - 1)>=0 ){
157680 148 0 if( iTerm>=nConstraint
157681 148 0 || j<0
157682 148 0 || j>=pWC->nTerm
157683 148 0 || pNew->aLTerm[iTerm]!=0
157684 0 148 || pIdxCons->usable==0
157697 148 0 if( iTerm>mxTerm ) mxTerm = iTerm;
157700 148 0 if( pUsage[i].omit ){
157701 148 0 if( i<16 && ((1<
148 0 if( i<16 && ((1<
157707 0 148 if( pTerm->eMatchOp==SQLITE_INDEX_CONSTRAINT_OFFSET ){
157711 148 0 if( SMASKBIT32(i) & pHidden->mHandleIn ){
0 148 if( SMASKBIT32(i) & pHidden->mHandleIn ){
157713 3 145 }else if( (pTerm->eOperator & WO_IN)!=0 ){
157725 0 148 if( isLimitTerm(pTerm) && *pbIn ){
0 0 if( isLimitTerm(pTerm) && *pbIn ){
157731 0 0 if( pIdxInfo->needToFreeIdxStr ){
157743 148 156 for(i=0; i<=mxTerm; i++){
157744 0 148 if( pNew->aLTerm[i]==0 ){
157757 0 156 pNew->u.vtab.isOrdered = (i8)(pIdxInfo->orderByConsumed ?
157765 2 154 if( pIdxInfo->idxFlags & SQLITE_INDEX_SCAN_UNIQUE ){
157771 3 153 if( pNew->u.vtab.needFree ){
157800 0 0 if( iCons>=0 && iConsnConstraint ){
0 0 if( iCons>=0 && iConsnConstraint ){
157804 0 0 if( pX->pLeft ){
157807 0 0 zRet = (pC ? pC->zName : sqlite3StrBINARY);
157819 0 0 u32 m = SMASKBIT32(iCons);
157820 0 0 if( m & pHidden->mIn ){
157821 0 0 if( bHandle==0 ){
157823 0 0 }else if( bHandle>0 ){
157845 0 0 if( iCons<0 || iCons>=pIdxInfo->nConstraint ){
0 0 if( iCons<0 || iCons>=pIdxInfo->nConstraint ){
157848 0 0 if( pH->aRhs[iCons]==0 ){
157860 0 0 if( rc==SQLITE_OK && pVal==0 ){ /* IMP: R-19933-32160 */
0 0 if( rc==SQLITE_OK && pVal==0 ){ /* IMP: R-19933-32160 */
157954 0 148 if( p==0 ) return SQLITE_NOMEM_BKPT;
157960 0 148 if( whereLoopResize(pParse->db, pNew, nConstraint) ){
157971 0 148 if( bRetry ){
157983 148 0 if( rc==SQLITE_OK && ((mBest = (pNew->prereq & ~mPrereq))!=0 || bIn) ){
143 5 if( rc==SQLITE_OK && ((mBest = (pNew->prereq & ~mPrereq))!=0 || bIn) ){
3 140 if( rc==SQLITE_OK && ((mBest = (pNew->prereq & ~mPrereq))!=0 || bIn) ){
157991 3 5 if( bIn ){
157997 3 0 if( mBestNoIn==0 ){
158005 13 0 while( rc==SQLITE_OK ){
158009 13 13 for(i=0; i
158013 5 8 if( mThis>mPrev && mThis
5 0 if( mThis>mPrev && mThis
158016 8 5 if( mNext==ALLBITS ) break;
158017 0 5 if( mNext==mBest || mNext==mBestNoIn ) continue;
0 0 if( mNext==mBest || mNext==mBestNoIn ) continue;
158022 0 0 if( pNew->prereq==mPrereq ){
158024 0 0 if( bIn==0 ) seenZeroNoIN = 1;
158031 8 0 if( rc==SQLITE_OK && seenZero==0 ){
5 3 if( rc==SQLITE_OK && seenZero==0 ){
158035 5 0 if( bIn==0 ) seenZeroNoIN = 1;
158041 8 0 if( rc==SQLITE_OK && seenZeroNoIN==0 ){
0 8 if( rc==SQLITE_OK && seenZeroNoIN==0 ){
158048 0 148 if( p->needToFreeIdxStr ) sqlite3_free(p->idxStr);
158083 0 11 if( pItem->fg.jointype & JT_RIGHT ) return SQLITE_OK;
158085 26 11 for(pTerm=pWC->a; pTerm
26 0 for(pTerm=pWC->a; pTerm
158086 4 22 if( (pTerm->eOperator & WO_OR)!=0
158087 4 0 && (pTerm->u.pOrInfo->indexable & pNew->maskSelf)!=0
158099 10 3 for(pOrTerm=pOrWC->a; pOrTerm
158100 6 4 if( (pOrTerm->eOperator & WO_AND)!=0 ){
158102 2 2 }else if( pOrTerm->leftCursor==iCur ){
158122 0 8 if( IsVirtual(pItem->pTab) ){
158129 8 0 if( rc==SQLITE_OK ){
158136 1 7 if( sCur.n==0 ){
158139 3 4 }else if( once ){
158146 4 4 for(i=0; i
158147 4 4 for(j=0; j
158161 7 0 for(i=0; rc==SQLITE_OK && i
3 4 for(i=0; rc==SQLITE_OK && i
158207 1201 1700 for(iTab=0, pItem=pTabList->a; pItem
158212 1201 0 if( bFirstPastRJ
158213 3 1198 || (pItem->fg.jointype & (JT_OUTER|JT_CROSS|JT_LTORJ))!=0
158225 0 3 if( pItem->fg.jointype & JT_LTORJ ) hasRightJoin = 1;
158228 1198 0 }else if( !hasRightJoin ){
158232 148 1053 if( IsVirtual(pItem->pTab) ){
158234 4 148 for(p=&pItem[1]; p
158235 4 0 if( mUnusable || (p->fg.jointype & (JT_OUTER|JT_CROSS)) ){
3 1 if( mUnusable || (p->fg.jointype & (JT_OUTER|JT_CROSS)) ){
158245 1201 0 if( rc==SQLITE_OK && pBuilder->pWC->hasOr ){
3 1198 if( rc==SQLITE_OK && pBuilder->pWC->hasOr ){
158249 1201 0 if( rc || db->mallocFailed ){
0 1201 if( rc || db->mallocFailed ){
158250 0 0 if( rc==SQLITE_DONE ){
158338 17 1420 if( nLoop && OptimizationDisabled(db, SQLITE_OrderByIdxJoin) ) return 0;
0 17 if( nLoop && OptimizationDisabled(db, SQLITE_OrderByIdxJoin) ) return 0;
158342 0 1437 if( nOrderBy>BMS-1 ) return 0; /* Cannot optimize overly large ORDER BYs */
158348 774 663 if( wctrlFlags & (WHERE_ORDERBY_LIMIT|WHERE_ORDERBY_MAX|WHERE_ORDERBY_MIN) ){
158351 2461 344 for(iLoop=0; isOrderDistinct && obSat
1447 1014 for(iLoop=0; isOrderDistinct && obSat
1447 0 for(iLoop=0; isOrderDistinct && obSat
158352 10 1437 if( iLoop>0 ) ready |= pLoop->maskSelf;
158353 17 1430 if( iLoop
158355 10 7 if( wctrlFlags & WHERE_ORDERBY_LIMIT ) continue;
158359 77 1360 if( pLoop->wsFlags & WHERE_VIRTUALTABLE ){
158360 0 77 if( pLoop->u.vtab.isOrdered
158361 0 0 && ((wctrlFlags&(WHERE_DISTINCTBY|WHERE_SORTBYGROUP))!=WHERE_DISTINCTBY)
158366 4 1356 }else if( wctrlFlags & WHERE_DISTINCTBY ){
158376 1512 1360 for(i=0; i
158377 0 1512 if( MASKBIT(i) & obSat ) continue;
158379 0 1512 if( NEVER(pOBExpr==0) ) continue;
158380 0 1512 if( pOBExpr->op!=TK_COLUMN && pOBExpr->op!=TK_AGG_COLUMN ) continue;
0 0 if( pOBExpr->op!=TK_COLUMN && pOBExpr->op!=TK_AGG_COLUMN ) continue;
158381 7 1505 if( pOBExpr->iTable!=iCur ) continue;
158384 1499 6 if( pTerm==0 ) continue;
158385 0 6 if( pTerm->eOperator==WO_IN ){
158391 0 0 for(j=0; jnLTerm && pTerm!=pLoop->aLTerm[j]; j++){}
0 0 for(j=0; jnLTerm && pTerm!=pLoop->aLTerm[j]; j++){}
158392 0 0 if( j>=pLoop->nLTerm ) continue;
158394 6 0 if( (pTerm->eOperator&(WO_EQ|WO_IS))!=0 && pOBExpr->iColumn>=0 ){
6 0 if( (pTerm->eOperator&(WO_EQ|WO_IS))!=0 && pOBExpr->iColumn>=0 ){
158399 6 0 if( pColl2==0 || sqlite3StrICmp(pColl1->zName, pColl2->zName) ){
0 6 if( pColl2==0 || sqlite3StrICmp(pColl1->zName, pColl2->zName) ){
158407 1360 0 if( (pLoop->wsFlags & WHERE_ONEROW)==0 ){
158408 1307 53 if( pLoop->wsFlags & WHERE_IPK ){
158412 51 2 }else if( (pIndex = pLoop->u.btree.pIndex)==0 || pIndex->bUnordered ){
0 51 }else if( (pIndex = pLoop->u.btree.pIndex)==0 || pIndex->bUnordered ){
158425 50 1 && (pLoop->wsFlags & WHERE_SKIPSCAN)==0;
50 0 && (pLoop->wsFlags & WHERE_SKIPSCAN)==0;
158433 1424 1014 for(j=0; j
158439 16 1408 if( ju.btree.nEq && j>=pLoop->nSkip ){
16 0 if( ju.btree.nEq && j>=pLoop->nSkip ){
158454 16 0 if( (eOp & eqOpMask)!=0 ){
158455 0 16 if( eOp & (WO_ISNULL|WO_IS) ){
158462 0 0 }else if( ALWAYS(eOp & WO_IN) ){
158468 0 0 for(i=j+1; iu.btree.nEq; i++){
158469 0 0 if( pLoop->aLTerm[i]->pExpr==pX ){
158481 101 1307 if( pIndex ){
158484 16 85 if( iColumn==pIndex->pTable->iPKey ) iColumn = XN_ROWID;
158493 1357 51 if( isOrderDistinct ){
158494 50 1307 if( iColumn>=0
158495 50 0 && j>=pLoop->u.btree.nEq
158496 50 0 && pIndex->pTable->aCol[iColumn].notNull==0
158500 0 1357 if( iColumn==XN_EXPR ){
158509 1491 267 for(i=0; bOnce && i
1448 43 for(i=0; bOnce && i
158510 56 1392 if( MASKBIT(i) & obSat ) continue;
158514 0 1392 if( NEVER(pOBExpr==0) ) continue;
158515 1363 29 if( (wctrlFlags & (WHERE_GROUPBY|WHERE_DISTINCTBY))==0 ) bOnce = 0;
158516 1392 0 if( iColumn>=XN_ROWID ){
158517 0 1392 if( pOBExpr->op!=TK_COLUMN && pOBExpr->op!=TK_AGG_COLUMN ) continue;
0 0 if( pOBExpr->op!=TK_COLUMN && pOBExpr->op!=TK_AGG_COLUMN ) continue;
158518 5 1387 if( pOBExpr->iTable!=iCur ) continue;
158519 289 1098 if( pOBExpr->iColumn!=iColumn ) continue;
158522 0 0 if( sqlite3ExprCompareSkip(pOBExpr, pIdxExpr, iCur) ){
158526 84 1014 if( iColumn!=XN_ROWID ){
158528 0 84 if( sqlite3StrICmp(pColl->zName, pIndex->azColl[j])!=0 ) continue;
158530 2 1096 if( wctrlFlags & WHERE_DISTINCTBY ){
158536 1098 310 if( isMatch && (wctrlFlags & WHERE_GROUPBY)==0 ){
1098 0 if( isMatch && (wctrlFlags & WHERE_GROUPBY)==0 ){
158539 34 1064 if( revSet ){
158540 34 0 if( (rev ^ revIdx)
158547 66 998 if( rev ) *pRevMask |= MASKBIT(iLoop);
158551 1064 344 if( isMatch && (pOrderBy->a[i].fg.sortFlags & KEYINFO_ORDER_BIGNULL) ){
0 1064 if( isMatch && (pOrderBy->a[i].fg.sortFlags & KEYINFO_ORDER_BIGNULL) ){
158552 0 0 if( j==pLoop->u.btree.nEq ){
158558 1064 344 if( isMatch ){
158559 1014 50 if( iColumn==XN_ROWID ){
158566 50 294 if( j==0 || j
34 16 if( j==0 || j
158573 1014 344 if( distinctColumns ){
158580 1014 344 if( isOrderDistinct ){
158582 1016 1014 for(i=0; i
158585 1014 2 if( MASKBIT(i) & obSat ) continue;
158588 0 2 if( mTerm==0 && !sqlite3ExprIsConstant(p) ) continue;
0 0 if( mTerm==0 && !sqlite3ExprIsConstant(p) ) continue;
158589 2 0 if( (mTerm&~orderDistinctMask)==0 ){
158595 1034 401 if( obSat==obDone ) return (i8)nOrderBy;
158596 324 77 if( !isOrderDistinct ){
158597 150 288 for(i=nOrderBy-1; i>0; i--){
158598 150 0 Bitmask m = ALWAYS(i
158599 36 114 if( (obSat&m)==m ) return i;
158683 0 133 if( (pWInfo->wctrlFlags & WHERE_USE_LIMIT)!=0 && pWInfo->iLimit
0 0 if( (pWInfo->wctrlFlags & WHERE_USE_LIMIT)!=0 && pWInfo->iLimit
158685 2 131 }else if( (pWInfo->wctrlFlags & WHERE_WANT_DISTINCT) ){
158688 2 0 if( nRow>10 ){ nRow -= 10; assert( 10==sqlite3LogEst(2) ); }
158734 20 2326 mxChoice = (nLoop<=1) ? 1 : (nLoop==2 ? 5 : 10);
20 0 mxChoice = (nLoop<=1) ? 1 : (nLoop==2 ? 5 : 10);
158743 1292 1054 if( pWInfo->pOrderBy==0 || nRowEst==0 ){
646 646 if( pWInfo->pOrderBy==0 || nRowEst==0 ){
158753 0 2346 if( pSpace==0 ) return SQLITE_NOMEM_BKPT;
158758 4852 2346 for(ii=mxChoice*2, pFrom=aTo; ii>0; ii--, pFrom++, pX += nLoop){
158761 646 1700 if( nOrderBy ){
158782 646 1700 if( nOrderBy ){
158789 0 646 aFrom[0].isOrdered = nLoop>0 ? -1 : nOrderBy;
158795 1856 2346 for(iLoop=0; iLoop
158797 1872 1856 for(ii=0, pFrom=aFrom; ii
158798 2768 1872 for(pWLoop=pWInfo->pLoops; pWLoop; pWLoop=pWLoop->pNextLoop){
158806 36 2732 if( (pWLoop->prereq & ~pFrom->maskLoop)!=0 ) continue;
158807 40 2692 if( (pWLoop->maskSelf & pFrom->maskLoop)!=0 ) continue;
158808 748 1944 if( (pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 && pFrom->nRow<3 ){
740 8 if( (pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 && pFrom->nRow<3 ){
158823 687 1265 if( isOrdered<0 ){
158830 1917 35 if( isOrdered>=0 && isOrdered
146 1771 if( isOrdered>=0 && isOrdered
158831 133 13 if( aSortCost[isOrdered]==0 ){
158862 96 1876 for(jj=0, pTo=aTo; jj
158863 80 16 if( pTo->maskLoop==maskNew
158864 76 4 && ((pTo->isOrdered^isOrdered)&0x80)==0
158870 1876 76 if( jj>=nTo ){
158872 0 1876 if( nTo>=mxChoice
158873 0 0 && (rCost>mxCost || (rCost==mxCost && rUnsorted>=mxUnsorted))
0 0 && (rCost>mxCost || (rCost==mxCost && rUnsorted>=mxUnsorted))
0 0 && (rCost>mxCost || (rCost==mxCost && rUnsorted>=mxUnsorted))
158889 1876 0 if( nTo
158913 63 13 if( pTo->rCost
158914 5 58 || (pTo->rCost==rCost
158915 5 0 && (pTo->nRow
158916 5 0 || (pTo->nRow==nOut && pTo->rUnsorted<=rUnsorted)
5 0 || (pTo->nRow==nOut && pTo->rUnsorted<=rUnsorted)
158959 1866 68 if( nTo>=mxChoice ){
158963 0 1866 for(jj=1, pTo=&aTo[1]; jj
158964 0 0 if( pTo->rCost>mxCost
158965 0 0 || (pTo->rCost==mxCost && pTo->rUnsorted>mxUnsorted)
0 0 || (pTo->rCost==mxCost && pTo->rUnsorted>mxUnsorted)
158999 0 2346 if( nFrom==0 ){
159007 4 2346 for(ii=1; ii
159008 4 0 if( pFrom->rCost>aFrom[ii].rCost ) pFrom = &aFrom[ii];
159012 1856 2346 for(iLoop=0; iLoop
159018 8 2338 if( (pWInfo->wctrlFlags & WHERE_WANT_DISTINCT)!=0
159019 0 8 && (pWInfo->wctrlFlags & WHERE_DISTINCTBY)==0
159020 0 0 && pWInfo->eDistinct==WHERE_DISTINCT_NOOP
159021 0 0 && nRowEst
159026 0 0 if( rc==pWInfo->pResultSet->nExpr ){
159031 1292 1054 if( pWInfo->pOrderBy ){
159033 8 1284 if( pWInfo->wctrlFlags & WHERE_DISTINCTBY ){
159034 0 8 if( pFrom->isOrdered==pWInfo->pOrderBy->nExpr ){
159039 750 534 if( pWInfo->nOBSat<=0 ){
159041 750 0 if( nLoop>0 ){
159043 750 0 if( (wsFlags & WHERE_ONEROW)==0
159044 750 0 && (wsFlags&(WHERE_IPK|WHERE_COLUMN_IN))!=(WHERE_IPK|WHERE_COLUMN_IN)
159051 516 234 if( rc==pWInfo->pOrderBy->nExpr ){
159057 534 0 }else if( nLoop
159058 534 0 && pWInfo->nOBSat==1
159059 16 518 && (pWInfo->wctrlFlags & (WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX))!=0
159064 2 1290 if( (pWInfo->wctrlFlags & WHERE_SORTBYGROUP)
159065 0 2 && pWInfo->nOBSat==pWInfo->pOrderBy->nExpr && nLoop>0
0 0 && pWInfo->nOBSat==pWInfo->pOrderBy->nExpr && nLoop>0
159072 0 0 if( nOrder==pWInfo->pOrderBy->nExpr ){
159111 5 1735 if( pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE ) return 0;
159115 136 1599 if( IsVirtual(pTab) ) return 0;
159116 1599 0 if( pItem->fg.isIndexedBy || pItem->fg.notIndexed ){
0 1599 if( pItem->fg.isIndexedBy || pItem->fg.notIndexed ){
159127 556 1043 while( pTerm && pTerm->prereqRight ) pTerm = whereScanNext(&scan);
0 556 while( pTerm && pTerm->prereqRight ) pTerm = whereScanNext(&scan);
159128 556 1043 if( pTerm ){
159137 62 1038 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
159140 60 2 if( !IsUniqueIndex(pIdx)
159141 60 0 || pIdx->pPartIdxWhere!=0
159142 1 59 || pIdx->nKeyCol>ArraySize(pLoop->aLTermSpace)
159144 9 50 opMask = pIdx->uniqNotNull ? (WO_EQ|WO_IS) : WO_EQ;
159145 75 5 for(j=0; jnKeyCol; j++){
159147 21 54 while( pTerm && pTerm->prereqRight ) pTerm = whereScanNext(&scan);
0 21 while( pTerm && pTerm->prereqRight ) pTerm = whereScanNext(&scan);
159148 54 21 if( pTerm==0 ) break;
159152 54 5 if( j!=pIdx->nKeyCol ) continue;
159154 5 0 if( pIdx->isCovering || (pItem->colUsed & pIdx->colNotIdxed)==0 ){
0 5 if( pIdx->isCovering || (pItem->colUsed & pIdx->colNotIdxed)==0 ){
159165 561 1038 if( pLoop->wsFlags ){
159172 0 561 if( pWInfo->pOrderBy ) pWInfo->nOBSat = pWInfo->pOrderBy->nExpr;
159173 0 561 if( pWInfo->wctrlFlags & WHERE_WANT_DISTINCT ){
159176 0 561 if( scan.iEquiv>1 ) pLoop->wsFlags |= WHERE_TRANSCONS;
159194 9 43 if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_ConstFunc)==0 ){
0 9 if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_ConstFunc)==0 ){
159284 8 2 if( pWInfo->pOrderBy ){
159287 10 10 for(i=pWInfo->nLevel-1; i>=1; i--){
159293 7 3 if( (pItem->fg.jointype & (JT_LEFT|JT_RIGHT))!=JT_LEFT ) continue;
159294 2 1 if( (pWInfo->wctrlFlags & WHERE_WANT_DISTINCT)==0
159295 2 0 && (pLoop->wsFlags & WHERE_ONEROW)==0
159299 0 1 if( (tabUsed & pLoop->maskSelf)!=0 ) continue;
159301 1 0 for(pTerm=pWInfo->sWC.a; pTerm
159302 1 0 if( (pTerm->prereqAll & pLoop->maskSelf)!=0 ){
159303 0 1 if( !ExprHasProperty(pTerm->pExpr, EP_OuterON)
159304 0 0 || pTerm->pExpr->w.iJoin!=pItem->iCursor
159310 1 0 if( pTerm
159313 0 0 for(pTerm=pWInfo->sWC.a; pTerm
159314 0 0 if( (pTerm->prereqAll & pLoop->maskSelf)!=0 ){
159318 0 0 if( i!=pWInfo->nLevel-1 ){
159355 11 11 for(i=1; inLevel; i++){
159358 0 11 if( (pLoop->wsFlags & reqFlags)==reqFlags
159360 0 0 && ALWAYS((pLoop->wsFlags & (WHERE_IPK|WHERE_INDEXED))!=0)
159365 0 0 if( nSearch > pTab->nRowLogEst
159366 0 0 && (pTab->tabFlags & TF_HasStat1)!=0
159510 642 1619 if( pOrderBy && pOrderBy->nExpr>=BMS ) pOrderBy = 0;
0 642 if( pOrderBy && pOrderBy->nExpr>=BMS ) pOrderBy = 0;
159516 0 2261 if( pTabList->nSrc>BMS ){
159526 2256 5 nTabList = (wctrlFlags & WHERE_OR_SUBCLAUSE) ? 1 : pTabList->nSrc;
159537 0 2261 if( db->mallocFailed ){
159582 510 1751 if( nTabList==0 ){
159583 0 510 if( pOrderBy ) pWInfo->nOBSat = pOrderBy->nExpr;
159584 0 510 if( (wctrlFlags & WHERE_WANT_DISTINCT)!=0
159585 0 0 && OptimizationEnabled(db, SQLITE_DistinctOpt)
159609 11 1751 }while( (++ii)nSrc );
159625 0 2261 if( pParse->nErr ) goto whereBeginError;
159638 1687 2261 for(ii=0; iinBase; ii++){
159640 0 1687 if( pT->wtFlags & TERM_VIRTUAL ) continue;
159641 62 1625 if( pT->prereqAll==0 && (nTabList==0 || exprIsDeterministic(pT->pExpr)) ){
18 44 if( pT->prereqAll==0 && (nTabList==0 || exprIsDeterministic(pT->pExpr)) ){
18 0 if( pT->prereqAll==0 && (nTabList==0 || exprIsDeterministic(pT->pExpr)) ){
159647 4 2257 if( wctrlFlags & WHERE_WANT_DISTINCT ){
159648 0 4 if( OptimizationDisabled(db, SQLITE_DistinctOpt) ){
159653 0 4 }else if( isDistinctRedundant(pParse, pTabList, &pWInfo->sWC, pResultSet) ){
159656 4 0 }else if( pOrderBy==0 ){
159688 1740 521 if( nTabList!=1 || whereShortCut(&sWLB)==0 ){
1179 561 if( nTabList!=1 || whereShortCut(&sWLB)==0 ){
159690 0 1700 if( rc ) goto whereBeginError;
159715 0 1700 if( db->mallocFailed ) goto whereBeginError;
159716 646 1054 if( pWInfo->pOrderBy ){
159718 0 646 if( db->mallocFailed ) goto whereBeginError;
159721 1615 646 if( pWInfo->pOrderBy==0 && (db->flags & SQLITE_ReverseOrder)!=0 ){
0 1615 if( pWInfo->pOrderBy==0 && (db->flags & SQLITE_ReverseOrder)!=0 ){
159724 0 2261 if( pParse->nErr ){
159766 11 2250 if( pWInfo->nLevel>=2
159767 10 1 && pResultSet!=0 /* these two combine to guarantee */
159768 10 0 && 0==(wctrlFlags & WHERE_AGG_DISTINCT) /* condition (1) above */
159769 10 0 && OptimizationEnabled(db, SQLITE_OmitNoopJoin)
159779 11 2250 if( pWInfo->nLevel>=2
159780 11 0 && OptimizationEnabled(db, SQLITE_BloomFilter)
159814 340 1921 if( (wctrlFlags & WHERE_ONEPASS_DESIRED)!=0 ){
159818 40 300 if( bOnerow || (
33 7 if( bOnerow || (
159820 32 1 && !IsVirtual(pTabList->a[0].pTab)
159821 0 32 && (0==(wsFlags & WHERE_MULTI_OR) || (wctrlFlags & WHERE_DUPLICATES_OK))
0 0 && (0==(wsFlags & WHERE_MULTI_OR) || (wctrlFlags & WHERE_DUPLICATES_OK))
159823 300 32 pWInfo->eOnePass = bOnerow ? ONEPASS_SINGLE : ONEPASS_MULTI;
159824 332 0 if( HasRowid(pTabList->a[0].pTab) && (wsFlags & WHERE_IDX_ONLY) ){
9 323 if( HasRowid(pTabList->a[0].pTab) && (wsFlags & WHERE_IDX_ONLY) ){
159825 9 0 if( wctrlFlags & WHERE_ONEPASS_MULTIROW ){
159836 1762 2261 for(ii=0, pLevel=pWInfo->a; ii
159845 1740 22 if( (pTab->tabFlags & TF_Ephemeral)!=0 || IsView(pTab) ){
1740 0 if( (pTab->tabFlags & TF_Ephemeral)!=0 || IsView(pTab) ){
159849 148 1592 if( (pLoop->wsFlags & WHERE_VIRTUALTABLE)!=0 ){
159853 1592 0 }else if( IsVirtual(pTab) ){
159857 1580 12 if( ((pLoop->wsFlags & WHERE_IDX_ONLY)==0
159858 1 1579 && (wctrlFlags & WHERE_OR_SUBCLAUSE)==0)
159859 0 13 || (pTabItem->fg.jointype & (JT_LTORJ|JT_RIGHT))!=0
159862 332 1247 if( pWInfo->eOnePass!=ONEPASS_OFF ){
159870 1247 332 if( pWInfo->eOnePass==ONEPASS_OFF
159871 1247 0 && pTab->nCol
159872 1247 0 && (pTab->tabFlags & (TF_HasGenerated|TF_WithoutRowid))==0
159873 1246 1 && (pLoop->wsFlags & (WHERE_AUTO_INDEX|WHERE_BLOOMFILTER))==0
159880 4237 1246 for(; b; b=b>>1, n++){}
159899 43 1719 if( pLoop->wsFlags & WHERE_INDEXED ){
159905 0 43 if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIx)
0 0 if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIx)
159906 0 0 && (wctrlFlags & WHERE_OR_SUBCLAUSE)!=0
159912 9 34 }else if( pWInfo->eOnePass!=ONEPASS_OFF ){
159916 9 0 while( ALWAYS(pJ) && pJ!=pIx ){
0 9 while( ALWAYS(pJ) && pJ!=pIx ){
159922 26 8 }else if( iAuxArg && (wctrlFlags & WHERE_OR_SUBCLAUSE)!=0 ){
4 22 }else if( iAuxArg && (wctrlFlags & WHERE_OR_SUBCLAUSE)!=0 ){
159932 43 0 if( op ){
159935 43 0 if( (pLoop->wsFlags & WHERE_CONSTRAINT)!=0
159936 23 20 && (pLoop->wsFlags & (WHERE_COLUMN_RANGE|WHERE_SKIPSCAN))==0
159937 23 0 && (pLoop->wsFlags & WHERE_BIGNULL_SORT)==0
159938 23 0 && (pLoop->wsFlags & WHERE_IN_SEEKSCAN)==0
159939 23 0 && (pWInfo->wctrlFlags&WHERE_ORDERBY_MIN)==0
159940 23 0 && pWInfo->eDistinct!=WHERE_DISTINCT_ORDERED
159962 1740 22 if( iDb>=0 ) sqlite3CodeVerifySchema(pParse, iDb);
159963 0 1762 if( (pTabItem->fg.jointype & JT_RIGHT)!=0
159964 0 0 && (pLevel->pRJ = sqlite3WhereMalloc(pWInfo, sizeof(WhereRightJoin)))!=0
159973 0 0 if( HasRowid(pTab) ){
159977 0 0 if( pInfo ){
159996 0 2261 if( db->mallocFailed ) goto whereBeginError;
160002 1762 2261 for(ii=0; ii
160006 0 1762 if( pParse->nErr ) goto whereBeginError;
160010 0 1762 if( pSrc->fg.isMaterialized ){
160011 0 0 if( pSrc->fg.isCorrelated ){
160019 1 1761 if( (wsFlags & (WHERE_AUTO_INDEX|WHERE_BLOOMFILTER))!=0 ){
160020 1 0 if( (wsFlags & WHERE_AUTO_INDEX)!=0 ){
160028 0 1 if( db->mallocFailed ) goto whereBeginError;
160036 1760 2 if( (wsFlags&WHERE_MULTI_OR)==0 && (wctrlFlags&WHERE_OR_SUBCLAUSE)==0 ){
160048 0 0 if( pWInfo ){
160115 1762 2261 for(i=pWInfo->nLevel-1; i>=0; i--){
160118 0 1762 if( pLevel->pRJ ){
160130 1198 564 if( pLevel->op!=OP_Noop ){
160135 0 1198 if( pWInfo->eDistinct==WHERE_DISTINCT_ORDERED
160136 0 0 && i==pWInfo->nLevel-1 /* Ticket [ef9318757b152e3] 2017-10-21 */
160137 0 0 && (pLoop->wsFlags & WHERE_INDEXED)!=0
160138 0 0 && (pIdx = pLoop->u.btree.pIndex)->hasStat1
160139 0 0 && (n = pLoop->u.btree.nDistinctCol)>0
160140 0 0 && pIdx->aiRowLogEst[n]>=36
160144 0 0 for(j=0; j
160148 0 0 op = pLevel->op==OP_Prev ? OP_SeekLT : OP_SeekGT;
160156 1198 0 if( pLevel->addrCont ) sqlite3VdbeResolveLabel(v, pLevel->addrCont);
160163 0 1198 if( pLevel->regBignull ){
160169 0 1198 if( addrSeek ) sqlite3VdbeJumpHere(v, addrSeek);
160171 564 0 }else if( pLevel->addrCont ){
160174 3 1759 if( (pLoop->wsFlags & WHERE_IN_ABLE)!=0 && pLevel->u.in.nIn>0 ){
3 0 if( (pLoop->wsFlags & WHERE_IN_ABLE)!=0 && pLevel->u.in.nIn>0 ){
160178 3 3 for(j=pLevel->u.in.nIn, pIn=&pLevel->u.in.aInLoop[j-1]; j>0; j--, pIn--){
160182 3 0 if( pIn->eEndLoopOp!=OP_Noop ){
160183 0 3 if( pIn->nPrefix ){
160186 0 0 && (pLoop->wsFlags & WHERE_IN_EARLYOUT)!=0;
0 0 && (pLoop->wsFlags & WHERE_IN_EARLYOUT)!=0;
160187 0 0 if( pLevel->iLeftJoin ){
160200 0 0 if( bEarlyOut ){
160221 0 1762 if( pLevel->pRJ ){
160225 0 1762 if( pLevel->addrSkip ){
160232 0 1762 if( pLevel->addrLikeRep ){
160238 3 1759 if( pLevel->iLeftJoin ){
160242 3 0 if( (ws & WHERE_IDX_ONLY)==0 ){
160246 3 0 if( (ws & WHERE_INDEXED)
160247 0 3 || ((ws & WHERE_MULTI_OR) && pLevel->u.pCoveringIdx)
0 0 || ((ws & WHERE_MULTI_OR) && pLevel->u.pCoveringIdx)
160249 0 0 if( ws & WHERE_MULTI_OR ){
160257 0 3 if( pLevel->op==OP_Return ){
160269 0 2261 if( pWInfo->pExprMods ) whereUndoExprMods(pWInfo);
160270 1762 2261 for(i=0, pLevel=pWInfo->a; inLevel; i++, pLevel++){
160283 0 1762 if( pLevel->pRJ ){
160292 22 1740 if( pTabItem->fg.viaCoroutine ){
160310 44 1696 if( pLoop->wsFlags & (WHERE_INDEXED|WHERE_IDX_ONLY) ){
160312 2 1694 }else if( pLoop->wsFlags & WHERE_MULTI_OR ){
160315 44 1696 if( pIdx
160316 44 0 && !db->mallocFailed
160318 9 35 if( pWInfo->eOnePass==ONEPASS_OFF || !HasRowid(pIdx->pTable) ){
0 9 if( pWInfo->eOnePass==ONEPASS_OFF || !HasRowid(pIdx->pTable) ){
160338 129 416 if( pOp->p1!=pLevel->iTabCur ){
160340 100 29 }else if( pOp->opcode==OP_Column
160352 0 100 if( !HasRowid(pTab) ){
160361 51 49 if( x>=0 ){
160381 4 25 }else if( pOp->opcode==OP_Rowid ){
160385 0 25 }else if( pOp->opcode==OP_IfNullRow ){
160392 501 44 }while( (++pOp)
160566 0 0 if( p ) (*p)++;
160572 0 0 sqlite3_result_int64(pCtx, (p ? *p : 0));
160598 0 0 if( p ) p->nStep = 1;
160605 0 0 if( p ){
160606 0 0 if( p->nStep ){
160630 0 0 if( p ){
160638 0 0 if( ((i64)fVal)!=fVal ) goto error_out;
160645 0 0 if( iVal<=0 ) goto error_out;
160648 0 0 if( iVal==p->nStep ){
160650 0 0 if( !p->pValue ){
160667 0 0 if( p && p->pValue ){
0 0 if( p && p->pValue ){
160683 0 0 if( p && p->pValue==0 ){
0 0 if( p && p->pValue==0 ){
160685 0 0 if( !p->pValue ){
160695 0 0 if( p && p->pValue ){
0 0 if( p && p->pValue ){
160717 0 0 if( p ){
160719 0 0 if( p->nValue==0 ){
160729 0 0 if( p ){
160750 0 0 if( p ){
160768 0 0 if( p ){
160770 0 0 if( p->nTotal>1 ){
160795 0 0 if( p ){
160813 0 0 if( p ){
160843 0 0 if( p ){
160844 0 0 if( p->nTotal==0 ){
160846 0 0 if( p->nParam<=0 ){
160869 0 0 if( p && p->nParam>0 ){
0 0 if( p && p->nParam>0 ){
160871 0 0 if( nSize==0 ){
160880 0 0 if( iRow
160909 0 0 if( p ){
160912 0 0 if( p->pVal==0 ){
160928 0 0 if( ALWAYS(p) ){
160930 0 0 if( p->nVal==0 ){
160939 0 0 if( p && p->pVal ){
0 0 if( p && p->pVal ){
160946 0 0 if( p && p->pVal ){
0 0 if( p && p->pVal ){
161046 0 0 for(p=pList; p; p=p->pNextWin){
161047 0 0 if( sqlite3StrICmp(p->zName, zName)==0 ) break;
161049 0 0 if( p==0 ){
161078 0 0 if( pWin->zName && pWin->eFrmType==0 ){
0 0 if( pWin->zName && pWin->eFrmType==0 ){
161080 0 0 if( p==0 ) return;
161092 0 0 if( (pWin->eFrmType==TK_RANGE)
161093 0 0 && (pWin->pStart || pWin->pEnd)
0 0 && (pWin->pStart || pWin->pEnd)
161094 0 0 && (pWin->pOrderBy==0 || pWin->pOrderBy->nExpr!=1)
0 0 && (pWin->pOrderBy==0 || pWin->pOrderBy->nExpr!=1)
161100 0 0 if( pFunc->funcFlags & SQLITE_FUNC_WINDOW ){
161102 0 0 if( pWin->pFilter ){
161123 0 0 for(i=0; i
161124 0 0 if( pFunc->zName==aUp[i].zFunc ){
161132 0 0 if( pWin->eStart==TK_FOLLOWING ){
161172 0 0 if( p->pSubSelect ){
161173 0 0 if( pExpr->op!=TK_COLUMN ){
161178 0 0 for(i=0; i
161179 0 0 if( pExpr->iTable==p->pSrc->a[i].iCursor ) break;
161181 0 0 if( i==nSrc ) return WRC_Continue;
161188 0 0 if( !ExprHasProperty(pExpr, EP_WinFunc) ){
161192 0 0 for(pWin=p->pWin; pWin; pWin=pWin->pNextWin){
161193 0 0 if( pExpr->y.pWin==pWin ){
161204 0 0 if( pParse->db->mallocFailed ) return WRC_Abort;
161205 0 0 if( p->pSub ){
161207 0 0 for(i=0; ipSub->nExpr; i++){
161208 0 0 if( 0==sqlite3ExprCompare(0, p->pSub->a[i].pExpr, pExpr, -1) ){
161214 0 0 if( iCol<0 ){
161216 0 0 if( pDup && pDup->op==TK_AGG_FUNCTION ) pDup->op = TK_FUNCTION;
0 0 if( pDup && pDup->op==TK_AGG_FUNCTION ) pDup->op = TK_FUNCTION;
161219 0 0 if( p->pSub ){
161228 0 0 pExpr->iColumn = (iCol<0 ? p->pSub->nExpr-1: iCol);
161233 0 0 if( pParse->db->mallocFailed ) return WRC_Abort;
161246 0 0 if( pSave==pSelect ){
161310 0 0 if( pAppend ){
161312 0 0 int nInit = pList ? pList->nExpr : 0;
161313 0 0 for(i=0; inExpr; i++){
161317 0 0 if( db->mallocFailed ){
161321 0 0 if( bIntToNull ){
161325 0 0 if( sqlite3ExprIsInteger(pSub, &iDummy) ){
161332 0 0 if( pList ) pList->a[nInit+i].fg.sortFlags = pAppend->a[i].fg.sortFlags;
161347 0 0 if( pExpr->op==TK_AGG_FUNCTION
161348 0 0 && pExpr->op2>=pWalker->walkerDepth
161356 0 0 if( pExpr->op==TK_AGG_FUNCTION && pExpr->pAggInfo==0 ){
0 0 if( pExpr->op==TK_AGG_FUNCTION && pExpr->pAggInfo==0 ){
161373 0 2004 if( p->pWin
161374 0 0 && p->pPrior==0
161375 0 0 && ALWAYS((p->selFlags & SF_WinRewrite)==0)
161376 0 0 && ALWAYS(!IN_RENAME_OBJECT)
161396 0 0 if( pTab==0 ){
161401 0 0 if( (p->selFlags & SF_Aggregate)==0 ){
161419 0 0 if( pSort && p->pOrderBy && p->pOrderBy->nExpr<=pSort->nExpr ){
0 0 if( pSort && p->pOrderBy && p->pOrderBy->nExpr<=pSort->nExpr ){
0 0 if( pSort && p->pOrderBy && p->pOrderBy->nExpr<=pSort->nExpr ){
161422 0 0 if( sqlite3ExprListCompare(pSort, p->pOrderBy, -1)==0 ){
161437 0 0 pMWin->nBufferCol = (pSublist ? pSublist->nExpr : 0);
161449 0 0 for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
161454 0 0 if( pWin->pWFunc->funcFlags & SQLITE_FUNC_SUBTYPE ){
161456 0 0 pWin->iArgCol = (pSublist ? pSublist->nExpr : 0);
161459 0 0 pWin->iArgCol = (pSublist ? pSublist->nExpr : 0);
161462 0 0 if( pWin->pFilter ){
161477 0 0 if( pSublist==0 ){
161493 0 0 if( p->pSrc ){
161500 0 0 if( pTab2==0 ){
161519 0 0 if( db->mallocFailed ) rc = SQLITE_NOMEM;
161536 0 0 if( p->ppThis ){
161538 0 0 if( p->pNextWin ) p->pNextWin->ppThis = p->ppThis;
161547 0 0 if( p ){
161564 0 0 while( p ){
161579 0 0 if( 0==sqlite3ExprIsConstant(pExpr) ){
161580 0 0 if( IN_RENAME_OBJECT ) sqlite3RenameExprUnmap(pParse, pExpr);
161611 0 0 if( eType==0 ){
161630 0 0 if( (eStart==TK_CURRENT && eEnd==TK_PRECEDING)
0 0 if( (eStart==TK_CURRENT && eEnd==TK_PRECEDING)
161631 0 0 || (eStart==TK_FOLLOWING && (eEnd==TK_PRECEDING || eEnd==TK_CURRENT))
0 0 || (eStart==TK_FOLLOWING && (eEnd==TK_PRECEDING || eEnd==TK_CURRENT))
0 0 || (eStart==TK_FOLLOWING && (eEnd==TK_PRECEDING || eEnd==TK_CURRENT))
161638 0 0 if( pWin==0 ) goto windowAllocErr;
161642 0 0 if( eExclude==0 && OptimizationDisabled(pParse->db, SQLITE_WindowFunc) ){
0 0 if( eExclude==0 && OptimizationDisabled(pParse->db, SQLITE_WindowFunc) ){
161669 0 0 if( pWin ){
161672 0 0 if( pBase ){
161690 0 0 if( pWin->zBase ){
161693 0 0 if( pExist ){
161696 0 0 if( pWin->pPartition ){
161698 0 0 }else if( pExist->pOrderBy && pWin->pOrderBy ){
0 0 }else if( pExist->pOrderBy && pWin->pOrderBy ){
161700 0 0 }else if( pExist->bImplicitFrame==0 ){
161703 0 0 if( zErr ){
161709 0 0 if( pExist->pOrderBy ){
161724 0 0 if( p ){
161730 0 0 if( (p->flags & EP_Distinct) && pWin->eFrmType!=TK_FILTER ){
0 0 if( (p->flags & EP_Distinct) && pWin->eFrmType!=TK_FILTER ){
161747 0 0 if( pSel ){
161748 0 0 if( 0==pSel->pWin || 0==sqlite3WindowCompare(0, pSel->pWin, pWin, 0) ){
0 0 if( 0==pSel->pWin || 0==sqlite3WindowCompare(0, pSel->pWin, pWin, 0) ){
161750 0 0 if( pSel->pWin ){
161756 0 0 if( sqlite3ExprListCompare(pWin->pPartition, pSel->pWin->pPartition,-1) ){
161775 0 0 if( NEVER(p1==0) || NEVER(p2==0) ) return 1;
0 0 if( NEVER(p1==0) || NEVER(p2==0) ) return 1;
161776 0 0 if( p1->eFrmType!=p2->eFrmType ) return 1;
161777 0 0 if( p1->eStart!=p2->eStart ) return 1;
161778 0 0 if( p1->eEnd!=p2->eEnd ) return 1;
161779 0 0 if( p1->eExclude!=p2->eExclude ) return 1;
161780 0 0 if( sqlite3ExprCompare(pParse, p1->pStart, p2->pStart, -1) ) return 1;
161781 0 0 if( sqlite3ExprCompare(pParse, p1->pEnd, p2->pEnd, -1) ) return 1;
161782 0 0 if( (res = sqlite3ExprListCompare(p1->pPartition, p2->pPartition, -1)) ){
161785 0 0 if( (res = sqlite3ExprListCompare(p1->pOrderBy, p2->pOrderBy, -1)) ){
161788 0 0 if( bFilter ){
161789 0 0 if( (res = sqlite3ExprCompare(pParse, p1->pFilter, p2->pFilter, -1)) ){
161815 0 0 if( pMWin->pPartition ){
161825 0 0 if( pMWin->eExclude ){
161835 0 0 for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
161837 0 0 if( (p->funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){
0 0 if( (p->funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){
161853 0 0 if( pKeyInfo && pWin->pWFunc->zName[1]=='i' ){
0 0 if( pKeyInfo && pWin->pWFunc->zName[1]=='i' ){
161861 0 0 else if( p->zName==nth_valueName || p->zName==first_valueName ){
0 0 else if( p->zName==nth_valueName || p->zName==first_valueName ){
161869 0 0 else if( p->zName==leadName || p->zName==lagName ){
0 0 else if( p->zName==leadName || p->zName==lagName ){
161902 0 0 if( eCond>=WINDOW_STARTING_NUM ){
161940 0 0 return (pList ? pList->nExpr : 0);
162035 0 0 if( pOrderBy ){
162038 0 0 int iColOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0);
162040 0 0 for(i=0; inExpr; i++){
162075 0 0 for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
162078 0 0 int nArg = pWin->bExprArgs ? 0 : windowArgCount(pWin);
162087 0 0 for(i=0; i
162088 0 0 if( i!=1 || pFunc->zName!=nth_valueName ){
0 0 if( i!=1 || pFunc->zName!=nth_valueName ){
162096 0 0 if( pMWin->regStartRowid==0
162097 0 0 && (pFunc->funcFlags & SQLITE_FUNC_MINMAX)
162098 0 0 && (pWin->eStart!=TK_UNBOUNDED)
162102 0 0 if( bInverse==0 ){
162114 0 0 }else if( pWin->regApp ){
162120 0 0 }else if( pFunc->xSFunc!=noopStepFunc ){
162122 0 0 if( pWin->pFilter ){
162134 0 0 if( pWin->bExprArgs ){
162143 0 0 for(iEnd=sqlite3VdbeCurrentAddr(v); iOp
162145 0 0 if( pOp->opcode==OP_Column && pOp->p1==pMWin->iEphCsr ){
0 0 if( pOp->opcode==OP_Column && pOp->p1==pMWin->iEphCsr ){
162150 0 0 if( pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){
162157 0 0 sqlite3VdbeAddOp3(v, bInverse? OP_AggInverse : OP_AggStep,
162161 0 0 if( pWin->bExprArgs ){
162164 0 0 if( addrIf ) sqlite3VdbeJumpHere(v, addrIf);
162188 0 0 for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
162189 0 0 if( pMWin->regStartRowid==0
162190 0 0 && (pWin->pWFunc->funcFlags & SQLITE_FUNC_MINMAX)
162191 0 0 && (pWin->eStart!=TK_UNBOUNDED)
162198 0 0 }else if( pWin->regApp ){
162202 0 0 if( bFin ){
162242 0 0 nPeer = (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0);
162249 0 0 if( nPeer ){
162257 0 0 for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
162268 0 0 if( pMWin->eExclude==TK_CURRENT ){
162271 0 0 }else if( pMWin->eExclude!=TK_NO ){
162276 0 0 if( pMWin->pOrderBy ){
162279 0 0 if( pMWin->eExclude==TK_TIES ){
162283 0 0 if( pKeyInfo ){
162293 0 0 if( addrEq ) sqlite3VdbeJumpHere(v, addrEq);
162305 0 0 if( nPeer ){
162331 0 0 if( pMWin->regStartRowid ){
162337 0 0 for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
162340 0 0 if( pFunc->zName==nth_valueName
162341 0 0 || pFunc->zName==first_valueName
162348 0 0 if( pFunc->zName==nth_valueName ){
162363 0 0 else if( pFunc->zName==leadName || pFunc->zName==lagName ){
0 0 else if( pFunc->zName==leadName || pFunc->zName==lagName ){
162370 0 0 if( nArg<3 ){
162376 0 0 if( nArg<2 ){
162377 0 0 int val = (pFunc->zName==leadName ? 1 : -1);
162380 0 0 int op = (pFunc->zName==leadName ? OP_Add : OP_Subtract);
162409 0 0 for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
162413 0 0 nArg = MAX(nArg, windowArgCount(pWin));
162414 0 0 if( pMWin->regStartRowid==0 ){
162415 0 0 if( pFunc->zName==nth_valueName || pFunc->zName==first_valueName ){
0 0 if( pFunc->zName==nth_valueName || pFunc->zName==first_valueName ){
162420 0 0 if( (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && pWin->csrApp ){
0 0 if( (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && pWin->csrApp ){
162438 0 0 if( pMWin->regStartRowid ) return 1;
162439 0 0 for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
162441 0 0 if( (pFunc->zName==nth_valueName)
162442 0 0 || (pFunc->zName==first_valueName)
162443 0 0 || (pFunc->zName==leadName)
162444 0 0 || (pFunc->zName==lagName)
162470 0 0 if( pOrderBy ){
162533 0 0 if( pOrderBy->a[0].fg.sortFlags & KEYINFO_ORDER_DESC ){
162566 0 0 if( pOrderBy->a[0].fg.sortFlags & KEYINFO_ORDER_BIGNULL ){
162588 0 0 if( op==OP_Gt || op==OP_Ge ){
0 0 if( op==OP_Gt || op==OP_Ge ){
162609 0 0 if( (op==OP_Ge && arith==OP_Add) || (op==OP_Le && arith==OP_Subtract) ){
0 0 if( (op==OP_Ge && arith==OP_Add) || (op==OP_Le && arith==OP_Subtract) ){
0 0 if( (op==OP_Ge && arith==OP_Add) || (op==OP_Le && arith==OP_Subtract) ){
0 0 if( (op==OP_Ge && arith==OP_Add) || (op==OP_Le && arith==OP_Subtract) ){
162660 0 0 if( op==WINDOW_AGGINVERSE && pMWin->eStart==TK_UNBOUNDED ){
0 0 if( op==WINDOW_AGGINVERSE && pMWin->eStart==TK_UNBOUNDED ){
162665 0 0 if( regCountdown>0 ){
162666 0 0 if( pMWin->eFrmType==TK_RANGE ){
162669 0 0 if( op==WINDOW_AGGINVERSE ){
162670 0 0 if( pMWin->eStart==TK_FOLLOWING ){
162690 0 0 if( op==WINDOW_RETURN_ROW && pMWin->regStartRowid==0 ){
0 0 if( op==WINDOW_RETURN_ROW && pMWin->regStartRowid==0 ){
162701 0 0 if( pMWin->eStart==pMWin->eEnd && regCountdown
0 0 if( pMWin->eStart==pMWin->eEnd && regCountdown
162702 0 0 && pMWin->eFrmType==TK_RANGE
162706 0 0 if( op==WINDOW_AGGINVERSE ){
162711 0 0 }else if( p->regRowid ){
162731 0 0 if( pMWin->regStartRowid ){
162743 0 0 if( pMWin->regStartRowid ){
162752 0 0 if( op==p->eDelete ){
162757 0 0 if( jumpOnEof ){
162764 0 0 if( bPeer ){
162769 0 0 if( bPeer ){
162770 0 0 int nReg = (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0);
162771 0 0 int regTmp = (nReg ? sqlite3GetTempRange(pParse, nReg) : 0);
162777 0 0 if( addrNextRange ){
162792 0 0 if( ALWAYS(p) ){
162794 0 0 if( pNew ){
162828 0 3 for(pWin=p; pWin; pWin=pWin->pNextWin){
162830 0 0 if( *pp==0 ) break;
162850 0 0 if( pVal && sqlite3_value_int(pVal)>0 ){
0 0 if( pVal && sqlite3_value_int(pVal)>0 ){
163253 0 0 if( pMWin->eFrmType!=TK_RANGE
163254 0 0 && windowExprGtZero(pParse, pMWin->pStart)
163260 0 0 if( windowCacheFrame(pMWin)==0 ){
163261 0 0 if( pMWin->eEnd==TK_PRECEDING ){
163262 0 0 if( pMWin->eFrmType!=TK_RANGE
163263 0 0 && windowExprGtZero(pParse, pMWin->pEnd)
163288 0 0 if( pMWin->eStart==TK_PRECEDING || pMWin->eStart==TK_FOLLOWING ){
0 0 if( pMWin->eStart==TK_PRECEDING || pMWin->eStart==TK_FOLLOWING ){
163291 0 0 if( pMWin->eEnd==TK_PRECEDING || pMWin->eEnd==TK_FOLLOWING ){
0 0 if( pMWin->eEnd==TK_PRECEDING || pMWin->eEnd==TK_FOLLOWING ){
163298 0 0 if( pMWin->eFrmType!=TK_ROWS ){
163299 0 0 int nPeer = (pOrderBy ? pOrderBy->nExpr : 0);
163301 0 0 if( pMWin->pPartition ) regNewPeer += pMWin->pPartition->nExpr;
163311 0 0 for(iInput=0; iInput
163321 0 0 if( pMWin->pPartition ){
163347 0 0 if( regStart ){
163349 0 0 windowCheckValue(pParse, regStart, 0 + (pMWin->eFrmType==TK_RANGE?3:0));
163351 0 0 if( regEnd ){
163353 0 0 windowCheckValue(pParse, regEnd, 1 + (pMWin->eFrmType==TK_RANGE?3:0));
163356 0 0 if( pMWin->eFrmType!=TK_RANGE && pMWin->eStart==pMWin->eEnd && regStart ){
0 0 if( pMWin->eFrmType!=TK_RANGE && pMWin->eStart==pMWin->eEnd && regStart ){
0 0 if( pMWin->eFrmType!=TK_RANGE && pMWin->eStart==pMWin->eEnd && regStart ){
163357 0 0 int op = ((pMWin->eStart==TK_FOLLOWING) ? OP_Ge : OP_Le);
163369 0 0 if( pMWin->eStart==TK_FOLLOWING && pMWin->eFrmType!=TK_RANGE && regEnd ){
0 0 if( pMWin->eStart==TK_FOLLOWING && pMWin->eFrmType!=TK_RANGE && regEnd ){
0 0 if( pMWin->eStart==TK_FOLLOWING && pMWin->eFrmType!=TK_RANGE && regEnd ){
163374 0 0 if( pMWin->eStart!=TK_UNBOUNDED ){
163382 0 0 if( regPeer && pOrderBy ){
0 0 if( regPeer && pOrderBy ){
163394 0 0 if( regPeer ){
163397 0 0 if( pMWin->eStart==TK_FOLLOWING ){
163399 0 0 if( pMWin->eEnd!=TK_UNBOUNDED ){
163400 0 0 if( pMWin->eFrmType==TK_RANGE ){
163414 0 0 if( pMWin->eEnd==TK_PRECEDING ){
163415 0 0 int bRPS = (pMWin->eStart==TK_PRECEDING && pMWin->eFrmType==TK_RANGE);
0 0 int bRPS = (pMWin->eStart==TK_PRECEDING && pMWin->eFrmType==TK_RANGE);
163417 0 0 if( bRPS ) windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0);
163419 0 0 if( !bRPS ) windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0);
163423 0 0 if( pMWin->eEnd!=TK_UNBOUNDED ){
163424 0 0 if( pMWin->eFrmType==TK_RANGE ){
163427 0 0 if( regEnd ){
163433 0 0 if( regEnd ){
163438 0 0 if( regEnd ){
163444 0 0 if( regEnd ) sqlite3VdbeJumpHere(v, addr);
163454 0 0 if( pMWin->pPartition ){
163462 0 0 if( pMWin->eEnd==TK_PRECEDING ){
163463 0 0 int bRPS = (pMWin->eStart==TK_PRECEDING && pMWin->eFrmType==TK_RANGE);
0 0 int bRPS = (pMWin->eStart==TK_PRECEDING && pMWin->eFrmType==TK_RANGE);
163465 0 0 if( bRPS ) windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0);
163467 0 0 }else if( pMWin->eStart==TK_FOLLOWING ){
163473 0 0 if( pMWin->eFrmType==TK_RANGE ){
163478 0 0 if( pMWin->eEnd==TK_UNBOUNDED ){
163508 0 0 if( pMWin->pPartition ){
163509 0 0 if( pMWin->regStartRowid ){
163635 26 4538 if( p->pPrior ){
163643 26 85 if( pLoop==0 ) break;
163645 85 0 if( pLoop->pOrderBy || pLoop->pLimit ){
0 85 if( pLoop->pOrderBy || pLoop->pLimit ){
163646 0 0 sqlite3ErrorMsg(pParse,"%s clause should come after %s not before",
163652 22 4 if( (p->selFlags & SF_MultiValue)==0 &&
22 0 if( (p->selFlags & SF_MultiValue)==0 &&
163653 0 22 (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 &&
163665 0 0 if( pSelect ){
163678 9851 0 if( p ){
163696 2523 7328 if( sqlite3Isquote(p->u.zToken[0]) ){
163702 0 9851 if( IN_RENAME_OBJECT ){
163714 33 0 if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){
33 0 if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){
28 5 if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){
28 0 if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){
163734 24 0 if( (hasCollate || sortOrder!=SQLITE_SO_UNDEFINED)
0 24 if( (hasCollate || sortOrder!=SQLITE_SO_UNDEFINED)
163735 0 0 && pParse->db->init.busy==0
165996 12258 6482 while( pParser->yytos>pParser->yystack ) yy_pop_parser_stack(pParser);
166080 62296 163117 if( stateno>YY_MAX_SHIFT ) return stateno;
166094 82514 80838 if( yy_lookahead[i]!=iLookAhead ){
166099 235 82279 if( iFallback!=0 ){
166115 348 81931 if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){
348 0 if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){
166176 0 0 while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser);
166226 0 80510 if( yypParser->yytos>yypParser->yystackEnd ){
166240 37813 42697 if( yyNewState > YY_MAX_SHIFT ){
167193 0 0 if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
0 0 if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){
167203 0 0 if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){
0 0 if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){
167267 0 0 if( p ){
167420 4564 0 if( p ){
167430 75 0 if( pRhs && pRhs->pPrior ){
0 75 if( pRhs && pRhs->pPrior ){
167438 75 0 if( pRhs ){
167441 75 0 if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;
167443 4 71 if( yymsp[-1].minor.yy394!=TK_ALL ) pParse->hasCompound = 1;
167465 0 0 if( yymsp[-9].minor.yy47 ){
167481 10 0 if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;
167482 10 0 if( pRight ){
167508 316 1627 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1);
167544 11 0 if( ALWAYS(yymsp[-1].minor.yy131 && yymsp[-1].minor.yy131->nSrc>0) ) yymsp[-1].minor.yy131->a[yymsp[-1].minor.yy131->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy394;
11 0 if( ALWAYS(yymsp[-1].minor.yy131 && yymsp[-1].minor.yy131->nSrc>0) ) yymsp[-1].minor.yy131->a[yymsp[-1].minor.yy131->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy394;
167571 0 0 if( yymsp[-5].minor.yy131==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy561.pOn==0 && yymsp[0].minor.yy561.pUsing==0 ){
0 0 if( yymsp[-5].minor.yy131==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy561.pOn==0 && yymsp[0].minor.yy561.pUsing==0 ){
0 0 if( yymsp[-5].minor.yy131==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy561.pOn==0 && yymsp[0].minor.yy561.pUsing==0 ){
0 0 if( yymsp[-5].minor.yy131==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy561.pOn==0 && yymsp[0].minor.yy561.pUsing==0 ){
167573 0 0 }else if( yymsp[-3].minor.yy131->nSrc==1 ){
167575 0 0 if( yymsp[-5].minor.yy131 ){
167581 0 0 if( pNew->pSelect && (pNew->pSelect->selFlags & SF_NestedFrom)!=0 ){
0 0 if( pNew->pSelect && (pNew->pSelect->selFlags & SF_NestedFrom)!=0 ){
167584 0 0 if( pOld->fg.isTabFunc ){
167609 0 15 if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0);
0 0 if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0);
167616 0 0 if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0);
0 0 if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0);
167629 0 0 if( yymsp[-4].minor.yy131 ) yymsp[-4].minor.yy131->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
167635 0 0 if( yymsp[-2].minor.yy131 ) yymsp[-2].minor.yy131->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);
167738 0 310 if( yymsp[-1].minor.yy131 ){
167740 0 0 if( pFromClause->nSrc>1 ){
167840 0 4 if( IN_RENAME_OBJECT ){
167854 561 0 if( yylhsminor.yy528 ) yylhsminor.yy528->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail);
167860 610 1398 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
0 610 if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){
167870 0 610 if( pParse->nested==0 ){
167875 610 0 if( yymsp[0].minor.yy528 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy528->iTable);
167927 0 0 if( yymsp[-4].minor.yy528 ){
167929 0 0 if( ALWAYS(pList->nExpr) ){
167960 12 136 if( bNot ) yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy528, 0);
167961 148 0 if( yymsp[-2].minor.yy528 ) yymsp[-2].minor.yy528->flags |= EP_InfixFunc;
167973 0 0 if( bNot ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0);
167974 0 0 if( yymsp[-4].minor.yy528 ) yymsp[-4].minor.yy528->flags |= EP_InfixFunc;
168013 0 1 yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy528, 0);
168034 18 0 if( yymsp[-4].minor.yy528 ){
168039 0 18 if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0);
168044 0 17 if( yymsp[-1].minor.yy322==0 ){
168054 0 0 yymsp[-4].minor.yy528 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy394 ? "true" : "false");
168055 0 0 if( yymsp[-4].minor.yy528 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy528);
168058 1 16 if( yymsp[-1].minor.yy322->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy528->op!=TK_VECTOR ){
1 0 if( yymsp[-1].minor.yy322->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy528->op!=TK_VECTOR ){
1 0 if( yymsp[-1].minor.yy322->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy528->op!=TK_VECTOR ){
168065 0 16 if( yymsp[-4].minor.yy528==0 ){
168067 0 16 }else if( yymsp[-4].minor.yy528->pLeft->op==TK_VECTOR ){
168070 0 0 if( pSelectRHS ){
168079 0 17 if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0);
168093 0 1 if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0);
168100 0 2 if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322);
0 0 if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322);
168103 0 2 if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0);
168116 0 0 if( yymsp[-4].minor.yy528 ){
168117 0 0 yymsp[-4].minor.yy528->x.pList = yymsp[-1].minor.yy528 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528) : yymsp[-2].minor.yy322;
168155 0 10 if( IN_RENAME_OBJECT && pParse->pNewIndex ){
0 0 if( IN_RENAME_OBJECT && pParse->pNewIndex ){
168212 0 0 yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/
168295 0 0 if( yymsp[-3].minor.yy528 ){
168303 0 0 if( yymsp[-5].minor.yy528 ) {
168430 0 0 if( ALWAYS(yymsp[-1].minor.yy41) ){
168522 0 0 if( yymsp[0].minor.yy41 ){
168534 0 0 if( yylhsminor.yy41 ){
168552 0 0 if( yymsp[-1].minor.yy41 ){
168685 3 0 if( TOKEN.z[0] ){
168779 144541 80872 if( yyact >= YY_MIN_REDUCE ){
168802 45767 98774 if( yyRuleInfoNRhs[yyruleno]==0 ){
168811 0 45767 if( yypParser->yytos>=yypParser->yystackEnd ){
168825 80510 362 }else if( yyact <= YY_MAX_SHIFTREDUCE ){
168831 359 3 }else if( yyact==YY_ACCEPT_ACTION ){
169412 38777 608 if( n>=2 ){
169414 42936 18893 for(i=((int)aKWHash[i])-1; i>=0; i=((int)aKWNext[i])-1){
169415 22699 20237 if( aKWLen[i]!=n ) continue;
169418 188 20049 if( (z[0]&~0x20)!=zKW[0] ) continue;
169419 140 19909 if( (z[1]&~0x20)!=zKW[1] ) continue;
169421 62483 19884 while( j
62458 25 while( j
169429 25 19884 if( j
169590 0 0 if( i<0 || i>=SQLITE_N_KEYWORD ) return SQLITE_ERROR;
0 0 if( i<0 || i>=SQLITE_N_KEYWORD ) return SQLITE_ERROR;
169655 0 0 }while( t==TK_SPACE );
169656 0 0 if( t==TK_ID
169657 0 0 || t==TK_STRING
169658 0 0 || t==TK_JOIN_KW
169659 0 0 || t==TK_WINDOW
169660 0 0 || t==TK_OVER
169661 0 0 || sqlite3ParserFallback(t)==TK_ID
169702 0 0 if( t!=TK_ID ) return TK_ID;
169704 0 0 if( t!=TK_AS ) return TK_ID;
169708 0 0 if( lastToken==TK_RP ){
169710 0 0 if( t==TK_LP || t==TK_ID ) return TK_OVER;
0 0 if( t==TK_LP || t==TK_ID ) return TK_OVER;
169715 0 0 if( lastToken==TK_RP && getToken(&z)==TK_LP ){
0 0 if( lastToken==TK_RP && getToken(&z)==TK_LP ){
169737 5696 38971 for(i=1; sqlite3Isspace(z[i]); i++){}
169742 3 1 if( z[1]=='-' ){
169743 51 1 for(i=2; (c=z[i])!=0 && c!='\n'; i++){}
49 2 for(i=2; (c=z[i])!=0 && c!='\n'; i++){}
169746 0 1 }else if( z[1]=='>' ){
169748 0 0 return 2 + (z[2]=='>');
169774 1 0 if( z[1]!='*' || z[2]==0 ){
0 1 if( z[1]!='*' || z[2]==0 ){
169778 1 25 for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){}
0 1 for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){}
25 0 for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){}
169779 1 0 if( c ) i++;
169789 0 2661 return 1 + (z[1]=='=');
169792 12 7 if( (c=z[1])=='=' ){
169795 0 7 }else if( c=='>' ){
169798 0 7 }else if( c=='<' ){
169807 14 20 if( (c=z[1])=='=' ){
169810 0 20 }else if( c=='>' ){
169819 0 245 if( z[1]!='=' ){
169828 0 0 if( z[1]!='|' ){
169853 50873 0 for(i=1; (c=z[i])!=0; i++){
169854 4311 46562 if( c==delim ){
169855 172 4139 if( z[i+1]==delim ){
169862 3176 963 if( c=='\'' ){
169865 963 0 }else if( c!=0 ){
169875 1228 0 if( !sqlite3Isdigit(z[1]) )
169892 2199 644 if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){
2199 0 if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){
0 2199 if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){
0 0 if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){
169893 0 0 for(i=3; sqlite3Isxdigit(z[i]); i++){}
169897 3373 2843 for(i=0; sqlite3Isdigit(z[i]); i++){}
169899 2166 677 if( z[i]=='.' ){
169901 32444 2166 while( sqlite3Isdigit(z[i]) ){ i++; }
169904 2843 0 if( (z[i]=='e' || z[i]=='E') &&
0 2843 if( (z[i]=='e' || z[i]=='E') &&
0 0 if( (z[i]=='e' || z[i]=='E') &&
169906 0 0 || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2]))
0 0 || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2]))
0 0 || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2]))
169910 0 0 while( sqlite3Isdigit(z[i]) ){ i++; }
169914 0 2843 while( IdChar(z[i]) ){
169921 18 6 for(i=1, c=z[0]; c!=']' && (c=z[i])!=0; i++){}
18 0 for(i=1, c=z[0]; c!=']' && (c=z[i])!=0; i++){}
169922 6 0 *tokenType = c==']' ? TK_ID : TK_ILLEGAL;
169927 13 1384 for(i=1; sqlite3Isdigit(z[i]); i++){}
169936 977 306 for(i=1; (c=z[i])!=0; i++){
169937 655 322 if( IdChar(c) ){
169940 0 322 }else if( c=='(' && n>0 ){
0 0 }else if( c=='(' && n>0 ){
169943 0 0 }while( (c=z[i])!=0 && !sqlite3Isspace(c) && c!=')' );
0 0 }while( (c=z[i])!=0 && !sqlite3Isspace(c) && c!=')' );
0 0 }while( (c=z[i])!=0 && !sqlite3Isspace(c) && c!=')' );
169944 0 0 if( c==')' ){
169950 0 322 }else if( c==':' && z[i+1]==':' ){
0 0 }else if( c==':' && z[i+1]==':' ){
169957 0 628 if( n==0 ) *tokenType = TK_ILLEGAL;
169961 185126 40093 for(i=1; aiClass[z[i]]<=CC_KYWD; i++){}
169962 708 39385 if( IdChar(z[i]) ){
169975 6 477 if( z[1]=='\'' ){
169977 327680 6 for(i=2; sqlite3Isxdigit(z[i]); i++){}
169978 6 0 if( z[i]!='\'' || i%2 ){
0 6 if( z[i]!='\'' || i%2 ){
169980 0 0 while( z[i] && z[i]!='\'' ){ i++; }
0 0 while( z[i] && z[i]!='\'' ){ i++; }
169982 6 0 if( z[i] ) i++;
169996 0 0 if( z[1]==0xbb && z[2]==0xbf ){
0 0 if( z[1]==0xbb && z[2]==0xbf ){
170012 3241 1190 while( IdChar(z[i]) ){ i++; }
170036 5547 935 if( db->nVdbeActive==0 ){
170068 0 120190 if( mxSqlLen<0 ){
170074 46044 74146 if( tokenType>=TK_WINDOW ){
170082 0 46044 if( AtomicLoad(&db->u1.isInterrupted) ){
170087 38959 7085 if( tokenType==TK_SPACE ){
170091 7085 0 if( zSql[0]==0 ){
170094 359 6726 if( lastTokenParsed==TK_SEMI ){
170096 359 6367 }else if( lastTokenParsed==0 ){
170103 0 0 }else if( tokenType==TK_WINDOW ){
170106 0 0 }else if( tokenType==TK_OVER ){
170109 0 0 }else if( tokenType==TK_FILTER ){
170127 6123 74749 if( pParse->rc!=SQLITE_OK ) break;
170142 0 6482 if( db->mallocFailed ){
170145 6456 26 if( pParse->zErrMsg || (pParse->rc!=SQLITE_OK && pParse->rc!=SQLITE_DONE) ){
6097 359 if( pParse->zErrMsg || (pParse->rc!=SQLITE_OK && pParse->rc!=SQLITE_DONE) ){
0 6097 if( pParse->zErrMsg || (pParse->rc!=SQLITE_OK && pParse->rc!=SQLITE_DONE) ){
170146 0 26 if( pParse->zErrMsg==0 ){
170157 297 6185 if( pParse->pNewTable && !IN_SPECIAL_PARSE ){
266 31 if( pParse->pNewTable && !IN_SPECIAL_PARSE ){
170164 0 6482 if( pParse->pNewTrigger && !IN_RENAME_OBJECT ){
0 0 if( pParse->pNewTrigger && !IN_RENAME_OBJECT ){
170167 0 6482 if( pParse->pVList ) sqlite3DbFreeNN(db, pParse->pVList);
170453 0 0 while( *zSql ){
170468 0 0 if( zSql[1]!='*' ){
170473 0 0 while( zSql[0] && (zSql[0]!='*' || zSql[1]!='/') ){ zSql++; }
0 0 while( zSql[0] && (zSql[0]!='*' || zSql[1]!='/') ){ zSql++; }
0 0 while( zSql[0] && (zSql[0]!='*' || zSql[1]!='/') ){ zSql++; }
170474 0 0 if( zSql[0]==0 ) return 0;
170480 0 0 if( zSql[1]!='-' ){
170484 0 0 while( *zSql && *zSql!='\n' ){ zSql++; }
0 0 while( *zSql && *zSql!='\n' ){ zSql++; }
170485 0 0 if( *zSql==0 ) return state==1;
170491 0 0 while( *zSql && *zSql!=']' ){ zSql++; }
0 0 while( *zSql && *zSql!=']' ){ zSql++; }
170492 0 0 if( *zSql==0 ) return 0;
170501 0 0 while( *zSql && *zSql!=c ){ zSql++; }
0 0 while( *zSql && *zSql!=c ){ zSql++; }
170502 0 0 if( *zSql==0 ) return 0;
170510 0 0 if( IdChar((u8)*zSql) ){
170513 0 0 for(nId=1; IdChar(zSql[nId]); nId++){}
170519 0 0 if( nId==6 && sqlite3StrNICmp(zSql, "create", 6)==0 ){
0 0 if( nId==6 && sqlite3StrNICmp(zSql, "create", 6)==0 ){
170527 0 0 if( nId==7 && sqlite3StrNICmp(zSql, "trigger", 7)==0 ){
0 0 if( nId==7 && sqlite3StrNICmp(zSql, "trigger", 7)==0 ){
170529 0 0 }else if( nId==4 && sqlite3StrNICmp(zSql, "temp", 4)==0 ){
0 0 }else if( nId==4 && sqlite3StrNICmp(zSql, "temp", 4)==0 ){
170531 0 0 }else if( nId==9 && sqlite3StrNICmp(zSql, "temporary", 9)==0 ){
0 0 }else if( nId==9 && sqlite3StrNICmp(zSql, "temporary", 9)==0 ){
170539 0 0 if( nId==3 && sqlite3StrNICmp(zSql, "end", 3)==0 ){
0 0 if( nId==3 && sqlite3StrNICmp(zSql, "end", 3)==0 ){
170543 0 0 if( nId==7 && sqlite3StrNICmp(zSql, "explain", 7)==0 ){
0 0 if( nId==7 && sqlite3StrNICmp(zSql, "explain", 7)==0 ){
170585 0 0 if( rc ) return rc;
170590 0 0 if( zSql8 ){
170920 75456 880 if( sqlite3GlobalConfig.isInit ){
170934 0 880 if( rc ) return rc;
170945 110 770 if( !sqlite3GlobalConfig.isMallocInit ){
170948 880 0 if( rc==SQLITE_OK ){
170950 110 770 if( !sqlite3GlobalConfig.pInitMutex ){
170953 110 0 if( sqlite3GlobalConfig.bCoreMutex && !sqlite3GlobalConfig.pInitMutex ){
0 110 if( sqlite3GlobalConfig.bCoreMutex && !sqlite3GlobalConfig.pInitMutex ){
170958 880 0 if( rc==SQLITE_OK ){
170966 0 880 if( rc!=SQLITE_OK ){
170984 880 0 if( sqlite3GlobalConfig.isInit==0 && sqlite3GlobalConfig.inProgress==0 ){
110 770 if( sqlite3GlobalConfig.isInit==0 && sqlite3GlobalConfig.inProgress==0 ){
170994 110 0 if( sqlite3GlobalConfig.isPCacheInit==0 ){
170997 110 0 if( rc==SQLITE_OK ){
171002 110 0 if( rc==SQLITE_OK ){
171006 110 0 if( rc==SQLITE_OK ){
171024 110 770 if( sqlite3GlobalConfig.nRefInitMutex<=0 ){
171079 0 0 if( sqlite3GlobalConfig.isInit ){
171088 0 0 if( sqlite3GlobalConfig.isPCacheInit ){
171092 0 0 if( sqlite3GlobalConfig.isMallocInit ){
171108 0 0 if( sqlite3GlobalConfig.isMutexInit ){
171131 0 220 if( sqlite3GlobalConfig.isInit ) return SQLITE_MISUSE_BKPT;
171169 0 0 sqlite3GlobalConfig.mutex = *va_arg(ap, sqlite3_mutex_methods*);
171176 0 0 *va_arg(ap, sqlite3_mutex_methods*) = sqlite3GlobalConfig.mutex;
171187 110 0 sqlite3GlobalConfig.m = *va_arg(ap, sqlite3_mem_methods*);
171195 0 0 if( sqlite3GlobalConfig.m.xMalloc==0 ) sqlite3MemSetDefault();
171196 0 0 *va_arg(ap, sqlite3_mem_methods*) = sqlite3GlobalConfig.m;
171203 0 0 sqlite3GlobalConfig.bMemstat = va_arg(ap, int);
171207 0 0 sqlite3GlobalConfig.bSmallMalloc = va_arg(ap, int);
171215 0 0 sqlite3GlobalConfig.pPage = va_arg(ap, void*);
171216 0 0 sqlite3GlobalConfig.szPage = va_arg(ap, int);
171217 0 0 sqlite3GlobalConfig.nPage = va_arg(ap, int);
171225 0 0 *va_arg(ap, int*) =
171247 110 0 sqlite3GlobalConfig.pcache2 = *va_arg(ap, sqlite3_pcache_methods2*);
171255 0 0 if( sqlite3GlobalConfig.pcache2.xInit==0 ){
171258 0 0 *va_arg(ap, sqlite3_pcache_methods2*) = sqlite3GlobalConfig.pcache2;
171308 0 0 sqlite3GlobalConfig.szLookaside = va_arg(ap, int);
171309 0 0 sqlite3GlobalConfig.nLookaside = va_arg(ap, int);
171323 0 0 sqlite3GlobalConfig.xLog = va_arg(ap, LOGFUNC_t);
171324 0 0 sqlite3GlobalConfig.pLogArg = va_arg(ap, void*);
171338 0 0 sqlite3GlobalConfig.bOpenUri = va_arg(ap, int);
171347 0 0 sqlite3GlobalConfig.bUseCis = va_arg(ap, int);
171365 0 0 sqlite3_int64 szMmap = va_arg(ap, sqlite3_int64);
171366 0 0 sqlite3_int64 mxMmap = va_arg(ap, sqlite3_int64);
171375 0 0 if( mxMmap<0 || mxMmap>SQLITE_MAX_MMAP_SIZE ){
0 0 if( mxMmap<0 || mxMmap>SQLITE_MAX_MMAP_SIZE ){
171378 0 0 if( szMmap<0 ) szMmap = SQLITE_DEFAULT_MMAP_SIZE;
171379 0 0 if( szMmap>mxMmap) szMmap = mxMmap;
171396 0 0 sqlite3GlobalConfig.szPma = va_arg(ap, unsigned int);
171401 0 0 sqlite3GlobalConfig.nStmtSpill = va_arg(ap, int);
171418 0 0 sqlite3GlobalConfig.mxMemdbSize = va_arg(ap, sqlite3_int64);
171450 0 311 if( sqlite3LookasideUsed(db,0)>0 ){
171457 0 311 if( db->lookaside.bMalloced ){
171464 0 311 if( sz<=(int)sizeof(LookasideSlot*) ) sz = 0;
171465 0 311 if( cnt<0 ) cnt = 0;
171466 311 0 if( sz==0 || cnt==0 ){
0 311 if( sz==0 || cnt==0 ){
171469 311 0 }else if( pBuf==0 ){
171473 311 0 if( pStart ) szAlloc = sqlite3MallocSize(pStart);
171478 311 0 if( sz>=LOOKASIDE_SMALL*3 ){
171481 0 0 }else if( sz>=LOOKASIDE_SMALL*2 ){
171486 0 0 if( sz>0 ){
171497 311 0 if( pStart ){
171502 9330 311 for(i=0; i
171511 28923 311 for(i=0; i
171565 0 0 for(i=0; inDb; i++){
171567 0 0 if( pBt ){
171591 0 0 for(i=0; rc==SQLITE_OK && inDb; i++){
0 0 for(i=0; rc==SQLITE_OK && inDb; i++){
171593 0 0 if( pBt && sqlite3BtreeTxnState(pBt)==SQLITE_TXN_WRITE ){
0 0 if( pBt && sqlite3BtreeTxnState(pBt)==SQLITE_TXN_WRITE ){
171596 0 0 if( rc==SQLITE_BUSY ){
171604 0 0 return ((rc==SQLITE_OK && bSeenBusy) ? SQLITE_BUSY : rc);
0 0 return ((rc==SQLITE_OK && bSeenBusy) ? SQLITE_BUSY : rc);
171618 0 0 db->aDb[0].zDbSName = va_arg(ap,char*);
171623 0 0 void *pBuf = va_arg(ap, void*); /* IMP: R-26835-10964 */
171624 0 0 int sz = va_arg(ap, int); /* IMP: R-47871-25994 */
171625 0 0 int cnt = va_arg(ap, int); /* IMP: R-04460-53386 */
171654 4398 0 for(i=0; i
171655 1008 3390 if( aFlagOp[i].op==op ){
171656 1008 0 int onoff = va_arg(ap, int);
171657 1008 0 int *pRes = va_arg(ap, int*);
171659 334 674 if( onoff>0 ){
171661 26 648 }else if( onoff==0 ){
171664 352 656 if( oldFlags!=db->flags ){
171667 700 308 if( pRes ){
171698 596 1109 if( rc==0 ){
171715 0 0 while( nKey1 && pK1[nKey1-1]==' ' ) nKey1--;
0 0 while( nKey1 && pK1[nKey1-1]==' ' ) nKey1--;
171716 0 0 while( nKey2 && pK2[nKey2-1]==' ' ) nKey2--;
0 0 while( nKey2 && pK2[nKey2-1]==' ' ) nKey2--;
171725 322 0 return p==0 || p->xCmp==binCollFunc;
322 0 return p==0 || p->xCmp==binCollFunc;
171745 0 0 if( 0==r ){
171817 13 545 while( db->pSavepoint ){
171837 2472 7666 if( pDestructor ){
171839 2472 0 if( pDestructor->nRef==0 ){
171855 657 326 for(i=0; inDb; i++){
171857 645 12 if( pSchema ){
171858 750 645 for(p=sqliteHashFirst(&pSchema->tblHash); p; p=sqliteHashNext(p)){
171860 32 718 if( IsVirtual(pTab) ) sqlite3VtabDisconnect(db, pTab);
171864 3214 326 for(p=sqliteHashFirst(&db->aModule); p; p=sqliteHashNext(p)){
171866 0 3214 if( pMod->pEpoTab ){
171884 11 630 if( db->pVdbe ) return 1;
171885 1270 630 for(j=0; jnDb; j++){
171887 694 576 if( pBt && sqlite3BtreeIsInBackup(pBt) ) return 1;
0 694 if( pBt && sqlite3BtreeIsInBackup(pBt) ) return 1;
171896 0 326 if( !db ){
171901 0 326 if( !sqlite3SafetyCheckSickOrOk(db) ){
171905 0 326 if( db->mTrace & SQLITE_TRACE_CLOSE ){
171924 326 0 if( !forceZombie && connectionIsBusy(db) ){
11 315 if( !forceZombie && connectionIsBusy(db) ){
171959 0 0 if( zSchema ){
171961 0 0 if( iDb<0 ) nDb--;
171966 0 0 for(; iDb<=nDb; iDb++){
171968 0 0 int x = pBt!=0 ? sqlite3BtreeTxnState(pBt) : SQLITE_TXN_NONE;
171969 0 0 if( x>iTxn ) iTxn = x;
172004 315 1820 if( db->eOpenState!=SQLITE_STATE_ZOMBIE || connectionIsBusy(db) ){
0 315 if( db->eOpenState!=SQLITE_STATE_ZOMBIE || connectionIsBusy(db) ){
172025 635 315 for(j=0; jnDb; j++){
172027 347 288 if( pDb->pBt ){
172030 314 33 if( j!=1 ){
172036 309 6 if( db->aDb[1].pSchema ){
172051 4432 315 for(i=sqliteHashFirst(&db->aFunc); i; i=sqliteHashNext(i)){
172059 618 4432 }while( p );
172062 961 315 for(i=sqliteHashFirst(&db->aCollSeq); i; i=sqliteHashNext(i)){
172065 2883 961 for(j=0; j<3; j++){
172066 0 2883 if( pColl[j].xDel ){
172074 3103 315 for(i=sqliteHashFirst(&db->aModule); i; i=sqliteHashNext(i)){
172099 0 315 if( db->xAutovacDestr ){
172106 309 6 if( db->lookaside.bMalloced ){
172133 5 361 schemaChange = (db->mDbFlags & DBFLAG_SchemaChange)!=0 && db->init.busy==0;
5 0 schemaChange = (db->mDbFlags & DBFLAG_SchemaChange)!=0 && db->init.busy==0;
172135 737 366 for(i=0; inDb; i++){
172137 402 335 if( p ){
172138 44 358 if( sqlite3BtreeTxnState(p)==SQLITE_TXN_WRITE ){
172147 5 361 if( schemaChange ){
172159 2 364 if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){
0 2 if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){
0 0 if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){
172332 23 0 if( ALWAYS(rc>=0) && rc
23 0 if( ALWAYS(rc>=0) && rc
23 0 if( ALWAYS(rc>=0) && rc
172367 120 58 if( count < NDELAY ){
172374 14 164 if( prior + delay > tmout ){
172376 7 7 if( delay<=0 ) return 0;
172404 180 0 if( p->xBusyHandler==0 || p->nBusy<0 ) return 0;
2 178 if( p->xBusyHandler==0 || p->nBusy<0 ) return 0;
172406 7 171 if( rc==0 ){
172454 2 2 if( nOps>0 ){
172476 321 2 if( ms>0 ){
172524 5088 0 if( zFunctionName==0 /* Must have a valid name */
172525 5040 48 || (xSFunc!=0 && xFinal!=0) /* Not both xSFunc and xFinal */
5040 0 || (xSFunc!=0 && xFinal!=0) /* Not both xSFunc and xFinal */
172526 5088 0 || ((xFinal==0)!=(xStep==0)) /* Both or neither of xFinal and xStep */
172527 5088 0 || ((xValue==0)!=(xInverse==0)) /* Both or neither of xValue, xInverse */
172528 5088 0 || (nArg<-1 || nArg>SQLITE_MAX_FUNCTION_ARG)
5088 0 || (nArg<-1 || nArg>SQLITE_MAX_FUNCTION_ARG)
172529 0 5088 || (255
172563 0 0 if( rc==SQLITE_OK ){
172568 0 0 if( rc!=SQLITE_OK ){
172592 6 5082 if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==(u32)enc && p->nArg==nArg ){
6 0 if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==(u32)enc && p->nArg==nArg ){
6 0 if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==(u32)enc && p->nArg==nArg ){
172593 0 6 if( db->nVdbeActive ){
172601 42 5040 }else if( xSFunc==0 && xFinal==0 ){
0 42 }else if( xSFunc==0 && xFinal==0 ){
172609 0 5088 if( !p ){
172617 2488 2600 if( pDestructor ){
172624 5040 48 p->xSFunc = xSFunc ? xSFunc : xStep;
172662 2488 2600 if( xDestroy ){
172664 0 2488 if( !pArg ){
172676 2488 2600 if( pArg && pArg->nRef==0 ){
0 2488 if( pArg && pArg->nRef==0 ){
172813 311 2488 if( rc ) return SQLITE_OK;
172815 0 2488 if( zCopy==0 ) return SQLITE_NOMEM;
172841 4 2 db->mTrace = xTrace ? SQLITE_TRACE_LEGACY : 0;
172863 0 0 if( mTrace==0 ) xTrace = 0;
172864 0 0 if( xTrace==0 ) mTrace = 0;
172899 4 2 if( db->xProfile ) db->mTrace |= SQLITE_TRACE_XPROFILE;
173020 0 0 if( db->xAutovacDestr ){
173044 0 0 if( nFrame>=SQLITE_PTR_TO_INT(pClientData) ){
173072 311 0 if( nFrame>0 ){
173130 0 0 if( pnLog ) *pnLog = -1;
173131 0 0 if( pnCkpt ) *pnCkpt = -1;
173137 0 0 if( eModeSQLITE_CHECKPOINT_TRUNCATE ){
0 0 if( eModeSQLITE_CHECKPOINT_TRUNCATE ){
173144 0 0 if( zDb && zDb[0] ){
0 0 if( zDb && zDb[0] ){
173149 0 0 if( iDb<0 ){
173161 0 0 if( db->nVdbeActive==0 ){
173214 0 0 for(i=0; inDb && rc==SQLITE_OK; i++){
0 0 for(i=0; inDb && rc==SQLITE_OK; i++){
173215 0 0 if( i==iDb || iDb==SQLITE_MAX_DB ){
0 0 if( i==iDb || iDb==SQLITE_MAX_DB ){
173219 0 0 if( rc==SQLITE_BUSY ){
173226 0 0 return (rc==SQLITE_OK && bBusy) ? SQLITE_BUSY : rc;
0 0 return (rc==SQLITE_OK && bBusy) ? SQLITE_BUSY : rc;
173272 0 128 if( !db ){
173275 0 128 if( !sqlite3SafetyCheckSickOrOk(db) ){
173279 0 128 if( db->mallocFailed ){
173283 128 0 z = db->errCode ? (char*)sqlite3_value_text(db->pErr) : 0;
173285 17 111 if( z==0 ){
173298 1 0 if( db && sqlite3SafetyCheckSickOrOk(db) && db->errCode ){
1 0 if( db && sqlite3SafetyCheckSickOrOk(db) && db->errCode ){
1 0 if( db && sqlite3SafetyCheckSickOrOk(db) && db->errCode ){
173322 0 0 if( !db ){
173325 0 0 if( !sqlite3SafetyCheckSickOrOk(db) ){
173329 0 0 if( db->mallocFailed ){
173333 0 0 if( z==0 ){
173354 947 0 if( db && !sqlite3SafetyCheckSickOrOk(db) ){
0 947 if( db && !sqlite3SafetyCheckSickOrOk(db) ){
173357 947 0 if( !db || db->mallocFailed ){
0 947 if( !db || db->mallocFailed ){
173363 0 0 if( db && !sqlite3SafetyCheckSickOrOk(db) ){
0 0 if( db && !sqlite3SafetyCheckSickOrOk(db) ){
173366 0 0 if( !db || db->mallocFailed ){
0 0 if( !db || db->mallocFailed ){
173372 0 0 return db ? db->iSysErrno : 0;
173408 1601 0 if( enc2==SQLITE_UTF16 || enc2==SQLITE_UTF16_ALIGNED ){
0 1601 if( enc2==SQLITE_UTF16 || enc2==SQLITE_UTF16_ALIGNED ){
173411 1601 0 if( enc2SQLITE_UTF16BE ){
0 1601 if( enc2SQLITE_UTF16BE ){
173420 634 967 if( pColl && pColl->xCmp ){
0 634 if( pColl && pColl->xCmp ){
173421 0 0 if( db->nVdbeActive ){
173434 0 0 if( (pColl->enc & ~SQLITE_UTF16_ALIGNED)==enc2 ){
173437 0 0 for(j=0; j<3; j++){
173439 0 0 if( p->enc==pColl->enc ){
173440 0 0 if( p->xDel ){
173450 0 1601 if( pColl==0 ) return SQLITE_NOMEM_BKPT;
173559 6 0 if( limitId<0 || limitId>=SQLITE_N_LIMIT ){
0 6 if( limitId<0 || limitId>=SQLITE_N_LIMIT ){
173563 2 4 if( newLimit>=0 ){ /* IMP: R-52476-28732 */
173564 0 2 if( newLimit>aHardLimit[limitId] ){
173566 0 2 }else if( newLimit<1 && limitId==SQLITE_LIMIT_LENGTH ){
0 0 }else if( newLimit<1 && limitId==SQLITE_LIMIT_LENGTH ){
173617 309 13 if( ((flags & SQLITE_OPEN_URI) /* IMP: R-48725-32206 */
173618 0 309 || sqlite3GlobalConfig.bOpenUri) /* IMP: R-51689-46548 */
173619 13 0 && nUri>=5 && memcmp(zUri, "file:", 5)==0 /* IMP: R-57884-37496 */
12 1 && nUri>=5 && memcmp(zUri, "file:", 5)==0 /* IMP: R-57884-37496 */
173631 214 12 for(iIn=0; iIn
173633 0 12 if( !zFile ) return SQLITE_NOMEM_BKPT;
173653 0 12 if( zUri[5]=='/' && zUri[6]=='/' ){
0 0 if( zUri[5]=='/' && zUri[6]=='/' ){
173655 0 0 while( zUri[iIn] && zUri[iIn]!='/' ) iIn++;
0 0 while( zUri[iIn] && zUri[iIn]!='/' ) iIn++;
173656 0 0 if( iIn!=7 && (iIn!=16 || memcmp("localhost", &zUri[7], 9)) ){
0 0 if( iIn!=7 && (iIn!=16 || memcmp("localhost", &zUri[7], 9)) ){
0 0 if( iIn!=7 && (iIn!=16 || memcmp("localhost", &zUri[7], 9)) ){
173676 154 12 while( (c = zUri[iIn])!=0 && c!='#' ){
154 0 while( (c = zUri[iIn])!=0 && c!='#' ){
173678 0 154 if( c=='%'
173679 0 0 && sqlite3Isxdigit(zUri[iIn])
173680 0 0 && sqlite3Isxdigit(zUri[iIn+1])
173686 0 0 if( octet==0 ){
173692 0 0 while( (c = zUri[iIn])!=0 && c!='#'
0 0 while( (c = zUri[iIn])!=0 && c!='#'
173693 0 0 && (eState!=0 || c!='?')
0 0 && (eState!=0 || c!='?')
173694 0 0 && (eState!=1 || (c!='=' && c!='&'))
0 0 && (eState!=1 || (c!='=' && c!='&'))
0 0 && (eState!=1 || (c!='=' && c!='&'))
173695 0 0 && (eState!=2 || c!='&')
0 0 && (eState!=2 || c!='&')
173708 50 104 }else if( eState==1 && (c=='&' || c=='=') ){
50 0 }else if( eState==1 && (c=='&' || c=='=') ){
10 40 }else if( eState==1 && (c=='&' || c=='=') ){
173709 0 10 if( zFile[iOut-1]==0 ){
173711 0 0 while( zUri[iIn] && zUri[iIn]!='#' && zUri[iIn-1]!='&' ) iIn++;
0 0 while( zUri[iIn] && zUri[iIn]!='#' && zUri[iIn-1]!='&' ) iIn++;
0 0 while( zUri[iIn] && zUri[iIn]!='#' && zUri[iIn-1]!='&' ) iIn++;
173714 0 10 if( c=='&' ){
173720 82 62 }else if( (eState==0 && c=='?') || (eState==2 && c=='&') ){
72 10 }else if( (eState==0 && c=='?') || (eState==2 && c=='&') ){
22 112 }else if( (eState==0 && c=='?') || (eState==2 && c=='&') ){
0 22 }else if( (eState==0 && c=='?') || (eState==2 && c=='&') ){
173726 0 12 if( eState==1 ) zFile[iOut++] = '\0';
173734 10 12 while( zOpt[0] ){
173739 0 10 if( nOpt==3 && memcmp("vfs", zOpt, 3)==0 ){
0 0 if( nOpt==3 && memcmp("vfs", zOpt, 3)==0 ){
173750 0 10 if( nOpt==5 && memcmp("cache", zOpt, 5)==0 ){
0 0 if( nOpt==5 && memcmp("cache", zOpt, 5)==0 ){
173762 10 0 if( nOpt==4 && memcmp("mode", zOpt, 4)==0 ){
10 0 if( nOpt==4 && memcmp("mode", zOpt, 4)==0 ){
173778 10 0 if( aMode ){
173781 18 0 for(i=0; aMode[i].z; i++){
173783 14 4 if( nVal==sqlite3Strlen30(z) && 0==memcmp(zVal, z, nVal) ){
10 4 if( nVal==sqlite3Strlen30(z) && 0==memcmp(zVal, z, nVal) ){
173788 0 10 if( mode==0 ){
173793 0 10 if( (mode & ~SQLITE_OPEN_MEMORY)>limit ){
173808 0 310 if( !zFile ) return SQLITE_NOMEM_BKPT;
173811 307 3 if( nUri ){
173819 0 322 if( *ppVfs==0 ){
173824 0 322 if( rc!=SQLITE_OK ){
173839 260 0 while( ALWAYS(zFilename!=0) && zFilename[0] ){
28 232 while( ALWAYS(zFilename!=0) && zFilename[0] ){
173842 0 28 if( x==0 ) return zFilename;
173874 0 317 if( rc ) return rc;
173877 0 317 if( sqlite3GlobalConfig.bCoreMutex==0 ){
173879 0 317 }else if( flags & SQLITE_OPEN_NOMUTEX ){
173881 0 317 }else if( flags & SQLITE_OPEN_FULLMUTEX ){
173887 0 317 if( flags & SQLITE_OPEN_PRIVATECACHE ){
173889 0 317 }else if( sqlite3GlobalConfig.sharedCacheEnabled ){
173918 0 317 if( db==0 ) goto opendb_out;
173919 317 0 if( isThreadsafe
173925 0 317 if( db->mutex==0 ){
173935 0 317 db->errMask = (flags & SQLITE_OPEN_EXRESCODE)!=0 ? 0xffffffff : 0xff;
174044 0 317 if( db->mallocFailed ){
174067 0 317 if( ((1<<(flags&7)) & 0x46)==0 ){
174072 0 317 if( rc!=SQLITE_OK ){
174073 0 0 if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);
174074 0 0 sqlite3ErrorWithMsg(db, rc, zErrMsg ? "%s" : 0, zErrMsg);
174082 6 311 if( rc!=SQLITE_OK ){
174083 0 6 if( rc==SQLITE_IOERR_NOMEM ){
174091 311 0 if( !db->mallocFailed ){
174106 0 311 if( db->mallocFailed ){
174120 1866 0 for(i=0; rc==SQLITE_OK && i
1555 311 for(i=0; rc==SQLITE_OK && i
174127 311 0 if( rc==SQLITE_OK ){
174130 0 311 if( rc!=SQLITE_OK ){
174152 0 311 if( rc ) sqlite3Error(db, rc);
174161 317 0 if( db ){
174168 0 317 if( (rc&0xff)==SQLITE_NOMEM ){
174171 6 311 }else if( rc!=SQLITE_OK ){
174224 0 0 if( rc ) return rc;
174226 0 0 if( zFilename==0 ) zFilename = "\000\000";
174230 0 0 if( zFilename8 ){
174234 0 0 if( rc==SQLITE_OK && !DbHasProperty(*ppDb, 0, DB_SchemaLoaded) ){
0 0 if( rc==SQLITE_OK && !DbHasProperty(*ppDb, 0, DB_SchemaLoaded) ){
174303 0 0 if( zName8 ){
174477 0 13 if( SQLITE_OK!=rc ){
174483 10 3 if( !pTab || IsView(pTab) ){
0 10 if( !pTab || IsView(pTab) ){
174489 10 0 if( zColumnName==0 ){
174492 22 2 for(iCol=0; iColnCol; iCol++){
174494 8 14 if( 0==sqlite3StrICmp(pCol->zCnName, zColumnName) ){
174498 2 8 if( iCol==pTab->nCol ){
174499 2 0 if( HasRowid(pTab) && sqlite3IsRowid(zColumnName) ){
0 2 if( HasRowid(pTab) && sqlite3IsRowid(zColumnName) ){
174501 0 0 pCol = iCol>=0 ? &pTab->aCol[iCol] : 0;
174519 8 0 if( pCol ){
174524 3 5 autoinc = pTab->iPKey==iCol && (pTab->tabFlags & TF_Autoincrement)!=0;
2 1 autoinc = pTab->iPKey==iCol && (pTab->tabFlags & TF_Autoincrement)!=0;
174529 8 0 if( !zCollSeq ){
174540 12 1 if( pzDataType ) *pzDataType = zDataType;
174541 12 1 if( pzCollSeq ) *pzCollSeq = zCollSeq;
174542 12 1 if( pNotNull ) *pNotNull = notnull;
174543 12 1 if( pPrimaryKey ) *pPrimaryKey = primarykey;
174544 12 1 if( pAutoinc ) *pAutoinc = autoinc;
174546 13 0 if( SQLITE_OK==rc && !pTab ){
5 8 if( SQLITE_OK==rc && !pTab ){
174552 5 8 sqlite3ErrorWithMsg(db, rc, (zErrMsg?"%s":0), zErrMsg);
174566 0 0 if( pVfs==0 ) return 0;
174583 0 0 db->errMask = onoff ? 0xffffffff : 0xff;
174600 219 0 if( pBtree ){
174608 0 219 if( op==SQLITE_FCNTL_FILE_POINTER ){
174611 0 219 }else if( op==SQLITE_FCNTL_VFS_POINTER ){
174614 0 219 }else if( op==SQLITE_FCNTL_JOURNAL_POINTER ){
174617 0 219 }else if( op==SQLITE_FCNTL_DATA_VERSION ){
174620 0 219 }else if( op==SQLITE_FCNTL_RESERVE_BYTES ){
174623 0 0 if( iNew>=0 && iNew<=255 ){
0 0 if( iNew>=0 && iNew<=255 ){
174690 0 0 int x = va_arg(ap, int);
174692 0 0 sqlite3 *db = va_arg(ap, sqlite3*);
174694 0 0 if( db && (y = db->aDb[0].pSchema->schema_cookie)!=0 ){ x = y; }
0 0 if( db && (y = db->aDb[0].pSchema->schema_cookie)!=0 ){ x = y; }
174710 0 0 int sz = va_arg(ap, int);
174711 0 0 int *aProg = va_arg(ap, int*);
174737 0 0 sqlite3GlobalConfig.xTestCallback = va_arg(ap, sqlite3FaultFuncType);
174752 0 0 xBenignBegin = va_arg(ap, void_function);
174753 0 0 xBenignEnd = va_arg(ap, void_function);
174774 0 0 unsigned int newVal = va_arg(ap, unsigned int);
174775 0 0 if( newVal ) sqlite3PendingByte = newVal;
174850 0 0 int x = va_arg(ap,int);
174881 0 0 sqlite3 *db = va_arg(ap, sqlite3*);
174882 0 0 db->dbOptFlags = va_arg(ap, u32);
174900 0 0 sqlite3GlobalConfig.bLocaltimeFault = va_arg(ap, int);
174901 0 0 if( sqlite3GlobalConfig.bLocaltimeFault==2 ){
174903 0 0 sqlite3GlobalConfig.xAltLocaltime = va_arg(ap, sqlite3LocaltimeType);
174916 0 0 sqlite3 *db = va_arg(ap, sqlite3*);
174930 0 0 sqlite3GlobalConfig.neverCorrupt = va_arg(ap, int);
174947 0 0 sqlite3GlobalConfig.bExtraSchemaChecks = va_arg(ap, int);
174957 0 0 sqlite3GlobalConfig.iOnceResetThreshold = va_arg(ap, int);
174978 0 0 sqlite3 *db = va_arg(ap, sqlite3*);
174979 0 0 db->nMaxSorterMmap = va_arg(ap, int);
174989 0 0 if( sqlite3GlobalConfig.isInit==0 ) rc = SQLITE_ERROR;
175010 0 0 sqlite3 *db = va_arg(ap, sqlite3*);
175013 0 0 iDb = sqlite3FindDbName(db, va_arg(ap,const char*));
175014 0 0 if( iDb>=0 ){
175016 0 0 db->init.busy = db->init.imposterTable = va_arg(ap,int);
175017 0 0 db->init.newTnum = va_arg(ap,int);
175018 0 0 if( db->init.busy==0 && db->init.newTnum>0 ){
0 0 if( db->init.busy==0 && db->init.newTnum>0 ){
175053 0 0 sqlite3_context *pCtx = va_arg(ap, sqlite3_context*);
175068 0 0 sqlite3 *db = va_arg(ap, sqlite3*);
175069 0 0 u64 *pn = va_arg(ap, sqlite3_uint64*);
175085 0 0 int opTrace = va_arg(ap, int);
175086 0 0 u32 *ptr = va_arg(ap, u32*);
175106 0 0 double rIn = va_arg(ap, double);
175108 0 0 int *pI1 = va_arg(ap,int*);
175109 0 0 u64 *pU64 = va_arg(ap,u64*);
175110 0 0 int *pI2 = va_arg(ap,int*);
175162 0 554 while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
0 554 while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
0 554 while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
0 554 while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
175198 0 0 for(i=0; i
175202 0 0 if( p==0 ) return 0;
175206 0 0 for(i=0; i
175224 0 322 if( p==0 ) return;
175242 232 190 if( zFilename==0 || zParam==0 ) return 0;
0 232 if( zFilename==0 || zParam==0 ) return 0;
175251 0 0 if( zFilename==0 || N<0 ) return 0;
0 0 if( zFilename==0 || N<0 ) return 0;
175254 0 0 while( ALWAYS(zFilename) && zFilename[0] && (N--)>0 ){
0 0 while( ALWAYS(zFilename) && zFilename[0] && (N--)>0 ){
0 0 while( ALWAYS(zFilename) && zFilename[0] && (N--)>0 ){
175258 0 0 return zFilename[0] ? zFilename : 0;
175267 0 410 return z ? sqlite3GetBoolean(z, bDflt) : bDflt;
175280 0 0 if( z && sqlite3DecOrHexToI64(z, &v)==0 ){
0 0 if( z && sqlite3DecOrHexToI64(z, &v)==0 ){
175297 0 0 if( zFilename==0 ) return 0;
175301 0 0 if( zFilename==0 ) return 0;
175304 0 0 while( ALWAYS(zFilename) && zFilename[0] ){
0 0 while( ALWAYS(zFilename) && zFilename[0] ){
175315 0 0 if( zFilename ) zFilename += sqlite3Strlen30(zFilename) + 1;
175324 122 110 int iDb = zDbName ? sqlite3FindDbName(db, zDbName) : 0;
175325 232 0 return iDb<0 ? 0 : db->aDb[iDb].pBt;
175339 0 0 if( N<0 || N>=db->nDb ){
0 0 if( N<0 || N>=db->nDb ){
175359 9 0 return pBt ? sqlite3BtreeGetFilename(pBt) : 0;
175375 4 0 return pBt ? sqlite3BtreeIsReadonly(pBt) : -1;
175533 0 0 if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;
175538 0 0 for(i=0; i
175539 0 0 if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0
175540 0 0 && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0
175556 704 0 if( N>=0 && N
688 16 if( N>=0 && N
177181 138456 340164 }while( vu!=0 );
177201 7182 1242 GETVARINT_INIT(a, p, 0, 0x00, 0x80, *v, 1);
177202 1240 2 GETVARINT_STEP(a, p, 7, 0x7F, 0x4000, *v, 2);
177203 2 0 GETVARINT_STEP(a, p, 14, 0x3FFF, 0x200000, *v, 3);
177204 0 0 GETVARINT_STEP(a, p, 21, 0x1FFFFF, 0x10000000, *v, 4);
177207 0 0 for(shift=28; shift<=63; shift+=7){
177210 0 0 if( (c & 0x80)==0 ) break;
177241 0 0 for(shift=0; shift<=63; shift+=7){
177242 0 0 u64 c = p
177245 0 0 if( (c & 0x80)==0 ) break;
177266 119 0 GETVARINT_STEP(a, ptr, 7, 0x7F, 0x4000, *pi, 2);
177267 0 0 GETVARINT_STEP(a, ptr, 14, 0x3FFF, 0x200000, *pi, 3);
177268 0 0 GETVARINT_STEP(a, ptr, 21, 0x1FFFFF, 0x10000000, *pi, 4);
177284 614 38153 }while( v!=0 );
177306 32 0 if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){
28 4 if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){
25 3 if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){
0 25 if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){
177311 0 7 if( quote=='[' ) quote = ']';
177313 125 0 while( z[iIn] ){
177314 7 118 if( z[iIn]==quote ){
177315 7 0 if( z[iIn+1]!=quote ) break;
177357 0 0 for(p = (*pp)-2; p>=pStart && *p&0x80; p--);
0 0 for(p = (*pp)-2; p>=pStart && *p&0x80; p--);
177377 360 9 for(i=0; iaStmt); i++){
177419 0 32 if( *pRc ) return;
177423 0 32 if( zSql==0 ){
177441 0 0 fts3DbExec(&rc, db,
177458 0 0 return (rc==SQLITE_OK ? fts3DisconnectMethod(pVtab) : rc);
177472 9 0 if( *pRc==SQLITE_OK ){
177479 0 9 zLanguageid = (p->zLanguageid ? p->zLanguageid : "__langid");
177484 14 0 for(i=1; zCols && inColumn; i++){
5 9 for(i=1; zCols && inColumn; i++){
177493 9 0 if( !zCols || !zSql ){
0 9 if( !zCols || !zSql ){
177514 5 0 if( (*pRc)==SQLITE_OK ) p->bHasStat = 1;
177531 6 2 if( p->zContentTbl==0 ){
177537 14 0 for(i=0; zContentCols && inColumn; i++){
8 6 for(i=0; zContentCols && inColumn; i++){
177541 0 6 if( zLanguageid && zContentCols ){
0 0 if( zLanguageid && zContentCols ){
177544 0 6 if( zContentCols==0 ) rc = SQLITE_NOMEM;
177571 5 3 if( p->bHasDocsize ){
177578 5 3 if( p->bHasStat ){
177592 9 0 if( *pRc==SQLITE_OK ){
177598 0 9 if( !zSql ){
177602 9 0 if( rc==SQLITE_OK ){
177606 0 0 }else if( rc==SQLITE_AUTH ){
177633 51 3 while( *zCsr!='=' ){
177634 6 45 if( *zCsr=='\0' ) return 0;
177640 3 0 if( zValue ){
177656 55 0 if( *pRc==SQLITE_OK ){
177662 55 0 if( z && *pz ){
37 18 if( z && *pz ){
177667 0 55 if( z==0 ) *pRc = SQLITE_NOMEM;
177688 0 0 if( zRet ){
177692 0 0 for(i=0; zInput[i]; i++){
177693 0 0 if( zInput[i]=='"' ) *(z++) = '"';
177731 6 3 if( p->zContentTbl==0 ){
177732 6 0 if( !zFunc ){
177738 8 6 for(i=0; inColumn; i++){
177741 0 6 if( p->zLanguageid ){
177747 6 3 for(i=0; inColumn; i++){
177750 0 3 if( p->zLanguageid ){
177754 3 6 fts3Appendf(pRc, &zRet, " FROM '%q'.'%q%s' AS x",
3 6 fts3Appendf(pRc, &zRet, " FROM '%q'.'%q%s' AS x",
177788 9 0 if( !zFunc ){
177794 14 9 for(i=0; inColumn; i++){
177797 0 9 if( p->zLanguageid ){
177812 0 0 for(i=0; z[i]>='0' && z[i]<='9'; i++){
0 0 for(i=0; z[i]>='0' && z[i]<='9'; i++){
177814 0 0 if( iVal>0x7FFFFFFF ) return -1;
177838 0 0 if( nInt>MAX_NPREFIX ){
177841 0 0 if( nByte==0 ){
177874 0 9 if( zParam && zParam[0] ){
0 0 if( zParam && zParam[0] ){
177877 0 0 for(p=zParam; *p; p++){
177878 0 0 if( *p==',' ) nIndex++;
177884 0 9 if( !aIndex ){
177889 0 9 if( zParam ){
177892 0 0 for(i=1; i
177894 0 0 if( fts3GobbleInt(&p, &nPrefix) ) return SQLITE_ERROR;
177896 0 0 if( nPrefix==0 ){
177949 0 2 if( !zSql ){
177953 0 2 if( rc!=SQLITE_OK ){
177959 2 0 if( rc==SQLITE_OK ){
177969 4 2 for(i=0; i
177976 0 2 if( azCol==0 ){
177980 4 2 for(i=0; i
178058 10 0 if( aCol ){
178062 10 0 if( azNotindexed ){
178065 10 0 if( !aCol || !azNotindexed ){
0 10 if( !aCol || !azNotindexed ){
178081 29 1 for(i=3; rc==SQLITE_OK && i
20 9 for(i=3; rc==SQLITE_OK && i
178087 20 0 if( !pTokenizer
178088 11 9 && strlen(z)>8
178089 6 5 && 0==sqlite3_strnicmp(z, "tokenize", 8)
178090 6 0 && 0==sqlite3Fts3IsIdChar(z[8])
178096 9 5 else if( isFts4 && fts3IsSpecialColumn(z, &nKey, &zVal) ){
3 6 else if( isFts4 && fts3IsSpecialColumn(z, &nKey, &zVal) ){
178112 0 3 if( !zVal ){
178115 18 0 for(iOpt=0; iOpt
178117 3 15 if( nKey==pOp->nOpt && !sqlite3_strnicmp(z, pOp->zOpt, pOp->nOpt) ){
3 0 if( nKey==pOp->nOpt && !sqlite3_strnicmp(z, pOp->zOpt, pOp->nOpt) ){
178123 0 0 if( strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "fts3", 4) ){
0 0 if( strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "fts3", 4) ){
178149 0 0 if( (strlen(zVal)!=3 || sqlite3_strnicmp(zVal, "asc", 3))
0 0 if( (strlen(zVal)!=3 || sqlite3_strnicmp(zVal, "asc", 3))
178150 0 0 && (strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "desc", 4))
0 0 && (strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "desc", 4))
178155 0 0 bDescIdx = (zVal[0]=='d' || zVal[0]=='D');
0 0 bDescIdx = (zVal[0]=='d' || zVal[0]=='D');
178200 9 1 if( rc==SQLITE_OK && zContent ){
3 6 if( rc==SQLITE_OK && zContent ){
178205 2 1 if( nCol==0 ){
178212 2 0 if( rc==SQLITE_OK && zLanguageid ){
0 2 if( rc==SQLITE_OK && zLanguageid ){
178214 0 0 for(j=0; j
178215 0 0 if( sqlite3_stricmp(zLanguageid, aCol[j])==0 ){
178217 0 0 for(k=j; k
178225 1 9 if( rc!=SQLITE_OK ) goto fts3_init_out;
178227 0 9 if( nCol==0 ){
178234 4 5 if( pTokenizer==0 ){
178236 0 4 if( rc!=SQLITE_OK ) goto fts3_init_out;
178241 0 9 if( rc==SQLITE_ERROR ){
178245 0 9 if( rc!=SQLITE_OK ) goto fts3_init_out;
178256 0 9 if( p==0 ){
178267 6 3 p->bHasDocsize = (isFts4 && bNoDocsize==0);
6 0 p->bHasDocsize = (isFts4 && bNoDocsize==0);
178282 9 9 for(i=0; i
178297 14 9 for(iCol=0; iCol
178301 14 0 if( n>0 ){
178312 14 9 for(iCol=0; iCol
178314 0 14 for(i=0; i
178316 0 0 if( zNot && n==(int)strlen(zNot)
0 0 if( zNot && n==(int)strlen(zNot)
178317 0 0 && 0==sqlite3_strnicmp(p->azColumn[iCol], zNot, n)
178325 0 9 for(i=0; i
178326 0 0 if( azNotindexed[i] ){
178332 9 0 if( rc==SQLITE_OK && (zCompress==0)!=(zUncompress==0) ){
0 9 if( rc==SQLITE_OK && (zCompress==0)!=(zUncompress==0) ){
178333 0 0 char const *zMiss = (zCompress==0 ? "compress" : "uncompress");
178339 0 9 if( rc!=SQLITE_OK ) goto fts3_init_out;
178344 8 1 if( isCreate ){
178351 3 6 if( !isFts4 && !isCreate ){
0 3 if( !isFts4 && !isCreate ){
178374 0 10 for(i=0; i
178377 1 9 if( rc!=SQLITE_OK ){
178378 0 1 if( p ){
178380 0 1 }else if( pTokenizer ){
178422 0 0 if( sqlite3_libversion_number()>=3008002 ){
178435 0 0 if( sqlite3_libversion_number()>=3008012 ){
178459 0 63 if( p->bLock ){
178469 63 63 for(i=0; inConstraint; i++){
178472 0 63 if( pCons->usable==0 ){
178473 0 0 if( pCons->op==SQLITE_INDEX_CONSTRAINT_MATCH ){
178487 63 0 bDocid = (pCons->iColumn<0 || pCons->iColumn==p->nColumn+1);
0 63 bDocid = (pCons->iColumn<0 || pCons->iColumn==p->nColumn+1);
178490 63 0 if( iCons<0 && pCons->op==SQLITE_INDEX_CONSTRAINT_EQ && bDocid ){
1 62 if( iCons<0 && pCons->op==SQLITE_INDEX_CONSTRAINT_EQ && bDocid ){
0 1 if( iCons<0 && pCons->op==SQLITE_INDEX_CONSTRAINT_EQ && bDocid ){
178505 62 1 if( pCons->op==SQLITE_INDEX_CONSTRAINT_MATCH
178506 62 0 && pCons->iColumn>=0 && pCons->iColumn<=p->nColumn
62 0 && pCons->iColumn>=0 && pCons->iColumn<=p->nColumn
178514 1 62 if( pCons->op==SQLITE_INDEX_CONSTRAINT_EQ
178515 0 1 && pCons->iColumn==p->nColumn + 2
178520 0 63 if( bDocid ){
178536 0 63 if( pInfo->idxNum==FTS3_DOCID_SEARCH ) fts3SetUniqueFlag(pInfo);
178539 62 1 if( iCons>=0 ){
178543 0 63 if( iLangidCons>=0 ){
178547 0 63 if( iDocidGe>=0 ){
178551 0 63 if( iDocidLe>=0 ){
178559 0 63 if( pInfo->nOrderBy==1 ){
178561 0 0 if( pOrder->iColumn<0 || pOrder->iColumn==p->nColumn+1 ){
0 0 if( pOrder->iColumn<0 || pOrder->iColumn==p->nColumn+1 ){
178562 0 0 if( pOrder->desc ){
178588 0 63 if( !pCsr ){
178603 30 159 if( pCsr->bSeekStmt ){
178605 30 0 if( p->pSeekStmt==0 ){
178652 30 44 if( pCsr->pStmt==0 ){
178655 22 8 if( p->pSeekStmt ){
178660 0 8 if( !zSql ) return SQLITE_NOMEM;
178668 30 0 if( rc==SQLITE_OK ) pCsr->bSeekStmt = 1;
178680 74 17 if( pCsr->isRequireSeek ){
178682 74 0 if( rc==SQLITE_OK ){
178687 74 0 if( SQLITE_ROW==sqlite3_step(pCsr->pStmt) ){
178693 0 0 if( rc==SQLITE_OK && ((Fts3Table *)pCsr->base.pVtab)->zContentTbl==0 ){
0 0 if( rc==SQLITE_OK && ((Fts3Table *)pCsr->base.pVtab)->zContentTbl==0 ){
178704 0 17 if( rc!=SQLITE_OK && pContext ){
0 0 if( rc!=SQLITE_OK && pContext ){
178757 0 57 if( zCsr>zEnd ){
178761 561 33 while( zCsr
537 24 while( zCsr
0 24 while( zCsr
178768 480 57 if( !isFirstTerm ){
178769 0 480 zCsr += fts3GetVarint32(zCsr, &nPrefix);
178770 0 480 if( nPrefix>nBuffer ){
178776 0 537 zCsr += fts3GetVarint32(zCsr, &nSuffix);
178779 537 0 if( nPrefix>zCsr-zNode || nSuffix>zEnd-zCsr || nSuffix==0 ){
537 0 if( nPrefix>zCsr-zNode || nSuffix>zEnd-zCsr || nSuffix==0 ){
0 537 if( nPrefix>zCsr-zNode || nSuffix>zEnd-zCsr || nSuffix==0 ){
178783 96 441 if( (i64)nPrefix+nSuffix>nAlloc ){
178787 0 96 if( !zNew ){
178808 537 0 if( piFirst && (cmp<0 || (cmp==0 && nBuffer>nTerm)) ){
500 37 if( piFirst && (cmp<0 || (cmp==0 && nBuffer>nTerm)) ){
4 496 if( piFirst && (cmp<0 || (cmp==0 && nBuffer>nTerm)) ){
0 4 if( piFirst && (cmp<0 || (cmp==0 && nBuffer>nTerm)) ){
178813 0 537 if( piLast && cmp<0 ){
0 0 if( piLast && cmp<0 ){
178821 20 37 if( piFirst ) *piFirst = (i64)iChild;
178822 0 57 if( piLast ) *piLast = (i64)iChild;
178865 0 57 fts3GetVarint32(zNode, &iHeight);
178869 57 0 if( rc==SQLITE_OK && iHeight>1 ){
0 57 if( rc==SQLITE_OK && iHeight>1 ){
178873 0 0 if( piLeaf && piLeaf2 && (*piLeaf!=*piLeaf2) ){
0 0 if( piLeaf && piLeaf2 && (*piLeaf!=*piLeaf2) ){
0 0 if( piLeaf && piLeaf2 && (*piLeaf!=*piLeaf2) ){
178875 0 0 if( rc==SQLITE_OK ){
178883 0 0 if( rc==SQLITE_OK ){
178884 0 0 rc = sqlite3Fts3ReadBlock(p, piLeaf?*piLeaf:*piLeaf2, &zBlob, &nBlob, 0);
178886 0 0 if( rc==SQLITE_OK ){
178888 0 0 fts3GetVarint32(zBlob, &iNewHeight);
178889 0 0 if( iNewHeight>=iHeight ){
178943 20 192 while( *pEnd | c ){
178949 8 184 if( pp ){
178983 1580 172 while( 0xFE & (*pEnd | c) ){
178987 0 172 if( pp ){
179026 0 0 if( (**pp)&0xFE ){
179028 0 0 *pp += fts3GetVarint32((*pp), &iVal);
179047 0 0 if( iCol ){
179072 0 0 while( *p1 || *p2 ){
0 0 while( *p1 || *p2 ){
179076 0 0 if( *p1==POS_COLUMN ){
179077 0 0 fts3GetVarint32(&p1[1], &iCol1);
179078 0 0 if( iCol1==0 ) return FTS_CORRUPT_VTAB;
179080 0 0 else if( *p1==POS_END ) iCol1 = 0x7fffffff;
179083 0 0 if( *p2==POS_COLUMN ){
179084 0 0 fts3GetVarint32(&p2[1], &iCol2);
179085 0 0 if( iCol2==0 ) return FTS_CORRUPT_VTAB;
179087 0 0 else if( *p2==POS_END ) iCol2 = 0x7fffffff;
179090 0 0 if( iCol1==iCol2 ){
179109 0 0 if( i1<2 || i2<2 ){
0 0 if( i1<2 || i2<2 ){
179115 0 0 if( i1==i2 ){
179118 0 0 }else if( i1
179123 0 0 }while( i1!=POSITION_LIST_END || i2!=POSITION_LIST_END );
0 0 }while( i1!=POSITION_LIST_END || i2!=POSITION_LIST_END );
179124 0 0 }else if( iCol1
179181 0 86 if( *p1==POS_COLUMN ){
179183 0 0 p1 += fts3GetVarint32(p1, &iCol1);
179185 0 86 if( *p2==POS_COLUMN ){
179187 0 0 p2 += fts3GetVarint32(p2, &iCol2);
179191 86 0 if( iCol1==iCol2 ){
179197 0 86 if( iCol1 ){
179204 86 0 if( iPos1<0 || iPos2<0 ) break;
86 0 if( iPos1<0 || iPos2<0 ) break;
179207 7659 142 if( iPos2==iPos1+nToken
179208 0 7659 || (isExact==0 && iPos2>iPos1 && iPos2<=iPos1+nToken)
0 0 || (isExact==0 && iPos2>iPos1 && iPos2<=iPos1+nToken)
0 0 || (isExact==0 && iPos2>iPos1 && iPos2<=iPos1+nToken)
179211 0 142 iSave = isSaveLeft ? iPos1 : iPos2;
179216 7801 0 if( (!isSaveLeft && iPos2<=(iPos1+nToken)) || iPos2<=iPos1 ){
3007 4794 if( (!isSaveLeft && iPos2<=(iPos1+nToken)) || iPos2<=iPos1 ){
0 3007 if( (!isSaveLeft && iPos2<=(iPos1+nToken)) || iPos2<=iPos1 ){
179217 70 4724 if( (*p2&0xFE)==0 ) break;
179220 16 2991 if( (*p1&0xFE)==0 ) break;
179225 6 80 if( pSave ){
179233 0 86 if( 0==*p1 || 0==*p2 ) break;
0 0 if( 0==*p1 || 0==*p2 ) break;
179236 0 0 p1 += fts3GetVarint32(p1, &iCol1);
179238 0 0 p2 += fts3GetVarint32(p2, &iCol2);
179246 0 0 else if( iCol1
179248 0 0 if( 0==*p1 ) break;
179250 0 0 p1 += fts3GetVarint32(p1, &iCol1);
179253 0 0 if( 0==*p2 ) break;
179255 0 0 p2 += fts3GetVarint32(p2, &iCol2);
179263 6 80 if( *pp==p ){
179307 0 0 if( pTmp1!=aTmp && pTmp2!=aTmp2 ){
0 0 if( pTmp1!=aTmp && pTmp2!=aTmp2 ){
179309 0 0 }else if( pTmp1!=aTmp ){
179311 0 0 }else if( pTmp2!=aTmp2 ){
179350 8 8 if( *pp>=pEnd ){
179355 0 8 if( bDescIdx ){
179386 0 8 if( bDescIdx==0 || *pbFirst==0 ){
0 0 if( bDescIdx==0 || *pbFirst==0 ){
179478 0 4 if( !aOut ) return SQLITE_NOMEM;
179483 4 8 while( p1 || p2 ){
4 4 while( p1 || p2 ){
179484 0 8 sqlite3_int64 iDiff = DOCID_CMP(i1, i2);
8 0 sqlite3_int64 iDiff = DOCID_CMP(i1, i2);
0 8 sqlite3_int64 iDiff = DOCID_CMP(i1, i2);
179486 8 0 if( p2 && p1 && iDiff==0 ){
4 4 if( p2 && p1 && iDiff==0 ){
0 4 if( p2 && p1 && iDiff==0 ){
179489 0 0 if( rc ) break;
179492 8 0 }else if( !p2 || (p1 && iDiff<0) ){
4 4 }else if( !p2 || (p1 && iDiff<0) ){
4 0 }else if( !p2 || (p1 && iDiff<0) ){
179505 0 4 if( rc!=SQLITE_OK ){
179548 0 0 if( bDescDoclist ){
179550 0 0 if( aOut==0 ) return SQLITE_NOMEM;
179559 0 0 while( p1 && p2 ){
0 0 while( p1 && p2 ){
179560 0 0 sqlite3_int64 iDiff = DOCID_CMP(i1, i2);
0 0 sqlite3_int64 iDiff = DOCID_CMP(i1, i2);
0 0 sqlite3_int64 iDiff = DOCID_CMP(i1, i2);
179561 0 0 if( iDiff==0 ){
179567 0 0 if( 0==fts3PoslistPhraseMerge(&p, nDist, 0, 1, &p1, &p2) ){
179574 0 0 }else if( iDiff<0 ){
179584 0 0 if( bDescDoclist ){
179611 0 0 if( *p!=0x01 ){
179612 0 0 if( *p==0x02 ){
179620 0 0 while( p
179624 0 0 if( *p==0x02 ){
179625 0 0 if( bWritten==0 ){
179635 0 0 if( bWritten ){
179660 128 8 for(i=0; iaaOutput); i++){
179661 8 120 if( pTS->aaOutput[i] ){
179662 8 0 if( !aOut ){
179673 0 0 if( rc!=SQLITE_OK ){
179712 8 4 if( pTS->aaOutput[0]==0 ){
179731 8 0 if( pTS->aaOutput[0] ){
179742 8 0 for(iOut=0; iOutaaOutput); iOut++){
179743 4 4 if( pTS->aaOutput[iOut]==0 ){
179755 0 4 if( rc!=SQLITE_OK ){
179756 0 0 if( aMerge!=aDoclist ) sqlite3_free(aMerge);
179760 0 4 if( aMerge!=aDoclist ) sqlite3_free(aMerge);
179766 0 4 if( (iOut+1)==SizeofArray(pTS->aaOutput) ){
179783 148 311 if( (pCsr->nSegment%16)==0 ){
179787 0 148 if( !apNew ){
179825 156 0 if( iLevel<0 && p->aIndex && p->iPrevLangid==iLangid ){
155 1 if( iLevel<0 && p->aIndex && p->iPrevLangid==iLangid ){
155 0 if( iLevel<0 && p->aIndex && p->iPrevLangid==iLangid ){
179827 105 50 rc = sqlite3Fts3SegReaderPending(p, iIndex, zTerm, nTerm, isPrefix||isScan, &pSeg);
0 105 rc = sqlite3Fts3SegReaderPending(p, iIndex, zTerm, nTerm, isPrefix||isScan, &pSeg);
179828 155 0 if( rc==SQLITE_OK && pSeg ){
35 120 if( rc==SQLITE_OK && pSeg ){
179833 114 42 if( iLevel!=FTS3_SEGCURSOR_PENDING ){
179834 114 0 if( rc==SQLITE_OK ){
179838 538 0 while( rc==SQLITE_OK && SQLITE_ROW==(rc = sqlite3_step(pStmt)) ){
424 114 while( rc==SQLITE_OK && SQLITE_ROW==(rc = sqlite3_step(pStmt)) ){
179850 57 367 if( iStartBlock && zTerm && zRoot ){
57 0 if( iStartBlock && zTerm && zRoot ){
57 0 if( iStartBlock && zTerm && zRoot ){
179851 0 57 sqlite3_int64 *pi = (isPrefix ? &iLeavesEndBlock : 0);
179853 0 57 if( rc!=SQLITE_OK ) goto finished;
179854 57 0 if( isPrefix==0 && isScan==0 ) iLeavesEndBlock = iStartBlock;
57 0 if( isPrefix==0 && isScan==0 ) iLeavesEndBlock = iStartBlock;
179857 392 32 rc = sqlite3Fts3SegReaderNew(pCsr->nSegment+1,
389 3 rc = sqlite3Fts3SegReaderNew(pCsr->nSegment+1,
179862 0 424 if( rc!=SQLITE_OK ) goto finished;
179869 114 42 if( rc==SQLITE_DONE ) rc = rc2;
179946 113 0 if( pSegcsr ){
179951 8 105 if( isPrefix ){
179952 8 0 for(i=1; bFound==0 && inIndex; i++){
0 8 for(i=1; bFound==0 && inIndex; i++){
179953 0 0 if( p->aIndex[i].nPrefix==nTerm ){
179962 8 0 for(i=1; bFound==0 && inIndex; i++){
0 8 for(i=1; bFound==0 && inIndex; i++){
179963 0 0 if( p->aIndex[i].nPrefix==nTerm+1 ){
179968 0 0 if( rc==SQLITE_OK ){
179977 113 0 if( bFound==0 ){
180017 8 0 | (pTok->isPrefix ? FTS3_SEGMENT_PREFIX : 0)
180018 0 8 | (pTok->bFirst ? FTS3_SEGMENT_FIRST : 0)
180019 8 0 | (iColumnnColumn ? FTS3_SEGMENT_COLUMN_FILTER : 0);
180025 20 0 while( SQLITE_OK==rc
180026 12 8 && SQLITE_ROW==(rc = sqlite3Fts3SegReaderStep(p, pSegcsr))
180031 8 0 if( rc==SQLITE_OK ){
180034 8 0 if( rc==SQLITE_OK ){
180039 0 0 for(i=0; i
180060 0 0 if( aList ){
180063 0 0 while( p
180065 0 0 while( (*p++)&0x80 ); /* Skip docid varint */
180087 183 0 if( pCsr->eSearch==FTS3_DOCID_SEARCH || pCsr->eSearch==FTS3_FULLSCAN_SEARCH ){
11 172 if( pCsr->eSearch==FTS3_DOCID_SEARCH || pCsr->eSearch==FTS3_FULLSCAN_SEARCH ){
180090 1 10 if( SQLITE_ROW!=sqlite3_step(pCsr->pStmt) ){
180111 0 126 if( pVal ){
180113 0 0 if( eType==SQLITE_INTEGER ){
180158 0 63 if( p->bLock ){
180168 62 1 if( eSearch!=FTS3_FULLSCAN_SEARCH ) pCons = apVal[iIdx++];
180169 0 63 if( idxNum & FTS3_HAVE_LANGID ) pLangid = apVal[iIdx++];
180170 0 63 if( idxNum & FTS3_HAVE_DOCID_GE ) pDocidGe = apVal[iIdx++];
180171 0 63 if( idxNum & FTS3_HAVE_DOCID_LE ) pDocidLe = apVal[iIdx++];
180181 0 63 if( idxStr ){
180188 63 0 if( eSearch!=FTS3_DOCID_SEARCH && eSearch!=FTS3_FULLSCAN_SEARCH ){
62 1 if( eSearch!=FTS3_DOCID_SEARCH && eSearch!=FTS3_FULLSCAN_SEARCH ){
180192 0 62 if( zQuery==0 && sqlite3_value_type(pCons)!=SQLITE_NULL ){
0 0 if( zQuery==0 && sqlite3_value_type(pCons)!=SQLITE_NULL ){
180197 0 62 if( pLangid ) pCsr->iLangid = sqlite3_value_int(pLangid);
180204 0 62 if( rc!=SQLITE_OK ){
180210 0 62 if( rc!=SQLITE_OK ) return rc;
180220 1 62 if( eSearch==FTS3_FULLSCAN_SEARCH ){
180221 1 0 if( pDocidGe || pDocidLe ){
0 1 if( pDocidGe || pDocidLe ){
180222 0 0 zSql = sqlite3_mprintf(
180228 0 1 zSql = sqlite3_mprintf("SELECT %s ORDER BY rowid %s",
180232 1 0 if( zSql ){
180242 0 62 }else if( eSearch==FTS3_DOCID_SEARCH ){
180244 0 0 if( rc==SQLITE_OK ){
180248 0 63 if( rc!=SQLITE_OK ) return rc;
180259 63 120 if( pCsr->isEof ){
180313 0 0 if( pCsr->pExpr ){
180316 0 0 }else if( p->zLanguageid==0 ){
180328 75 0 if( rc==SQLITE_OK && sqlite3_data_count(pCsr->pStmt)-1>iCol ){
75 0 if( rc==SQLITE_OK && sqlite3_data_count(pCsr->pStmt)-1>iCol ){
180384 41 0 if( rc==SQLITE_OK
180385 5 36 && p->nLeafAdd>(nMinMerge/16)
180386 2 3 && p->nAutoincrmerge && p->nAutoincrmerge!=0xff
0 2 && p->nAutoincrmerge && p->nAutoincrmerge!=0xff
180395 0 0 if( A>(int)nMinMerge ) rc = sqlite3Fts3Incrmerge(p, A, p->nAutoincrmerge);
180410 0 33 if( p->bHasStat==2 ){
180412 0 0 if( zTbl ){
180484 0 0 while( p>pStart && (c=*p--)==0 );
0 0 while( p>pStart && (c=*p--)==0 );
180489 0 0 while( p>pStart && (*p & 0x80) | c ){
0 0 while( p>pStart && (*p & 0x80) | c ){
180507 0 0 if( p>pStart || (c==0 && *ppPoslist>&p[2]) ){ p = &p[2]; }
0 0 if( p>pStart || (c==0 && *ppPoslist>&p[2]) ){ p = &p[2]; }
0 0 if( p>pStart || (c==0 && *ppPoslist>&p[2]) ){ p = &p[2]; }
180508 0 0 while( *p++&0x80 );
180530 16 0 if( (*ppCsr)!=0 ){
180561 0 12 if( nVal>6 ){
180566 0 12 if( fts3FunctionArg(pContext, "snippet", apVal[0], &pCsr) ) return;
180579 12 0 if( !zEllipsis || !zEnd || !zStart ){
12 0 if( !zEllipsis || !zEnd || !zStart ){
0 12 if( !zEllipsis || !zEnd || !zStart ){
180581 0 12 }else if( nToken==0 ){
180583 12 0 }else if( SQLITE_OK==fts3CursorSeek(pContext, pCsr) ){
180601 0 4 if( fts3FunctionArg(pContext, "offsets", apVal[0], &pCsr) ) return;
180603 4 0 if( SQLITE_OK==fts3CursorSeek(pContext, pCsr) ){
180629 0 0 if( fts3FunctionArg(pContext, "optimize", apVal[0], &pCursor) ) return;
180658 0 0 if( SQLITE_OK==fts3FunctionArg(pContext, "matchinfo", apVal[0], &pCsr) ){
180660 0 0 if( nVal>1 ){
180693 20 0 for(i=0; i
180694 16 4 if( strcmp(zName, aOverload[i].zName)==0 ){
180726 0 0 if( rc==SQLITE_OK ){
180730 0 0 if( p->zContentTbl==0 ){
180737 0 0 if( p->bHasDocsize ){
180743 0 0 if( p->bHasStat ){
180771 0 0 if( ((Fts3Table *)pVtab)->bIgnoreSavepoint==0 ){
180815 208 0 for(i=0; i
180816 68 140 if( sqlite3_stricmp(zName, azName[i])==0 ) return 1;
180856 309 618 if( pHash->nRef<=0 ){
180911 0 311 if( rc!=SQLITE_OK ) return rc;
180918 0 311 if( !pHash ){
180926 311 0 if( rc==SQLITE_OK ){
180927 311 0 if( sqlite3Fts3HashInsert(&pHash->hash, "simple", 7, (void *)pSimple)
180928 311 0 || sqlite3Fts3HashInsert(&pHash->hash, "porter", 7, (void *)pPorter)
180931 0 311 || sqlite3Fts3HashInsert(&pHash->hash, "unicode61", 10, (void *)pUnicode)
180951 311 0 if( SQLITE_OK==rc
180952 311 0 && SQLITE_OK==(rc=sqlite3Fts3InitHashTable(db,&pHash->hash,"fts3_tokenizer"))
180953 311 0 && SQLITE_OK==(rc = sqlite3_overload_function(db, "snippet", -1))
180954 311 0 && SQLITE_OK==(rc = sqlite3_overload_function(db, "offsets", 1))
180955 311 0 && SQLITE_OK==(rc = sqlite3_overload_function(db, "matchinfo", 1))
180956 311 0 && SQLITE_OK==(rc = sqlite3_overload_function(db, "matchinfo", 2))
180957 311 0 && SQLITE_OK==(rc = sqlite3_overload_function(db, "optimize", 1))
180963 311 0 if( rc==SQLITE_OK ){
180969 311 0 if( rc==SQLITE_OK ){
180979 0 0 if( pHash ){
181008 106 0 if( pExpr && SQLITE_OK==*pRc ){
106 0 if( pExpr && SQLITE_OK==*pRc ){
181009 84 22 if( pExpr->eType==FTSQUERY_PHRASE ){
181013 113 84 for(i=0; i
181018 0 113 if( rc!=SQLITE_OK ){
181053 0 8 if( pList==0 ){
181059 8 0 else if( p->iDoclistToken<0 ){
181064 0 0 else if( p->doclist.aAll==0 ){
181075 0 0 if( p->iDoclistToken
181097 8 0 if( iToken>p->iDoclistToken ) p->iDoclistToken = iToken;
181115 16 0 for(iToken=0; rc==SQLITE_OK && iTokennToken; iToken++){
8 8 for(iToken=0; rc==SQLITE_OK && iTokennToken; iToken++){
181119 8 0 if( pToken->pSegcsr ){
181123 8 0 if( rc==SQLITE_OK ){
181149 0 0 char *aFree = (pPhrase->doclist.bFreeList ? pPhrase->doclist.pList : 0);
181151 0 0 for(iToken=0; iTokennToken; iToken++){
181155 0 0 if( pDeferred ){
181159 0 0 if( rc!=SQLITE_OK ) return rc;
181161 0 0 if( pList==0 ){
181168 0 0 }else if( aPoslist==0 ){
181182 0 0 if( nPoslist==0 ){
181194 0 0 if( iPrev>=0 ){
181196 0 0 if( nMaxUndeferred<0 ){
181207 0 0 if( nMaxUndeferred>iPrev ){
181218 0 0 if( !aOut ){
181225 0 0 if( fts3PoslistPhraseMerge(&aOut, nDistance, 0, 1, &p1, &p2) ){
181237 0 0 if( pPhrase->doclist.pList!=aFree ) sqlite3_free(aFree);
181272 84 0 && pCsr->bDesc==pTab->bDescIdx
181273 84 0 && p->nToken<=MAX_INCR_PHRASE_TOKENS && p->nToken>0
84 0 && p->nToken<=MAX_INCR_PHRASE_TOKENS && p->nToken>0
84 0 && p->nToken<=MAX_INCR_PHRASE_TOKENS && p->nToken>0
181278 189 8 for(i=0; bIncrOk==1 && inToken; i++){
113 76 for(i=0; bIncrOk==1 && inToken; i++){
181280 113 0 if( pToken->bFirst || (pToken->pSegcsr!=0 && !pToken->pSegcsr->bLookup) ){
113 0 if( pToken->bFirst || (pToken->pSegcsr!=0 && !pToken->pSegcsr->bLookup) ){
8 105 if( pToken->bFirst || (pToken->pSegcsr!=0 && !pToken->pSegcsr->bLookup) ){
181283 113 0 if( pToken->pSegcsr ) bHaveIncr = 1;
181286 76 8 if( bIncrOk && bHaveIncr ){
76 0 if( bIncrOk && bHaveIncr ){
181288 58 18 int iCol = (p->iColumn >= pTab->nColumn ? -1 : p->iColumn);
181289 181 0 for(i=0; rc==SQLITE_OK && inToken; i++){
105 76 for(i=0; rc==SQLITE_OK && inToken; i++){
181292 105 0 if( pSegcsr ){
181333 0 0 if( p==0 ){
181340 0 0 while( pDocid
181346 0 0 while( pDocid
0 0 while( pDocid
181347 0 0 iMul = (bDescIdx ? -1 : 1);
181354 0 0 int iMul = (bDescIdx ? -1 : 1);
181359 0 0 if( p==aDoclist ){
181388 0 0 if( p==0 ){
181393 0 0 while( p<&aDoclist[nDoclist] && *p==0 ) p++;
0 0 while( p<&aDoclist[nDoclist] && *p==0 ) p++;
181394 0 0 if( p>=&aDoclist[nDoclist] ){
181399 0 0 *piDocid += ((bDescIdx ? -1 : 1) * iVar);
181418 12 8 if( pDL->pNextDocid ){
181425 20 0 if( pIter==0 || pIter>=(pEnd = pDL->aAll + pDL->nAll) ){
8 12 if( pIter==0 || pIter>=(pEnd = pDL->aAll + pDL->nAll) ){
181431 0 12 if( pTab->bDescIdx==0 || pDL->pNextDocid==0 ){
0 0 if( pTab->bDescIdx==0 || pDL->pNextDocid==0 ){
181446 4 8 while( pIter
0 4 while( pIter
181483 0 212 if( pPhrase->iDoclistToken==iToken ){
181494 212 0 if( pToken->pSegcsr ){
181499 18 194 if( p->pList==0 ) *pbEof = 1;
181540 122 90 if( p->nToken==1 ){
181544 48 74 if( pDL->pList==0 ) bEof = 1;
181553 96 18 while( bEof==0 ){
181559 278 0 for(i=0; rc==SQLITE_OK && inToken && bEof==0; i++){
200 78 for(i=0; rc==SQLITE_OK && inToken && bEof==0; i++){
182 18 for(i=0; rc==SQLITE_OK && inToken && bEof==0; i++){
181561 182 0 if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){
86 96 if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){
0 86 if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){
86 0 if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){
73 13 if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){
13 73 if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){
181570 208 96 for(i=0; inToken; i++){
181571 238 0 while( rc==SQLITE_OK && bEof==0
194 44 while( rc==SQLITE_OK && bEof==0
181572 194 0 && a[i].bIgnore==0 && DOCID_CMP(a[i].iDocid, iMax)<0
0 194 && a[i].bIgnore==0 && DOCID_CMP(a[i].iDocid, iMax)<0
194 0 && a[i].bIgnore==0 && DOCID_CMP(a[i].iDocid, iMax)<0
164 30 && a[i].bIgnore==0 && DOCID_CMP(a[i].iDocid, iMax)<0
30 164 && a[i].bIgnore==0 && DOCID_CMP(a[i].iDocid, iMax)<0
181575 0 30 if( DOCID_CMP(a[i].iDocid, iMax)>0 ){
26 4 if( DOCID_CMP(a[i].iDocid, iMax)>0 ){
17 9 if( DOCID_CMP(a[i].iDocid, iMax)>0 ){
4 26 if( DOCID_CMP(a[i].iDocid, iMax)>0 ){
181583 78 18 if( bEof==0 ){
181587 0 78 if( !aDoclist ) return SQLITE_NOMEM;
181591 86 72 for(i=0; i<(p->nToken-1); i++){
181592 86 0 if( a[i].bIgnore==0 ){
181598 6 80 if( res==0 ) break;
181602 72 6 if( i==(p->nToken-1) ){
181636 212 20 if( p->bIncr ){
181638 0 20 }else if( pCsr->bDesc!=pTab->bDescIdx && pDL->nAll ){
0 0 }else if( pCsr->bDesc!=pTab->bDescIdx && pDL->nAll ){
181671 106 0 if( pExpr && SQLITE_OK==*pRc ){
106 0 if( pExpr && SQLITE_OK==*pRc ){
181672 84 22 if( pExpr->eType==FTSQUERY_PHRASE ){
181674 84 0 if( nToken ){
181676 84 0 for(i=0; i
181677 84 0 if( pExpr->pPhrase->aToken[i].pDeferred==0 ) break;
181685 0 22 pExpr->bDeferred = (pExpr->pLeft->bDeferred && pExpr->pRight->bDeferred);
0 0 pExpr->bDeferred = (pExpr->pLeft->bDeferred && pExpr->pRight->bDeferred);
181727 45 0 if( *pRc==SQLITE_OK ){
181728 31 14 if( pExpr->eType==FTSQUERY_PHRASE ){
181731 81 0 for(i=0; *pRc==SQLITE_OK && inToken; i++){
50 31 for(i=0; *pRc==SQLITE_OK && inToken; i++){
181740 12 2 }else if( pExpr->eType!=FTSQUERY_NOT ){
181746 2 10 if( pExpr->eType==FTSQUERY_OR ){
181752 2 10 if( pExpr->eType==FTSQUERY_OR ){
181775 0 0 if( pCsr->nRowAvg==0 ){
181795 0 0 if( rc!=SQLITE_OK ) return rc;
181798 0 0 if( a ){
181801 0 0 while( a
181805 0 0 if( nDoc==0 || nByte==0 ){
0 0 if( nDoc==0 || nByte==0 ){
181855 9 16 if( pTab->zContentTbl ){
181862 38 16 for(ii=0; ii
181863 26 12 if( aTC[ii].pRoot==pRoot ){
181868 0 16 if( nOvfl==0 || nToken<2 ) return SQLITE_OK;
0 0 if( nOvfl==0 || nToken<2 ) return SQLITE_OK;
181897 0 0 for(ii=0; ii
0 0 for(ii=0; ii
181902 0 0 for(iTC=0; iTC
181903 0 0 if( aTC[iTC].pToken && aTC[iTC].pRoot==pRoot
0 0 if( aTC[iTC].pToken && aTC[iTC].pRoot==pRoot
181904 0 0 && (!pTC || aTC[iTC].nOvflnOvfl)
0 0 && (!pTC || aTC[iTC].nOvflnOvfl)
181911 0 0 if( ii && pTC->nOvfl>=((nMinEst+(nLoad4/4)-1)/(nLoad4/4))*nDocSize ){
0 0 if( ii && pTC->nOvfl>=((nMinEst+(nLoad4/4)-1)/(nLoad4/4))*nDocSize ){
181924 0 0 if( ii<12 ) nLoad4 = nLoad4*4;
181926 0 0 if( ii==0 || (pTC->pPhrase->nToken>1 && ii!=nToken-1) ){
0 0 if( ii==0 || (pTC->pPhrase->nToken>1 && ii!=nToken-1) ){
0 0 if( ii==0 || (pTC->pPhrase->nToken>1 && ii!=nToken-1) ){
181935 0 0 if( rc==SQLITE_OK ){
181940 0 0 if( rc==SQLITE_OK ){
181945 0 0 if( ii==0 || nCount
0 0 if( ii==0 || nCount
181978 62 0 if( rc==SQLITE_OK && nToken>1 && pTab->bFts4 ){
33 29 if( rc==SQLITE_OK && nToken>1 && pTab->bFts4 ){
21 12 if( rc==SQLITE_OK && nToken>1 && pTab->bFts4 ){
181985 0 21 if( !aTC ){
181997 21 0 if( rc==SQLITE_OK ){
181999 25 0 for(ii=0; rc==SQLITE_OK && ii
4 21 for(ii=0; rc==SQLITE_OK && ii
182017 72 244 if( pPhrase->doclist.bFreeList ){
182067 0 0 if( res ){
182070 0 0 if( nNew>=0 && nNew<=pPhrase->doclist.nList ){
0 0 if( nNew>=0 && nNew<=pPhrase->doclist.nList ){
182128 301 0 if( *pRc==SQLITE_OK ){
182140 0 45 if( pLeft->bDeferred ){
182146 0 45 }else if( pRight->bDeferred ){
182156 37 11 while( !pLeft->bEof && !pRight->bEof && *pRc==SQLITE_OK ){
34 3 while( !pLeft->bEof && !pRight->bEof && *pRc==SQLITE_OK ){
34 0 while( !pLeft->bEof && !pRight->bEof && *pRc==SQLITE_OK ){
182157 0 34 sqlite3_int64 iDiff = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
34 0 sqlite3_int64 iDiff = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
31 3 sqlite3_int64 iDiff = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
182158 31 3 if( iDiff==0 ) break;
182159 3 0 if( iDiff<0 ){
182166 34 11 pExpr->bEof = (pLeft->bEof || pRight->bEof);
3 31 pExpr->bEof = (pLeft->bEof || pRight->bEof);
182167 0 45 if( pExpr->eType==FTSQUERY_NEAR && pExpr->bEof ){
0 0 if( pExpr->eType==FTSQUERY_NEAR && pExpr->bEof ){
182169 0 0 if( pRight->pPhrase->doclist.aAll ){
182171 0 0 while( *pRc==SQLITE_OK && pRight->bEof==0 ){
0 0 while( *pRc==SQLITE_OK && pRight->bEof==0 ){
182176 0 0 if( pLeft->pPhrase && pLeft->pPhrase->doclist.aAll ){
0 0 if( pLeft->pPhrase && pLeft->pPhrase->doclist.aAll ){
182178 0 0 while( *pRc==SQLITE_OK && pLeft->bEof==0 ){
0 0 while( *pRc==SQLITE_OK && pLeft->bEof==0 ){
182192 0 12 sqlite3_int64 iCmp = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
12 0 sqlite3_int64 iCmp = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
4 8 sqlite3_int64 iCmp = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
182197 12 0 if( pRight->bEof || (pLeft->bEof==0 && iCmp<0) ){
8 4 if( pRight->bEof || (pLeft->bEof==0 && iCmp<0) ){
4 4 if( pRight->bEof || (pLeft->bEof==0 && iCmp<0) ){
182199 4 4 }else if( pLeft->bEof || iCmp>0 ){
0 4 }else if( pLeft->bEof || iCmp>0 ){
182206 8 4 pExpr->bEof = (pLeft->bEof && pRight->bEof);
4 4 pExpr->bEof = (pLeft->bEof && pRight->bEof);
182207 0 12 iCmp = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
12 0 iCmp = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
0 12 iCmp = DOCID_CMP(pLeft->iDocid, pRight->iDocid);
182208 8 4 if( pRight->bEof || (pLeft->bEof==0 && iCmp<0) ){
4 4 if( pRight->bEof || (pLeft->bEof==0 && iCmp<0) ){
4 0 if( pRight->bEof || (pLeft->bEof==0 && iCmp<0) ){
182221 4 8 if( pRight->bStart==0 ){
182227 8 4 if( pLeft->bEof==0 ){
182228 8 0 while( !*pRc
182229 8 0 && !pRight->bEof
182230 0 8 && DOCID_CMP(pLeft->iDocid, pRight->iDocid)>0
8 0 && DOCID_CMP(pLeft->iDocid, pRight->iDocid)>0
4 4 && DOCID_CMP(pLeft->iDocid, pRight->iDocid)>0
0 8 && DOCID_CMP(pLeft->iDocid, pRight->iDocid)>0
182289 31 0 if( *pRc==SQLITE_OK
182290 0 31 && pExpr->eType==FTSQUERY_NEAR
182291 0 0 && (pExpr->pParent==0 || pExpr->pParent->eType!=FTSQUERY_NEAR)
0 0 && (pExpr->pParent==0 || pExpr->pParent->eType!=FTSQUERY_NEAR)
182298 0 0 for(p=pExpr; p->pLeft; p=p->pLeft){
182304 0 0 if( !aTmp ){
182311 0 0 for(p=p->pParent;res && p && p->eType==FTSQUERY_NEAR; p=p->pParent){
0 0 for(p=p->pParent;res && p && p->eType==FTSQUERY_NEAR; p=p->pParent){
0 0 for(p=p->pParent;res && p && p->eType==FTSQUERY_NEAR; p=p->pParent){
182319 0 0 for(p=pExpr->pLeft; p && res; p=p->pLeft){
0 0 for(p=pExpr->pLeft; p && res; p=p->pLeft){
182325 0 0 p->eType==FTSQUERY_NEAR ? p->pRight->pPhrase : p->pPhrase
182354 208 0 if( *pRc==SQLITE_OK ){
182360 31 0 && fts3EvalTestExpr(pCsr, pExpr->pRight, pRc)
182361 31 0 && fts3EvalNearTest(pExpr, pRc)
31 0 && fts3EvalNearTest(pExpr, pRc)
182379 0 31 if( bHit==0
182380 0 0 && pExpr->eType==FTSQUERY_NEAR
182381 0 0 && (pExpr->pParent==0 || pExpr->pParent->eType!=FTSQUERY_NEAR)
0 0 && (pExpr->pParent==0 || pExpr->pParent->eType!=FTSQUERY_NEAR)
182384 0 0 for(p=pExpr; p->pPhrase==0; p=p->pLeft){
182385 0 0 if( p->pRight->iDocid==pCsr->iPrevId ){
182389 0 0 if( p->iDocid==pCsr->iPrevId ){
182399 4 4 bHit = bHit1 || bHit2;
4 0 bHit = bHit1 || bHit2;
182406 8 0 && !fts3EvalTestExpr(pCsr, pExpr->pRight, pRc)
4 4 && !fts3EvalTestExpr(pCsr, pExpr->pRight, pRc)
182412 0 161 if( pCsr->pDeferred && (pExpr->bDeferred || (
0 0 if( pCsr->pDeferred && (pExpr->bDeferred || (
0 0 if( pCsr->pDeferred && (pExpr->bDeferred || (
182413 0 0 pExpr->iDocid==pCsr->iPrevId && pExpr->pPhrase->doclist.pList
182416 0 0 if( pExpr->bDeferred ){
182426 149 8 pExpr->bEof==0 && pExpr->iDocid==pCsr->iPrevId
182427 157 4 && pExpr->pPhrase->doclist.nList>0
149 0 && pExpr->pPhrase->doclist.nList>0
182464 114 0 if( rc==SQLITE_OK ){
182472 0 114 if( pCsr->pDeferred ){
182474 0 0 if( rc==SQLITE_OK ){
182484 114 0 return (rc==SQLITE_OK && bMiss);
4 110 return (rc==SQLITE_OK && bMiss);
182495 0 172 if( pExpr==0 ){
182499 136 40 if( pCsr->isRequireSeek==0 ){
182508 114 62 }while( pCsr->isEof==0 && sqlite3Fts3EvalTestDeferred(pCsr, &rc) );
4 110 }while( pCsr->isEof==0 && sqlite3Fts3EvalTestDeferred(pCsr, &rc) );
182513 172 0 if( rc==SQLITE_OK && (
172 0 if( rc==SQLITE_OK && (
182514 172 0 (pCsr->bDesc==0 && pCsr->iPrevId>pCsr->iMaxDocid)
182515 0 172 || (pCsr->bDesc!=0 && pCsr->iPrevIdiMinDocid)
0 0 || (pCsr->bDesc!=0 && pCsr->iPrevIdiMinDocid)
182537 0 0 if( pExpr && *pRc==SQLITE_OK ){
0 0 if( pExpr && *pRc==SQLITE_OK ){
182540 0 0 if( pPhrase ){
182542 0 0 if( pPhrase->bIncr ){
182544 0 0 for(i=0; inToken; i++){
182547 0 0 if( pToken->pSegcsr ){
182576 0 0 if( pExpr ){
182578 0 0 if( pPhrase && pPhrase->doclist.pList ){
0 0 if( pPhrase && pPhrase->doclist.pList ){
182585 0 0 while( 0xFE & (*p | c) ){
182586 0 0 if( (c&0x80)==0 ) iCnt++;
182595 0 0 if( *p==0x00 ) break;
182597 0 0 p += fts3GetVarint32(p, &iCol);
182598 0 0 }while( iCol
182624 0 0 if( pExpr->aMI==0 ){
182635 0 0 while( pRoot->pParent && pRoot->pParent->eType==FTSQUERY_NEAR ){
0 0 while( pRoot->pParent && pRoot->pParent->eType==FTSQUERY_NEAR ){
182643 0 0 for(p=pRoot; p; p=p->pLeft){
182644 0 0 Fts3Expr *pE = (p->eType==FTSQUERY_PHRASE?p:p->pRight);
182647 0 0 if( !pE->aMI ) return SQLITE_NOMEM;
182653 0 0 while( pCsr->isEof==0 && rc==SQLITE_OK ){
0 0 while( pCsr->isEof==0 && rc==SQLITE_OK ){
182657 0 0 if( pCsr->isRequireSeek==0 ) sqlite3_reset(pCsr->pStmt);
182667 0 0 && pRoot->eType==FTSQUERY_NEAR
182668 0 0 && sqlite3Fts3EvalTestDeferred(pCsr, &rc)
182669 0 0 );
182671 0 0 if( rc==SQLITE_OK && pCsr->isEof==0 ){
0 0 if( rc==SQLITE_OK && pCsr->isEof==0 ){
182679 0 0 if( bEof ){
182692 0 0 if( pRoot->bEof ) rc = FTS_CORRUPT_VTAB;
182693 0 0 }while( pRoot->iDocid!=iDocid && rc==SQLITE_OK );
0 0 }while( pRoot->iDocid!=iDocid && rc==SQLITE_OK );
182738 0 0 if( pExpr->bDeferred && pExpr->pParent->eType!=FTSQUERY_NEAR ){
0 0 if( pExpr->bDeferred && pExpr->pParent->eType!=FTSQUERY_NEAR ){
182740 0 0 for(iCol=0; iColnColumn; iCol++){
182746 0 0 if( rc==SQLITE_OK ){
182748 0 0 for(iCol=0; iColnColumn; iCol++){
182793 16 0 if( (pPhrase->iColumnnColumn && pPhrase->iColumn!=iCol) ){
0 16 if( (pPhrase->iColumnnColumn && pPhrase->iColumn!=iCol) ){
182799 16 0 if( iDocid!=pCsr->iPrevId || pExpr->bEof ){
0 16 if( iDocid!=pCsr->iPrevId || pExpr->bEof ){
182814 0 0 for(p=pExpr->pParent; p; p=p->pParent){
182815 0 0 if( p->eType==FTSQUERY_OR ) bOr = 1;
182816 0 0 if( p->eType==FTSQUERY_NEAR ) pNear = p;
182817 0 0 if( p->bEof ) bTreeEof = 1;
182819 0 0 if( bOr==0 ) return SQLITE_OK;
182824 0 0 if( pPhrase->bIncr ){
182827 0 0 while( rc==SQLITE_OK && !pNear->bEof ){
0 0 while( rc==SQLITE_OK && !pNear->bEof ){
182829 0 0 if( bEofSave==0 && pNear->iDocid==iDocid ) break;
0 0 if( bEofSave==0 && pNear->iDocid==iDocid ) break;
182832 0 0 if( rc==SQLITE_OK && pNear->bEof!=bEofSave ){
0 0 if( rc==SQLITE_OK && pNear->bEof!=bEofSave ){
182836 0 0 if( bTreeEof ){
182837 0 0 while( rc==SQLITE_OK && !pNear->bEof ){
0 0 while( rc==SQLITE_OK && !pNear->bEof ){
182841 0 0 if( rc!=SQLITE_OK ) return rc;
182844 0 0 for(p=pNear; p; p=p->pLeft){
182849 0 0 if( pTest->eType==FTSQUERY_NEAR ) pTest = pTest->pRight;
182855 0 0 if( pCsr->bDesc==bDescDoclist ){
182856 0 0 bEof = !pPh->doclist.nAll ||
0 0 bEof = !pPh->doclist.nAll ||
182858 0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)<0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)<0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)<0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)<0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)<0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)<0 ) && bEof==0 ){
182865 0 0 bEof = !pPh->doclist.nAll || (pIter && pIter<=pPh->doclist.aAll);
0 0 bEof = !pPh->doclist.nAll || (pIter && pIter<=pPh->doclist.aAll);
0 0 bEof = !pPh->doclist.nAll || (pIter && pIter<=pPh->doclist.aAll);
182866 0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)>0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)>0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)>0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)>0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)>0 ) && bEof==0 ){
0 0 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)>0 ) && bEof==0 ){
182876 0 0 if( bEof || iDocid!=pCsr->iPrevId ) bMatch = 0;
0 0 if( bEof || iDocid!=pCsr->iPrevId ) bMatch = 0;
182879 0 0 if( bMatch ){
182885 0 16 if( pIter==0 ) return SQLITE_OK;
182887 0 16 if( *pIter==0x01 ){
182889 0 0 pIter += fts3GetVarint32(pIter, &iThis);
182893 0 16 while( iThis
182895 0 0 if( *pIter==0x00 ) return SQLITE_OK;
182897 0 0 pIter += fts3GetVarint32(pIter, &iThis);
182899 0 16 if( *pIter==0x00 ){
182903 16 0 *ppOut = ((iCol==iThis)?pIter:0);
182915 84 22 if( pPhrase ){
182920 113 84 for(i=0; inToken; i++){
183037 0 1 if( argc!=4 && argc!=5 ) goto bad_args;
0 0 if( argc!=4 && argc!=5 ) goto bad_args;
183041 0 1 if( argc==5 ){
183042 0 0 if( nDb==4 && 0==sqlite3_strnicmp("temp", zDb, 4) ){
0 0 if( nDb==4 && 0==sqlite3_strnicmp("temp", zDb, 4) ){
183055 0 1 if( rc!=SQLITE_OK ) return rc;
183059 0 1 if( !p ) return SQLITE_NOMEM;
183091 40 1 for(i=0; iaStmt); i++){
183120 0 1 if( pInfo->nOrderBy==1
183121 0 0 && pInfo->aOrderBy[0].iColumn==0
183122 0 0 && pInfo->aOrderBy[0].desc==0
183129 1 1 for(i=0; inConstraint; i++){
183130 1 0 if( pInfo->aConstraint[i].usable ){
183134 0 1 if( iCol==0 ){
183135 0 0 if( op==SQLITE_INDEX_CONSTRAINT_EQ ) iEq = i;
183136 0 0 if( op==SQLITE_INDEX_CONSTRAINT_LT ) iLe = i;
183137 0 0 if( op==SQLITE_INDEX_CONSTRAINT_LE ) iLe = i;
183138 0 0 if( op==SQLITE_INDEX_CONSTRAINT_GT ) iGe = i;
183139 0 0 if( op==SQLITE_INDEX_CONSTRAINT_GE ) iGe = i;
183141 0 1 if( iCol==4 ){
183142 0 0 if( op==SQLITE_INDEX_CONSTRAINT_EQ ) iLangid = i;
183147 0 1 if( iEq>=0 ){
183154 0 1 if( iGe>=0 ){
183159 0 1 if( iLe>=0 ){
183165 0 1 if( iLangid>=0 ){
183182 0 1 if( !pCsr ) return SQLITE_NOMEM;
183206 2 7 if( nSize>pCsr->nStat ){
183211 0 2 if( aNew==0 ) return SQLITE_NOMEM;
183232 9 7 for(pCsr->iCol++; pCsr->iColnStat; pCsr->iCol++){
183233 6 3 if( pCsr->aStat[pCsr->iCol].nDoc>0 ) return SQLITE_OK;
183237 6 1 if( rc==SQLITE_ROW ){
183245 0 6 if( pCsr->zStop ){
183248 0 0 if( mc<0 || (mc==0 && pCsr->csr.nTerm>pCsr->nStop) ){
0 0 if( mc<0 || (mc==0 && pCsr->csr.nTerm>pCsr->nStop) ){
0 0 if( mc<0 || (mc==0 && pCsr->csr.nTerm>pCsr->nStop) ){
183254 0 6 if( fts3auxGrowStatArray(pCsr, 2) ) return SQLITE_NOMEM;
183259 24 6 while( i
183281 3 3 if( v>1 ){
183288 6 9 if( v==0 ){ /* 0x00. Next integer will be a docid. */
183290 3 6 }else if( v==1 ){ /* 0x01. Next integer will be a column number. */
183301 0 3 if( iCol<1 ){
183305 0 3 if( fts3auxGrowStatArray(pCsr, iCol+2) ) return SQLITE_NOMEM;
183350 0 1 if( idxNum==FTS4AUX_EQ_CONSTRAINT ){
183354 0 1 if( idxNum & FTS4AUX_GE_CONSTRAINT ){
183357 0 1 if( idxNum & FTS4AUX_LE_CONSTRAINT ){
183361 0 1 if( iNext
183374 1 0 if( isScan ) pCsr->filter.flags |= FTS3_SEGMENT_SCAN;
183376 1 0 if( iEq>=0 || iGe>=0 ){
0 1 if( iEq>=0 || iGe>=0 ){
183379 0 0 if( zStr ){
183381 0 0 if( pCsr->filter.zTerm==0 ) return SQLITE_NOMEM;
183386 0 1 if( iLe>=0 ){
183388 0 0 if( pCsr->zStop==0 ) return SQLITE_NOMEM;
183392 0 1 if( iLangid>=0 ){
183400 0 0 if( iLangVal<0 ) iLangVal = 0;
183407 1 0 if( rc==SQLITE_OK ){
183411 1 0 if( rc==SQLITE_OK ) rc = fts3auxNextMethod(pCursor);
183440 6 6 if( p->iCol ){
183633 107 49 return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';
107 0 return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';
107 0 return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';
107 0 return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';
107 0 return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';
0 107 return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';
183643 101 0 if( pRet ) memset(pRet, 0, nByte);
183660 170 0 if( rc==SQLITE_OK ){
183662 0 170 if( pModule->iVersion>=1 ){
183664 0 0 if( rc!=SQLITE_OK ){
183707 459 55 for(i=0; i
183708 459 0 if( sqlite3_fts3_enable_parentheses && (z[i]=='(' || z[i]==')') ) break;
451 8 if( sqlite3_fts3_enable_parentheses && (z[i]=='(' || z[i]==')') ) break;
183709 0 451 if( z[i]=='"' ) break;
183714 63 0 if( rc==SQLITE_OK ){
183720 63 0 if( rc==SQLITE_OK ){
183723 0 63 if( !pRet ){
183734 27 36 if( iEnd
8 19 if( iEnd
183745 36 27 }else if( pParse->bFts4 && iStart>0 && z[iStart-1]=='^' ){
11 25 }else if( pParse->bFts4 && iStart>0 && z[iStart-1]=='^' ){
0 11 }else if( pParse->bFts4 && iStart>0 && z[iStart-1]=='^' ){
183755 0 0 }else if( i && rc==SQLITE_DONE ){
0 0 }else if( i && rc==SQLITE_DONE ){
183773 0 121 if( !pRet ){
183828 21 0 if( rc==SQLITE_OK ){
183830 71 21 for(ii=0; rc==SQLITE_OK; ii++){
183834 50 21 if( rc==SQLITE_OK ){
183838 0 50 if( !p ) goto no_mem;
183841 0 50 if( !zTemp ) goto no_mem;
183851 29 21 pToken->isPrefix = (iEnd
0 29 pToken->isPrefix = (iEnd
183852 29 21 pToken->bFirst = (iBegin>0 && zInput[iBegin-1]=='^');
0 29 pToken->bFirst = (iBegin>0 && zInput[iBegin-1]=='^');
183861 21 0 if( rc==SQLITE_DONE ){
183866 0 21 if( !p ) goto no_mem;
183874 21 0 if( zTemp ){
183881 50 21 for(jj=0; jjpPhrase->nToken; jj++){
183892 0 0 if( pCursor ){
183940 141 62 while( nInput>0 && fts3isspace(*zInput) ){
34 107 while( nInput>0 && fts3isspace(*zInput) ){
183944 62 107 if( nInput==0 ){
183949 398 92 for(ii=0; ii<(int)(sizeof(aKeyword)/sizeof(struct Fts3Keyword)); ii++){
183952 0 398 if( (pKey->parenOnly & ~sqlite3_fts3_enable_parentheses)!=0 ){
183956 384 14 if( nInput>=pKey->n && 0==memcmp(zInput, pKey->z, pKey->n) ){
15 369 if( nInput>=pKey->n && 0==memcmp(zInput, pKey->z, pKey->n) ){
183962 0 15 if( pKey->eType==FTSQUERY_NEAR ){
183964 0 0 if( zInput[4]=='/' && zInput[5]>='0' && zInput[5]<='9' ){
0 0 if( zInput[4]=='/' && zInput[5]>='0' && zInput[5]<='9' ){
0 0 if( zInput[4]=='/' && zInput[5]>='0' && zInput[5]<='9' ){
183974 0 15 if( fts3isspace(cNext)
183975 0 0 || cNext=='"' || cNext=='(' || cNext==')' || cNext==0
0 0 || cNext=='"' || cNext=='(' || cNext==')' || cNext==0
0 0 || cNext=='"' || cNext=='(' || cNext==')' || cNext==0
0 0 || cNext=='"' || cNext=='(' || cNext==')' || cNext==0
183978 0 15 if( !pRet ){
183999 21 71 if( *zInput=='"' ){
184000 315 0 for(ii=1; ii
294 21 for(ii=1; ii
184002 0 21 if( ii==nInput ){
184009 4 67 if( *zInput=='(' ){
184015 0 4 if( pParse->nNest>SQLITE_MAX_EXPR_DEPTH ) return SQLITE_ERROR;
184020 4 63 }else if( *zInput==')' ){
184041 74 63 for(ii=0; iinCol; ii++){
184044 33 41 if( nInput>nStr && zInput[nStr]==':'
0 33 if( nInput>nStr && zInput[nStr]==':'
184045 0 0 && sqlite3_strnicmp(zStr, zInput, nStr)==0
184103 0 22 while( pSplit->pParent && opPrecedence(pSplit->pParent)<=opPrecedence(pNew) ){
0 0 while( pSplit->pParent && opPrecedence(pSplit->pParent)<=opPrecedence(pNew) ){
184107 0 22 if( pSplit->pParent ){
184142 169 66 while( rc==SQLITE_OK ){
184148 103 66 if( rc==SQLITE_OK ){
184149 103 0 if( p ){
184173 19 84 isPhrase = (eType==FTSQUERY_PHRASE || p->pLeft);
4 15 isPhrase = (eType==FTSQUERY_PHRASE || p->pLeft);
184180 15 88 if( !isPhrase && isRequirePhrase ){
0 15 if( !isPhrase && isRequirePhrase ){
184186 88 15 if( isPhrase && !isRequirePhrase ){
7 81 if( isPhrase && !isRequirePhrase ){
184191 0 7 if( !pAnd ){
184210 37 66 if( pPrev && (
0 37 if( pPrev && (
184211 0 0 (eType==FTSQUERY_NEAR && !isPhrase && pPrev->eType!=FTSQUERY_PHRASE)
0 0 (eType==FTSQUERY_NEAR && !isPhrase && pPrev->eType!=FTSQUERY_PHRASE)
184212 15 22 || (eType!=FTSQUERY_PHRASE && isPhrase && pPrev->eType==FTSQUERY_NEAR)
0 15 || (eType!=FTSQUERY_PHRASE && isPhrase && pPrev->eType==FTSQUERY_NEAR)
0 0 || (eType!=FTSQUERY_PHRASE && isPhrase && pPrev->eType==FTSQUERY_NEAR)
184219 88 15 if( isPhrase ){
184220 22 66 if( pRet ){
184241 66 0 if( rc==SQLITE_DONE && pRet && isRequirePhrase ){
66 0 if( rc==SQLITE_DONE && pRet && isRequirePhrase ){
0 66 if( rc==SQLITE_DONE && pRet && isRequirePhrase ){
184245 66 0 if( rc==SQLITE_DONE ){
184264 0 66 if( rc!=SQLITE_OK ){
184279 106 168 if( p ){
184280 0 106 if( nMaxDepth<0 ){
184284 106 0 if( rc==SQLITE_OK ){
184309 0 106 if( nMaxDepth==0 ){
184313 106 0 if( rc==SQLITE_OK ){
184314 92 14 if( (eType==FTSQUERY_AND || eType==FTSQUERY_OR) ){
4 88 if( (eType==FTSQUERY_AND || eType==FTSQUERY_OR) ){
184317 0 18 if( 0==apLeaf ){
184323 18 0 if( rc==SQLITE_OK ){
184328 18 18 for(p=pRoot; p->eType==eType; p=p->pLeft){
184340 18 18 if( pParent ){
184346 0 36 if( rc!=SQLITE_OK ) break;
184348 54 36 for(iLvl=0; p && iLvl
54 0 for(iLvl=0; p && iLvl
184349 36 18 if( apLeaf[iLvl]==0 ){
184365 0 36 if( p ){
184372 18 18 if( pParent==0 ) break;
184375 0 18 for(p=pParent->pRight; p->eType==eType; p=p->pLeft);
184380 0 18 if( pParent->pParent ){
184393 18 0 if( rc==SQLITE_OK ){
184395 212 18 for(i=0; i
184396 18 194 if( apLeaf[i] ){
184397 18 0 if( p==0 ){
184419 0 0 for(i=0; i
184422 0 0 while( (pDel=pFree)!=0 ){
184431 4 84 }else if( eType==FTSQUERY_NOT ){
184441 4 0 if( rc==SQLITE_OK ){
184445 0 4 if( rc!=SQLITE_OK ){
184458 0 106 if( rc!=SQLITE_OK ){
184498 0 62 if( z==0 ){
184502 62 0 if( n<0 ){
184509 62 0 if( rc==SQLITE_OK && sParse.nNest ){
0 62 if( rc==SQLITE_OK && sParse.nNest ){
184557 62 0 if( rc==SQLITE_OK && *ppExpr ){
62 0 if( rc==SQLITE_OK && *ppExpr ){
184559 62 0 if( rc==SQLITE_OK ){
184564 0 62 if( rc!=SQLITE_OK ){
184567 0 0 if( rc==SQLITE_TOOBIG ){
184573 0 0 }else if( rc==SQLITE_ERROR ){
184601 22 0 for(p=pDel; p && (p->pLeft||p->pRight); p=(p->pLeft ? p->pLeft : p->pRight)){
84 127 for(p=pDel; p && (p->pLeft||p->pRight); p=(p->pLeft ? p->pLeft : p->pRight)){
22 62 for(p=pDel; p && (p->pLeft||p->pRight); p=(p->pLeft ? p->pLeft : p->pRight)){
0 62 for(p=pDel; p && (p->pLeft||p->pRight); p=(p->pLeft ? p->pLeft : p->pRight)){
184604 106 189 while( p ){
184607 44 62 if( pParent && p==pParent->pLeft && pParent->pRight ){
22 22 if( pParent && p==pParent->pLeft && pParent->pRight ){
22 0 if( pParent && p==pParent->pLeft && pParent->pRight ){
184609 22 0 while( p && (p->pLeft || p->pRight) ){
0 22 while( p && (p->pLeft || p->pRight) ){
0 22 while( p && (p->pLeft || p->pRight) ){
184611 0 0 p = (p->pLeft ? p->pLeft : p->pRight);
184852 27943 0 if( p ){
184895 13763 352 while( elem ){
184897 13763 0 if( pH->copyKey && elem->pKey ){
13763 0 if( pH->copyKey && elem->pKey ){
184912 0 326387 if( nKey<=0 ) nKey = (int) strlen(z);
184913 1705137 326387 while( nKey > 0 ){
184920 88783 292445 if( n1!=n2 ) return 1;
184930 0 0 while( nKey-- > 0 ){
184936 0 0 if( n1!=n2 ) return 1;
184953 305300 0 if( keyClass==FTS3_HASH_STRING ){
184968 304554 0 if( keyClass==FTS3_HASH_STRING ){
184985 11478 23781 if( pHead ){
184988 6977 4501 if( pHead->prev ){ pHead->prev->next = pNew; }
184993 23380 401 if( pH->first ){ pH->first->prev = pNew; }
185015 0 401 if( new_ht==0 ) return 1;
185020 21488 401 for(elem=pH->first, pH->first=0; elem; elem = next_elem){
185042 304554 345 if( pH->ht ){
185047 381228 25923 while( count-- && elem ){
381228 0 while( count-- && elem ){
185048 278631 102597 if( (*xCompare)(elem->pKey,elem->nKey,pKey,nKey)==0 ){
185066 0 0 if( elem->prev ){
185071 0 0 if( elem->next ){
185075 0 0 if( pEntry->chain==elem ){
185079 0 0 if( pEntry->count<=0 ){
185082 0 0 if( pH->copyKey && elem->pKey ){
0 0 if( pH->copyKey && elem->pKey ){
185087 0 0 if( pH->count<=0 ){
185102 289891 0 if( pH==0 || pH->ht==0 ) return 0;
138 289753 if( pH==0 || pH->ht==0 ) return 0;
185119 277255 12531 return pElem ? pElem->data : 0;
185156 1375 13771 if( elem ){
185158 0 1375 if( data==0 ){
185165 0 13771 if( data==0 ) return 0;
185166 345 13426 if( (pH->htsize==0 && fts3Rehash(pH,8))
345 0 if( (pH->htsize==0 && fts3Rehash(pH,8))
185167 56 13715 || (pH->count>=pH->htsize && fts3Rehash(pH, pH->htsize*2))
0 56 || (pH->count>=pH->htsize && fts3Rehash(pH, pH->htsize*2))
185174 0 13771 if( new_elem==0 ) return data;
185175 13771 0 if( pH->copyKey && pKey!=0 ){
13771 0 if( pH->copyKey && pKey!=0 ){
185177 0 13771 if( new_elem->pKey==0 ){
185267 0 0 if( t==NULL ) return SQLITE_NOMEM;
185297 0 0 if( c==NULL ) return SQLITE_NOMEM;
185300 0 0 if( zInput==0 ){
185302 0 0 }else if( nInput<0 ){
185351 0 0 if( x==0 ) return 0;
185354 0 0 if( j<2 ) return j;
185355 0 0 return z[1]==0 || isVowel(z + 1);
0 0 return z[1]==0 || isVowel(z + 1);
185360 0 0 if( x==0 ) return 0;
185363 0 0 if( j<2 ) return 1-j;
185387 0 0 while( isVowel(z) ){ z++; }
185388 0 0 if( *z==0 ) return 0;
185389 0 0 while( isConsonant(z) ){ z++; }
185397 0 0 while( isVowel(z) ){ z++; }
185398 0 0 if( *z==0 ) return 0;
185399 0 0 while( isConsonant(z) ){ z++; }
185400 0 0 if( *z==0 ) return 0;
185401 0 0 while( isVowel(z) ){ z++; }
185402 0 0 if( *z==0 ) return 1;
185403 0 0 while( isConsonant(z) ){ z++; }
185411 0 0 while( isVowel(z) ){ z++; }
185412 0 0 if( *z==0 ) return 0;
185413 0 0 while( isConsonant(z) ){ z++; }
185414 0 0 if( *z==0 ) return 0;
185415 0 0 while( isVowel(z) ){ z++; }
185416 0 0 if( *z==0 ) return 0;
185417 0 0 while( isConsonant(z) ){ z++; }
185425 0 0 while( isConsonant(z) ){ z++; }
185436 0 0 return isConsonant(z) && z[0]==z[1];
0 0 return isConsonant(z) && z[0]==z[1];
185449 0 0 isConsonant(z) &&
185450 0 0 z[0]!='w' && z[0]!='x' && z[0]!='y' &&
185451 0 0 isVowel(z+1) &&
0 0 isVowel(z+1) &&
185474 0 0 while( *zFrom && *zFrom==*z ){ z++; zFrom++; }
0 0 while( *zFrom && *zFrom==*z ){ z++; zFrom++; }
185475 0 0 if( *zFrom!=0 ) return 0;
185476 0 0 if( xCond && !xCond(z) ) return 1;
0 0 if( xCond && !xCond(z) ) return 1;
185477 0 0 while( *zTo ){
185495 0 0 for(i=0; i
185497 0 0 if( c>='A' && c<='Z' ){
0 0 if( c>='A' && c<='Z' ){
185500 0 0 if( c>='0' && c<='9' ) hasDigit = 1;
0 0 if( c>='0' && c<='9' ) hasDigit = 1;
185504 0 0 mx = hasDigit ? 3 : 10;
185505 0 0 if( nIn>mx*2 ){
185506 0 0 for(j=mx, i=nIn-mx; i
185543 0 0 if( nIn<3 || nIn>=(int)sizeof(zReverse)-7 ){
0 0 if( nIn<3 || nIn>=(int)sizeof(zReverse)-7 ){
185549 0 0 for(i=0, j=sizeof(zReverse)-6; i
185551 0 0 if( c>='A' && c<='Z' ){
0 0 if( c>='A' && c<='Z' ){
185553 0 0 }else if( c>='a' && c<='z' ){
0 0 }else if( c>='a' && c<='z' ){
185567 0 0 if( z[0]=='s' ){
185568 0 0 if(
185569 0 0 !stem(&z, "sess", "ss", 0) &&
185570 0 0 !stem(&z, "sei", "i", 0) &&
185579 0 0 if( stem(&z, "dee", "ee", m_gt_0) ){
185581 0 0 }else if(
185582 0 0 (stem(&z, "gni", "", hasVowel) || stem(&z, "de", "", hasVowel))
185583 0 0 && z!=z2
185586 0 0 stem(&z, "lb", "ble", 0) ||
185589 0 0 }else if( doubleConsonant(z) && (*z!='l' && *z!='s' && *z!='z') ){
0 0 }else if( doubleConsonant(z) && (*z!='l' && *z!='s' && *z!='z') ){
0 0 }else if( doubleConsonant(z) && (*z!='l' && *z!='s' && *z!='z') ){
0 0 }else if( doubleConsonant(z) && (*z!='l' && *z!='s' && *z!='z') ){
185591 0 0 }else if( m_eq_1(z) && star_oh(z) ){
0 0 }else if( m_eq_1(z) && star_oh(z) ){
185597 0 0 if( z[0]=='y' && hasVowel(z+1) ){
0 0 if( z[0]=='y' && hasVowel(z+1) ){
185604 0 0 if( !stem(&z, "lanoita", "ate", m_gt_0) ){
185609 0 0 if( !stem(&z, "icne", "ence", m_gt_0) ){
185620 0 0 if( !stem(&z, "ilb", "ble", m_gt_0)
185621 0 0 && !stem(&z, "illa", "al", m_gt_0)
185622 0 0 && !stem(&z, "iltne", "ent", m_gt_0)
185623 0 0 && !stem(&z, "ile", "e", m_gt_0)
185629 0 0 if( !stem(&z, "noitazi", "ize", m_gt_0)
185630 0 0 && !stem(&z, "noita", "ate", m_gt_0)
185636 0 0 if( !stem(&z, "msila", "al", m_gt_0)
185637 0 0 && !stem(&z, "ssenevi", "ive", m_gt_0)
185638 0 0 && !stem(&z, "ssenluf", "ful", m_gt_0)
185644 0 0 if( !stem(&z, "itila", "al", m_gt_0)
185645 0 0 && !stem(&z, "itivi", "ive", m_gt_0)
185655 0 0 if( !stem(&z, "etaci", "ic", m_gt_0)
185656 0 0 && !stem(&z, "evita", "", m_gt_0)
185665 0 0 if( !stem(&z, "laci", "ic", m_gt_0) ){
185677 0 0 if( z[0]=='l' && m_gt_1(z+2) ){
0 0 if( z[0]=='l' && m_gt_1(z+2) ){
185682 0 0 if( z[0]=='e' && z[2]=='n' && (z[3]=='a' || z[3]=='e') && m_gt_1(z+4) ){
0 0 if( z[0]=='e' && z[2]=='n' && (z[3]=='a' || z[3]=='e') && m_gt_1(z+4) ){
0 0 if( z[0]=='e' && z[2]=='n' && (z[3]=='a' || z[3]=='e') && m_gt_1(z+4) ){
0 0 if( z[0]=='e' && z[2]=='n' && (z[3]=='a' || z[3]=='e') && m_gt_1(z+4) ){
0 0 if( z[0]=='e' && z[2]=='n' && (z[3]=='a' || z[3]=='e') && m_gt_1(z+4) ){
185687 0 0 if( z[0]=='r' && m_gt_1(z+2) ){
0 0 if( z[0]=='r' && m_gt_1(z+2) ){
185692 0 0 if( z[0]=='c' && m_gt_1(z+2) ){
0 0 if( z[0]=='c' && m_gt_1(z+2) ){
185697 0 0 if( z[0]=='e' && z[2]=='b' && (z[3]=='a' || z[3]=='i') && m_gt_1(z+4) ){
0 0 if( z[0]=='e' && z[2]=='b' && (z[3]=='a' || z[3]=='i') && m_gt_1(z+4) ){
0 0 if( z[0]=='e' && z[2]=='b' && (z[3]=='a' || z[3]=='i') && m_gt_1(z+4) ){
0 0 if( z[0]=='e' && z[2]=='b' && (z[3]=='a' || z[3]=='i') && m_gt_1(z+4) ){
0 0 if( z[0]=='e' && z[2]=='b' && (z[3]=='a' || z[3]=='i') && m_gt_1(z+4) ){
185702 0 0 if( z[0]=='t' ){
185703 0 0 if( z[2]=='a' ){
185704 0 0 if( m_gt_1(z+3) ){
185707 0 0 }else if( z[2]=='e' ){
185708 0 0 if( !stem(&z, "tneme", "", m_gt_1)
185709 0 0 && !stem(&z, "tnem", "", m_gt_1)
185717 0 0 if( z[0]=='u' ){
185718 0 0 if( m_gt_1(z+2) ){
185721 0 0 }else if( z[3]=='s' || z[3]=='t' ){
0 0 }else if( z[3]=='s' || z[3]=='t' ){
185726 0 0 if( z[0]=='m' && z[2]=='i' && m_gt_1(z+3) ){
0 0 if( z[0]=='m' && z[2]=='i' && m_gt_1(z+3) ){
0 0 if( z[0]=='m' && z[2]=='i' && m_gt_1(z+3) ){
185731 0 0 if( !stem(&z, "eta", "", m_gt_1) ){
185736 0 0 if( z[0]=='s' && z[2]=='o' && m_gt_1(z+3) ){
0 0 if( z[0]=='s' && z[2]=='o' && m_gt_1(z+3) ){
0 0 if( z[0]=='s' && z[2]=='o' && m_gt_1(z+3) ){
185742 0 0 if( z[0]=='e' && z[2]=='i' && m_gt_1(z+3) ){
0 0 if( z[0]=='e' && z[2]=='i' && m_gt_1(z+3) ){
0 0 if( z[0]=='e' && z[2]=='i' && m_gt_1(z+3) ){
185749 0 0 if( z[0]=='e' ){
185750 0 0 if( m_gt_1(z+1) ){
185752 0 0 }else if( m_eq_1(z+1) && !star_oh(z+1) ){
0 0 }else if( m_eq_1(z+1) && !star_oh(z+1) ){
185758 0 0 if( m_gt_1(z) && z[0]=='l' && z[1]=='l' ){
0 0 if( m_gt_1(z) && z[0]=='l' && z[1]=='l' ){
0 0 if( m_gt_1(z) && z[0]=='l' && z[1]=='l' ){
185767 0 0 while( *z ){
185803 0 0 while( c->iOffsetnInput ){
185807 0 0 while( c->iOffsetnInput && isDelim(z[c->iOffset]) ){
0 0 while( c->iOffsetnInput && isDelim(z[c->iOffset]) ){
0 0 while( c->iOffsetnInput && isDelim(z[c->iOffset]) ){
0 0 while( c->iOffsetnInput && isDelim(z[c->iOffset]) ){
185813 0 0 while( c->iOffsetnInput && !isDelim(z[c->iOffset]) ){
0 0 while( c->iOffsetnInput && !isDelim(z[c->iOffset]) ){
0 0 while( c->iOffsetnInput && !isDelim(z[c->iOffset]) ){
0 0 while( c->iOffsetnInput && !isDelim(z[c->iOffset]) ){
185817 0 0 if( c->iOffset>iStartOffset ){
185819 0 0 if( n>c->nAllocated ){
185823 0 0 if( !pNew ) return SQLITE_NOMEM;
185944 307 0 if( argc==2 ){
185945 0 307 if( fts3TokenizerEnabled(context) || sqlite3_value_frombind(argv[1]) ){
0 0 if( fts3TokenizerEnabled(context) || sqlite3_value_frombind(argv[1]) ){
185948 307 0 if( zName==0 || n!=sizeof(pPtr) ){
0 307 if( zName==0 || n!=sizeof(pPtr) ){
185954 0 307 if( pOld==pPtr ){
185962 0 0 if( zName ){
185965 0 0 if( !pPtr ){
185972 0 307 if( fts3TokenizerEnabled(context) || sqlite3_value_frombind(argv[0]) ){
0 0 if( fts3TokenizerEnabled(context) || sqlite3_value_frombind(argv[0]) ){
185988 159 0 return (c&0x80 || isFtsIdChar[(int)(c)]);
129 30 return (c&0x80 || isFtsIdChar[(int)(c)]);
185997 28 28 while( z2==0 ){
186005 116 0 while( *++z2 && (*z2!=c || *++z2==c) );
112 4 while( *++z2 && (*z2!=c || *++z2==c) );
0 4 while( *++z2 && (*z2!=c || *++z2==c) );
186010 0 0 while( *z2 && z2[0]!=']' ) z2++;
0 0 while( *z2 && z2[0]!=']' ) z2++;
186011 0 0 if( *z2 ) z2++;
186015 24 0 if( sqlite3Fts3IsIdChar(*z1) ){
186017 105 24 while( sqlite3Fts3IsIdChar(*z2) ) z2++;
186042 0 10 if( !zCopy ) return SQLITE_NOMEM;
186046 0 10 if( z==0 ){
186054 0 10 if( !m ){
186061 4 10 while( z
4 0 while( z
186064 0 4 if( !aNew ){
186077 1 9 if( rc!=SQLITE_OK ){
186360 311 0 if( SQLITE_OK==rc ){
186363 311 0 if( SQLITE_OK==rc ){
186438 315751 59 return c<0x80 && t->delim[c];
121105 194646 return c<0x80 && t->delim[c];
186441 400 235 return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');
350 50 return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');
315 270 return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');
185 130 return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');
155 300 return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');
130 25 return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');
186454 0 5 if( t==NULL ) return SQLITE_NOMEM;
186462 0 5 if( argc>1 ){
186464 0 0 for(i=0; i
186467 0 0 if( ch>=0x80 ){
186476 635 5 for(i=1; i<0x80; i++){
186477 325 310 t->delim[i] = !fts3_isalnum(i) ? -1 : 0;
186509 0 66 if( c==NULL ) return SQLITE_NOMEM;
186512 0 66 if( pInput==0 ){
186514 46 20 }else if( nBytes<0 ){
186555 34280 55 while( c->iOffsetnBytes ){
186559 121157 11 while( c->iOffsetnBytes && simpleDelim(t, p[c->iOffset]) ){
86888 34269 while( c->iOffsetnBytes && simpleDelim(t, p[c->iOffset]) ){
186565 194653 63 while( c->iOffsetnBytes && !simpleDelim(t, p[c->iOffset]) ){
160436 34217 while( c->iOffsetnBytes && !simpleDelim(t, p[c->iOffset]) ){
186569 34269 11 if( c->iOffset>iStartOffset ){
186571 67 34202 if( n>c->nTokenAllocated ){
186575 0 67 if( !pNew ) return SQLITE_NOMEM;
186578 160436 34269 for(i=0; i
186583 157811 2625 c->pToken[i] = (char)((ch>='A' && ch<='Z') ? ch-'A'+'a' : ch);
36994 120817 c->pToken[i] = (char)((ch>='A' && ch<='Z') ? ch-'A'+'a' : ch);
186710 0 0 if( !p ){
186737 0 0 if( argc==0 ){
186744 0 0 for(i=0; i
186749 0 0 if( azDequote==0 ){
186753 0 0 for(i=0; i
186797 0 0 if( rc!=SQLITE_OK ) return rc;
186802 0 0 if( rc==SQLITE_OK ){
186804 0 0 if( nDequote<1 ){
186813 0 0 if( rc==SQLITE_OK ){
186815 0 0 if( nDequote>1 ) azArg = (const char * const *)&azDequote[1];
186816 0 0 rc = pMod->xCreate((nDequote>1 ? nDequote-1 : 0), azArg, &pTok);
186819 0 0 if( rc==SQLITE_OK ){
186821 0 0 if( pTab==0 ){
186826 0 0 if( rc==SQLITE_OK ){
186832 0 0 if( pTok ){
186864 0 0 for(i=0; inConstraint; i++){
186865 0 0 if( pInfo->aConstraint[i].usable
186866 0 0 && pInfo->aConstraint[i].iColumn==0
186867 0 0 && pInfo->aConstraint[i].op==SQLITE_INDEX_CONSTRAINT_EQ
186891 0 0 if( pCsr==0 ){
186905 0 0 if( pCsr->pCsr ){
186945 0 0 if( rc!=SQLITE_OK ){
186947 0 0 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
186970 0 0 if( idxNum==1 ){
186974 0 0 if( pCsr->zInput==0 ){
186977 0 0 if( nByte>0 ) memcpy(pCsr->zInput, zByte, nByte);
186980 0 0 if( rc==SQLITE_OK ){
186986 0 0 if( rc!=SQLITE_OK ) return rc;
187484 81 460 if( !pStmt ){
187487 6 75 if( eStmt==SQL_CONTENT_INSERT ){
187489 1 74 }else if( eStmt==SQL_SELECT_CONTENT_BY_ROWID ){
187495 0 81 if( !zSql ){
187504 35 506 if( apVal ){
187507 112 0 for(i=0; rc==SQLITE_OK && i
77 35 for(i=0; rc==SQLITE_OK && i
187525 0 0 if( rc==SQLITE_OK ){
187528 0 0 if( rc!=SQLITE_ROW || sqlite3_column_type(pStmt, 0)!=SQLITE_BLOB ){
0 0 if( rc!=SQLITE_ROW || sqlite3_column_type(pStmt, 0)!=SQLITE_BLOB ){
187530 0 0 if( rc==SQLITE_OK ) rc = FTS_CORRUPT_VTAB;
187548 0 0 if( rc==SQLITE_OK ){
187550 0 0 if( sqlite3_step(pStmt)!=SQLITE_ROW
187551 0 0 || sqlite3_column_type(pStmt, 0)!=SQLITE_BLOB
187554 0 0 if( rc==SQLITE_OK ) rc = FTS_CORRUPT_VTAB;
187586 0 5 if( *pRC ) return;
187588 5 0 if( rc==SQLITE_OK ){
187613 33 4 if( p->nPendingData==0 ){
187616 33 0 if( rc==SQLITE_OK ){
187695 114 0 if( iLevel<0 ){
187698 114 0 if( rc==SQLITE_OK ){
187707 0 0 if( rc==SQLITE_OK ){
187735 12531 289480 if( !p ){
187737 0 12531 if( !p ){
187744 1431 288049 else if( p->nData+FTS3_VARINT_MAX+1>p->nSpace ){
187747 0 1431 if( !p ){
187784 277245 12531 if( !p || p->iLastDocid!=iDocid ){
2840 274405 if( !p || p->iLastDocid!=iDocid ){
187785 2840 12531 u64 iDelta = (u64)iDocid - (u64)(p ? p->iLastDocid : 0);
187786 2840 12531 if( p ){
187791 0 15371 if( SQLITE_OK!=(rc = fts3PendingListAppendVarint(&p, iDelta)) ){
187798 78 289698 if( iCol>0 && p->iLastCol!=iCol ){
78 0 if( iCol>0 && p->iLastCol!=iCol ){
187799 78 0 if( SQLITE_OK!=(rc = fts3PendingListAppendVarint(&p, 1))
187800 78 0 || SQLITE_OK!=(rc = fts3PendingListAppendVarint(&p, iCol))
187807 286484 3292 if( iCol>=0 ){
187810 286484 0 if( rc==SQLITE_OK ){
187817 13906 275870 if( p!=*pp ){
187846 277245 12531 if( pList ){
187849 13906 275870 if( fts3PendingListAppend(&pList, p->iPrevDocid, iCol, iPos, &rc) ){
187850 0 13906 if( pList==fts3HashInsert(pHash, zToken, nToken, pList) ){
187859 289776 0 if( rc==SQLITE_OK ){
187899 0 70 if( zText==0 ){
187905 0 70 if( rc!=SQLITE_OK ){
187910 289846 0 while( SQLITE_OK==rc
187911 289776 70 && SQLITE_OK==(rc = xNext(pCsr, &zToken, &nToken, &iStart, &iEnd, &iPos))
187914 289776 0 if( iPos>=nWord ) nWord = iPos+1;
187919 289776 0 if( iPos<0 || !zToken || nToken<=0 ){
289776 0 if( iPos<0 || !zToken || nToken<=0 ){
0 289776 if( iPos<0 || !zToken || nToken<=0 ){
187931 289776 0 for(i=1; rc==SQLITE_OK && inIndex; i++){
0 289776 for(i=1; rc==SQLITE_OK && inIndex; i++){
187933 0 0 if( nTokennPrefix ) continue;
187942 0 70 return (rc==SQLITE_DONE ? SQLITE_OK : rc);
187965 46 1 if( iDocidiPrevDocid
187966 0 46 || (iDocid==p->iPrevDocid && p->bPrevDelete==0)
0 0 || (iDocid==p->iPrevDocid && p->bPrevDelete==0)
187967 46 0 || p->iPrevLangid!=iLangid
187968 0 46 || p->nPendingData>p->nMaxPendingData
187971 0 1 if( rc!=SQLITE_OK ) return rc;
187984 43 43 for(i=0; inIndex; i++){
187987 12531 43 for(pElem=fts3HashFirst(pHash); pElem; pElem=fts3HashNext(pElem)){
188011 48 36 for(i=2; inColumn+2; i++){
188013 48 0 if( p->abNotindexed[iCol]==0 ){
188016 0 48 if( rc!=SQLITE_OK ){
188047 3 33 if( p->zContentTbl ){
188049 0 3 if( sqlite3_value_type(pRowid)==SQLITE_NULL ){
188052 0 3 if( sqlite3_value_type(pRowid)!=SQLITE_INTEGER ){
188068 33 0 if( rc==SQLITE_OK && p->zLanguageid ){
0 33 if( rc==SQLITE_OK && p->zLanguageid ){
188074 0 33 if( rc!=SQLITE_OK ) return rc;
188086 0 33 if( SQLITE_NULL!=sqlite3_value_type(apVal[3+p->nColumn]) ){
188087 0 0 if( SQLITE_NULL==sqlite3_value_type(apVal[0])
188088 0 0 && SQLITE_NULL!=sqlite3_value_type(apVal[1])
188094 0 0 if( rc!=SQLITE_OK ) return rc;
188122 0 1 if( bContent ) fts3SqlExec(&rc, p, SQL_DELETE_ALL_CONTENT, 0);
188125 1 0 if( p->bHasDocsize ){
188128 1 0 if( p->bHasStat ){
188139 0 11 if( p->zLanguageid ) iLangid = sqlite3_column_int(pSelect, p->nColumn+1);
188159 0 1 if( *pRC ) return;
188161 1 0 if( rc==SQLITE_OK ){
188162 1 0 if( SQLITE_ROW==sqlite3_step(pSelect) ){
188167 3 0 for(i=1; rc==SQLITE_OK && i<=p->nColumn; i++){
2 1 for(i=1; rc==SQLITE_OK && i<=p->nColumn; i++){
188169 2 0 if( p->abNotindexed[iCol]==0 ){
188175 0 1 if( rc!=SQLITE_OK ){
188226 34 0 if( rc==SQLITE_OK ){
188230 34 0 if( SQLITE_ROW==sqlite3_step(pNextIdx) ){
188236 34 0 if( rc==SQLITE_OK ){
188242 0 34 if( iNext>=MergeCount(p) ){
188293 87 16 if( p->pSegments ){
188296 6 10 if( 0==p->zSegmentsTbl ){
188298 0 6 if( 0==p->zSegmentsTbl ) return SQLITE_NOMEM;
188305 103 0 if( rc==SQLITE_OK ){
188308 57 46 if( paBlob ){
188310 0 57 if( !aByte ){
188313 0 57 if( pnLoad && nByte>(FTS3_NODE_CHUNK_THRESHOLD) ){
0 0 if( pnLoad && nByte>(FTS3_NODE_CHUNK_THRESHOLD) ){
188319 0 57 if( rc!=SQLITE_OK ){
188326 0 0 }else if( rc==SQLITE_ERROR ){
188354 0 0 if( rc==SQLITE_OK ){
188357 0 0 if( pReader->nPopulate==pReader->nNode ){
188371 0 12973 while( pReader->pBlob && rc==SQLITE_OK
0 0 while( pReader->pBlob && rc==SQLITE_OK
188372 0 0 && (pFrom - pReader->aNode + nByte)>pReader->nPopulate
188383 59 263 if( !fts3SegReaderIsRootOnly(pSeg) ){
188406 459 18484 if( !pReader->aDoclist ){
188412 18851 92 if( !pNext || pNext>=&pReader->aNode[pReader->nNode] ){
12582 6269 if( !pNext || pNext>=&pReader->aNode[pReader->nNode] ){
188414 12566 108 if( fts3SegReaderIsPending(pReader) ){
188418 12532 34 if( pElem ){
188424 55 12477 if( (nTerm+1)>pReader->nTermAlloc ){
188427 0 55 if( !pReader->zTerm ) return SQLITE_NOMEM;
188435 0 12532 if( !aCopy ) return SQLITE_NOMEM;
188452 51 57 if( pReader->iCurrentBlock>=pReader->iLeafEndBlock ){
188456 0 57 rc = sqlite3Fts3ReadBlock(
188460 0 57 if( rc!=SQLITE_OK ) return rc;
188462 0 57 if( bIncr && pReader->nPopulatenNode ){
0 0 if( bIncr && pReader->nPopulatenNode ){
188472 0 6326 if( rc!=SQLITE_OK ) return rc;
188476 0 6326 pNext += fts3GetVarint32(pNext, &nPrefix);
188477 0 6326 pNext += fts3GetVarint32(pNext, &nSuffix);
188478 6326 0 if( nSuffix<=0
188479 6326 0 || (&pReader->aNode[pReader->nNode] - pNext)
188480 0 6326 || nPrefix>pReader->nTerm
188488 517 5809 if( (i64)nPrefix+nSuffix>(i64)pReader->nTermAlloc ){
188491 0 517 if( !zNew ){
188499 0 6326 if( rc!=SQLITE_OK ) return rc;
188504 71 6255 pNext += fts3GetVarint32(pNext, &pReader->nDoclist);
188512 6326 0 if( pReader->nDoclist > pReader->nNode-(pReader->aDoclist-pReader->aNode)
188513 6326 0 || (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1])
6326 0 || (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1])
188514 0 6326 || pReader->nDoclist==0
188529 0 158 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
0 0 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
188539 158 0 if( rc==SQLITE_OK ){
188569 0 318 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
0 0 if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){
188574 0 0 if( ppOffsetList ){
188582 0 0 if( bEof ){
188601 11769 318 while( *p | c ) c = *p++ & 0x80;
188604 0 318 if( pReader->pBlob==0 || p<&pReader->aNode[pReader->nPopulate] ) break;
0 0 if( pReader->pBlob==0 || p<&pReader->aNode[pReader->nPopulate] ) break;
188606 0 0 if( rc!=SQLITE_OK ) return rc;
188613 302 16 if( ppOffsetList ){
188619 163 155 while( p
0 163 while( p
188626 155 163 if( p>=pEnd ){
188630 163 0 if( rc==SQLITE_OK ){
188633 0 163 if( pTab->bDescIdx ){
188660 212 0 for(ii=0; rc==SQLITE_OK && iinSegment; ii++){
162 50 for(ii=0; rc==SQLITE_OK && iinSegment; ii++){
188662 162 0 if( !fts3SegReaderIsPending(pReader)
188663 46 116 && !fts3SegReaderIsRootOnly(pReader)
188666 46 46 for(jj=pReader->iStartBlock; jj<=pReader->iLeafEndBlock; jj++){
188669 0 46 if( rc!=SQLITE_OK ) break;
188670 0 46 if( (nBlob+35)>pgsz ){
188685 459 0 if( pReader ){
188687 92 367 if( !fts3SegReaderIsRootOnly(pReader) ){
188716 367 57 if( iStartLeaf==0 ){
188717 0 367 if( iEndLeaf!=0 ) return FTS_CORRUPT_VTAB;
188722 0 424 if( !pReader ){
188732 367 57 if( nExtra ){
188737 367 0 if( nRoot ) memcpy(pReader->aNode, zRoot, nRoot);
188762 5417 116533 if( c==0 ){
188803 50 105 if( bPrefix ){
188806 12531 50 for(pE=fts3HashFirst(pHash); pE; pE=fts3HashNext(pE)){
188809 0 12531 if( nTerm==0 || (nKey>=nTerm && 0==memcmp(zKey, zTerm, nTerm)) ){
0 0 if( nTerm==0 || (nKey>=nTerm && 0==memcmp(zKey, zTerm, nTerm)) ){
0 0 if( nTerm==0 || (nKey>=nTerm && 0==memcmp(zKey, zTerm, nTerm)) ){
188810 805 11726 if( nElem==nAlloc ){
188816 0 805 if( !aElem2 ){
188832 34 16 if( nElem>1 ){
188845 1 104 if( pE ){
188851 35 120 if( nElem>0 ){
188855 0 35 if( !pReader ){
188865 50 105 if( bPrefix ){
188886 152 489 if( pLhs->aNode && pRhs->aNode ){
82 70 if( pLhs->aNode && pRhs->aNode ){
188888 13 69 if( rc2<0 ){
188893 51 31 if( rc==0 ){
188899 364 277 if( rc==0 ){
188919 146 70 if( rc==0 ){
188920 16 130 if( pLhs->iDocid==pRhs->iDocid ){
188923 82 48 rc = (pLhs->iDocid > pRhs->iDocid) ? 1 : -1;
188931 0 0 if( rc==0 ){
188932 0 0 if( pLhs->iDocid==pRhs->iDocid ){
188935 0 0 rc = (pLhs->iDocid < pRhs->iDocid) ? 1 : -1;
188956 6453 44 if( pSeg->aNode ){
188957 3177 3276 if( pSeg->nTerm>nTerm ){
188962 368 6085 if( res==0 ){
188985 12954 211 if( nSuspect==nSegment ) nSuspect--;
188986 534 13165 for(i=nSuspect-1; i>=0; i--){
188988 857 376 for(j=i; j<(nSegment-1); j++){
188990 158 699 if( xCmp(apSegment[j], apSegment[j+1])<0 ) break;
189016 140 0 if( rc==SQLITE_OK ){
189037 0 0 if( rc==SQLITE_OK ){
189038 0 0 if( SQLITE_ROW==sqlite3_step(pStmt) ){
189063 34 0 if( rc==SQLITE_OK ){
189068 0 34 if( nLeafData==0 ){
189072 0 34 if( !zEnd ) return SQLITE_NOMEM;
189098 51177 2840 for(n=0; n
51177 0 for(n=0; n
41352 9825 for(n=0; n
189121 134 6 if( pTree ){
189133 0 134 if( nSuffix<=0 ) return FTS_CORRUPT_VTAB;
189136 0 134 if( nReq<=p->nNodeSize || !pTree->zTerm ){
0 0 if( nReq<=p->nNodeSize || !pTree->zTerm ){
189138 0 134 if( nReq>p->nNodeSize ){
189148 0 0 if( !pTree->aData ){
189153 128 6 if( pTree->zTerm ){
189163 134 0 if( isCopyTerm ){
189164 11 123 if( pTree->nMalloc
189166 0 11 if( !zNew ){
189192 0 6 if( !pNew ){
189199 0 6 if( pTree ){
189202 0 0 if( pTree->pParent==0 ){
189261 6 0 if( !pTree->pParent ){
189271 0 0 for(pIter=pTree->pLeftmost; pIter && rc==SQLITE_OK; pIter=pIter->pRight){
0 0 for(pIter=pTree->pLeftmost; pIter && rc==SQLITE_OK; pIter=pIter->pRight){
189279 0 0 if( rc==SQLITE_OK ){
189294 6 34 if( pTree ){
189297 6 6 while( p ){
189299 0 6 if( p->aData!=(char *)&p[1] ){
189333 34 12497 if( !pWriter ){
189339 0 34 if( !pWriter ) return SQLITE_NOMEM;
189345 0 34 if( !pWriter->aData ) return SQLITE_NOMEM;
189350 0 34 if( rc!=SQLITE_OK ) return rc;
189351 34 0 if( SQLITE_ROW==sqlite3_step(pStmt) ){
189356 0 34 if( rc!=SQLITE_OK ) return rc;
189366 0 12531 if( nSuffix<=0 ) return FTS_CORRUPT_VTAB;
189375 12497 34 if( nData>0 && nData+nReq>p->nNodeSize ){
134 12363 if( nData>0 && nData+nReq>p->nNodeSize ){
189379 0 134 if( pWriter->iFree==LARGEST_INT64 ) return FTS_CORRUPT_VTAB;
189381 0 134 if( rc!=SQLITE_OK ) return rc;
189398 0 134 if( rc!=SQLITE_OK ) return rc;
189418 0 12531 if( nReq>pWriter->nSize ){
189420 0 0 if( !aNew ) return SQLITE_NOMEM;
189442 12531 0 if( isCopyTerm ){
189443 59 12472 if( nTerm>pWriter->nMalloc ){
189445 0 59 if( !zNew ){
189476 6 28 if( pWriter->pTree ){
189484 6 0 if( rc==SQLITE_OK ){
189488 6 0 if( rc==SQLITE_OK ){
189506 34 8 if( pWriter ){
189527 1 0 if( p->zContentTbl ){
189533 0 0 if( rc==SQLITE_OK ){
189534 0 0 if( SQLITE_ROW==sqlite3_step(pStmt) ){
189568 0 0 if( rc!=SQLITE_OK ) return rc;
189573 0 0 if( SQLITE_ROW==sqlite3_step(pStmt) ){
189597 0 0 if( rc!=SQLITE_OK ) return rc;
189604 0 0 if( SQLITE_ROW==sqlite3_step(pStmt) ){
189620 0 0 if( pSeg->iStartBlock ){
189623 0 0 if( rc==SQLITE_OK ){
189659 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
189662 0 0 if( rc!=SQLITE_OK ){
189667 0 0 if( iLevel==FTS3_SEGCURSOR_ALL ){
189669 0 0 if( rc==SQLITE_OK ){
189677 0 0 if( rc==SQLITE_OK ){
189684 0 0 if( rc==SQLITE_OK ){
189719 9062 111 while( p
9055 7 while( p
189721 111 7 if( iCol==iCurrent ){
189728 0 7 if( nList<=0 ){
189732 0 7 p += fts3GetVarint32(p, &iCurrent);
189735 99 12 if( bZero && (pEnd - &pList[nList])>0){
0 99 if( bZero && (pEnd - &pList[nList])>0){
189754 41 12493 if( nList>pMsr->nBuffer ){
189758 0 41 if( !pNew ) return SQLITE_NOMEM;
189777 0 334 p->bDescIdx ? fts3SegReaderDoclistCmpRev : fts3SegReaderDoclistCmp
189780 4 330 if( nMerge==0 ){
189789 62 284 if( pSeg->pOffsetList==0 ){
189801 300 0 while( rc==SQLITE_OK
189802 166 134 && j
189803 103 63 && apSegment[j]->pOffsetList
189804 16 87 && apSegment[j]->iDocid==iDocid
189809 0 284 if( rc!=SQLITE_OK ) return rc;
189812 268 16 if( nList>0 && fts3SegReaderIsPending(apSegment[0]) ){
3 265 if( nList>0 && fts3SegReaderIsPending(apSegment[0]) ){
189814 0 3 if( rc!=SQLITE_OK ) return rc;
189819 99 185 if( pMsr->iColFilter>=0 ){
189823 268 16 if( nList>0 ){
189850 607 0 for(i=0; pCsr->bRestart==0 && inSegment; i++){
459 148 for(i=0; pCsr->bRestart==0 && inSegment; i++){
189855 0 6394 if( rc!=SQLITE_OK ) return rc;
189856 6357 37 }while( zTerm && (res = fts3SegReaderTermCmp(pSeg, zTerm, nTerm))<0 );
5935 422 }while( zTerm && (res = fts3SegReaderTermCmp(pSeg, zTerm, nTerm))<0 );
189858 389 70 if( pSeg->bLookup && res!=0 ){
214 175 if( pSeg->bLookup && res!=0 ){
189887 0 105 p->bDescIdx ? fts3SegReaderDoclistCmpRev : fts3SegReaderDoclistCmp
189895 0 105 if( rc!=SQLITE_OK ) return rc;
189898 218 27 for(i=0; i
189900 140 78 if( !pSeg->aNode || fts3SegReaderTermCmp(pSeg, zTerm, nTerm) ){
140 0 if( !pSeg->aNode || fts3SegReaderTermCmp(pSeg, zTerm, nTerm) ){
189907 140 105 for(i=0; inAdvance; i++){
189909 0 140 if( rc!=SQLITE_OK ) return rc;
189941 0 0 for(i=0; inSegment; i++){
189951 9 27 if( nReq>pCsr->nBuffer ){
189955 0 9 if( !aNew ){
189981 0 12592 p->bDescIdx ? fts3SegReaderDoclistCmpRev : fts3SegReaderDoclistCmp
189984 0 12592 if( pCsr->nSegment==0 ) return SQLITE_OK;
189993 12549 12592 for(i=0; inAdvance; i++){
189995 0 12549 if( pSeg->bLookup ){
190000 0 12549 if( rc!=SQLITE_OK ) return rc;
190007 35 12557 if( apSegment[0]->aNode==0 ) break;
190019 20 12537 if( pFilter->zTerm && !isScan ){
20 0 if( pFilter->zTerm && !isScan ){
190020 16 4 if( pCsr->nTermnTerm
190021 0 16 || (!isPrefix && pCsr->nTerm>pFilter->nTerm)
0 0 || (!isPrefix && pCsr->nTerm>pFilter->nTerm)
190022 12 4 || memcmp(pCsr->zTerm, pFilter->zTerm, pFilter->nTerm)
190029 18 12531 while( nMerge
190030 13 5 && apSegment[nMerge]->aNode
190031 0 13 && apSegment[nMerge]->nTerm==pCsr->nTerm
190032 0 0 && 0==memcmp(pCsr->zTerm, apSegment[nMerge]->zTerm, pCsr->nTerm)
190038 12549 0 if( nMerge==1
190039 12531 18 && !isIgnoreEmpty
190040 12531 0 && !isFirst
190041 0 12531 && (p->bDescIdx==0 || fts3SegReaderIsPending(apSegment[0])==0)
0 0 && (p->bDescIdx==0 || fts3SegReaderIsPending(apSegment[0])==0)
190044 12531 0 if( fts3SegReaderIsPending(apSegment[0]) ){
190051 12531 0 if( rc==SQLITE_OK ) rc = SQLITE_ROW;
190060 18 18 for(i=0; i
190064 18 18 while( apSegment[0]->pOffsetList ){
190072 0 18 while( j
190073 0 0 && apSegment[j]->pOffsetList
190074 0 0 && apSegment[j]->iDocid==iDocid
190080 12 6 if( isColFilter ){
190084 18 0 if( !isIgnoreEmpty || nList>0 ){
18 0 if( !isIgnoreEmpty || nList>0 ){
190089 0 18 if( p->bDescIdx && nDoclist>0 ){
0 0 if( p->bDescIdx && nDoclist>0 ){
190090 0 0 if( iPrev<=iDocid ) return FTS_CORRUPT_VTAB;
190093 0 18 if( nDoclist>0 && iPrev>=iDocid ) return FTS_CORRUPT_VTAB;
0 0 if( nDoclist>0 && iPrev>=iDocid ) return FTS_CORRUPT_VTAB;
190097 18 0 nByte = sqlite3Fts3VarintLen(iDelta) + (isRequirePos?nList+1:0);
190101 0 18 if( rc ) return rc;
190103 0 18 if( isFirst ){
190108 0 0 if( nWrite ){
190115 18 0 if( isRequirePos ){
190125 18 0 if( nDoclist>0 ){
190127 0 18 if( rc ) return rc;
190135 0 12549 }while( rc==SQLITE_OK );
190144 157 8 if( pCsr ){
190146 459 157 for(i=0; inSegment; i++){
190175 0 0 if( zText ){
190179 0 0 for(i=0; zText[i]>='0' && zText[i]<='9'; i++){
0 0 for(i=0; zText[i]>='0' && zText[i]<='9'; i++){
190183 0 0 while( zText[i]==' ' ) i++;
190185 0 0 if( zText[i]=='-' ){
190189 0 0 for(/* no-op */; zText[i]>='0' && zText[i]<='9'; i++){
0 0 for(/* no-op */; zText[i]>='0' && zText[i]<='9'; i++){
190211 34 0 if( rc==SQLITE_OK ){
190223 0 34 while( SQLITE_ROW==sqlite3_step(pRange) ){
190226 0 0 if( nSize<=0 || nSize>nLimit ){
0 0 if( nSize<=0 || nSize>nLimit ){
190239 0 34 if( bOk ){
190244 0 0 if( rc==SQLITE_OK ){
190247 0 0 if( rc==SQLITE_OK ){
190251 0 0 if( rc==SQLITE_OK ){
190263 0 0 while( SQLITE_ROW==sqlite3_step(pRange) ){
190269 0 0 if( rc!=SQLITE_OK ){
190275 0 0 if( rc==SQLITE_OK ){
190280 0 0 if( rc==SQLITE_OK ){
190326 42 0 if( rc!=SQLITE_OK || csr.nSegment==0 ) goto finished;
34 8 if( rc!=SQLITE_OK || csr.nSegment==0 ) goto finished;
190328 0 34 if( iLevel!=FTS3_SEGCURSOR_PENDING ){
190330 0 0 if( rc!=SQLITE_OK ) goto finished;
190333 0 34 if( iLevel==FTS3_SEGCURSOR_ALL ){
190338 0 0 if( csr.nSegment==1 && 0==fts3SegReaderIsPending(csr.apSegment[0]) ){
0 0 if( csr.nSegment==1 && 0==fts3SegReaderIsPending(csr.apSegment[0]) ){
190353 0 34 bIgnoreEmpty = (iLevel!=FTS3_SEGCURSOR_PENDING) && (iNewLevel>iMaxLevel);
0 0 bIgnoreEmpty = (iLevel!=FTS3_SEGCURSOR_PENDING) && (iNewLevel>iMaxLevel);
190355 0 34 if( rc!=SQLITE_OK ) goto finished;
190365 0 34 filter.flags |= (bIgnoreEmpty ? FTS3_SEGMENT_IGNORE_EMPTY : 0);
190368 12565 0 while( SQLITE_OK==rc ){
190370 34 12531 if( rc!=SQLITE_ROW ) break;
190374 0 34 if( rc!=SQLITE_OK ) goto finished;
190377 0 34 if( iLevel!=FTS3_SEGCURSOR_PENDING ){
190381 0 0 if( rc!=SQLITE_OK ) goto finished;
190383 34 0 if( pWriter ){
190385 34 0 if( rc==SQLITE_OK ){
190386 0 34 if( iLevel==FTS3_SEGCURSOR_PENDING || iNewLevel
0 0 if( iLevel==FTS3_SEGCURSOR_PENDING || iNewLevel
190406 84 0 for(i=0; rc==SQLITE_OK && inIndex; i++){
42 42 for(i=0; rc==SQLITE_OK && inIndex; i++){
190408 0 42 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
190415 42 0 if( rc==SQLITE_OK && p->bHasStat
23 19 if( rc==SQLITE_OK && p->bHasStat
190416 9 14 && p->nAutoincrmerge==0xff && p->nLeafAdd>0
5 4 && p->nAutoincrmerge==0xff && p->nLeafAdd>0
190420 5 0 if( rc==SQLITE_OK ){
190423 0 5 if( rc==SQLITE_ROW ){
190425 0 0 if( p->nAutoincrmerge==1 ) p->nAutoincrmerge = 8;
190426 5 0 }else if( rc==SQLITE_DONE ){
190445 124 52 for(i=j=0; i
190461 17 0 if( nBuf && (zBuf[nBuf-1]&0x80)==0 ){
17 0 if( nBuf && (zBuf[nBuf-1]&0x80)==0 ){
190463 58 17 for(i=j=0; i
58 0 for(i=j=0; i
190469 0 17 while( i
190487 0 30 if( *pRC ) return;
190489 0 30 if( pBlob==0 ){
190495 0 30 if( rc ){
190537 0 22 if( *pRC ) return;
190539 0 22 if( a==0 ){
190545 0 22 if( rc ){
190551 17 5 if( sqlite3_step(pStmt)==SQLITE_ROW ){
190559 0 22 if( rc!=SQLITE_OK ){
190564 1 21 if( nChng<0 && a[0]<(u32)(-nChng) ){
0 1 if( nChng<0 && a[0]<(u32)(-nChng) ){
190569 54 22 for(i=0; inColumn+1; i++){
190571 0 54 if( x+aSzIns[i] < aSzDel[i] ){
190580 0 22 if( rc ){
190603 0 0 if( rc==SQLITE_OK ){
190606 0 0 if( rc==SQLITE_OK ){
190610 0 0 while( sqlite3_step(pAllLangid)==SQLITE_ROW ){
190613 0 0 for(i=0; rc==SQLITE_OK && inIndex; i++){
0 0 for(i=0; rc==SQLITE_OK && inIndex; i++){
190615 0 0 if( rc==SQLITE_DONE ){
190622 0 0 if( rc==SQLITE_OK ) rc = rc2;
190627 0 0 return (rc==SQLITE_OK && bReturnDone && bSeenDone) ? SQLITE_DONE : rc;
0 0 return (rc==SQLITE_OK && bReturnDone && bSeenDone) ? SQLITE_DONE : rc;
0 0 return (rc==SQLITE_OK && bReturnDone && bSeenDone) ? SQLITE_DONE : rc;
190644 1 0 if( rc==SQLITE_OK ){
190653 0 1 if( !zSql ){
190660 1 0 if( rc==SQLITE_OK ){
190663 0 1 if( aSz==0 ){
190672 11 0 while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){
10 1 while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){
190677 30 0 for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){
20 10 for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){
190678 20 0 if( p->abNotindexed[iCol]==0 ){
190684 10 0 if( p->bHasDocsize ){
190687 0 10 if( rc!=SQLITE_OK ){
190692 30 10 for(iCol=0; iCol<=p->nColumn; iCol++){
190697 1 0 if( p->bFts4 ){
190702 1 0 if( pStmt ){
190704 1 0 if( rc==SQLITE_OK ){
190735 0 0 if( pCsr->apSegment==0 ){
190741 0 0 if( rc==SQLITE_OK ){
190746 0 0 for(i=0; rc==SQLITE_OK && sqlite3_step(pStmt)==SQLITE_ROW && i
0 0 for(i=0; rc==SQLITE_OK && sqlite3_step(pStmt)==SQLITE_ROW && i
0 0 for(i=0; rc==SQLITE_OK && sqlite3_step(pStmt)==SQLITE_ROW && i
190758 0 0 if( rc==SQLITE_OK ) rc = rc2;
190837 0 0 if( *pRc==SQLITE_OK && nMin>pBlob->nAlloc ){
0 0 if( *pRc==SQLITE_OK && nMin>pBlob->nAlloc ){
190840 0 0 if( a ){
190866 0 0 if( p->iChild && bFirst==0 ) p->iChild++;
0 0 if( p->iChild && bFirst==0 ) p->iChild++;
190867 0 0 if( p->iOff>=p->nNode ){
190871 0 0 if( bFirst==0 ){
190872 0 0 p->iOff += fts3GetVarint32(&p->aNode[p->iOff], &nPrefix);
190874 0 0 p->iOff += fts3GetVarint32(&p->aNode[p->iOff], &nSuffix);
190876 0 0 if( nPrefix>p->term.n || nSuffix>p->nNode-p->iOff || nSuffix==0 ){
0 0 if( nPrefix>p->term.n || nSuffix>p->nNode-p->iOff || nSuffix==0 ){
0 0 if( nPrefix>p->term.n || nSuffix>p->nNode-p->iOff || nSuffix==0 ){
190880 0 0 if( rc==SQLITE_OK && ALWAYS(p->term.a!=0) ){
0 0 if( rc==SQLITE_OK && ALWAYS(p->term.a!=0) ){
190884 0 0 if( p->iChild==0 ){
190885 0 0 p->iOff += fts3GetVarint32(&p->aNode[p->iOff], &p->nDoclist);
190886 0 0 if( (p->nNode-p->iOff)nDoclist ){
190919 0 0 if( aNode && aNode[0] ){
0 0 if( aNode && aNode[0] ){
190926 0 0 return aNode ? nodeReaderNext(p) : SQLITE_OK;
190949 0 0 for(iLayer=1; ALWAYS(iLayer
190963 0 0 if(nSuffix<=0 ) return FTS_CORRUPT_VTAB;
190967 0 0 if( pNode->key.n==0 || (pNode->block.n + nSpace)<=p->nNodeSize ){
0 0 if( pNode->key.n==0 || (pNode->block.n + nSpace)<=p->nNodeSize ){
190973 0 0 if( pBlk->n==0 ){
190975 0 0 if( rc==SQLITE_OK ){
190983 0 0 if( rc==SQLITE_OK ){
190984 0 0 if( pNode->key.n ){
191011 0 0 if( rc!=SQLITE_OK || iNextPtr==0 ) return rc;
0 0 if( rc!=SQLITE_OK || iNextPtr==0 ) return rc;
191062 0 0 if( rc!=SQLITE_OK ) return rc;
191066 0 0 if( nSuffix<=0 ) return FTS_CORRUPT_VTAB;
191070 0 0 if( bFirst==0 ){
191077 0 0 if( aDoclist ){
191112 0 0 if(nSuffix<=0 ) return FTS_CORRUPT_VTAB;
191121 0 0 if( pLeaf->block.n>0 && (pLeaf->block.n + nSpace)>p->nNodeSize ){
0 0 if( pLeaf->block.n>0 && (pLeaf->block.n + nSpace)>p->nNodeSize ){
191137 0 0 if( rc==SQLITE_OK ){
191154 0 0 if( rc==SQLITE_OK ){
191155 0 0 if( pLeaf->block.n==0 ){
191194 0 0 for(iRoot=FTS_MAX_APPENDABLE_HEIGHT-1; iRoot>=0; iRoot--){
191196 0 0 if( pNode->block.n>0 ) break;
191204 0 0 if( iRoot<0 ) return;
191221 0 0 if( iRoot==0 ){
191224 0 0 if( rc==SQLITE_OK ){
191235 0 0 for(i=0; i
191237 0 0 if( pNode->block.n>0 && rc==SQLITE_OK ){
0 0 if( pNode->block.n>0 && rc==SQLITE_OK ){
191245 0 0 if( rc==SQLITE_OK ){
191246 0 0 rc = fts3WriteSegdir(p,
191277 0 0 if( nCmp && ALWAYS(zLhs) && ALWAYS(zRhs) ){
0 0 if( nCmp && ALWAYS(zLhs) && ALWAYS(zRhs) ){
0 0 if( nCmp && ALWAYS(zLhs) && ALWAYS(zRhs) ){
191282 0 0 if( res==0 ) res = nLhs - nRhs;
191306 0 0 if( rc==SQLITE_OK ){
191308 0 0 if( SQLITE_ROW==sqlite3_step(pCheck) ) bRes = 1;
191343 0 0 if( rc==SQLITE_OK ){
191355 0 0 if( sqlite3_step(pSelect)==SQLITE_ROW ){
191359 0 0 if( pWriter->nLeafData<0 ){
191365 0 0 if( aRoot==0 ){
191367 0 0 return nRoot ? SQLITE_NOMEM : FTS_CORRUPT_VTAB;
191377 0 0 if( rc==SQLITE_OK && bAppendable ){
0 0 if( rc==SQLITE_OK && bAppendable ){
191382 0 0 if( rc==SQLITE_OK ){
191384 0 0 for(rc = nodeReaderInit(&reader, aLeaf, nLeaf);
191385 0 0 rc==SQLITE_OK && reader.aNode;
191390 0 0 if( fts3TermCmp(zKey, nKey, reader.term.a, reader.term.n)<=0 ){
191398 0 0 if( rc==SQLITE_OK && bAppendable ){
0 0 if( rc==SQLITE_OK && bAppendable ){
191404 0 0 if( nHeight<1 || nHeight>=FTS_MAX_APPENDABLE_HEIGHT ){
0 0 if( nHeight<1 || nHeight>=FTS_MAX_APPENDABLE_HEIGHT ){
191415 0 0 for(i=nHeight+1; i
191424 0 0 if( rc==SQLITE_OK ){
191430 0 0 for(i=nHeight; i>=0 && rc==SQLITE_OK; i--){
0 0 for(i=nHeight; i>=0 && rc==SQLITE_OK; i--){
191434 0 0 if( pNode->block.a){
191436 0 0 while( reader.aNode && rc==SQLITE_OK ) rc = nodeReaderNext(&reader);
0 0 while( reader.aNode && rc==SQLITE_OK ) rc = nodeReaderNext(&reader);
191438 0 0 if( rc==SQLITE_OK ){
191440 0 0 if( reader.term.n>0 ){
191444 0 0 if( i>0 ){
191453 0 0 if( rc==SQLITE_OK ){
191467 0 0 if( rc==SQLITE_OK ) rc = rc2;
191491 0 0 if( rc==SQLITE_OK ){
191542 0 0 if( rc==SQLITE_OK ){
191545 0 0 if( SQLITE_ROW==sqlite3_step(pLeafEst) ){
191550 0 0 if( rc!=SQLITE_OK ) return rc;
191554 0 0 if( rc==SQLITE_OK ){
191555 0 0 if( SQLITE_ROW==sqlite3_step(pFirstBlock) ){
191562 0 0 if( rc!=SQLITE_OK ) return rc;
191568 0 0 if( rc!=SQLITE_OK ) return rc;
191575 0 0 for(i=0; i
191601 0 0 if( rc==SQLITE_OK ){
191629 0 0 if( rc==SQLITE_OK ){
191632 0 0 while( SQLITE_ROW==sqlite3_step(pSelect) ){
191633 0 0 if( nIdx>=nAlloc ){
191637 0 0 if( !aNew ){
191646 0 0 if( rc==SQLITE_OK ) rc = rc2;
191649 0 0 if( rc==SQLITE_OK ){
191652 0 0 if( rc==SQLITE_OK ){
191658 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
191659 0 0 if( aIdx[i]!=i ){
191674 0 0 if( iChild ){
191704 0 0 if( nNode<1 ) return FTS_CORRUPT_VTAB;
191709 0 0 if( rc!=SQLITE_OK ) return rc;
191713 0 0 for(rc = nodeReaderInit(&reader, aNode, nNode);
191714 0 0 rc==SQLITE_OK && reader.aNode;
191717 0 0 if( pNew->n==0 ){
191719 0 0 if( res<0 || (bLeaf==0 && res==0) ) continue;
0 0 if( res<0 || (bLeaf==0 && res==0) ) continue;
0 0 if( res<0 || (bLeaf==0 && res==0) ) continue;
191727 0 0 if( rc!=SQLITE_OK ) break;
191729 0 0 if( pNew->n==0 ){
191765 0 0 if( rc==SQLITE_OK ){
191769 0 0 if( SQLITE_ROW==sqlite3_step(pFetch) ){
191776 0 0 if( rc==SQLITE_OK ) rc = rc2;
191779 0 0 while( rc==SQLITE_OK && iBlock ){
0 0 while( rc==SQLITE_OK && iBlock ){
191785 0 0 if( rc==SQLITE_OK ){
191788 0 0 if( rc==SQLITE_OK ){
191795 0 0 if( rc==SQLITE_OK && iNewStart ){
0 0 if( rc==SQLITE_OK && iNewStart ){
191798 0 0 if( rc==SQLITE_OK ){
191806 0 0 if( rc==SQLITE_OK ){
191809 0 0 if( rc==SQLITE_OK ){
191845 0 0 for(i=pCsr->nSegment-1; i>=0 && rc==SQLITE_OK; i--){
0 0 for(i=pCsr->nSegment-1; i>=0 && rc==SQLITE_OK; i--){
191851 0 0 for(j=0; ALWAYS(jnSegment); j++){
191853 0 0 if( pSeg->iIdx==i ) break;
191857 0 0 if( pSeg->aNode==0 ){
191860 0 0 if( rc==SQLITE_OK ){
191875 0 0 if( rc==SQLITE_OK && nRem!=pCsr->nSegment ){
0 0 if( rc==SQLITE_OK && nRem!=pCsr->nSegment ){
191891 0 0 if( rc==SQLITE_OK ){
191916 0 0 if( rc==SQLITE_OK ){
191919 0 0 if( SQLITE_ROW==sqlite3_step(pSelect) ){
191922 0 0 if( aHint ){
191924 0 0 if( rc==SQLITE_OK ){
191925 0 0 if( ALWAYS(pHint->a!=0) ) memcpy(pHint->a, aHint, nHint);
191931 0 0 if( rc==SQLITE_OK ) rc = rc2;
191953 0 0 if( *pRc==SQLITE_OK ){
191972 0 0 if( (pHint->a[i] & 0x80) ) return FTS_CORRUPT_VTAB;
191973 0 0 while( i>0 && (pHint->a[i-1] & 0x80) ) i--;
0 0 while( i>0 && (pHint->a[i-1] & 0x80) ) i--;
191974 0 0 if( i==0 ) return FTS_CORRUPT_VTAB;
191976 0 0 while( i>0 && (pHint->a[i-1] & 0x80) ) i--;
0 0 while( i>0 && (pHint->a[i-1] & 0x80) ) i--;
191980 0 0 i += fts3GetVarint32(&pHint->a[i], pnInput);
191982 0 0 if( i!=nHint ) return FTS_CORRUPT_VTAB;
192011 0 0 if( !pWriter ) return SQLITE_NOMEM;
192016 0 0 while( rc==SQLITE_OK && nRem>0 ){
0 0 while( rc==SQLITE_OK && nRem>0 ){
192030 0 0 if( sqlite3_step(pFindLevel)==SQLITE_ROW ){
192044 0 0 if( rc==SQLITE_OK && hint.n ){
0 0 if( rc==SQLITE_OK && hint.n ){
192050 0 0 if( nSeg<0 || (iAbsLevel % nMod) >= (iHintAbsLevel % nMod) ){
0 0 if( nSeg<0 || (iAbsLevel % nMod) >= (iHintAbsLevel % nMod) ){
192071 0 0 if( nSeg<=0 ) break;
192074 0 0 if( iAbsLevel<0 || iAbsLevel>(nMod<<32) ){
0 0 if( iAbsLevel<0 || iAbsLevel>(nMod<<32) ){
192088 0 0 if( rc==SQLITE_OK ){
192091 0 0 if( iIdx==0 || (bUseHint && iIdx==1) ){
0 0 if( iIdx==0 || (bUseHint && iIdx==1) ){
0 0 if( iIdx==0 || (bUseHint && iIdx==1) ){
192094 0 0 if( bIgnore ){
192100 0 0 if( rc==SQLITE_OK ){
192103 0 0 if( SQLITE_OK==rc && pCsr->nSegment==nSeg
0 0 if( SQLITE_OK==rc && pCsr->nSegment==nSeg
192104 0 0 && SQLITE_OK==(rc = sqlite3Fts3SegReaderStart(p, pCsr, pFilter))
192108 0 0 if( rc==SQLITE_OK ){
192110 0 0 }else if( rc!=SQLITE_ROW ){
192114 0 0 if( bUseHint && iIdx>0 ){
0 0 if( bUseHint && iIdx>0 ){
192122 0 0 if( rc==SQLITE_OK && pWriter->nLeafEst ){
0 0 if( rc==SQLITE_OK && pWriter->nLeafEst ){
192124 0 0 if( bEmpty==0 ){
192127 0 0 if( rc==SQLITE_OK ) rc = sqlite3Fts3SegReaderStep(p, pCsr);
192128 0 0 if( pWriter->nWork>=nRem && rc==SQLITE_ROW ) rc = SQLITE_OK;
0 0 if( pWriter->nWork>=nRem && rc==SQLITE_ROW ) rc = SQLITE_OK;
192129 0 0 }while( rc==SQLITE_ROW );
192133 0 0 if( rc==SQLITE_OK ){
192136 0 0 if( nSeg!=0 ){
192143 0 0 if( nSeg!=0 ){
192147 0 0 if( nSeg==0 && pWriter->bNoLeafData==0 ){
0 0 if( nSeg==0 && pWriter->bNoLeafData==0 ){
192156 0 0 if( bDirtyHint && rc==SQLITE_OK ){
0 0 if( bDirtyHint && rc==SQLITE_OK ){
192176 0 0 while( (*z)>='0' && (*z)<='9' && i<214748363 ) i = 10*i + *(z++) - '0';
0 0 while( (*z)>='0' && (*z)<='9' && i<214748363 ) i = 10*i + *(z++) - '0';
0 0 while( (*z)>='0' && (*z)<='9' && i<214748363 ) i = 10*i + *(z++) - '0';
192204 0 0 if( z[0]==',' && z[1]!='\0' ){
0 0 if( z[0]==',' && z[1]!='\0' ){
192209 0 0 if( z[0]!='\0' || nMin<2 ){
0 0 if( z[0]!='\0' || nMin<2 ){
192213 0 0 if( !p->bHasStat ){
192217 0 0 if( rc==SQLITE_OK ){
192240 0 0 if( p->nAutoincrmerge==1 || p->nAutoincrmerge>MergeCount(p) ){
0 0 if( p->nAutoincrmerge==1 || p->nAutoincrmerge>MergeCount(p) ){
192243 0 0 if( !p->bHasStat ){
192246 0 0 if( rc ) return rc;
192249 0 0 if( rc ) return rc;
192277 0 0 for(i=0; i
192312 0 0 if( rc==SQLITE_OK ){
192316 0 0 if( rc==SQLITE_OK ){
192317 0 0 while( SQLITE_ROW==(rc = sqlite3Fts3SegReaderStep(p, &csr)) ){
192326 0 0 while( pCsr
192329 0 0 if( pCsr
192330 0 0 if( iVal==0 || iVal==1 ){
0 0 if( iVal==0 || iVal==1 ){
192333 0 0 if( iVal ){
192337 0 0 if( p->bDescIdx ){
192377 0 0 if( rc==SQLITE_OK ){
192381 0 0 while( rc==SQLITE_OK && sqlite3_step(pAllLangid)==SQLITE_ROW ){
0 0 while( rc==SQLITE_OK && sqlite3_step(pAllLangid)==SQLITE_ROW ){
192384 0 0 for(i=0; inIndex; i++){
192389 0 0 if( rc==SQLITE_OK ) rc = rc2;
192393 0 0 if( rc==SQLITE_OK ){
192399 0 0 if( !zSql ){
192406 0 0 while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){
0 0 while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){
192411 0 0 for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){
0 0 for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){
192412 0 0 if( p->abNotindexed[iCol]==0 ){
192417 0 0 while( rc==SQLITE_OK ){
192424 0 0 if( rc==SQLITE_OK ){
192429 0 0 for(i=1; inIndex; i++){
192430 0 0 if( p->aIndex[i].nPrefix<=nToken ){
192438 0 0 if( pT ) pModule->xClose(pT);
192439 0 0 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
192488 0 0 if( rc==SQLITE_OK && bOk==0 ) rc = FTS_CORRUPT_VTAB;
0 0 if( rc==SQLITE_OK && bOk==0 ) rc = FTS_CORRUPT_VTAB;
192505 0 1 if( !zVal ){
192507 0 1 }else if( nVal==8 && 0==sqlite3_strnicmp(zVal, "optimize", 8) ){
0 0 }else if( nVal==8 && 0==sqlite3_strnicmp(zVal, "optimize", 8) ){
192509 1 0 }else if( nVal==7 && 0==sqlite3_strnicmp(zVal, "rebuild", 7) ){
1 0 }else if( nVal==7 && 0==sqlite3_strnicmp(zVal, "rebuild", 7) ){
192511 0 0 }else if( nVal==15 && 0==sqlite3_strnicmp(zVal, "integrity-check", 15) ){
0 0 }else if( nVal==15 && 0==sqlite3_strnicmp(zVal, "integrity-check", 15) ){
192513 0 0 }else if( nVal>6 && 0==sqlite3_strnicmp(zVal, "merge=", 6) ){
0 0 }else if( nVal>6 && 0==sqlite3_strnicmp(zVal, "merge=", 6) ){
192515 0 0 }else if( nVal>10 && 0==sqlite3_strnicmp(zVal, "automerge=", 10) ){
0 0 }else if( nVal>10 && 0==sqlite3_strnicmp(zVal, "automerge=", 10) ){
192548 0 114 for(pDef=pCsr->pDeferred; pDef; pDef=pDef->pNext){
192561 0 189 for(pDef=pCsr->pDeferred; pDef; pDef=pNext){
192579 0 0 if( pCsr->pDeferred ){
192591 0 0 for(i=0; inColumn && rc==SQLITE_OK; i++){
0 0 for(i=0; inColumn && rc==SQLITE_OK; i++){
192592 0 0 if( p->abNotindexed[i]==0 ){
192597 0 0 while( rc==SQLITE_OK ){
192604 0 0 for(pDef=pCsr->pDeferred; pDef && rc==SQLITE_OK; pDef=pDef->pNext){
0 0 for(pDef=pCsr->pDeferred; pDef && rc==SQLITE_OK; pDef=pDef->pNext){
192606 0 0 if( (pDef->iCol>=p->nColumn || pDef->iCol==i)
0 0 if( (pDef->iCol>=p->nColumn || pDef->iCol==i)
192607 0 0 && (pPT->bFirst==0 || iPos==0)
0 0 && (pPT->bFirst==0 || iPos==0)
192608 0 0 && (pPT->n==nToken || (pPT->isPrefix && pPT->n
0 0 && (pPT->n==nToken || (pPT->isPrefix && pPT->n
0 0 && (pPT->n==nToken || (pPT->isPrefix && pPT->n
192609 0 0 && (0==memcmp(zToken, pPT->z, pPT->n))
192615 0 0 if( pTC ) pModule->xClose(pTC);
192616 0 0 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
192620 0 0 for(pDef=pCsr->pDeferred; pDef && rc==SQLITE_OK; pDef=pDef->pNext){
0 0 for(pDef=pCsr->pDeferred; pDef && rc==SQLITE_OK; pDef=pDef->pNext){
192621 0 0 if( pDef->pList ){
192642 0 0 if( p->pList==0 ){
192647 0 0 if( !pRet ) return SQLITE_NOMEM;
192667 0 0 if( !pDeferred ){
192698 1 0 if( bFound && rc==SQLITE_OK ){
1 0 if( bFound && rc==SQLITE_OK ){
192701 1 0 if( rc==SQLITE_OK ){
192702 0 1 if( isEmpty ){
192711 0 1 if( p->zContentTbl==0 ){
192714 1 0 if( p->bHasDocsize ){
192764 37 1 if( nArg>1
192765 37 0 && sqlite3_value_type(apVal[0])==SQLITE_NULL
192766 1 36 && sqlite3_value_type(apVal[p->nColumn+2])!=SQLITE_NULL
192772 36 1 if( nArg>1 && sqlite3_value_int(apVal[2 + p->nColumn + 2])<0 ){
0 36 if( nArg>1 && sqlite3_value_int(apVal[2 + p->nColumn + 2])<0 ){
192779 0 37 if( aSzDel==0 ){
192787 0 37 if( rc!=SQLITE_OK ) goto update_out;
192798 36 1 if( nArg>1 && p->zContentTbl==0 ){
33 3 if( nArg>1 && p->zContentTbl==0 ){
192801 33 0 if( sqlite3_value_type(pNewRowid)==SQLITE_NULL ){
192807 0 0 || sqlite3_value_int64(apVal[0])!=sqlite3_value_int64(pNewRowid)
192826 0 0 if( sqlite3_vtab_on_conflict(p->db)==SQLITE_REPLACE ){
192834 0 37 if( rc!=SQLITE_OK ){
192839 1 36 if( sqlite3_value_type(apVal[0])!=SQLITE_NULL ){
192845 36 1 if( nArg>1 && rc==SQLITE_OK ){
36 0 if( nArg>1 && rc==SQLITE_OK ){
192847 36 0 if( bInsertDone==0 ){
192849 0 36 if( rc==SQLITE_CONSTRAINT && p->zContentTbl==0 ){
0 0 if( rc==SQLITE_CONSTRAINT && p->zContentTbl==0 ){
192853 36 0 if( rc==SQLITE_OK ){
192856 36 0 if( rc==SQLITE_OK ){
192860 20 16 if( p->bHasDocsize ){
192866 21 16 if( p->bFts4 ){
192884 0 0 if( rc==SQLITE_OK ){
192886 0 0 if( rc==SQLITE_OK || rc==SQLITE_DONE ){
0 0 if( rc==SQLITE_OK || rc==SQLITE_DONE ){
192888 0 0 if( rc2!=SQLITE_OK ) rc = rc2;
193043 0 0 if( pRet ){
193062 0 0 if( (u32*)p==&pBuf->aMatchinfo[1] ){
193068 0 0 if( pBuf->aRef[0]==0 && pBuf->aRef[1]==0 && pBuf->aRef[2]==0 ){
0 0 if( pBuf->aRef[0]==0 && pBuf->aRef[1]==0 && pBuf->aRef[2]==0 ){
0 0 if( pBuf->aRef[0]==0 && pBuf->aRef[1]==0 && pBuf->aRef[2]==0 ){
193077 0 0 if( p->aRef[1]==0 ){
193082 0 0 else if( p->aRef[2]==0 ){
193088 0 0 if( aOut ){
193090 0 0 if( p->bGlobal ) memcpy(aOut, &p->aMatchinfo[1], p->nElem*sizeof(u32));
193107 0 189 if( p ){
193110 0 0 if( p->aRef[0]==0 && p->aRef[1]==0 && p->aRef[2]==0 ){
0 0 if( p->aRef[0]==0 && p->aRef[1]==0 && p->aRef[2]==0 ){
0 0 if( p->aRef[0]==0 && p->aRef[1]==0 && p->aRef[2]==0 ){
193143 48 16 *pp += fts3GetVarint32(*pp, &iVal);
193159 0 32 if( eType!=FTSQUERY_PHRASE ){
193162 0 0 if( rc==SQLITE_OK && eType!=FTSQUERY_NOT ){
0 0 if( rc==SQLITE_OK && eType!=FTSQUERY_NOT ){
193229 12 4 if( pnPhrase ) *pnPhrase = sCtx.nPhrase;
193230 4 12 if( pnToken ) *pnToken = sCtx.nToken;
193252 44 0 if( pIter ){
193255 44 32 while( iIter
193256 12 32 if( 0==(*pIter & 0xFE) ){
193275 12 28 if( pIter->iCurrent<0 ){
193285 12 12 for(i=0; inPhrase; i++){
193293 28 28 for(i=0; inPhrase; i++){
193295 16 12 if( pPhrase->pHead && pPhrase->iHead
16 0 if( pPhrase->pHead && pPhrase->iHead
193299 12 16 if( iEnd==0x7FFFFFFF ){
193304 16 16 for(i=0; inPhrase; i++){
193332 28 28 for(i=0; inPhrase; i++){
193334 28 0 if( pPhrase->pTail ){
193338 28 16 while( iCsr<(iStart+pIter->nSnippet) && iCsr>=iStart ){
28 0 while( iCsr<(iStart+pIter->nSnippet) && iCsr>=iStart ){
193344 0 28 if( (mCover|mCovered)&mPhrase ){
193351 76 28 for(j=0; jnToken; j++){
193355 12 16 if( 0==(*pCsr & 0x0FE) ) break;
193381 12 0 if( pCsr ){
193385 0 12 if( iFirst<0 ){
193439 0 12 if( rc!=SQLITE_OK ){
193448 0 12 if( !sIter.aPhrase ){
193461 12 0 if( rc==SQLITE_OK ){
193464 12 12 for(i=0; i
193465 12 0 if( sIter.aPhrase[i].pHead ){
193474 28 12 while( !fts3SnippetNextCandidate(&sIter) ){
193481 12 16 if( iScore>iBestScore ){
193507 72 260 if( nAppend<0 ){
193515 24 308 if( pStr->n+nAppend+1>=pStr->nAlloc ){
193518 0 24 if( !zNew ){
193565 12 0 if( hlmask ){
193570 20 12 for(nLeft=0; !(hlmask & ((u64)1 << nLeft)); nLeft++);
193571 132 12 for(nRight=0; !(hlmask & ((u64)1 << (nSnippet-1-nRight))); nRight++);
193582 0 12 if( nDesired>0 ){
193594 0 0 if( rc!=SQLITE_OK ){
193597 0 0 while( rc==SQLITE_OK && iCurrent<(nSnippet+nDesired) ){
0 0 while( rc==SQLITE_OK && iCurrent<(nSnippet+nDesired) ){
193602 0 0 if( rc!=SQLITE_OK && rc!=SQLITE_DONE ){ return rc; }
0 0 if( rc!=SQLITE_OK && rc!=SQLITE_DONE ){ return rc; }
193606 0 0 if( nShift>0 ){
193644 0 12 if( zDoc==0 ){
193645 0 0 if( sqlite3_column_type(pCsr->pStmt, iCol)!=SQLITE_NULL ){
193655 0 12 if( rc!=SQLITE_OK ){
193659 148 0 while( rc==SQLITE_OK ){
193678 4 144 if( rc!=SQLITE_OK ){
193679 4 0 if( rc==SQLITE_DONE ){
193688 0 144 if( iCurrent
193690 12 132 if( !isShiftDone ){
193701 12 0 if( rc==SQLITE_OK ){
193702 12 0 if( iPos>0 || iFragment>0 ){
0 12 if( iPos>0 || iFragment>0 ){
193704 0 12 }else if( iBegin ){
193708 12 0 if( rc!=SQLITE_OK || iCurrent
0 12 if( rc!=SQLITE_OK || iCurrent
193711 8 136 if( iCurrent>=(iPos+nSnippet) ){
193712 8 0 if( isLast ){
193721 124 12 if( iCurrent>iPos ) rc = fts3StringAppend(pOut, &zDoc[iEnd], iBegin-iEnd);
193722 136 0 if( rc==SQLITE_OK && isHighlight ) rc = fts3StringAppend(pOut, zOpen, -1);
28 108 if( rc==SQLITE_OK && isHighlight ) rc = fts3StringAppend(pOut, zOpen, -1);
193723 136 0 if( rc==SQLITE_OK ) rc = fts3StringAppend(pOut, &zDoc[iBegin], iFin-iBegin);
193724 136 0 if( rc==SQLITE_OK && isHighlight ) rc = fts3StringAppend(pOut, zClose, -1);
28 108 if( rc==SQLITE_OK && isHighlight ) rc = fts3StringAppend(pOut, zClose, -1);
193753 0 0 while( 0xFE & (*pEnd | c) ){
193755 0 0 if( !c ) nEntry++;
193776 0 0 if( p->flag==FTS3_MATCHINFO_LHITS ){
193782 0 0 if( pIter ) while( 1 ){
193784 0 0 if( (pPhrase->iColumn>=pTab->nColumn || pPhrase->iColumn==iCol) ){
0 0 if( (pPhrase->iColumn>=pTab->nColumn || pPhrase->iColumn==iCol) ){
193785 0 0 if( p->flag==FTS3_MATCHINFO_LHITS ){
193787 0 0 }else if( nHit ){
193792 0 0 if( *pIter!=0x01 ) break;
193794 0 0 pIter += fts3GetVarint32(pIter, &iCol);
193795 0 0 if( iCol>=p->nCol ) return FTS_CORRUPT_VTAB;
193809 0 0 if( pExpr->bEof==0 && pExpr->iDocid==p->pCursor->iPrevId ){
0 0 if( pExpr->bEof==0 && pExpr->iDocid==p->pCursor->iPrevId ){
193810 0 0 if( pExpr->pLeft ){
193812 0 0 if( rc==SQLITE_OK ) rc = fts3ExprLHitGather(pExpr->pRight, p);
193873 0 0 for(i=0; inCol && rc==SQLITE_OK; i++){
0 0 for(i=0; inCol && rc==SQLITE_OK; i++){
193876 0 0 if( pCsr ){
193891 0 0 if( (cArg==FTS3_MATCHINFO_NPHRASE)
193892 0 0 || (cArg==FTS3_MATCHINFO_NCOL)
193893 0 0 || (cArg==FTS3_MATCHINFO_NDOC && pTab->bFts4)
0 0 || (cArg==FTS3_MATCHINFO_NDOC && pTab->bFts4)
193894 0 0 || (cArg==FTS3_MATCHINFO_AVGLENGTH && pTab->bFts4)
0 0 || (cArg==FTS3_MATCHINFO_AVGLENGTH && pTab->bFts4)
193895 0 0 || (cArg==FTS3_MATCHINFO_LENGTH && pTab->bHasDocsize)
0 0 || (cArg==FTS3_MATCHINFO_LENGTH && pTab->bHasDocsize)
193896 0 0 || (cArg==FTS3_MATCHINFO_LCS)
193897 0 0 || (cArg==FTS3_MATCHINFO_HITS)
193898 0 0 || (cArg==FTS3_MATCHINFO_LHITS)
193899 0 0 || (cArg==FTS3_MATCHINFO_LHITS_BM)
193954 0 0 if( !*ppStmt ){
193956 0 0 if( rc!=SQLITE_OK ) return rc;
193963 0 0 if( a==0 ){
193968 0 0 if( nDoc<=0 || a>pEnd ){
0 0 if( nDoc<=0 || a>pEnd ){
193973 0 0 if( paLen ) *paLen = a;
193974 0 0 if( ppEnd ) *ppEnd = pEnd;
194018 0 0 if( NEVER(pIter==0) ) return 1;
194021 0 0 if( iRead==0 || iRead==1 ){
0 0 if( iRead==0 || iRead==1 ){
194054 0 0 if( !aIter ) return SQLITE_NOMEM;
194057 0 0 for(i=0; inPhrase; i++){
194063 0 0 for(iCol=0; iColnCol; iCol++){
194067 0 0 for(i=0; inPhrase; i++){
194070 0 0 if( rc!=SQLITE_OK ) goto matchinfo_lcs_out;
194071 0 0 if( pIt->pRead ){
194074 0 0 if( pIt->pRead==0 ){
194082 0 0 while( nLive>0 ){
194086 0 0 for(i=0; inPhrase; i++){
194088 0 0 if( pIter->pRead==0 ){
194092 0 0 if( pAdv==0 || pIter->iPosiPos ){
0 0 if( pAdv==0 || pIter->iPosiPos ){
194095 0 0 if( nThisLcs==0 || pIter->iPos==pIter[-1].iPos ){
0 0 if( nThisLcs==0 || pIter->iPos==pIter[-1].iPos ){
194100 0 0 if( nThisLcs>nLcs ) nLcs = nThisLcs;
194103 0 0 if( fts3LcsIteratorAdvance(pAdv) ) nLive--;
194142 0 0 for(i=0; rc==SQLITE_OK && zArg[i]; i++){
0 0 for(i=0; rc==SQLITE_OK && zArg[i]; i++){
194146 0 0 if( bGlobal ) pInfo->aMatchinfo[0] = pInfo->nPhrase;
194150 0 0 if( bGlobal ) pInfo->aMatchinfo[0] = pInfo->nCol;
194154 0 0 if( bGlobal ){
194162 0 0 if( bGlobal ){
194168 0 0 if( rc==SQLITE_OK ){
194170 0 0 for(iCol=0; iColnCol; iCol++){
194174 0 0 if( a>pEnd ){
194188 0 0 if( rc==SQLITE_OK ){
194192 0 0 for(iCol=0; iColnCol; iCol++){
194195 0 0 if( a>pEnd ){
194208 0 0 if( rc==SQLITE_OK ){
194226 0 0 if( rc!=SQLITE_OK ) break;
194227 0 0 if( bGlobal ){
194228 0 0 if( pCsr->pDeferred ){
194230 0 0 if( rc!=SQLITE_OK ) break;
194234 0 0 if( rc!=SQLITE_OK ) break;
194273 0 0 if( pCsr->pMIBuffer && strcmp(pCsr->pMIBuffer->zMatchinfo, zArg) ){
0 0 if( pCsr->pMIBuffer && strcmp(pCsr->pMIBuffer->zMatchinfo, zArg) ){
194283 0 0 if( pCsr->pMIBuffer==0 ){
194292 0 0 for(i=0; zArg[i]; i++){
194294 0 0 if( fts3MatchinfoCheck(pTab, zArg[i], &zErr) ){
194304 0 0 if( !pCsr->pMIBuffer ) rc = SQLITE_NOMEM;
194310 0 0 if( rc==SQLITE_OK ){
194312 0 0 if( xDestroyOut==0 ){
194317 0 0 if( rc==SQLITE_OK ){
194321 0 0 if( bGlobal ){
194326 0 0 if( rc!=SQLITE_OK ){
194328 0 0 if( xDestroyOut ) xDestroyOut(aOut);
194364 0 12 if( !pCsr->pExpr ){
194370 0 12 if( nToken<-64 ) nToken = -64;
194371 0 12 if( nToken>+64 ) nToken = +64;
194379 12 0 if( nToken>=0 ){
194385 12 12 for(iSnip=0; iSnip
194396 12 12 for(iRead=0; iReadnColumn; iRead++){
194399 0 12 if( iCol>=0 && iRead!=iCol ) continue;
0 0 if( iCol>=0 && iRead!=iCol ) continue;
194403 0 12 if( rc!=SQLITE_OK ){
194406 12 0 if( iS>iBestScore ){
194419 0 12 if( mSeen==mCovered || nSnippet==SizeofArray(aSnippet) ) break;
0 0 if( mSeen==mCovered || nSnippet==SizeofArray(aSnippet) ) break;
194424 12 12 for(i=0; i
12 0 for(i=0; i
194432 0 12 if( rc!=SQLITE_OK ){
194472 4 0 if( pList ){
194477 4 4 for(iTerm=0; iTerm
194502 0 4 if( !pCsr->pExpr ){
194512 0 4 if( rc!=SQLITE_OK ) goto offsets_out;
194516 0 4 if( 0==sCtx.aTerm ){
194526 4 4 for(iCol=0; iColnColumn; iCol++){
194542 0 4 if( rc!=SQLITE_OK ) goto offsets_out;
194552 0 4 if( zDoc==0 ){
194553 0 0 if( sqlite3_column_type(pCsr->pStmt, iCol+1)==SQLITE_NULL ){
194564 0 4 if( rc!=SQLITE_OK ) goto offsets_out;
194567 8 4 while( rc==SQLITE_OK ){
194572 8 8 for(i=0; i
194574 4 4 if( pT->pList && (pT->iPos-pT->iOff)
4 0 if( pT->pList && (pT->iPos-pT->iOff)
194580 4 4 if( !pTerm ){
194585 4 0 if( 0==(0xFE&*pTerm->pList) ){
194590 12 0 while( rc==SQLITE_OK && iCurrent
8 4 while( rc==SQLITE_OK && iCurrent
194593 4 0 if( rc==SQLITE_OK ){
194599 0 0 }else if( rc==SQLITE_DONE && pTab->zContentTbl==0 ){
0 0 }else if( rc==SQLITE_DONE && pTab->zContentTbl==0 ){
194604 4 0 if( rc==SQLITE_DONE ){
194609 0 4 if( rc!=SQLITE_OK ) goto offsets_out;
194616 0 4 if( rc!=SQLITE_OK ){
194636 0 0 if( zArg ){
194642 0 0 if( !pCsr->pExpr ){
194760 0 0 if( pTokenizer ){
194799 0 0 while( z
194800 0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
194802 0 0 if( sqlite3FtsUnicodeIsalnum((int)iCode)!=bAlnum
194803 0 0 && sqlite3FtsUnicodeIsdiacritic((int)iCode)==0
194809 0 0 if( nEntry ){
194814 0 0 if( aNew==0 ) return SQLITE_NOMEM;
194818 0 0 while( z
194819 0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
194820 0 0 if( sqlite3FtsUnicodeIsalnum((int)iCode)!=bAlnum
194821 0 0 && sqlite3FtsUnicodeIsdiacritic((int)iCode)==0
194824 0 0 for(i=0; i
0 0 for(i=0; i
194825 0 0 for(j=nNew; j>i; j--) aNew[j] = aNew[j-1];
194841 0 0 if( p->nException>0 ){
194846 0 0 while( iHi>=iLo ){
194848 0 0 if( iCode==a[iTest] ){
194850 0 0 }else if( iCode>a[iTest] ){
194883 0 0 if( pNew==NULL ) return SQLITE_NOMEM;
194887 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
194891 0 0 if( n==19 && memcmp("remove_diacritics=1", z, 19)==0 ){
0 0 if( n==19 && memcmp("remove_diacritics=1", z, 19)==0 ){
194894 0 0 else if( n==19 && memcmp("remove_diacritics=0", z, 19)==0 ){
0 0 else if( n==19 && memcmp("remove_diacritics=0", z, 19)==0 ){
194897 0 0 else if( n==19 && memcmp("remove_diacritics=2", z, 19)==0 ){
0 0 else if( n==19 && memcmp("remove_diacritics=2", z, 19)==0 ){
194900 0 0 else if( n>=11 && memcmp("tokenchars=", z, 11)==0 ){
0 0 else if( n>=11 && memcmp("tokenchars=", z, 11)==0 ){
194903 0 0 else if( n>=11 && memcmp("separators=", z, 11)==0 ){
0 0 else if( n>=11 && memcmp("separators=", z, 11)==0 ){
194912 0 0 if( rc!=SQLITE_OK ){
194935 0 0 if( pCsr==0 ){
194941 0 0 if( aInput==0 ){
194944 0 0 }else if( nInput<0 ){
194990 0 0 while( z
194991 0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
194992 0 0 if( unicodeIsAlnum(p, (int)iCode) ) break;
194995 0 0 if( zStart>=zTerm ) return SQLITE_DONE;
195002 0 0 if( (zOut-pCsr->zToken)>=(pCsr->nAlloc-4) ){
195004 0 0 if( !zNew ) return SQLITE_NOMEM;
195013 0 0 if( iOut ){
195014 0 0 WRITE_UTF8(zOut, iOut);
0 0 WRITE_UTF8(zOut, iOut);
0 0 WRITE_UTF8(zOut, iOut);
195018 0 0 if( z>=zTerm ) break;
195019 0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
0 0 READ_UTF8(z, zTerm, iCode);
195021 0 0 || sqlite3FtsUnicodeIsdiacritic((int)iCode)
195022 0 0 );
195185 0 0 if( (unsigned int)c<128 ){
195187 0 0 }else if( (unsigned int)c<(1<<22) ){
195192 0 0 while( iHi>=iLo ){
195194 0 0 if( key >= aEntry[iTest] ){
195265 0 0 while( iHi>=iLo ){
195267 0 0 if( key >= aDia[iTest] ){
195275 0 0 if( bComplex==0 && (aChar[iRes] & 0x80) ) return c;
0 0 if( bComplex==0 && (aChar[iRes] & 0x80) ) return c;
195276 0 0 return (c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c : ((int)aChar[iRes] & 0x7F);
195287 0 0 if( c<768 || c>817 ) return 0;
0 0 if( c<768 || c>817 ) return 0;
195288 0 0 return (c < 768+32) ?
195399 0 0 if( c<128 ){
195400 0 0 if( c>='A' && c<='Z' ) ret = c + ('a' - 'A');
0 0 if( c>='A' && c<='Z' ) ret = c + ('a' - 'A');
195401 0 0 }else if( c<65536 ){
195408 0 0 while( iHi>=iLo ){
195411 0 0 if( cmp>=0 ){
195421 0 0 if( c<(p->iCode + p->nRange) && 0==(0x01 & p->flags & (p->iCode ^ c)) ){
0 0 if( c<(p->iCode + p->nRange) && 0==(0x01 & p->flags & (p->iCode ^ c)) ){
195426 0 0 if( eRemoveDiacritic ){
195431 0 0 else if( c>=66560 && c<66600 ){
0 0 else if( c>=66560 && c<66600 ){
195616 0 0 if( !p->bStatic ) sqlite3_free(p->zBuf);
195633 0 0 u64 nTotal = NnAlloc ? p->nAlloc*2 : p->nAlloc+N+10;
195635 0 0 if( p->bStatic ){
195636 0 0 if( p->bErr ) return 1;
195638 0 0 if( zNew==0 ){
195647 0 0 if( zNew==0 ){
195660 0 0 if( N==0 ) return;
195661 0 0 if( (N+p->nUsed >= p->nAlloc) && jsonGrow(p,N)!=0 ) return;
0 0 if( (N+p->nUsed >= p->nAlloc) && jsonGrow(p,N)!=0 ) return;
195670 0 0 if( (p->nUsed + N >= p->nAlloc) && jsonGrow(p, N) ) return;
0 0 if( (p->nUsed + N >= p->nAlloc) && jsonGrow(p, N) ) return;
195680 0 0 if( p->nUsed>=p->nAlloc && jsonGrow(p,1)!=0 ) return;
0 0 if( p->nUsed>=p->nAlloc && jsonGrow(p,1)!=0 ) return;
195689 0 0 if( p->nUsed==0 ) return;
195691 0 0 if( c!='[' && c!='{' ) jsonAppendChar(p, ',');
0 0 if( c!='[' && c!='{' ) jsonAppendChar(p, ',');
195701 0 0 if( zIn==0 || ((N+p->nUsed+2 >= p->nAlloc) && jsonGrow(p,N+2)!=0) ) return;
0 0 if( zIn==0 || ((N+p->nUsed+2 >= p->nAlloc) && jsonGrow(p,N+2)!=0) ) return;
0 0 if( zIn==0 || ((N+p->nUsed+2 >= p->nAlloc) && jsonGrow(p,N+2)!=0) ) return;
195703 0 0 for(i=0; i
195705 0 0 if( c=='"' || c=='\\' ){
0 0 if( c=='"' || c=='\\' ){
195707 0 0 if( (p->nUsed+N+3-i > p->nAlloc) && jsonGrow(p,N+3-i)!=0 ) return;
0 0 if( (p->nUsed+N+3-i > p->nAlloc) && jsonGrow(p,N+3-i)!=0 ) return;
195709 0 0 }else if( c<=0x1f ){
195720 0 0 if( aSpecial[c] ){
195724 0 0 if( (p->nUsed+N+7+i > p->nAlloc) && jsonGrow(p,N+7-i)!=0 ) return;
0 0 if( (p->nUsed+N+7+i > p->nAlloc) && jsonGrow(p,N+7-i)!=0 ) return;
195761 0 0 if( sqlite3_value_subtype(pValue)==JSON_SUBTYPE ){
195769 0 0 if( p->bErr==0 ){
195783 0 0 if( p->bErr==0 ){
195784 0 0 sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed,
195806 0 0 return pNode->eType>=JSON_ARRAY ? pNode->n+1 : 1;
195841 0 0 if( pNode->jnFlags & (JNODE_REPLACE|JNODE_PATCH) ){
195842 0 0 if( (pNode->jnFlags & JNODE_REPLACE)!=0 && ALWAYS(aReplace!=0) ){
0 0 if( (pNode->jnFlags & JNODE_REPLACE)!=0 && ALWAYS(aReplace!=0) ){
195865 0 0 if( pNode->jnFlags & JNODE_RAW ){
195882 0 0 while( j<=pNode->n ){
195883 0 0 if( (pNode[j].jnFlags & JNODE_REMOVE)==0 ){
195889 0 0 if( (pNode->jnFlags & JNODE_APPEND)==0 ) break;
195901 0 0 while( j<=pNode->n ){
195902 0 0 if( (pNode[j+1].jnFlags & JNODE_REMOVE)==0 ){
195910 0 0 if( (pNode->jnFlags & JNODE_APPEND)==0 ) break;
195994 0 0 if( z[0]=='-' ){ z++; }
195995 0 0 while( z[0]>='0' && z[0]<='9' ){
0 0 while( z[0]>='0' && z[0]<='9' ){
195997 0 0 if( i>=LARGEST_INT64/10 ){
195998 0 0 if( i>LARGEST_INT64/10 ) goto int_as_real;
195999 0 0 if( z[0]>='0' && z[0]<='9' ) goto int_as_real;
0 0 if( z[0]>='0' && z[0]<='9' ) goto int_as_real;
196000 0 0 if( v==9 ) goto int_as_real;
196001 0 0 if( v==8 ){
196002 0 0 if( pNode->u.zJContent[0]=='-' ){
196012 0 0 if( pNode->u.zJContent[0]=='-' ){ i = -i; }
196043 0 0 if( (pNode->jnFlags & JNODE_ESCAPE)==0 ){
196058 0 0 if( zOut==0 ){
196062 0 0 for(i=1, j=0; i
196064 0 0 if( c!='\\' ){
196068 0 0 if( c=='u' ){
196071 0 0 if( v==0 ) break;
196072 0 0 if( v<=0x7f ){
196074 0 0 }else if( v<=0x7ff ){
196079 0 0 if( (v&0xfc00)==0xd800
196080 0 0 && i
196081 0 0 && z[i+1]=='\\'
196082 0 0 && z[i+2]=='u'
196083 0 0 && ((vlo = jsonHexToInt4(z+i+3))&0xfc00)==0xdc00
196099 0 0 if( c=='b' ){
196101 0 0 }else if( c=='f' ){
196103 0 0 }else if( c=='n' ){
196105 0 0 }else if( c=='r' ){
196107 0 0 }else if( c=='t' ){
196152 0 0 if( pParse->oom ) return -1;
196155 0 0 if( pNew==0 ){
196177 0 0 if( pParse->aNode==0 || pParse->nNode>=pParse->nAlloc ){
0 0 if( pParse->aNode==0 || pParse->nNode>=pParse->nAlloc ){
196194 0 0 for(i=0; i<4; i++) if( !sqlite3Isxdigit(z[i]) ) return 0;
0 0 for(i=0; i<4; i++) if( !sqlite3Isxdigit(z[i]) ) return 0;
196213 0 0 while( fast_isspace(z[i]) ){ i++; }
196214 0 0 if( (c = z[i])=='{' ){
196217 0 0 if( iThis<0 ) return -1;
196219 0 0 while( fast_isspace(z[j]) ){ j++; }
196220 0 0 if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1;
196222 0 0 if( x<0 ){
196224 0 0 if( x==(-2) && pParse->nNode==(u32)iThis+1 ) return j+1;
0 0 if( x==(-2) && pParse->nNode==(u32)iThis+1 ) return j+1;
196227 0 0 if( pParse->oom ) return -1;
196229 0 0 if( pNode->eType!=JSON_STRING ) return -1;
196232 0 0 while( fast_isspace(z[j]) ){ j++; }
196233 0 0 if( z[j]!=':' ) return -1;
196237 0 0 if( x<0 ) return -1;
196239 0 0 while( fast_isspace(z[j]) ){ j++; }
196241 0 0 if( c==',' ) continue;
196242 0 0 if( c!='}' ) return -1;
196247 0 0 }else if( c=='[' ){
196250 0 0 if( iThis<0 ) return -1;
196253 0 0 while( fast_isspace(z[j]) ){ j++; }
196254 0 0 if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1;
196257 0 0 if( x<0 ){
196258 0 0 if( x==(-3) && pParse->nNode==(u32)iThis+1 ) return j+1;
0 0 if( x==(-3) && pParse->nNode==(u32)iThis+1 ) return j+1;
196262 0 0 while( fast_isspace(z[j]) ){ j++; }
196264 0 0 if( c==',' ) continue;
196265 0 0 if( c!=']' ) return -1;
196270 0 0 }else if( c=='"' ){
196276 0 0 if( (c & ~0x1f)==0 ){
196280 0 0 if( c=='\\' ){
196282 0 0 if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f'
0 0 if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f'
0 0 if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f'
0 0 if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f'
0 0 if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f'
196283 0 0 || c=='n' || c=='r' || c=='t'
0 0 || c=='n' || c=='r' || c=='t'
0 0 || c=='n' || c=='r' || c=='t'
196284 0 0 || (c=='u' && jsonIs4Hex(z+j+1)) ){
0 0 || (c=='u' && jsonIs4Hex(z+j+1)) ){
196289 0 0 }else if( c=='"' ){
196295 0 0 if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags;
196297 0 0 }else if( c=='n'
196298 0 0 && strncmp(z+i,"null",4)==0
196299 0 0 && !sqlite3Isalnum(z[i+4]) ){
196302 0 0 }else if( c=='t'
196303 0 0 && strncmp(z+i,"true",4)==0
196304 0 0 && !sqlite3Isalnum(z[i+4]) ){
196307 0 0 }else if( c=='f'
196308 0 0 && strncmp(z+i,"false",5)==0
196309 0 0 && !sqlite3Isalnum(z[i+5]) ){
196312 0 0 }else if( c=='-' || (c>='0' && c<='9') ){
0 0 }else if( c=='-' || (c>='0' && c<='9') ){
0 0 }else if( c=='-' || (c>='0' && c<='9') ){
196317 0 0 if( c<='0' ){
196318 0 0 j = c=='-' ? i+1 : i;
196319 0 0 if( z[j]=='0' && z[j+1]>='0' && z[j+1]<='9' ) return -1;
0 0 if( z[j]=='0' && z[j+1]>='0' && z[j+1]<='9' ) return -1;
0 0 if( z[j]=='0' && z[j+1]>='0' && z[j+1]<='9' ) return -1;
196324 0 0 if( c>='0' && c<='9' ) continue;
0 0 if( c>='0' && c<='9' ) continue;
196325 0 0 if( c=='.' ){
196326 0 0 if( z[j-1]=='-' ) return -1;
196327 0 0 if( seenDP ) return -1;
196331 0 0 if( c=='e' || c=='E' ){
0 0 if( c=='e' || c=='E' ){
196332 0 0 if( z[j-1]<'0' ) return -1;
196333 0 0 if( seenE ) return -1;
196336 0 0 if( c=='+' || c=='-' ){
0 0 if( c=='+' || c=='-' ){
196340 0 0 if( c<'0' || c>'9' ) return -1;
0 0 if( c<'0' || c>'9' ) return -1;
196345 0 0 if( z[j-1]<'0' ) return -1;
196346 0 0 jsonParseAddNode(pParse, seenDP ? JSON_REAL : JSON_INT,
196349 0 0 }else if( c=='}' ){
196351 0 0 }else if( c==']' ){
196353 0 0 }else if( c==0 ){
196374 0 0 if( zJson==0 ) return 1;
196377 0 0 if( pParse->oom ) i = -1;
196378 0 0 if( i>0 ){
196380 0 0 while( fast_isspace(zJson[i]) ) i++;
196381 0 0 if( zJson[i] ) i = -1;
196383 0 0 if( i<=0 ){
196384 0 0 if( pCtx!=0 ){
196385 0 0 if( pParse->oom ){
196406 0 0 for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j)){
196412 0 0 for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j+1)+1){
196431 0 0 if( aUp==0 ){
196466 0 0 if( zJson==0 ) return 0;
196467 0 0 for(iKey=0; iKey
196469 0 0 if( p==0 ){
196473 0 0 if( pMatch==0
196474 0 0 && p->nJson==nJson
196475 0 0 && memcmp(p->zJson,zJson,nJson)==0
196479 0 0 }else if( p->iHold
196483 0 0 if( p->iHold>iMaxHold ){
196487 0 0 if( pMatch ){
196493 0 0 if( p==0 ){
196500 0 0 if( jsonParse(p, pErrCtx, p->zJson) ){
196517 0 0 if( pNode->jnFlags & JNODE_RAW ){
196518 0 0 if( pNode->n!=nKey ) return 0;
196521 0 0 if( pNode->n!=nKey+2 ) return 0;
196548 0 0 if( zPath[0]==0 ) return pRoot;
196549 0 0 if( pRoot->jnFlags & JNODE_REPLACE ) return 0;
196550 0 0 if( zPath[0]=='.' ){
196551 0 0 if( pRoot->eType!=JSON_OBJECT ) return 0;
196553 0 0 if( zPath[0]=='"' ){
196555 0 0 for(i=1; zPath[i] && zPath[i]!='"'; i++){}
0 0 for(i=1; zPath[i] && zPath[i]!='"'; i++){}
196557 0 0 if( zPath[i] ){
196566 0 0 for(i=0; zPath[i] && zPath[i]!='.' && zPath[i]!='['; i++){}
0 0 for(i=0; zPath[i] && zPath[i]!='.' && zPath[i]!='['; i++){}
0 0 for(i=0; zPath[i] && zPath[i]!='.' && zPath[i]!='['; i++){}
196568 0 0 if( nKey==0 ){
196575 0 0 while( j<=pRoot->n ){
196576 0 0 if( jsonLabelCompare(pRoot+j, zKey, nKey) ){
196582 0 0 if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break;
196588 0 0 if( pApnd ){
196595 0 0 if( pParse->oom ) return 0;
196596 0 0 if( pNode ){
196606 0 0 }else if( zPath[0]=='[' ){
196609 0 0 while( sqlite3Isdigit(zPath[j]) ){
196613 0 0 if( j<2 || zPath[j]!=']' ){
0 0 if( j<2 || zPath[j]!=']' ){
196614 0 0 if( zPath[1]=='#' ){
196617 0 0 if( pRoot->eType!=JSON_ARRAY ) return 0;
196619 0 0 while( j<=pBase->n ){
196620 0 0 if( (pBase[j].jnFlags & JNODE_REMOVE)==0 ) i++;
196623 0 0 if( (pBase->jnFlags & JNODE_APPEND)==0 ) break;
196630 0 0 if( zPath[2]=='-' && sqlite3Isdigit(zPath[3]) ){
0 0 if( zPath[2]=='-' && sqlite3Isdigit(zPath[3]) ){
196636 0 0 }while( sqlite3Isdigit(zPath[j]) );
196637 0 0 if( x>i ) return 0;
196640 0 0 if( zPath[j]!=']' ){
196649 0 0 if( pRoot->eType!=JSON_ARRAY ) return 0;
196653 0 0 while( j<=pRoot->n && (i>0 || (pRoot[j].jnFlags & JNODE_REMOVE)!=0) ){
0 0 while( j<=pRoot->n && (i>0 || (pRoot[j].jnFlags & JNODE_REMOVE)!=0) ){
0 0 while( j<=pRoot->n && (i>0 || (pRoot[j].jnFlags & JNODE_REMOVE)!=0) ){
196654 0 0 if( (pRoot[j].jnFlags & JNODE_REMOVE)==0 ) i--;
196657 0 0 if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break;
196663 0 0 if( j<=pRoot->n ){
196666 0 0 if( i==0 && pApnd ){
0 0 if( i==0 && pApnd ){
196671 0 0 if( pParse->oom ) return 0;
196672 0 0 if( pNode ){
196698 0 0 if( zPath[0]==0 ){
196700 0 0 return pParse->oom ? 0 : &pParse->aNode[pParse->nNode-1];
196702 0 0 if( zPath[0]=='.' ){
196704 0 0 }else if( strncmp(zPath,"[0]",3)==0 ){
196709 0 0 if( pParse->oom ) return 0;
196741 0 0 if( zPath==0 ) return 0;
196742 0 0 if( zPath[0]!='$' ){
196748 0 0 if( zErr==0 ) return pNode;
196754 0 0 if( zMsg ){
196785 0 0 for(i=2; i<=n; i += jsonNodeSize(&pNode[i])+1){
196899 0 0 for(i=0; i
196927 0 0 if( p==0 ) return;
196929 0 0 if( argc==2 ){
196935 0 0 if( pNode==0 ){
196938 0 0 if( pNode->eType==JSON_ARRAY ){
196940 0 0 for(i=1; i<=pNode->n; n++){
196987 0 0 if( argc<2 ) return;
196989 0 0 if( p==0 ) return;
196990 0 0 if( argc==2 ){
196993 0 0 if( zPath==0 ) return;
196994 0 0 if( flags & JSON_ABPATH ){
196995 0 0 if( zPath[0]!='$' ){
197005 0 0 if( sqlite3Isdigit(zPath[0]) ){
197010 0 0 jsonAppendRaw(&jx, "$.", 1 + (zPath[0]!='['));
197014 0 0 pNode = jx.bErr ? 0 : jsonLookup(p, jx.zBuf, 0, ctx);
197019 0 0 if( pNode ){
197020 0 0 if( flags & JSON_JSON ){
197029 0 0 if( p->nErr==0 && pNode ) jsonReturn(pNode, ctx, 0);
0 0 if( p->nErr==0 && pNode ) jsonReturn(pNode, ctx, 0);
197037 0 0 for(i=1; i
197040 0 0 if( p->nErr ) break;
197042 0 0 if( pNode ){
197048 0 0 if( i==argc ){
197067 0 0 if( pPatch->eType!=JSON_OBJECT ){
197073 0 0 if( pTarget->eType!=JSON_OBJECT ){
197078 0 0 for(i=1; in; i += jsonNodeSize(&pPatch[i+1])+1){
197087 0 0 for(j=1; jn; j += jsonNodeSize(&pTarget[j+1])+1 ){
197091 0 0 if( pTarget[j].n==nKey && strncmp(pTarget[j].u.zJContent,zKey,nKey)==0 ){
0 0 if( pTarget[j].n==nKey && strncmp(pTarget[j].u.zJContent,zKey,nKey)==0 ){
197092 0 0 if( pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_PATCH) ) break;
197093 0 0 if( pPatch[i+1].eType==JSON_NULL ){
197097 0 0 if( pNew==0 ) return 0;
197099 0 0 if( pNew!=&pTarget[j+1] ){
197113 0 0 if( j>=pTarget->n && pPatch[i+1].eType!=JSON_NULL ){
0 0 if( j>=pTarget->n && pPatch[i+1].eType!=JSON_NULL ){
197118 0 0 if( pParse->oom ) return 0;
197151 0 0 if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return;
197152 0 0 if( jsonParse(&y, ctx, (const char*)sqlite3_value_text(argv[1])) ){
197158 0 0 if( pResult ){
197183 0 0 if( argc&1 ){
197190 0 0 for(i=0; i
197191 0 0 if( sqlite3_value_type(argv[i])!=SQLITE_TEXT ){
197225 0 0 if( argc<1 ) return;
197226 0 0 if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return;
197228 0 0 for(i=1; i<(u32)argc; i++){
197230 0 0 if( zPath==0 ) goto remove_done;
197232 0 0 if( x.nErr ) goto remove_done;
197233 0 0 if( pNode ) pNode->jnFlags |= JNODE_REMOVE;
197235 0 0 if( (x.aNode[0].jnFlags & JNODE_REMOVE)==0 ){
197258 0 0 if( argc<1 ) return;
197259 0 0 if( (argc&1)==0 ) {
197263 0 0 if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return;
197265 0 0 for(i=1; i<(u32)argc; i+=2){
197268 0 0 if( x.nErr ) goto replace_err;
197269 0 0 if( pNode ){
197277 0 0 if( x.aNode[0].jnFlags & JNODE_REPLACE ){
197312 0 0 if( argc<1 ) return;
197313 0 0 if( (argc&1)==0 ) {
197314 0 0 jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert");
197317 0 0 if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return;
197319 0 0 for(i=1; i<(u32)argc; i+=2){
197323 0 0 if( x.oom ){
197326 0 0 }else if( x.nErr ){
197328 0 0 }else if( pNode && (bApnd || bIsSet) ){
0 0 }else if( pNode && (bApnd || bIsSet) ){
0 0 }else if( pNode && (bApnd || bIsSet) ){
197336 0 0 if( x.aNode[0].jnFlags & JNODE_REPLACE ){
197363 0 0 if( p==0 ) return;
197364 0 0 if( argc==2 ){
197370 0 0 if( pNode ){
197409 0 0 if( pStr ){
197410 0 0 if( pStr->zBuf==0 ){
197413 0 0 }else if( pStr->nUsed>1 ){
197423 0 0 if( pStr ){
197426 0 0 if( pStr->bErr ){
197427 0 0 if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx);
197429 0 0 }else if( isFinal ){
197430 0 0 sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed,
197473 0 0 if( NEVER(!pStr) ) return;
197476 0 0 for(i=1; inUsed && ((c = z[i])!=',' || inStr || nNest); i++){
0 0 for(i=1; inUsed && ((c = z[i])!=',' || inStr || nNest); i++){
0 0 for(i=1; inUsed && ((c = z[i])!=',' || inStr || nNest); i++){
0 0 for(i=1; inUsed && ((c = z[i])!=',' || inStr || nNest); i++){
197477 0 0 if( c=='"' ){
197479 0 0 }else if( c=='\\' ){
197481 0 0 }else if( !inStr ){
197482 0 0 if( c=='{' || c=='[' ) nNest++;
0 0 if( c=='{' || c=='[' ) nNest++;
197483 0 0 if( c=='}' || c==']' ) nNest--;
0 0 if( c=='}' || c==']' ) nNest--;
197486 0 0 if( inUsed ){
197514 0 0 if( pStr ){
197515 0 0 if( pStr->zBuf==0 ){
197518 0 0 }else if( pStr->nUsed>1 ){
197532 0 0 if( pStr ){
197534 0 0 if( pStr->bErr ){
197535 0 0 if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx);
197537 0 0 }else if( isFinal ){
197538 0 0 sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed,
197610 0 0 if( rc==SQLITE_OK ){
197612 0 0 if( pNew==0 ) return SQLITE_NOMEM;
197631 0 0 if( pCur==0 ) return SQLITE_NOMEM;
197640 0 0 if( rc==SQLITE_OK ){
197679 0 0 if( p->bRecursive ){
197680 0 0 if( p->sParse.aNode[p->i].jnFlags & JNODE_LABEL ) p->i++;
197683 0 0 if( p->iiEnd ){
197687 0 0 if( pUp->eType==JSON_ARRAY ){
197691 0 0 if( iUp==p->i-1 ){
197736 0 0 if( nn>2 && sqlite3Isalpha(z[1]) ){
0 0 if( nn>2 && sqlite3Isalpha(z[1]) ){
197737 0 0 for(jj=2; jj
0 0 for(jj=2; jj
197738 0 0 if( jj==nn-1 ){
197755 0 0 if( i==0 ){
197763 0 0 if( pUp->eType==JSON_ARRAY ){
197769 0 0 if( (pNode->jnFlags & JNODE_LABEL)==0 ) pNode--;
197784 0 0 if( p->i==0 ) break;
197785 0 0 if( p->eType==JSON_OBJECT ){
197787 0 0 }else if( p->eType==JSON_ARRAY ){
197789 0 0 if( p->bRecursive ){
197790 0 0 if( p->iRowid==0 ) break;
197801 0 0 if( pThis->jnFlags & JNODE_LABEL ) pThis++;
197806 0 0 if( pThis->jnFlags & JNODE_LABEL ) pThis++;
197811 0 0 if( pThis->jnFlags & JNODE_LABEL ) pThis++;
197812 0 0 if( pThis->eType>=JSON_ARRAY ) break;
197822 0 0 if( p->i>p->iBegin && p->bRecursive ){
0 0 if( p->i>p->iBegin && p->bRecursive ){
197830 0 0 if( p->bRecursive ){
197833 0 0 if( p->zRoot ){
197838 0 0 if( p->eType==JSON_ARRAY ){
197840 0 0 }else if( p->eType==JSON_OBJECT ){
197848 0 0 if( p->bRecursive ){
197861 0 0 if( zRoot==0 ) zRoot = "$";
197902 0 0 for(i=0; inConstraint; i++, pConstraint++){
197905 0 0 if( pConstraint->iColumn < JEACH_JSON ) continue;
197910 0 0 if( pConstraint->usable==0 ){
197912 0 0 }else if( pConstraint->op==SQLITE_INDEX_CONSTRAINT_EQ ){
197917 0 0 if( (unusableMask & ~idxMask)!=0 ){
197922 0 0 if( aIdx[0]<0 ){
197932 0 0 if( aIdx[1]<0 ){
197958 0 0 if( idxNum==0 ) return SQLITE_OK;
197960 0 0 if( z==0 ) return SQLITE_OK;
197963 0 0 if( p->zJson==0 ) return SQLITE_NOMEM;
197965 0 0 if( jsonParse(&p->sParse, 0, p->zJson) ){
197967 0 0 if( p->sParse.oom==0 ){
197970 0 0 if( cur->pVtab->zErrMsg ) rc = SQLITE_ERROR;
197974 0 0 }else if( p->bRecursive && jsonParseFindParents(&p->sParse) ){
0 0 }else if( p->bRecursive && jsonParseFindParents(&p->sParse) ){
197979 0 0 if( idxNum==3 ){
197982 0 0 if( zRoot==0 ) return SQLITE_OK;
197985 0 0 if( p->zRoot==0 ) return SQLITE_NOMEM;
197987 0 0 if( zRoot[0]!='$' ){
197992 0 0 if( zErr ){
197996 0 0 return cur->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM;
197997 0 0 }else if( pNode==0 ){
198005 0 0 if( p->eType>=JSON_ARRAY ){
198010 0 0 if( p->bRecursive ){
198012 0 0 if( p->i>0 && (p->sParse.aNode[p->i-1].jnFlags & JNODE_LABEL)!=0 ){
0 0 if( p->i>0 && (p->sParse.aNode[p->i-1].jnFlags & JNODE_LABEL)!=0 ){
198135 622 311 for(i=0; i
622 0 for(i=0; i
198748 0 15 if( p ){
198776 18 15 for(p=pRtree->aHash[nodeHash(iNode)]; p && p->iNode!=iNode; p=p->pNext);
0 18 for(p=pRtree->aHash[nodeHash(iNode)]; p && p->iNode!=iNode; p=p->pNext);
198796 15 0 if( pNode->iNode!=0 ){
198798 0 15 for( ; (*pp)!=pNode; pp = &(*pp)->pNext){ assert(*pp); }
198813 0 0 if( pNode ){
198829 15 10 if( pRtree->pNodeBlob && pRtree->inWrTrans==0 && pRtree->nCursor==0 ){
15 0 if( pRtree->pNodeBlob && pRtree->inWrTrans==0 && pRtree->nCursor==0 ){
15 0 if( pRtree->pNodeBlob && pRtree->inWrTrans==0 && pRtree->nCursor==0 ){
198851 18 15 if( (pNode = nodeHashLookup(pRtree, iNode))!=0 ){
198852 0 18 if( pParent && pParent!=pNode->pParent ){
0 0 if( pParent && pParent!=pNode->pParent ){
198861 0 15 if( pRtree->pNodeBlob ){
198866 0 0 if( rc ){
198868 0 0 if( rc==SQLITE_NOMEM ) return SQLITE_NOMEM;
198871 15 0 if( pRtree->pNodeBlob==0 ){
198873 0 15 if( zTab==0 ) return SQLITE_NOMEM;
198878 0 15 if( rc ){
198883 0 0 if( rc==SQLITE_ERROR ){
198887 15 0 }else if( pRtree->iNodeSize==sqlite3_blob_bytes(pRtree->pNodeBlob) ){
198889 0 15 if( !pNode ){
198910 15 0 if( rc==SQLITE_OK && pNode && iNode==1 ){
15 0 if( rc==SQLITE_OK && pNode && iNode==1 ){
15 0 if( rc==SQLITE_OK && pNode && iNode==1 ){
198912 0 15 if( pRtree->iDepth>RTREE_MAX_DEPTH ){
198922 15 0 if( pNode && rc==SQLITE_OK ){
15 0 if( pNode && rc==SQLITE_OK ){
198923 0 15 if( NCELL(pNode)>((pRtree->iNodeSize-4)/pRtree->nBytesPerCell) ){
198929 15 0 if( rc==SQLITE_OK ){
198930 15 0 if( pNode!=0 ){
198939 0 0 if( pNode ){
198961 28 7 for(ii=0; iinDim2; ii++){
198997 7 0 if( nCell
199011 7 8 if( pNode->isDirty ){
199013 7 0 if( pNode->iNode ){
199023 0 7 if( pNode->iNode==0 && rc==SQLITE_OK ){
0 0 if( pNode->iNode==0 && rc==SQLITE_OK ){
199037 33 88 if( pNode ){
199041 15 18 if( pNode->nRef==0 ){
199043 15 0 if( pNode->iNode==1 ){
199046 0 15 if( pNode->pParent ){
199049 15 0 if( rc==SQLITE_OK ){
199107 0 0 }while( iinDim2 );
199157 1 15 if( pRtree->nBusy==0 ){
199198 0 0 if( !zCreate ){
199205 0 0 if( rc==SQLITE_OK ){
199221 8 0 if( pCsr ){
199240 6 10 if( pCsr->aConstraint ){
199242 24 6 for(i=0; inConstraint; i++){
199244 0 24 if( pInfo ){
199245 0 0 if( pInfo->xDelUser ) pInfo->xDelUser(pInfo->pUser);
199252 80 16 for(ii=0; iiaNode[ii]);
199354 0 0 if( pConstraint->op==RTREE_QUERY && pSearch->iLevel==1 ){
0 0 if( pConstraint->op==RTREE_QUERY && pSearch->iLevel==1 ){
199359 0 0 if( eInt==0 ){
199388 0 0 if( pConstraint->op==RTREE_MATCH ){
199392 0 0 if( eWithin==0 ) *peWithin = NOT_WITHIN;
199400 0 0 if( pInfo->eWithin<*peWithin ) *peWithin = pInfo->eWithin;
199401 0 0 if( pInfo->rScore<*prScore || *prScore
0 0 if( pInfo->rScore<*prScore || *prScore
199434 0 0 RTREE_DECODE_COORD(eInt, pCellData, val);
199436 0 0 if( p->u.rValue>=val ){
199438 0 0 RTREE_DECODE_COORD(eInt, pCellData, val);
199440 0 0 if( p->u.rValue<=val ) return;
199445 0 0 RTREE_DECODE_COORD(eInt, pCellData, val);
199447 0 0 if( p->u.rValue>=val ) return;
199452 0 0 RTREE_DECODE_COORD(eInt, pCellData, val);
199454 0 0 if( p->u.rValue<=val ) return;
199483 119 0 RTREE_DECODE_COORD(eInt, pCellData, xN);
199487 40 15 case RTREE_LE: if( xN <= p->u.rValue ) return; break;
199488 0 0 case RTREE_LT: if( xN < p->u.rValue ) return; break;
199489 55 9 case RTREE_GE: if( xN >= p->u.rValue ) return; break;
199490 0 0 case RTREE_GT: if( xN > p->u.rValue ) return; break;
199491 0 0 default: if( xN == p->u.rValue ) return; break;
199509 3 0 for(ii=0; ii
199510 2 1 if( nodeGetRowid(pRtree, pNode, ii)==iRowid ){
199525 0 0 if( ALWAYS(pParent) ){
199547 0 0 if( pA->rScorerScore ) return -1;
199548 0 0 if( pA->rScore>pB->rScore ) return +1;
199549 0 0 if( pA->iLeveliLevel ) return -1;
199550 0 0 if( pA->iLevel>pB->iLevel ) return +1;
199563 0 0 if( i
199564 0 0 if( j>=RTREE_CACHE_SZ ){
199579 57 47 return pCur->bPoint ? &pCur->sPoint : pCur->nPoint ? pCur->aPoint : 0;
31 16 return pCur->bPoint ? &pCur->sPoint : pCur->nPoint ? pCur->aPoint : 0;
199590 18 34 if( pCur->aNode[ii]==0 ){
199592 0 18 id = ii ? pCur->aPoint[0].id : pCur->sPoint.id;
199608 5 0 if( pCur->nPoint>=pCur->nPointAlloc ){
199611 0 5 if( pNew==0 ) return 0;
199620 0 5 while( i>0 ){
199624 0 0 if( rtreeSearchPointCompare(pNew, pParent)>=0 ) break;
199644 18 8 if( pFirst==0
199645 18 0 || pFirst->rScore>rScore
199646 18 0 || (pFirst->rScore==rScore && pFirst->iLevel>iLevel)
18 0 || (pFirst->rScore==rScore && pFirst->iLevel>iLevel)
199648 5 21 if( pCur->bPoint ){
199651 0 5 if( pNew==0 ) return 0;
199654 5 0 if( ALWAYS(ii
199708 26 0 if( p->aNode[i] ){
199712 21 5 if( p->bPoint ){
199715 5 0 }else if( ALWAYS(p->nPoint) ){
199719 5 0 if( n
199724 0 5 while( (j = i*2+1)
199726 0 0 if( kaPoint[k], &p->aPoint[j])<0 ){
0 0 if( kaPoint[k], &p->aPoint[j])<0 ){
199727 0 0 if( rtreeSearchPointCompare(&p->aPoint[k], &p->aPoint[i])<0 ){
199734 0 0 if( rtreeSearchPointCompare(&p->aPoint[j], &p->aPoint[i])<0 ){
199765 42 8 while( (p = rtreeSearchPointFirst(pCur))!=0 && p->iLevel>0 ){
24 18 while( (p = rtreeSearchPointFirst(pCur))!=0 && p->iLevel>0 ){
199768 0 24 if( rc ) return rc;
199772 42 6 while( p->iCell
199775 119 18 for(ii=0; ii
199777 0 119 if( pConstraint->op>=RTREE_MATCH ){
199780 0 0 if( rc ) return rc;
199781 119 0 }else if( p->iLevel==1 ){
199786 24 95 if( eWithin==NOT_WITHIN ){
199792 24 18 if( eWithin==NOT_WITHIN ) continue;
199795 0 18 if( x.iLevel ){
199797 0 0 for(ii=0; iinPoint; ii++){
199798 0 0 if( pCur->aPoint[ii].id==x.id ){
199808 0 18 if( p->iCell>=nCell ){
199812 18 0 if( rScore
199814 0 18 if( p==0 ) return SQLITE_NOMEM;
199821 6 18 if( p->iCell>=nCell ){
199839 0 20 if( pCsr->bAuxValid ){
199856 0 0 if( rc==SQLITE_OK && ALWAYS(p) ){
0 0 if( rc==SQLITE_OK && ALWAYS(p) ){
199873 0 28 if( rc ) return rc;
199874 0 28 if( NEVER(p==0) ) return SQLITE_OK;
199875 20 8 if( i==0 ){
199877 8 0 }else if( i<=pRtree->nDim2 ){
199880 0 8 if( pRtree->eCoordType==RTREE_COORD_REAL32 ){
199889 0 0 if( !pCsr->bAuxValid ){
199890 0 0 if( pCsr->pReadAux==0 ){
199893 0 0 if( rc ) return rc;
199898 0 0 if( rc==SQLITE_ROW ){
199902 0 0 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
199928 2 0 if( sqlite3_step(pRtree->pReadRowid)==SQLITE_ROW ){
199930 2 0 if( piNode ) *piNode = iNode;
199950 0 0 if( pSrc==0 ) return SQLITE_ERROR;
199953 0 0 if( !pInfo ) return SQLITE_NOMEM;
199962 0 0 if( pBlob->cb.xGeom ){
199993 2 6 if( idxNum==1 ){
200000 0 2 if( eType==SQLITE_INTEGER
200001 0 0 || (eType==SQLITE_FLOAT && sqlite3_value_double(argv[0])==iRowid)
0 0 || (eType==SQLITE_FLOAT && sqlite3_value_double(argv[0])==iRowid)
200008 2 0 if( rc==SQLITE_OK && pLeaf!=0 ){
2 0 if( rc==SQLITE_OK && pLeaf!=0 ){
200025 6 0 if( rc==SQLITE_OK && argc>0 ){
6 0 if( rc==SQLITE_OK && argc>0 ){
200028 0 6 if( !pCsr->aConstraint ){
200035 24 6 for(ii=0; ii
200040 0 24 if( p->op>=RTREE_MATCH ){
200046 0 0 if( rc!=SQLITE_OK ){
200052 0 24 }else if( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT ){
0 0 }else if( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT ){
200060 0 0 if( eType==SQLITE_NULL ){
200062 0 0 }else if( p->op==RTREE_LT || p->op==RTREE_LE ){
0 0 }else if( p->op==RTREE_LT || p->op==RTREE_LE ){
200071 6 0 if( rc==SQLITE_OK ){
200075 0 6 if( NEVER(pNew==0) ){ /* Because pCsr->bPoint was FALSE */
200143 26 8 for(ii=0; iinConstraint; ii++){
200144 0 26 if( pIdxInfo->aConstraint[ii].op==SQLITE_INDEX_CONSTRAINT_MATCH ){
200150 26 6 for(ii=0; iinConstraint && iIdx<(int)(sizeof(zIdxStr)-1); ii++){
26 0 for(ii=0; iinConstraint && iIdx<(int)(sizeof(zIdxStr)-1); ii++){
200153 26 0 if( bMatch==0 && p->usable
26 0 if( bMatch==0 && p->usable
200154 2 24 && p->iColumn<=0 && p->op==SQLITE_INDEX_CONSTRAINT_EQ
2 0 && p->iColumn<=0 && p->op==SQLITE_INDEX_CONSTRAINT_EQ
200158 0 2 for(jj=0; jj
200178 24 0 if( p->usable
200179 24 0 && ((p->iColumn>0 && p->iColumn<=pRtree->nDim2)
0 24 && ((p->iColumn>0 && p->iColumn<=pRtree->nDim2)
200180 0 0 || p->op==SQLITE_INDEX_CONSTRAINT_MATCH)
200192 24 0 if( op ){
200203 6 0 if( iIdx>0 && 0==(pIdxInfo->idxStr = sqlite3_mprintf("%s", zIdxStr)) ){
0 6 if( iIdx>0 && 0==(pIdxInfo->idxStr = sqlite3_mprintf("%s", zIdxStr)) ){
200221 0 0 if( pRtree->eCoordType==RTREE_COORD_REAL32 ){
200251 0 0 margin += (DCOORD(p->aCoord[ii+1]) - DCOORD(p->aCoord[ii]));
0 0 margin += (DCOORD(p->aCoord[ii+1]) - DCOORD(p->aCoord[ii]));
200253 0 0 }while( ii>=0 );
200262 0 0 if( pRtree->eCoordType==RTREE_COORD_REAL32 ){
200264 0 0 p1->aCoord[ii].f = MIN(p1->aCoord[ii].f, p2->aCoord[ii].f);
200265 0 0 p1->aCoord[ii+1].f = MAX(p1->aCoord[ii+1].f, p2->aCoord[ii+1].f);
200267 0 0 }while( iinDim2 );
200273 0 0 }while( iinDim2 );
200284 0 0 for(ii=0; iinDim2; ii+=2){
200287 0 0 if( (!isInt && (a2[0].fa1[1].f))
0 0 if( (!isInt && (a2[0].fa1[1].f))
0 0 if( (!isInt && (a2[0].fa1[1].f))
200288 0 0 || ( isInt && (a2[0].ia1[1].i))
0 0 || ( isInt && (a2[0].ia1[1].i))
0 0 || ( isInt && (a2[0].ia1[1].i))
200316 0 0 for(ii=0; ii
200319 0 0 for(jj=0; jjnDim2; jj+=2){
200321 0 0 x1 = MAX(DCOORD(p->aCoord[jj]), DCOORD(aCell[ii].aCoord[jj]));
0 0 x1 = MAX(DCOORD(p->aCoord[jj]), DCOORD(aCell[ii].aCoord[jj]));
0 0 x1 = MAX(DCOORD(p->aCoord[jj]), DCOORD(aCell[ii].aCoord[jj]));
0 0 x1 = MAX(DCOORD(p->aCoord[jj]), DCOORD(aCell[ii].aCoord[jj]));
0 0 x1 = MAX(DCOORD(p->aCoord[jj]), DCOORD(aCell[ii].aCoord[jj]));
200322 0 0 x2 = MIN(DCOORD(p->aCoord[jj+1]), DCOORD(aCell[ii].aCoord[jj+1]));
0 0 x2 = MIN(DCOORD(p->aCoord[jj+1]), DCOORD(aCell[ii].aCoord[jj+1]));
0 0 x2 = MIN(DCOORD(p->aCoord[jj+1]), DCOORD(aCell[ii].aCoord[jj+1]));
0 0 x2 = MIN(DCOORD(p->aCoord[jj+1]), DCOORD(aCell[ii].aCoord[jj+1]));
0 0 x2 = MIN(DCOORD(p->aCoord[jj+1]), DCOORD(aCell[ii].aCoord[jj+1]));
200323 0 0 if( x2
200351 7 0 for(ii=0; rc==SQLITE_OK && ii<(pRtree->iDepth-iHeight); ii++){
0 7 for(ii=0; rc==SQLITE_OK && ii<(pRtree->iDepth-iHeight); ii++){
200368 0 0 for(iCell=0; iCell
200375 0 0 if( iCell==0||growth
0 0 if( iCell==0||growth
0 0 if( iCell==0||growth
0 0 if( iCell==0||growth
200378 0 0 if( bBest ){
200408 0 7 while( p->pParent ){
200414 0 0 if( NEVER(cnt>100) ){
200419 0 0 if( NEVER(rc!=SQLITE_OK) ){
200425 0 0 if( !cellContains(pRtree, &cell, pCell) ){
200481 0 0 if( nIdx>1 ){
200496 0 0 while( iLeft
0 0 while( iLeft
200497 0 0 if( iLeft==nLeft ){
200500 0 0 }else if( iRight==nRight ){
200506 0 0 if( fLeft
200549 0 0 if( nIdx>1 ){
200564 0 0 while( iLeft
0 0 while( iLeft
200565 0 0 RtreeDValue xleft1 = DCOORD(aCell[aLeft[iLeft]].aCoord[iDim*2]);
200566 0 0 RtreeDValue xleft2 = DCOORD(aCell[aLeft[iLeft]].aCoord[iDim*2+1]);
200567 0 0 RtreeDValue xright1 = DCOORD(aCell[aRight[iRight]].aCoord[iDim*2]);
200568 0 0 RtreeDValue xright2 = DCOORD(aCell[aRight[iRight]].aCoord[iDim*2+1]);
200569 0 0 if( (iLeft!=nLeft) && ((iRight==nRight)
0 0 if( (iLeft!=nLeft) && ((iRight==nRight)
200570 0 0 || (xleft1
200571 0 0 || (xleft1==xright1 && xleft2
0 0 || (xleft1==xright1 && xleft2
200620 0 0 if( !aaSorted ){
200626 0 0 for(ii=0; iinDim; ii++){
200629 0 0 for(jj=0; jj
200635 0 0 for(ii=0; iinDim; ii++){
200642 0 0 for(
200655 0 0 for(kk=1; kk<(nCell-1); kk++){
200656 0 0 if( kk
200666 0 0 if( (nLeft==RTREE_MINCELLS(pRtree))
200667 0 0 || (overlap
200668 0 0 || (overlap==fBestOverlap && area
0 0 || (overlap==fBestOverlap && area
200676 0 0 if( ii==0 || margin
0 0 if( ii==0 || margin
200685 0 0 for(ii=0; ii
200686 0 0 RtreeNode *pTarget = (ii
200687 0 0 RtreeCell *pBbox = (ii
200705 0 0 xSetMapping = ((iHeight==0)?rowidWrite:parentWrite);
200706 0 0 if( iHeight>0 ){
200709 0 0 for(p=pNode; p; p=p->pParent){
200710 0 0 if( p==pChild ) return SQLITE_CORRUPT_VTAB;
200712 0 0 if( pChild ){
200718 0 0 if( NEVER(pNode==0) ) return SQLITE_ERROR;
200746 0 0 if( !aCell ){
200752 0 0 for(i=0; i
200759 0 0 if( pNode->iNode==1 ){
200771 0 0 if( !pLeft || !pRight ){
0 0 if( !pLeft || !pRight ){
200781 0 0 if( rc!=SQLITE_OK ){
200790 0 0 if( SQLITE_OK!=(rc = nodeWrite(pRtree, pRight))
200791 0 0 || (0==pLeft->iNode && SQLITE_OK!=(rc = nodeWrite(pRtree, pLeft)))
0 0 || (0==pLeft->iNode && SQLITE_OK!=(rc = nodeWrite(pRtree, pLeft)))
200799 0 0 if( pNode->iNode==1 ){
200801 0 0 if( rc!=SQLITE_OK ){
200808 0 0 if( ALWAYS(rc==SQLITE_OK) ){
200813 0 0 if( NEVER(rc!=SQLITE_OK) ){
200817 0 0 if( (rc = rtreeInsertCell(pRtree, pRight->pParent, &rightbbox, iHeight+1)) ){
200821 0 0 for(i=0; i
200824 0 0 if( iRowid==pCell->iRowid ){
200827 0 0 if( rc!=SQLITE_OK ){
200831 0 0 if( pNode->iNode==1 ){
200832 0 0 for(i=0; i
200835 0 0 if( rc!=SQLITE_OK ){
200839 0 0 }else if( newCellIsRight==0 ){
200843 0 0 if( rc==SQLITE_OK ){
200847 0 0 if( rc==SQLITE_OK ){
200873 0 0 while( rc==SQLITE_OK && pChild->iNode!=1 && pChild->pParent==0 ){
0 0 while( rc==SQLITE_OK && pChild->iNode!=1 && pChild->pParent==0 ){
0 0 while( rc==SQLITE_OK && pChild->iNode!=1 && pChild->pParent==0 ){
200877 0 0 if( rc==SQLITE_ROW ){
200887 0 0 for(pTest=pLeaf; pTest && pTest->iNode!=iNode; pTest=pTest->pParent);
0 0 for(pTest=pLeaf; pTest && pTest->iNode!=iNode; pTest=pTest->pParent);
200888 0 0 if( pTest==0 ){
200893 0 0 if( rc==SQLITE_OK ) rc = rc2;
200894 0 0 if( rc==SQLITE_OK && !pChild->pParent ){
0 0 if( rc==SQLITE_OK && !pChild->pParent ){
200915 0 0 if( rc==SQLITE_OK ){
200922 0 0 if( rc==SQLITE_OK ){
200925 0 0 if( rc!=SQLITE_OK ){
200932 0 0 if( SQLITE_OK!=(rc = sqlite3_reset(pRtree->pDeleteNode)) ){
200939 0 0 if( SQLITE_OK!=(rc = sqlite3_reset(pRtree->pDeleteParent)) ){
200958 0 0 if( pParent ){
200963 0 0 for(ii=1; ii
200970 0 0 if( rc==SQLITE_OK ){
200986 0 0 if( SQLITE_OK!=(rc = fixLeafParent(pRtree, pNode)) ){
201002 0 0 if( pParent ){
201003 0 0 if( NCELL(pNode)
201044 0 0 if( !aCell ){
201051 0 0 for(ii=0; ii
201052 0 0 if( ii==(nCell-1) ){
201058 0 0 for(iDim=0; iDimnDim; iDim++){
201059 0 0 aCenterCoord[iDim] += DCOORD(aCell[ii].aCoord[iDim*2]);
201060 0 0 aCenterCoord[iDim] += DCOORD(aCell[ii].aCoord[iDim*2+1]);
201063 0 0 for(iDim=0; iDimnDim; iDim++){
201067 0 0 for(ii=0; ii
201069 0 0 for(iDim=0; iDimnDim; iDim++){
201070 0 0 RtreeDValue coord = (DCOORD(aCell[ii].aCoord[iDim*2+1]) -
201071 0 0 DCOORD(aCell[ii].aCoord[iDim*2]));
201079 0 0 for(ii=0; rc==SQLITE_OK && ii<(nCell-(RTREE_MINCELLS(pRtree)+1)); ii++){
0 0 for(ii=0; rc==SQLITE_OK && ii<(nCell-(RTREE_MINCELLS(pRtree)+1)); ii++){
201082 0 0 if( p->iRowid==pCell->iRowid ){
201083 0 0 if( iHeight==0 ){
201090 0 0 if( rc==SQLITE_OK ){
201093 0 0 for(; rc==SQLITE_OK && ii
0 0 for(; rc==SQLITE_OK && ii
201100 0 0 if( rc==SQLITE_OK ){
201104 0 0 if( rc==SQLITE_OK ){
201125 0 7 if( iHeight>0 ){
201127 0 0 if( pChild ){
201133 0 7 if( nodeInsertCell(pRtree, pNode, pCell) ){
201134 0 0 if( iHeight<=pRtree->iReinsertHeight || pNode->iNode==1){
0 0 if( iHeight<=pRtree->iReinsertHeight || pNode->iNode==1){
201142 7 0 if( ALWAYS(rc==SQLITE_OK) ){
201143 7 0 if( iHeight==0 ){
201158 0 0 for(ii=0; rc==SQLITE_OK && ii
0 0 for(ii=0; rc==SQLITE_OK && ii
201167 0 0 if( rc==SQLITE_OK ){
201171 0 0 if( rc==SQLITE_OK ){
201208 0 0 if( rc==SQLITE_OK ){
201217 0 0 if( rc==SQLITE_OK && pLeaf ){
0 0 if( rc==SQLITE_OK && pLeaf ){
201220 0 0 if( rc==SQLITE_OK ){
201224 0 0 if( rc==SQLITE_OK ){
201230 0 0 if( rc==SQLITE_OK ){
201244 0 0 if( rc==SQLITE_OK && pRtree->iDepth>0 && NCELL(pRoot)==1 ){
0 0 if( rc==SQLITE_OK && pRtree->iDepth>0 && NCELL(pRoot)==1 ){
0 0 if( rc==SQLITE_OK && pRtree->iDepth>0 && NCELL(pRoot)==1 ){
201249 0 0 if( rc==SQLITE_OK ){
201253 0 0 if( rc==SQLITE_OK ) rc = rc2;
201254 0 0 if( rc==SQLITE_OK ){
201262 0 0 for(pLeaf=pRtree->pDeleted; pLeaf; pLeaf=pRtree->pDeleted){
201263 0 0 if( rc==SQLITE_OK ){
201272 0 0 if( rc==SQLITE_OK ){
201295 0 0 if( f>d ){
201296 0 0 f = (float)(d*(d<0 ? RNDAWAY : RNDTOWARDS));
201303 0 0 if( f
201304 0 0 f = (float)(d*(d<0 ? RNDTOWARDS : RNDAWAY));
201330 0 0 if( zSql ){
201337 0 0 if( rc==SQLITE_OK ){
201338 0 0 if( iCol==0 ){
201353 0 0 return (rc==SQLITE_OK ? SQLITE_CONSTRAINT : rc);
201372 0 7 if( pRtree->nNodeRef ){
201394 7 0 if( nData>1 ){
201398 0 7 if( nn > pRtree->nDim2 ) nn = pRtree->nDim2;
201409 0 7 if( pRtree->eCoordType==RTREE_COORD_REAL32 ){
201410 0 0 for(ii=0; ii
201413 0 0 if( cell.aCoord[ii].f>cell.aCoord[ii+1].f ){
201421 14 7 for(ii=0; ii
201424 0 14 if( cell.aCoord[ii].i>cell.aCoord[ii+1].i ){
201433 7 0 if( sqlite3_value_type(aData[2])!=SQLITE_NULL ){
201435 0 7 if( sqlite3_value_type(aData[0])==SQLITE_NULL
201436 0 0 || sqlite3_value_int64(aData[0])!=cell.iRowid
201442 0 7 if( SQLITE_ROW==steprc ){
201443 0 0 if( sqlite3_vtab_on_conflict(pRtree->db)==SQLITE_REPLACE ){
201459 0 7 if( sqlite3_value_type(aData[0])!=SQLITE_NULL ){
201467 7 0 if( rc==SQLITE_OK && nData>1 ){
7 0 if( rc==SQLITE_OK && nData>1 ){
201472 0 7 if( bHaveRowid==0 ){
201477 7 0 if( rc==SQLITE_OK ){
201480 7 0 if( rc==SQLITE_OK ){
201485 7 0 if( rc==SQLITE_OK ){
201489 7 0 if( rc==SQLITE_OK && pRtree->nAux ){
0 7 if( rc==SQLITE_OK && pRtree->nAux ){
201493 0 0 for(jj=0; jjnAux; jj++){
201541 0 0 if( zSql ){
201588 1 0 if( rc!=SQLITE_OK ){
201590 0 1 return rc==SQLITE_ERROR ? SQLITE_OK : rc;
201593 0 0 if( zSql==0 ){
201597 0 0 if( rc==SQLITE_OK ){
201598 0 0 if( sqlite3_step(p)==SQLITE_ROW ) nRow = sqlite3_column_int64(p, 0);
201617 12 0 for(i=0; i
201618 6 6 if( sqlite3_stricmp(zName, azName[i])==0 ) return 1;
201681 1 0 if( isCreate ){
201688 0 1 for(ii=0; iinAux; ii++){
201701 0 1 if( !zCreate ){
201706 0 1 if( rc!=SQLITE_OK ){
201721 8 1 for(i=0; i
8 0 for(i=0; i
201724 1 7 if( i!=3 || pRtree->nAux==0 ){
1 0 if( i!=3 || pRtree->nAux==0 ){
201733 8 0 if( zSql ){
201740 0 1 if( pRtree->nAux ){
201744 0 0 if( pRtree->zReadAuxSql==0 ){
201751 0 0 for(ii=0; iinAux; ii++){
201752 0 0 if( ii ) sqlite3_str_append(p, ",", 1);
201764 0 0 if( zSql==0 ){
201785 1 0 if( zSql ){
201788 1 0 if( rc==SQLITE_OK ){
201789 1 0 if( SQLITE_ROW==sqlite3_step(pStmt) ){
201821 1 0 if( isCreate ){
201825 1 0 if( rc==SQLITE_OK ){
201827 1 0 if( (4+pRtree->nBytesPerCell*RTREE_MAXCELLS)iNodeSize ){
201839 0 0 if( rc!=SQLITE_OK ){
201841 0 0 }else if( pRtree->iNodeSize<(512-64) ){
201897 1 0 if( argc<6 || argc>RTREE_MAX_AUX_COLUMN+3 ){
0 1 if( argc<6 || argc>RTREE_MAX_AUX_COLUMN+3 ){
201898 0 0 *pzErr = sqlite3_mprintf("%s", aErrMsg[2 + (argc>=6)]);
201908 0 1 if( !pRtree ){
201928 4 1 for(ii=4; ii
201930 0 4 if( zArg[0]=='+' ){
201933 0 4 }else if( pRtree->nAux>0 ){
201944 0 1 if( !zSql ){
201946 0 1 }else if( ii
201949 0 1 }else if( SQLITE_OK!=(rc = sqlite3_declare_vtab(db, zSql)) ){
201953 0 1 if( rc ) goto rtreeInit_fail;
201955 0 1 if( pRtree->nDim<1 ){
201957 0 1 }else if( pRtree->nDim2>RTREE_MAX_DIMENSIONS*2 ){
201959 0 1 }else if( pRtree->nDim2 % 2 ){
201964 0 1 if( iErr ){
201972 0 1 if( rc ) goto rtreeInit_fail;
201974 0 1 if( rc ){
201983 0 0 if( rc==SQLITE_OK ) rc = SQLITE_ERROR;
202019 0 0 if( tree.nDim<1 || tree.nDim>5 ) return;
0 0 if( tree.nDim<1 || tree.nDim>5 ) return;
202023 0 0 if( node.zData==0 ) return;
202025 0 0 if( nData<4 ) return;
202026 0 0 if( nData
202029 0 0 for(ii=0; ii
202034 0 0 if( ii>0 ) sqlite3_str_append(pOut, " ", 1);
202036 0 0 for(jj=0; jj
202061 0 0 if( sqlite3_value_type(apArg[0])!=SQLITE_BLOB
202062 0 0 || sqlite3_value_bytes(apArg[0])<2
202068 0 0 if( zBlob ){
202104 0 0 if( pCheck->rc==SQLITE_OK ) pCheck->rc = rc;
202126 0 0 if( pCheck->rc==SQLITE_OK ){
202127 0 0 if( z==0 ){
202147 0 0 if( pCheck->rc==SQLITE_OK && pCheck->nErr
0 0 if( pCheck->rc==SQLITE_OK && pCheck->nErr
202149 0 0 if( z==0 ){
202152 0 0 pCheck->zReport = sqlite3_mprintf("%z%s%z",
202155 0 0 if( pCheck->zReport==0 ){
202181 0 0 if( pCheck->rc==SQLITE_OK && pCheck->pGetNode==0 ){
0 0 if( pCheck->rc==SQLITE_OK && pCheck->pGetNode==0 ){
202188 0 0 if( pCheck->rc==SQLITE_OK ){
202190 0 0 if( sqlite3_step(pCheck->pGetNode)==SQLITE_ROW ){
202194 0 0 if( pRet==0 ){
202202 0 0 if( pCheck->rc==SQLITE_OK && pRet==0 ){
0 0 if( pCheck->rc==SQLITE_OK && pRet==0 ){
202236 0 0 if( pCheck->aCheckMapping[bLeaf]==0 ){
202241 0 0 if( pCheck->rc!=SQLITE_OK ) return;
202246 0 0 if( rc==SQLITE_DONE ){
202247 0 0 rtreeCheckAppendMsg(pCheck, "Mapping (%lld -> %lld) missing from %s table",
202250 0 0 }else if( rc==SQLITE_ROW ){
202252 0 0 if( ii!=iVal ){
202253 0 0 rtreeCheckAppendMsg(pCheck,
202285 0 0 for(i=0; inDim; i++){
202290 0 0 if( pCheck->bInt ? c1.i>c2.i : c1.f>c2.f ){
0 0 if( pCheck->bInt ? c1.i>c2.i : c1.f>c2.f ){
202296 0 0 if( pParent ){
202300 0 0 if( (pCheck->bInt ? c1.i
0 0 if( (pCheck->bInt ? c1.i
0 0 if( (pCheck->bInt ? c1.i
202301 0 0 || (pCheck->bInt ? c2.i>p2.i : c2.f>p2.f)
0 0 || (pCheck->bInt ? c2.i>p2.i : c2.f>p2.f)
0 0 || (pCheck->bInt ? c2.i>p2.i : c2.f>p2.f)
202333 0 0 if( aNode ){
202334 0 0 if( nNode<4 ){
202341 0 0 if( aParent==0 ){
202343 0 0 if( iDepth>RTREE_MAX_DEPTH ){
202350 0 0 if( (4 + nCell*(8 + pCheck->nDim*2*4))>nNode ){
202356 0 0 for(i=0; i
202361 0 0 if( iDepth>0 ){
202384 0 0 if( pCheck->rc==SQLITE_OK ){
202389 0 0 if( pCount ){
202390 0 0 if( sqlite3_step(pCount)==SQLITE_ROW ){
202392 0 0 if( nActual!=nExpect ){
202427 0 0 if( sqlite3_get_autocommit(db) ){
202433 0 0 if( check.rc==SQLITE_OK ){
202435 0 0 if( pStmt ){
202439 0 0 if( check.rc!=SQLITE_NOMEM ){
202446 0 0 if( pStmt ){
202449 0 0 if( check.nDim<1 ){
202451 0 0 }else if( SQLITE_ROW==sqlite3_step(pStmt) ){
202455 0 0 if( rc!=SQLITE_CORRUPT ) check.rc = rc;
202459 0 0 if( check.nDim>=1 ){
202460 0 0 if( check.rc==SQLITE_OK ){
202473 0 0 if( bEnd ){
202475 0 0 if( check.rc==SQLITE_OK ) check.rc = rc;
202519 0 0 if( nArg!=1 && nArg!=2 ){
0 0 if( nArg!=1 && nArg!=2 ){
202528 0 0 if( nArg==1 ){
202535 0 0 if( rc==SQLITE_OK ){
202536 0 0 sqlite3_result_text(ctx, zReport ? zReport : "ok", -1, SQLITE_TRANSIENT);
204377 311 0 if( rc==SQLITE_OK ){
204380 311 0 if( rc==SQLITE_OK ){
204383 311 0 if( rc==SQLITE_OK ){
204391 311 0 if( rc==SQLITE_OK ){
204413 0 0 if( pInfo->xDestructor ) pInfo->xDestructor(pInfo->pContext);
204423 0 0 for(i=0; inParam; i++){
204452 0 0 if( !pBlob ){
204460 0 0 for(i=0; i
204462 0 0 if( pBlob->apSqlParam[i]==0 ) memErr = 1;
204469 0 0 if( memErr ){
204491 0 0 if( !pGeomCtx ) return SQLITE_NOMEM;
204516 0 0 if( !pGeomCtx ){
204517 0 0 if( xDestructor ) xDestructor(pContext);
220463 0 0 if( fts5yypParser ){
220558 0 0 while( pParser->fts5yytos>pParser->fts5yystack ) fts5yy_pop_parser_stack(pParser);
220578 0 0 if( p==0 ) return;
220642 0 0 if( stateno>fts5YY_MAX_SHIFT ) return stateno;
220656 0 0 if( fts5yy_lookahead[i]!=iLookAhead ){
220738 0 0 while( fts5yypParser->fts5yytos>fts5yypParser->fts5yystack ) fts5yy_pop_parser_stack(fts5yypParser);
220788 0 0 if( fts5yypParser->fts5yytos>fts5yypParser->fts5yystackEnd ){
220802 0 0 if( fts5yyNewState > fts5YY_MAX_SHIFT ){
221211 0 0 if( fts5yyact >= fts5YY_MIN_REDUCE ){
221234 0 0 if( fts5yyRuleInfoNRhs[fts5yyruleno]==0 ){
221243 0 0 if( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystackEnd ){
221257 0 0 }else if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){
221263 0 0 }else if( fts5yyact==fts5YY_ACCEPT_ACTION ){
221456 0 0 while( rc==SQLITE_OK && pIter->iInstnInst ){
0 0 while( rc==SQLITE_OK && pIter->iInstnInst ){
221459 0 0 if( rc==SQLITE_OK ){
221460 0 0 if( ic==pIter->iCol ){
221462 0 0 if( pIter->iStart<0 ){
221465 0 0 }else if( io<=pIter->iEnd ){
221466 0 0 if( iEnd>pIter->iEnd ) pIter->iEnd = iEnd;
221496 0 0 if( rc==SQLITE_OK ){
221536 0 0 if( *pRc==SQLITE_OK && z ){
0 0 if( *pRc==SQLITE_OK && z ){
221537 0 0 if( n<0 ) n = (int)strlen(z);
221539 0 0 if( p->zOut==0 ) *pRc = SQLITE_NOMEM;
221560 0 0 if( tflags & FTS5_TOKEN_COLOCATED ) return SQLITE_OK;
221563 0 0 if( p->iRangeEnd>0 ){
221564 0 0 if( iPosiRangeStart || iPos>p->iRangeEnd ) return SQLITE_OK;
0 0 if( iPosiRangeStart || iPos>p->iRangeEnd ) return SQLITE_OK;
221565 0 0 if( p->iRangeStart && iPos==p->iRangeStart ) p->iOff = iStartOff;
0 0 if( p->iRangeStart && iPos==p->iRangeStart ) p->iOff = iStartOff;
221568 0 0 if( iPos==p->iter.iStart ){
221574 0 0 if( iPos==p->iter.iEnd ){
221575 0 0 if( p->iRangeEnd && p->iter.iStartiRangeStart ){
0 0 if( p->iRangeEnd && p->iter.iStartiRangeStart ){
221581 0 0 if( rc==SQLITE_OK ){
221586 0 0 if( p->iRangeEnd>0 && iPos==p->iRangeEnd ){
0 0 if( p->iRangeEnd>0 && iPos==p->iRangeEnd ){
221589 0 0 if( iPos>=p->iter.iStart && iPositer.iEnd ){
0 0 if( iPos>=p->iter.iStart && iPositer.iEnd ){
221611 0 0 if( nVal!=3 ){
221623 0 0 if( ctx.zIn ){
221624 0 0 if( rc==SQLITE_OK ){
221628 0 0 if( rc==SQLITE_OK ){
221633 0 0 if( rc==SQLITE_OK ){
221638 0 0 if( rc!=SQLITE_OK ){
221664 0 0 if( p->nFirstAlloc==p->nFirst ){
221665 0 0 int nNew = p->nFirstAlloc ? p->nFirstAlloc*2 : 64;
221669 0 0 if( aNew==0 ) return SQLITE_NOMEM;
221695 0 0 if( (tflags & FTS5_TOKEN_COLOCATED)==0 ){
221697 0 0 if( p->iPos>0 ){
221700 0 0 for(i=iStartOff-1; i>=0; i--){
221702 0 0 if( c!=' ' && c!='\t' && c!='\n' && c!='\r' ) break;
0 0 if( c!=' ' && c!='\t' && c!='\n' && c!='\r' ) break;
0 0 if( c!=' ' && c!='\t' && c!='\n' && c!='\r' ) break;
0 0 if( c!=' ' && c!='\t' && c!='\n' && c!='\r' ) break;
221704 0 0 if( i!=iStartOff-1 && (c=='.' || c==':') ){
0 0 if( i!=iStartOff-1 && (c=='.' || c==':') ){
0 0 if( i!=iStartOff-1 && (c=='.' || c==':') ){
221738 0 0 for(i=0; i
0 0 for(i=0; i
221740 0 0 if( rc==SQLITE_OK && ic==iCol && iOff>=iPos && iOff
0 0 if( rc==SQLITE_OK && ic==iCol && iOff>=iPos && iOff
0 0 if( rc==SQLITE_OK && ic==iCol && iOff>=iPos && iOff
0 0 if( rc==SQLITE_OK && ic==iCol && iOff>=iPos && iOff
221741 0 0 nScore += (aSeen[ip] ? 1 : 1000);
221743 0 0 if( iFirst<0 ) iFirst = iOff;
221749 0 0 if( piPos ){
221751 0 0 if( (iAdj+nToken)>nDocsize ) iAdj = nDocsize - nToken;
221752 0 0 if( iAdj<0 ) iAdj = 0;
221766 0 0 return zRet ? zRet : "";
221795 0 0 if( nVal!=5 ){
221812 0 0 if( aSeen==0 ){
221815 0 0 if( rc==SQLITE_OK ){
221820 0 0 for(i=0; i
221821 0 0 if( iCol<0 || iCol==i ){
0 0 if( iCol<0 || iCol==i ){
221828 0 0 if( rc!=SQLITE_OK ) break;
221832 0 0 if( rc!=SQLITE_OK ) break;
221834 0 0 if( rc!=SQLITE_OK ) break;
221836 0 0 for(ii=0; rc==SQLITE_OK && ii
0 0 for(ii=0; rc==SQLITE_OK && ii
221843 0 0 if( ic!=i ) continue;
221844 0 0 if( io>nDocsize ) rc = FTS5_CORRUPT;
221845 0 0 if( rc!=SQLITE_OK ) continue;
221850 0 0 if( rc==SQLITE_OK && nScore>nBestScore ){
0 0 if( rc==SQLITE_OK && nScore>nBestScore ){
221857 0 0 if( rc==SQLITE_OK && sFinder.nFirst && nDocsize>nToken ){
0 0 if( rc==SQLITE_OK && sFinder.nFirst && nDocsize>nToken ){
0 0 if( rc==SQLITE_OK && sFinder.nFirst && nDocsize>nToken ){
221858 0 0 for(jj=0; jj<(sFinder.nFirst-1); jj++){
221859 0 0 if( sFinder.aFirst[jj+1]>io ) break;
221862 0 0 if( sFinder.aFirst[jj]
221868 0 0 nScore += (sFinder.aFirst[jj]==0 ? 120 : 100);
221869 0 0 if( rc==SQLITE_OK && nScore>nBestScore ){
0 0 if( rc==SQLITE_OK && nScore>nBestScore ){
221881 0 0 if( rc==SQLITE_OK ){
221884 0 0 if( rc==SQLITE_OK && nColSize==0 ){
0 0 if( rc==SQLITE_OK && nColSize==0 ){
221887 0 0 if( ctx.zIn ){
221888 0 0 if( rc==SQLITE_OK ){
221895 0 0 if( iBestStart>0 ){
221901 0 0 while( ctx.iter.iStart>=0 && ctx.iter.iStart
0 0 while( ctx.iter.iStart>=0 && ctx.iter.iStart
0 0 while( ctx.iter.iStart>=0 && ctx.iter.iStart
221905 0 0 if( rc==SQLITE_OK ){
221908 0 0 if( ctx.iRangeEnd>=(nColSize-1) ){
221914 0 0 if( rc==SQLITE_OK ){
221967 0 0 if( p==0 ){
221978 0 0 if( p==0 ){
221988 0 0 if( rc==SQLITE_OK ) rc = pApi->xRowCount(pFts, &nRow);
221990 0 0 if( rc==SQLITE_OK ) rc = pApi->xColumnTotalSize(pFts, -1, &nToken);
221991 0 0 if( rc==SQLITE_OK ) p->avgdl = (double)nToken / (double)nRow;
221994 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
221997 0 0 if( rc==SQLITE_OK ){
222012 0 0 if( idf<=0.0 ) idf = 1e-6;
222017 0 0 if( rc!=SQLITE_OK ){
222022 0 0 if( rc!=SQLITE_OK ) p = 0;
222051 0 0 if( rc==SQLITE_OK ){
222056 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
222059 0 0 if( rc==SQLITE_OK ){
222060 0 0 double w = (nVal > ic) ? sqlite3_value_double(apVal[ic]) : 1.0;
222066 0 0 if( rc==SQLITE_OK ){
222074 0 0 if( rc==SQLITE_OK ){
222075 0 0 for(i=0; inPhrase; i++){
222101 1244 0 for(i=0; rc==SQLITE_OK && i
933 311 for(i=0; rc==SQLITE_OK && i
222131 0 0 if( (u32)pBuf->nSpace
222132 0 0 u64 nNew = pBuf->nSpace ? pBuf->nSpace : 64;
222134 0 0 while( nNew
222138 0 0 if( pNew==0 ){
222155 0 0 if( fts5BufferGrow(pRc, pBuf, 9) ) return;
0 0 if( fts5BufferGrow(pRc, pBuf, 9) ) return;
222181 0 0 if( nData ){
222182 0 0 if( fts5BufferGrow(pRc, pBuf, nData) ) return;
0 0 if( fts5BufferGrow(pRc, pBuf, nData) ) return;
222216 0 0 if( *pRc==SQLITE_OK ){
222223 0 0 if( zTmp==0 ){
222234 0 0 if( *pRc==SQLITE_OK ){
222239 0 0 if( zRet==0 ){
222284 0 0 if( i>=n ){
222291 0 0 fts5FastGetVarint32(a, i, iVal);
222292 0 0 if( iVal<=1 ){
222293 0 0 if( iVal==0 ){
222297 0 0 fts5FastGetVarint32(a, i, iVal);
222300 0 0 fts5FastGetVarint32(a, i, iVal);
222301 0 0 if( iVal<2 ){
222322 0 0 if( sqlite3Fts5PoslistNext64(pIter->a, pIter->n, &pIter->i, &pIter->iPos) ){
222350 0 0 if( iPos>=*piPrev ){
222352 0 0 if( (iPos & colmask) != (*piPrev & colmask) ){
222368 0 0 if( fts5BufferGrow(&rc, pBuf, 5+5+5) ) return rc;
0 0 if( fts5BufferGrow(&rc, pBuf, 5+5+5) ) return rc;
222375 0 0 if( *pRc==SQLITE_OK ){
222377 0 0 if( pRet==0 ){
222378 0 0 if( nByte>0 ) *pRc = SQLITE_NOMEM;
222396 0 0 if( *pRc==SQLITE_OK ){
222397 0 0 if( nIn<0 ){
222401 0 0 if( zRet ){
222434 0 0 return (t & 0x80) || aBareword[(int)t];
0 0 return (t & 0x80) || aBareword[(int)t];
222466 0 0 if( p ){
222475 0 0 for(i=nTerm-1; i>=0; i--){
222481 0 0 for(pEntry=p->apHash[hash]; pEntry; pEntry=pEntry->pNext){
222482 0 0 if( pEntry->iIdx==iIdx
222483 0 0 && pEntry->nTerm==nTerm
222484 0 0 && memcmp(pEntry->pTerm, pTerm, nTerm)==0
222491 0 0 if( pEntry==0 ){
222493 0 0 if( pEntry ){
222508 0 0 if( p ){
222510 0 0 for(i=0; iapHash); i++){
222512 0 0 while( pEntry ){
222554 0 0 return (x=='"' || x=='\'' || x=='[' || x=='`');
0 0 return (x=='"' || x=='\'' || x=='[' || x=='`');
0 0 return (x=='"' || x=='\'' || x=='[' || x=='`');
0 0 return (x=='"' || x=='\'' || x=='[' || x=='`');
222564 0 0 if( p ){
222565 0 0 while( fts5_iswhitespace(*p) ){ p++; }
222577 0 0 while ( sqlite3Fts5IsBareword(*p) ) p++;
222578 0 0 if( p==pIn ) p = 0;
222583 0 0 return (a>='0' && a<='9');
0 0 return (a>='0' && a<='9');
222592 0 0 if( sqlite3_strnicmp("null", p, 4)==0 ){
222601 0 0 if( *p=='\'' ){
222603 0 0 while( (*p>='a' && *p<='f')
0 0 while( (*p>='a' && *p<='f')
222604 0 0 || (*p>='A' && *p<='F')
0 0 || (*p>='A' && *p<='F')
222605 0 0 || (*p>='0' && *p<='9')
0 0 || (*p>='0' && *p<='9')
222609 0 0 if( *p=='\'' && 0==((p-pIn)%2) ){
0 0 if( *p=='\'' && 0==((p-pIn)%2) ){
222621 0 0 while( p ){
222622 0 0 if( *p=='\'' ){
222624 0 0 if( *p!='\'' ) break;
222627 0 0 if( *p==0 ) p = 0;
222633 0 0 if( *p=='+' || *p=='-' ) p++;
0 0 if( *p=='+' || *p=='-' ) p++;
222634 0 0 while( fts5_isdigit(*p) ) p++;
222639 0 0 if( *p=='.' && fts5_isdigit(p[1]) ){
0 0 if( *p=='.' && fts5_isdigit(p[1]) ){
222641 0 0 while( fts5_isdigit(*p) ) p++;
222643 0 0 if( p==pIn ) p = 0;
222672 0 0 if( q=='[' ) q = ']';
222674 0 0 while( z[iIn] ){
222675 0 0 if( z[iIn]==q ){
222676 0 0 if( z[iIn+1]!=q ){
222714 0 0 if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){
0 0 if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){
0 0 if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){
0 0 if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){
222735 0 0 for(i=0; aEnum[i].zName; i++){
222736 0 0 if( sqlite3_strnicmp(aEnum[i].zName, zEnum, nEnum)==0 ){
222737 0 0 if( iVal>=0 ) return SQLITE_ERROR;
222764 0 0 if( sqlite3_strnicmp("prefix", zCmd, nCmd)==0 ){
222768 0 0 if( pConfig->aPrefix==0 ){
222770 0 0 if( rc ) return rc;
222777 0 0 while( p[0]==' ' ) p++;
222778 0 0 if( bFirst==0 && p[0]==',' ){
0 0 if( bFirst==0 && p[0]==',' ){
222780 0 0 while( p[0]==' ' ) p++;
222781 0 0 }else if( p[0]=='\0' ){
222784 0 0 if( p[0]<'0' || p[0]>'9' ){
0 0 if( p[0]<'0' || p[0]>'9' ){
222790 0 0 if( pConfig->nPrefix==FTS5_MAX_PREFIX_INDEXES ){
222798 0 0 while( p[0]>='0' && p[0]<='9' && nPre<1000 ){
0 0 while( p[0]>='0' && p[0]<='9' && nPre<1000 ){
0 0 while( p[0]>='0' && p[0]<='9' && nPre<1000 ){
222803 0 0 if( nPre<=0 || nPre>=1000 ){
0 0 if( nPre<=0 || nPre>=1000 ){
222817 0 0 if( sqlite3_strnicmp("tokenize", zCmd, nCmd)==0 ){
222824 0 0 if( azArg && pSpace ){
0 0 if( azArg && pSpace ){
222825 0 0 if( pConfig->pTok ){
222829 0 0 for(nArg=0; p && *p; nArg++){
0 0 for(nArg=0; p && *p; nArg++){
222831 0 0 if( *p2=='\'' ){
222836 0 0 if( p ){
222844 0 0 if( p==0 ){
222861 0 0 if( sqlite3_strnicmp("content", zCmd, nCmd)==0 ){
222862 0 0 if( pConfig->eContent!=FTS5_CONTENT_NORMAL ){
222866 0 0 if( zArg[0] ){
222876 0 0 if( sqlite3_strnicmp("content_rowid", zCmd, nCmd)==0 ){
222877 0 0 if( pConfig->zContentRowid ){
222886 0 0 if( sqlite3_strnicmp("columnsize", zCmd, nCmd)==0 ){
222887 0 0 if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1]!='\0' ){
0 0 if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1]!='\0' ){
0 0 if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1]!='\0' ){
222896 0 0 if( sqlite3_strnicmp("detail", zCmd, nCmd)==0 ){
222904 0 0 if( (rc = fts5ConfigSetEnum(aDetail, zArg, &pConfig->eDetail)) ){
222954 0 0 if( zOut==0 ){
222958 0 0 if( fts5_isopenquote(zOut[0]) ){
222964 0 0 if( zRet ){
222970 0 0 if( zRet==0 ){
222986 0 0 if( 0==sqlite3_stricmp(zCol, FTS5_RANK_NAME)
222987 0 0 || 0==sqlite3_stricmp(zCol, FTS5_ROWID_NAME)
222991 0 0 }else if( zArg ){
222992 0 0 if( 0==sqlite3_stricmp(zArg, "unindexed") ){
223013 0 0 if( p->eContent!=FTS5_CONTENT_NONE ){
223014 0 0 for(i=0; inCol; i++){
223015 0 0 if( p->eContent==FTS5_CONTENT_EXTERNAL ){
223054 0 0 if( pRet==0 ) return SQLITE_NOMEM;
223061 0 0 pRet->abUnindexed = pRet->azCol ? (u8*)&pRet->azCol[nArg] : 0;
223069 0 0 if( rc==SQLITE_OK && sqlite3_stricmp(pRet->zName, FTS5_RANK_NAME)==0 ){
0 0 if( rc==SQLITE_OK && sqlite3_stricmp(pRet->zName, FTS5_RANK_NAME)==0 ){
223074 0 0 for(i=3; rc==SQLITE_OK && i
0 0 for(i=3; rc==SQLITE_OK && i
223084 0 0 if( z && *z=='=' ){
0 0 if( z && *z=='=' ){
223088 0 0 if( bMustBeCol ) z = 0;
223091 0 0 if( z && z[0] ){
0 0 if( z && z[0] ){
223094 0 0 if( z && z[0] ) z = 0;
0 0 if( z && z[0] ) z = 0;
223097 0 0 if( rc==SQLITE_OK ){
223098 0 0 if( z==0 ){
223102 0 0 if( bOption ){
223103 0 0 rc = fts5ConfigParseSpecial(pGlobal, pRet,
0 0 rc = fts5ConfigParseSpecial(pGlobal, pRet,
223122 0 0 if( rc==SQLITE_OK && pRet->pTok==0 ){
0 0 if( rc==SQLITE_OK && pRet->pTok==0 ){
223127 0 0 if( rc==SQLITE_OK && pRet->zContent==0 ){
0 0 if( rc==SQLITE_OK && pRet->zContent==0 ){
223132 0 0 if( pRet->eContent==FTS5_CONTENT_NORMAL ){
223134 0 0 }else if( pRet->bColumnsize ){
223138 0 0 if( zTail ){
223145 0 0 if( rc==SQLITE_OK && pRet->zContentRowid==0 ){
0 0 if( rc==SQLITE_OK && pRet->zContentRowid==0 ){
223150 0 0 if( rc==SQLITE_OK ){
223154 0 0 if( rc!=SQLITE_OK ){
223165 0 0 if( pConfig ){
223167 0 0 if( pConfig->pTok ){
223172 0 0 for(i=0; inCol; i++){
223197 0 0 for(i=0; zSql && inCol; i++){
0 0 for(i=0; zSql && inCol; i++){
223198 0 0 const char *zSep = (i==0?"":", ");
223206 0 0 if( zSql ){
223244 0 0 if( pText==0 ) return SQLITE_OK;
223263 0 0 if( p==0 || *p==')' ) break;
0 0 if( p==0 || *p==')' ) break;
223264 0 0 if( *p!=',' ){
223297 0 0 if( p==0 ){
223304 0 0 if( p ){
223306 0 0 if( zRank ) memcpy(zRank, pRank, p-pRank);
223311 0 0 if( rc==SQLITE_OK ){
223313 0 0 if( *p!='(' ) rc = SQLITE_ERROR;
223316 0 0 if( rc==SQLITE_OK ){
223320 0 0 if( *p!=')' ){
223322 0 0 if( p==0 ){
223326 0 0 if( zRankArgs ) memcpy(zRankArgs, pArgs, p-pArgs);
223332 0 0 if( rc!=SQLITE_OK ){
223350 0 0 if( 0==sqlite3_stricmp(zKey, "pgsz") ){
223352 0 0 if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){
223355 0 0 if( pgsz<32 || pgsz>FTS5_MAX_PAGE_SIZE ){
0 0 if( pgsz<32 || pgsz>FTS5_MAX_PAGE_SIZE ){
223362 0 0 else if( 0==sqlite3_stricmp(zKey, "hashsize") ){
223364 0 0 if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){
223367 0 0 if( nHashSize<=0 ){
223374 0 0 else if( 0==sqlite3_stricmp(zKey, "automerge") ){
223376 0 0 if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){
223379 0 0 if( nAutomerge<0 || nAutomerge>64 ){
0 0 if( nAutomerge<0 || nAutomerge>64 ){
223382 0 0 if( nAutomerge==1 ) nAutomerge = FTS5_DEFAULT_AUTOMERGE;
223387 0 0 else if( 0==sqlite3_stricmp(zKey, "usermerge") ){
223389 0 0 if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){
223392 0 0 if( nUsermerge<2 || nUsermerge>16 ){
0 0 if( nUsermerge<2 || nUsermerge>16 ){
223399 0 0 else if( 0==sqlite3_stricmp(zKey, "crisismerge") ){
223401 0 0 if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){
223404 0 0 if( nCrisisMerge<0 ){
223407 0 0 if( nCrisisMerge<=1 ) nCrisisMerge = FTS5_DEFAULT_CRISISMERGE;
223408 0 0 if( nCrisisMerge>=FTS5_MAX_SEGMENT ) nCrisisMerge = FTS5_MAX_SEGMENT-1;
223413 0 0 else if( 0==sqlite3_stricmp(zKey, "rank") ){
223418 0 0 if( rc==SQLITE_OK ){
223423 0 0 }else if( rc==SQLITE_ERROR ){
223451 0 0 if( zSql ){
223457 0 0 if( rc==SQLITE_OK ){
223458 0 0 while( SQLITE_ROW==sqlite3_step(p) ){
223461 0 0 if( 0==sqlite3_stricmp(zK, "version") ){
223471 0 0 if( rc==SQLITE_OK && iVersion!=FTS5_CURRENT_VERSION ){
0 0 if( rc==SQLITE_OK && iVersion!=FTS5_CURRENT_VERSION ){
223473 0 0 if( pConfig->pzErrmsg ){
223482 0 0 if( rc==SQLITE_OK ){
223624 0 0 if( pParse->rc==SQLITE_OK ){
223633 0 0 return t==' ' || t=='\t' || t=='\n' || t=='\r';
0 0 return t==' ' || t=='\t' || t=='\n' || t=='\r';
0 0 return t==' ' || t=='\t' || t=='\n' || t=='\r';
0 0 return t==' ' || t=='\t' || t=='\n' || t=='\r';
223648 0 0 while( fts5ExprIsspace(*z) ) z++;
223670 0 0 if( z2[0]=='"' ){
223672 0 0 if( z2[0]!='"' ) break;
223674 0 0 if( z2[0]=='\0' ){
223685 0 0 if( sqlite3Fts5IsBareword(z[0])==0 ){
223690 0 0 for(z2=&z[1]; sqlite3Fts5IsBareword(*z2); z2++);
223692 0 0 if( pToken->n==2 && memcmp(pToken->p, "OR", 2)==0 ) tok = FTS5_OR;
0 0 if( pToken->n==2 && memcmp(pToken->p, "OR", 2)==0 ) tok = FTS5_OR;
223693 0 0 if( pToken->n==3 && memcmp(pToken->p, "NOT", 3)==0 ) tok = FTS5_NOT;
0 0 if( pToken->n==3 && memcmp(pToken->p, "NOT", 3)==0 ) tok = FTS5_NOT;
223694 0 0 if( pToken->n==3 && memcmp(pToken->p, "AND", 3)==0 ) tok = FTS5_AND;
0 0 if( pToken->n==3 && memcmp(pToken->p, "AND", 3)==0 ) tok = FTS5_AND;
223726 0 0 if( pEngine==0 ){ return SQLITE_NOMEM; }
223732 0 0 }while( sParse.rc==SQLITE_OK && t!=FTS5_EOF );
0 0 }while( sParse.rc==SQLITE_OK && t!=FTS5_EOF );
223737 0 0 if( iColnCol && sParse.pExpr && sParse.rc==SQLITE_OK ){
0 0 if( iColnCol && sParse.pExpr && sParse.rc==SQLITE_OK ){
0 0 if( iColnCol && sParse.pExpr && sParse.rc==SQLITE_OK ){
223740 0 0 if( pColset ){
223748 0 0 if( sParse.rc==SQLITE_OK ){
223750 0 0 if( pNew==0 ){
223754 0 0 if( !sParse.pExpr ){
223757 0 0 if( pNew->pRoot ){
223794 0 0 if( zExpr==0 ){
223802 0 0 if( bGlob==0 ){
223812 0 0 while( i<=nText ){
223813 0 0 if( i==nText
223814 0 0 || zText[i]==aSpec[0] || zText[i]==aSpec[1] || zText[i]==aSpec[2]
0 0 || zText[i]==aSpec[0] || zText[i]==aSpec[1] || zText[i]==aSpec[2]
0 0 || zText[i]==aSpec[0] || zText[i]==aSpec[1] || zText[i]==aSpec[2]
223816 0 0 if( i-iFirst>=3 ){
223819 0 0 for(jj=iFirst; jj
223821 0 0 if( zText[jj]=='"' ) zExpr[iOut++] = '"';
223826 0 0 if( zText[i]==aSpec[2] ){
223828 0 0 if( zText[i-1]=='^' ) i++;
223829 0 0 while( i
0 0 while( i
223835 0 0 if( iOut>0 ){
223837 0 0 if( pConfig->eDetail!=FTS5_DETAIL_FULL ){
223839 0 0 if( pConfig->eDetail==FTS5_DETAIL_NONE ){
223858 0 0 if( p ){
223860 0 0 for(i=0; inChild; i++){
223872 0 0 if( p ){
223883 0 0 if( *pp1 ){
223890 0 0 if( sParse.rc==SQLITE_OK ){
223894 0 0 if( ap==0 ){
223899 0 0 for(i=0; inPhrase; i++){
223927 0 0 for(p=pTerm; p; p=p->pSynonym){
223928 0 0 if( 0==sqlite3Fts5IterEof(p->pIter) ){
223930 0 0 if( bRetValid==0 || (bDesc!=(iRowid
0 0 if( bRetValid==0 || (bDesc!=(iRowid
223937 0 0 if( pbEof && bRetValid==0 ) *pbEof = 1;
0 0 if( pbEof && bRetValid==0 ) *pbEof = 1;
223958 0 0 for(p=pTerm; p; p=p->pSynonym){
223960 0 0 if( sqlite3Fts5IterEof(pIter)==0 && pIter->iRowid==iRowid ){
0 0 if( sqlite3Fts5IterEof(pIter)==0 && pIter->iRowid==iRowid ){
223961 0 0 if( pIter->nData==0 ) continue;
223962 0 0 if( nIter==nAlloc ){
223965 0 0 if( aNew==0 ){
223971 0 0 if( aIter!=aStatic ) sqlite3_free(aIter);
223980 0 0 if( nIter==1 ){
223990 0 0 for(i=0; i
223991 0 0 if( aIter[i].bEof==0 ){
223992 0 0 if( aIter[i].iPos==iPrev ){
223993 0 0 if( sqlite3Fts5PoslistReaderNext(&aIter[i]) ) continue;
223995 0 0 if( aIter[i].iPos
224000 0 0 if( iMin==FTS5_LARGEST_INT64 || rc!=SQLITE_OK ) break;
0 0 if( iMin==FTS5_LARGEST_INT64 || rc!=SQLITE_OK ) break;
224004 0 0 if( rc==SQLITE_OK ){
224011 0 0 if( aIter!=aStatic ) sqlite3_free(aIter);
224043 0 0 if( pPhrase->nTerm>ArraySize(aStatic) ){
224046 0 0 if( !aIter ) return SQLITE_NOMEM;
224051 0 0 for(i=0; inTerm; i++){
224056 0 0 if( pTerm->pSynonym ){
224059 0 0 if( rc ){
224063 0 0 if( a==buf.p ) bFlag = 1;
224070 0 0 if( aIter[i].bEof ) goto ismatch_out;
224078 0 0 for(i=0; inTerm; i++){
224081 0 0 if( pPos->iPos!=iAdj ){
224083 0 0 while( pPos->iPos
224084 0 0 if( sqlite3Fts5PoslistReaderNext(pPos) ) goto ismatch_out;
224086 0 0 if( pPos->iPos>iAdj ) iPos = pPos->iPos-i;
224089 0 0 }while( bMatch==0 );
224092 0 0 if( bFirst==0 || FTS5_POS2OFFSET(iPos)==0 ){
0 0 if( bFirst==0 || FTS5_POS2OFFSET(iPos)==0 ){
224094 0 0 if( rc!=SQLITE_OK ) goto ismatch_out;
224097 0 0 for(i=0; inTerm; i++){
224098 0 0 if( sqlite3Fts5PoslistReaderNext(&aIter[i]) ) goto ismatch_out;
224104 0 0 for(i=0; inTerm; i++){
224105 0 0 if( aIter[i].bFlag ) sqlite3_free((u8*)aIter[i].a);
224107 0 0 if( aIter!=aStatic ) sqlite3_free(aIter);
224124 0 0 if( sqlite3Fts5PoslistNext64(p->a, p->n, &p->i, &p->iLookahead) ){
224178 0 0 if( pNear->nPhrase>ArraySize(aStatic) ){
224184 0 0 if( rc!=SQLITE_OK ){
224197 0 0 for(i=0; inPhrase; i++){
224214 0 0 for(i=0; inPhrase; i++){
224217 0 0 if( pPos->iPosiPos>iMax ){
0 0 if( pPos->iPosiPos>iMax ){
224219 0 0 while( pPos->iPos
224220 0 0 if( fts5LookaheadReaderNext(pPos) ) goto ismatch_out;
224222 0 0 if( pPos->iPos>iMax ) iMax = pPos->iPos;
224225 0 0 }while( bMatch==0 );
224228 0 0 for(i=0; inPhrase; i++){
224231 0 0 if( a[i].pOut->n==0 || iPos!=pWriter->iPrev ){
0 0 if( a[i].pOut->n==0 || iPos!=pWriter->iPrev ){
224238 0 0 for(i=0; inPhrase; i++){
224239 0 0 if( a[i].reader.iLookahead < iMin ){
224244 0 0 if( fts5LookaheadReaderNext(&a[iAdv].reader) ) goto ismatch_out;
224250 0 0 if( a!=aStatic ) sqlite3_free(a);
224275 0 0 if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast
0 0 if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast
0 0 if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast
0 0 if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast
224277 0 0 if( rc || sqlite3Fts5IterEof(pIter) ){
0 0 if( rc || sqlite3Fts5IterEof(pIter) ){
224301 0 0 for(p=pTerm; rc==SQLITE_OK && p; p=p->pSynonym){
0 0 for(p=pTerm; rc==SQLITE_OK && p; p=p->pSynonym){
224302 0 0 if( sqlite3Fts5IterEof(p->pIter)==0 ){
224304 0 0 if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast
0 0 if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast
0 0 if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast
0 0 if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast
224310 0 0 if( rc!=SQLITE_OK ){
224328 0 0 if( pExpr->pConfig->eDetail!=FTS5_DETAIL_FULL ){
224332 0 0 for(pTerm=&pPhrase->aTerm[0]; pTerm; pTerm=pTerm->pSynonym){
224334 0 0 if( sqlite3Fts5IterEof(pIter)==0 ){
224335 0 0 if( pIter->iRowid==pNode->iRowid && pIter->nData>0 ){
0 0 if( pIter->iRowid==pNode->iRowid && pIter->nData>0 ){
224347 0 0 for(i=0; rc==SQLITE_OK && inPhrase; i++){
0 0 for(i=0; rc==SQLITE_OK && inPhrase; i++){
224349 0 0 if( pPhrase->nTerm>1 || pPhrase->aTerm[0].pSynonym
0 0 if( pPhrase->nTerm>1 || pPhrase->aTerm[0].pSynonym
224350 0 0 || pNear->pColset || pPhrase->aTerm[0].bFirst
0 0 || pNear->pColset || pPhrase->aTerm[0].bFirst
224354 0 0 if( bMatch==0 ) break;
224362 0 0 if( i==pNear->nPhrase && (i==1 || fts5ExprNearIsMatch(pRc, pNear)) ){
0 0 if( i==pNear->nPhrase && (i==1 || fts5ExprNearIsMatch(pRc, pNear)) ){
0 0 if( i==pNear->nPhrase && (i==1 || fts5ExprNearIsMatch(pRc, pNear)) ){
224387 0 0 for(i=0; inPhrase; i++){
224389 0 0 if( pPhrase->nTerm==0 ){
224394 0 0 for(j=0; jnTerm; j++){
224399 0 0 for(p=pTerm; p; p=p->pSynonym){
224401 0 0 if( p->pIter ){
224408 0 0 (pExpr->bDesc ? FTS5INDEX_QUERY_DESC : 0),
224413 0 0 if( rc!=SQLITE_OK ) return rc;
224414 0 0 if( 0==sqlite3Fts5IterEof(p->pIter) ){
224419 0 0 if( bHit==0 ){
224447 0 0 if( pExpr->bDesc==0 ){
224448 0 0 if( iLhs
224451 0 0 if( iLhs>iRhs ) return -1;
224460 0 0 for(i=0; inChild; i++){
224466 0 0 if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){
0 0 if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){
224469 0 0 for(i=0; inPhrase; i++){
224475 0 0 for(i=0; inChild; i++){
224500 0 0 if( p2->bEof ) return -1;
224501 0 0 if( p1->bEof ) return +1;
224539 0 0 if( pLeft->aTerm[0].pSynonym ){
224547 0 0 for(i=0; inPhrase; i++){
224549 0 0 for(j=0; jnTerm; j++){
224551 0 0 if( pTerm->pSynonym ){
224553 0 0 if( iRowid==iLast ) continue;
224555 0 0 if( fts5ExprSynonymAdvanceto(pTerm, bDesc, &iLast, &rc) ){
224562 0 0 if( pIter->iRowid==iLast || pIter->bEof ) continue;
0 0 if( pIter->iRowid==iLast || pIter->bEof ) continue;
224564 0 0 if( fts5ExprAdvanceto(pIter, bDesc, &iLast, &rc, &pNode->bEof) ){
224570 0 0 }while( bMatch==0 );
224573 0 0 pNode->bNomatch = ((0==fts5ExprNearTest(&rc, pExpr, pNode)) && rc==SQLITE_OK);
0 0 pNode->bNomatch = ((0==fts5ExprNearTest(&rc, pExpr, pNode)) && rc==SQLITE_OK);
224596 0 0 if( pTerm->pSynonym ){
224605 0 0 for(p=pTerm; p; p=p->pSynonym){
224606 0 0 if( sqlite3Fts5IterEof(p->pIter)==0 ){
224608 0 0 if( ii==iRowid
224609 0 0 || (bFromValid && ii!=iFrom && (ii>iFrom)==pExpr->bDesc)
0 0 || (bFromValid && ii!=iFrom && (ii>iFrom)==pExpr->bDesc)
0 0 || (bFromValid && ii!=iFrom && (ii>iFrom)==pExpr->bDesc)
224611 0 0 if( bFromValid ){
224616 0 0 if( rc!=SQLITE_OK ) break;
224617 0 0 if( sqlite3Fts5IterEof(p->pIter)==0 ){
224628 0 0 pNode->bEof = (rc || bEof);
0 0 pNode->bEof = (rc || bEof);
224633 0 0 if( bFromValid ){
224639 0 0 pNode->bEof = (rc || sqlite3Fts5IterEof(pIter));
0 0 pNode->bEof = (rc || sqlite3Fts5IterEof(pIter));
224642 0 0 if( pNode->bEof==0 ){
224668 0 0 if( pExpr->pConfig->eDetail==FTS5_DETAIL_FULL ){
224689 0 0 if( bFromValid ){
224694 0 0 if( rc==SQLITE_OK && sqlite3Fts5IterEof(pIter)==0 ){
0 0 if( rc==SQLITE_OK && sqlite3Fts5IterEof(pIter)==0 ){
224710 0 0 for(i=1; inChild; i++){
224713 0 0 if( cmp>0 || (cmp==0 && pChild->bNomatch==0) ){
0 0 if( cmp>0 || (cmp==0 && pChild->bNomatch==0) ){
0 0 if( cmp>0 || (cmp==0 && pChild->bNomatch==0) ){
224731 0 0 for(i=0; inChild; i++){
224734 0 0 if( p1->bEof==0 ){
224735 0 0 if( (p1->iRowid==iLast)
224736 0 0 || (bFromValid && fts5RowidCmp(pExpr, p1->iRowid, iFrom)<0)
0 0 || (bFromValid && fts5RowidCmp(pExpr, p1->iRowid, iFrom)<0)
224739 0 0 if( rc!=SQLITE_OK ){
224767 0 0 for(iChild=0; iChildnChild; iChild++){
224770 0 0 if( cmp>0 ){
224773 0 0 if( rc!=SQLITE_OK ){
224784 0 0 if( pChild->bEof ){
224788 0 0 }else if( iLast!=pChild->iRowid ){
224793 0 0 if( pChild->bNomatch ){
224797 0 0 }while( bMatch==0 );
224799 0 0 if( pAnd->bNomatch && pAnd!=pExpr->pRoot ){
0 0 if( pAnd->bNomatch && pAnd!=pExpr->pRoot ){
224813 0 0 if( rc==SQLITE_OK ){
224830 0 0 while( rc==SQLITE_OK && p1->bEof==0 ){
0 0 while( rc==SQLITE_OK && p1->bEof==0 ){
224832 0 0 if( cmp>0 ){
224837 0 0 if( cmp || p2->bNomatch ) break;
0 0 if( cmp || p2->bNomatch ) break;
224843 0 0 if( p1->bEof ){
224856 0 0 if( rc==SQLITE_OK ){
224859 0 0 if( rc!=SQLITE_OK ){
224875 0 0 if( pNode->bEof==0 ){
224920 0 0 if( Fts5NodeIsString(pNode) ){
0 0 if( Fts5NodeIsString(pNode) ){
224923 0 0 }else if( pNode->xNext==0 ){
224928 0 0 for(i=0; inChild && rc==SQLITE_OK; i++){
0 0 for(i=0; inChild && rc==SQLITE_OK; i++){
224938 0 0 if( nEof>0 ) fts5ExprSetEof(pNode);
224942 0 0 if( pNode->nChild==nEof ) fts5ExprSetEof(pNode);
224952 0 0 if( rc==SQLITE_OK ){
224984 0 0 if( rc==SQLITE_OK
224985 0 0 && 0==pRoot->bEof
224986 0 0 && fts5RowidCmp(p, pRoot->iRowid, iFirst)<0
224992 0 0 while( pRoot->bNomatch && rc==SQLITE_OK ){
0 0 while( pRoot->bNomatch && rc==SQLITE_OK ){
225012 0 0 }while( pRoot->bNomatch );
225013 0 0 if( fts5RowidCmp(p, pRoot->iRowid, iLast)>0 ){
225037 0 0 if( pPhrase ){
225039 0 0 for(i=0; inTerm; i++){
225045 0 0 for(pSyn=pTerm->pSynonym; pSyn; pSyn=pNext){
225052 0 0 if( pPhrase->poslist.nSpace>0 ) fts5BufferFree(&pPhrase->poslist);
225062 0 0 if( pPhrase && pPhrase->nTerm ){
0 0 if( pPhrase && pPhrase->nTerm ){
225083 0 0 if( pParse->rc==SQLITE_OK ){
225084 0 0 if( pPhrase==0 ){
225087 0 0 if( pNear==0 ){
225091 0 0 if( pRet==0 ){
225096 0 0 }else if( (pNear->nPhrase % SZALLOC)==0 ){
225102 0 0 if( pRet==0 ){
225110 0 0 if( pRet==0 ){
225115 0 0 if( pRet->nPhrase>0 ){
225121 0 0 if( pPhrase->nTerm==0 ){
225126 0 0 }else if( pLast->nTerm==0 ){
225163 0 0 if( pCtx->rc!=SQLITE_OK ) return pCtx->rc;
225164 0 0 if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE;
225166 0 0 if( pPhrase && pPhrase->nTerm>0 && (tflags & FTS5_TOKEN_COLOCATED) ){
0 0 if( pPhrase && pPhrase->nTerm>0 && (tflags & FTS5_TOKEN_COLOCATED) ){
0 0 if( pPhrase && pPhrase->nTerm>0 && (tflags & FTS5_TOKEN_COLOCATED) ){
225170 0 0 if( pSyn==0 ){
225181 0 0 if( pPhrase==0 || (pPhrase->nTerm % SZALLOC)==0 ){
0 0 if( pPhrase==0 || (pPhrase->nTerm % SZALLOC)==0 ){
225183 0 0 int nNew = SZALLOC + (pPhrase ? pPhrase->nTerm : 0);
225188 0 0 if( pNew==0 ){
225191 0 0 if( pPhrase==0 ) memset(pNew, 0, sizeof(Fts5ExprPhrase));
225197 0 0 if( rc==SQLITE_OK ){
225220 0 0 if( pNear ){
225222 0 0 for(i=0; inPhrase; i++){
225236 0 0 if( (pParse->nPhrase % 8)==0 ){
225240 0 0 if( apNew==0 ){
225269 0 0 if( rc==SQLITE_OK ){
225270 0 0 int flags = FTS5_TOKENIZE_QUERY | (bPrefix ? FTS5_TOKENIZE_PREFIX : 0);
225277 0 0 if( rc || (rc = sCtx.rc) ){
0 0 if( rc || (rc = sCtx.rc) ){
225283 0 0 if( pAppend==0 ){
225284 0 0 if( parseGrowPhraseArray(pParse) ){
225291 0 0 if( sCtx.pPhrase==0 ){
225295 0 0 }else if( sCtx.pPhrase->nTerm ){
225320 0 0 if( rc==SQLITE_OK ){
225324 0 0 if( rc==SQLITE_OK ){
225328 0 0 if( rc==SQLITE_OK ){
225332 0 0 if( rc==SQLITE_OK ){
225334 0 0 if( pColsetOrig ){
225339 0 0 if( pColset ){
225346 0 0 if( pOrig->nTerm ){
225348 0 0 for(i=0; rc==SQLITE_OK && inTerm; i++){
0 0 for(i=0; rc==SQLITE_OK && inTerm; i++){
225351 0 0 for(p=&pOrig->aTerm[i]; p && rc==SQLITE_OK; p=p->pSynonym){
0 0 for(p=&pOrig->aTerm[i]; p && rc==SQLITE_OK; p=p->pSynonym){
225357 0 0 if( rc==SQLITE_OK ){
225368 0 0 if( rc==SQLITE_OK && ALWAYS(sCtx.pPhrase) ){
0 0 if( rc==SQLITE_OK && ALWAYS(sCtx.pPhrase) ){
225378 0 0 if( pOrig->nTerm==1
225379 0 0 && pOrig->aTerm[0].pSynonym==0
225380 0 0 && pOrig->aTerm[0].bFirst==0
225405 0 0 if( pTok->n!=4 || memcmp("NEAR", pTok->p, 4) ){
0 0 if( pTok->n!=4 || memcmp("NEAR", pTok->p, 4) ){
225417 0 0 if( pNear ){
225420 0 0 if( p->n ){
225421 0 0 for(i=0; in; i++){
225423 0 0 if( c<'0' || c>'9' ){
0 0 if( c<'0' || c>'9' ){
225452 0 0 int nCol = p ? p->nCol : 0; /* Num. columns already in colset object */
225459 0 0 if( pNew==0 ){
225464 0 0 for(i=0; i
225465 0 0 if( aiCol[i]==iCol ) return pNew;
225466 0 0 if( aiCol[i]>iCol ) break;
225468 0 0 for(j=nCol; j>i; j--){
225495 0 0 if( pRet ){
225498 0 0 for(i=0; i
225499 0 0 if( iOld>=p->nCol || p->aiCol[iOld]!=i ){
0 0 if( iOld>=p->nCol || p->aiCol[iOld]!=i ){
225521 0 0 if( pParse->rc==SQLITE_OK ){
225524 0 0 for(iCol=0; iColnCol; iCol++){
225525 0 0 if( 0==sqlite3_stricmp(pConfig->azCol[iCol], z) ) break;
225527 0 0 if( iCol==pConfig->nCol ){
225535 0 0 if( pRet==0 ){
225553 0 0 if( pOrig ){
225556 0 0 if( pRet ){
225573 0 0 while( iInnCol && iMergenCol ){
0 0 while( iInnCol && iMergenCol ){
225575 0 0 if( iDiff==0 ){
225579 0 0 }else if( iDiff>0 ){
225600 0 0 if( pParse->rc==SQLITE_OK ){
225605 0 0 if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){
0 0 if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){
225607 0 0 if( pNear->pColset ){
225609 0 0 if( pNear->pColset->nCol==0 ){
225613 0 0 }else if( *ppFree ){
225622 0 0 for(i=0; inChild; i++){
225638 0 0 if( pParse->pConfig->eDetail==FTS5_DETAIL_NONE ){
225652 0 0 if( pNear->nPhrase==1 && pNear->apPhrase[0]->nTerm==1
0 0 if( pNear->nPhrase==1 && pNear->apPhrase[0]->nTerm==1
225653 0 0 && pNear->apPhrase[0]->aTerm[0].pSynonym==0
225654 0 0 && pNear->apPhrase[0]->aTerm[0].bFirst==0
225682 0 0 if( p->eType!=FTS5_NOT && pSub->eType==p->eType ){
0 0 if( p->eType!=FTS5_NOT && pSub->eType==p->eType ){
225717 0 0 if( pRet ){
225722 0 0 for(ii=0; ii
225726 0 0 if( pPhrase ){
225727 0 0 if( parseGrowPhraseArray(pParse) ){
225742 0 0 if( pParse->rc ){
225766 0 0 if( pParse->rc==SQLITE_OK ){
225773 0 0 if( eType==FTS5_STRING && pNear==0 ) return 0;
0 0 if( eType==FTS5_STRING && pNear==0 ) return 0;
225774 0 0 if( eType!=FTS5_STRING && pLeft==0 ) return pRight;
0 0 if( eType!=FTS5_STRING && pLeft==0 ) return pRight;
225775 0 0 if( eType!=FTS5_STRING && pRight==0 ) return pLeft;
0 0 if( eType!=FTS5_STRING && pRight==0 ) return pLeft;
225777 0 0 if( eType==FTS5_STRING
225778 0 0 && pParse->bPhraseToAnd
225779 0 0 && pNear->apPhrase[0]->nTerm>1
225783 0 0 if( eType==FTS5_NOT ){
225785 0 0 }else if( eType==FTS5_AND || eType==FTS5_OR ){
0 0 }else if( eType==FTS5_AND || eType==FTS5_OR ){
225787 0 0 if( pLeft->eType==eType ) nChild += pLeft->nChild-1;
225788 0 0 if( pRight->eType==eType ) nChild += pRight->nChild-1;
225794 0 0 if( pRet ){
225798 0 0 if( eType==FTS5_STRING ){
225800 0 0 for(iPhrase=0; iPhrasenPhrase; iPhrase++){
225802 0 0 if( pNear->apPhrase[iPhrase]->nTerm==0 ){
225808 0 0 if( pParse->pConfig->eDetail!=FTS5_DETAIL_FULL ){
225810 0 0 if( pNear->nPhrase!=1
225811 0 0 || pPhrase->nTerm>1
225812 0 0 || (pPhrase->nTerm>0 && pPhrase->aTerm[0].bFirst)
0 0 || (pPhrase->nTerm>0 && pPhrase->aTerm[0].bFirst)
225814 0 0 sqlite3Fts5ParseError(pParse,
225830 0 0 if( pRet==0 ){
225847 0 0 if( pParse->rc ){
225862 0 0 if( pLeft->eType==FTS5_AND ){
225872 0 0 if( pRight->eType==FTS5_EOF ){
225878 0 0 else if( pPrev->eType==FTS5_EOF ){
225881 0 0 if( pPrev==pLeft ){
226314 0 0 return (pExpr ? pExpr->nPhrase : 0);
226321 0 0 if( iPhrase<0 || iPhrase>=pExpr->nPhrase ) return 0;
0 0 if( iPhrase<0 || iPhrase>=pExpr->nPhrase ) return 0;
226333 0 0 if( pNode->bEof==0 && pNode->iRowid==pExpr->pRoot->iRowid ){
0 0 if( pNode->bEof==0 && pNode->iRowid==pExpr->pRoot->iRowid ){
226361 0 0 if( pRet ){
226364 0 0 for(i=0; inPhrase; i++){
226368 0 0 if( bLive &&
0 0 if( bLive &&
226369 0 0 (pBuf->n==0 || pNode->iRowid!=pExpr->pRoot->iRowid || pNode->bEof)
0 0 (pBuf->n==0 || pNode->iRowid!=pExpr->pRoot->iRowid || pNode->bEof)
226392 0 0 for(i=0; inCol; i++){
226393 0 0 if( pColset->aiCol[i]==iCol ) return 1;
226412 0 0 if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE;
226413 0 0 if( (tflags & FTS5_TOKEN_COLOCATED)==0 ) p->iOff++;
226414 0 0 for(i=0; inPhrase; i++){
226416 0 0 if( p->aPopulator[i].bOk==0 ) continue;
226417 0 0 for(pTerm=&pExpr->apExprPhrase[i]->aTerm[0]; pTerm; pTerm=pTerm->pSynonym){
226419 0 0 if( (nTerm==nToken || (nTermbPrefix))
0 0 if( (nTerm==nToken || (nTermbPrefix))
0 0 if( (nTerm==nToken || (nTermbPrefix))
226420 0 0 && memcmp(pTerm->zTerm, pToken, nTerm)==0
226425 0 0 if( rc ) return rc;
226446 0 0 for(i=0; inPhrase; i++){
226449 0 0 if( (pColset && 0==fts5ExprColsetTest(pColset, iCol))
0 0 if( (pColset && 0==fts5ExprColsetTest(pColset, iCol))
226450 0 0 || aPopulator[i].bMiss
226464 0 0 if( pNode->eType==FTS5_TERM || pNode->eType==FTS5_STRING ){
0 0 if( pNode->eType==FTS5_TERM || pNode->eType==FTS5_STRING ){
226468 0 0 for(i=0; inChild; i++){
226484 0 0 for(i=0; inChild; i++){
226485 0 0 if( fts5ExprCheckPoslists(pNode->apChild[i], iRowid)==0 ){
226496 0 0 for(i=0; inChild; i++){
226497 0 0 if( fts5ExprCheckPoslists(pNode->apChild[i], iRowid) ){
226506 0 0 if( 0==fts5ExprCheckPoslists(pNode->apChild[0], iRowid)
226507 0 0 || 0!=fts5ExprCheckPoslists(pNode->apChild[1], iRowid)
226538 0 0 if( pNode->bEof==0
226539 0 0 && pNode->iRowid==pExpr->pRoot->iRowid
226540 0 0 && pPhrase->poslist.n>0
226543 0 0 if( pTerm->pSynonym ){
226649 0 0 if( pNew==0 ){
226660 0 0 if( pNew->aSlot==0 ){
226675 0 0 if( pHash ){
226687 0 0 for(i=0; inSlot; i++){
226690 0 0 for(pSlot=pHash->aSlot[i]; pSlot; pSlot=pNext){
226702 0 0 for(i=n-1; i>=0; i--){
226711 0 0 for(i=n-1; i>=0; i--){
226728 0 0 if( !apNew ) return SQLITE_NOMEM;
226731 0 0 for(i=0; inSlot; i++){
226732 0 0 while( apOld[i] ){
226755 0 0 if( p->iSzPoslist ){
226756 0 0 u8 *pPtr = p2 ? (u8*)p2 : (u8*)p;
226758 0 0 if( pHash->eDetail==FTS5_DETAIL_NONE ){
226760 0 0 if( p->bDel ){
226762 0 0 if( p->bContent ){
226771 0 0 if( nPos<=127 ){
226782 0 0 if( p2==0 ){
226818 0 0 for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){
226820 0 0 if( zKey[0]==bByte
226821 0 0 && p->nKey==nToken
226822 0 0 && memcmp(&zKey[1], pToken, nToken)==0
226829 0 0 if( p==0 ){
226833 0 0 if( nByte<128 ) nByte = 128;
226836 0 0 if( (pHash->nEntry*2)>=pHash->nSlot ){
226838 0 0 if( rc!=SQLITE_OK ) return rc;
226844 0 0 if( !p ) return SQLITE_NOMEM;
226863 0 0 if( pHash->eDetail!=FTS5_DETAIL_NONE ){
226865 0 0 p->iCol = (pHash->eDetail==FTS5_DETAIL_FULL ? 0 : -1);
226880 0 0 if( (p->nAlloc - p->nData) < (9 + 4 + 1 + 3 + 5) ){
226885 0 0 if( pNew==0 ) return SQLITE_NOMEM;
226887 0 0 for(pp=&pHash->aSlot[iHash]; *pp!=p; pp=&(*pp)->pHashNext);
226899 0 0 if( iRowid!=p->iRowid ){
226906 0 0 if( pHash->eDetail!=FTS5_DETAIL_NONE ){
226908 0 0 p->iCol = (pHash->eDetail==FTS5_DETAIL_FULL ? 0 : -1);
226913 0 0 if( iCol>=0 ){
226914 0 0 if( pHash->eDetail==FTS5_DETAIL_NONE ){
226919 0 0 if( iCol!=p->iCol ){
226920 0 0 if( pHash->eDetail==FTS5_DETAIL_FULL ){
226932 0 0 if( bNew ){
226962 0 0 while( p1 || p2 ){
0 0 while( p1 || p2 ){
226963 0 0 if( p1==0 ){
226966 0 0 }else if( p2==0 ){
226973 0 0 while( zKey1[i]==zKey2[i] ) i++;
226975 0 0 if( ((u8)zKey1[i])>((u8)zKey2[i]) ){
227012 0 0 if( !ap ) return SQLITE_NOMEM;
227015 0 0 for(iSlot=0; iSlotnSlot; iSlot++){
227017 0 0 for(pIter=pHash->aSlot[iSlot]; pIter; pIter=pIter->pHashNext){
227018 0 0 if( pTerm==0
227019 0 0 || (pIter->nKey+1>=nTerm && 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm))
0 0 || (pIter->nKey+1>=nTerm && 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm))
227023 0 0 for(i=0; ap[i]; i++){
227033 0 0 for(i=0; i
227057 0 0 for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){
227060 0 0 if( nTerm==p->nKey+1 && memcmp(zKey, pTerm, nTerm)==0 ) break;
0 0 if( nTerm==p->nKey+1 && memcmp(zKey, pTerm, nTerm)==0 ) break;
227063 0 0 if( p ){
227067 0 0 if( pRet ){
227107 0 0 if( (p = pHash->pScan) ){
227727 0 0 res = fts5Memcmp(pLeft->p, pRight->p, nCmp);
227728 0 0 return (res==0 ? (pLeft->n - pRight->n) : res);
227741 0 0 if( p->pReader ){
227756 0 0 if( p->rc==SQLITE_OK ){
227759 0 0 if( p->pReader ){
227768 0 0 if( rc!=SQLITE_OK ){
227771 0 0 if( rc==SQLITE_ABORT ) rc = SQLITE_OK;
227776 0 0 if( p->pReader==0 && rc==SQLITE_OK ){
0 0 if( p->pReader==0 && rc==SQLITE_OK ){
227788 0 0 if( rc==SQLITE_ERROR ) rc = FTS5_CORRUPT;
227790 0 0 if( rc==SQLITE_OK ){
227795 0 0 if( pRet ){
227802 0 0 if( rc==SQLITE_OK ){
227805 0 0 if( rc!=SQLITE_OK ){
227834 0 0 if( pRet ){
227835 0 0 if( pRet->nn<4 || pRet->szLeaf>pRet->nn ){
0 0 if( pRet->nn<4 || pRet->szLeaf>pRet->nn ){
227849 0 0 if( p->rc==SQLITE_OK ){
227850 0 0 if( zSql ){
227867 0 0 if( p->rc!=SQLITE_OK ) return;
227869 0 0 if( p->pWriter==0 ){
227875 0 0 if( p->rc ) return;
227891 0 0 if( p->rc!=SQLITE_OK ) return;
227893 0 0 if( p->pDeleter==0 ){
227899 0 0 if( fts5IndexPrepareStmt(p, &p->pDeleter, zSql) ) return;
227915 0 0 if( p->pIdxDeleter==0 ){
227922 0 0 if( p->rc==SQLITE_OK ){
227934 0 0 if( pStruct && 0>=(--pStruct->nRef) ){
0 0 if( pStruct && 0>=(--pStruct->nRef) ){
227937 0 0 for(i=0; inLevel; i++){
227953 0 0 if( p ){
227958 0 0 if( p->pStruct!=(Fts5Structure*)pStruct ){
227972 0 0 if( *pRc==SQLITE_OK && p->nRef>1 ){
0 0 if( *pRc==SQLITE_OK && p->nRef>1 ){
227976 0 0 if( pNew ){
227979 0 0 for(i=0; inLevel; i++) pNew->aLevel[i].aSeg = 0;
227980 0 0 for(i=0; inLevel; i++){
227984 0 0 if( pLvl->aSeg==0 ){
227985 0 0 for(i=0; inLevel; i++){
228027 0 0 if( piCookie ) *piCookie = sqlite3Fts5Get32(pData);
228034 0 0 if( nLevel>FTS5_MAX_SEGMENT || nLevel<0
0 0 if( nLevel>FTS5_MAX_SEGMENT || nLevel<0
228035 0 0 || nSegment>FTS5_MAX_SEGMENT || nSegment<0
0 0 || nSegment>FTS5_MAX_SEGMENT || nSegment<0
228045 0 0 if( pRet ){
228051 0 0 for(iLvl=0; rc==SQLITE_OK && iLvl
0 0 for(iLvl=0; rc==SQLITE_OK && iLvl
228056 0 0 if( i>=nData ){
228061 0 0 if( nTotalnMerge ) rc = FTS5_CORRUPT;
228068 0 0 if( rc==SQLITE_OK ){
228070 0 0 for(iSeg=0; iSeg
228072 0 0 if( i>=nData ){
228079 0 0 if( pSeg->pgnoLastpgnoFirst ){
228084 0 0 if( iLvl>0 && pLvl[-1].nMerge && nTotal==0 ) rc = FTS5_CORRUPT;
0 0 if( iLvl>0 && pLvl[-1].nMerge && nTotal==0 ) rc = FTS5_CORRUPT;
0 0 if( iLvl>0 && pLvl[-1].nMerge && nTotal==0 ) rc = FTS5_CORRUPT;
228085 0 0 if( iLvl==nLevel-1 && pLvl->nMerge ) rc = FTS5_CORRUPT;
0 0 if( iLvl==nLevel-1 && pLvl->nMerge ) rc = FTS5_CORRUPT;
228088 0 0 if( nSegment!=0 && rc==SQLITE_OK ) rc = FTS5_CORRUPT;
0 0 if( nSegment!=0 && rc==SQLITE_OK ) rc = FTS5_CORRUPT;
228090 0 0 if( rc!=SQLITE_OK ){
228106 0 0 if( *pRc==SQLITE_OK ){
228115 0 0 if( pStruct ){
228136 0 0 if( *pRc==SQLITE_OK ){
228143 0 0 if( aNew ){
228144 0 0 if( bInsert==0 ){
228165 0 0 if( p->rc==SQLITE_OK ){
228169 0 0 if( p->rc==SQLITE_OK && (pConfig->pgsz==0 || pConfig->iCookie!=iCookie) ){
0 0 if( p->rc==SQLITE_OK && (pConfig->pgsz==0 || pConfig->iCookie!=iCookie) ){
0 0 if( p->rc==SQLITE_OK && (pConfig->pgsz==0 || pConfig->iCookie!=iCookie) ){
228173 0 0 if( p->rc!=SQLITE_OK ){
228185 0 0 if( p->rc==SQLITE_OK ){
228186 0 0 if( p->pDataVersion==0 ){
228190 0 0 if( p->rc ) return 0;
228193 0 0 if( SQLITE_ROW==sqlite3_step(p->pDataVersion) ){
228215 0 0 if( p->pStruct==0 ){
228217 0 0 if( p->rc==SQLITE_OK ){
228245 0 0 if( p->rc!=SQLITE_OK ) return 0;
228253 0 0 if( p->pStruct ){
228296 0 0 if( p->rc==SQLITE_OK ){
228306 0 0 if( iCookie<0 ) iCookie = 0;
228308 0 0 if( 0==sqlite3Fts5BufferSize(&p->rc, &buf, 4+9+9+9) ){
228316 0 0 for(iLvl=0; iLvlnLevel; iLvl++){
228323 0 0 for(iSeg=0; iSegnSeg; iSeg++){
228368 0 0 if( pOut->nMerge==0 ){
228369 0 0 for(il=iPromote+1; ilnLevel; il++){
228371 0 0 if( pLvl->nMerge ) return;
228372 0 0 for(is=pLvl->nSeg-1; is>=0; is--){
228374 0 0 if( sz>szPromote ) return;
228376 0 0 if( p->rc ) return;
228407 0 0 if( p->rc==SQLITE_OK ){
228415 0 0 if( nSeg==0 ) return;
228420 0 0 for(iTst=iLvl-1; iTst>=0 && pStruct->aLevel[iTst].nSeg==0; iTst--);
0 0 for(iTst=iLvl-1; iTst>=0 && pStruct->aLevel[iTst].nSeg==0; iTst--);
228421 0 0 if( iTst>=0 ){
228426 0 0 for(i=0; inSeg; i++){
228428 0 0 if( sz>szMax ) szMax = sz;
228430 0 0 if( szMax>=szSeg ){
228440 0 0 if( iPromote<0 ){
228456 0 0 if( pLvl->iOff==0 ){
228464 0 0 for(iOff=pLvl->iOff; iOffnn; iOff++){
228465 0 0 if( pData->p[iOff] ) break;
228468 0 0 if( iOffnn ){
228489 0 0 if( fts5DlidxLvlNext(pLvl) ){
228490 0 0 if( (iLvl+1) < pIter->nLvl ){
228492 0 0 if( pLvl[1].bEof==0 ){
228498 0 0 if( pLvl->pData ) fts5DlidxLvlNext(pLvl);
228522 0 0 for(i=0; inLvl; i++){
228530 0 0 return p->rc!=SQLITE_OK || pIter->aLvl[0].bEof;
0 0 return p->rc!=SQLITE_OK || pIter->aLvl[0].bEof;
228537 0 0 for(i=pIter->nLvl-1; p->rc==SQLITE_OK && i>=0; i--){
0 0 for(i=pIter->nLvl-1; p->rc==SQLITE_OK && i>=0; i--){
228539 0 0 while( fts5DlidxLvlNext(pLvl)==0 );
228542 0 0 if( i>0 ){
228560 0 0 if( iOff<=pLvl->iFirstOff ){
228573 0 0 iLimit = (iOff>9 ? iOff-9 : 0);
228574 0 0 for(iOff--; iOff>iLimit; iOff--){
228575 0 0 if( (a[iOff-1] & 0x80)==0 ) break;
228583 0 0 for(ii=iOff-1; ii>=pLvl->iFirstOff && a[ii]==0x00; ii--){
0 0 for(ii=iOff-1; ii>=pLvl->iFirstOff && a[ii]==0x00; ii--){
228586 0 0 if( ii>=pLvl->iFirstOff && (a[ii] & 0x80) ){
0 0 if( ii>=pLvl->iFirstOff && (a[ii] & 0x80) ){
228591 0 0 if( (ii-8)>=pLvl->iFirstOff ){
228593 0 0 for(j=1; j<=8 && (a[ii-j] & 0x80); j++);
0 0 for(j=1; j<=8 && (a[ii-j] & 0x80); j++);
228596 0 0 if( bZero==0 ) nZero--;
228609 0 0 if( fts5DlidxLvlPrev(pLvl) ){
228610 0 0 if( (iLvl+1) < pIter->nLvl ){
228612 0 0 if( pLvl[1].bEof==0 ){
228618 0 0 if( pLvl->pData ){
228619 0 0 while( fts5DlidxLvlNext(pLvl)==0 );
228636 0 0 if( pIter ){
228638 0 0 for(i=0; inLvl; i++){
228655 0 0 for(i=0; p->rc==SQLITE_OK && bDone==0; i++){
0 0 for(i=0; p->rc==SQLITE_OK && bDone==0; i++){
228660 0 0 if( pNew==0 ){
228668 0 0 if( pLvl->pData && (pLvl->pData->p[0] & 0x0001)==0 ){
0 0 if( pLvl->pData && (pLvl->pData->p[0] & 0x0001)==0 ){
228675 0 0 if( p->rc==SQLITE_OK ){
228677 0 0 if( bRev==0 ){
228684 0 0 if( p->rc!=SQLITE_OK ){
228710 0 0 if( pIter->pNextLeaf ){
228713 0 0 }else if( pIter->iLeafPgno<=pSeg->pgnoLast ){
228722 0 0 if( pLeaf ){
228724 0 0 if( fts5LeafIsTermless(pLeaf) ){
228743 0 0 fts5FastGetVarint32(p, n, nSz);
228762 0 0 if( p->rc==SQLITE_OK ){
228765 0 0 if( p->pConfig->eDetail==FTS5_DETAIL_NONE ){
228769 0 0 if( iOffpLeaf->p[iOff]==0 ){
0 0 if( iOffpLeaf->p[iOff]==0 ){
228772 0 0 if( iOffpLeaf->p[iOff]==0 ){
0 0 if( iOffpLeaf->p[iOff]==0 ){
228781 0 0 fts5FastGetVarint32(pIter->pLeaf->p, iOff, nSz);
228795 0 0 if( iOff>=pIter->pLeaf->szLeaf ){
228797 0 0 if( pIter->pLeaf==0 ){
228798 0 0 if( p->rc==SQLITE_OK ) p->rc = FTS5_CORRUPT;
228829 0 0 if( iOff+nNew>pIter->pLeaf->szLeaf || nKeep>pIter->term.n || nNew==0 ){
0 0 if( iOff+nNew>pIter->pLeaf->szLeaf || nKeep>pIter->term.n || nNew==0 ){
0 0 if( iOff+nNew>pIter->pLeaf->szLeaf || nKeep>pIter->term.n || nNew==0 ){
228841 0 0 if( pIter->iPgidxOff>=pIter->pLeaf->nn ){
228857 0 0 if( pIter->flags & FTS5_SEGITER_REVERSE ){
228859 0 0 }else if( p->pConfig->eDetail==FTS5_DETAIL_NONE ){
228879 0 0 if( pSeg->pgnoFirst==0 ){
228889 0 0 if( p->rc==SQLITE_OK ){
228897 0 0 if( p->rc==SQLITE_OK ){
228930 0 0 if( n>pIter->iEndofDoclist ){
228938 0 0 if( eDetail==FTS5_DETAIL_NONE ){
228940 0 0 if( i
0 0 if( i
228942 0 0 if( i
0 0 if( i
228950 0 0 if( i>=n ) break;
228955 0 0 if( iRowidOffset>=pIter->nRowidOffset ){
228958 0 0 if( aNew==0 ){
228982 0 0 while( p->rc==SQLITE_OK && pIter->iLeafPgno>pIter->iTermLeafPgno ){
0 0 while( p->rc==SQLITE_OK && pIter->iLeafPgno>pIter->iTermLeafPgno ){
228988 0 0 if( pNew ){
228992 0 0 if( pIter->iLeafPgno==pIter->iTermLeafPgno ){
228994 0 0 if( pIter->iTermLeafOffsetszLeaf ){
229001 0 0 if( iRowidOff ){
229002 0 0 if( iRowidOff>=pNew->szLeaf ){
229011 0 0 if( pIter->pLeaf ){
229021 0 0 if( pIter->pLeaf ){
229034 0 0 return (p->rc==SQLITE_OK && pSeg->pLeaf && pSeg->nPos==0);
0 0 return (p->rc==SQLITE_OK && pSeg->pLeaf && pSeg->nPos==0);
0 0 return (p->rc==SQLITE_OK && pSeg->pLeaf && pSeg->nPos==0);
229051 0 0 if( pIter->iRowidOffset>0 ){
229060 0 0 if( p->pConfig->eDetail!=FTS5_DETAIL_NONE ){
229091 0 0 if( pIter->pSeg && iOff>=pIter->pLeaf->szLeaf ){
0 0 if( pIter->pSeg && iOff>=pIter->pLeaf->szLeaf ){
229093 0 0 if( p->rc || pIter->pLeaf==0 ) return;
0 0 if( p->rc || pIter->pLeaf==0 ) return;
229098 0 0 if( iOffiEndofDoclist ){
229104 0 0 }else if( (pIter->flags & FTS5_SEGITER_ONETERM)==0 ){
229105 0 0 if( pIter->pSeg ){
229107 0 0 if( iOff!=fts5LeafFirstTermOff(pIter->pLeaf) ){
229118 0 0 if( pList==0 ) goto next_none_eof;
229127 0 0 if( pbNewTerm ) *pbNewTerm = 1;
229170 0 0 if( iOff
229173 0 0 if( iOff>=pIter->iEndofDoclist ){
229175 0 0 if( iOff!=fts5LeafFirstTermOff(pLeaf) ){
229186 0 0 }else if( pIter->pSeg==0 ){
229191 0 0 if( 0==(pIter->flags & FTS5_SEGITER_ONETERM) ){
229195 0 0 if( pList==0 ){
229211 0 0 while( iOff==0 ){
229214 0 0 if( pLeaf==0 ) break;
229216 0 0 if( (iOff = fts5LeafFirstRowidOff(pLeaf)) && iOffszLeaf ){
0 0 if( (iOff = fts5LeafFirstRowidOff(pLeaf)) && iOffszLeaf ){
229220 0 0 if( pLeaf->nn>pLeaf->szLeaf ){
229226 0 0 else if( pLeaf->nn>pLeaf->szLeaf ){
229235 0 0 if( iOff>pLeaf->szLeaf ){
229243 0 0 if( pIter->pLeaf ){
229244 0 0 if( bNewTerm ){
229245 0 0 if( pIter->flags & FTS5_SEGITER_ONETERM ){
229251 0 0 if( pbNewTerm ) *pbNewTerm = 1;
229259 0 0 fts5FastGetVarint32(pIter->pLeaf->p, pIter->iLeafOffset, nSz);
229284 0 0 if( pDlidx ){
229295 0 0 if( pIter->iTermLeafPgno==pIter->iLeafPgno ){
229300 0 0 fts5IndexSkipVarint(pLeaf->p, iPoslist);
0 0 fts5IndexSkipVarint(pLeaf->p, iPoslist);
229306 0 0 if( pIter->iEndofDoclist>=pLeaf->szLeaf ){
229312 0 0 for(pgno=pIter->iLeafPgno+1; !p->rc && pgno<=pSeg->pgnoLast; pgno++){
0 0 for(pgno=pIter->iLeafPgno+1; !p->rc && pgno<=pSeg->pgnoLast; pgno++){
229315 0 0 if( pNew ){
229319 0 0 if( iRowid ){
229324 0 0 if( bTermless==0 ) break;
229339 0 0 if( pLast ){
229345 0 0 if( iOff>pLast->szLeaf ){
229352 0 0 if( fts5LeafIsTermless(pLast) ){
229379 0 0 if( pIter->iTermLeafPgno==pIter->iLeafPgno
229380 0 0 && pIter->iEndofDoclistszLeaf
229424 0 0 if( iOff>n ){
229432 0 0 fts5FastGetVarint32(a, iOff, nNew);
229433 0 0 if( nKeep
229438 0 0 if( nKeep==nMatch ){
229442 0 0 for(i=0; i
229443 0 0 if( a[iOff+i]!=pTerm[nMatch+i] ) break;
229447 0 0 if( (u32)nTerm==nMatch ){
229448 0 0 if( i==nNew ){
229453 0 0 }else if( ipTerm[nMatch] ){
0 0 }else if( ipTerm[nMatch] ){
229458 0 0 if( iPgidx>=n ){
229467 0 0 if( iOff>=n ){
229473 0 0 fts5FastGetVarint32(a, iOff, nKeep);
229477 0 0 if( bGe==0 ){
229481 0 0 }else if( bEndOfPage ){
229484 0 0 if( pIter->pLeaf==0 ) return;
229486 0 0 if( fts5LeafIsTermless(pIter->pLeaf)==0 ){
229489 0 0 if( iOff<4 || (i64)iOff>=pIter->pLeaf->szLeaf ){
0 0 if( iOff<4 || (i64)iOff>=pIter->pLeaf->szLeaf ){
229504 0 0 if( (i64)iOff+nNew>n || nNew<1 ){
0 0 if( (i64)iOff+nNew>n || nNew<1 ){
229515 0 0 if( iPgidx>=n ){
229529 0 0 if( p->pIdxSelect==0 ){
229567 0 0 if( p->rc ) return;
229570 0 0 if( SQLITE_ROW==sqlite3_step(pIdxSelect) ){
229578 0 0 if( iPgpgnoFirst ){
229586 0 0 if( pIter->pLeaf ){
229590 0 0 if( p->rc==SQLITE_OK && bGe==0 ){
0 0 if( p->rc==SQLITE_OK && bGe==0 ){
229592 0 0 if( pIter->pLeaf ){
229593 0 0 if( flags & FTS5INDEX_QUERY_DESC ){
229596 0 0 if( bDlidx ){
229599 0 0 if( flags & FTS5INDEX_QUERY_DESC ){
229644 0 0 if( pTerm==0 || (flags & FTS5INDEX_QUERY_SCAN) ){
0 0 if( pTerm==0 || (flags & FTS5INDEX_QUERY_SCAN) ){
229649 0 0 n = (z ? (int)strlen((const char*)z) : 0);
229650 0 0 if( pList ){
229652 0 0 if( pLeaf ){
229660 0 0 if( pLeaf ){
229668 0 0 if( pLeaf ){
229675 0 0 if( flags & FTS5INDEX_QUERY_DESC ){
229804 0 0 if( iOut>=(pIter->nSeg/2) ){
229815 0 0 if( p1->pLeaf==0 ){ /* If p1 is at EOF */
229817 0 0 }else if( p2->pLeaf==0 ){ /* If p2 is at EOF */
229821 0 0 if( res==0 ){
229825 0 0 if( p1->iRowid==p2->iRowid ){
229829 0 0 res = ((p1->iRowid > p2->iRowid)==pIter->bRev) ? -1 : +1;
229832 0 0 if( res<0 ){
229854 0 0 if( iLeafPgno>pIter->pSeg->pgnoLast ){
229863 0 0 if( p->rc==SQLITE_OK && ALWAYS(pIter->pLeaf!=0) ){
0 0 if( p->rc==SQLITE_OK && ALWAYS(pIter->pLeaf!=0) ){
229869 0 0 if( iOff<4 || iOff>=n ){
0 0 if( iOff<4 || iOff>=n ){
229899 0 0 if( bRev==0 ){
229900 0 0 while( !fts5DlidxIterEof(p, pDlidx) && iMatch>fts5DlidxIterRowid(pDlidx) ){
0 0 while( !fts5DlidxIterEof(p, pDlidx) && iMatch>fts5DlidxIterRowid(pDlidx) ){
229905 0 0 if( iLeafPgno>pIter->iLeafPgno ){
229912 0 0 while( !fts5DlidxIterEof(p, pDlidx) && iMatch
0 0 while( !fts5DlidxIterEof(p, pDlidx) && iMatch
229919 0 0 if( iLeafPgnoiLeafPgno ){
229927 0 0 if( bMove && p->rc==SQLITE_OK ) pIter->xNext(p, pIter, 0);
0 0 if( bMove && p->rc==SQLITE_OK ) pIter->xNext(p, pIter, 0);
229928 0 0 if( pIter->pLeaf==0 ) break;
229929 0 0 if( bRev==0 && pIter->iRowid>=iMatch ) break;
0 0 if( bRev==0 && pIter->iRowid>=iMatch ) break;
229930 0 0 if( bRev!=0 && pIter->iRowid<=iMatch ) break;
0 0 if( bRev!=0 && pIter->iRowid<=iMatch ) break;
229932 0 0 }while( p->rc==SQLITE_OK );
229940 0 0 if( pIter ){
229942 0 0 for(i=0; inSeg; i++){
229957 0 0 for(i=(pIter->nSeg+iChanged)/2; i>=iMinset && p->rc==SQLITE_OK; i=i/2){
0 0 for(i=(pIter->nSeg+iChanged)/2; i>=iMinset && p->rc==SQLITE_OK; i=i/2){
229959 0 0 if( (iEq = fts5MultiIterDoCompare(pIter, i)) ){
229985 0 0 if( pNew->iRowid==pIter->iSwitchRowid
229986 0 0 || (pNew->iRowidiSwitchRowid)==pIter->bRev
229990 0 0 pIter->iSwitchRowid = pIter->bRev ? SMALLEST_INT64 : LARGEST_INT64;
229997 0 0 if( pRes->bTermEq ){
229998 0 0 if( pNew->iRowid==pOther->iRowid ){
230000 0 0 }else if( (pOther->iRowid>pNew->iRowid)==pIter->bRev ){
230003 0 0 }else if( (pOther->iRowid>pIter->iSwitchRowid)==pIter->bRev ){
230008 0 0 if( i==1 ) break;
230042 0 0 while( p->rc==SQLITE_OK ){
230047 0 0 if( bUseFrom && pSeg->pDlidx ){
0 0 if( bUseFrom && pSeg->pDlidx ){
230053 0 0 if( pSeg->pLeaf==0 || bNewTerm
0 0 if( pSeg->pLeaf==0 || bNewTerm
230054 0 0 || fts5MultiIterAdvanceRowid(pIter, iFirst, &pSeg)
230059 0 0 if( pSeg->pLeaf==0 ) return;
230064 0 0 if( pIter->bSkipEmpty==0 || pSeg->nPos ){
0 0 if( pIter->bSkipEmpty==0 || pSeg->nPos ){
230078 0 0 if( p->rc==SQLITE_OK ){
230087 0 0 if( pSeg->pLeaf==0 || bNewTerm
0 0 if( pSeg->pLeaf==0 || bNewTerm
230088 0 0 || fts5MultiIterAdvanceRowid(pIter, iFirst, &pSeg)
230096 0 0 }while( fts5MultiIterIsEmpty(p, pIter) );
230111 0 0 for(nSlot=2; nSlot
230117 0 0 if( pNew ){
230133 0 0 if( nChunk>0 ){
230158 0 0 for(i=0; inCol; i++){
230159 0 0 if( pColset->aiCol[i]==iCol ) return 1;
230172 0 0 if( nChunk>0 ){
230174 0 0 while( i
230179 0 0 if( fts5IndexColsetTest(pCtx->pColset, iVal) ){
230195 0 0 if( nChunk>0 ){
230201 0 0 if( pCtx->eState==2 ){
230203 0 0 fts5FastGetVarint32(pChunk, i, iCol);
230204 0 0 if( fts5IndexColsetTest(pCtx->pColset, iCol) ){
230213 0 0 while( i
0 0 while( i
230214 0 0 while( pChunk[i] & 0x80 ) i++;
230217 0 0 if( pCtx->eState ){
230220 0 0 if( i
230224 0 0 if( i>=nChunk ){
230227 0 0 fts5FastGetVarint32(pChunk, i, iCol);
230229 0 0 if( pCtx->eState ){
230235 0 0 }while( i
230255 0 0 if( (pSeg->flags & FTS5_SEGITER_REVERSE)==0 ){
230263 0 0 if( nRem<=0 ){
230265 0 0 }else if( pSeg->pSeg==0 ){
230271 0 0 if( pData==0 ) break;
230274 0 0 if( pgno==pgnoSave ){
230297 0 0 if( 0==fts5BufferGrow(&p->rc, pBuf, pSeg->nPos+FTS5_DATA_ZERO_PADDING) ){
0 0 if( 0==fts5BufferGrow(&p->rc, pBuf, pSeg->nPos+FTS5_DATA_ZERO_PADDING) ){
230301 0 0 if( pColset==0 ){
230304 0 0 if( p->pConfig->eDetail==FTS5_DETAIL_FULL ){
230340 0 0 if( *pRc==SQLITE_OK ){
230347 0 0 if( pColset->nCol>1 && sqlite3Fts5BufferSize(pRc, &pIter->poslist, nPos) ){
0 0 if( pColset->nCol>1 && sqlite3Fts5BufferSize(pRc, &pIter->poslist, nPos) ){
230352 0 0 while( pColset->aiCol[i]
230354 0 0 if( i==pColset->nCol ){
230363 0 0 while( p
0 0 while( p
230364 0 0 while( *p++ & 0x80 );
230367 0 0 if( pColset->aiCol[i]==iCurrent ){
230368 0 0 if( pColset->nCol==1 ){
230375 0 0 if( p>=pEnd ){
230382 0 0 if( iCurrent & 0x80 ){
230411 0 0 if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf ){
230462 0 0 if( pSeg->iLeafOffset+pSeg->nPos>pSeg->pLeaf->szLeaf ){
230476 0 0 while( a
230478 0 0 while( *aiCol
230480 0 0 if( aiCol==aiColEnd ) goto setoutputs_col_out;
230482 0 0 if( *aiCol==iPrev ){
230504 0 0 if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf ){
230524 0 0 if( *pRc==SQLITE_OK ){
230526 0 0 if( pConfig->eDetail==FTS5_DETAIL_NONE ){
230530 0 0 else if( pIter->pColset==0 ){
230534 0 0 else if( pIter->pColset->nCol==0 ){
230538 0 0 else if( pConfig->eDetail==FTS5_DETAIL_FULL ){
230544 0 0 if( pConfig->nCol<=100 ){
230585 0 0 if( p->rc==SQLITE_OK ){
230586 0 0 if( iLevel<0 ){
230595 0 0 if( pNew==0 ){
230602 0 0 if( (flags & FTS5INDEX_QUERY_NOOUTPUT)==0 ){
230607 0 0 if( p->rc==SQLITE_OK ){
230608 0 0 if( iLevel<0 ){
230610 0 0 if( p->pHash ){
230615 0 0 for(pLvl=&pStruct->aLevel[0]; pLvl
230616 0 0 for(iSeg=pLvl->nSeg-1; iSeg>=0; iSeg--){
230619 0 0 if( pTerm==0 ){
230628 0 0 for(iSeg=nSeg-1; iSeg>=0; iSeg--){
230639 0 0 if( p->rc==SQLITE_OK ){
230640 0 0 for(iIter=pNew->nSeg-1; iIter>0; iIter--){
230642 0 0 if( (iEq = fts5MultiIterDoCompare(pNew, iIter)) ){
230644 0 0 if( p->rc==SQLITE_OK ) pSeg->xNext(p, pSeg, 0);
230651 0 0 if( pNew->bSkipEmpty && fts5MultiIterIsEmpty(p, pNew) ){
0 0 if( pNew->bSkipEmpty && fts5MultiIterIsEmpty(p, pNew) ){
230653 0 0 }else if( pNew->base.bEof==0 ){
230680 0 0 if( pNew ){
230684 0 0 if( pData->szLeaf>0 ){
230689 0 0 if( bDesc ){
230717 0 0 return (p->rc || pIter->base.bEof);
0 0 return (p->rc || pIter->base.bEof);
230741 0 0 if( fts5MultiIterEof(p, pIter) ) break;
230743 0 0 if( pIter->bRev==0 && iRowid>=iMatch ) break;
0 0 if( pIter->bRev==0 && iRowid>=iMatch ) break;
230744 0 0 if( pIter->bRev!=0 && iRowid<=iMatch ) break;
0 0 if( pIter->bRev!=0 && iRowid<=iMatch ) break;
230770 0 0 if( p->rc==SQLITE_OK ){
230771 0 0 if( pStruct->nSegment>=FTS5_MAX_SEGMENT ){
230781 0 0 for(iLvl=0; iLvlnLevel; iLvl++){
230782 0 0 for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){
230784 0 0 if( iId<=FTS5_MAX_SEGMENT && iId>0 ){
0 0 if( iId<=FTS5_MAX_SEGMENT && iId>0 ){
230790 0 0 for(i=0; aUsed[i]==0xFFFFFFFF; i++);
230792 0 0 for(iSegid=0; mask & ((u32)1 << iSegid); iSegid++);
230826 0 0 if( p->pHash ){
230841 0 0 for(i=0; i
230842 0 0 if( pOld[i]!=pNew[i] ) break;
230854 0 0 for(i=0; inDlidx; i++){
230856 0 0 if( pDlidx->buf.n==0 ) break;
230857 0 0 if( bFlush ){
230878 0 0 if( p->rc==SQLITE_OK && nLvl>=pWriter->nDlidx ){
0 0 if( p->rc==SQLITE_OK && nLvl>=pWriter->nDlidx ){
230882 0 0 if( aDlidx==0 ){
230904 0 0 if( pWriter->aDlidx[0].buf.n>0 && pWriter->nEmpty>=FTS5_MIN_DLIDX_SIZE ){
0 0 if( pWriter->aDlidx[0].buf.n>0 && pWriter->nEmpty>=FTS5_MIN_DLIDX_SIZE ){
230927 0 0 if( pWriter->iBtPage==0 ) return;
230930 0 0 if( p->rc==SQLITE_OK ){
230931 0 0 const char *z = (pWriter->btterm.n>0?(const char*)pWriter->btterm.p:"");
230958 0 0 if( p->rc==SQLITE_OK ){
230974 0 0 if( pWriter->bFirstRowidInPage && pWriter->aDlidx[0].buf.n>0 ){
0 0 if( pWriter->bFirstRowidInPage && pWriter->aDlidx[0].buf.n>0 ){
231006 0 0 for(i=0; p->rc==SQLITE_OK && bDone==0; i++){
0 0 for(i=0; p->rc==SQLITE_OK && bDone==0; i++){
231010 0 0 if( pDlidx->buf.n>=p->pConfig->pgsz ){
231023 0 0 if( p->rc==SQLITE_OK && pDlidx[1].buf.n==0 ){
0 0 if( p->rc==SQLITE_OK && pDlidx[1].buf.n==0 ){
231042 0 0 if( pDlidx->bPrevValid ){
231045 0 0 i64 iPgno = (i==0 ? pWriter->writer.pgno : pDlidx[-1].pgno);
231069 0 0 if( pWriter->bFirstTermInPage ){
231119 0 0 if( (pPage->buf.n + pPgidx->n + nTerm + 2)>=p->pConfig->pgsz ){
231120 0 0 if( pPage->buf.n>4 ){
231122 0 0 if( p->rc!=SQLITE_OK ) return;
231124 0 0 fts5BufferGrow(&p->rc, &pPage->buf, nTerm+FTS5_DATA_PADDING);
231137 0 0 if( pWriter->bFirstTermInPage ){
231139 0 0 if( pPage->pgno!=1 ){
231154 0 0 if( pPage->term.n ){
231158 0 0 if( p->rc!=SQLITE_OK ) return;
231190 0 0 if( p->rc==SQLITE_OK ){
231193 0 0 if( (pPage->buf.n + pPage->pgidx.n)>=p->pConfig->pgsz ){
231200 0 0 if( pWriter->bFirstRowidInPage ){
231206 0 0 if( pWriter->bFirstRowidInDoclist || pWriter->bFirstRowidInPage ){
0 0 if( pWriter->bFirstRowidInDoclist || pWriter->bFirstRowidInPage ){
231229 0 0 while( p->rc==SQLITE_OK
231230 0 0 && (pPage->buf.n + pPage->pgidx.n + n)>=p->pConfig->pgsz
231234 0 0 while( nCopy
231243 0 0 if( n>0 ){
231259 0 0 if( p->rc==SQLITE_OK ){
231261 0 0 if( pLeaf->buf.n>4 ){
231265 0 0 if( pLeaf->pgno>1 ){
231274 0 0 for(i=0; inDlidx; i++){
231302 0 0 if( p->pIdxWriter==0 ){
231310 0 0 if( p->rc==SQLITE_OK ){
231331 0 0 for(i=0; inSeg && p->rc==SQLITE_OK; i++){
0 0 for(i=0; inSeg && p->rc==SQLITE_OK; i++){
231333 0 0 if( pSeg->pSeg==0 ){
231335 0 0 }else if( pSeg->pLeaf==0 ){
231350 0 0 if( pData ){
231351 0 0 if( iOff>pData->szLeaf ){
231359 0 0 fts5BufferGrow(&p->rc, &buf, pData->nn);
231364 0 0 if( p->rc==SQLITE_OK ){
231371 0 0 if( pSeg->iLeafPgno==pSeg->iTermLeafPgno
231372 0 0 && pSeg->iEndofDoclistszLeaf
231373 0 0 && pSeg->iPgidxOff<=pData->nn
231415 0 0 int nRem = pnRem ? *pnRem : 0; /* Output leaf pages left to write */
231430 0 0 if( pLvl->nMerge ){
231444 0 0 if( iLvl==pStruct->nLevel-1 ){
231449 0 0 if( p->rc ) return;
231465 0 0 bOldest = (pLvlOut->nSeg==1 && pStruct->nLevel==iLvl+2);
0 0 bOldest = (pLvlOut->nSeg==1 && pStruct->nLevel==iLvl+2);
231468 0 0 for(fts5MultiIterNew(p, pStruct, flags, 0, 0, 0, iLvl, nInput, &pIter);
231478 0 0 if( nTerm!=term.n || fts5Memcmp(pTerm, term.p, nTerm) ){
0 0 if( nTerm!=term.n || fts5Memcmp(pTerm, term.p, nTerm) ){
0 0 if( nTerm!=term.n || fts5Memcmp(pTerm, term.p, nTerm) ){
231479 0 0 if( pnRem && writer.nLeafWritten>nRem ){
0 0 if( pnRem && writer.nLeafWritten>nRem ){
231487 0 0 if( pSegIter->nPos==0 && (bOldest || pSegIter->bDel==0) ) continue;
0 0 if( pSegIter->nPos==0 && (bOldest || pSegIter->bDel==0) ) continue;
0 0 if( pSegIter->nPos==0 && (bOldest || pSegIter->bDel==0) ) continue;
231489 0 0 if( p->rc==SQLITE_OK && bTermWritten==0 ){
0 0 if( p->rc==SQLITE_OK && bTermWritten==0 ){
231499 0 0 if( eDetail==FTS5_DETAIL_NONE ){
231500 0 0 if( pSegIter->bDel ){
231502 0 0 if( pSegIter->nPos>0 ){
231519 0 0 if( fts5MultiIterEof(p, pIter) ){
231523 0 0 for(i=0; i
231528 0 0 if( pLvl->nSeg!=nInput ){
231535 0 0 if( pSeg->pgnoLast==0 ){
231547 0 0 if( pnRem ) *pnRem -= writer.nLeafWritten;
231564 0 0 while( nRem>0 && p->rc==SQLITE_OK ){
0 0 while( nRem>0 && p->rc==SQLITE_OK ){
231571 0 0 for(iLvl=0; iLvlnLevel; iLvl++){
231573 0 0 if( pLvl->nMerge ){
231574 0 0 if( pLvl->nMerge>nBest ){
231580 0 0 if( pLvl->nSeg>nBest ){
231593 0 0 if( nBestaLevel[iBestLvl].nMerge==0 ){
0 0 if( nBestaLevel[iBestLvl].nMerge==0 ){
231598 0 0 if( p->rc==SQLITE_OK && pStruct->aLevel[iBestLvl].nMerge==0 ){
0 0 if( p->rc==SQLITE_OK && pStruct->aLevel[iBestLvl].nMerge==0 ){
231619 0 0 if( p->rc==SQLITE_OK && p->pConfig->nAutomerge>0 && ALWAYS((*ppStruct)!=0) ){
0 0 if( p->rc==SQLITE_OK && p->pConfig->nAutomerge>0 && ALWAYS((*ppStruct)!=0) ){
0 0 if( p->rc==SQLITE_OK && p->pConfig->nAutomerge>0 && ALWAYS((*ppStruct)!=0) ){
231644 0 0 while( p->rc==SQLITE_OK && pStruct->aLevel[iLvl].nSeg>=nCrisis ){
0 0 while( p->rc==SQLITE_OK && pStruct->aLevel[iLvl].nSeg>=nCrisis ){
231674 0 0 if( ret
231677 0 0 if( (ret + i) > nMax ) break;
231703 0 0 if( iSegid ){
231723 0 0 if( p->rc==SQLITE_OK ){
231726 0 0 while( p->rc==SQLITE_OK && 0==sqlite3Fts5HashScanEof(pHash) ){
0 0 while( p->rc==SQLITE_OK && 0==sqlite3Fts5HashScanEof(pHash) ){
231734 0 0 if( p->rc!=SQLITE_OK ) break;
231737 0 0 if( pgsz>=(pBuf->n + pPgidx->n + nDoclist + 1) ){
231748 0 0 while( p->rc==SQLITE_OK && iOff
0 0 while( p->rc==SQLITE_OK && iOff
231752 0 0 if( writer.bFirstRowidInPage ){
231757 0 0 if( p->rc!=SQLITE_OK ) break;
231763 0 0 if( eDetail==FTS5_DETAIL_NONE ){
231764 0 0 if( iOff
0 0 if( iOff
231767 0 0 if( iOff
0 0 if( iOff
231772 0 0 if( (pBuf->n + pPgidx->n)>=pgsz ){
231780 0 0 if( (pBuf->n + pPgidx->n + nCopy) <= pgsz ){
231790 0 0 while( p->rc==SQLITE_OK ){
231793 0 0 if( (nCopy - iPos)<=nSpace ){
231801 0 0 if( (pBuf->n + pPgidx->n)>=pgsz ){
231804 0 0 if( iPos>=nCopy ) break;
231815 0 0 if( p->rc==SQLITE_OK ) sqlite3Fts5HashScanNext(pHash);
231822 0 0 if( pStruct->nLevel==0 ){
231826 0 0 if( p->rc==SQLITE_OK ){
231847 0 0 if( p->nPendingData ){
231873 0 0 if( nSeg<2 ) return 0;
231874 0 0 for(i=0; inLevel; i++){
231876 0 0 if( nThis==nSeg || (nThis==nSeg-1 && pStruct->aLevel[i].nMerge==nThis) ){
0 0 if( nThis==nSeg || (nThis==nSeg-1 && pStruct->aLevel[i].nMerge==nThis) ){
0 0 if( nThis==nSeg || (nThis==nSeg-1 && pStruct->aLevel[i].nMerge==nThis) ){
231886 0 0 if( pNew ){
231894 0 0 if( pLvl->aSeg ){
231900 0 0 for(iLvl=pStruct->nLevel-1; iLvl>=0; iLvl--){
231901 0 0 for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){
231925 0 0 if( pStruct ){
231931 0 0 if( pNew ){
231933 0 0 for(iLvl=0; pNew->aLevel[iLvl].nSeg==0; iLvl++){}
231934 0 0 while( p->rc==SQLITE_OK && pNew->aLevel[iLvl].nSeg>0 ){
0 0 while( p->rc==SQLITE_OK && pNew->aLevel[iLvl].nSeg>0 ){
231952 0 0 if( pStruct ){
231955 0 0 if( nMerge<0 ){
231962 0 0 if( pStruct && pStruct->nLevel ){
0 0 if( pStruct && pStruct->nLevel ){
231963 0 0 if( fts5IndexMerge(p, &pStruct, nMerge, nMin) ){
231991 0 0 if( p->rc==SQLITE_OK && 0==fts5BufferGrow(&p->rc, pBuf, nByte) ){
0 0 if( p->rc==SQLITE_OK && 0==fts5BufferGrow(&p->rc, pBuf, nByte) ){
0 0 if( p->rc==SQLITE_OK && 0==fts5BufferGrow(&p->rc, pBuf, nByte) ){
232004 0 0 if( p>=pIter->aEof ){
232013 0 0 if( p[0] & 0x80 ){
232023 0 0 if( &pIter->aPoslist[pIter->nPoslist]>pIter->aEof ){
232034 0 0 if( pBuf->n>0 ){
232076 0 0 if( i>=pBuf->n ){
232107 0 0 if( p->rc ) return;
232111 0 0 while( i1>=0 || i2>=0 ){
0 0 while( i1>=0 || i2>=0 ){
232112 0 0 if( i1>=0 && (i2<0 || iRowid1
0 0 if( i1>=0 && (i2<0 || iRowid1
0 0 if( i1>=0 && (i2<0 || iRowid1
232121 0 0 if( i1>=0 && iRowid1==iRowid2 ){
0 0 if( i1>=0 && iRowid1==iRowid2 ){
232145 0 0 if( p->iter.aPoslist ){
232147 0 0 while( *pp && p->iter.iRowid>(*pp)->iter.iRowid ){
0 0 while( *pp && p->iter.iRowid>(*pp)->iter.iRowid ){
232159 0 0 if( p->iPos>=0 ){
232161 0 0 while( *pp && p->iPos>(*pp)->iPos ){
0 0 while( *pp && p->iPos>(*pp)->iPos ){
232198 0 0 for(i=0; i
232203 0 0 if( nOut==0 ) return;
232218 0 0 if( sqlite3Fts5BufferSize(&p->rc, &out, nOut) ) return;
232220 0 0 while( pHead ){
232223 0 0 if( pHead->pNext && iLastRowid==pHead->pNext->iter.iRowid ){
0 0 if( pHead->pNext && iLastRowid==pHead->pNext->iter.iRowid ){
232233 0 0 while( pSave && pSave->iter.iRowid==iLastRowid ){
0 0 while( pSave && pSave->iter.iRowid==iLastRowid ){
232245 0 0 if( pHead==0 || pHead->pNext==0 ){
0 0 if( pHead==0 || pHead->pNext==0 ){
232253 0 0 if( sqlite3Fts5BufferSize(&p->rc, &tmp, nTmp+nMerge*10) ){
232264 0 0 while( pHead->pNext ){
232266 0 0 if( pThis->iPos!=iPrev ){
232274 0 0 if( pHead->iPos!=iPrev ){
232282 0 0 if( tmp.n+nTail>nTmp-FTS5_DATA_ZERO_PADDING ){
232283 0 0 if( p->rc==SQLITE_OK ) p->rc = FTS5_CORRUPT;
232288 0 0 if( nTail>0 ){
232293 0 0 for(i=0; i
232295 0 0 if( pX->iter.aPoslist && pX->iter.iRowid==iLastRowid ){
0 0 if( pX->iter.aPoslist && pX->iter.iRowid==iLastRowid ){
232334 0 0 if( p->pConfig->eDetail==FTS5_DETAIL_NONE ){
232347 0 0 if( aBuf && pStruct ){
0 0 if( aBuf && pStruct ){
232359 0 0 if( iIdx!=0 ){
232365 0 0 for(;
232371 0 0 if( p1->base.nData ){
232382 0 0 for( /* no-op */ ;
232392 0 0 if( bNewTerm ){
232393 0 0 if( nTerm
0 0 if( nTerm
232396 0 0 if( p1->base.nData==0 ) continue;
232398 0 0 if( p1->base.iRowid<=iLastRowid && doclist.n>0 ){
0 0 if( p1->base.iRowid<=iLastRowid && doclist.n>0 ){
232399 0 0 for(i=0; p->rc==SQLITE_OK && doclist.n; i++){
0 0 for(i=0; p->rc==SQLITE_OK && doclist.n; i++){
232403 0 0 for(iStore=i1; iStore
232404 0 0 if( aBuf[iStore].n==0 ){
232410 0 0 if( iStore==i1+nMerge ){
232412 0 0 for(iStore=i1; iStore
232425 0 0 for(i=0; i
232427 0 0 if( p->rc==SQLITE_OK ){
232430 0 0 for(iFree=i; iFree
232437 0 0 if( pData ){
232440 0 0 if( doclist.n ) memcpy(pData->p, doclist.p, doclist.n);
232459 0 0 if( p->pHash==0 ){
232464 0 0 if( iRowidiWriteRowid
232465 0 0 || (iRowid==p->iWriteRowid && p->bDelete==0)
0 0 || (iRowid==p->iWriteRowid && p->bDelete==0)
232466 0 0 || (p->nPendingData > p->pConfig->nHashSize)
232532 0 0 if( rc==SQLITE_OK ){
232536 0 0 if( p->zDataTbl && bCreate ){
0 0 if( p->zDataTbl && bCreate ){
232540 0 0 if( rc==SQLITE_OK ){
232546 0 0 if( rc==SQLITE_OK ){
232553 0 0 if( rc ){
232565 0 0 if( p ){
232593 0 0 for(i=0; i
232594 0 0 if( n>=nByte ) return 0; /* Input contains fewer than nChar chars */
232595 0 0 if( (unsigned char)p[n++]>=0xc0 ){
232596 0 0 if( n>=nByte ) return 0;
232597 0 0 while( (p[n] & 0xc0)==0x80 ){
232599 0 0 if( n>=nByte ){
232600 0 0 if( i+1==nChar ) break;
232616 0 0 while( i
232617 0 0 if( (unsigned char)pIn[i++]>=0xc0 ){
232618 0 0 while( i
0 0 while( i
232653 0 0 for(i=0; inPrefix && rc==SQLITE_OK; i++){
0 0 for(i=0; inPrefix && rc==SQLITE_OK; i++){
232656 0 0 if( nByte ){
232685 0 0 if( sqlite3Fts5BufferSize(&p->rc, &buf, nToken+1)==0 ){
232688 0 0 if( nToken>0 ) memcpy(&buf.p[1], pToken, nToken);
232706 0 0 if( flags & FTS5INDEX_QUERY_PREFIX ){
232708 0 0 for(iIdx=1; iIdx<=pConfig->nPrefix; iIdx++){
232710 0 0 if( nIdxChar==nChar ) break;
232711 0 0 if( nIdxChar==nChar+1 ) iPrefixIdx = iIdx;
232715 0 0 if( iIdx<=pConfig->nPrefix ){
232719 0 0 if( pStruct ){
232729 0 0 if( pRet==0 ){
232734 0 0 if( p->rc==SQLITE_OK ){
232736 0 0 if( pSeg->pLeaf ) pRet->xSetOutputs(pRet, pSeg);
232741 0 0 if( p->rc ){
232776 0 0 if( p->rc==SQLITE_OK ){
232778 0 0 if( pSeg->pLeaf && pSeg->term.p[0]!=FTS5_MAIN_PREFIX ){
0 0 if( pSeg->pLeaf && pSeg->term.p[0]!=FTS5_MAIN_PREFIX ){
232807 0 0 return (z ? &z[1] : 0);
232814 0 0 if( pIndexIter ){
232835 0 0 if( p->rc==SQLITE_OK && pData->nn ){
0 0 if( p->rc==SQLITE_OK && pData->nn ){
232839 0 0 for(iCol=0; inn && iCol
0 0 for(iCol=0; inn && iCol
232885 0 0 if( rc==SQLITE_OK ){
232922 0 0 if( iIdx>=0 ) ret += (ret<<3) + (FTS5_MAIN_PREFIX + iIdx);
232923 0 0 for(i=0; i
233139 0 0 for(i=iFirst; p->rc==SQLITE_OK && i<=iLast; i++){
0 0 for(i=iFirst; p->rc==SQLITE_OK && i<=iLast; i++){
233141 0 0 if( pLeaf ){
233142 0 0 if( !fts5LeafIsTermless(pLeaf) ) p->rc = FTS5_CORRUPT;
233143 0 0 if( i>=iNoRowid && 0!=fts5LeafFirstRowidOff(pLeaf) ) p->rc = FTS5_CORRUPT;
0 0 if( i>=iNoRowid && 0!=fts5LeafFirstRowidOff(pLeaf) ) p->rc = FTS5_CORRUPT;
233157 0 0 while( iinn && p->rc==SQLITE_OK ){
0 0 while( iinn && p->rc==SQLITE_OK ){
233166 0 0 if( iOff>=pLeaf->szLeaf ){
233168 0 0 }else if( iTermOff==nIncr ){
233171 0 0 if( (iOff+nByte)>pLeaf->szLeaf ){
233180 0 0 if( nKeep>buf1.n || (iOff+nByte)>pLeaf->szLeaf ){
0 0 if( nKeep>buf1.n || (iOff+nByte)>pLeaf->szLeaf ){
233187 0 0 if( p->rc==SQLITE_OK ){
233189 0 0 if( res<=0 ) p->rc = FTS5_CORRUPT;
233209 0 0 if( pSeg->pgnoFirst==0 ) return;
233218 0 0 while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){
0 0 while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){
233229 0 0 if( iIdxLeafpgnoFirst ) continue;
233232 0 0 if( pLeaf==0 ) break;
233238 0 0 if( pLeaf->nn<=pLeaf->szLeaf ){
233248 0 0 if( iRowidOff>=iOff || iOff>=pLeaf->szLeaf ){
0 0 if( iRowidOff>=iOff || iOff>=pLeaf->szLeaf ){
233252 0 0 res = fts5Memcmp(&pLeaf->p[iOff], zIdxTerm, MIN(nTerm, nIdxTerm));
233253 0 0 if( res==0 ) res = nTerm - nIdxTerm;
233254 0 0 if( res<0 ) p->rc = FTS5_CORRUPT;
233260 0 0 if( p->rc ) break;
233267 0 0 if( p->rc ) break;
233270 0 0 if( bIdxDlidx ){
233277 0 0 for(pDlidx=fts5DlidxIterInit(p, 0, iSegid, iIdxLeaf);
233283 0 0 for(iPg=iPrevLeaf+1; iPg
233286 0 0 if( pLeaf ){
233287 0 0 if( fts5LeafFirstRowidOff(pLeaf)!=0 ) p->rc = FTS5_CORRUPT;
233297 0 0 if( pLeaf ){
233301 0 0 if( iRowidOff>=pLeaf->szLeaf ){
233305 0 0 if( iRowid!=fts5DlidxIterRowid(pDlidx) ) p->rc = FTS5_CORRUPT;
233323 0 0 if( p->rc==SQLITE_OK ) p->rc = rc2;
233361 0 0 if( pStruct==0 ){
233367 0 0 for(iLvl=0; iLvlnLevel; iLvl++){
233368 0 0 for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){
233387 0 0 for(fts5MultiIterNew(p, pStruct, flags, 0, 0, 0, -1, 0, &pIter);
233400 0 0 if( eDetail==FTS5_DETAIL_NONE ){
233401 0 0 if( 0==fts5MultiIterIsEmpty(p, pIter) ){
233408 0 0 while( 0==sqlite3Fts5PoslistNext64(poslist.p, poslist.n, &iOff, &iPos) ){
233418 0 0 if( p->rc==SQLITE_OK && bUseCksum && cksum!=cksum2 ) p->rc = FTS5_CORRUPT;
0 0 if( p->rc==SQLITE_OK && bUseCksum && cksum!=cksum2 ) p->rc = FTS5_CORRUPT;
0 0 if( p->rc==SQLITE_OK && bUseCksum && cksum!=cksum2 ) p->rc = FTS5_CORRUPT;
233935 0 0 if( fts5IndexDataVersion(p)!=p->iStructVersion ){
234257 0 0 if( pTab ){
234279 0 0 if( rc==SQLITE_OK ){
234313 0 0 if( rc==SQLITE_OK ){
234317 0 0 if( rc==SQLITE_OK ){
234323 0 0 if( rc==SQLITE_OK ){
234328 0 0 if( rc==SQLITE_OK ){
234335 0 0 if( rc==SQLITE_OK ){
234340 0 0 if( rc==SQLITE_OK ){
234348 0 0 if( rc!=SQLITE_OK ){
234415 0 0 if( pConfig->ePattern==FTS5_PATTERN_GLOB && p->op==FTS5_PATTERN_GLOB ){
0 0 if( pConfig->ePattern==FTS5_PATTERN_GLOB && p->op==FTS5_PATTERN_GLOB ){
234418 0 0 if( pConfig->ePattern==FTS5_PATTERN_LIKE
234419 0 0 && (p->op==FTS5_PATTERN_LIKE || p->op==FTS5_PATTERN_GLOB)
0 0 && (p->op==FTS5_PATTERN_LIKE || p->op==FTS5_PATTERN_GLOB)
234511 0 0 if( pConfig->bLock ){
234519 0 0 if( idxStr==0 ) return SQLITE_NOMEM;
234523 0 0 for(i=0; inConstraint; i++){
234526 0 0 if( p->op==SQLITE_INDEX_CONSTRAINT_MATCH
234527 0 0 || (p->op==SQLITE_INDEX_CONSTRAINT_EQ && iCol>=nCol)
0 0 || (p->op==SQLITE_INDEX_CONSTRAINT_EQ && iCol>=nCol)
234530 0 0 if( p->usable==0 || iCol<0 ){
0 0 if( p->usable==0 || iCol<0 ){
234538 0 0 if( iCol==nCol+1 ){
234539 0 0 if( bSeenRank ) continue;
234542 0 0 }else if( iCol>=0 ){
234552 0 0 }else if( p->usable ){
234553 0 0 if( iCol>=0 && iCol
0 0 if( iCol>=0 && iCol
0 0 if( iCol>=0 && iCol
234555 0 0 idxStr[iIdxStr++] = p->op==FTS5_PATTERN_LIKE ? 'L' : 'G';
234560 0 0 }else if( bSeenEq==0 && p->op==SQLITE_INDEX_CONSTRAINT_EQ && iCol<0 ){
0 0 }else if( bSeenEq==0 && p->op==SQLITE_INDEX_CONSTRAINT_EQ && iCol<0 ){
0 0 }else if( bSeenEq==0 && p->op==SQLITE_INDEX_CONSTRAINT_EQ && iCol<0 ){
234568 0 0 if( bSeenEq==0 ){
234569 0 0 for(i=0; inConstraint; i++){
234571 0 0 if( p->iColumn<0 && p->usable ){
0 0 if( p->iColumn<0 && p->usable ){
234573 0 0 if( op==SQLITE_INDEX_CONSTRAINT_LT || op==SQLITE_INDEX_CONSTRAINT_LE ){
0 0 if( op==SQLITE_INDEX_CONSTRAINT_LT || op==SQLITE_INDEX_CONSTRAINT_LE ){
234574 0 0 if( bSeenLt ) continue;
234579 0 0 if( op==SQLITE_INDEX_CONSTRAINT_GT || op==SQLITE_INDEX_CONSTRAINT_GE ){
0 0 if( op==SQLITE_INDEX_CONSTRAINT_GT || op==SQLITE_INDEX_CONSTRAINT_GE ){
234580 0 0 if( bSeenGt ) continue;
234591 0 0 if( pInfo->nOrderBy==1 ){
234593 0 0 if( iSort==(pConfig->nCol+1) && bSeenMatch ){
0 0 if( iSort==(pConfig->nCol+1) && bSeenMatch ){
234595 0 0 }else if( iSort==-1 ){
234598 0 0 if( BitFlagTest(idxFlags, FTS5_BI_ORDER_RANK|FTS5_BI_ORDER_ROWID) ){
234600 0 0 if( pInfo->aOrderBy[0].desc ){
234607 0 0 if( bSeenEq ){
234608 0 0 pInfo->estimatedCost = bSeenMatch ? 100.0 : 10.0;
234609 0 0 if( bSeenMatch==0 ) fts5SetUniqueFlag(pInfo);
234610 0 0 }else if( bSeenLt && bSeenGt ){
0 0 }else if( bSeenLt && bSeenGt ){
234611 0 0 pInfo->estimatedCost = bSeenMatch ? 500.0 : 250000.0;
234612 0 0 }else if( bSeenLt || bSeenGt ){
0 0 }else if( bSeenLt || bSeenGt ){
234613 0 0 pInfo->estimatedCost = bSeenMatch ? 750.0 : 750000.0;
234615 0 0 pInfo->estimatedCost = bSeenMatch ? 1000.0 : 1000000.0;
234624 0 0 for(pCsr=pTab->pGlobal->pCsr; pCsr; pCsr=pCsr->pNext){
234625 0 0 if( pCsr->base.pVtab==(sqlite3_vtab*)pTab ) return SQLITE_OK;
234641 0 0 if( rc==SQLITE_OK ){
234644 0 0 if( pCsr ){
234660 0 0 if( pCsr->ePlan==FTS5_PLAN_SCAN ){
234687 0 0 if( pCsr->pStmt ){
234691 0 0 if( pCsr->pSorter ){
234697 0 0 if( pCsr->ePlan!=FTS5_PLAN_SOURCE ){
234701 0 0 for(pData=pCsr->pAuxdata; pData; pData=pNext){
234703 0 0 if( pData->xDelete ) pData->xDelete(pData->pPtr);
234710 0 0 if( CsrFlagTest(pCsr, FTS5CSR_FREE_ZRANK) ){
234725 0 0 if( pCursor ){
234732 0 0 for(pp=&pTab->pGlobal->pCsr; (*pp)!=pCsr; pp=&(*pp)->pNext);
234745 0 0 if( rc==SQLITE_DONE ){
234748 0 0 }else if( rc==SQLITE_ROW ){
234761 0 0 if( nBlob>0 ){
234762 0 0 for(i=0; i<(pSorter->nIdx-1); i++){
234785 0 0 for(pCsr=pTab->pGlobal->pCsr; pCsr; pCsr=pCsr->pNext){
234786 0 0 if( pCsr->ePlan==FTS5_PLAN_MATCH
234787 0 0 && pCsr->base.pVtab==(sqlite3_vtab*)pTab
234809 0 0 if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_RESEEK) ){
234815 0 0 if( rc==SQLITE_OK && iRowid!=sqlite3Fts5ExprRowid(pCsr->pExpr) ){
0 0 if( rc==SQLITE_OK && iRowid!=sqlite3Fts5ExprRowid(pCsr->pExpr) ){
234821 0 0 if( sqlite3Fts5ExprEof(pCsr->pExpr) ){
234847 0 0 if( pCsr->ePlan<3 ){
234849 0 0 if( (rc = fts5CursorReseek(pCsr, &bSkip)) || bSkip ) return rc;
0 0 if( (rc = fts5CursorReseek(pCsr, &bSkip)) || bSkip ) return rc;
234871 0 0 if( rc!=SQLITE_ROW ){
234874 0 0 if( rc!=SQLITE_OK ){
234904 0 0 if( zSql==0 ){
234909 0 0 if( rc!=SQLITE_OK ){
234936 0 0 if( pSorter==0 ) return SQLITE_NOMEM;
234947 0 0 rc = fts5PrepareStatement(&pSorter->pStmt, pConfig,
0 0 rc = fts5PrepareStatement(&pSorter->pStmt, pConfig,
0 0 rc = fts5PrepareStatement(&pSorter->pStmt, pConfig,
234956 0 0 if( rc==SQLITE_OK ){
234963 0 0 if( rc!=SQLITE_OK ){
234976 0 0 if( sqlite3Fts5ExprEof(pExpr) ){
234998 0 0 while( z[0]==' ' ) z++;
234999 0 0 for(n=0; z[n] && z[n]!=' '; n++);
0 0 for(n=0; z[n] && z[n]!=' '; n++);
235004 0 0 if( n==5 && 0==sqlite3_strnicmp("reads", z, n) ){
0 0 if( n==5 && 0==sqlite3_strnicmp("reads", z, n) ){
235007 0 0 else if( n==2 && 0==sqlite3_strnicmp("id", z, n) ){
0 0 else if( n==2 && 0==sqlite3_strnicmp("id", z, n) ){
235027 0 0 for(pAux=pTab->pGlobal->pAux; pAux; pAux=pAux->pNext){
235028 0 0 if( sqlite3_stricmp(zName, pAux->zFunc)==0 ) return pAux;
235044 0 0 if( zRankArgs ){
235046 0 0 if( zSql ){
235052 0 0 if( rc==SQLITE_OK ){
235053 0 0 if( SQLITE_ROW==sqlite3_step(pStmt) ){
235058 0 0 if( rc==SQLITE_OK ){
235060 0 0 for(i=0; inRankArg; i++){
235073 0 0 if( rc==SQLITE_OK ){
235075 0 0 if( pAux==0 ){
235093 0 0 if( pRank ){
235098 0 0 if( z==0 ){
235099 0 0 if( sqlite3_value_type(pRank)==SQLITE_NULL ) rc = SQLITE_ERROR;
235103 0 0 if( rc==SQLITE_OK ){
235107 0 0 }else if( rc==SQLITE_ERROR ){
235113 0 0 if( pConfig->zRank ){
235125 0 0 if( pVal ){
235127 0 0 if( eType==SQLITE_INTEGER ){
235168 0 0 if( pConfig->bLock ){
235175 0 0 if( pCsr->ePlan ){
235192 0 0 for(i=0; i
235199 0 0 if( zText==0 ) zText = "";
235204 0 0 }while( idxStr[iIdxStr]>='0' && idxStr[iIdxStr]<='9' );
0 0 }while( idxStr[iIdxStr]>='0' && idxStr[iIdxStr]<='9' );
235206 0 0 if( zText[0]=='*' ){
235215 0 0 if( rc==SQLITE_OK ){
235219 0 0 if( rc!=SQLITE_OK ) goto filter_out;
235232 0 0 }while( idxStr[iIdxStr]>='0' && idxStr[iIdxStr]<='9' );
0 0 }while( idxStr[iIdxStr]>='0' && idxStr[iIdxStr]<='9' );
235233 0 0 if( zText ){
235236 0 0 if( rc==SQLITE_OK ){
235240 0 0 if( rc!=SQLITE_OK ) goto filter_out;
235261 0 0 if( pRowidEq ){
235264 0 0 if( bDesc ){
235272 0 0 if( pTab->pSortCsr ){
235283 0 0 if( pTab->pSortCsr->bDesc ){
235293 0 0 }else if( pCsr->pExpr ){
235295 0 0 if( rc==SQLITE_OK ){
235296 0 0 if( bOrderByRank ){
235304 0 0 }else if( pConfig->zContent==0 ){
235312 0 0 pCsr->ePlan = (pRowidEq ? FTS5_PLAN_ROWID : FTS5_PLAN_SCAN);
235316 0 0 if( rc==SQLITE_OK ){
235317 0 0 if( pRowidEq!=0 ){
235351 0 0 if( pCsr->pSorter ){
235399 0 0 if( pCsr->pStmt==0 ){
235402 0 0 rc = sqlite3Fts5StorageStmt(
235409 0 0 if( rc==SQLITE_OK && CsrFlagTest(pCsr, FTS5CSR_REQUIRE_CONTENT) ){
0 0 if( rc==SQLITE_OK && CsrFlagTest(pCsr, FTS5CSR_REQUIRE_CONTENT) ){
235417 0 0 if( rc==SQLITE_ROW ){
235422 0 0 if( rc==SQLITE_OK ){
235424 0 0 }else if( pTab->pConfig->pzErrmsg ){
235466 0 0 if( 0==sqlite3_stricmp("delete-all", zCmd) ){
235467 0 0 if( pConfig->eContent==FTS5_CONTENT_NORMAL ){
235476 0 0 }else if( 0==sqlite3_stricmp("rebuild", zCmd) ){
235477 0 0 if( pConfig->eContent==FTS5_CONTENT_NONE ){
235485 0 0 }else if( 0==sqlite3_stricmp("optimize", zCmd) ){
235487 0 0 }else if( 0==sqlite3_stricmp("merge", zCmd) ){
235490 0 0 }else if( 0==sqlite3_stricmp("integrity-check", zCmd) ){
235499 0 0 if( rc==SQLITE_OK ){
235502 0 0 if( rc==SQLITE_OK ){
235503 0 0 if( bError ){
235519 0 0 if( eType1==SQLITE_INTEGER ){
235533 0 0 if( rc==SQLITE_OK ){
235536 0 0 if( rc==SQLITE_OK ){
235582 0 0 if( eType0==SQLITE_NULL
235583 0 0 && sqlite3_value_type(apVal[2+pConfig->nCol])!=SQLITE_NULL
235587 0 0 if( pConfig->eContent!=FTS5_CONTENT_NORMAL
235588 0 0 && 0==sqlite3_stricmp("delete", z)
235607 0 0 if( pConfig->eContent==FTS5_CONTENT_NORMAL ){
235616 0 0 if( eType0==SQLITE_INTEGER && fts5IsContentless(pTab) ){
0 0 if( eType0==SQLITE_INTEGER && fts5IsContentless(pTab) ){
235617 0 0 pTab->p.base.zErrMsg = sqlite3_mprintf(
235625 0 0 else if( nArg==1 ){
235634 0 0 if( eType1!=SQLITE_INTEGER && eType1!=SQLITE_NULL ){
0 0 if( eType1!=SQLITE_INTEGER && eType1!=SQLITE_NULL ){
235638 0 0 else if( eType0!=SQLITE_INTEGER ){
235640 0 0 if( eConflict==SQLITE_REPLACE && eType1==SQLITE_INTEGER ){
0 0 if( eConflict==SQLITE_REPLACE && eType1==SQLITE_INTEGER ){
235651 0 0 if( eType1==SQLITE_INTEGER && iOld!=iNew ){
0 0 if( eType1==SQLITE_INTEGER && iOld!=iNew ){
235652 0 0 if( eConflict==SQLITE_REPLACE ){
235654 0 0 if( rc==SQLITE_OK ){
235660 0 0 if( rc==SQLITE_OK ){
235663 0 0 if( rc==SQLITE_OK ){
235784 0 0 if( fts5IsContentless((Fts5FullTable*)(pCsr->base.pVtab))
235785 0 0 || pCsr->ePlan==FTS5_PLAN_SPECIAL
235791 0 0 if( rc==SQLITE_OK ){
235809 0 0 if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_POSLIST) ){
235811 0 0 if( pConfig->eDetail!=FTS5_DETAIL_FULL ){
235815 0 0 if( aPopulator==0 ) rc = SQLITE_NOMEM;
235816 0 0 for(i=0; inCol && rc==SQLITE_OK; i++){
0 0 for(i=0; inCol && rc==SQLITE_OK; i++){
235819 0 0 if( rc==SQLITE_OK ){
235827 0 0 if( pCsr->pSorter ){
235834 0 0 if( pCsr->pSorter && pConfig->eDetail==FTS5_DETAIL_FULL ){
0 0 if( pCsr->pSorter && pConfig->eDetail==FTS5_DETAIL_FULL ){
235836 0 0 int i1 = (iPhrase==0 ? 0 : pSorter->aIdx[iPhrase-1]);
235858 0 0 if( pCsr->aInstIter==0 ){
235864 0 0 if( aIter ){
235869 0 0 for(i=0; i
0 0 for(i=0; i
235873 0 0 if( rc==SQLITE_OK ){
235878 0 0 if( rc==SQLITE_OK ){
235882 0 0 for(i=0; i
235883 0 0 if( (aIter[i].bEof==0)
235884 0 0 && (iBest<0 || aIter[i].iPos
0 0 && (iBest<0 || aIter[i].iPos
235889 0 0 if( iBest<0 ) break;
235892 0 0 if( nInst>=pCsr->nInstAlloc ){
235893 0 0 int nNewSize = pCsr->nInstAlloc ? pCsr->nInstAlloc*2 : 32;
235897 0 0 if( aInst ){
235911 0 0 if( aInst[1]<0 || aInst[1]>=nCol ){
0 0 if( aInst[1]<0 || aInst[1]>=nCol ){
235928 0 0 if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_INST)==0
235929 0 0 || SQLITE_OK==(rc = fts5CacheInstArray(pCsr)) ){
235944 0 0 if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_INST)==0
235945 0 0 || SQLITE_OK==(rc = fts5CacheInstArray(pCsr))
235947 0 0 if( iIdx<0 || iIdx>=pCsr->nInstCount ){
0 0 if( iIdx<0 || iIdx>=pCsr->nInstCount ){
235979 0 0 if( (tflags & FTS5_TOKEN_COLOCATED)==0 ){
235991 0 0 if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_DOCSIZE) ){
235992 0 0 if( pConfig->bColumnsize ){
235995 0 0 }else if( pConfig->zContent==0 ){
235997 0 0 for(i=0; inCol; i++){
235998 0 0 if( pConfig->abUnindexed[i]==0 ){
236004 0 0 for(i=0; rc==SQLITE_OK && inCol; i++){
0 0 for(i=0; rc==SQLITE_OK && inCol; i++){
236005 0 0 if( pConfig->abUnindexed[i]==0 ){
236010 0 0 if( rc==SQLITE_OK ){
236020 0 0 if( iCol<0 ){
236023 0 0 for(i=0; inCol; i++){
236026 0 0 }else if( iColnCol ){
236048 0 0 for(pData=pCsr->pAuxdata; pData; pData=pData->pNext){
236049 0 0 if( pData->pAux==pCsr->pAux ) break;
236052 0 0 if( pData ){
236053 0 0 if( pData->xDelete ){
236059 0 0 if( pData==0 ){
236060 0 0 if( xDelete ) xDelete(pPtr);
236078 0 0 for(pData=pCsr->pAuxdata; pData; pData=pData->pNext){
236079 0 0 if( pData->pAux==pCsr->pAux ) break;
236082 0 0 if( pData ){
236084 0 0 if( bClear ){
236099 0 0 if( pIter->a>=pIter->b ){
236105 0 0 if( iVal==1 ){
236124 0 0 if( rc==SQLITE_OK ){
236126 0 0 pIter->b = (pIter->a ? &pIter->a[n] : 0);
236142 0 0 if( pConfig->eDetail==FTS5_DETAIL_COLUMNS ){
236143 0 0 if( pIter->a>=pIter->b ){
236153 0 0 if( pIter->a>=pIter->b ){
236157 0 0 if( pIter->a[0]==0x01 ) break;
236174 0 0 if( pConfig->eDetail==FTS5_DETAIL_COLUMNS ){
236177 0 0 if( pSorter ){
236178 0 0 int i1 = (iPhrase==0 ? 0 : pSorter->aIdx[iPhrase-1]);
236184 0 0 if( rc==SQLITE_OK ){
236186 0 0 pIter->b = (pIter->a ? &pIter->a[n] : 0);
236193 0 0 if( rc==SQLITE_OK ){
236195 0 0 pIter->b = (pIter->a ? &pIter->a[n] : 0);
236196 0 0 if( n<=0 ){
236198 0 0 }else if( pIter->a[0]==0x01 ){
236252 0 0 if( rc==SQLITE_OK ){
236260 0 0 if( rc==SQLITE_OK ){
236261 0 0 for(rc = fts5CursorFirst(pTab, pNew, 0);
236262 0 0 rc==SQLITE_OK && CsrFlagTest(pNew, FTS5CSR_EOF)==0;
236266 0 0 if( rc!=SQLITE_OK ){
236267 0 0 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
236292 0 0 for(pCsr=pGlobal->pCsr; pCsr; pCsr=pCsr->pNext){
236293 0 0 if( pCsr->iCsrId==iCsrId ) break;
236313 0 0 if( pCsr==0 || pCsr->ePlan==0 ){
0 0 if( pCsr==0 || pCsr->ePlan==0 ){
236333 0 0 if( pCsr ){
236365 0 0 for(i=0; i<(nPhrase-1); i++){
236372 0 0 for(i=0; i
236383 0 0 for(i=0; rc==SQLITE_OK && i<(nPhrase-1); i++){
0 0 for(i=0; rc==SQLITE_OK && i<(nPhrase-1); i++){
236391 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
236423 0 0 if( pCsr->ePlan==FTS5_PLAN_SPECIAL ){
236424 0 0 if( iCol==pConfig->nCol ){
236429 0 0 if( iCol==pConfig->nCol ){
236435 0 0 }else if( iCol==pConfig->nCol+1 ){
236438 0 0 if( pCsr->ePlan==FTS5_PLAN_SOURCE ){
236440 0 0 }else if(
236442 0 0 || pCsr->ePlan==FTS5_PLAN_SORTED_MATCH
236444 0 0 if( pCsr->pRank || SQLITE_OK==(rc = fts5FindRankFunction(pCsr)) ){
0 0 if( pCsr->pRank || SQLITE_OK==(rc = fts5FindRankFunction(pCsr)) ){
236448 0 0 }else if( !fts5IsContentless(pTab) ){
236451 0 0 if( rc==SQLITE_OK ){
236476 0 0 if( pAux ){
236549 933 0 if( rc==SQLITE_OK ){
236557 933 0 if( pAux ){
236595 1244 0 if( pNew ){
236604 311 933 if( pNew->pNext==0 ){
236620 0 0 if( zName==0 ){
236623 0 0 for(pMod=pGlobal->pTok; pMod; pMod=pMod->pNext){
236624 0 0 if( sqlite3_stricmp(zName, pMod->zName)==0 ) break;
236645 0 0 if( pMod ){
236666 0 0 pMod = fts5LocateTokenizer(pGlobal, nArg==0 ? 0 : azArg[0]);
236667 0 0 if( pMod==0 ){
236672 0 0 rc = pMod->x.xCreate(
0 0 rc = pMod->x.xCreate(
236676 0 0 if( rc!=SQLITE_OK ){
236677 0 0 if( pzErr ) *pzErr = sqlite3_mprintf("error in tokenizer constructor");
236685 0 0 if( rc!=SQLITE_OK ){
236698 927 309 for(pAux=pGlobal->pAux; pAux; pAux=pNextAux){
236700 0 927 if( pAux->xDestroy ) pAux->xDestroy(pAux->pUserData);
236704 1236 309 for(pTok=pGlobal->pTok; pTok; pTok=pNextTok){
236706 0 1236 if( pTok->xDestroy ) pTok->xDestroy(pTok->pUserData);
236723 0 0 if( ppApi ) *ppApi = &pGlobal->api;
236748 0 0 for(i=0; i
236749 0 0 if( sqlite3_stricmp(zName, azName[i])==0 ) return 1;
236786 0 311 if( pGlobal==0 ){
236797 311 0 if( rc==SQLITE_OK ) rc = sqlite3Fts5IndexInit(db);
236798 311 0 if( rc==SQLITE_OK ) rc = sqlite3Fts5ExprInit(pGlobal, db);
236799 311 0 if( rc==SQLITE_OK ) rc = sqlite3Fts5AuxInit(&pGlobal->api);
236800 311 0 if( rc==SQLITE_OK ) rc = sqlite3Fts5TokenizerInit(&pGlobal->api);
236801 311 0 if( rc==SQLITE_OK ) rc = sqlite3Fts5VocabInit(pGlobal, db);
236802 311 0 if( rc==SQLITE_OK ){
236807 311 0 if( rc==SQLITE_OK ){
236938 0 0 if( p->aStmt[eStmt]==0 ){
236986 0 0 if( zBind ){
236987 0 0 for(i=0; i
237003 0 0 if( zSql==0 ){
237007 0 0 if( eStmt>FTS5_STMT_LOOKUP ) f |= SQLITE_PREPARE_NO_VTAB;
237012 0 0 if( rc!=SQLITE_OK && pzErrMsg ){
0 0 if( rc!=SQLITE_OK && pzErrMsg ){
237037 0 0 if( zSql==0 ){
237061 0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
237067 0 0 if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){
0 0 if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){
237082 0 0 if( *pRc==SQLITE_OK ){
237097 0 0 if( pConfig->bColumnsize ){
237100 0 0 if( pConfig->eContent==FTS5_CONTENT_NORMAL ){
237120 0 0 rc = fts5ExecPrintf(pConfig->db, &zErr, "CREATE TABLE %Q.'%q_%q'(%s)%s",
237127 0 0 if( zErr ){
237159 0 0 if( !p ) return SQLITE_NOMEM;
237166 0 0 if( bCreate ){
237167 0 0 if( pConfig->eContent==FTS5_CONTENT_NORMAL ){
237170 0 0 if( zDefn==0 ){
237177 0 0 for(i=0; inCol; i++){
237186 0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
237191 0 0 if( rc==SQLITE_OK ){
237196 0 0 if( rc==SQLITE_OK ){
237201 0 0 if( rc ){
237213 0 0 if( p ){
237217 0 0 for(i=0; iaStmt); i++){
237247 0 0 if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE;
237248 0 0 if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){
0 0 if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){
237271 0 0 if( apVal==0 ){
237273 0 0 if( rc!=SQLITE_OK ) return rc;
237275 0 0 if( sqlite3_step(pSeek)!=SQLITE_ROW ){
237283 0 0 for(iCol=1; rc==SQLITE_OK && iCol<=pConfig->nCol; iCol++){
0 0 for(iCol=1; rc==SQLITE_OK && iCol<=pConfig->nCol; iCol++){
237284 0 0 if( pConfig->abUnindexed[iCol-1]==0 ){
237289 0 0 if( pSeek ){
237292 0 0 }else if( ALWAYS(apVal) ){
237303 0 0 if( p->aTotalSize[iCol-1]<0 ){
237308 0 0 if( rc==SQLITE_OK && p->nTotalRow<1 ){
0 0 if( rc==SQLITE_OK && p->nTotalRow<1 ){
237315 0 0 if( rc==SQLITE_OK ) rc = rc2;
237334 0 0 if( p->pConfig->bColumnsize ){
237337 0 0 if( rc==SQLITE_OK ){
237360 0 0 if( p->bTotalsValid==0 ){
237382 0 0 for(i=0; i
237385 0 0 if( rc==SQLITE_OK ){
237405 0 0 if( rc==SQLITE_OK ){
237410 0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
237412 0 0 if( rc==SQLITE_OK ){
237420 0 0 if( pConfig->eContent==FTS5_CONTENT_NORMAL ){
237421 0 0 if( rc==SQLITE_OK ){
237424 0 0 if( rc==SQLITE_OK ){
237450 0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
237459 0 0 if( rc==SQLITE_OK ){
237462 0 0 if( rc==SQLITE_OK ){
237478 0 0 if( rc==SQLITE_OK ){
237482 0 0 if( rc==SQLITE_OK ){
237486 0 0 while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pScan) ){
0 0 while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pScan) ){
237491 0 0 for(ctx.iCol=0; rc==SQLITE_OK && ctx.iColnCol; ctx.iCol++){
0 0 for(ctx.iCol=0; rc==SQLITE_OK && ctx.iColnCol; ctx.iCol++){
237493 0 0 if( pConfig->abUnindexed[ctx.iCol]==0 ){
237508 0 0 if( rc==SQLITE_OK ){
237514 0 0 if( rc==SQLITE_OK ) rc = rc2;
237517 0 0 if( rc==SQLITE_OK ){
237546 0 0 if( p->pConfig->bColumnsize ){
237549 0 0 if( rc==SQLITE_OK ){
237555 0 0 if( rc==SQLITE_OK ){
237574 0 0 if( pConfig->eContent!=FTS5_CONTENT_NORMAL ){
237575 0 0 if( sqlite3_value_type(apVal[1])==SQLITE_INTEGER ){
237584 0 0 for(i=1; rc==SQLITE_OK && i<=pConfig->nCol+1; i++){
0 0 for(i=1; rc==SQLITE_OK && i<=pConfig->nCol+1; i++){
237587 0 0 if( rc==SQLITE_OK ){
237614 0 0 if( rc==SQLITE_OK ){
237617 0 0 for(ctx.iCol=0; rc==SQLITE_OK && ctx.iColnCol; ctx.iCol++){
0 0 for(ctx.iCol=0; rc==SQLITE_OK && ctx.iColnCol; ctx.iCol++){
237619 0 0 if( pConfig->abUnindexed[ctx.iCol]==0 ){
237635 0 0 if( rc==SQLITE_OK ){
237651 0 0 if( zSql==0 ){
237656 0 0 if( rc==SQLITE_OK ){
237657 0 0 if( SQLITE_ROW==sqlite3_step(pCnt) ){
237702 0 0 if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE;
237704 0 0 if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){
0 0 if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){
237727 0 0 if( rc==SQLITE_OK && bPresent==0 ){
0 0 if( rc==SQLITE_OK && bPresent==0 ){
237733 0 0 for(ii=0; rc==SQLITE_OK && iipConfig->nPrefix; ii++){
0 0 for(ii=0; rc==SQLITE_OK && iipConfig->nPrefix; ii++){
237736 0 0 if( nByte ){
237738 0 0 if( bPresent==0 ){
237767 0 0 if( !aTotalSize ) return SQLITE_NOMEM;
237772 0 0 || (pConfig->eContent==FTS5_CONTENT_EXTERNAL && iArg)
0 0 || (pConfig->eContent==FTS5_CONTENT_EXTERNAL && iArg)
0 0 || (pConfig->eContent==FTS5_CONTENT_EXTERNAL && iArg)
237774 0 0 if( bUseCksum ){
237778 0 0 if( rc==SQLITE_OK ){
237780 0 0 while( SQLITE_ROW==sqlite3_step(pScan) ){
237784 0 0 if( pConfig->bColumnsize ){
237787 0 0 if( rc==SQLITE_OK && pConfig->eDetail==FTS5_DETAIL_NONE ){
0 0 if( rc==SQLITE_OK && pConfig->eDetail==FTS5_DETAIL_NONE ){
237790 0 0 for(i=0; rc==SQLITE_OK && inCol; i++){
0 0 for(i=0; rc==SQLITE_OK && inCol; i++){
237791 0 0 if( pConfig->abUnindexed[i] ) continue;
237794 0 0 if( pConfig->eDetail==FTS5_DETAIL_COLUMNS ){
237797 0 0 if( rc==SQLITE_OK ){
237807 0 0 if( rc==SQLITE_OK && pConfig->bColumnsize && ctx.szCol!=aColSize[i] ){
0 0 if( rc==SQLITE_OK && pConfig->bColumnsize && ctx.szCol!=aColSize[i] ){
0 0 if( rc==SQLITE_OK && pConfig->bColumnsize && ctx.szCol!=aColSize[i] ){
237811 0 0 if( pConfig->eDetail==FTS5_DETAIL_COLUMNS ){
237819 0 0 if( rc!=SQLITE_OK ) break;
237822 0 0 if( rc==SQLITE_OK ) rc = rc2;
237826 0 0 if( rc==SQLITE_OK ){
237829 0 0 for(i=0; rc==SQLITE_OK && inCol; i++){
0 0 for(i=0; rc==SQLITE_OK && inCol; i++){
237830 0 0 if( p->aTotalSize[i]!=aTotalSize[i] ) rc = FTS5_CORRUPT;
237836 0 0 if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){
0 0 if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){
237839 0 0 if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT;
0 0 if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT;
237841 0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
0 0 if( rc==SQLITE_OK && pConfig->bColumnsize ){
237844 0 0 if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT;
0 0 if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT;
237851 0 0 if( rc==SQLITE_OK ){
237875 0 0 if( rc==SQLITE_OK ){
237896 0 0 if( p->aStmt[eStmt]==0 ){
237910 0 0 for(i=0; i
237911 0 0 if( iOff>=nBlob ) return 1;
237932 0 0 if( pLookup ){
237936 0 0 if( SQLITE_ROW==sqlite3_step(pLookup) ){
237939 0 0 if( 0==fts5StorageDecodeSizeArray(aCol, nCol, aBlob, nBlob) ){
237944 0 0 if( bCorrupt && rc==SQLITE_OK ){
0 0 if( bCorrupt && rc==SQLITE_OK ){
237956 0 0 if( rc==SQLITE_OK ){
237958 0 0 if( iCol<0 ){
237960 0 0 for(i=0; ipConfig->nCol; i++){
237963 0 0 }else if( iColpConfig->nCol ){
237974 0 0 if( rc==SQLITE_OK ){
237981 0 0 if( p->nTotalRow<=0 ) rc = FTS5_CORRUPT;
237992 0 0 if( p->bTotalsValid ){
237996 0 0 if( rc==SQLITE_OK ){
238016 0 0 if( rc==SQLITE_OK ){
238018 0 0 if( pVal ){
238027 0 0 if( rc==SQLITE_OK && pVal ){
0 0 if( rc==SQLITE_OK && pVal ){
238030 0 0 if( rc==SQLITE_OK ){
238083 0 0 for(i=0; zArg[i]; i++){
238084 0 0 if( (zArg[i] & 0x80)==0 ){
238108 0 0 if( nArg%2 ){
238112 0 0 if( p==0 ){
238118 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
238120 0 0 if( 0==sqlite3_stricmp(azArg[i], "tokenchars") ){
238123 0 0 if( 0==sqlite3_stricmp(azArg[i], "separators") ){
238129 0 0 if( rc!=SQLITE_OK ){
238143 0 0 for(i=0; i
238145 0 0 if( c>='A' && c<='Z' ) c += 32;
0 0 if( c>='A' && c<='Z' ) c += 32;
238172 0 0 while( is
0 0 while( is
238176 0 0 while( is
0 0 while( is
0 0 while( is
238179 0 0 if( is==nText ) break;
238183 0 0 while( ie
0 0 while( ie
0 0 while( ie
238189 0 0 if( nByte>nFold ){
238190 0 0 if( pFold!=aFold ) sqlite3_free(pFold);
238192 0 0 if( pFold==0 ){
238205 0 0 if( pFold!=aFold ) sqlite3_free(pFold);
238206 0 0 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
238294 0 0 if( n>0 ){
238297 0 0 if( aNew ){
238301 0 0 while( zCsr
238304 0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
238305 0 0 if( iCode<128 ){
238311 0 0 if( bToken!=bTokenChars && sqlite3Fts5UnicodeIsdiacritic(iCode)==0 ){
0 0 if( bToken!=bTokenChars && sqlite3Fts5UnicodeIsdiacritic(iCode)==0 ){
238313 0 0 for(i=0; i
238314 0 0 if( (u32)aNew[i]>iCode ) break;
238336 0 0 if( p->nException>0 ){
238341 0 0 while( iHi>=iLo ){
238343 0 0 if( iCode==a[iTest] ){
238345 0 0 }else if( iCode>a[iTest] ){
238360 0 0 if( pTok ){
238372 0 0 while( *z ){
238373 0 0 while( *z==' ' || *z=='\t' ) z++;
0 0 while( *z==' ' || *z=='\t' ) z++;
238374 0 0 if( *z && sqlite3Fts5UnicodeCatParse(z, p->aCategory) ){
0 0 if( *z && sqlite3Fts5UnicodeCatParse(z, p->aCategory) ){
238377 0 0 while( *z!=' ' && *z!='\t' && *z!='\0' ) z++;
0 0 while( *z!=' ' && *z!='\t' && *z!='\0' ) z++;
0 0 while( *z!=' ' && *z!='\t' && *z!='\0' ) z++;
238397 0 0 if( nArg%2 ){
238401 0 0 if( p ){
238409 0 0 if( p->aFold==0 ){
238414 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
238415 0 0 if( 0==sqlite3_stricmp(azArg[i], "categories") ){
238420 0 0 if( rc==SQLITE_OK ){
238424 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
238426 0 0 if( 0==sqlite3_stricmp(azArg[i], "remove_diacritics") ){
238427 0 0 if( (zArg[0]!='0' && zArg[0]!='1' && zArg[0]!='2') || zArg[1] ){
0 0 if( (zArg[0]!='0' && zArg[0]!='1' && zArg[0]!='2') || zArg[1] ){
0 0 if( (zArg[0]!='0' && zArg[0]!='1' && zArg[0]!='2') || zArg[1] ){
0 0 if( (zArg[0]!='0' && zArg[0]!='1' && zArg[0]!='2') || zArg[1] ){
238437 0 0 if( 0==sqlite3_stricmp(azArg[i], "tokenchars") ){
238440 0 0 if( 0==sqlite3_stricmp(azArg[i], "separators") ){
238443 0 0 if( 0==sqlite3_stricmp(azArg[i], "categories") ){
238453 0 0 if( rc!=SQLITE_OK ){
238497 0 0 while( rc==SQLITE_OK ){
238505 0 0 if( zCsr>=zTerm ) goto tokenize_done;
238506 0 0 if( *zCsr & 0x80 ) {
238510 0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
238511 0 0 if( fts5UnicodeIsAlnum(p, iCode) ){
238515 0 0 if( a[*zCsr] ){
238525 0 0 while( zCsr
238529 0 0 if( zOut>pEnd ){
238531 0 0 if( aFold==0 ){
238543 0 0 if( *zCsr & 0x80 ){
238546 0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
0 0 READ_UTF8(zCsr, zTerm, iCode);
238547 0 0 if( fts5UnicodeIsAlnum(p,iCode)||sqlite3Fts5UnicodeIsdiacritic(iCode) ){
0 0 if( fts5UnicodeIsAlnum(p,iCode)||sqlite3Fts5UnicodeIsdiacritic(iCode) ){
238550 0 0 if( iCode ) WRITE_UTF8(zOut, iCode);
0 0 if( iCode ) WRITE_UTF8(zOut, iCode);
0 0 if( iCode ) WRITE_UTF8(zOut, iCode);
0 0 if( iCode ) WRITE_UTF8(zOut, iCode);
238554 0 0 }else if( a[*zCsr]==0 ){
238559 0 0 if( *zCsr>='A' && *zCsr<='Z' ){
0 0 if( *zCsr>='A' && *zCsr<='Z' ){
238574 0 0 if( rc==SQLITE_DONE ) rc = SQLITE_OK;
238597 0 0 if( pTok ){
238599 0 0 if( p->pTokenizer ){
238620 0 0 if( nArg>0 ){
238625 0 0 if( pRet ){
238631 0 0 if( rc==SQLITE_OK ){
238632 0 0 int nArg2 = (nArg>0 ? nArg-1 : 0);
238633 0 0 const char **azArg2 = (nArg2 ? &azArg[1] : 0);
238637 0 0 if( rc!=SQLITE_OK ){
238689 0 0 c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || (bYIsVowel && c=='y')
0 0 c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || (bYIsVowel && c=='y')
0 0 c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || (bYIsVowel && c=='y')
0 0 c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || (bYIsVowel && c=='y')
0 0 c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || (bYIsVowel && c=='y')
0 0 c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || (bYIsVowel && c=='y')
0 0 c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || (bYIsVowel && c=='y')
238698 0 0 for(i=0; i
238699 0 0 if( 0==(bCons = !fts5PorterIsVowel(zStem[i], bCons)) ) break;
238703 0 0 for(i++; i
238704 0 0 if( (bCons = !fts5PorterIsVowel(zStem[i], bCons)) ) return i+1;
238718 0 0 if( n && fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){
0 0 if( n && fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){
238728 0 0 if( n && 0==fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){
0 0 if( n && 0==fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){
238736 0 0 if( zStem[nStem-1]=='w' || zStem[nStem-1]=='x' || zStem[nStem-1]=='y' ){
0 0 if( zStem[nStem-1]=='w' || zStem[nStem-1]=='x' || zStem[nStem-1]=='y' ){
0 0 if( zStem[nStem-1]=='w' || zStem[nStem-1]=='x' || zStem[nStem-1]=='y' ){
238742 0 0 for(i=0; i
238754 0 0 return (zStem[nStem-1]=='s' || zStem[nStem-1]=='t')
238755 0 0 && fts5Porter_MGt1(zStem, nStem);
0 0 && fts5Porter_MGt1(zStem, nStem);
238761 0 0 for(i=0; i
238762 0 0 if( fts5PorterIsVowel(zStem[i], i>0) ){
238781 0 0 if( nBuf>2 && 0==memcmp("al", &aBuf[nBuf-2], 2) ){
0 0 if( nBuf>2 && 0==memcmp("al", &aBuf[nBuf-2], 2) ){
238782 0 0 if( fts5Porter_MGt1(aBuf, nBuf-2) ){
238789 0 0 if( nBuf>4 && 0==memcmp("ance", &aBuf[nBuf-4], 4) ){
0 0 if( nBuf>4 && 0==memcmp("ance", &aBuf[nBuf-4], 4) ){
238790 0 0 if( fts5Porter_MGt1(aBuf, nBuf-4) ){
238793 0 0 }else if( nBuf>4 && 0==memcmp("ence", &aBuf[nBuf-4], 4) ){
0 0 }else if( nBuf>4 && 0==memcmp("ence", &aBuf[nBuf-4], 4) ){
238794 0 0 if( fts5Porter_MGt1(aBuf, nBuf-4) ){
238801 0 0 if( nBuf>2 && 0==memcmp("er", &aBuf[nBuf-2], 2) ){
0 0 if( nBuf>2 && 0==memcmp("er", &aBuf[nBuf-2], 2) ){
238802 0 0 if( fts5Porter_MGt1(aBuf, nBuf-2) ){
238809 0 0 if( nBuf>2 && 0==memcmp("ic", &aBuf[nBuf-2], 2) ){
0 0 if( nBuf>2 && 0==memcmp("ic", &aBuf[nBuf-2], 2) ){
238810 0 0 if( fts5Porter_MGt1(aBuf, nBuf-2) ){
238817 0 0 if( nBuf>4 && 0==memcmp("able", &aBuf[nBuf-4], 4) ){
0 0 if( nBuf>4 && 0==memcmp("able", &aBuf[nBuf-4], 4) ){
238818 0 0 if( fts5Porter_MGt1(aBuf, nBuf-4) ){
238821 0 0 }else if( nBuf>4 && 0==memcmp("ible", &aBuf[nBuf-4], 4) ){
0 0 }else if( nBuf>4 && 0==memcmp("ible", &aBuf[nBuf-4], 4) ){
238822 0 0 if( fts5Porter_MGt1(aBuf, nBuf-4) ){
238829 0 0 if( nBuf>3 && 0==memcmp("ant", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ant", &aBuf[nBuf-3], 3) ){
238830 0 0 if( fts5Porter_MGt1(aBuf, nBuf-3) ){
238833 0 0 }else if( nBuf>5 && 0==memcmp("ement", &aBuf[nBuf-5], 5) ){
0 0 }else if( nBuf>5 && 0==memcmp("ement", &aBuf[nBuf-5], 5) ){
238834 0 0 if( fts5Porter_MGt1(aBuf, nBuf-5) ){
238837 0 0 }else if( nBuf>4 && 0==memcmp("ment", &aBuf[nBuf-4], 4) ){
0 0 }else if( nBuf>4 && 0==memcmp("ment", &aBuf[nBuf-4], 4) ){
238838 0 0 if( fts5Porter_MGt1(aBuf, nBuf-4) ){
238841 0 0 }else if( nBuf>3 && 0==memcmp("ent", &aBuf[nBuf-3], 3) ){
0 0 }else if( nBuf>3 && 0==memcmp("ent", &aBuf[nBuf-3], 3) ){
238842 0 0 if( fts5Porter_MGt1(aBuf, nBuf-3) ){
238849 0 0 if( nBuf>3 && 0==memcmp("ion", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ion", &aBuf[nBuf-3], 3) ){
238850 0 0 if( fts5Porter_MGt1_and_S_or_T(aBuf, nBuf-3) ){
238853 0 0 }else if( nBuf>2 && 0==memcmp("ou", &aBuf[nBuf-2], 2) ){
0 0 }else if( nBuf>2 && 0==memcmp("ou", &aBuf[nBuf-2], 2) ){
238854 0 0 if( fts5Porter_MGt1(aBuf, nBuf-2) ){
238861 0 0 if( nBuf>3 && 0==memcmp("ism", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ism", &aBuf[nBuf-3], 3) ){
238862 0 0 if( fts5Porter_MGt1(aBuf, nBuf-3) ){
238869 0 0 if( nBuf>3 && 0==memcmp("ate", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ate", &aBuf[nBuf-3], 3) ){
238870 0 0 if( fts5Porter_MGt1(aBuf, nBuf-3) ){
238873 0 0 }else if( nBuf>3 && 0==memcmp("iti", &aBuf[nBuf-3], 3) ){
0 0 }else if( nBuf>3 && 0==memcmp("iti", &aBuf[nBuf-3], 3) ){
238874 0 0 if( fts5Porter_MGt1(aBuf, nBuf-3) ){
238881 0 0 if( nBuf>3 && 0==memcmp("ous", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ous", &aBuf[nBuf-3], 3) ){
238882 0 0 if( fts5Porter_MGt1(aBuf, nBuf-3) ){
238889 0 0 if( nBuf>3 && 0==memcmp("ive", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ive", &aBuf[nBuf-3], 3) ){
238890 0 0 if( fts5Porter_MGt1(aBuf, nBuf-3) ){
238897 0 0 if( nBuf>3 && 0==memcmp("ize", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ize", &aBuf[nBuf-3], 3) ){
238898 0 0 if( fts5Porter_MGt1(aBuf, nBuf-3) ){
238915 0 0 if( nBuf>2 && 0==memcmp("at", &aBuf[nBuf-2], 2) ){
0 0 if( nBuf>2 && 0==memcmp("at", &aBuf[nBuf-2], 2) ){
238923 0 0 if( nBuf>2 && 0==memcmp("bl", &aBuf[nBuf-2], 2) ){
0 0 if( nBuf>2 && 0==memcmp("bl", &aBuf[nBuf-2], 2) ){
238931 0 0 if( nBuf>2 && 0==memcmp("iz", &aBuf[nBuf-2], 2) ){
0 0 if( nBuf>2 && 0==memcmp("iz", &aBuf[nBuf-2], 2) ){
238949 0 0 if( nBuf>7 && 0==memcmp("ational", &aBuf[nBuf-7], 7) ){
0 0 if( nBuf>7 && 0==memcmp("ational", &aBuf[nBuf-7], 7) ){
238950 0 0 if( fts5Porter_MGt0(aBuf, nBuf-7) ){
238954 0 0 }else if( nBuf>6 && 0==memcmp("tional", &aBuf[nBuf-6], 6) ){
0 0 }else if( nBuf>6 && 0==memcmp("tional", &aBuf[nBuf-6], 6) ){
238955 0 0 if( fts5Porter_MGt0(aBuf, nBuf-6) ){
238963 0 0 if( nBuf>4 && 0==memcmp("enci", &aBuf[nBuf-4], 4) ){
0 0 if( nBuf>4 && 0==memcmp("enci", &aBuf[nBuf-4], 4) ){
238964 0 0 if( fts5Porter_MGt0(aBuf, nBuf-4) ){
238968 0 0 }else if( nBuf>4 && 0==memcmp("anci", &aBuf[nBuf-4], 4) ){
0 0 }else if( nBuf>4 && 0==memcmp("anci", &aBuf[nBuf-4], 4) ){
238969 0 0 if( fts5Porter_MGt0(aBuf, nBuf-4) ){
238977 0 0 if( nBuf>4 && 0==memcmp("izer", &aBuf[nBuf-4], 4) ){
0 0 if( nBuf>4 && 0==memcmp("izer", &aBuf[nBuf-4], 4) ){
238978 0 0 if( fts5Porter_MGt0(aBuf, nBuf-4) ){
238986 0 0 if( nBuf>4 && 0==memcmp("logi", &aBuf[nBuf-4], 4) ){
0 0 if( nBuf>4 && 0==memcmp("logi", &aBuf[nBuf-4], 4) ){
238987 0 0 if( fts5Porter_MGt0(aBuf, nBuf-4) ){
238995 0 0 if( nBuf>3 && 0==memcmp("bli", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("bli", &aBuf[nBuf-3], 3) ){
238996 0 0 if( fts5Porter_MGt0(aBuf, nBuf-3) ){
239000 0 0 }else if( nBuf>4 && 0==memcmp("alli", &aBuf[nBuf-4], 4) ){
0 0 }else if( nBuf>4 && 0==memcmp("alli", &aBuf[nBuf-4], 4) ){
239001 0 0 if( fts5Porter_MGt0(aBuf, nBuf-4) ){
239005 0 0 }else if( nBuf>5 && 0==memcmp("entli", &aBuf[nBuf-5], 5) ){
0 0 }else if( nBuf>5 && 0==memcmp("entli", &aBuf[nBuf-5], 5) ){
239006 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239010 0 0 }else if( nBuf>3 && 0==memcmp("eli", &aBuf[nBuf-3], 3) ){
0 0 }else if( nBuf>3 && 0==memcmp("eli", &aBuf[nBuf-3], 3) ){
239011 0 0 if( fts5Porter_MGt0(aBuf, nBuf-3) ){
239015 0 0 }else if( nBuf>5 && 0==memcmp("ousli", &aBuf[nBuf-5], 5) ){
0 0 }else if( nBuf>5 && 0==memcmp("ousli", &aBuf[nBuf-5], 5) ){
239016 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239024 0 0 if( nBuf>7 && 0==memcmp("ization", &aBuf[nBuf-7], 7) ){
0 0 if( nBuf>7 && 0==memcmp("ization", &aBuf[nBuf-7], 7) ){
239025 0 0 if( fts5Porter_MGt0(aBuf, nBuf-7) ){
239029 0 0 }else if( nBuf>5 && 0==memcmp("ation", &aBuf[nBuf-5], 5) ){
0 0 }else if( nBuf>5 && 0==memcmp("ation", &aBuf[nBuf-5], 5) ){
239030 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239034 0 0 }else if( nBuf>4 && 0==memcmp("ator", &aBuf[nBuf-4], 4) ){
0 0 }else if( nBuf>4 && 0==memcmp("ator", &aBuf[nBuf-4], 4) ){
239035 0 0 if( fts5Porter_MGt0(aBuf, nBuf-4) ){
239043 0 0 if( nBuf>5 && 0==memcmp("alism", &aBuf[nBuf-5], 5) ){
0 0 if( nBuf>5 && 0==memcmp("alism", &aBuf[nBuf-5], 5) ){
239044 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239048 0 0 }else if( nBuf>7 && 0==memcmp("iveness", &aBuf[nBuf-7], 7) ){
0 0 }else if( nBuf>7 && 0==memcmp("iveness", &aBuf[nBuf-7], 7) ){
239049 0 0 if( fts5Porter_MGt0(aBuf, nBuf-7) ){
239053 0 0 }else if( nBuf>7 && 0==memcmp("fulness", &aBuf[nBuf-7], 7) ){
0 0 }else if( nBuf>7 && 0==memcmp("fulness", &aBuf[nBuf-7], 7) ){
239054 0 0 if( fts5Porter_MGt0(aBuf, nBuf-7) ){
239058 0 0 }else if( nBuf>7 && 0==memcmp("ousness", &aBuf[nBuf-7], 7) ){
0 0 }else if( nBuf>7 && 0==memcmp("ousness", &aBuf[nBuf-7], 7) ){
239059 0 0 if( fts5Porter_MGt0(aBuf, nBuf-7) ){
239067 0 0 if( nBuf>5 && 0==memcmp("aliti", &aBuf[nBuf-5], 5) ){
0 0 if( nBuf>5 && 0==memcmp("aliti", &aBuf[nBuf-5], 5) ){
239068 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239072 0 0 }else if( nBuf>5 && 0==memcmp("iviti", &aBuf[nBuf-5], 5) ){
0 0 }else if( nBuf>5 && 0==memcmp("iviti", &aBuf[nBuf-5], 5) ){
239073 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239077 0 0 }else if( nBuf>6 && 0==memcmp("biliti", &aBuf[nBuf-6], 6) ){
0 0 }else if( nBuf>6 && 0==memcmp("biliti", &aBuf[nBuf-6], 6) ){
239078 0 0 if( fts5Porter_MGt0(aBuf, nBuf-6) ){
239096 0 0 if( nBuf>4 && 0==memcmp("ical", &aBuf[nBuf-4], 4) ){
0 0 if( nBuf>4 && 0==memcmp("ical", &aBuf[nBuf-4], 4) ){
239097 0 0 if( fts5Porter_MGt0(aBuf, nBuf-4) ){
239105 0 0 if( nBuf>4 && 0==memcmp("ness", &aBuf[nBuf-4], 4) ){
0 0 if( nBuf>4 && 0==memcmp("ness", &aBuf[nBuf-4], 4) ){
239106 0 0 if( fts5Porter_MGt0(aBuf, nBuf-4) ){
239113 0 0 if( nBuf>5 && 0==memcmp("icate", &aBuf[nBuf-5], 5) ){
0 0 if( nBuf>5 && 0==memcmp("icate", &aBuf[nBuf-5], 5) ){
239114 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239118 0 0 }else if( nBuf>5 && 0==memcmp("iciti", &aBuf[nBuf-5], 5) ){
0 0 }else if( nBuf>5 && 0==memcmp("iciti", &aBuf[nBuf-5], 5) ){
239119 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239127 0 0 if( nBuf>3 && 0==memcmp("ful", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ful", &aBuf[nBuf-3], 3) ){
239128 0 0 if( fts5Porter_MGt0(aBuf, nBuf-3) ){
239135 0 0 if( nBuf>5 && 0==memcmp("ative", &aBuf[nBuf-5], 5) ){
0 0 if( nBuf>5 && 0==memcmp("ative", &aBuf[nBuf-5], 5) ){
239136 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239143 0 0 if( nBuf>5 && 0==memcmp("alize", &aBuf[nBuf-5], 5) ){
0 0 if( nBuf>5 && 0==memcmp("alize", &aBuf[nBuf-5], 5) ){
239144 0 0 if( fts5Porter_MGt0(aBuf, nBuf-5) ){
239162 0 0 if( nBuf>3 && 0==memcmp("eed", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("eed", &aBuf[nBuf-3], 3) ){
239163 0 0 if( fts5Porter_MGt0(aBuf, nBuf-3) ){
239167 0 0 }else if( nBuf>2 && 0==memcmp("ed", &aBuf[nBuf-2], 2) ){
0 0 }else if( nBuf>2 && 0==memcmp("ed", &aBuf[nBuf-2], 2) ){
239168 0 0 if( fts5Porter_Vowel(aBuf, nBuf-2) ){
239176 0 0 if( nBuf>3 && 0==memcmp("ing", &aBuf[nBuf-3], 3) ){
0 0 if( nBuf>3 && 0==memcmp("ing", &aBuf[nBuf-3], 3) ){
239177 0 0 if( fts5Porter_Vowel(aBuf, nBuf-3) ){
239195 0 0 if( aBuf[nBuf-1]=='s' ){
239196 0 0 if( aBuf[nBuf-2]=='e' ){
239197 0 0 if( (nBuf>4 && aBuf[nBuf-4]=='s' && aBuf[nBuf-3]=='s')
0 0 if( (nBuf>4 && aBuf[nBuf-4]=='s' && aBuf[nBuf-3]=='s')
0 0 if( (nBuf>4 && aBuf[nBuf-4]=='s' && aBuf[nBuf-3]=='s')
239198 0 0 || (nBuf>3 && aBuf[nBuf-3]=='i' )
0 0 || (nBuf>3 && aBuf[nBuf-3]=='i' )
239205 0 0 else if( aBuf[nBuf-2]!='s' ){
239224 0 0 if( nToken>FTS5_PORTER_MAX_TOKEN || nToken<3 ) goto pass_through;
0 0 if( nToken>FTS5_PORTER_MAX_TOKEN || nToken<3 ) goto pass_through;
239231 0 0 if( fts5PorterStep1B(aBuf, &nBuf) ){
239232 0 0 if( fts5PorterStep1B2(aBuf, &nBuf)==0 ){
239234 0 0 if( fts5PorterIsVowel(c, 0)==0
239235 0 0 && c!='l' && c!='s' && c!='z' && c==aBuf[nBuf-2]
0 0 && c!='l' && c!='s' && c!='z' && c==aBuf[nBuf-2]
0 0 && c!='l' && c!='s' && c!='z' && c==aBuf[nBuf-2]
0 0 && c!='l' && c!='s' && c!='z' && c==aBuf[nBuf-2]
239238 0 0 }else if( fts5Porter_MEq1(aBuf, nBuf) && fts5Porter_Ostar(aBuf, nBuf) ){
0 0 }else if( fts5Porter_MEq1(aBuf, nBuf) && fts5Porter_Ostar(aBuf, nBuf) ){
239245 0 0 if( aBuf[nBuf-1]=='y' && fts5Porter_Vowel(aBuf, nBuf-1) ){
0 0 if( aBuf[nBuf-1]=='y' && fts5Porter_Vowel(aBuf, nBuf-1) ){
239256 0 0 if( aBuf[nBuf-1]=='e' ){
239257 0 0 if( fts5Porter_MGt1(aBuf, nBuf-1)
239258 0 0 || (fts5Porter_MEq1(aBuf, nBuf-1) && !fts5Porter_Ostar(aBuf, nBuf-1))
0 0 || (fts5Porter_MEq1(aBuf, nBuf-1) && !fts5Porter_Ostar(aBuf, nBuf-1))
239265 0 0 if( nBuf>1 && aBuf[nBuf-1]=='l'
0 0 if( nBuf>1 && aBuf[nBuf-1]=='l'
239266 0 0 && aBuf[nBuf-2]=='l' && fts5Porter_MGt1(aBuf, nBuf-1)
0 0 && aBuf[nBuf-2]=='l' && fts5Porter_MGt1(aBuf, nBuf-1)
239324 0 0 if( pNew==0 ){
239329 0 0 for(i=0; rc==SQLITE_OK && i
0 0 for(i=0; rc==SQLITE_OK && i
239331 0 0 if( 0==sqlite3_stricmp(azArg[i], "case_sensitive") ){
239332 0 0 if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1] ){
0 0 if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1] ){
0 0 if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1] ){
239341 0 0 if( rc!=SQLITE_OK ){
239373 0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
239374 0 0 if( iCode==0 ) break;
239376 0 0 if( zIn
239377 0 0 if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, 0);
239378 0 0 WRITE_UTF8(zOut, iCode);
0 0 WRITE_UTF8(zOut, iCode);
0 0 WRITE_UTF8(zOut, iCode);
239379 0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
239380 0 0 if( iCode==0 ) break;
239384 0 0 if( zIn
239385 0 0 if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, 0);
239386 0 0 WRITE_UTF8(zOut, iCode);
0 0 WRITE_UTF8(zOut, iCode);
0 0 WRITE_UTF8(zOut, iCode);
239387 0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
0 0 READ_UTF8(zIn, zEof, iCode);
239388 0 0 if( iCode==0 ) break;
239389 0 0 if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, 0);
239390 0 0 WRITE_UTF8(zOut, iCode);
0 0 WRITE_UTF8(zOut, iCode);
0 0 WRITE_UTF8(zOut, iCode);
239395 0 0 if( rc!=SQLITE_OK ) break;
239417 0 0 if( xCreate==fts5TriCreate ){
239419 0 0 return p->bFold ? FTS5_PATTERN_LIKE : FTS5_PATTERN_GLOB;
239441 1555 0 for(i=0; rc==SQLITE_OK && i
1244 311 for(i=0; rc==SQLITE_OK && i
239531 0 0 while( iHi>=iLo ){
239533 0 0 if( key >= aDia[iTest] ){
239541 0 0 if( bComplex==0 && (aChar[iRes] & 0x80) ) return c;
0 0 if( bComplex==0 && (aChar[iRes] & 0x80) ) return c;
239542 0 0 return (c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c : ((int)aChar[iRes] & 0x7F);
239553 0 0 if( c<768 || c>817 ) return 0;
0 0 if( c<768 || c>817 ) return 0;
239554 0 0 return (c < 768+32) ?
239665 0 0 if( c<128 ){
239666 0 0 if( c>='A' && c<='Z' ) ret = c + ('a' - 'A');
0 0 if( c>='A' && c<='Z' ) ret = c + ('a' - 'A');
239667 0 0 }else if( c<65536 ){
239674 0 0 while( iHi>=iLo ){
239677 0 0 if( cmp>=0 ){
239687 0 0 if( c<(p->iCode + p->nRange) && 0==(0x01 & p->flags & (p->iCode ^ c)) ){
0 0 if( c<(p->iCode + p->nRange) && 0==(0x01 & p->flags & (p->iCode ^ c)) ){
239692 0 0 if( eRemoveDiacritic ){
239697 0 0 else if( c>=66560 && c<66600 ){
0 0 else if( c>=66560 && c<66600 ){
240193 0 0 if( iCode>=(1<<20) ){
240199 0 0 while( iHi>iLo ){
240202 0 0 if( iKey>=aFts5UnicodeMap[iTest] ){
240210 0 0 if( iRes<0 ) return 0;
240211 0 0 if( iKey>=(aFts5UnicodeMap[iRes]+(aFts5UnicodeData[iRes]>>5)) ) return 0;
240213 0 0 if( ret!=30 ) return ret;
240214 0 0 return ((iKey - aFts5UnicodeMap[iRes]) & 0x01) ? 5 : 9;
240220 0 0 while( i<128 ){
240223 0 0 for(; i<128 && i
0 0 for(; i<128 && i
240261 0 0 if (!(a&0x80))
240272 0 0 if (!(b&0x80))
240286 0 0 if (!(a&0x80))
240338 0 0 if (!(a&0x80))
240347 0 0 if (!(b&0x80))
240364 0 0 if (!(a&0x80))
240380 0 0 if (!(b&0x80))
240404 0 0 if (!(a&0x80))
240425 0 0 if (!(b&0x80))
240441 0 0 if (!(a&0x80))
240458 0 0 if (!(b&0x80))
240530 0 0 if( v & (((u64)0xff000000)<<32) ){
240533 0 0 for(i=7; i>=0; i--){
240543 0 0 }while( v!=0 );
240546 0 0 for(i=0, j=n-1; j>=0; j--, i++){
240553 0 0 if( v<=0x7f ){
240557 0 0 if( v<=0x3fff ){
240571 0 0 if( iVal<(1 << 14) ) return 2;
240572 0 0 if( iVal<(1 << 21) ) return 3;
240573 0 0 if( iVal<(1 << 28) ) return 4;
240683 0 0 if( rc==SQLITE_OK ){
240685 0 0 if( sqlite3_stricmp(zCopy, "col")==0 ){
240689 0 0 if( sqlite3_stricmp(zCopy, "row")==0 ){
240692 0 0 if( sqlite3_stricmp(zCopy, "instance")==0 ){
240763 0 0 bDb = (argc==6 && strlen(argv[1])==4 && memcmp("temp", argv[1], 4)==0);
0 0 bDb = (argc==6 && strlen(argv[1])==4 && memcmp("temp", argv[1], 4)==0);
0 0 bDb = (argc==6 && strlen(argv[1])==4 && memcmp("temp", argv[1], 4)==0);
240765 0 0 if( argc!=5 && bDb==0 ){
0 0 if( argc!=5 && bDb==0 ){
240770 0 0 const char *zDb = bDb ? argv[3] : argv[1];
240771 0 0 const char *zTab = bDb ? argv[4] : argv[3];
240772 0 0 const char *zType = bDb ? argv[5] : argv[4];
240778 0 0 if( rc==SQLITE_OK ){
240785 0 0 if( pRet ){
240853 0 0 for(i=0; inConstraint; i++){
240855 0 0 if( p->usable==0 ) continue;
240856 0 0 if( p->iColumn==0 ){ /* term column */
240857 0 0 if( p->op==SQLITE_INDEX_CONSTRAINT_EQ ) iTermEq = i;
240858 0 0 if( p->op==SQLITE_INDEX_CONSTRAINT_LE ) iTermLe = i;
240859 0 0 if( p->op==SQLITE_INDEX_CONSTRAINT_LT ) iTermLe = i;
240860 0 0 if( p->op==SQLITE_INDEX_CONSTRAINT_GE ) iTermGe = i;
240861 0 0 if( p->op==SQLITE_INDEX_CONSTRAINT_GT ) iTermGe = i;
240865 0 0 if( iTermEq>=0 ){
240871 0 0 if( iTermGe>=0 ){
240876 0 0 if( iTermLe>=0 ){
240888 0 0 if( pInfo->nOrderBy==1
240889 0 0 && pInfo->aOrderBy[0].iColumn==0
240890 0 0 && pInfo->aOrderBy[0].desc==0
240913 0 0 if( pTab->bBusy ){
240923 0 0 if( zSql ){
240928 0 0 if( rc==SQLITE_ERROR ) rc = SQLITE_OK;
240931 0 0 if( pStmt && sqlite3_step(pStmt)==SQLITE_ROW ){
0 0 if( pStmt && sqlite3_step(pStmt)==SQLITE_ROW ){
240937 0 0 if( rc==SQLITE_OK ){
240938 0 0 if( pFts5==0 ){
240941 0 0 if( rc==SQLITE_OK ){
240952 0 0 if( rc==SQLITE_OK ){
240957 0 0 if( pCsr ){
240998 0 0 if( sqlite3Fts5IterEof(pCsr->pIter) ){
241004 0 0 if( pCsr->nLeTerm>=0 ){
241007 0 0 if( bCmp<0 || (bCmp==0 && pCsr->nLeTerm
0 0 if( bCmp<0 || (bCmp==0 && pCsr->nLeTerm
0 0 if( bCmp<0 || (bCmp==0 && pCsr->nLeTerm
241026 0 0 while( eDetail==FTS5_DETAIL_NONE
241027 0 0 || sqlite3Fts5PoslistNext64(pIter->pData, pIter->nData, po, pp)
241033 0 0 if( rc==SQLITE_OK ){
241035 0 0 if( pCsr->bEof || eDetail==FTS5_DETAIL_NONE ) break;
0 0 if( pCsr->bEof || eDetail==FTS5_DETAIL_NONE ) break;
241037 0 0 if( rc ){
241056 0 0 if( rc!=SQLITE_OK ) return rc;
241059 0 0 if( pTab->eType==FTS5_VOCAB_INSTANCE ){
241063 0 0 if( pTab->eType==FTS5_VOCAB_COL ){
241064 0 0 for(pCsr->iCol++; pCsr->iColiCol++){
241065 0 0 if( pCsr->aDoc[pCsr->iCol] ) break;
241069 0 0 if( pTab->eType!=FTS5_VOCAB_COL || pCsr->iCol>=nCol ){
0 0 if( pTab->eType!=FTS5_VOCAB_COL || pCsr->iCol>=nCol ){
241070 0 0 if( sqlite3Fts5IterEof(pCsr->pIter) ){
241078 0 0 if( pCsr->nLeTerm>=0 ){
241081 0 0 if( bCmp<0 || (bCmp==0 && pCsr->nLeTerm
0 0 if( bCmp<0 || (bCmp==0 && pCsr->nLeTerm
0 0 if( bCmp<0 || (bCmp==0 && pCsr->nLeTerm
241093 0 0 while( rc==SQLITE_OK ){
241104 0 0 if( eDetail==FTS5_DETAIL_FULL ){
241105 0 0 while( 0==sqlite3Fts5PoslistNext64(pPos, nPos, &iOff, &iPos) ){
241113 0 0 if( eDetail==FTS5_DETAIL_FULL ){
241115 0 0 while( 0==sqlite3Fts5PoslistNext64(pPos, nPos, &iOff, &iPos) ){
241117 0 0 if( iCol!=ii ){
241118 0 0 if( ii>=nCol ){
241127 0 0 }else if( eDetail==FTS5_DETAIL_COLUMNS ){
241128 0 0 while( 0==sqlite3Fts5PoslistNext64(pPos, nPos, &iOff,&iPos) ){
241130 0 0 if( iPos>=nCol ){
241147 0 0 if( rc==SQLITE_OK ){
241150 0 0 if( pTab->eType==FTS5_VOCAB_INSTANCE ) break;
241152 0 0 if( rc==SQLITE_OK ){
241154 0 0 if( nTerm!=pCsr->term.n
241155 0 0 || (nTerm>0 && memcmp(zTerm, pCsr->term.p, nTerm))
0 0 || (nTerm>0 && memcmp(zTerm, pCsr->term.p, nTerm))
241159 0 0 if( sqlite3Fts5IterEof(pCsr->pIter) ) break;
241165 0 0 if( rc==SQLITE_OK && pCsr->bEof==0 && pTab->eType==FTS5_VOCAB_COL ){
0 0 if( rc==SQLITE_OK && pCsr->bEof==0 && pTab->eType==FTS5_VOCAB_COL ){
0 0 if( rc==SQLITE_OK && pCsr->bEof==0 && pTab->eType==FTS5_VOCAB_COL ){
241166 0 0 for(/* noop */; pCsr->iColaDoc[pCsr->iCol]==0; pCsr->iCol++);
0 0 for(/* noop */; pCsr->iColaDoc[pCsr->iCol]==0; pCsr->iCol++);
241167 0 0 if( pCsr->iCol==nCol ){
241201 0 0 if( idxNum & FTS5_VOCAB_TERM_EQ ) pEq = apVal[iVal++];
241202 0 0 if( idxNum & FTS5_VOCAB_TERM_GE ) pGe = apVal[iVal++];
241203 0 0 if( idxNum & FTS5_VOCAB_TERM_LE ) pLe = apVal[iVal++];
241205 0 0 if( pEq ){
241210 0 0 if( pGe ){
241214 0 0 if( pLe ){
241216 0 0 if( zCopy==0 ) zCopy = "";
241219 0 0 if( pCsr->zLeTerm==0 ){
241227 0 0 if( rc==SQLITE_OK ){
241230 0 0 if( rc==SQLITE_OK ){
241234 0 0 if( rc==SQLITE_OK && eType==FTS5_VOCAB_INSTANCE ){
0 0 if( rc==SQLITE_OK && eType==FTS5_VOCAB_INSTANCE ){
241237 0 0 if( rc==SQLITE_OK && !pCsr->bEof
0 0 if( rc==SQLITE_OK && !pCsr->bEof
241238 0 0 && (eType!=FTS5_VOCAB_INSTANCE
241239 0 0 || pCsr->pFts5->pConfig->eDetail!=FTS5_DETAIL_NONE)
241266 0 0 if( iCol==0 ){
241270 0 0 }else if( eType==FTS5_VOCAB_COL ){
241272 0 0 if( iCol==1 ){
241273 0 0 if( eDetail!=FTS5_DETAIL_NONE ){
241277 0 0 }else if( iCol==2 ){
241282 0 0 }else if( eType==FTS5_VOCAB_ROW ){
241284 0 0 if( iCol==1 ){
241297 0 0 if( eDetail==FTS5_DETAIL_FULL ){
241299 0 0 }else if( eDetail==FTS5_DETAIL_COLUMNS ){
241302 0 0 if( ii>=0 && iipFts5->pConfig->nCol ){
0 0 if( ii>=0 && iipFts5->pConfig->nCol ){
241310 0 0 if( eDetail==FTS5_DETAIL_FULL ){
241319 0 0 if( iVal>0 ) sqlite3_result_int64(pCtx, iVal);