|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
20499
 | 
 45047  | 
 108595  | 
   if( wsdStat.nowValue[op]>wsdStat.mxValue[op] ){  | 
 
| 
20529
 | 
 644  | 
 77958  | 
   if( newValue>wsdStat.mxValue[op] ){  | 
 
| 
20545
 | 
 11  | 
 0  | 
   if( op<0 || op>=ArraySize(wsdStat.nowValue) ){  | 
 
| 
 | 
 0  | 
 11  | 
   if( op<0 || op>=ArraySize(wsdStat.nowValue) ){  | 
 
| 
20551
 | 
 3  | 
 8  | 
   pMutex = statMutex[op] ? sqlite3Pcache1Mutex() : sqlite3MallocMutex();  | 
 
| 
20555
 | 
 0  | 
 11  | 
   if( resetFlag ){  | 
 
| 
20569
 | 
 11  | 
 0  | 
   if( rc==0 ){  | 
 
| 
20581
 | 
 198  | 
 506  | 
   while( p ){  | 
 
| 
20594
 | 
 2  | 
 251  | 
   if( pHighwater ) *pHighwater = db->lookaside.nSlot - nInit;  | 
 
| 
20618
 | 
 0  | 
 2  | 
       if( resetFlag ){  | 
 
| 
20620
 | 
 0  | 
 0  | 
         if( p ){  | 
 
| 
20621
 | 
 0  | 
 0  | 
           while( p->pNext ) p = p->pNext;  | 
 
| 
20640
 | 
 0  | 
 6  | 
       if( resetFlag ){  | 
 
| 
20656
 | 
 4  | 
 2  | 
       for(i=0; inDb; i++){  | 
 
| 
20658
 | 
 2  | 
 2  | 
         if( pBt ){  | 
 
| 
20661
 | 
 0  | 
 2  | 
           if( op==SQLITE_DBSTATUS_CACHE_USED_SHARED ){  | 
 
| 
20684
 | 
 4  | 
 2  | 
       for(i=0; inDb; i++){  | 
 
| 
20686
 | 
 4  | 
 0  | 
         if( ALWAYS(pSchema!=0) ){  | 
 
| 
20700
 | 
 0  | 
 4  | 
           for(p=sqliteHashFirst(&pSchema->trigHash); p; p=sqliteHashNext(p)){  | 
 
| 
20703
 | 
 6  | 
 4  | 
           for(p=sqliteHashFirst(&pSchema->tblHash); p; p=sqliteHashNext(p)){  | 
 
| 
20726
 | 
 0  | 
 2  | 
       for(pVdbe=db->pVdbe; pVdbe; pVdbe=pVdbe->pNext){  | 
 
| 
20754
 | 
 12  | 
 6  | 
       for(i=0; inDb; i++){  | 
 
| 
20755
 | 
 6  | 
 6  | 
         if( db->aDb[i].pBt ){  | 
 
| 
20773
 | 
 0  | 
 0  | 
       *pCurrent = db->nDeferredImmCons>0 || db->nDeferredCons>0;  | 
 
| 
 | 
 0  | 
 0  | 
       *pCurrent = db->nDeferredImmCons>0 || db->nDeferredCons>0;  | 
 
| 
20914
 | 
 0  | 
 0  | 
     while( N-- ){  | 
 
| 
20915
 | 
 0  | 
 0  | 
       if( !sqlite3Isdigit(*zDate) ){  | 
 
| 
20921
 | 
 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) ){  | 
 
| 
20924
 | 
 0  | 
 0  | 
     *va_arg(ap,int*) = val;  | 
 
| 
20928
 | 
 0  | 
 0  | 
   }while( nextC );  | 
 
| 
20954
 | 
 0  | 
 0  | 
   while( sqlite3Isspace(*zDate) ){ zDate++; }  | 
 
| 
20957
 | 
 0  | 
 0  | 
   if( c=='-' ){  | 
 
| 
20959
 | 
 0  | 
 0  | 
   }else if( c=='+' ){  | 
 
| 
20961
 | 
 0  | 
 0  | 
   }else if( c=='Z' || c=='z' ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( c=='Z' || c=='z' ){  | 
 
| 
20968
 | 
 0  | 
 0  | 
   if( getDigits(zDate, "20b:20e", &nHr, &nMn)!=2 ){  | 
 
| 
20974
 | 
 0  | 
 0  | 
   while( sqlite3Isspace(*zDate) ){ zDate++; }  | 
 
| 
20989
 | 
 0  | 
 0  | 
   if( getDigits(zDate, "20c:20e", &h, &m)!=2 ){  | 
 
| 
20993
 | 
 0  | 
 0  | 
   if( *zDate==':' ){  | 
 
| 
20995
 | 
 0  | 
 0  | 
     if( getDigits(zDate, "20e", &s)!=1 ){  | 
 
| 
20999
 | 
 0  | 
 0  | 
     if( *zDate=='.' && sqlite3Isdigit(zDate[1]) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( *zDate=='.' && sqlite3Isdigit(zDate[1]) ){  | 
 
| 
21002
 | 
 0  | 
 0  | 
       while( sqlite3Isdigit(*zDate) ){  | 
 
| 
21018
 | 
 0  | 
 0  | 
   if( parseTimezone(zDate, p) ) return 1;  | 
 
| 
21040
 | 
 0  | 
 0  | 
   if( p->validJD ) return;  | 
 
| 
21041
 | 
 0  | 
 0  | 
   if( p->validYMD ){  | 
 
| 
21050
 | 
 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 ){  | 
 
| 
21054
 | 
 0  | 
 0  | 
   if( M<=2 ){  | 
 
| 
21064
 | 
 0  | 
 0  | 
   if( p->validHMS ){  | 
 
| 
21066
 | 
 0  | 
 0  | 
     if( p->validTZ ){  | 
 
| 
21090
 | 
 0  | 
 0  | 
   if( zDate[0]=='-' ){  | 
 
| 
21096
 | 
 0  | 
 0  | 
   if( getDigits(zDate, "40f-21a-21d", &Y, &M, &D)!=3 ){  | 
 
| 
21100
 | 
 0  | 
 0  | 
   while( sqlite3Isspace(*zDate) || 'T'==*(u8*)zDate ){ zDate++; }  | 
 
| 
 | 
 0  | 
 0  | 
   while( sqlite3Isspace(*zDate) || 'T'==*(u8*)zDate ){ zDate++; }  | 
 
| 
21101
 | 
 0  | 
 0  | 
   if( parseHhMmSs(zDate, p)==0 ){  | 
 
| 
21103
 | 
 0  | 
 0  | 
   }else if( *zDate==0 ){  | 
 
| 
21110
 | 
 0  | 
 0  | 
   p->Y = neg ? -Y : Y;  | 
 
| 
21113
 | 
 0  | 
 0  | 
   if( p->validTZ ){  | 
 
| 
21126
 | 
 0  | 
 0  | 
   if( p->iJD>0 ){  | 
 
| 
21143
 | 
 0  | 
 0  | 
   if( r>=0.0 && r<5373484.5 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( r>=0.0 && r<5373484.5 ){  | 
 
| 
21171
 | 
 0  | 
 0  | 
   if( parseYyyyMmDd(zDate,p)==0 ){  | 
 
| 
21173
 | 
 0  | 
 0  | 
   }else if( parseHhMmSs(zDate, p)==0 ){  | 
 
| 
21175
 | 
 0  | 
 0  | 
   }else if( sqlite3StrICmp(zDate,"now")==0 && sqlite3NotPureFunc(context) ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( sqlite3StrICmp(zDate,"now")==0 && sqlite3NotPureFunc(context) ){  | 
 
| 
21177
 | 
 0  | 
 0  | 
   }else if( sqlite3AtoF(zDate, &r, sqlite3Strlen30(zDate), SQLITE_UTF8) ){  | 
 
| 
21199
 | 
 0  | 
 0  | 
   return iJD>=0 && iJD<=INT_464269060799999;  | 
 
| 
 | 
 0  | 
 0  | 
   return iJD>=0 && iJD<=INT_464269060799999;  | 
 
| 
21207
 | 
 0  | 
 0  | 
   if( p->validYMD ) return;  | 
 
| 
21208
 | 
 0  | 
 0  | 
   if( !p->validJD ){  | 
 
| 
21212
 | 
 0  | 
 0  | 
   }else if( !validJulianDay(p->iJD) ){  | 
 
| 
21225
 | 
 0  | 
 0  | 
     p->M = E<14 ? E-1 : E-13;  | 
 
| 
21226
 | 
 0  | 
 0  | 
     p->Y = p->M>2 ? C - 4716 : C - 4715;  | 
 
| 
21236
 | 
 0  | 
 0  | 
   if( p->validHMS ) return;  | 
 
| 
21309
 | 
 0  | 
 0  | 
   if( sqlite3GlobalConfig.bLocaltimeFault ) pX = 0;  | 
 
| 
21311
 | 
 0  | 
 0  | 
   if( pX ) *pTm = *pX;  | 
 
| 
21352
 | 
 0  | 
 0  | 
   if( x.Y<1971 || x.Y>=2038 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( x.Y<1971 || x.Y>=2038 ){  | 
 
| 
21372
 | 
 0  | 
 0  | 
   if( osLocaltime(&t, &sLocal) ){  | 
 
| 
21458
 | 
 0  | 
 0  | 
       if( sqlite3_stricmp(z, "localtime")==0 && sqlite3NotPureFunc(pCtx) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( sqlite3_stricmp(z, "localtime")==0 && sqlite3NotPureFunc(pCtx) ){  | 
 
| 
21473
 | 
 0  | 
 0  | 
       if( sqlite3_stricmp(z, "unixepoch")==0 && p->rawS ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( sqlite3_stricmp(z, "unixepoch")==0 && p->rawS ){  | 
 
| 
21475
 | 
 0  | 
 0  | 
         if( r>=0.0 && r<464269060800000.0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( r>=0.0 && r<464269060800000.0 ){  | 
 
| 
21484
 | 
 0  | 
 0  | 
       else if( sqlite3_stricmp(z, "utc")==0 && sqlite3NotPureFunc(pCtx) ){  | 
 
| 
 | 
 0  | 
 0  | 
       else if( sqlite3_stricmp(z, "utc")==0 && sqlite3NotPureFunc(pCtx) ){  | 
 
| 
21485
 | 
 0  | 
 0  | 
         if( p->tzSet==0 ){  | 
 
| 
21489
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
21510
 | 
 0  | 
 0  | 
       if( sqlite3_strnicmp(z, "weekday ", 8)==0  | 
 
| 
21511
 | 
 0  | 
 0  | 
                && sqlite3AtoF(&z[8], &r, sqlite3Strlen30(&z[8]), SQLITE_UTF8)  | 
 
| 
21512
 | 
 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 ){  | 
 
| 
21519
 | 
 0  | 
 0  | 
         if( Z>n ) Z -= 7;  | 
 
| 
21533
 | 
 0  | 
 0  | 
       if( sqlite3_strnicmp(z, "start of ", 9)!=0 ) break;  | 
 
| 
21534
 | 
 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;  | 
 
| 
21543
 | 
 0  | 
 0  | 
       if( sqlite3_stricmp(z,"month")==0 ){  | 
 
| 
21546
 | 
 0  | 
 0  | 
       }else if( sqlite3_stricmp(z,"year")==0 ){  | 
 
| 
21550
 | 
 0  | 
 0  | 
       }else if( sqlite3_stricmp(z,"day")==0 ){  | 
 
| 
21569
 | 
 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++){}  | 
 
| 
21570
 | 
 0  | 
 0  | 
       if( !sqlite3AtoF(z, &r, n, SQLITE_UTF8) ){  | 
 
| 
21574
 | 
 0  | 
 0  | 
       if( z[n]==':' ){  | 
 
| 
21583
 | 
 0  | 
 0  | 
         if( !sqlite3Isdigit(*z2) ) z2++;  | 
 
| 
21585
 | 
 0  | 
 0  | 
         if( parseHhMmSs(z2, &tx) ) break;  | 
 
| 
21590
 | 
 0  | 
 0  | 
         if( z[0]=='-' ) tx.iJD = -tx.iJD;  | 
 
| 
21601
 | 
 0  | 
 0  | 
       while( sqlite3Isspace(*z) ) z++;  | 
 
| 
21603
 | 
 0  | 
 0  | 
       if( n>10 || n<3 ) break;  | 
 
| 
 | 
 0  | 
 0  | 
       if( n>10 || n<3 ) break;  | 
 
| 
21604
 | 
 0  | 
 0  | 
       if( sqlite3UpperToLower[(u8)z[n-1]]=='s' ) n--;  | 
 
| 
21607
 | 
 0  | 
 0  | 
       rRounder = r<0 ? -0.5 : +0.5;  | 
 
| 
21608
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
21609
 | 
 0  | 
 0  | 
         if( aXformType[i].nName==n  | 
 
| 
21610
 | 
 0  | 
 0  | 
          && sqlite3_strnicmp(aXformType[i].zName, z, n)==0  | 
 
| 
21611
 | 
 0  | 
 0  | 
          && r>-aXformType[i].rLimit && r
 | 
 
| 
 | 
 0  | 
 0  | 
          && r>-aXformType[i].rLimit && r
 | 
 
| 
21618
 | 
 0  | 
 0  | 
               x = p->M>0 ? (p->M-1)/12 : (p->M-12)/12;  | 
 
| 
21669
 | 
 0  | 
 0  | 
   if( argc==0 ){  | 
 
| 
21672
 | 
 0  | 
 0  | 
   if( (eType = sqlite3_value_type(argv[0]))==SQLITE_FLOAT  | 
 
| 
21673
 | 
 0  | 
 0  | 
                    || eType==SQLITE_INTEGER ){  | 
 
| 
21677
 | 
 0  | 
 0  | 
     if( !z || parseDateOrTime(context, (char*)z, p) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( !z || parseDateOrTime(context, (char*)z, p) ){  | 
 
| 
21681
 | 
 0  | 
 0  | 
   for(i=1; i
 | 
 
| 
21684
 | 
 0  | 
 0  | 
     if( z==0 || parseModifier(context, (char*)z, n, p) ) return 1;  | 
 
| 
 | 
 0  | 
 0  | 
     if( z==0 || parseModifier(context, (char*)z, n, p) ) return 1;  | 
 
| 
21687
 | 
 0  | 
 0  | 
   if( p->isError || !validJulianDay(p->iJD) ) return 1;  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->isError || !validJulianDay(p->iJD) ) return 1;  | 
 
| 
21708
 | 
 0  | 
 0  | 
   if( isDate(context, argc, argv, &x)==0 ){  | 
 
| 
21725
 | 
 0  | 
 0  | 
   if( isDate(context, argc, argv, &x)==0 ){  | 
 
| 
21745
 | 
 0  | 
 0  | 
   if( isDate(context, argc, argv, &x)==0 ){  | 
 
| 
21764
 | 
 0  | 
 0  | 
   if( isDate(context, argc, argv, &x)==0 ){  | 
 
| 
21803
 | 
 0  | 
 0  | 
   if( argc==0 ) return;  | 
 
| 
21805
 | 
 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;  | 
 
| 
21807
 | 
 0  | 
 0  | 
   for(i=0, n=1; zFmt[i]; i++, n++){  | 
 
| 
21808
 | 
 0  | 
 0  | 
     if( zFmt[i]=='%' ){  | 
 
| 
21844
 | 
 0  | 
 0  | 
   if( n
 | 
 
| 
21846
 | 
 0  | 
 0  | 
   }else if( n>(u64)db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
21851
 | 
 0  | 
 0  | 
     if( z==0 ){  | 
 
| 
21858
 | 
 0  | 
 0  | 
   for(i=j=0; zFmt[i]; i++){  | 
 
| 
21859
 | 
 0  | 
 0  | 
     if( zFmt[i]!='%' ){  | 
 
| 
21867
 | 
 0  | 
 0  | 
           if( s>59.999 ) s = 59.999;  | 
 
| 
21882
 | 
 0  | 
 0  | 
           if( zFmt[i]=='W' ){  | 
 
| 
21920
 | 
 0  | 
 0  | 
   sqlite3_result_text(context, z, -1,  | 
 
| 
22121
 | 
 1058  | 
 1787  | 
   if( pId->pMethods ){  | 
 
| 
22139
 | 
 216  | 
 0  | 
   return flags ? id->pMethods->xSync(id, flags) : SQLITE_OK;  | 
 
| 
22166
 | 
 1034  | 
 265  | 
   if( id->pMethods==0 ) return SQLITE_NOTFOUND;  | 
 
| 
22187
 | 
 528  | 
 191  | 
   if( id->pMethods ) (void)id->pMethods->xFileControl(id, op, pArg);  | 
 
| 
22192
 | 
 0  | 
 0  | 
   return (xSectorSize ? xSectorSize(id) : SQLITE_DEFAULT_SECTOR_SIZE);  | 
 
| 
22305
 | 
 6  | 
 0  | 
   return pVfs->xGetLastError ? pVfs->xGetLastError(pVfs, 0, 0) : 0;  | 
 
| 
22315
 | 
 12  | 
 0  | 
   if( pVfs->iVersion>=2 && pVfs->xCurrentTimeInt64 ){  | 
 
| 
 | 
 12  | 
 0  | 
   if( pVfs->iVersion>=2 && pVfs->xCurrentTimeInt64 ){  | 
 
| 
22335
 | 
 0  | 
 0  | 
   if( pFile ){  | 
 
| 
22337
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
22361
 | 
 0  | 
 95  | 
   if( p==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
22383
 | 
 0  | 
 348  | 
   if( rc ) return 0;  | 
 
| 
22389
 | 
 348  | 
 0  | 
   for(pVfs = vfsList; pVfs; pVfs=pVfs->pNext){  | 
 
| 
22390
 | 
 343  | 
 5  | 
     if( zVfs==0 ) break;  | 
 
| 
22391
 | 
 5  | 
 0  | 
     if( strcmp(zVfs, pVfs->zName)==0 ) break;  | 
 
| 
22402
 | 
 380  | 
 0  | 
   if( pVfs==0 ){  | 
 
| 
22404
 | 
 0  | 
 380  | 
   }else if( vfsList==pVfs ){  | 
 
| 
22406
 | 
 285  | 
 95  | 
   }else if( vfsList ){  | 
 
| 
22408
 | 
 285  | 
 285  | 
     while( p->pNext && p->pNext!=pVfs ){  | 
 
| 
 | 
 285  | 
 0  | 
     while( p->pNext && p->pNext!=pVfs ){  | 
 
| 
22411
 | 
 0  | 
 285  | 
     if( p->pNext==pVfs ){  | 
 
| 
22426
 | 
 0  | 
 380  | 
   if( rc ) return rc;  | 
 
| 
22435
 | 
 285  | 
 95  | 
   if( makeDflt || vfsList==0 ){  | 
 
| 
 | 
 0  | 
 285  | 
   if( makeDflt || vfsList==0 ){  | 
 
| 
22454
 | 
 0  | 
 0  | 
   if( rc ) return rc;  | 
 
| 
22540
 | 
 0  | 
 1823  | 
   if( wsdHooks.xBenignBegin ){  | 
 
| 
22546
 | 
 0  | 
 1823  | 
   if( wsdHooks.xBenignEnd ){  | 
 
| 
22759
 | 
 75040  | 
 0  | 
   if( p ){  | 
 
| 
22832
 | 
 2726  | 
 0  | 
   if( p ){  | 
 
| 
26466
 | 
 0  | 
 0  | 
   if( rc ) return -1;  | 
 
| 
26470
 | 
 0  | 
 0  | 
   if( n<0 ){  | 
 
| 
26476
 | 
 0  | 
 0  | 
   mem0.nearlyFull = (n>0 && n<=nUsed);  | 
 
| 
 | 
 0  | 
 0  | 
   mem0.nearlyFull = (n>0 && n<=nUsed);  | 
 
| 
26479
 | 
 0  | 
 0  | 
   if( excess>0 ) sqlite3_release_memory((int)(excess & 0x7fffffff));  | 
 
| 
26483
 | 
 0  | 
 0  | 
   if( n<0 ) n = 0;  | 
 
| 
26492
 | 
 95  | 
 0  | 
   if( sqlite3GlobalConfig.m.xMalloc==0 ){  | 
 
| 
26497
 | 
 0  | 
 95  | 
   if( sqlite3GlobalConfig.pPage==0 || sqlite3GlobalConfig.szPage<512  | 
 
| 
 | 
 0  | 
 0  | 
   if( sqlite3GlobalConfig.pPage==0 || sqlite3GlobalConfig.szPage<512  | 
 
| 
26498
 | 
 0  | 
 0  | 
       || sqlite3GlobalConfig.nPage<=0 ){  | 
 
| 
26503
 | 
 0  | 
 95  | 
   if( rc!=SQLITE_OK ) memset(&mem0, 0, sizeof(mem0));  | 
 
| 
26520
 | 
 0  | 
 0  | 
   if( sqlite3GlobalConfig.m.xShutdown ){  | 
 
| 
26550
 | 
 2726  | 
 0  | 
   if( mem0.alarmThreshold<=0 ) return;  | 
 
| 
26581
 | 
 0  | 
 75040  | 
   if( mem0.alarmThreshold>0 ){  | 
 
| 
26583
 | 
 0  | 
 0  | 
     if( nUsed >= mem0.alarmThreshold - nFull ){  | 
 
| 
26597
 | 
 75040  | 
 0  | 
   if( p ){  | 
 
| 
26611
 | 
 75040  | 
 0  | 
   if( n==0 || n>=0x7fffff00 ){  | 
 
| 
 | 
 0  | 
 75040  | 
   if( n==0 || n>=0x7fffff00 ){  | 
 
| 
26618
 | 
 75040  | 
 0  | 
   }else if( sqlite3GlobalConfig.bMemstat ){  | 
 
| 
26636
 | 
 0  | 
 11023  | 
   if( sqlite3_initialize() ) return 0;  | 
 
| 
26638
 | 
 11023  | 
 0  | 
   return n<=0 ? 0 : sqlite3Malloc(n);  | 
 
| 
26642
 | 
 0  | 
 461  | 
   if( sqlite3_initialize() ) return 0;  | 
 
| 
26652
 | 
 156484  | 
 12869  | 
   return SQLITE_WITHIN(p, db->lookaside.pStart, db->lookaside.pEnd);  | 
 
| 
 | 
 122047  | 
 34437  | 
   return SQLITE_WITHIN(p, db->lookaside.pStart, db->lookaside.pEnd);  | 
 
| 
26668
 | 
 28950  | 
 101  | 
   if( db==0 || !isLookaside(db,p) ){  | 
 
| 
 | 
 4404  | 
 24546  | 
   if( db==0 || !isLookaside(db,p) ){  | 
 
| 
26687
 | 
 0  | 
 16  | 
   return p ? sqlite3GlobalConfig.m.xSize(p) : 0;  | 
 
| 
26694
 | 
 24257  | 
 74680  | 
   if( p==0 ) return;  /* IMP: R-49053-54554 */  | 
 
| 
26697
 | 
 74680  | 
 0  | 
   if( sqlite3GlobalConfig.bMemstat ){  | 
 
| 
26724
 | 
 130524  | 
 5040  | 
   if( db ){  | 
 
| 
26725
 | 
 46  | 
 130478  | 
     if( db->pnBytesFreed ){  | 
 
| 
26729
 | 
 92902  | 
 37576  | 
     if( isLookaside(db, p) ){  | 
 
| 
26748
 | 
 59005  | 
 81735  | 
   if( p ) sqlite3DbFreeNN(db, p);  | 
 
| 
26759
 | 
 599  | 
 2740  | 
   if( pOld==0 ){  | 
 
| 
26762
 | 
 0  | 
 2740  | 
   if( nBytes==0 ){  | 
 
| 
26766
 | 
 0  | 
 2740  | 
   if( nBytes>=0x7fffff00 ){  | 
 
| 
26775
 | 
 14  | 
 2726  | 
   if( nOld==nNew ){  | 
 
| 
26777
 | 
 2726  | 
 0  | 
   }else if( sqlite3GlobalConfig.bMemstat ){  | 
 
| 
26781
 | 
 2726  | 
 0  | 
     if( nDiff>0 && sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED) >=   | 
 
| 
 | 
 2726  | 
 0  | 
     if( nDiff>0 && sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED) >=   | 
 
| 
26786
 | 
 0  | 
 2726  | 
     if( pNew==0 && mem0.alarmThreshold>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pNew==0 && mem0.alarmThreshold>0 ){  | 
 
| 
26790
 | 
 2726  | 
 0  | 
     if( pNew ){  | 
 
| 
26808
 | 
 0  | 
 294  | 
   if( sqlite3_initialize() ) return 0;  | 
 
| 
26810
 | 
 0  | 
 294  | 
   if( n<0 ) n = 0;  /* IMP: R-26507-47431 */  | 
 
| 
26815
 | 
 0  | 
 3025  | 
   if( sqlite3_initialize() ) return 0;  | 
 
| 
26826
 | 
 2834  | 
 0  | 
   if( p ){  | 
 
| 
26840
 | 
 19069  | 
 0  | 
   if( p ) memset(p, 0, (size_t)n);  | 
 
| 
26852
 | 
 0  | 
 36969  | 
   if( !p ) sqlite3OomFault(db);  | 
 
| 
26882
 | 
 45664  | 
 3451  | 
   if( db ) return sqlite3DbMallocRawNN(db, n);  | 
 
| 
26893
 | 
 95680  | 
 34193  | 
   if( db->lookaside.bDisable==0 ){  | 
 
| 
26895
 | 
 161  | 
 95519  | 
     if( n>db->lookaside.sz ){  | 
 
| 
26897
 | 
 82227  | 
 13292  | 
     }else if( (pBuf = db->lookaside.pFree)!=0 ){  | 
 
| 
26901
 | 
 10677  | 
 2615  | 
     }else if( (pBuf = db->lookaside.pInit)!=0 ){  | 
 
| 
26908
 | 
 0  | 
 34193  | 
   }else if( db->mallocFailed ){  | 
 
| 
26931
 | 
 13696  | 
 7248  | 
   if( p==0 ) return sqlite3DbMallocRawNN(db, n);  | 
 
| 
26933
 | 
 4585  | 
 2663  | 
   if( isLookaside(db,p) && n<=db->lookaside.sz ) return p;  | 
 
| 
 | 
 4571  | 
 14  | 
   if( isLookaside(db,p) && n<=db->lookaside.sz ) return p;  | 
 
| 
26940
 | 
 2677  | 
 0  | 
   if( db->mallocFailed==0 ){  | 
 
| 
26941
 | 
 14  | 
 2663  | 
     if( isLookaside(db, p) ){  | 
 
| 
26943
 | 
 14  | 
 0  | 
       if( pNew ){  | 
 
| 
26952
 | 
 0  | 
 2663  | 
       if( !pNew ){  | 
 
| 
26969
 | 
 0  | 
 7792  | 
   if( !pNew ){  | 
 
| 
26985
 | 
 732  | 
 1524  | 
   if( z==0 ){  | 
 
| 
26990
 | 
 1524  | 
 0  | 
   if( zNew ){  | 
 
| 
26998
 | 
 94  | 
 20242  | 
   if( z==0 ){  | 
 
| 
27003
 | 
 20242  | 
 0  | 
   if( zNew ){  | 
 
| 
27017
 | 
 0  | 
 2695  | 
   while( sqlite3Isspace(zStart[0]) ) zStart++;  | 
 
| 
27019
 | 
 4259  | 
 0  | 
   while( ALWAYS(n>0) && sqlite3Isspace(zStart[n-1]) ) n--;  | 
 
| 
 | 
 1564  | 
 2695  | 
   while( ALWAYS(n>0) && sqlite3Isspace(zStart[n-1]) ) n--;  | 
 
| 
27038
 | 
 0  | 
 0  | 
   if( db->mallocFailed==0 && db->bBenignMalloc==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( db->mallocFailed==0 && db->bBenignMalloc==0 ){  | 
 
| 
27040
 | 
 0  | 
 0  | 
     if( db->nVdbeExec>0 ){  | 
 
| 
27055
 | 
 0  | 
 0  | 
   if( db->mallocFailed && db->nVdbeExec==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( db->mallocFailed && db->nVdbeExec==0 ){  | 
 
| 
27091
 | 
 45135  | 
 0  | 
   if( db->mallocFailed || rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
 | 
 0  | 
 45135  | 
   if( db->mallocFailed || rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
27221
 | 
 0  | 
 30  | 
   if( (*cnt)<=0 ) return '0';  | 
 
| 
27244
 | 
 0  | 
 0  | 
   if( p->nArg<=p->nUsed ) return 0;  | 
 
| 
27248
 | 
 0  | 
 0  | 
   if( p->nArg<=p->nUsed ) return 0.0;  | 
 
| 
27252
 | 
 0  | 
 0  | 
   if( p->nArg<=p->nUsed ) return 0;  | 
 
| 
27313
 | 
 0  | 
 4206  | 
   if( (pAccum->printfFlags & SQLITE_PRINTF_SQLFUNC)!=0 ){  | 
 
| 
27314
 | 
 0  | 
 0  | 
     pArgList = va_arg(ap, PrintfArguments*);  | 
 
| 
27319
 | 
 8118  | 
 1267  | 
   for(; (c=(*fmt))!=0; ++fmt){  | 
 
| 
27320
 | 
 7350  | 
 768  | 
     if( c!='%' ){  | 
 
| 
27325
 | 
 71507  | 
 2939  | 
       do{ fmt++; }while( *fmt && *fmt != '%' );  | 
 
| 
 | 
 67096  | 
 4411  | 
       do{ fmt++; }while( *fmt && *fmt != '%' );  | 
 
| 
27328
 | 
 2939  | 
 4411  | 
       if( *fmt==0 ) break;  | 
 
| 
27330
 | 
 0  | 
 5179  | 
     if( (c=(*++fmt))==0 ){  | 
 
| 
27349
 | 
 2  | 
 5179  | 
     }while( !done && (c=(*++fmt))!=0 );  | 
 
| 
 | 
 2  | 
 0  | 
     }while( !done && (c=(*++fmt))!=0 );  | 
 
| 
27351
 | 
 0  | 
 5179  | 
     if( c=='*' ){  | 
 
| 
27352
 | 
 0  | 
 0  | 
       if( bArgList ){  | 
 
| 
27355
 | 
 0  | 
 0  | 
         width = va_arg(ap,int);  | 
 
| 
27357
 | 
 0  | 
 0  | 
       if( width<0 ){  | 
 
| 
27359
 | 
 0  | 
 0  | 
         width = width >= -2147483647 ? -width : 0;  | 
 
| 
27364
 | 
 4947  | 
 232  | 
       while( c>='0' && c<='9' ){  | 
 
| 
 | 
 0  | 
 4947  | 
       while( c>='0' && c<='9' ){  | 
 
| 
27379
 | 
 232  | 
 4947  | 
     if( c=='.' ){  | 
 
| 
27381
 | 
 230  | 
 2  | 
       if( c=='*' ){  | 
 
| 
27382
 | 
 0  | 
 230  | 
         if( bArgList ){  | 
 
| 
27385
 | 
 230  | 
 0  | 
           precision = va_arg(ap,int);  | 
 
| 
27388
 | 
 0  | 
 230  | 
         if( precision<0 ){  | 
 
| 
27389
 | 
 0  | 
 0  | 
           precision = precision >= -2147483647 ? -precision : -1;  | 
 
| 
27393
 | 
 6  | 
 0  | 
         while( c>='0' && c<='9' ){  | 
 
| 
 | 
 4  | 
 2  | 
         while( c>='0' && c<='9' ){  | 
 
| 
27412
 | 
 333  | 
 4846  | 
     if( c=='l' ){  | 
 
| 
27415
 | 
 333  | 
 0  | 
       if( c=='l' ){  | 
 
| 
27425
 | 
 17475  | 
 0  | 
     for(idx=0; idx
 | 
 
| 
27426
 | 
 5179  | 
 12296  | 
       if( c==fmtinfo[idx].fmttype ){  | 
 
| 
27460
 | 
 929  | 
 33  | 
         if( infop->flags & FLAG_SIGNED ){  | 
 
| 
27462
 | 
 0  | 
 929  | 
           if( bArgList ){  | 
 
| 
27464
 | 
 333  | 
 596  | 
           }else if( flag_long ){  | 
 
| 
27465
 | 
 333  | 
 0  | 
             if( flag_long==2 ){  | 
 
| 
27466
 | 
 333  | 
 0  | 
               v = va_arg(ap,i64) ;  | 
 
| 
27468
 | 
 0  | 
 0  | 
               v = va_arg(ap,long int);  | 
 
| 
27471
 | 
 113  | 
 483  | 
             v = va_arg(ap,int);  | 
 
| 
27473
 | 
 0  | 
 929  | 
           if( v<0 ){  | 
 
| 
27474
 | 
 0  | 
 0  | 
             if( v==SMALLEST_INT64 ){  | 
 
| 
27485
 | 
 0  | 
 33  | 
           if( bArgList ){  | 
 
| 
27487
 | 
 0  | 
 33  | 
           }else if( flag_long ){  | 
 
| 
27488
 | 
 0  | 
 0  | 
             if( flag_long==2 ){  | 
 
| 
27489
 | 
 0  | 
 0  | 
               longvalue = va_arg(ap,u64);  | 
 
| 
27491
 | 
 0  | 
 0  | 
               longvalue = va_arg(ap,unsigned long int);  | 
 
| 
27494
 | 
 33  | 
 0  | 
             longvalue = va_arg(ap,unsigned int);  | 
 
| 
27498
 | 
 46  | 
 916  | 
         if( longvalue==0 ) flag_alternateform = 0;  | 
 
| 
27499
 | 
 0  | 
 962  | 
         if( flag_zeropad && precision
 | 
 
| 
 | 
 0  | 
 0  | 
         if( flag_zeropad && precision
 | 
 
| 
27502
 | 
 962  | 
 0  | 
         if( precision
 | 
 
| 
27508
 | 
 0  | 
 0  | 
           if( zOut==0 ){  | 
 
| 
27515
 | 
 0  | 
 962  | 
         if( xtype==etORDINAL ){  | 
 
| 
27518
 | 
 0  | 
 0  | 
           if( x>=4 || (longvalue/10)%10==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( x>=4 || (longvalue/10)%10==1 ){  | 
 
| 
27530
 | 
 40  | 
 962  | 
           }while( longvalue>0 );  | 
 
| 
27533
 | 
 0  | 
 962  | 
         while( precision>length ){  | 
 
| 
27537
 | 
 0  | 
 962  | 
         if( cThousand ){  | 
 
| 
27541
 | 
 0  | 
 0  | 
           for(idx=0; nn>0; idx++){  | 
 
| 
27544
 | 
 0  | 
 0  | 
             if( ix==0 ){  | 
 
| 
27551
 | 
 0  | 
 962  | 
         if( prefix ) *(--bufpt) = prefix;               /* Add sign */  | 
 
| 
27552
 | 
 0  | 
 962  | 
         if( flag_alternateform && infop->prefix ){      /* Add "0" or "0x" */  | 
 
| 
 | 
 0  | 
 0  | 
         if( flag_alternateform && infop->prefix ){      /* Add "0" or "0x" */  | 
 
| 
27556
 | 
 0  | 
 0  | 
           for(; (x=(*pre))!=0; pre++) *(--bufpt) = x;  | 
 
| 
27563
 | 
 0  | 
 2  | 
         if( bArgList ){  | 
 
| 
27566
 | 
 2  | 
 0  | 
           realvalue = va_arg(ap,double);  | 
 
| 
27571
 | 
 0  | 
 2  | 
         if( precision<0 ) precision = 6;         /* Set default precision */  | 
 
| 
27572
 | 
 0  | 
 2  | 
         if( realvalue<0.0 ){  | 
 
| 
27578
 | 
 2  | 
 0  | 
         if( xtype==etGENERIC && precision>0 ) precision--;  | 
 
| 
 | 
 2  | 
 0  | 
         if( xtype==etGENERIC && precision>0 ) precision--;  | 
 
| 
27580
 | 
 28  | 
 2  | 
         for(idx=precision&0xfff, rounder=0.5; idx>0; idx--, rounder*=0.1){}  | 
 
| 
27581
 | 
 0  | 
 2  | 
         if( xtype==etFLOAT ) realvalue += rounder;  | 
 
| 
27584
 | 
 0  | 
 2  | 
         if( sqlite3IsNaN((double)realvalue) ){  | 
 
| 
27589
 | 
 2  | 
 0  | 
         if( realvalue>0.0 ){  | 
 
| 
27591
 | 
 0  | 
 2  | 
           while( realvalue>=1e100*scale && exp<=350 ){ scale *= 1e100;exp+=100;}  | 
 
| 
 | 
 0  | 
 0  | 
           while( realvalue>=1e100*scale && exp<=350 ){ scale *= 1e100;exp+=100;}  | 
 
| 
27592
 | 
 0  | 
 2  | 
           while( realvalue>=1e10*scale && exp<=350 ){ scale *= 1e10; exp+=10; }  | 
 
| 
 | 
 0  | 
 0  | 
           while( realvalue>=1e10*scale && exp<=350 ){ scale *= 1e10; exp+=10; }  | 
 
| 
27593
 | 
 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++; }  | 
 
| 
27595
 | 
 0  | 
 2  | 
           while( realvalue<1e-8 ){ realvalue *= 1e8; exp-=8; }  | 
 
| 
27596
 | 
 0  | 
 2  | 
           while( realvalue<1.0 ){ realvalue *= 10.0; exp--; }  | 
 
| 
27597
 | 
 0  | 
 2  | 
           if( exp>350 ){  | 
 
| 
27601
 | 
 0  | 
 0  | 
             length = 3+(prefix!=0);  | 
 
| 
27610
 | 
 2  | 
 0  | 
         if( xtype!=etFLOAT ){  | 
 
| 
27612
 | 
 0  | 
 2  | 
           if( realvalue>=10.0 ){ realvalue *= 0.1; exp++; }  | 
 
| 
27614
 | 
 2  | 
 0  | 
         if( xtype==etGENERIC ){  | 
 
| 
27616
 | 
 2  | 
 0  | 
           if( exp<-4 || exp>precision ){  | 
 
| 
 | 
 0  | 
 2  | 
           if( exp<-4 || exp>precision ){  | 
 
| 
27625
 | 
 0  | 
 2  | 
         if( xtype==etEXP ){  | 
 
| 
27630
 | 
 0  | 
 2  | 
         if( MAX(e2,0)+(i64)precision+(i64)width > etBUFSIZE - 15 ){  | 
 
| 
27633
 | 
 0  | 
 0  | 
           if( bufpt==0 ){  | 
 
| 
27642
 | 
 0  | 
 2  | 
         if( prefix ){  | 
 
| 
27646
 | 
 0  | 
 2  | 
         if( e2<0 ){  | 
 
| 
27649
 | 
 14  | 
 2  | 
           for(; e2>=0; e2--){  | 
 
| 
27654
 | 
 2  | 
 0  | 
         if( flag_dp ){  | 
 
| 
27659
 | 
 0  | 
 2  | 
         for(e2++; e2<0; precision--, e2++){  | 
 
| 
27664
 | 
 16  | 
 2  | 
         while( (precision--)>0 ){  | 
 
| 
27668
 | 
 2  | 
 0  | 
         if( flag_rtz && flag_dp ){  | 
 
| 
 | 
 2  | 
 0  | 
         if( flag_rtz && flag_dp ){  | 
 
| 
27669
 | 
 14  | 
 2  | 
           while( bufpt[-1]=='0' ) *(--bufpt) = 0;  | 
 
| 
27671
 | 
 0  | 
 2  | 
           if( bufpt[-1]=='.' ){  | 
 
| 
27672
 | 
 0  | 
 0  | 
             if( flag_altform2 ){  | 
 
| 
27680
 | 
 0  | 
 2  | 
         if( xtype==etEXP ){  | 
 
| 
27682
 | 
 0  | 
 0  | 
           if( exp<0 ){  | 
 
| 
27687
 | 
 0  | 
 0  | 
           if( exp>=100 ){  | 
 
| 
27704
 | 
 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){  | 
 
| 
27707
 | 
 0  | 
 0  | 
           for(i=width; i>=nPad; i--){  | 
 
| 
27711
 | 
 0  | 
 0  | 
           while( nPad-- ) bufpt[i++] = '0';  | 
 
| 
27717
 | 
 0  | 
 0  | 
         if( !bArgList ){  | 
 
| 
27718
 | 
 0  | 
 0  | 
           *(va_arg(ap,int*)) = pAccum->nChar;  | 
 
| 
27728
 | 
 0  | 
 0  | 
         if( bArgList ){  | 
 
| 
27731
 | 
 0  | 
 0  | 
           if( bufpt ){  | 
 
| 
27733
 | 
 0  | 
 0  | 
             if( (c&0xc0)==0xc0 ){  | 
 
| 
27734
 | 
 0  | 
 0  | 
               while( length<4 && (bufpt[0]&0xc0)==0x80 ){  | 
 
| 
 | 
 0  | 
 0  | 
               while( length<4 && (bufpt[0]&0xc0)==0x80 ){  | 
 
| 
27742
 | 
 0  | 
 0  | 
           unsigned int ch = va_arg(ap,unsigned int);  | 
 
| 
27743
 | 
 0  | 
 0  | 
           if( ch<0x00080 ){  | 
 
| 
27746
 | 
 0  | 
 0  | 
           }else if( ch<0x00800 ){  | 
 
| 
27750
 | 
 0  | 
 0  | 
           }else if( ch<0x10000 ){  | 
 
| 
27763
 | 
 0  | 
 0  | 
         if( precision>1 ){  | 
 
| 
27765
 | 
 0  | 
 0  | 
           if( width>1 && !flag_leftjustify ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( width>1 && !flag_leftjustify ){  | 
 
| 
27769
 | 
 0  | 
 0  | 
           while( precision-- > 1 ){  | 
 
| 
27778
 | 
 0  | 
 2222  | 
         if( bArgList ){  | 
 
| 
27782
 | 
 2222  | 
 0  | 
           bufpt = va_arg(ap,char*);  | 
 
| 
27784
 | 
 1  | 
 2221  | 
         if( bufpt==0 ){  | 
 
| 
27786
 | 
 14  | 
 2207  | 
         }else if( xtype==etDYNSTRING ){  | 
 
| 
27787
 | 
 14  | 
 0  | 
           if( pAccum->nChar==0  | 
 
| 
27788
 | 
 14  | 
 0  | 
            && pAccum->mxAlloc  | 
 
| 
27789
 | 
 14  | 
 0  | 
            && width==0  | 
 
| 
27790
 | 
 14  | 
 0  | 
            && precision<0  | 
 
| 
27791
 | 
 14  | 
 0  | 
            && pAccum->accError==0  | 
 
| 
27806
 | 
 220  | 
 1988  | 
         if( precision>=0 ){  | 
 
| 
27807
 | 
 0  | 
 220  | 
           if( flag_altform2 ){  | 
 
| 
27811
 | 
 0  | 
 0  | 
             while( precision-- > 0 && z[0] ){  | 
 
| 
 | 
 0  | 
 0  | 
             while( precision-- > 0 && z[0] ){  | 
 
| 
27812
 | 
 0  | 
 0  | 
               SQLITE_SKIP_UTF8(z);  | 
 
| 
 | 
 0  | 
 0  | 
               SQLITE_SKIP_UTF8(z);  | 
 
| 
27816
 | 
 10566  | 
 220  | 
             for(length=0; length
 | 
 
| 
 | 
 10566  | 
 0  | 
             for(length=0; length
 | 
 
| 
27822
 | 
 0  | 
 4189  | 
         if( flag_altform2 && width>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( flag_altform2 && width>0 ){  | 
 
| 
27825
 | 
 0  | 
 0  | 
           while( ii>=0 ) if( (bufpt[ii--] & 0xc0)==0x80 ) width++;  | 
 
| 
 | 
 0  | 
 0  | 
           while( ii>=0 ) if( (bufpt[ii--] & 0xc0)==0x80 ) width++;  | 
 
| 
27834
 | 
 194  | 
 1787  | 
         char q = ((xtype==etSQLESCAPE3)?'"':'\'');   /* Quote character */  | 
 
| 
27837
 | 
 0  | 
 1981  | 
         if( bArgList ){  | 
 
| 
27840
 | 
 1503  | 
 478  | 
           escarg = va_arg(ap,char*);  | 
 
| 
27843
 | 
 33  | 
 1948  | 
         if( isnull ) escarg = (xtype==etSQLESCAPE2 ? "NULL" : "(NULL)");  | 
 
| 
 | 
 33  | 
 0  | 
         if( isnull ) escarg = (xtype==etSQLESCAPE2 ? "NULL" : "(NULL)");  | 
 
| 
27850
 | 
 26611  | 
 10  | 
         for(i=n=0; k!=0 && (ch=escarg[i])!=0; i++, k--){  | 
 
| 
 | 
 24640  | 
 1971  | 
         for(i=n=0; k!=0 && (ch=escarg[i])!=0; i++, k--){  | 
 
| 
27851
 | 
 134  | 
 24506  | 
           if( ch==q )  n++;  | 
 
| 
27852
 | 
 0  | 
 24640  | 
           if( flag_altform2 && (ch&0xc0)==0xc0 ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( flag_altform2 && (ch&0xc0)==0xc0 ){  | 
 
| 
27853
 | 
 0  | 
 0  | 
             while( (escarg[i+1]&0xc0)==0x80 ){ i++; }  | 
 
| 
27856
 | 
 1948  | 
 33  | 
         needQuote = !isnull && xtype==etSQLESCAPE2;  | 
 
| 
 | 
 1160  | 
 788  | 
         needQuote = !isnull && xtype==etSQLESCAPE2;  | 
 
| 
27858
 | 
 85  | 
 1896  | 
         if( n>etBUFSIZE ){  | 
 
| 
27860
 | 
 0  | 
 85  | 
           if( bufpt==0 ){  | 
 
| 
27868
 | 
 1160  | 
 821  | 
         if( needQuote ) bufpt[j++] = q;  | 
 
| 
27870
 | 
 24640  | 
 1981  | 
         for(i=0; i
 | 
 
| 
27872
 | 
 134  | 
 24506  | 
           if( ch==q ) bufpt[j++] = ch;  | 
 
| 
27874
 | 
 1160  | 
 821  | 
         if( needQuote ) bufpt[j++] = q;  | 
 
| 
27881
 | 
 0  | 
 12  | 
         if( (pAccum->printfFlags & SQLITE_PRINTF_INTERNAL)==0 ) return;  | 
 
| 
27882
 | 
 12  | 
 0  | 
         pToken = va_arg(ap, Token*);  | 
 
| 
27884
 | 
 12  | 
 0  | 
         if( pToken && pToken->n ){  | 
 
| 
 | 
 12  | 
 0  | 
         if( pToken && pToken->n ){  | 
 
| 
27894
 | 
 0  | 
 0  | 
         if( (pAccum->printfFlags & SQLITE_PRINTF_INTERNAL)==0 ) return;  | 
 
| 
27895
 | 
 0  | 
 0  | 
         pSrc = va_arg(ap, SrcList*);  | 
 
| 
27896
 | 
 0  | 
 0  | 
         k = va_arg(ap, int);  | 
 
| 
27900
 | 
 0  | 
 0  | 
         if( pItem->zDatabase ){  | 
 
| 
27922
 | 
 0  | 
 5179  | 
     if( width>0 ){  | 
 
| 
27923
 | 
 0  | 
 0  | 
       if( !flag_leftjustify ) sqlite3_str_appendchar(pAccum, width, ' ');  | 
 
| 
27925
 | 
 0  | 
 0  | 
       if( flag_leftjustify ) sqlite3_str_appendchar(pAccum, width, ' ');  | 
 
| 
27930
 | 
 85  | 
 5094  | 
     if( zExtra ){  | 
 
| 
27947
 | 
 0  | 
 870  | 
   if( p->accError ){  | 
 
| 
27952
 | 
 0  | 
 870  | 
   if( p->mxAlloc==0 ){  | 
 
| 
27957
 | 
 214  | 
 656  | 
     char *zOld = isMalloced(p) ? p->zText : 0;  | 
 
| 
27960
 | 
 870  | 
 0  | 
     if( szNew+p->nChar<=p->mxAlloc ){  | 
 
| 
27965
 | 
 0  | 
 870  | 
     if( szNew > p->mxAlloc ){  | 
 
| 
27972
 | 
 780  | 
 90  | 
     if( p->db ){  | 
 
| 
27977
 | 
 870  | 
 0  | 
     if( zNew ){  | 
 
| 
27979
 | 
 656  | 
 214  | 
       if( !isMalloced(p) && p->nChar>0 ) memcpy(zNew, p->zText, p->nChar);  | 
 
| 
 | 
 628  | 
 28  | 
       if( !isMalloced(p) && p->nChar>0 ) memcpy(zNew, p->zText, p->nChar);  | 
 
| 
27997
 | 
 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 ){  | 
 
| 
28000
 | 
 0  | 
 0  | 
   while( (N--)>0 ) p->zText[p->nChar++] = c;  | 
 
| 
28013
 | 
 870  | 
 0  | 
   if( N>0 ){  | 
 
| 
28028
 | 
 870  | 
 11817  | 
   if( p->nChar+N >= p->nAlloc ){  | 
 
| 
28030
 | 
 11763  | 
 54  | 
   }else if( N ){  | 
 
| 
28054
 | 
 3073  | 
 0  | 
   if( zText ){  | 
 
| 
28064
 | 
 3743  | 
 0  | 
   if( p->zText ){  | 
 
| 
28066
 | 
 3743  | 
 0  | 
     if( p->mxAlloc>0 && !isMalloced(p) ){  | 
 
| 
 | 
 3073  | 
 670  | 
     if( p->mxAlloc>0 && !isMalloced(p) ){  | 
 
| 
28087
 | 
 2  | 
 0  | 
   if( p!=0 && p!=&sqlite3OomStr ){  | 
 
| 
 | 
 2  | 
 0  | 
   if( p!=0 && p!=&sqlite3OomStr ){  | 
 
| 
28098
 | 
 0  | 
 0  | 
   return p ? p->accError : SQLITE_NOMEM;  | 
 
| 
28103
 | 
 0  | 
 0  | 
   return p ? p->nChar : 0;  | 
 
| 
28108
 | 
 0  | 
 0  | 
   if( p==0 || p->nChar==0 ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
   if( p==0 || p->nChar==0 ) return 0;  | 
 
| 
28117
 | 
 0  | 
 0  | 
   if( isMalloced(p) ){  | 
 
| 
28153
 | 
 2  | 
 0  | 
   if( p ){  | 
 
| 
28154
 | 
 2  | 
 0  | 
     sqlite3StrAccumInit(p, 0, 0, 0,  | 
 
| 
28176
 | 
 0  | 
 1433  | 
   if( acc.accError==SQLITE_NOMEM ){  | 
 
| 
28211
 | 
 0  | 
 2268  | 
   if( sqlite3_initialize() ) return 0;  | 
 
| 
28227
 | 
 0  | 
 2198  | 
   if( sqlite3_initialize() ) return 0;  | 
 
| 
28250
 | 
 0  | 
 485  | 
   if( n<=0 ) return zBuf;  | 
 
| 
28301
 | 
 0  | 
 60  | 
   if( sqlite3GlobalConfig.xLog ){  | 
 
| 
29094
 | 
 0  | 
 980  | 
   if( sqlite3_initialize() ) return;  | 
 
| 
29102
 | 
 959  | 
 21  | 
   if( N<=0 || pBuf==0 ){  | 
 
| 
 | 
 0  | 
 959  | 
   if( N<=0 || pBuf==0 ){  | 
 
| 
29117
 | 
 86  | 
 873  | 
   if( !wsdPrng.isInit ){  | 
 
| 
29123
 | 
 22016  | 
 86  | 
     for(i=0; i<256; i++){  | 
 
| 
29126
 | 
 22016  | 
 86  | 
     for(i=0; i<256; i++){  | 
 
| 
29144
 | 
 2877  | 
 959  | 
   }while( --N );  | 
 
| 
29628
 | 
 84  | 
 9  | 
   if( c>=0xc0 ){  | 
 
| 
29630
 | 
 126  | 
 84  | 
     while( (*(*pz) & 0xc0)==0x80 ){  | 
 
| 
29633
 | 
 84  | 
 0  | 
     if( c<0x80  | 
 
| 
29634
 | 
 84  | 
 0  | 
         || (c&0xFFFFF800)==0xD800  | 
 
| 
29635
 | 
 0  | 
 84  | 
         || (c&0xFFFFFFFE)==0xFFFE ){  c = 0xFFFD; }  | 
 
| 
29681
 | 
 0  | 
 0  | 
   if( pMem->enc!=SQLITE_UTF8 && desiredEnc!=SQLITE_UTF8 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pMem->enc!=SQLITE_UTF8 && desiredEnc!=SQLITE_UTF8 ){  | 
 
| 
29685
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
29691
 | 
 0  | 
 0  | 
     while( zIn
 | 
 
| 
29702
 | 
 0  | 
 0  | 
   if( desiredEnc==SQLITE_UTF8 ){  | 
 
| 
29728
 | 
 0  | 
 0  | 
   if( !zOut ){  | 
 
| 
29733
 | 
 0  | 
 0  | 
   if( pMem->enc==SQLITE_UTF8 ){  | 
 
| 
29734
 | 
 0  | 
 0  | 
     if( desiredEnc==SQLITE_UTF16LE ){  | 
 
| 
29736
 | 
 0  | 
 0  | 
       while( zIn
 | 
 
| 
29737
 | 
 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);  | 
 
| 
29738
 | 
 0  | 
 0  | 
         WRITE_UTF16LE(z, c);  | 
 
| 
29743
 | 
 0  | 
 0  | 
       while( zIn
 | 
 
| 
29744
 | 
 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);  | 
 
| 
29745
 | 
 0  | 
 0  | 
         WRITE_UTF16BE(z, c);  | 
 
| 
29752
 | 
 0  | 
 0  | 
     if( pMem->enc==SQLITE_UTF16LE ){  | 
 
| 
29754
 | 
 0  | 
 0  | 
       while( zIn
 | 
 
| 
29755
 | 
 0  | 
 0  | 
         READ_UTF16LE(zIn, zIn
 | 
 
| 
 | 
 0  | 
 0  | 
         READ_UTF16LE(zIn, zIn
 | 
 
| 
 | 
 0  | 
 0  | 
         READ_UTF16LE(zIn, zIn
 | 
 
| 
29756
 | 
 0  | 
 0  | 
         WRITE_UTF8(z, c);  | 
 
| 
 | 
 0  | 
 0  | 
         WRITE_UTF8(z, c);  | 
 
| 
 | 
 0  | 
 0  | 
         WRITE_UTF8(z, c);  | 
 
| 
29760
 | 
 0  | 
 0  | 
       while( zIn
 | 
 
| 
29761
 | 
 0  | 
 0  | 
         READ_UTF16BE(zIn, zIn
 | 
 
| 
 | 
 0  | 
 0  | 
         READ_UTF16BE(zIn, zIn
 | 
 
| 
 | 
 0  | 
 0  | 
         READ_UTF16BE(zIn, zIn
 | 
 
| 
29762
 | 
 0  | 
 0  | 
         WRITE_UTF8(z, c);  | 
 
| 
 | 
 0  | 
 0  | 
         WRITE_UTF8(z, c);  | 
 
| 
 | 
 0  | 
 0  | 
         WRITE_UTF8(z, c);  | 
 
| 
29805
 | 
 0  | 
 0  | 
   if( pMem->n>1 ){  | 
 
| 
29808
 | 
 0  | 
 0  | 
     if( b1==0xFE && b2==0xFF ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( b1==0xFE && b2==0xFF ){  | 
 
| 
29811
 | 
 0  | 
 0  | 
     if( b1==0xFF && b2==0xFE ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( b1==0xFF && b2==0xFE ){  | 
 
| 
29816
 | 
 0  | 
 0  | 
   if( bom ){  | 
 
| 
29818
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
29842
 | 
 602  | 
 0  | 
   if( nByte>=0 ){  | 
 
| 
29848
 | 
 31740  | 
 0  | 
   while( *z!=0 && z
 | 
 
| 
 | 
 31138  | 
 602  | 
   while( *z!=0 && z
 | 
 
| 
29849
 | 
 16  | 
 31122  | 
     SQLITE_SKIP_UTF8(z);  | 
 
| 
 | 
 24  | 
 16  | 
     SQLITE_SKIP_UTF8(z);  | 
 
| 
29898
 | 
 0  | 
 0  | 
   if( db->mallocFailed ){  | 
 
| 
29924
 | 
 0  | 
 0  | 
     while( n
 | 
 
| 
29925
 | 
 0  | 
 0  | 
       READ_UTF16LE(z, 1, c);  | 
 
| 
 | 
 0  | 
 0  | 
       READ_UTF16LE(z, 1, c);  | 
 
| 
30036
 | 
 0  | 
 948  | 
   return xCallback ? xCallback(iTest) : SQLITE_OK;  | 
 
| 
30096
 | 
 176  | 
 66157  | 
   if( z==0 ) return 0;  | 
 
| 
30108
 | 
 188  | 
 2079  | 
   if( (pCol->colFlags & COLFLAG_HASTYPE)==0 ) return zDflt;  | 
 
| 
30118
 | 
 668  | 
 12  | 
   if( db->pErr ) sqlite3ValueSetNull(db->pErr);  | 
 
| 
30130
 | 
 12648  | 
 12  | 
   if( err_code || db->pErr ) sqlite3ErrorFinish(db, err_code);  | 
 
| 
 | 
 668  | 
 11980  | 
   if( err_code || db->pErr ) sqlite3ErrorFinish(db, err_code);  | 
 
| 
30138
 | 
 0  | 
 761  | 
   if( rc==SQLITE_IOERR_NOMEM ) return;  | 
 
| 
30140
 | 
 755  | 
 6  | 
   if( rc==SQLITE_CANTOPEN || rc==SQLITE_IOERR ){  | 
 
| 
 | 
 0  | 
 755  | 
   if( rc==SQLITE_CANTOPEN || rc==SQLITE_IOERR ){  | 
 
| 
30170
 | 
 23  | 
 25  | 
   if( zFormat==0 ){  | 
 
| 
30172
 | 
 23  | 
 2  | 
   }else if( db->pErr || (db->pErr = sqlite3ValueNew(db))!=0 ){  | 
 
| 
 | 
 23  | 
 0  | 
   }else if( db->pErr || (db->pErr = sqlite3ValueNew(db))!=0 ){  | 
 
| 
30206
 | 
 1  | 
 10  | 
   if( db->suppressErr ){  | 
 
| 
30236
 | 
 0  | 
 16967  | 
   if( z==0 ) return;  | 
 
| 
30238
 | 
 13590  | 
 3377  | 
   if( !sqlite3Isquote(quote) ) return;  | 
 
| 
30239
 | 
 6  | 
 3371  | 
   if( quote=='[' ) quote = ']';  | 
 
| 
30242
 | 
 3517  | 
 34202  | 
     if( z[i]==quote ){  | 
 
| 
30243
 | 
 140  | 
 3377  | 
       if( z[i+1]==quote ){  | 
 
| 
30278
 | 
 0  | 
 6455  | 
   if( zLeft==0 ){  | 
 
| 
30279
 | 
 0  | 
 0  | 
     return zRight ? -1 : 0;  | 
 
| 
30280
 | 
 0  | 
 6455  | 
   }else if( zRight==0 ){  | 
 
| 
30292
 | 
 422507  | 
 170564  | 
     if( c || *a==0 ) break;  | 
 
| 
 | 
 394933  | 
 27574  | 
     if( c || *a==0 ) break;  | 
 
| 
30300
 | 
 33  | 
 970  | 
   if( zLeft==0 ){  | 
 
| 
30301
 | 
 33  | 
 0  | 
     return zRight ? -1 : 0;  | 
 
| 
30302
 | 
 0  | 
 970  | 
   }else if( zRight==0 ){  | 
 
| 
30307
 | 
 4837  | 
 652  | 
   while( N-- > 0 && *a!=0 && UpperToLower[*a]==UpperToLower[*b]){ a++; b++; }  | 
 
| 
 | 
 4837  | 
 0  | 
   while( N-- > 0 && *a!=0 && UpperToLower[*a]==UpperToLower[*b]){ a++; b++; }  | 
 
| 
 | 
 4519  | 
 318  | 
   while( N-- > 0 && *a!=0 && UpperToLower[*a]==UpperToLower[*b]){ a++; b++; }  | 
 
| 
30308
 | 
 318  | 
 652  | 
   return N<0 ? 0 : UpperToLower[*a] - UpperToLower[*b];  | 
 
| 
30341
 | 
 7888  | 
 971  | 
     if( E & 1 ) r *= x;  | 
 
| 
30343
 | 
 2170  | 
 6689  | 
     if( E==0 ) break;  | 
 
| 
30390
 | 
 2519  | 
 0  | 
   if( enc==SQLITE_UTF8 ){  | 
 
| 
30396
 | 
 0  | 
 0  | 
     for(i=3-enc; i
 | 
 
| 
 | 
 0  | 
 0  | 
     for(i=3-enc; i
 | 
 
| 
30403
 | 
 2519  | 
 0  | 
   while( z
 | 
 
| 
 | 
 0  | 
 2519  | 
   while( z
 | 
 
| 
30404
 | 
 0  | 
 2519  | 
   if( z>=zEnd ) return 0;  | 
 
| 
30407
 | 
 4  | 
 2515  | 
   if( *z=='-' ){  | 
 
| 
30410
 | 
 0  | 
 2515  | 
   }else if( *z=='+' ){  | 
 
| 
30415
 | 
 4848  | 
 321  | 
   while( z
 | 
 
| 
 | 
 2650  | 
 2198  | 
   while( z
 | 
 
| 
 | 
 2650  | 
 0  | 
   while( z
 | 
 
| 
30422
 | 
 2198  | 
 321  | 
   while( z
 | 
 
| 
 | 
 0  | 
 2198  | 
   while( z
 | 
 
| 
30423
 | 
 321  | 
 2198  | 
   if( z>=zEnd ) goto do_atof_calc;  | 
 
| 
30426
 | 
 2170  | 
 28  | 
   if( *z=='.' ){  | 
 
| 
30430
 | 
 32436  | 
 2169  | 
     while( z
 | 
 
| 
 | 
 32435  | 
 1  | 
     while( z
 | 
 
| 
30431
 | 
 32435  | 
 0  | 
       if( s<((LARGEST_INT64-9)/10) ){  | 
 
| 
30438
 | 
 2169  | 
 29  | 
   if( z>=zEnd ) goto do_atof_calc;  | 
 
| 
30441
 | 
 28  | 
 1  | 
   if( *z=='e' || *z=='E' ){  | 
 
| 
 | 
 0  | 
 28  | 
   if( *z=='e' || *z=='E' ){  | 
 
| 
30448
 | 
 0  | 
 1  | 
     if( z>=zEnd ) goto do_atof_calc;              /*PREVENTS-HARMLESS-OVERREAD*/  | 
 
| 
30451
 | 
 1  | 
 0  | 
     if( *z=='-' ){  | 
 
| 
30454
 | 
 0  | 
 0  | 
     }else if( *z=='+' ){  | 
 
| 
30458
 | 
 2  | 
 1  | 
     while( z
 | 
 
| 
 | 
 2  | 
 0  | 
     while( z
 | 
 
| 
30459
 | 
 2  | 
 0  | 
       e = e<10000 ? (e*10 + (*z - '0')) : 10000;  | 
 
| 
30466
 | 
 52  | 
 1  | 
   while( z
 | 
 
| 
 | 
 24  | 
 28  | 
   while( z
 | 
 
| 
30471
 | 
 2170  | 
 349  | 
   if( e<0 ) {  | 
 
| 
30478
 | 
 28  | 
 2491  | 
   if( s==0 ) {  | 
 
| 
30480
 | 
 0  | 
 28  | 
     result = sign<0 ? -(double)0 : (double)0;  | 
 
| 
30488
 | 
 2170  | 
 321  | 
     while( e>0 ){                                       /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
30489
 | 
 0  | 
 2170  | 
       if( esign>0 ){  | 
 
| 
30490
 | 
 0  | 
 0  | 
         if( s>=(LARGEST_INT64/10) ) break;             /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
30493
 | 
 2170  | 
 0  | 
         if( s%10!=0 ) break;                           /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
30500
 | 
 4  | 
 2487  | 
     s = sign<0 ? -s : s;  | 
 
| 
30502
 | 
 321  | 
 2170  | 
     if( e==0 ){                                         /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
30506
 | 
 0  | 
 2170  | 
       if( e>307 ){                                      /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
30507
 | 
 0  | 
 0  | 
         if( e<342 ){                                    /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
30509
 | 
 0  | 
 0  | 
           if( esign<0 ){  | 
 
| 
30517
 | 
 0  | 
 0  | 
           if( esign<0 ){  | 
 
| 
30529
 | 
 2170  | 
 0  | 
         if( esign<0 ){  | 
 
| 
30542
 | 
 2491  | 
 28  | 
   return z==zEnd && nDigits>0 && eValid && nonNum==0;  | 
 
| 
 | 
 2491  | 
 0  | 
   return z==zEnd && nDigits>0 && eValid && nonNum==0;  | 
 
| 
 | 
 2491  | 
 0  | 
   return z==zEnd && nDigits>0 && eValid && nonNum==0;  | 
 
| 
 | 
 2491  | 
 0  | 
   return z==zEnd && nDigits>0 && eValid && nonNum==0;  | 
 
| 
30567
 | 
 0  | 
 0  | 
   for(i=0; c==0 && i<18; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; c==0 && i<18; i++){  | 
 
| 
30570
 | 
 0  | 
 0  | 
   if( c==0 ){  | 
 
| 
30605
 | 
 582  | 
 0  | 
   if( enc==SQLITE_UTF8 ){  | 
 
| 
30610
 | 
 0  | 
 0  | 
     for(i=3-enc; i
 | 
 
| 
 | 
 0  | 
 0  | 
     for(i=3-enc; i
 | 
 
| 
30615
 | 
 582  | 
 0  | 
   while( zNum
 | 
 
| 
 | 
 0  | 
 582  | 
   while( zNum
 | 
 
| 
30616
 | 
 582  | 
 0  | 
   if( zNum
 | 
 
| 
30617
 | 
 4  | 
 578  | 
     if( *zNum=='-' ){  | 
 
| 
30620
 | 
 0  | 
 578  | 
     }else if( *zNum=='+' ){  | 
 
| 
30625
 | 
 813  | 
 0  | 
   while( zNum
 | 
 
| 
 | 
 231  | 
 582  | 
   while( zNum
 | 
 
| 
30626
 | 
 842  | 
 347  | 
   for(i=0; &zNum[i]='0' && c<='9'; i+=incr){  | 
 
| 
 | 
 607  | 
 235  | 
   for(i=0; &zNum[i]='0' && c<='9'; i+=incr){  | 
 
| 
 | 
 607  | 
 0  | 
   for(i=0; &zNum[i]='0' && c<='9'; i+=incr){  | 
 
| 
30632
 | 
 0  | 
 582  | 
   if( u>LARGEST_INT64 ){  | 
 
| 
30637
 | 
 0  | 
 0  | 
     *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64;  | 
 
| 
30638
 | 
 4  | 
 578  | 
   }else if( neg ){  | 
 
| 
30644
 | 
 231  | 
 351  | 
   if( (i==0 && zStart==zNum)     /* No digits */  | 
 
| 
 | 
 231  | 
 0  | 
   if( (i==0 && zStart==zNum)     /* No digits */  | 
 
| 
30645
 | 
 0  | 
 582  | 
    || nonNum                     /* UTF16 with high-order bytes non-zero */  | 
 
| 
30648
 | 
 235  | 
 347  | 
   }else if( &zNum[i]
 | 
 
| 
30651
 | 
 235  | 
 231  | 
       if( !sqlite3Isspace(zNum[jj]) ){  | 
 
| 
30656
 | 
 231  | 
 0  | 
     }while( &zNum[jj]
 | 
 
| 
30658
 | 
 582  | 
 0  | 
   if( i<19*incr ){  | 
 
| 
30664
 | 
 0  | 
 0  | 
     c = i>19*incr ? 1 : compare2pow63(zNum, incr);  | 
 
| 
30665
 | 
 0  | 
 0  | 
     if( c<0 ){  | 
 
| 
30670
 | 
 0  | 
 0  | 
       *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64;  | 
 
| 
30671
 | 
 0  | 
 0  | 
       if( c>0 ){  | 
 
| 
30678
 | 
 0  | 
 0  | 
         return neg ? rc : 3;  | 
 
| 
30698
 | 
 0  | 
 12  | 
   if( z[0]=='0'  | 
 
| 
30699
 | 
 0  | 
 0  | 
    && (z[1]=='x' || z[1]=='X')  | 
 
| 
 | 
 0  | 
 0  | 
    && (z[1]=='x' || z[1]=='X')  | 
 
| 
30703
 | 
 0  | 
 0  | 
     for(i=2; z[i]=='0'; i++){}  | 
 
| 
30704
 | 
 0  | 
 0  | 
     for(k=i; sqlite3Isxdigit(z[k]); k++){  | 
 
| 
30708
 | 
 0  | 
 0  | 
     return (z[k]==0 && k-i<=16) ? 0 : 2;  | 
 
| 
 | 
 0  | 
 0  | 
     return (z[k]==0 && k-i<=16) ? 0 : 2;  | 
 
| 
30730
 | 
 0  | 
 1743  | 
   if( zNum[0]=='-' ){  | 
 
| 
30733
 | 
 0  | 
 1743  | 
   }else if( zNum[0]=='+' ){  | 
 
| 
30737
 | 
 29  | 
 1714  | 
   else if( zNum[0]=='0'  | 
 
| 
30738
 | 
 29  | 
 0  | 
         && (zNum[1]=='x' || zNum[1]=='X')  | 
 
| 
 | 
 0  | 
 29  | 
         && (zNum[1]=='x' || zNum[1]=='X')  | 
 
| 
30739
 | 
 0  | 
 0  | 
         && sqlite3Isxdigit(zNum[2])  | 
 
| 
30743
 | 
 0  | 
 0  | 
     while( zNum[0]=='0' ) zNum++;  | 
 
| 
30744
 | 
 0  | 
 0  | 
     for(i=0; sqlite3Isxdigit(zNum[i]) && i<8; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; sqlite3Isxdigit(zNum[i]) && i<8; i++){  | 
 
| 
30747
 | 
 0  | 
 0  | 
     if( (u&0x80000000)==0 && sqlite3Isxdigit(zNum[i])==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (u&0x80000000)==0 && sqlite3Isxdigit(zNum[i])==0 ){  | 
 
| 
30755
 | 
 0  | 
 1743  | 
   if( !sqlite3Isdigit(zNum[0]) ) return 0;  | 
 
| 
30756
 | 
 29  | 
 1743  | 
   while( zNum[0]=='0' ) zNum++;  | 
 
| 
30757
 | 
 3969  | 
 0  | 
   for(i=0; i<11 && (c = zNum[i] - '0')>=0 && c<=9; i++){  | 
 
| 
 | 
 2226  | 
 1743  | 
   for(i=0; i<11 && (c = zNum[i] - '0')>=0 && c<=9; i++){  | 
 
| 
 | 
 2226  | 
 0  | 
   for(i=0; i<11 && (c = zNum[i] - '0')>=0 && c<=9; i++){  | 
 
| 
30767
 | 
 0  | 
 1743  | 
   if( i>10 ){  | 
 
| 
30771
 | 
 12  | 
 1731  | 
   if( v-neg>2147483647 ){  | 
 
| 
30774
 | 
 0  | 
 1731  | 
   if( neg ){  | 
 
| 
30787
 | 
 619  | 
 0  | 
   if( z ) sqlite3GetInt32(z, &x);  | 
 
| 
30823
 | 
 0  | 
 13  | 
   if( v & (((u64)0xff000000)<<32) ){  | 
 
| 
30826
 | 
 0  | 
 0  | 
     for(i=7; i>=0; i--){  | 
 
| 
30836
 | 
 26  | 
 13  | 
   }while( v!=0 );  | 
 
| 
30839
 | 
 39  | 
 13  | 
   for(i=0, j=n-1; j>=0; j--, i++){  | 
 
| 
30845
 | 
 1825  | 
 1981  | 
   if( v<=0x7f ){  | 
 
| 
30849
 | 
 1968  | 
 13  | 
   if( v<=0x3fff ){  | 
 
| 
30879
 | 
 2638  | 
 380  | 
   if (!(a&0x80))  | 
 
| 
30888
 | 
 380  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
30905
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
30921
 | 
 0  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
30945
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
30967
 | 
 0  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
30983
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
31000
 | 
 0  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
31065
 | 
 186  | 
 7  | 
   if (!(b&0x80))  | 
 
| 
31079
 | 
 7  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
31106
 | 
 0  | 
 0  | 
     if( (v64 & SQLITE_MAX_U32)!=v64 ){  | 
 
| 
31170
 | 
 145  | 
 4795  | 
   for(i=1; (v >>= 7)!=0; i++){ assert( i<10 ); }  | 
 
| 
31244
 | 
 0  | 
 0  | 
   if( zBlob ){  | 
 
| 
31245
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
31282
 | 
 0  | 
 8788  | 
   if( db==0 ){  | 
 
| 
31287
 | 
 0  | 
 8788  | 
   if( magic!=SQLITE_MAGIC_OPEN ){  | 
 
| 
31288
 | 
 0  | 
 0  | 
     if( sqlite3SafetyCheckSickOrOk(db) ){  | 
 
| 
31300
 | 
 1123  | 
 12  | 
   if( magic!=SQLITE_MAGIC_SICK &&  | 
 
| 
 | 
 6  | 
 1117  | 
   if( magic!=SQLITE_MAGIC_SICK &&  | 
 
| 
31301
 | 
 0  | 
 6  | 
       magic!=SQLITE_MAGIC_OPEN &&  | 
 
| 
31379
 | 
 186  | 
 0  | 
   if( x>=0 ) return x;  | 
 
| 
31380
 | 
 0  | 
 0  | 
   if( x==(int)0x80000000 ) return 0x7fffffff;  | 
 
| 
31433
 | 
 2041  | 
 1804  | 
   if( a>=b ){  | 
 
| 
31434
 | 
 1516  | 
 525  | 
     if( a>b+49 ) return a;  | 
 
| 
31435
 | 
 3  | 
 522  | 
     if( a>b+31 ) return a+1;  | 
 
| 
31438
 | 
 1593  | 
 211  | 
     if( b>a+49 ) return b;  | 
 
| 
31439
 | 
 76  | 
 135  | 
     if( b>a+31 ) return b+1;  | 
 
| 
31451
 | 
 95  | 
 3097  | 
   if( x<8 ){  | 
 
| 
31452
 | 
 36  | 
 59  | 
     if( x<2 ) return 0;  | 
 
| 
31453
 | 
 95  | 
 59  | 
     while( x<8 ){  y -= 10; x <<= 1; }  | 
 
| 
31476
 | 
 0  | 
 43  | 
   if( x<=1 ) return 0;  | 
 
| 
31477
 | 
 43  | 
 0  | 
   if( x<=2000000000 ) return sqlite3LogEst((u64)x);  | 
 
| 
31560
 | 
 8  | 
 22  | 
   if( pIn==0 || pIn[1]+nInt > pIn[0] ){  | 
 
| 
 | 
 0  | 
 8  | 
   if( pIn==0 || pIn[1]+nInt > pIn[0] ){  | 
 
| 
31562
 | 
 0  | 
 22  | 
     int nAlloc = (pIn ? pIn[0]*2 : 10) + nInt;  | 
 
| 
31564
 | 
 0  | 
 22  | 
     if( pOut==0 ) return pIn;  | 
 
| 
31565
 | 
 22  | 
 0  | 
     if( pIn==0 ) pOut[1] = 2;  | 
 
| 
31587
 | 
 3  | 
 32  | 
   if( pIn==0 ) return 0;  | 
 
| 
31591
 | 
 32  | 
 8  | 
     if( pIn[i]==iVal ) return (char*)&pIn[i+2];  | 
 
| 
31593
 | 
 8  | 
 0  | 
   }while( i
 | 
 
| 
31603
 | 
 13  | 
 12  | 
   if( pIn==0 ) return 0;  | 
 
| 
31608
 | 
 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];  | 
 
| 
31610
 | 
 2  | 
 5  | 
   }while( i
 | 
 
| 
31659
 | 
 13108  | 
 2906  | 
   while( elem ){  | 
 
| 
31673
 | 
 352575  | 
 34554  | 
   while( (c = (unsigned char)*z++)!=0 ){     /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
31707
 | 
 12136  | 
 6113  | 
   if( pEntry ){  | 
 
| 
31708
 | 
 5702  | 
 6434  | 
     pHead = pEntry->count ? pEntry->chain : 0;  | 
 
| 
31714
 | 
 5702  | 
 12547  | 
   if( pHead ){  | 
 
| 
31717
 | 
 5666  | 
 36  | 
     if( pHead->prev ){ pHead->prev->next = pNew; }  | 
 
| 
31722
 | 
 10828  | 
 1719  | 
     if( pH->first ){ pH->first->prev = pNew; }  | 
 
| 
31740
 | 
 12  | 
 504  | 
   if( new_size*sizeof(struct _ht)>SQLITE_MALLOC_SOFT_LIMIT ){  | 
 
| 
31743
 | 
 0  | 
 516  | 
   if( new_size==pH->htsize ) return 0;  | 
 
| 
31758
 | 
 0  | 
 516  | 
   if( new_ht==0 ) return 0;  | 
 
| 
31763
 | 
 5016  | 
 516  | 
   for(elem=pH->first, pH->first=0; elem; elem = next_elem){  | 
 
| 
31786
 | 
 29022  | 
 26276  | 
   if( pH->ht ){   /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
31797
 | 
 15333  | 
 39965  | 
   if( pHash ) *pHash = h;  | 
 
| 
31798
 | 
 110786  | 
 41929  | 
   while( count-- ){  | 
 
| 
31800
 | 
 13369  | 
 97417  | 
     if( sqlite3StrICmp(elem->pKey,pKey)==0 ){   | 
 
| 
31851
 | 
 0  | 
 21  | 
   if( elem->prev ){  | 
 
| 
31856
 | 
 7  | 
 14  | 
   if( elem->next ){  | 
 
| 
31859
 | 
 0  | 
 21  | 
   if( pH->ht ){  | 
 
| 
31861
 | 
 0  | 
 0  | 
     if( pEntry->chain==elem ){  | 
 
| 
31869
 | 
 14  | 
 7  | 
   if( pH->count==0 ){  | 
 
| 
31916
 | 
 2029  | 
 13304  | 
   if( elem->data ){  | 
 
| 
31918
 | 
 21  | 
 2008  | 
     if( data==0 ){  | 
 
| 
31926
 | 
 71  | 
 13233  | 
   if( data==0 ) return 0;  | 
 
| 
31928
 | 
 0  | 
 13233  | 
   if( new_elem==0 ) return data;  | 
 
| 
31932
 | 
 7120  | 
 6113  | 
   if( pH->count>=10 && pH->count > 2*pH->htsize ){  | 
 
| 
 | 
 516  | 
 6604  | 
   if( pH->count>=10 && pH->count > 2*pH->htsize ){  | 
 
| 
31933
 | 
 516  | 
 0  | 
     if( rehash(pH, pH->count*2) ){  | 
 
| 
31938
 | 
 7120  | 
 6113  | 
   insertElement(pH, pH->ht ? &pH->ht[h] : 0, new_elem);  | 
 
| 
32876
 | 
 74  | 
 0  | 
   return osGeteuid() ? 0 : osFchown(fd,uid,gid);  | 
 
| 
32897
 | 
 0  | 
 0  | 
   if( zName==0 ){  | 
 
| 
32902
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
32903
 | 
 0  | 
 0  | 
       if( aSyscall[i].pDefault ){  | 
 
| 
32911
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
32912
 | 
 0  | 
 0  | 
       if( strcmp(zName, aSyscall[i].zName)==0 ){  | 
 
| 
32913
 | 
 0  | 
 0  | 
         if( aSyscall[i].pDefault==0 ){  | 
 
| 
32917
 | 
 0  | 
 0  | 
         if( pNewFunc==0 ) pNewFunc = aSyscall[i].pDefault;  | 
 
| 
32938
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
32939
 | 
 0  | 
 0  | 
     if( strcmp(zName, aSyscall[i].zName)==0 ) return aSyscall[i].pCurrent;  | 
 
| 
32954
 | 
 0  | 
 0  | 
   if( zName ){  | 
 
| 
32955
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
32956
 | 
 0  | 
 0  | 
       if( strcmp(zName, aSyscall[i].zName)==0 ) break;  | 
 
| 
32959
 | 
 0  | 
 0  | 
   for(i++; i
 | 
 
| 
32960
 | 
 0  | 
 0  | 
     if( aSyscall[i].pCurrent!=0 ) return aSyscall[i].zName;  | 
 
| 
32993
 | 
 74  | 
 267  | 
   mode_t m2 = m ? m : SQLITE_DEFAULT_FILE_PERMISSIONS;  | 
 
| 
33000
 | 
 9  | 
 332  | 
     if( fd<0 ){  | 
 
| 
33001
 | 
 0  | 
 9  | 
       if( errno==EINTR ) continue;  | 
 
| 
33004
 | 
 332  | 
 0  | 
     if( fd>=SQLITE_MINIMUM_FILE_DESCRIPTOR ) break;  | 
 
| 
33009
 | 
 0  | 
 0  | 
     if( osOpen("/dev/null", f, m)<0 ) break;  | 
 
| 
33011
 | 
 332  | 
 9  | 
   if( fd>=0 ){  | 
 
| 
33012
 | 
 74  | 
 258  | 
     if( m!=0 ){  | 
 
| 
33014
 | 
 74  | 
 0  | 
       if( osFstat(fd, &statbuf)==0   | 
 
| 
33015
 | 
 74  | 
 0  | 
        && statbuf.st_size==0  | 
 
| 
33016
 | 
 0  | 
 74  | 
        && (statbuf.st_mode&0777)!=m   | 
 
| 
33165
 | 
 0  | 
 0  | 
   do{ rc = osFtruncate(h,sz); }while( rc<0 && errno==EINTR );  | 
 
| 
 | 
 0  | 
 0  | 
   do{ rc = osFtruncate(h,sz); }while( rc<0 && errno==EINTR );  | 
 
| 
33581
 | 
 0  | 
 6  | 
   if( zPath==0 ) zPath = "";  | 
 
| 
33604
 | 
 0  | 
 330  | 
   if( osClose(h) ){  | 
 
| 
33605
 | 
 0  | 
 0  | 
     unixLogErrorAtLine(SQLITE_IOERR_CLOSE, "close",  | 
 
| 
33626
 | 
 0  | 
 324  | 
   for(p=pInode->pUnused; p; p=pNext){  | 
 
| 
33644
 | 
 98  | 
 0  | 
   if( ALWAYS(pInode) ){  | 
 
| 
33646
 | 
 89  | 
 9  | 
     if( pInode->nRef==0 ){  | 
 
| 
33651
 | 
 0  | 
 89  | 
       if( pInode->pPrev ){  | 
 
| 
33658
 | 
 0  | 
 89  | 
       if( pInode->pNext ){  | 
 
| 
33694
 | 
 0  | 
 100  | 
   if( rc!=0 ){  | 
 
| 
33736
 | 
 9  | 
 91  | 
   while( pInode && memcmp(&fileId, &pInode->fileId, sizeof(fileId)) ){  | 
 
| 
 | 
 0  | 
 9  | 
   while( pInode && memcmp(&fileId, &pInode->fileId, sizeof(fileId)) ){  | 
 
| 
33739
 | 
 91  | 
 9  | 
   if( pInode==0 ){  | 
 
| 
33741
 | 
 0  | 
 91  | 
     if( pInode==0 ){  | 
 
| 
33746
 | 
 91  | 
 0  | 
     if( sqlite3GlobalConfig.bCoreMutex ){  | 
 
| 
33748
 | 
 0  | 
 91  | 
       if( pInode->pLockMutex==0 ){  | 
 
| 
33757
 | 
 0  | 
 91  | 
     if( inodeList ) inodeList->pPrev = pInode;  | 
 
| 
33776
 | 
 0  | 
 302  | 
          || (u64)buf.st_ino!=pFile->pInode->fileId.ino);  | 
 
| 
33795
 | 
 74  | 
 198  | 
   if( pFile->ctrlFlags & UNIXFILE_NOLOCK ) return;  | 
 
| 
33798
 | 
 0  | 
 198  | 
   if( rc!=0 ){  | 
 
| 
33802
 | 
 0  | 
 198  | 
   if( buf.st_nlink==0 ){  | 
 
| 
33806
 | 
 0  | 
 198  | 
   if( buf.st_nlink>1 ){  | 
 
| 
33810
 | 
 0  | 
 198  | 
   if( fileHasMoved(pFile) ){  | 
 
| 
33835
 | 
 65  | 
 87  | 
   if( pFile->pInode->eFileLock>SHARED_LOCK ){  | 
 
| 
33842
 | 
 87  | 
 65  | 
   if( !reserved && !pFile->pInode->bProcessLock ){  | 
 
| 
 | 
 87  | 
 0  | 
   if( !reserved && !pFile->pInode->bProcessLock ){  | 
 
| 
33848
 | 
 0  | 
 87  | 
     if( osFcntl(pFile->h, F_GETLK, &lock) ){  | 
 
| 
33851
 | 
 87  | 
 0  | 
     } else if( lock.l_type!=F_UNLCK ){  | 
 
| 
33925
 | 
 0  | 
 1429  | 
   if( (pFile->ctrlFlags & (UNIXFILE_EXCL|UNIXFILE_RDONLY))==UNIXFILE_EXCL ){  | 
 
| 
33926
 | 
 0  | 
 0  | 
     if( pInode->bProcessLock==0 ){  | 
 
| 
33934
 | 
 0  | 
 0  | 
       if( rc<0 ) return rc;  | 
 
| 
34026
 | 
 0  | 
 639  | 
   if( pFile->eFileLock>=eFileLock ){  | 
 
| 
34049
 | 
 156  | 
 483  | 
   if( (pFile->eFileLock!=pInode->eFileLock &&   | 
 
| 
 | 
 130  | 
 26  | 
   if( (pFile->eFileLock!=pInode->eFileLock &&   | 
 
| 
34050
 | 
 65  | 
 65  | 
           (pInode->eFileLock>=PENDING_LOCK || eFileLock>SHARED_LOCK))  | 
 
| 
34060
 | 
 301  | 
 247  | 
   if( eFileLock==SHARED_LOCK &&   | 
 
| 
 | 
 301  | 
 0  | 
   if( eFileLock==SHARED_LOCK &&   | 
 
| 
34061
 | 
 65  | 
 236  | 
       (pInode->eFileLock==SHARED_LOCK || pInode->eFileLock==RESERVED_LOCK) ){  | 
 
| 
34078
 | 
 247  | 
 236  | 
   if( eFileLock==SHARED_LOCK   | 
 
| 
34079
 | 
 79  | 
 168  | 
       || (eFileLock==EXCLUSIVE_LOCK && pFile->eFileLock
 | 
 
| 
 | 
 79  | 
 0  | 
       || (eFileLock==EXCLUSIVE_LOCK && pFile->eFileLock
 | 
 
| 
34083
 | 
 1  | 
 314  | 
     if( unixFileLock(pFile, &lock) ){  | 
 
| 
34086
 | 
 0  | 
 1  | 
       if( rc!=SQLITE_BUSY ){  | 
 
| 
34097
 | 
 235  | 
 247  | 
   if( eFileLock==SHARED_LOCK ){  | 
 
| 
34105
 | 
 0  | 
 235  | 
     if( unixFileLock(pFile, &lock) ){  | 
 
| 
34114
 | 
 0  | 
 235  | 
     if( unixFileLock(pFile, &lock) && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( unixFileLock(pFile, &lock) && rc==SQLITE_OK ){  | 
 
| 
34120
 | 
 0  | 
 235  | 
     if( rc ){  | 
 
| 
34121
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_BUSY ){  | 
 
| 
34130
 | 
 79  | 
 168  | 
   }else if( eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1 ){  | 
 
| 
 | 
 0  | 
 79  | 
   }else if( eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1 ){  | 
 
| 
34143
 | 
 168  | 
 79  | 
     if( eFileLock==RESERVED_LOCK ){  | 
 
| 
34151
 | 
 87  | 
 160  | 
     if( unixFileLock(pFile, &lock) ){  | 
 
| 
34154
 | 
 0  | 
 87  | 
       if( rc!=SQLITE_BUSY ){  | 
 
| 
34178
 | 
 395  | 
 87  | 
   if( rc==SQLITE_OK ){  | 
 
| 
34181
 | 
 0  | 
 87  | 
   }else if( eFileLock==EXCLUSIVE_LOCK ){  | 
 
| 
34232
 | 
 198  | 
 381  | 
   if( pFile->eFileLock<=eFileLock ){  | 
 
| 
34238
 | 
 81  | 
 300  | 
   if( pFile->eFileLock>SHARED_LOCK ){  | 
 
| 
34262
 | 
 81  | 
 0  | 
     if( eFileLock==SHARED_LOCK ){  | 
 
| 
34311
 | 
 0  | 
 81  | 
         if( unixFileLock(pFile, &lock) ){  | 
 
| 
34328
 | 
 81  | 
 0  | 
     if( unixFileLock(pFile, &lock)==0 ){  | 
 
| 
34336
 | 
 300  | 
 81  | 
   if( eFileLock==NO_LOCK ){  | 
 
| 
34342
 | 
 235  | 
 65  | 
     if( pInode->nShared==0 ){  | 
 
| 
34346
 | 
 235  | 
 0  | 
       if( unixFileLock(pFile, &lock)==0 ){  | 
 
| 
34362
 | 
 235  | 
 65  | 
     if( pInode->nLock==0 ) closePendingFds(pFile);  | 
 
| 
34367
 | 
 381  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
34407
 | 
 172  | 
 0  | 
   if( pFile->h>=0 ){  | 
 
| 
34453
 | 
 0  | 
 98  | 
   if( pInode->nLock ){  | 
 
| 
34600
 | 
 0  | 
 0  | 
   if( pFile->eFileLock > NO_LOCK ){  | 
 
| 
34613
 | 
 0  | 
 0  | 
   if( rc<0 ){  | 
 
| 
34616
 | 
 0  | 
 0  | 
     if( EEXIST == tErrno ){  | 
 
| 
34620
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_BUSY ){  | 
 
| 
34652
 | 
 0  | 
 0  | 
   if( pFile->eFileLock==eFileLock ){  | 
 
| 
34659
 | 
 0  | 
 0  | 
   if( eFileLock==SHARED_LOCK ){  | 
 
| 
34667
 | 
 0  | 
 0  | 
   if( rc<0 ){  | 
 
| 
34669
 | 
 0  | 
 0  | 
     if( tErrno==ENOENT ){  | 
 
| 
35617
 | 
 0  | 
 518  | 
     if( newOffset<0 ){  | 
 
| 
35623
 | 
 361  | 
 157  | 
     if( got==cnt ) break;  | 
 
| 
35624
 | 
 0  | 
 157  | 
     if( got<0 ){  | 
 
| 
35625
 | 
 0  | 
 0  | 
       if( errno==EINTR ){ got = 1; continue; }  | 
 
| 
35629
 | 
 0  | 
 157  | 
     }else if( got>0 ){  | 
 
| 
35635
 | 
 0  | 
 157  | 
   }while( got>0 );  | 
 
| 
35671
 | 
 0  | 
 518  | 
   if( offsetmmapSize ){  | 
 
| 
35672
 | 
 0  | 
 0  | 
     if( offset+amt <= pFile->mmapSize ){  | 
 
| 
35686
 | 
 361  | 
 157  | 
   if( got==amt ){  | 
 
| 
35688
 | 
 0  | 
 157  | 
   }else if( got<0 ){  | 
 
| 
35729
 | 
 0  | 
 624  | 
     if( iSeek<0 ){  | 
 
| 
35734
 | 
 0  | 
 624  | 
   }while( rc<0 && errno==EINTR );  | 
 
| 
 | 
 0  | 
 0  | 
   }while( rc<0 && errno==EINTR );  | 
 
| 
35740
 | 
 0  | 
 624  | 
   if( rc<0 ) *piErrno = errno;  | 
 
| 
35820
 | 
 0  | 
 624  | 
   while( (wrote = seekAndWrite(pFile, offset, pBuf, amt))0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( (wrote = seekAndWrite(pFile, offset, pBuf, amt))0 ){  | 
 
| 
35828
 | 
 0  | 
 624  | 
   if( amt>wrote ){  | 
 
| 
35829
 | 
 0  | 
 0  | 
     if( wrote<0 && pFile->lastErrno!=ENOSPC ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( wrote<0 && pFile->lastErrno!=ENOSPC ){  | 
 
| 
35998
 | 
 1152  | 
 0  | 
   for(ii=(int)strlen(zDirname); ii>0 && zDirname[ii]!='/'; ii--);  | 
 
| 
 | 
 1080  | 
 72  | 
   for(ii=(int)strlen(zDirname); ii>0 && zDirname[ii]!='/'; ii--);  | 
 
| 
35999
 | 
 72  | 
 0  | 
   if( ii>0 ){  | 
 
| 
36002
 | 
 0  | 
 0  | 
     if( zDirname[0]!='/' ) zDirname[0] = '.';  | 
 
| 
36010
 | 
 72  | 
 0  | 
   if( fd>=0 ) return SQLITE_OK;  | 
 
| 
36050
 | 
 0  | 
 216  | 
   if( rc ){  | 
 
| 
36059
 | 
 72  | 
 144  | 
   if( pFile->ctrlFlags & UNIXFILE_DIRSYNC ){  | 
 
| 
36064
 | 
 72  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
36090
 | 
 0  | 
 0  | 
   if( pFile->szChunk>0 ){  | 
 
| 
36095
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
36117
 | 
 0  | 
 0  | 
     if( nBytemmapSize ){  | 
 
| 
36135
 | 
 0  | 
 306  | 
   if( rc!=0 ){  | 
 
| 
36147
 | 
 0  | 
 306  | 
   if( *pSize==1 ) *pSize = 0;  | 
 
| 
36168
 | 
 0  | 
 24  | 
   if( pFile->szChunk>0 ){  | 
 
| 
36172
 | 
 0  | 
 0  | 
     if( osFstat(pFile->h, &buf) ){  | 
 
| 
36177
 | 
 0  | 
 0  | 
     if( nSize>(i64)buf.st_size ){  | 
 
| 
36203
 | 
 0  | 
 0  | 
       for(/*no-op*/; iWrite
 | 
 
| 
36204
 | 
 0  | 
 0  | 
         if( iWrite>=nSize ) iWrite = nSize - 1;  | 
 
| 
36206
 | 
 0  | 
 0  | 
         if( nWrite!=1 ) return SQLITE_IOERR_WRITE;  | 
 
| 
36213
 | 
 0  | 
 24  | 
   if( pFile->mmapSizeMax>0 && nByte>pFile->mmapSize ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pFile->mmapSizeMax>0 && nByte>pFile->mmapSize ){  | 
 
| 
36215
 | 
 0  | 
 0  | 
     if( pFile->szChunk<=0 ){  | 
 
| 
36216
 | 
 0  | 
 0  | 
       if( robust_ftruncate(pFile->h, nByte) ){  | 
 
| 
36237
 | 
 0  | 
 0  | 
   if( *pArg<0 ){  | 
 
| 
36239
 | 
 0  | 
 0  | 
   }else if( (*pArg)==0 ){  | 
 
| 
36303
 | 
 0  | 
 0  | 
       if( zTFile ){  | 
 
| 
36323
 | 
 0  | 
 304  | 
       if( newLimit>sqlite3GlobalConfig.mxMmap ){  | 
 
| 
36335
 | 
 304  | 
 0  | 
       if( newLimit>=0 && newLimit!=pFile->mmapSizeMax && pFile->nFetchOut==0 ){  | 
 
| 
 | 
 0  | 
 304  | 
       if( newLimit>=0 && newLimit!=pFile->mmapSizeMax && pFile->nFetchOut==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( newLimit>=0 && newLimit!=pFile->mmapSizeMax && pFile->nFetchOut==0 ){  | 
 
| 
36337
 | 
 0  | 
 0  | 
         if( pFile->mmapSize>0 ){  | 
 
| 
36378
 | 
 100  | 
 745  | 
   if( pFd->sectorSize==0 ){  | 
 
| 
36391
 | 
 100  | 
 0  | 
     if( pFd->ctrlFlags & UNIXFILE_PSOW ){  | 
 
| 
36633
 | 
 0  | 
 0  | 
   if( pShmNode->hShm>=0 ){  | 
 
| 
36640
 | 
 0  | 
 0  | 
     rc = (rc!=(-1)) ? SQLITE_OK : SQLITE_BUSY;  | 
 
| 
36694
 | 
 0  | 
 0  | 
   if( pgsz
 | 
 
| 
36707
 | 
 0  | 
 0  | 
   if( p && ALWAYS(p->nRef==0) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p && ALWAYS(p->nRef==0) ){  | 
 
| 
36712
 | 
 0  | 
 0  | 
     for(i=0; inRegion; i+=nShmPerMap){  | 
 
| 
36713
 | 
 0  | 
 0  | 
       if( p->hShm>=0 ){  | 
 
| 
36720
 | 
 0  | 
 0  | 
     if( p->hShm>=0 ){  | 
 
| 
36764
 | 
 0  | 
 0  | 
   if( osFcntl(pShmNode->hShm, F_GETLK, &lock)!=0 ) {  | 
 
| 
36766
 | 
 0  | 
 0  | 
   }else if( lock.l_type==F_UNLCK ){  | 
 
| 
36767
 | 
 0  | 
 0  | 
     if( pShmNode->isReadonly ){  | 
 
| 
36777
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && robust_ftruncate(pShmNode->hShm, 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && robust_ftruncate(pShmNode->hShm, 3) ){  | 
 
| 
36781
 | 
 0  | 
 0  | 
   }else if( lock.l_type==F_WRLCK ){  | 
 
| 
36785
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
36837
 | 
 0  | 
 0  | 
   if( p==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
36848
 | 
 0  | 
 0  | 
   if( pShmNode==0 ){  | 
 
| 
36858
 | 
 0  | 
 0  | 
     if( osFstat(pDbFd->h, &sStat) ){  | 
 
| 
36869
 | 
 0  | 
 0  | 
     if( pShmNode==0 ){  | 
 
| 
36886
 | 
 0  | 
 0  | 
     if( sqlite3GlobalConfig.bCoreMutex ){  | 
 
| 
36888
 | 
 0  | 
 0  | 
       if( pShmNode->pShmMutex==0 ){  | 
 
| 
36894
 | 
 0  | 
 0  | 
     if( pInode->bProcessLock==0 ){  | 
 
| 
36895
 | 
 0  | 
 0  | 
       if( 0==sqlite3_uri_boolean(pDbFd->zPath, "readonly_shm", 0) ){  | 
 
| 
36898
 | 
 0  | 
 0  | 
       if( pShmNode->hShm<0 ){  | 
 
| 
36900
 | 
 0  | 
 0  | 
         if( pShmNode->hShm<0 ){  | 
 
| 
36914
 | 
 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;  | 
 
| 
36982
 | 
 0  | 
 0  | 
   if( pDbFd->pShm==0 ){  | 
 
| 
36984
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
36990
 | 
 0  | 
 0  | 
   if( pShmNode->isUnlocked ){  | 
 
| 
36992
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto shmpage_out;  | 
 
| 
37003
 | 
 0  | 
 0  | 
   if( pShmNode->nRegion
 | 
 
| 
37010
 | 
 0  | 
 0  | 
     if( pShmNode->hShm>=0 ){  | 
 
| 
37015
 | 
 0  | 
 0  | 
       if( osFstat(pShmNode->hShm, &sStat) ){  | 
 
| 
37020
 | 
 0  | 
 0  | 
       if( sStat.st_size
 | 
 
| 
37024
 | 
 0  | 
 0  | 
         if( !bExtend ){  | 
 
| 
37041
 | 
 0  | 
 0  | 
           for(iPg=(sStat.st_size/pgsz); iPg<(nByte/pgsz); iPg++){  | 
 
| 
37043
 | 
 0  | 
 0  | 
             if( seekAndWriteFd(pShmNode->hShm, iPg*pgsz + pgsz-1,"",1,&x)!=1 ){  | 
 
| 
37057
 | 
 0  | 
 0  | 
     if( !apNew ){  | 
 
| 
37062
 | 
 0  | 
 0  | 
     while( pShmNode->nRegion
 | 
 
| 
37066
 | 
 0  | 
 0  | 
       if( pShmNode->hShm>=0 ){  | 
 
| 
37067
 | 
 0  | 
 0  | 
         pMem = osMmap(0, nMap,  | 
 
| 
37071
 | 
 0  | 
 0  | 
         if( pMem==MAP_FAILED ){  | 
 
| 
37077
 | 
 0  | 
 0  | 
         if( pMem==0 ){  | 
 
| 
37084
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
37092
 | 
 0  | 
 0  | 
   if( pShmNode->nRegion>iRegion ){  | 
 
| 
37097
 | 
 0  | 
 0  | 
   if( pShmNode->isReadonly && rc==SQLITE_OK ) rc = SQLITE_READONLY;  | 
 
| 
 | 
 0  | 
 0  | 
   if( pShmNode->isReadonly && rc==SQLITE_OK ) rc = SQLITE_READONLY;  | 
 
| 
37138
 | 
 0  | 
 0  | 
   if( flags & SQLITE_SHM_UNLOCK ){  | 
 
| 
37142
 | 
 0  | 
 0  | 
     for(pX=pShmNode->pFirst; pX; pX=pX->pNext){  | 
 
| 
37143
 | 
 0  | 
 0  | 
       if( pX==p ) continue;  | 
 
| 
37149
 | 
 0  | 
 0  | 
     if( (mask & allMask)==0 ){  | 
 
| 
37156
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
37160
 | 
 0  | 
 0  | 
   }else if( flags & SQLITE_SHM_SHARED ){  | 
 
| 
37167
 | 
 0  | 
 0  | 
     for(pX=pShmNode->pFirst; pX; pX=pX->pNext){  | 
 
| 
37168
 | 
 0  | 
 0  | 
       if( (pX->exclMask & mask)!=0 ){  | 
 
| 
37176
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
37177
 | 
 0  | 
 0  | 
       if( (allShared & mask)==0 ){  | 
 
| 
37185
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
37192
 | 
 0  | 
 0  | 
     for(pX=pShmNode->pFirst; pX; pX=pX->pNext){  | 
 
| 
37193
 | 
 0  | 
 0  | 
       if( (pX->exclMask & mask)!=0 || (pX->sharedMask & mask)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( (pX->exclMask & mask)!=0 || (pX->sharedMask & mask)!=0 ){  | 
 
| 
37202
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
37204
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
37252
 | 
 0  | 
 0  | 
   if( p==0 ) return SQLITE_OK;  | 
 
| 
37261
 | 
 0  | 
 0  | 
   for(pp=&pShmNode->pFirst; (*pp)!=p; pp = &(*pp)->pNext){}  | 
 
| 
37275
 | 
 0  | 
 0  | 
   if( pShmNode->nRef==0 ){  | 
 
| 
37276
 | 
 0  | 
 0  | 
     if( deleteFlag && pShmNode->hShm>=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( deleteFlag && pShmNode->hShm>=0 ){  | 
 
| 
37300
 | 
 0  | 
 172  | 
   if( pFd->pMapRegion ){  | 
 
| 
37345
 | 
 0  | 
 0  | 
   if( pOrig ){  | 
 
| 
37355
 | 
 0  | 
 0  | 
     if( nReuse!=nOrig ){  | 
 
| 
37375
 | 
 0  | 
 0  | 
     if( pNew==MAP_FAILED || pNew==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pNew==MAP_FAILED || pNew==0 ){  | 
 
| 
37381
 | 
 0  | 
 0  | 
   if( pNew==0 ){  | 
 
| 
37385
 | 
 0  | 
 0  | 
   if( pNew==MAP_FAILED ){  | 
 
| 
37418
 | 
 0  | 
 0  | 
   if( pFd->nFetchOut>0 ) return SQLITE_OK;  | 
 
| 
37420
 | 
 0  | 
 0  | 
   if( nMap<0 ){  | 
 
| 
37422
 | 
 0  | 
 0  | 
     if( osFstat(pFd->h, &statbuf) ){  | 
 
| 
37427
 | 
 0  | 
 0  | 
   if( nMap>pFd->mmapSizeMax ){  | 
 
| 
37432
 | 
 0  | 
 0  | 
   if( nMap!=pFd->mmapSize ){  | 
 
| 
37459
 | 
 0  | 
 0  | 
   if( pFd->mmapSizeMax>0 ){  | 
 
| 
37460
 | 
 0  | 
 0  | 
     if( pFd->pMapRegion==0 ){  | 
 
| 
37462
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
37464
 | 
 0  | 
 0  | 
     if( pFd->mmapSize >= iOff+nAmt ){  | 
 
| 
37496
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
37837
 | 
 8  | 
 166  | 
   if( sqlite3_uri_boolean(((ctrlFlags & UNIXFILE_URI) ? zFilename : 0),  | 
 
| 
 | 
 174  | 
 0  | 
   if( sqlite3_uri_boolean(((ctrlFlags & UNIXFILE_URI) ? zFilename : 0),  | 
 
| 
37841
 | 
 0  | 
 174  | 
   if( strcmp(pVfs->zName,"unix-excl")==0 ){  | 
 
| 
37853
 | 
 74  | 
 100  | 
   if( ctrlFlags & UNIXFILE_NOLOCK ){  | 
 
| 
37865
 | 
 100  | 
 74  | 
   if( pLockingStyle == &posixIoMethods  | 
 
| 
37872
 | 
 0  | 
 100  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
37925
 | 
 0  | 
 74  | 
   else if( pLockingStyle == &dotlockIoMethods ){  | 
 
| 
37934
 | 
 0  | 
 0  | 
     if( zLockFile==0 ){  | 
 
| 
37975
 | 
 0  | 
 174  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
37976
 | 
 0  | 
 0  | 
     if( h>=0 ) robust_close(pNew, h, __LINE__);  | 
 
| 
38002
 | 
 0  | 
 0  | 
   if( !azDirs[0] ) azDirs[0] = getenv("SQLITE_TMPDIR");  | 
 
| 
38003
 | 
 0  | 
 0  | 
   if( !azDirs[1] ) azDirs[1] = getenv("TMPDIR");  | 
 
| 
38005
 | 
 0  | 
 0  | 
     if( zDir!=0  | 
 
| 
38006
 | 
 0  | 
 0  | 
      && osStat(zDir, &buf)==0  | 
 
| 
38007
 | 
 0  | 
 0  | 
      && S_ISDIR(buf.st_mode)  | 
 
| 
38008
 | 
 0  | 
 0  | 
      && osAccess(zDir, 03)==0  | 
 
| 
38012
 | 
 0  | 
 0  | 
     if( i>=sizeof(azDirs)/sizeof(azDirs[0]) ) break;  | 
 
| 
38035
 | 
 0  | 
 0  | 
   if( zDir==0 ) return SQLITE_IOERR_GETTEMPPATH;  | 
 
| 
38043
 | 
 0  | 
 0  | 
     if( zBuf[nBuf-2]!=0 || (iLimit++)>10 ) return SQLITE_ERROR;  | 
 
| 
 | 
 0  | 
 0  | 
     if( zBuf[nBuf-2]!=0 || (iLimit++)>10 ) return SQLITE_ERROR;  | 
 
| 
38044
 | 
 0  | 
 0  | 
   }while( osAccess(zBuf,0)==0 );  | 
 
| 
38094
 | 
 9  | 
 97  | 
   if( inodeList!=0 && 0==osStat(zPath, &sStat) ){  | 
 
| 
 | 
 9  | 
 0  | 
   if( inodeList!=0 && 0==osStat(zPath, &sStat) ){  | 
 
| 
38098
 | 
 9  | 
 0  | 
     while( pInode && (pInode->fileId.dev!=sStat.st_dev  | 
 
| 
 | 
 0  | 
 9  | 
     while( pInode && (pInode->fileId.dev!=sStat.st_dev  | 
 
| 
38099
 | 
 0  | 
 9  | 
                      || pInode->fileId.ino!=(u64)sStat.st_ino) ){  | 
 
| 
38102
 | 
 9  | 
 0  | 
     if( pInode ){  | 
 
| 
38106
 | 
 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));  | 
 
| 
38108
 | 
 0  | 
 9  | 
       if( pUnused ){  | 
 
| 
38130
 | 
 74  | 
 0  | 
   if( 0==osStat(zFile, &sStat) ){  | 
 
| 
38172
 | 
 74  | 
 106  | 
   if( flags & (SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL) ){  | 
 
| 
38189
 | 
 518  | 
 74  | 
     while( zPath[nDb]!='-' ){  | 
 
| 
38194
 | 
 518  | 
 0  | 
       if( nDb==0 || zPath[nDb]=='.' ) return SQLITE_OK;  | 
 
| 
 | 
 0  | 
 518  | 
       if( nDb==0 || zPath[nDb]=='.' ) return SQLITE_OK;  | 
 
| 
38201
 | 
 0  | 
 106  | 
   }else if( flags & SQLITE_OPEN_DELETEONCLOSE ){  | 
 
| 
38203
 | 
 12  | 
 94  | 
   }else if( flags & SQLITE_OPEN_URI ){  | 
 
| 
38209
 | 
 0  | 
 12  | 
     if( z ){  | 
 
| 
38269
 | 
 168  | 
 12  | 
   int isNewJrnl = (isCreate && (  | 
 
| 
 | 
 168  | 
 0  | 
   int isNewJrnl = (isCreate && (  | 
 
| 
38271
 | 
 94  | 
 74  | 
      || eType==SQLITE_OPEN_MAIN_JOURNAL   | 
 
| 
38272
 | 
 0  | 
 94  | 
      || eType==SQLITE_OPEN_WAL  | 
 
| 
38312
 | 
 21  | 
 159  | 
   if( randomnessPid!=osGetpid(0) ){  | 
 
| 
38318
 | 
 106  | 
 74  | 
   if( eType==SQLITE_OPEN_MAIN_DB ){  | 
 
| 
38321
 | 
 0  | 
 106  | 
     if( pUnused ){  | 
 
| 
38325
 | 
 0  | 
 106  | 
       if( !pUnused ){  | 
 
| 
38336
 | 
 0  | 
 74  | 
   }else if( !zName ){  | 
 
| 
38340
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
38354
 | 
 6  | 
 174  | 
   if( isReadonly )  openFlags |= O_RDONLY;  | 
 
| 
38355
 | 
 174  | 
 6  | 
   if( isReadWrite ) openFlags |= O_RDWR;  | 
 
| 
38356
 | 
 168  | 
 12  | 
   if( isCreate )    openFlags |= O_CREAT;  | 
 
| 
38357
 | 
 0  | 
 180  | 
   if( isExclusive ) openFlags |= (O_EXCL|O_NOFOLLOW);  | 
 
| 
38360
 | 
 180  | 
 0  | 
   if( fd<0 ){  | 
 
| 
38365
 | 
 0  | 
 180  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
38373
 | 
 6  | 
 174  | 
     if( fd<0 ){  | 
 
| 
38374
 | 
 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) ){  | 
 
| 
38378
 | 
 6  | 
 0  | 
       }else if( errno!=EISDIR && isReadWrite ){  | 
 
| 
 | 
 3  | 
 3  | 
       }else if( errno!=EISDIR && isReadWrite ){  | 
 
| 
38388
 | 
 6  | 
 174  | 
     if( fd<0 ){  | 
 
| 
38390
 | 
 6  | 
 0  | 
       if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
38398
 | 
 74  | 
 100  | 
     if( flags & (SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL) ){  | 
 
| 
38403
 | 
 100  | 
 74  | 
   if( pOutFlags ){  | 
 
| 
38407
 | 
 100  | 
 74  | 
   if( p->pPreallocatedUnused ){  | 
 
| 
38412
 | 
 0  | 
 174  | 
   if( isDelete ){  | 
 
| 
38446
 | 
 0  | 
 174  | 
   if( isDelete )                ctrlFlags |= UNIXFILE_DELETE;  | 
 
| 
38447
 | 
 3  | 
 171  | 
   if( isReadonly )              ctrlFlags |= UNIXFILE_RDONLY;  | 
 
| 
38449
 | 
 74  | 
 100  | 
   if( noLock )                  ctrlFlags |= UNIXFILE_NOLOCK;  | 
 
| 
38450
 | 
 74  | 
 100  | 
   if( isNewJrnl )               ctrlFlags |= UNIXFILE_DIRSYNC;  | 
 
| 
38451
 | 
 8  | 
 166  | 
   if( flags & SQLITE_OPEN_URI ) ctrlFlags |= UNIXFILE_URI;  | 
 
| 
38492
 | 
 6  | 
 174  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
38511
 | 
 0  | 
 74  | 
   if( osUnlink(zPath)==(-1) ){  | 
 
| 
38512
 | 
 0  | 
 0  | 
     if( errno==ENOENT  | 
 
| 
38524
 | 
 0  | 
 74  | 
   if( (dirSync & 1)!=0 ){  | 
 
| 
38527
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
38528
 | 
 0  | 
 0  | 
       if( full_fsync(fd,0,0) ){  | 
 
| 
38565
 | 
 600  | 
 0  | 
   if( flags==SQLITE_ACCESS_EXISTS ){  | 
 
| 
38567
 | 
 152  | 
 448  | 
     *pResOut = (0==osStat(zPath, &buf) && buf.st_size>0);  | 
 
| 
 | 
 152  | 
 0  | 
     *pResOut = (0==osStat(zPath, &buf) && buf.st_size>0);  | 
 
| 
38584
 | 
 82  | 
 24  | 
   if( zPath[0]!='/' ){  | 
 
| 
38585
 | 
 0  | 
 82  | 
     if( osGetcwd(zOut, nOut-2)==0 ){  | 
 
| 
38591
 | 
 0  | 
 106  | 
   if( (iOff+nPath+1)>nOut ){  | 
 
| 
38641
 | 
 56  | 
 50  | 
     if( osLstat(zIn, &buf)!=0 ){  | 
 
| 
38642
 | 
 0  | 
 56  | 
       if( errno!=ENOENT ){  | 
 
| 
38649
 | 
 0  | 
 106  | 
     if( bLink ){  | 
 
| 
38650
 | 
 0  | 
 0  | 
       if( zDel==0 ){  | 
 
| 
38652
 | 
 0  | 
 0  | 
         if( zDel==0 ) rc = SQLITE_NOMEM_BKPT;  | 
 
| 
38653
 | 
 0  | 
 0  | 
       }else if( ++nLink>SQLITE_MAX_SYMLINKS ){  | 
 
| 
38657
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
38659
 | 
 0  | 
 0  | 
         if( nByte<0 ){  | 
 
| 
38662
 | 
 0  | 
 0  | 
           if( zDel[0]!='/' ){  | 
 
| 
38664
 | 
 0  | 
 0  | 
             for(n = sqlite3Strlen30(zIn); n>0 && zIn[n-1]!='/'; n--);  | 
 
| 
 | 
 0  | 
 0  | 
             for(n = sqlite3Strlen30(zIn); n>0 && zIn[n-1]!='/'; n--);  | 
 
| 
38665
 | 
 0  | 
 0  | 
             if( nByte+n+1>nOut ){  | 
 
| 
38681
 | 
 106  | 
 0  | 
     if( rc==SQLITE_OK && zIn!=zOut ){  | 
 
| 
 | 
 106  | 
 0  | 
     if( rc==SQLITE_OK && zIn!=zOut ){  | 
 
| 
38684
 | 
 106  | 
 0  | 
     if( bLink==0 ) break;  | 
 
| 
38686
 | 
 0  | 
 0  | 
   }while( rc==SQLITE_OK );  | 
 
| 
38717
 | 
 0  | 
 0  | 
   if( zErr ){  | 
 
| 
38781
 | 
 0  | 
 86  | 
     if( fd<0 ){  | 
 
| 
38789
 | 
 0  | 
 86  | 
       do{ got = osRead(fd, zBuf, nBuf); }while( got<0 && errno==EINTR );  | 
 
| 
 | 
 0  | 
 0  | 
       do{ got = osRead(fd, zBuf, nBuf); }while( got<0 && errno==EINTR );  | 
 
| 
40187
 | 
 380  | 
 95  | 
   for(i=0; i<(sizeof(aVfs)/sizeof(sqlite3_vfs)); i++){  | 
 
| 
47254
 | 
 962  | 
 0  | 
   if( p ){  | 
 
| 
47268
 | 
 449  | 
 1159  | 
   if( i>=p->iSize ) return 0;  | 
 
| 
47269
 | 
 0  | 
 1159  | 
   while( p->iDivisor ){  | 
 
| 
47273
 | 
 0  | 
 0  | 
     if (!p) {  | 
 
| 
47277
 | 
 1159  | 
 0  | 
   if( p->iSize<=BITVEC_NBIT ){  | 
 
| 
47281
 | 
 0  | 
 0  | 
     while( p->u.aHash[h] ){  | 
 
| 
47282
 | 
 0  | 
 0  | 
       if( p->u.aHash[h]==i ) return 1;  | 
 
| 
47289
 | 
 1  | 
 28  | 
   return p!=0 && sqlite3BitvecTestNotNull(p,i);  | 
 
| 
 | 
 0  | 
 1  | 
   return p!=0 && sqlite3BitvecTestNotNull(p,i);  | 
 
| 
47306
 | 
 0  | 
 1158  | 
   if( p==0 ) return SQLITE_OK;  | 
 
| 
47310
 | 
 0  | 
 1158  | 
   while((p->iSize > BITVEC_NBIT) && p->iDivisor) {  | 
 
| 
 | 
 0  | 
 0  | 
   while((p->iSize > BITVEC_NBIT) && p->iDivisor) {  | 
 
| 
47313
 | 
 0  | 
 0  | 
     if( p->u.apSub[bin]==0 ){  | 
 
| 
47315
 | 
 0  | 
 0  | 
       if( p->u.apSub[bin]==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
47319
 | 
 1158  | 
 0  | 
   if( p->iSize<=BITVEC_NBIT ){  | 
 
| 
47327
 | 
 0  | 
 0  | 
   if( !p->u.aHash[h] ){  | 
 
| 
47328
 | 
 0  | 
 0  | 
     if (p->nSet<(BITVEC_NINT-1)) {  | 
 
| 
47337
 | 
 0  | 
 0  | 
     if( p->u.aHash[h]==i ) return SQLITE_OK;  | 
 
| 
47339
 | 
 0  | 
 0  | 
     if( h>=BITVEC_NINT ) h = 0;  | 
 
| 
47340
 | 
 0  | 
 0  | 
   } while( p->u.aHash[h] );  | 
 
| 
47345
 | 
 0  | 
 0  | 
   if( p->nSet>=BITVEC_MXHASH ){  | 
 
| 
47349
 | 
 0  | 
 0  | 
     if( aiValues==0 ){  | 
 
| 
47356
 | 
 0  | 
 0  | 
       for(j=0; j
 | 
 
| 
47357
 | 
 0  | 
 0  | 
         if( aiValues[j] ) rc |= sqlite3BitvecSet(p, aiValues[j]);  | 
 
| 
47376
 | 
 0  | 
 0  | 
   if( p==0 ) return;  | 
 
| 
47379
 | 
 0  | 
 0  | 
   while( p->iDivisor ){  | 
 
| 
47383
 | 
 0  | 
 0  | 
     if (!p) {  | 
 
| 
47387
 | 
 0  | 
 0  | 
   if( p->iSize<=BITVEC_NBIT ){  | 
 
| 
47395
 | 
 0  | 
 0  | 
     for(j=0; j
 | 
 
| 
47396
 | 
 0  | 
 0  | 
       if( aiValues[j] && aiValues[j]!=(i+1) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( aiValues[j] && aiValues[j]!=(i+1) ){  | 
 
| 
47399
 | 
 0  | 
 0  | 
         while( p->u.aHash[h] ){  | 
 
| 
47401
 | 
 0  | 
 0  | 
           if( h>=BITVEC_NINT ) h = 0;  | 
 
| 
47413
 | 
 3394  | 
 962  | 
   if( p==0 ) return;  | 
 
| 
47414
 | 
 0  | 
 962  | 
   if( p->iDivisor ){  | 
 
| 
47416
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
47484
 | 
 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;  | 
 
| 
47492
 | 
 0  | 
 0  | 
   while( (op = aOp[pc])!=0 ){  | 
 
| 
47493
 | 
 0  | 
 0  | 
     switch( op ){  | 
 
| 
47510
 | 
 0  | 
 0  | 
     if( (--aOp[pc+1]) > 0 ) nx = 0;  | 
 
| 
47513
 | 
 0  | 
 0  | 
     if( (op & 1)!=0 ){  | 
 
| 
47515
 | 
 0  | 
 0  | 
       if( op!=5 ){  | 
 
| 
47516
 | 
 0  | 
 0  | 
         if( sqlite3BitvecSet(pBitvec, i+1) ) goto bitvec_end;  | 
 
| 
47532
 | 
 0  | 
 0  | 
   for(i=1; i<=sz; i++){  | 
 
| 
47533
 | 
 0  | 
 0  | 
     if(  (TESTBIT(pV,i))!=sqlite3BitvecTest(pBitvec,i) ){  | 
 
| 
47713
 | 
 6928  | 
 1442  | 
   if( addRemove & PCACHE_DIRTYLIST_REMOVE ){  | 
 
| 
47718
 | 
 1625  | 
 5303  | 
     if( p->pSynced==pPage ){  | 
 
| 
47722
 | 
 4987  | 
 1941  | 
     if( pPage->pDirtyNext ){  | 
 
| 
47728
 | 
 3547  | 
 3381  | 
     if( pPage->pDirtyPrev ){  | 
 
| 
47738
 | 
 1415  | 
 1966  | 
       if( p->pDirty==0 ){         /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
47744
 | 
 6928  | 
 1442  | 
   if( addRemove & PCACHE_DIRTYLIST_ADD ){  | 
 
| 
47747
 | 
 5513  | 
 1415  | 
     if( pPage->pDirtyNext ){  | 
 
| 
47752
 | 
 156  | 
 1259  | 
       if( p->bPurgeable ){  | 
 
| 
47764
 | 
 1923  | 
 5005  | 
     if( !p->pSynced   | 
 
| 
47765
 | 
 1078  | 
 845  | 
      && 0==(pPage->flags&PGHDR_NEED_SYNC)   /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
47778
 | 
 502  | 
 3346  | 
   if( p->pCache->bPurgeable ){  | 
 
| 
47790
 | 
 291  | 
 476  | 
   if( p->szCache>=0 ){  | 
 
| 
47808
 | 
 95  | 
 0  | 
   if( sqlite3GlobalConfig.pcache2.xInit==0 ){  | 
 
| 
47817
 | 
 0  | 
 0  | 
   if( sqlite3GlobalConfig.pcache2.xShutdown ){  | 
 
| 
47868
 | 
 291  | 
 291  | 
   if( pCache->szPage ){  | 
 
| 
47874
 | 
 0  | 
 291  | 
     if( pNew==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
47876
 | 
 0  | 
 291  | 
     if( pCache->pCache ){  | 
 
| 
47957
 | 
 0  | 
 0  | 
   if( pCache->eCreate==2 ) return 0;  | 
 
| 
47959
 | 
 0  | 
 0  | 
   if( sqlite3PcachePagecount(pCache)>pCache->szSpill ){  | 
 
| 
47969
 | 
 0  | 
 0  | 
     for(pPg=pCache->pSynced;   | 
 
| 
47970
 | 
 0  | 
 0  | 
         pPg && (pPg->nRef || (pPg->flags&PGHDR_NEED_SYNC));   | 
 
| 
 | 
 0  | 
 0  | 
         pPg && (pPg->nRef || (pPg->flags&PGHDR_NEED_SYNC));   | 
 
| 
47974
 | 
 0  | 
 0  | 
     if( !pPg ){  | 
 
| 
47975
 | 
 0  | 
 0  | 
       for(pPg=pCache->pDirtyTail; pPg && pPg->nRef; pPg=pPg->pDirtyPrev);  | 
 
| 
 | 
 0  | 
 0  | 
       for(pPg=pCache->pDirtyTail; pPg && pPg->nRef; pPg=pPg->pDirtyPrev);  | 
 
| 
47977
 | 
 0  | 
 0  | 
     if( pPg ){  | 
 
| 
47989
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){  | 
 
| 
47995
 | 
 0  | 
 0  | 
   return *ppPage==0 ? SQLITE_NOMEM_BKPT : SQLITE_OK;  | 
 
| 
48043
 | 
 573  | 
 9081  | 
   if( !pPgHdr->pPage ){  | 
 
| 
48059
 | 
 8107  | 
 979  | 
   if( (--p->nRef)==0 ){  | 
 
| 
48060
 | 
 2621  | 
 5486  | 
     if( p->flags&PGHDR_CLEAN ){  | 
 
| 
48086
 | 
 0  | 
 0  | 
   if( p->flags&PGHDR_DIRTY ){  | 
 
| 
48100
 | 
 1442  | 
 172  | 
   if( p->flags & (PGHDR_CLEAN|PGHDR_DONT_WRITE) ){    /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
48102
 | 
 1442  | 
 0  | 
     if( p->flags & PGHDR_CLEAN ){  | 
 
| 
48125
 | 
 1227  | 
 215  | 
   if( p->nRef==0 ){  | 
 
| 
48136
 | 
 1373  | 
 869  | 
   while( (p = pCache->pDirty)!=0 ){  | 
 
| 
48147
 | 
 409  | 
 238  | 
   for(p=pCache->pDirty; p; p=p->pDirtyNext){  | 
 
| 
48158
 | 
 152  | 
 72  | 
   for(p=pCache->pDirty; p; p=p->pDirtyNext){  | 
 
| 
48175
 | 
 0  | 
 0  | 
   if( (p->flags&PGHDR_DIRTY) && (p->flags&PGHDR_NEED_SYNC) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (p->flags&PGHDR_DIRTY) && (p->flags&PGHDR_NEED_SYNC) ){  | 
 
| 
48190
 | 
 1335  | 
 291  | 
   if( pCache->pCache ){  | 
 
| 
48194
 | 
 478  | 
 1335  | 
     for(p=pCache->pDirty; p; p=pNext){  | 
 
| 
48201
 | 
 69  | 
 409  | 
       if( p->pgno>pgno ){  | 
 
| 
48206
 | 
 313  | 
 1022  | 
     if( pgno==0 && pCache->nRefSum ){  | 
 
| 
 | 
 5  | 
 308  | 
     if( pgno==0 && pCache->nRefSum ){  | 
 
| 
48209
 | 
 5  | 
 0  | 
       if( ALWAYS(pPage1) ){  /* Page 1 is always available in cache, because  | 
 
| 
48244
 | 
 53  | 
 28  | 
     if( pA->pgnopgno ){  | 
 
| 
48248
 | 
 53  | 
 0  | 
       if( pA==0 ){  | 
 
| 
48256
 | 
 27  | 
 1  | 
       if( pB==0 ){  | 
 
| 
48280
 | 
 152  | 
 72  | 
   while( pIn ){  | 
 
| 
48284
 | 
 224  | 
 0  | 
     for(i=0; ALWAYS(i
 | 
 
| 
48285
 | 
 152  | 
 72  | 
       if( a[i]==0 ){  | 
 
| 
48293
 | 
 0  | 
 152  | 
     if( NEVER(i==N_SORT_BUCKET-1) ){  | 
 
| 
48301
 | 
 2232  | 
 72  | 
   for(i=1; i
 | 
 
| 
48302
 | 
 2160  | 
 72  | 
     if( a[i]==0 ) continue;  | 
 
| 
48303
 | 
 8  | 
 64  | 
     p = p ? pcacheMergeDirtyList(p, a[i]) : a[i];  | 
 
| 
48313
 | 
 152  | 
 72  | 
   for(p=pCache->pDirty; p; p=p->pDirtyNext){  | 
 
| 
48371
 | 
 0  | 
 0  | 
   if( mxPage ){  | 
 
| 
48372
 | 
 0  | 
 0  | 
     if( mxPage<0 ){  | 
 
| 
48378
 | 
 0  | 
 0  | 
   if( resszSpill ) res = p->szSpill;   | 
 
| 
48404
 | 
 0  | 
 0  | 
   for(pDirty=pCache->pDirty; pDirty; pDirty=pDirty->pDirtyNext) nDirty++;  | 
 
| 
48405
 | 
 0  | 
 0  | 
   return nCache ? (int)(((i64)nDirty * 100) / nCache) : 0;  | 
 
| 
48685
 | 
 95  | 
 0  | 
   if( pcache1.isInit ){  | 
 
| 
48687
 | 
 95  | 
 0  | 
     if( pBuf==0 ) sz = n = 0;  | 
 
| 
48688
 | 
 95  | 
 0  | 
     if( n==0 ) sz = 0;  | 
 
| 
48692
 | 
 95  | 
 0  | 
     pcache1.nReserve = n>90 ? 10 : (n/10 + 1);  | 
 
| 
48696
 | 
 0  | 
 95  | 
     while( n-- ){  | 
 
| 
48713
 | 
 0  | 
 226  | 
   if( pcache1.nInitPage==0 ) return 0;  | 
 
| 
48715
 | 
 142  | 
 84  | 
   if( pCache->nMax<3 ) return 0;  | 
 
| 
48717
 | 
 84  | 
 0  | 
   if( pcache1.nInitPage>0 ){  | 
 
| 
48722
 | 
 0  | 
 84  | 
   if( szBulk > pCache->szAlloc*(i64)pCache->nMax ){  | 
 
| 
48727
 | 
 84  | 
 0  | 
   if( zBulk ){  | 
 
| 
48738
 | 
 1596  | 
 84  | 
     }while( --nBulk );  | 
 
| 
48755
 | 
 0  | 
 836  | 
   if( nByte<=pcache1.szSlot ){  | 
 
| 
48758
 | 
 0  | 
 0  | 
     if( p ){  | 
 
| 
48768
 | 
 836  | 
 0  | 
   if( p==0 ){  | 
 
| 
48774
 | 
 836  | 
 0  | 
     if( p ){  | 
 
| 
48791
 | 
 297  | 
 832  | 
   if( p==0 ) return;  | 
 
| 
48792
 | 
 832  | 
 0  | 
   if( SQLITE_WITHIN(p, pcache1.pStart, pcache1.pEnd) ){  | 
 
| 
 | 
 0  | 
 832  | 
   if( SQLITE_WITHIN(p, pcache1.pStart, pcache1.pEnd) ){  | 
 
| 
48845
 | 
 464  | 
 109  | 
   if( pCache->pFree || (pCache->nPage==0 && pcache1InitBulk(pCache)) ){  | 
 
| 
 | 
 226  | 
 238  | 
   if( pCache->pFree || (pCache->nPage==0 && pcache1InitBulk(pCache)) ){  | 
 
| 
 | 
 84  | 
 142  | 
   if( pCache->pFree || (pCache->nPage==0 && pcache1InitBulk(pCache)) ){  | 
 
| 
48858
 | 
 0  | 
 380  | 
     if( benignMalloc ){ sqlite3BeginBenignMalloc(); }  | 
 
| 
48871
 | 
 0  | 
 380  | 
     if( benignMalloc ){ sqlite3EndBenignMalloc(); }  | 
 
| 
48875
 | 
 0  | 
 380  | 
     if( pPg==0 ) return 0;  | 
 
| 
48893
 | 
 189  | 
 380  | 
   if( p->isBulkLocal ){  | 
 
| 
48939
 | 
 0  | 
 80  | 
   if( pcache1.nSlot && (pCache->szPage+pCache->szExtra)<=pcache1.szSlot ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pcache1.nSlot && (pCache->szPage+pCache->szExtra)<=pcache1.szSlot ){  | 
 
| 
48963
 | 
 291  | 
 0  | 
   if( nNew<256 ){  | 
 
| 
48968
 | 
 0  | 
 291  | 
   if( p->nHash ){ sqlite3BeginBenignMalloc(); }  | 
 
| 
48970
 | 
 0  | 
 291  | 
   if( p->nHash ){ sqlite3EndBenignMalloc(); }  | 
 
| 
48972
 | 
 291  | 
 0  | 
   if( apNew ){  | 
 
| 
48973
 | 
 0  | 
 291  | 
     for(i=0; inHash; i++){  | 
 
| 
48976
 | 
 0  | 
 0  | 
       while( (pPage = pNext)!=0 ){  | 
 
| 
49027
 | 
 0  | 
 0  | 
   for(pp=&pCache->apHash[h]; (*pp)!=pPage; pp=&(*pp)->pNext);  | 
 
| 
49031
 | 
 0  | 
 0  | 
   if( freeFlag ) pcache1FreePage(pPage);  | 
 
| 
49042
 | 
 0  | 
 608  | 
   while( pGroup->nPurgeable>pGroup->nMaxPage  | 
 
| 
49043
 | 
 0  | 
 0  | 
       && (p=pGroup->lru.pLruPrev)->isAnchor==0  | 
 
| 
49050
 | 
 565  | 
 43  | 
   if( pCache->nPage==0 && pCache->pBulk ){  | 
 
| 
 | 
 82  | 
 483  | 
   if( pCache->nPage==0 && pCache->pBulk ){  | 
 
| 
49072
 | 
 240  | 
 0  | 
   if( pCache->iMaxKey - iLimit < pCache->nHash ){  | 
 
| 
49091
 | 
 569  | 
 572  | 
     while( (pPage = *pp)!=0 ){  | 
 
| 
49092
 | 
 569  | 
 0  | 
       if( pPage->iKey>=iLimit ){  | 
 
| 
49095
 | 
 189  | 
 380  | 
         if( PAGE_IS_UNPINNED(pPage) ) pcache1PinPage(pPage);  | 
 
| 
49102
 | 
 240  | 
 332  | 
     if( h==iStop ) break;  | 
 
| 
49149
 | 
 95  | 
 0  | 
   if( pcache1.separateCache  | 
 
| 
49150
 | 
 95  | 
 0  | 
    && sqlite3GlobalConfig.nPage!=0  | 
 
| 
49151
 | 
 95  | 
 0  | 
    && sqlite3GlobalConfig.pPage==0  | 
 
| 
49191
 | 
 291  | 
 0  | 
   if( pCache ){  | 
 
| 
49192
 | 
 291  | 
 0  | 
     if( pcache1.separateCache ){  | 
 
| 
49198
 | 
 291  | 
 0  | 
     if( pGroup->lru.isAnchor==0 ){  | 
 
| 
49209
 | 
 138  | 
 153  | 
     if( bPurgeable ){  | 
 
| 
49219
 | 
 0  | 
 291  | 
     if( pCache->nHash==0 ){  | 
 
| 
49234
 | 
 319  | 
 448  | 
   if( pCache->bPurgeable ){  | 
 
| 
49253
 | 
 0  | 
 0  | 
   if( pCache->bPurgeable ){  | 
 
| 
49300
 | 
 72  | 
 501  | 
   if( createFlag==1 && (  | 
 
| 
 | 
 72  | 
 0  | 
   if( createFlag==1 && (  | 
 
| 
49302
 | 
 72  | 
 0  | 
      || nPinned>=pCache->n90pct  | 
 
| 
49303
 | 
 0  | 
 72  | 
      || (pcache1UnderMemoryPressure(pCache) && pCache->nRecyclable
 | 
 
| 
 | 
 0  | 
 0  | 
      || (pcache1UnderMemoryPressure(pCache) && pCache->nRecyclable
 | 
 
| 
49308
 | 
 0  | 
 573  | 
   if( pCache->nPage>=pCache->nHash ) pcache1ResizeHash(pCache);  | 
 
| 
49312
 | 
 193  | 
 380  | 
   if( pCache->bPurgeable  | 
 
| 
49313
 | 
 8  | 
 185  | 
    && !pGroup->lru.pLruPrev->isAnchor  | 
 
| 
49314
 | 
 8  | 
 0  | 
    && ((pCache->nPage+1>=pCache->nMax) || pcache1UnderMemoryPressure(pCache))  | 
 
| 
 | 
 0  | 
 8  | 
    && ((pCache->nPage+1>=pCache->nMax) || pcache1UnderMemoryPressure(pCache))  | 
 
| 
49322
 | 
 0  | 
 0  | 
     if( pOther->szAlloc != pCache->szAlloc ){  | 
 
| 
49333
 | 
 573  | 
 0  | 
   if( !pPage ){  | 
 
| 
49337
 | 
 573  | 
 0  | 
   if( pPage ){  | 
 
| 
49347
 | 
 573  | 
 0  | 
     if( iKey>pCache->iMaxKey ){  | 
 
| 
49423
 | 
 8513  | 
 573  | 
   while( pPage && pPage->iKey!=iKey ){ pPage = pPage->pNext; }  | 
 
| 
 | 
 0  | 
 8513  | 
   while( pPage && pPage->iKey!=iKey ){ pPage = pPage->pNext; }  | 
 
| 
49429
 | 
 8513  | 
 573  | 
   if( pPage ){  | 
 
| 
49430
 | 
 309  | 
 8204  | 
     if( PAGE_IS_UNPINNED(pPage) ){  | 
 
| 
49435
 | 
 573  | 
 0  | 
   }else if( createFlag ){  | 
 
| 
49507
 | 
 502  | 
 0  | 
   if( reuseUnlikely || pGroup->nPurgeable>pGroup->nMaxPage ){  | 
 
| 
 | 
 0  | 
 502  | 
   if( reuseUnlikely || pGroup->nPurgeable>pGroup->nMaxPage ){  | 
 
| 
49541
 | 
 0  | 
 0  | 
   while( (*pp)!=pPage ){  | 
 
| 
49550
 | 
 0  | 
 0  | 
   if( iNew>pCache->iMaxKey ){  | 
 
| 
49567
 | 
 240  | 
 1095  | 
   if( iLimit<=pCache->iMaxKey ){  | 
 
| 
49584
 | 
 0  | 
 289  | 
   if( pCache->nPage ) pcache1TruncateUnsafe(pCache, 0);  | 
 
| 
49826
 | 
 9  | 
 0  | 
   if( p ){  | 
 
| 
49849
 | 
 0  | 
 11  | 
   for(pChunk=p->pChunk; pChunk; pChunk = pNextChunk){  | 
 
| 
49881
 | 
 0  | 
 12  | 
   if( p->nFresh==0 ){  /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
49886
 | 
 0  | 
 0  | 
     if( pNew==0 ){  | 
 
| 
49912
 | 
 0  | 
 12  | 
   if( pEntry==0 ) return;  | 
 
| 
49916
 | 
 6  | 
 6  | 
   if( pLast ){  | 
 
| 
49917
 | 
 0  | 
 6  | 
     if( rowid<=pLast->v ){  /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
49947
 | 
 0  | 
 0  | 
     if( pA->v<=pB->v ){  | 
 
| 
49948
 | 
 0  | 
 0  | 
       if( pA->vv ) pTail = pTail->pRight = pA;  | 
 
| 
49950
 | 
 0  | 
 0  | 
       if( pA==0 ){  | 
 
| 
49957
 | 
 0  | 
 0  | 
       if( pB==0 ){  | 
 
| 
49975
 | 
 0  | 
 0  | 
   while( pIn ){  | 
 
| 
49978
 | 
 0  | 
 0  | 
     for(i=0; aBucket[i]; i++){  | 
 
| 
49986
 | 
 0  | 
 0  | 
   for(i=1; i
 | 
 
| 
49987
 | 
 0  | 
 0  | 
     if( aBucket[i]==0 ) continue;  | 
 
| 
49988
 | 
 0  | 
 0  | 
     pIn = pIn ? rowSetEntryMerge(pIn, aBucket[i]) : aBucket[i];  | 
 
| 
50005
 | 
 0  | 
 0  | 
   if( pIn->pLeft ){  | 
 
| 
50012
 | 
 0  | 
 0  | 
   if( pIn->pRight ){  | 
 
| 
50040
 | 
 0  | 
 0  | 
   if( *ppList==0 ){ /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
50044
 | 
 0  | 
 0  | 
   if( iDepth>1 ){   /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
50050
 | 
 0  | 
 0  | 
     if( p==0 ){     /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
50079
 | 
 0  | 
 0  | 
   for(iDepth=1; pList; iDepth++){  | 
 
| 
50107
 | 
 4  | 
 0  | 
   if( (p->rsFlags & ROWSET_NEXT)==0 ){  /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
50108
 | 
 0  | 
 4  | 
     if( (p->rsFlags & ROWSET_SORTED)==0 ){  /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
50115
 | 
 2  | 
 2  | 
   if( p->pEntry ){  | 
 
| 
50118
 | 
 2  | 
 0  | 
     if( p->pEntry==0 ){ /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
50145
 | 
 6  | 
 6  | 
   if( iBatch!=pRowSet->iBatch ){  /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
50147
 | 
 0  | 
 6  | 
     if( p ){  | 
 
| 
50149
 | 
 0  | 
 0  | 
       if( (pRowSet->rsFlags & ROWSET_SORTED)==0 ){ /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
50153
 | 
 0  | 
 0  | 
       for(pTree = pRowSet->pForest; pTree; pTree=pTree->pRight){  | 
 
| 
50155
 | 
 0  | 
 0  | 
         if( pTree->pLeft==0 ){  | 
 
| 
50165
 | 
 0  | 
 0  | 
       if( pTree==0 ){  | 
 
| 
50167
 | 
 0  | 
 0  | 
         if( pTree ){  | 
 
| 
50183
 | 
 0  | 
 12  | 
   for(pTree = pRowSet->pForest; pTree; pTree=pTree->pRight){  | 
 
| 
50185
 | 
 0  | 
 0  | 
     while( p ){  | 
 
| 
50186
 | 
 0  | 
 0  | 
       if( p->v
 | 
 
| 
50188
 | 
 0  | 
 0  | 
       }else if( p->v>iRowid ){  | 
 
| 
51423
 | 
 5  | 
 600  | 
   if( pPager->errCode ){  | 
 
| 
51426
 | 
 0  | 
 600  | 
   }else if( USEFETCH(pPager)  | 
 
| 
51452
 | 
 3  | 
 2  | 
   for(i=0; inSavepoint; i++){  | 
 
| 
51454
 | 
 3  | 
 0  | 
     if( p->nOrig>=pgno && 0==sqlite3BitvecTestNotNull(p->pInSavepoint, pgno) ){  | 
 
| 
 | 
 1  | 
 2  | 
     if( p->nOrig>=pgno && 0==sqlite3BitvecTestNotNull(p->pInSavepoint, pgno) ){  | 
 
| 
51480
 | 
 274  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
51517
 | 
 481  | 
 229  | 
   if( isOpen(pPager->fd) ){  | 
 
| 
51519
 | 
 481  | 
 0  | 
     rc = pPager->noLock ? SQLITE_OK : sqlite3OsUnlock(pPager->fd, eLock);  | 
 
| 
51520
 | 
 481  | 
 0  | 
     if( pPager->eLock!=UNKNOWN_LOCK ){  | 
 
| 
51542
 | 
 1871  | 
 639  | 
   if( pPager->eLockeLock==UNKNOWN_LOCK ){  | 
 
| 
 | 
 0  | 
 1871  | 
   if( pPager->eLockeLock==UNKNOWN_LOCK ){  | 
 
| 
51543
 | 
 639  | 
 0  | 
     rc = pPager->noLock ? SQLITE_OK : sqlite3OsLock(pPager->fd, eLock);  | 
 
| 
51544
 | 
 460  | 
 179  | 
     if( rc==SQLITE_OK && (pPager->eLock!=UNKNOWN_LOCK||eLock==EXCLUSIVE_LOCK) ){  | 
 
| 
 | 
 0  | 
 460  | 
     if( rc==SQLITE_OK && (pPager->eLock!=UNKNOWN_LOCK||eLock==EXCLUSIVE_LOCK) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && (pPager->eLock!=UNKNOWN_LOCK||eLock==EXCLUSIVE_LOCK) ){  | 
 
| 
51685
 | 
 62  | 
 0  | 
   if( SQLITE_OK!=(rc = sqlite3OsFileSize(pJrnl, &szJ))  | 
 
| 
51686
 | 
 62  | 
 0  | 
    || szJ<16  | 
 
| 
51687
 | 
 62  | 
 0  | 
    || SQLITE_OK!=(rc = read32bits(pJrnl, szJ-16, &len))  | 
 
| 
51688
 | 
 36  | 
 26  | 
    || len>=nMaster   | 
 
| 
51689
 | 
 36  | 
 0  | 
    || len>szJ-16  | 
 
| 
51690
 | 
 0  | 
 36  | 
    || len==0   | 
 
| 
51691
 | 
 0  | 
 0  | 
    || SQLITE_OK!=(rc = read32bits(pJrnl, szJ-12, &cksum))  | 
 
| 
51692
 | 
 0  | 
 0  | 
    || SQLITE_OK!=(rc = sqlite3OsRead(pJrnl, aMagic, 8, szJ-8))  | 
 
| 
51693
 | 
 0  | 
 0  | 
    || memcmp(aMagic, aJournalMagic, 8)  | 
 
| 
51694
 | 
 0  | 
 0  | 
    || SQLITE_OK!=(rc = sqlite3OsRead(pJrnl, zMaster, len, szJ-16-len))  | 
 
| 
51700
 | 
 0  | 
 0  | 
   for(u=0; u
 | 
 
| 
51703
 | 
 0  | 
 0  | 
   if( cksum ){  | 
 
| 
51734
 | 
 103  | 
 990  | 
   if( c ){  | 
 
| 
51768
 | 
 0  | 
 0  | 
   if( pPager->journalOff ){  | 
 
| 
51772
 | 
 0  | 
 0  | 
     if( doTruncate || iLimit==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( doTruncate || iLimit==0 ){  | 
 
| 
51778
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && !pPager->noSync ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && !pPager->noSync ){  | 
 
| 
51788
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && iLimit>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && iLimit>0 ){  | 
 
| 
51791
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && sz>iLimit ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && sz>iLimit ){  | 
 
| 
51823
 | 
 959  | 
 0  | 
   if( nHeader>JOURNAL_HDR_SZ(pPager) ){  | 
 
| 
51831
 | 
 0  | 
 959  | 
   for(ii=0; iinSavepoint; ii++){  | 
 
| 
51832
 | 
 0  | 
 0  | 
     if( pPager->aSavepoint[ii].iHdrOffset==0 ){  | 
 
| 
51860
 | 
 74  | 
 885  | 
   if( pPager->noSync || (pPager->journalMode==PAGER_JOURNALMODE_MEMORY)  | 
 
| 
 | 
 74  | 
 0  | 
   if( pPager->noSync || (pPager->journalMode==PAGER_JOURNALMODE_MEMORY)  | 
 
| 
51861
 | 
 0  | 
 74  | 
    || (sqlite3OsDeviceCharacteristics(pPager->fd)&SQLITE_IOCAP_SAFE_APPEND)   | 
 
| 
51905
 | 
 1918  | 
 0  | 
   for(nWrite=0; rc==SQLITE_OK&&nWrite
 | 
 
| 
 | 
 959  | 
 959  | 
   for(nWrite=0; rc==SQLITE_OK&&nWrite
 | 
 
| 
51950
 | 
 31  | 
 31  | 
   if( pPager->journalOff+JOURNAL_HDR_SZ(pPager) > journalSize ){  | 
 
| 
51960
 | 
 31  | 
 0  | 
   if( isHot || iHdrOff!=pPager->journalHdr ){  | 
 
| 
 | 
 0  | 
 31  | 
   if( isHot || iHdrOff!=pPager->journalHdr ){  | 
 
| 
51962
 | 
 0  | 
 0  | 
     if( rc ){  | 
 
| 
51965
 | 
 0  | 
 0  | 
     if( memcmp(aMagic, aJournalMagic, sizeof(aMagic))!=0 ){  | 
 
| 
51974
 | 
 31  | 
 0  | 
   if( SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+8, pNRec))  | 
 
| 
51975
 | 
 31  | 
 0  | 
    || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+12, &pPager->cksumInit))  | 
 
| 
51976
 | 
 0  | 
 31  | 
    || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+16, pDbSize))  | 
 
| 
51981
 | 
 31  | 
 0  | 
   if( pPager->journalOff==0 ){  | 
 
| 
51986
 | 
 31  | 
 0  | 
     if( SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+20, &iSectorSize))  | 
 
| 
51987
 | 
 0  | 
 31  | 
      || SQLITE_OK!=(rc = read32bits(pPager->jfd, iHdrOff+24, &iPageSize))  | 
 
| 
51996
 | 
 0  | 
 31  | 
     if( iPageSize==0 ){  | 
 
| 
52005
 | 
 31  | 
 0  | 
     if( iPageSize<512                  || iSectorSize<32  | 
 
| 
 | 
 31  | 
 0  | 
     if( iPageSize<512                  || iSectorSize<32  | 
 
| 
52006
 | 
 31  | 
 0  | 
      || iPageSize>SQLITE_MAX_PAGE_SIZE || iSectorSize>MAX_SECTOR_SIZE  | 
 
| 
 | 
 31  | 
 0  | 
      || iPageSize>SQLITE_MAX_PAGE_SIZE || iSectorSize>MAX_SECTOR_SIZE  | 
 
| 
52007
 | 
 31  | 
 0  | 
      || ((iPageSize-1)&iPageSize)!=0   || ((iSectorSize-1)&iSectorSize)!=0   | 
 
| 
 | 
 0  | 
 31  | 
      || ((iPageSize-1)&iPageSize)!=0   || ((iSectorSize-1)&iSectorSize)!=0   | 
 
| 
52067
 | 
 0  | 
 72  | 
   if( !zMaster   | 
 
| 
52068
 | 
 0  | 
 0  | 
    || pPager->journalMode==PAGER_JOURNALMODE_MEMORY   | 
 
| 
52069
 | 
 0  | 
 0  | 
    || !isOpen(pPager->jfd)  | 
 
| 
52077
 | 
 0  | 
 0  | 
   for(nMaster=0; zMaster[nMaster]; nMaster++){  | 
 
| 
52085
 | 
 0  | 
 0  | 
   if( pPager->fullSync ){  | 
 
| 
52093
 | 
 0  | 
 0  | 
   if( (0 != (rc = write32bits(pPager->jfd, iHdrOff, PAGER_MJ_PGNO(pPager))))  | 
 
| 
52094
 | 
 0  | 
 0  | 
    || (0 != (rc = sqlite3OsWrite(pPager->jfd, zMaster, nMaster, iHdrOff+4)))  | 
 
| 
52095
 | 
 0  | 
 0  | 
    || (0 != (rc = write32bits(pPager->jfd, iHdrOff+4+nMaster, nMaster)))  | 
 
| 
52096
 | 
 0  | 
 0  | 
    || (0 != (rc = write32bits(pPager->jfd, iHdrOff+4+nMaster+4, cksum)))  | 
 
| 
52097
 | 
 0  | 
 0  | 
    || (0 != (rc = sqlite3OsWrite(pPager->jfd, aJournalMagic, 8,  | 
 
| 
52114
 | 
 0  | 
 0  | 
   if( SQLITE_OK==(rc = sqlite3OsFileSize(pPager->jfd, &jrnlSize))  | 
 
| 
52115
 | 
 0  | 
 0  | 
    && jrnlSize>pPager->journalOff  | 
 
| 
52145
 | 
 1  | 
 3357  | 
   for(ii=0; iinSavepoint; ii++){  | 
 
| 
52148
 | 
 2647  | 
 710  | 
   if( !pPager->exclusiveMode || sqlite3JournalIsInMemory(pPager->sjfd) ){  | 
 
| 
 | 
 1  | 
 2646  | 
   if( !pPager->exclusiveMode || sqlite3JournalIsInMemory(pPager->sjfd) ){  | 
 
| 
52166
 | 
 1  | 
 1456  | 
   for(ii=0; iinSavepoint; ii++){  | 
 
| 
52168
 | 
 1  | 
 0  | 
     if( pgno<=p->nOrig ){  | 
 
| 
52205
 | 
 0  | 
 2322  | 
   if( pagerUseWal(pPager) ){  | 
 
| 
52209
 | 
 591  | 
 1731  | 
   }else if( !pPager->exclusiveMode ){  | 
 
| 
52211
 | 
 400  | 
 191  | 
     int iDc = isOpen(pPager->fd)?sqlite3OsDeviceCharacteristics(pPager->fd):0;  | 
 
| 
52224
 | 
 0  | 
 591  | 
     if( 0==(iDc & SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN)  | 
 
| 
52225
 | 
 0  | 
 0  | 
      || 1!=(pPager->journalMode & 5)  | 
 
| 
52236
 | 
 0  | 
 591  | 
     if( rc!=SQLITE_OK && pPager->eState==PAGER_ERROR ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK && pPager->eState==PAGER_ERROR ){  | 
 
| 
52255
 | 
 5  | 
 2317  | 
   if( pPager->errCode ){  | 
 
| 
52256
 | 
 0  | 
 5  | 
     if( pPager->tempFile==0 ){  | 
 
| 
52263
 | 
 0  | 
 5  | 
     if( USEFETCH(pPager) ) sqlite3OsUnfetch(pPager->fd, 0, 0);  | 
 
| 
52300
 | 
 992  | 
 0  | 
   if( rc2==SQLITE_FULL || rc2==SQLITE_IOERR ){  | 
 
| 
 | 
 0  | 
 992  | 
   if( rc2==SQLITE_FULL || rc2==SQLITE_IOERR ){  | 
 
| 
52327
 | 
 153  | 
 1094  | 
   if( pPager->tempFile==0 ) return 1;  | 
 
| 
52328
 | 
 47  | 
 1047  | 
   if( !bCommit ) return 0;  | 
 
| 
52329
 | 
 1047  | 
 0  | 
   if( !isOpen(pPager->fd) ) return 0;  | 
 
| 
52405
 | 
 338  | 
 997  | 
   if( pPager->eStateeLock
 | 
 
| 
 | 
 300  | 
 38  | 
   if( pPager->eStateeLock
 | 
 
| 
52413
 | 
 959  | 
 76  | 
   if( isOpen(pPager->jfd) ){  | 
 
| 
52417
 | 
 885  | 
 74  | 
     if( sqlite3JournalIsInMemory(pPager->jfd) ){  | 
 
| 
52420
 | 
 0  | 
 74  | 
     }else if( pPager->journalMode==PAGER_JOURNALMODE_TRUNCATE ){  | 
 
| 
52421
 | 
 0  | 
 0  | 
       if( pPager->journalOff==0 ){  | 
 
| 
52425
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && pPager->fullSync ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && pPager->fullSync ){  | 
 
| 
52435
 | 
 74  | 
 0  | 
     }else if( pPager->journalMode==PAGER_JOURNALMODE_PERSIST  | 
 
| 
52436
 | 
 0  | 
 74  | 
       || (pPager->exclusiveMode && pPager->journalMode!=PAGER_JOURNALMODE_WAL)  | 
 
| 
 | 
 0  | 
 0  | 
       || (pPager->exclusiveMode && pPager->journalMode!=PAGER_JOURNALMODE_WAL)  | 
 
| 
52438
 | 
 0  | 
 0  | 
       rc = zeroJournalHdr(pPager, hasMaster||pPager->tempFile);  | 
 
| 
 | 
 0  | 
 0  | 
       rc = zeroJournalHdr(pPager, hasMaster||pPager->tempFile);  | 
 
| 
52453
 | 
 74  | 
 0  | 
       if( bDelete ){  | 
 
| 
52473
 | 
 1035  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
52474
 | 
 319  | 
 716  | 
     if( MEMDB || pagerFlushOnCommit(pPager, bCommit) ){  | 
 
| 
 | 
 81  | 
 238  | 
     if( MEMDB || pagerFlushOnCommit(pPager, bCommit) ){  | 
 
| 
52482
 | 
 0  | 
 1035  | 
   if( pagerUseWal(pPager) ){  | 
 
| 
52489
 | 
 1035  | 
 0  | 
   }else if( rc==SQLITE_OK && bCommit && pPager->dbFileSize>pPager->dbSize ){  | 
 
| 
 | 
 948  | 
 87  | 
   }else if( rc==SQLITE_OK && bCommit && pPager->dbFileSize>pPager->dbSize ){  | 
 
| 
 | 
 0  | 
 948  | 
   }else if( rc==SQLITE_OK && bCommit && pPager->dbFileSize>pPager->dbSize ){  | 
 
| 
52500
 | 
 1035  | 
 0  | 
   if( rc==SQLITE_OK && bCommit ){  | 
 
| 
 | 
 948  | 
 87  | 
   if( rc==SQLITE_OK && bCommit ){  | 
 
| 
52502
 | 
 948  | 
 0  | 
     if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;  | 
 
| 
52505
 | 
 119  | 
 916  | 
   if( !pPager->exclusiveMode   | 
 
| 
52506
 | 
 0  | 
 119  | 
    && (!pagerUseWal(pPager) || sqlite3WalExclusiveMode(pPager->pWal, 0))  | 
 
| 
 | 
 0  | 
 0  | 
    && (!pagerUseWal(pPager) || sqlite3WalExclusiveMode(pPager->pWal, 0))  | 
 
| 
52514
 | 
 1035  | 
 0  | 
   return (rc==SQLITE_OK?rc2:rc);  | 
 
| 
52535
 | 
 2162  | 
 5  | 
   if( pPager->eState!=PAGER_ERROR && pPager->eState!=PAGER_OPEN ){  | 
 
| 
 | 
 2064  | 
 98  | 
   if( pPager->eState!=PAGER_ERROR && pPager->eState!=PAGER_OPEN ){  | 
 
| 
52537
 | 
 0  | 
 2064  | 
     if( pPager->eState>=PAGER_WRITER_LOCKED ){  | 
 
| 
52541
 | 
 338  | 
 1726  | 
     }else if( !pPager->exclusiveMode ){  | 
 
| 
52571
 | 
 23640  | 
 1182  | 
   while( i>0 ){  | 
 
| 
52687
 | 
 28  | 
 1  | 
   jfd = isMainJrnl ? pPager->jfd : pPager->sjfd;  | 
 
| 
52689
 | 
 0  | 
 29  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
52691
 | 
 0  | 
 29  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
52699
 | 
 29  | 
 0  | 
   if( pgno==0 || pgno==PAGER_MJ_PGNO(pPager) ){  | 
 
| 
 | 
 0  | 
 29  | 
   if( pgno==0 || pgno==PAGER_MJ_PGNO(pPager) ){  | 
 
| 
52703
 | 
 29  | 
 0  | 
   if( pgno>(Pgno)pPager->dbSize || sqlite3BitvecTest(pDone, pgno) ){  | 
 
| 
 | 
 0  | 
 29  | 
   if( pgno>(Pgno)pPager->dbSize || sqlite3BitvecTest(pDone, pgno) ){  | 
 
| 
52706
 | 
 28  | 
 1  | 
   if( isMainJrnl ){  | 
 
| 
52708
 | 
 0  | 
 28  | 
     if( rc ) return rc;  | 
 
| 
52709
 | 
 28  | 
 0  | 
     if( !isSavepnt && pager_cksum(pPager, (u8*)aData)!=cksum ){  | 
 
| 
 | 
 0  | 
 28  | 
     if( !isSavepnt && pager_cksum(pPager, (u8*)aData)!=cksum ){  | 
 
| 
52717
 | 
 1  | 
 28  | 
   if( pDone && (rc = sqlite3BitvecSet(pDone, pgno))!=SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 1  | 
   if( pDone && (rc = sqlite3BitvecSet(pDone, pgno))!=SQLITE_OK ){  | 
 
| 
52723
 | 
 1  | 
 28  | 
   if( pgno==1 && pPager->nReserve!=((u8*)aData)[20] ){  | 
 
| 
 | 
 0  | 
 1  | 
   if( pgno==1 && pPager->nReserve!=((u8*)aData)[20] ){  | 
 
| 
52763
 | 
 0  | 
 29  | 
   if( pagerUseWal(pPager) ){  | 
 
| 
52774
 | 
 28  | 
 1  | 
   if( isMainJrnl ){  | 
 
| 
52775
 | 
 2  | 
 26  | 
     isSynced = pPager->noSync || (*pOffset <= pPager->journalHdr);  | 
 
| 
 | 
 0  | 
 2  | 
     isSynced = pPager->noSync || (*pOffset <= pPager->journalHdr);  | 
 
| 
52777
 | 
 1  | 
 0  | 
     isSynced = (pPg==0 || 0==(pPg->flags & PGHDR_NEED_SYNC));  | 
 
| 
 | 
 0  | 
 1  | 
     isSynced = (pPg==0 || 0==(pPg->flags & PGHDR_NEED_SYNC));  | 
 
| 
52779
 | 
 2  | 
 27  | 
   if( isOpen(pPager->fd)  | 
 
| 
52780
 | 
 2  | 
 0  | 
    && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)  | 
 
| 
 | 
 0  | 
 2  | 
    && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)  | 
 
| 
52781
 | 
 0  | 
 0  | 
    && isSynced  | 
 
| 
52802
 | 
 0  | 
 0  | 
     if( pgno>pPager->dbFileSize ){  | 
 
| 
52805
 | 
 0  | 
 0  | 
     if( pPager->pBackup ){  | 
 
| 
52815
 | 
 1  | 
 28  | 
   }else if( !isMainJrnl && pPg==0 ){  | 
 
| 
 | 
 0  | 
 1  | 
   }else if( !isMainJrnl && pPg==0 ){  | 
 
| 
52838
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
52841
 | 
 29  | 
 0  | 
   if( pPg ){  | 
 
| 
52860
 | 
 1  | 
 28  | 
     if( pgno==1 ){  | 
 
| 
52932
 | 
 0  | 
 0  | 
   if( !pMaster ){  | 
 
| 
52938
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto delmaster_out;  | 
 
| 
52946
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto delmaster_out;  | 
 
| 
52949
 | 
 0  | 
 0  | 
   if( !zMasterJournal ){  | 
 
| 
52955
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto delmaster_out;  | 
 
| 
52959
 | 
 0  | 
 0  | 
   while( (zJournal-zMasterJournal)
 | 
 
| 
52962
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
52965
 | 
 0  | 
 0  | 
     if( exists ){  | 
 
| 
52973
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
52979
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
52983
 | 
 0  | 
 0  | 
       c = zMasterPtr[0]!=0 && strcmp(zMasterPtr, zMaster)==0;  | 
 
| 
 | 
 0  | 
 0  | 
       c = zMasterPtr[0]!=0 && strcmp(zMasterPtr, zMaster)==0;  | 
 
| 
52984
 | 
 0  | 
 0  | 
       if( c ){  | 
 
| 
52997
 | 
 0  | 
 0  | 
   if( pMaster ){  | 
 
| 
53031
 | 
 2  | 
 29  | 
   if( isOpen(pPager->fd)   | 
 
| 
53032
 | 
 2  | 
 0  | 
    && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)   | 
 
| 
 | 
 0  | 
 2  | 
    && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)   | 
 
| 
53040
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && currentSize!=newSize ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && currentSize!=newSize ){  | 
 
| 
53041
 | 
 0  | 
 0  | 
       if( currentSize>newSize ){  | 
 
| 
53043
 | 
 0  | 
 0  | 
       }else if( (currentSize+szPage)<=newSize ){  | 
 
| 
53050
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
53064
 | 
 0  | 
 0  | 
   if( iRet<32 ){  | 
 
| 
53066
 | 
 0  | 
 0  | 
   }else if( iRet>MAX_SECTOR_SIZE ){  | 
 
| 
53099
 | 
 199  | 
 220  | 
   if( pPager->tempFile  | 
 
| 
53100
 | 
 199  | 
 0  | 
    || (sqlite3OsDeviceCharacteristics(pPager->fd) &   | 
 
| 
53187
 | 
 0  | 
 31  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
53204
 | 
 31  | 
 0  | 
   if( rc==SQLITE_OK && zMaster[0] ){  | 
 
| 
 | 
 0  | 
 31  | 
   if( rc==SQLITE_OK && zMaster[0] ){  | 
 
| 
53208
 | 
 31  | 
 0  | 
   if( rc!=SQLITE_OK || !res ){  | 
 
| 
 | 
 31  | 
 0  | 
   if( rc!=SQLITE_OK || !res ){  | 
 
| 
53225
 | 
 31  | 
 31  | 
     if( rc!=SQLITE_OK ){   | 
 
| 
53226
 | 
 31  | 
 0  | 
       if( rc==SQLITE_DONE ){  | 
 
| 
53237
 | 
 29  | 
 2  | 
     if( nRec==0xffffffff ){  | 
 
| 
53256
 | 
 7  | 
 24  | 
     if( nRec==0 && !isHot &&  | 
 
| 
 | 
 7  | 
 0  | 
     if( nRec==0 && !isHot &&  | 
 
| 
 | 
 7  | 
 0  | 
     if( nRec==0 && !isHot &&  | 
 
| 
53264
 | 
 31  | 
 0  | 
     if( pPager->journalOff==JOURNAL_HDR_SZ(pPager) ){  | 
 
| 
53266
 | 
 0  | 
 31  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
53275
 | 
 28  | 
 31  | 
     for(u=0; u
 | 
 
| 
53276
 | 
 0  | 
 28  | 
       if( needPagerReset ){  | 
 
| 
53281
 | 
 28  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
53284
 | 
 0  | 
 0  | 
         if( rc==SQLITE_DONE ){  | 
 
| 
53287
 | 
 0  | 
 0  | 
         }else if( rc==SQLITE_IOERR_SHORT_READ ){  | 
 
| 
53310
 | 
 31  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
53333
 | 
 31  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
53338
 | 
 31  | 
 0  | 
   if( rc==SQLITE_OK  | 
 
| 
53339
 | 
 31  | 
 0  | 
    && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)  | 
 
| 
 | 
 0  | 
 31  | 
    && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN)  | 
 
| 
53343
 | 
 31  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
53347
 | 
 31  | 
 0  | 
   if( rc==SQLITE_OK && zMaster[0] && res ){  | 
 
| 
 | 
 0  | 
 31  | 
   if( rc==SQLITE_OK && zMaster[0] && res ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && zMaster[0] && res ){  | 
 
| 
53354
 | 
 0  | 
 31  | 
   if( isHot && nPlayback ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( isHot && nPlayback ){  | 
 
| 
53390
 | 
 0  | 
 75  | 
   if( pagerUseWal(pPager) ){  | 
 
| 
53392
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
53394
 | 
 0  | 
 75  | 
   if( iFrame ){  | 
 
| 
53401
 | 
 0  | 
 75  | 
     if( rc==SQLITE_IOERR_SHORT_READ ){  | 
 
| 
53406
 | 
 43  | 
 32  | 
   if( pPg->pgno==1 ){  | 
 
| 
53407
 | 
 0  | 
 43  | 
     if( rc ){  | 
 
| 
53479
 | 
 0  | 
 0  | 
   if( pPg ){  | 
 
| 
53480
 | 
 0  | 
 0  | 
     if( sqlite3PcachePageRefcount(pPg)==1 ){  | 
 
| 
53484
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
53521
 | 
 0  | 
 0  | 
   while( pList && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( pList && rc==SQLITE_OK ){  | 
 
| 
53559
 | 
 0  | 
 0  | 
   if( isCommit ){  | 
 
| 
53566
 | 
 0  | 
 0  | 
     for(p=pList; (*ppNext = p)!=0; p=p->pDirty){  | 
 
| 
53567
 | 
 0  | 
 0  | 
       if( p->pgno<=nTruncate ){  | 
 
| 
53578
 | 
 0  | 
 0  | 
   if( pList->pgno==1 ) pager_write_changecounter(pList);  | 
 
| 
53582
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pPager->pBackup ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pPager->pBackup ){  | 
 
| 
53583
 | 
 0  | 
 0  | 
     for(p=pList; p; p=p->pDirty){  | 
 
| 
53621
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK || changed ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK || changed ){  | 
 
| 
53623
 | 
 0  | 
 0  | 
     if( USEFETCH(pPager) ) sqlite3OsUnfetch(pPager->fd, 0, 0);  | 
 
| 
53659
 | 
 300  | 
 0  | 
   if( nPage==0 && ALWAYS(isOpen(pPager->fd)) ){  | 
 
| 
 | 
 300  | 
 0  | 
   if( nPage==0 && ALWAYS(isOpen(pPager->fd)) ){  | 
 
| 
53662
 | 
 0  | 
 300  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
53672
 | 
 0  | 
 300  | 
   if( nPage>pPager->mxPgno ){  | 
 
| 
53704
 | 
 300  | 
 0  | 
   if( !pPager->tempFile ){  | 
 
| 
53709
 | 
 300  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
53710
 | 
 0  | 
 300  | 
       if( isWal ){  | 
 
| 
53714
 | 
 0  | 
 0  | 
         if( rc ) return rc;  | 
 
| 
53715
 | 
 0  | 
 0  | 
         if( nPage==0 ){  | 
 
| 
53721
 | 
 0  | 
 300  | 
       }else if( pPager->journalMode==PAGER_JOURNALMODE_WAL ){  | 
 
| 
53776
 | 
 1  | 
 0  | 
   if( pSavepoint ){  | 
 
| 
53778
 | 
 0  | 
 1  | 
     if( !pDone ){  | 
 
| 
53786
 | 
 1  | 
 0  | 
   pPager->dbSize = pSavepoint ? pSavepoint->nOrig : pPager->dbOrigSize;  | 
 
| 
53789
 | 
 0  | 
 1  | 
   if( !pSavepoint && pagerUseWal(pPager) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !pSavepoint && pagerUseWal(pPager) ){  | 
 
| 
53808
 | 
 1  | 
 0  | 
   if( pSavepoint && !pagerUseWal(pPager) ){  | 
 
| 
 | 
 1  | 
 0  | 
   if( pSavepoint && !pagerUseWal(pPager) ){  | 
 
| 
53809
 | 
 0  | 
 1  | 
     iHdrOff = pSavepoint->iHdrOffset ? pSavepoint->iHdrOffset : szJ;  | 
 
| 
53811
 | 
 1  | 
 0  | 
     while( rc==SQLITE_OK && pPager->journalOff
 | 
 
| 
 | 
 0  | 
 1  | 
     while( rc==SQLITE_OK && pPager->journalOff
 | 
 
| 
53824
 | 
 1  | 
 0  | 
   while( rc==SQLITE_OK && pPager->journalOff
 | 
 
| 
 | 
 0  | 
 1  | 
   while( rc==SQLITE_OK && pPager->journalOff
 | 
 
| 
53836
 | 
 0  | 
 0  | 
     if( nJRec==0   | 
 
| 
53837
 | 
 0  | 
 0  | 
      && pPager->journalHdr+JOURNAL_HDR_SZ(pPager)==pPager->journalOff  | 
 
| 
53841
 | 
 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
 | 
 
| 
53852
 | 
 1  | 
 0  | 
   if( pSavepoint ){  | 
 
| 
53856
 | 
 0  | 
 1  | 
     if( pagerUseWal(pPager) ){  | 
 
| 
53859
 | 
 2  | 
 0  | 
     for(ii=pSavepoint->iSubRec; rc==SQLITE_OK && iinSubRec; ii++){  | 
 
| 
 | 
 1  | 
 1  | 
     for(ii=pSavepoint->iSubRec; rc==SQLITE_OK && iinSubRec; ii++){  | 
 
| 
53867
 | 
 1  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
53896
 | 
 304  | 
 663  | 
   if( isOpen(fd) && fd->pMethods->iVersion>=3 ){  | 
 
| 
 | 
 304  | 
 0  | 
   if( isOpen(fd) && fd->pMethods->iVersion>=3 ){  | 
 
| 
53978
 | 
 13  | 
 0  | 
   if( pPager->tempFile ){  | 
 
| 
53987
 | 
 13  | 
 0  | 
   if( pPager->noSync ){  | 
 
| 
53989
 | 
 0  | 
 0  | 
   }else if( pgFlags & PAGER_FULLFSYNC ){  | 
 
| 
53995
 | 
 0  | 
 13  | 
   if( pPager->fullSync ){  | 
 
| 
53998
 | 
 0  | 
 13  | 
   if( (pgFlags & PAGER_CKPT_FULLFSYNC) && !pPager->noSync ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (pgFlags & PAGER_CKPT_FULLFSYNC) && !pPager->noSync ){  | 
 
| 
54001
 | 
 13  | 
 0  | 
   if( pgFlags & PAGER_CACHESPILL ){  | 
 
| 
54131
 | 
 205  | 
 471  | 
   if( (pPager->memDb==0 || pPager->dbSize==0)  | 
 
| 
 | 
 160  | 
 45  | 
   if( (pPager->memDb==0 || pPager->dbSize==0)  | 
 
| 
54132
 | 
 614  | 
 17  | 
    && sqlite3PcacheRefCount(pPager->pPCache)==0   | 
 
| 
54133
 | 
 348  | 
 266  | 
    && pageSize && pageSize!=(u32)pPager->pageSize   | 
 
| 
 | 
 291  | 
 57  | 
    && pageSize && pageSize!=(u32)pPager->pageSize   | 
 
| 
54138
 | 
 191  | 
 100  | 
     if( pPager->eState>PAGER_OPEN && isOpen(pPager->fd) ){  | 
 
| 
 | 
 0  | 
 191  | 
     if( pPager->eState>PAGER_OPEN && isOpen(pPager->fd) ){  | 
 
| 
54141
 | 
 291  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
54143
 | 
 0  | 
 291  | 
       if( !pNew ) rc = SQLITE_NOMEM_BKPT;  | 
 
| 
54146
 | 
 291  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
54150
 | 
 291  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
54161
 | 
 676  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
54162
 | 
 353  | 
 323  | 
     if( nReserve<0 ) nReserve = pPager->nReserve;  | 
 
| 
54191
 | 
 0  | 
 0  | 
   if( mxPage>0 ){  | 
 
| 
54248
 | 
 100  | 
 191  | 
   if( isOpen(pPager->fd) ){  | 
 
| 
54251
 | 
 75  | 
 25  | 
     if( rc==SQLITE_IOERR_SHORT_READ ){  | 
 
| 
54301
 | 
 27  | 
 1334  | 
   }while( rc==SQLITE_BUSY && pPager->xBusyHandler(pPager->pBusyHandlerArg) );  | 
 
| 
 | 
 25  | 
 2  | 
   }while( rc==SQLITE_BUSY && pPager->xBusyHandler(pPager->pBusyHandlerArg) );  | 
 
| 
54383
 | 
 0  | 
 0  | 
   if( !pPager->noSync ){  | 
 
| 
54386
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
54411
 | 
 0  | 
 0  | 
   if( pPager->pMmapFreelist ){  | 
 
| 
54419
 | 
 0  | 
 0  | 
     if( p==0 ){  | 
 
| 
54463
 | 
 0  | 
 289  | 
   for(p=pPager->pMmapFreelist; p; p=pNext){  | 
 
| 
54478
 | 
 386  | 
 172  | 
   if( pPager->tempFile ) return SQLITE_OK;  | 
 
| 
54479
 | 
 68  | 
 104  | 
   if( pPager->dbSize==0 ) return SQLITE_OK;  | 
 
| 
54482
 | 
 0  | 
 104  | 
   if( rc==SQLITE_NOTFOUND ){  | 
 
| 
54487
 | 
 104  | 
 0  | 
   }else if( rc==SQLITE_OK && bHasMoved ){  | 
 
| 
 | 
 0  | 
 104  | 
   }else if( rc==SQLITE_OK && bHasMoved ){  | 
 
| 
54521
 | 
 289  | 
 0  | 
     if( db && 0==(db->flags & SQLITE_NoCkptOnClose)   | 
 
| 
 | 
 289  | 
 0  | 
     if( db && 0==(db->flags & SQLITE_NoCkptOnClose)   | 
 
| 
54522
 | 
 289  | 
 0  | 
      && SQLITE_OK==databaseIsUnmoved(pPager)  | 
 
| 
54531
 | 
 153  | 
 136  | 
   if( MEMDB ){  | 
 
| 
54545
 | 
 0  | 
 136  | 
     if( isOpen(pPager->jfd) ){  | 
 
| 
54631
 | 
 0  | 
 72  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
54633
 | 
 72  | 
 0  | 
   if( !pPager->noSync ){  | 
 
| 
54635
 | 
 72  | 
 0  | 
     if( isOpen(pPager->jfd) && pPager->journalMode!=PAGER_JOURNALMODE_MEMORY ){  | 
 
| 
 | 
 72  | 
 0  | 
     if( isOpen(pPager->jfd) && pPager->journalMode!=PAGER_JOURNALMODE_MEMORY ){  | 
 
| 
54639
 | 
 72  | 
 0  | 
       if( 0==(iDc&SQLITE_IOCAP_SAFE_APPEND) ){  | 
 
| 
54671
 | 
 0  | 
 72  | 
         if( rc==SQLITE_OK && 0==memcmp(aMagic, aJournalMagic, 8) ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && 0==memcmp(aMagic, aJournalMagic, 8) ){  | 
 
| 
54675
 | 
 72  | 
 0  | 
         if( rc!=SQLITE_OK && rc!=SQLITE_IOERR_SHORT_READ ){  | 
 
| 
 | 
 0  | 
 72  | 
         if( rc!=SQLITE_OK && rc!=SQLITE_IOERR_SHORT_READ ){  | 
 
| 
54690
 | 
 72  | 
 0  | 
         if( pPager->fullSync && 0==(iDc&SQLITE_IOCAP_SEQUENTIAL) ){  | 
 
| 
 | 
 72  | 
 0  | 
         if( pPager->fullSync && 0==(iDc&SQLITE_IOCAP_SEQUENTIAL) ){  | 
 
| 
54694
 | 
 0  | 
 72  | 
           if( rc!=SQLITE_OK ) return rc;  | 
 
| 
54700
 | 
 0  | 
 72  | 
         if( rc!=SQLITE_OK ) return rc;  | 
 
| 
54702
 | 
 72  | 
 0  | 
       if( 0==(iDc&SQLITE_IOCAP_SEQUENTIAL) ){  | 
 
| 
54706
 | 
 0  | 
 72  | 
           (pPager->syncFlags==SQLITE_SYNC_FULL?SQLITE_SYNC_DATAONLY:0)  | 
 
| 
54708
 | 
 0  | 
 72  | 
         if( rc!=SQLITE_OK ) return rc;  | 
 
| 
54712
 | 
 0  | 
 72  | 
       if( newHdr && 0==(iDc&SQLITE_IOCAP_SAFE_APPEND) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( newHdr && 0==(iDc&SQLITE_IOCAP_SAFE_APPEND) ){  | 
 
| 
54715
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ) return rc;  | 
 
| 
54777
 | 
 0  | 
 72  | 
   if( !isOpen(pPager->fd) ){  | 
 
| 
54786
 | 
 72  | 
 0  | 
   if( rc==SQLITE_OK   | 
 
| 
54787
 | 
 24  | 
 48  | 
    && pPager->dbHintSizedbSize  | 
 
| 
54788
 | 
 0  | 
 24  | 
    && (pList->pDirty || pList->pgno>pPager->dbHintSize)  | 
 
| 
 | 
 0  | 
 0  | 
    && (pList->pDirty || pList->pgno>pPager->dbHintSize)  | 
 
| 
54795
 | 
 224  | 
 0  | 
   while( rc==SQLITE_OK && pList ){  | 
 
| 
 | 
 152  | 
 72  | 
   while( rc==SQLITE_OK && pList ){  | 
 
| 
54806
 | 
 152  | 
 0  | 
     if( pgno<=pPager->dbSize && 0==(pList->flags&PGHDR_DONT_WRITE) ){  | 
 
| 
 | 
 151  | 
 1  | 
     if( pgno<=pPager->dbSize && 0==(pList->flags&PGHDR_DONT_WRITE) ){  | 
 
| 
54811
 | 
 72  | 
 79  | 
       if( pList->pgno==1 ) pager_write_changecounter(pList);  | 
 
| 
54823
 | 
 72  | 
 79  | 
       if( pgno==1 ){  | 
 
| 
54826
 | 
 44  | 
 107  | 
       if( pgno>pPager->dbFileSize ){  | 
 
| 
54858
 | 
 1  | 
 0  | 
   if( !isOpen(pPager->sjfd) ){  | 
 
| 
54863
 | 
 0  | 
 1  | 
     if( pPager->journalMode==PAGER_JOURNALMODE_MEMORY || pPager->subjInMemory ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pPager->journalMode==PAGER_JOURNALMODE_MEMORY || pPager->subjInMemory ){  | 
 
| 
54885
 | 
 1  | 
 0  | 
   if( pPager->journalMode!=PAGER_JOURNALMODE_OFF ){  | 
 
| 
54899
 | 
 1  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
54912
 | 
 1  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
54917
 | 
 1  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
54925
 | 
 1  | 
 2  | 
   if( subjRequiresPage(pPg) ){  | 
 
| 
54974
 | 
 0  | 
 0  | 
   if( NEVER(pPager->errCode) ) return SQLITE_OK;  | 
 
| 
54978
 | 
 0  | 
 0  | 
   if( pPager->doNotSpill  | 
 
| 
54979
 | 
 0  | 
 0  | 
    && ((pPager->doNotSpill & (SPILLFLAG_ROLLBACK|SPILLFLAG_OFF))!=0  | 
 
| 
54980
 | 
 0  | 
 0  | 
       || (pPg->flags & PGHDR_NEED_SYNC)!=0)  | 
 
| 
54987
 | 
 0  | 
 0  | 
   if( pagerUseWal(pPager) ){  | 
 
| 
54990
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
55003
 | 
 0  | 
 0  | 
     if( pPg->flags&PGHDR_NEED_SYNC   | 
 
| 
55004
 | 
 0  | 
 0  | 
      || pPager->eState==PAGER_WRITER_CACHEMOD  | 
 
| 
55010
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
55017
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
55030
 | 
 0  | 
 0  | 
   if( !MEMDB ){  | 
 
| 
55033
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK && pList ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK && pList ){  | 
 
| 
55035
 | 
 0  | 
 0  | 
       if( pList->nRef==0 ){  | 
 
| 
55114
 | 
 153  | 
 144  | 
   if( flags & PAGER_MEMORY ){  | 
 
| 
55116
 | 
 153  | 
 0  | 
     if( zFilename && zFilename[0] ){  | 
 
| 
 | 
 153  | 
 0  | 
     if( zFilename && zFilename[0] ){  | 
 
| 
55118
 | 
 0  | 
 153  | 
       if( zPathname==0  ) return SQLITE_NOMEM_BKPT;  | 
 
| 
55129
 | 
 109  | 
 188  | 
   if( zFilename && zFilename[0] ){  | 
 
| 
 | 
 106  | 
 3  | 
   if( zFilename && zFilename[0] ){  | 
 
| 
55133
 | 
 0  | 
 106  | 
     if( zPathname==0 ){  | 
 
| 
55140
 | 
 10  | 
 106  | 
     while( *z ){  | 
 
| 
55146
 | 
 106  | 
 0  | 
     if( rc==SQLITE_OK && nPathname+8>pVfs->mxPathname ){  | 
 
| 
 | 
 0  | 
 106  | 
     if( rc==SQLITE_OK && nPathname+8>pVfs->mxPathname ){  | 
 
| 
55155
 | 
 0  | 
 106  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
55185
 | 
 0  | 
 297  | 
   if( !pPtr ){  | 
 
| 
55198
 | 
 259  | 
 38  | 
   if( zPathname ){  | 
 
| 
55202
 | 
 106  | 
 153  | 
     if( nUri ) memcpy(&pPager->zFilename[nPathname+1], zUri, nUri);  | 
 
| 
55219
 | 
 109  | 
 188  | 
   if( zFilename && zFilename[0] ){  | 
 
| 
 | 
 106  | 
 3  | 
   if( zFilename && zFilename[0] ){  | 
 
| 
55236
 | 
 100  | 
 6  | 
     if( rc==SQLITE_OK ){  | 
 
| 
55238
 | 
 97  | 
 3  | 
       if( !readOnly ){  | 
 
| 
55241
 | 
 0  | 
 97  | 
         if( szPageDfltsectorSize ){  | 
 
| 
55242
 | 
 0  | 
 0  | 
           if( pPager->sectorSize>SQLITE_MAX_DEFAULT_PAGE_SIZE ){  | 
 
| 
55263
 | 
 100  | 
 0  | 
       if( (iDc & SQLITE_IOCAP_IMMUTABLE)!=0  | 
 
| 
55264
 | 
 0  | 
 100  | 
        || sqlite3_uri_boolean(zFilename, "immutable", 0) ){  | 
 
| 
55291
 | 
 291  | 
 6  | 
   if( rc==SQLITE_OK ){  | 
 
| 
55298
 | 
 291  | 
 6  | 
   if( rc==SQLITE_OK ){  | 
 
| 
55301
 | 
 138  | 
 153  | 
     rc = sqlite3PcacheOpen(szPageDflt, nExtra, !memDb,  | 
 
| 
55307
 | 
 6  | 
 291  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
55337
 | 
 100  | 
 191  | 
   if( pPager->noSync ){  | 
 
| 
55355
 | 
 5  | 
 286  | 
   if( !useJournal ){  | 
 
| 
55357
 | 
 153  | 
 133  | 
   }else if( memDb || memJM ){  | 
 
| 
55419
 | 
 300  | 
 0  | 
   if( !jrnlOpen ){  | 
 
| 
55422
 | 
 300  | 
 0  | 
   if( rc==SQLITE_OK && exists ){  | 
 
| 
 | 
 152  | 
 148  | 
   if( rc==SQLITE_OK && exists ){  | 
 
| 
55434
 | 
 152  | 
 0  | 
     if( rc==SQLITE_OK && !locked ){  | 
 
| 
 | 
 0  | 
 152  | 
     if( rc==SQLITE_OK && !locked ){  | 
 
| 
55439
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
55448
 | 
 0  | 
 0  | 
         if( nPage==0 && !jrnlOpen ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( nPage==0 && !jrnlOpen ){  | 
 
| 
55450
 | 
 0  | 
 0  | 
           if( pagerLockDb(pPager, RESERVED_LOCK)==SQLITE_OK ){  | 
 
| 
55452
 | 
 0  | 
 0  | 
             if( !pPager->exclusiveMode ) pagerUnlockDb(pPager, SHARED_LOCK);  | 
 
| 
55462
 | 
 0  | 
 0  | 
           if( !jrnlOpen ){  | 
 
| 
55466
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
55469
 | 
 0  | 
 0  | 
             if( rc==SQLITE_IOERR_SHORT_READ ){  | 
 
| 
55472
 | 
 0  | 
 0  | 
             if( !jrnlOpen ){  | 
 
| 
55476
 | 
 0  | 
 0  | 
           }else if( rc==SQLITE_CANTOPEN ){  | 
 
| 
55536
 | 
 2033  | 
 0  | 
   if( !pagerUseWal(pPager) && pPager->eState==PAGER_OPEN ){  | 
 
| 
 | 
 302  | 
 1731  | 
   if( !pagerUseWal(pPager) && pPager->eState==PAGER_OPEN ){  | 
 
| 
55543
 | 
 2  | 
 300  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
55551
 | 
 300  | 
 0  | 
     if( pPager->eLock<=SHARED_LOCK ){  | 
 
| 
55554
 | 
 0  | 
 300  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
55557
 | 
 0  | 
 300  | 
     if( bHotJournal ){  | 
 
| 
55558
 | 
 0  | 
 0  | 
       if( pPager->readOnly ){  | 
 
| 
55579
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
55596
 | 
 0  | 
 0  | 
       if( !isOpen(pPager->jfd) ){  | 
 
| 
55601
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && bExists ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && bExists ){  | 
 
| 
55607
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK && fout&SQLITE_OPEN_READONLY ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK && fout&SQLITE_OPEN_READONLY ){  | 
 
| 
55622
 | 
 0  | 
 0  | 
       if( isOpen(pPager->jfd) ){  | 
 
| 
55625
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
55629
 | 
 0  | 
 0  | 
       }else if( !pPager->exclusiveMode ){  | 
 
| 
55633
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
55660
 | 
 300  | 
 0  | 
     if( !pPager->tempFile && pPager->hasHeldSharedLock ){  | 
 
| 
 | 
 251  | 
 49  | 
     if( !pPager->tempFile && pPager->hasHeldSharedLock ){  | 
 
| 
55681
 | 
 10  | 
 241  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
55682
 | 
 0  | 
 10  | 
         if( rc!=SQLITE_IOERR_SHORT_READ ){  | 
 
| 
55688
 | 
 11  | 
 240  | 
       if( memcmp(pPager->dbFileVers, dbFileVers, sizeof(dbFileVers))!=0 ){  | 
 
| 
55697
 | 
 0  | 
 11  | 
         if( USEFETCH(pPager) ){  | 
 
| 
55712
 | 
 0  | 
 2031  | 
   if( pagerUseWal(pPager) ){  | 
 
| 
55717
 | 
 300  | 
 1731  | 
   if( pPager->tempFile==0 && pPager->eState==PAGER_OPEN && rc==SQLITE_OK ){  | 
 
| 
 | 
 300  | 
 0  | 
   if( pPager->tempFile==0 && pPager->eState==PAGER_OPEN && rc==SQLITE_OK ){  | 
 
| 
 | 
 300  | 
 0  | 
   if( pPager->tempFile==0 && pPager->eState==PAGER_OPEN && rc==SQLITE_OK ){  | 
 
| 
55722
 | 
 2  | 
 2031  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
55742
 | 
 2031  | 
 44  | 
   if( sqlite3PcacheRefCount(pPager->pPCache)==0 ){  | 
 
| 
55821
 | 
 0  | 
 9052  | 
   if( pgno==0 ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
55823
 | 
 0  | 
 9052  | 
   if( pBase==0 ){  | 
 
| 
55826
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto pager_acquire_err;  | 
 
| 
55827
 | 
 0  | 
 0  | 
     if( pBase==0 ){  | 
 
| 
55838
 | 
 8479  | 
 573  | 
   if( pPg->pPager && !noContent ){  | 
 
| 
 | 
 8478  | 
 1  | 
   if( pPg->pPager && !noContent ){  | 
 
| 
55852
 | 
 574  | 
 0  | 
     if( pgno>PAGER_MAX_PGNO || pgno==PAGER_MJ_PGNO(pPager) ){  | 
 
| 
 | 
 0  | 
 574  | 
     if( pgno>PAGER_MAX_PGNO || pgno==PAGER_MJ_PGNO(pPager) ){  | 
 
| 
55860
 | 
 120  | 
 454  | 
     if( !isOpen(pPager->fd) || pPager->dbSize
 | 
 
| 
 | 
 76  | 
 44  | 
     if( !isOpen(pPager->fd) || pPager->dbSize
 | 
 
| 
 | 
 1  | 
 75  | 
     if( !isOpen(pPager->fd) || pPager->dbSize
 | 
 
| 
55861
 | 
 0  | 
 499  | 
       if( pgno>pPager->mxPgno ){  | 
 
| 
55865
 | 
 301  | 
 198  | 
       if( noContent ){  | 
 
| 
55873
 | 
 1  | 
 300  | 
         if( pgno<=pPager->dbOrigSize ){  | 
 
| 
55887
 | 
 0  | 
 75  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
55897
 | 
 0  | 
 0  | 
   if( pPg ){  | 
 
| 
55922
 | 
 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))  | 
 
| 
55934
 | 
 0  | 
 0  | 
   if( pgno<=1 && pgno==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pgno<=1 && pgno==0 ){  | 
 
| 
55942
 | 
 0  | 
 0  | 
   if( bMmapOk && pagerUseWal(pPager) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( bMmapOk && pagerUseWal(pPager) ){  | 
 
| 
55944
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
55949
 | 
 0  | 
 0  | 
   if( bMmapOk && iFrame==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( bMmapOk && iFrame==0 ){  | 
 
| 
55954
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && pData ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && pData ){  | 
 
| 
55955
 | 
 0  | 
 0  | 
       if( pPager->eState>PAGER_READER || pPager->tempFile ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pPager->eState>PAGER_READER || pPager->tempFile ){  | 
 
| 
55958
 | 
 0  | 
 0  | 
       if( pPg==0 ){  | 
 
| 
55963
 | 
 0  | 
 0  | 
       if( pPg ){  | 
 
| 
55969
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
56022
 | 
 0  | 
 29  | 
   if( pPage==0 ) return 0;  | 
 
| 
56041
 | 
 0  | 
 6982  | 
   if( pPg->flags & PGHDR_MMAP ){  | 
 
| 
56051
 | 
 386  | 
 0  | 
   if( pPg ) sqlite3PagerUnrefNotNull(pPg);  | 
 
| 
56097
 | 
 0  | 
 964  | 
   if( NEVER(pPager->errCode) ) return pPager->errCode;  | 
 
| 
56099
 | 
 964  | 
 0  | 
   if( !pagerUseWal(pPager) && pPager->journalMode!=PAGER_JOURNALMODE_OFF ){  | 
 
| 
 | 
 959  | 
 5  | 
   if( !pagerUseWal(pPager) && pPager->journalMode!=PAGER_JOURNALMODE_OFF ){  | 
 
| 
56101
 | 
 0  | 
 959  | 
     if( pPager->pInJournal==0 ){  | 
 
| 
56106
 | 
 959  | 
 0  | 
     if( !isOpen(pPager->jfd) ){  | 
 
| 
56107
 | 
 690  | 
 269  | 
       if( pPager->journalMode==PAGER_JOURNALMODE_MEMORY ){  | 
 
| 
56113
 | 
 195  | 
 74  | 
         if( pPager->tempFile ){  | 
 
| 
56124
 | 
 269  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
56137
 | 
 959  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
56147
 | 
 0  | 
 964  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
56178
 | 
 0  | 
 1149  | 
   if( pPager->errCode ) return pPager->errCode;  | 
 
| 
56182
 | 
 1149  | 
 0  | 
   if( ALWAYS(pPager->eState==PAGER_READER) ){  | 
 
| 
56185
 | 
 0  | 
 1149  | 
     if( pagerUseWal(pPager) ){  | 
 
| 
56189
 | 
 0  | 
 0  | 
       if( pPager->exclusiveMode && sqlite3WalExclusiveMode(pPager->pWal, -1) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pPager->exclusiveMode && sqlite3WalExclusiveMode(pPager->pWal, -1) ){  | 
 
| 
56191
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
56210
 | 
 997  | 
 152  | 
       if( rc==SQLITE_OK && exFlag ){  | 
 
| 
 | 
 10  | 
 987  | 
       if( rc==SQLITE_OK && exFlag ){  | 
 
| 
56215
 | 
 997  | 
 152  | 
     if( rc==SQLITE_OK ){  | 
 
| 
56270
 | 
 0  | 
 1154  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
56272
 | 
 0  | 
 1154  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
56274
 | 
 0  | 
 1154  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
56327
 | 
 964  | 
 650  | 
   if( pPager->eState==PAGER_WRITER_LOCKED ){  | 
 
| 
56329
 | 
 0  | 
 964  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
56342
 | 
 1604  | 
 10  | 
   if( pPager->pInJournal!=0  | 
 
| 
56343
 | 
 1603  | 
 1  | 
    && sqlite3BitvecTestNotNull(pPager->pInJournal, pPg->pgno)==0  | 
 
| 
56346
 | 
 1154  | 
 449  | 
     if( pPg->pgno<=pPager->dbOrigSize ){  | 
 
| 
56348
 | 
 0  | 
 1154  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
56352
 | 
 449  | 
 0  | 
       if( pPager->eState!=PAGER_WRITER_DBMOD ){  | 
 
| 
56371
 | 
 0  | 
 1614  | 
   if( pPager->nSavepoint>0 ){  | 
 
| 
56376
 | 
 459  | 
 1155  | 
   if( pPager->dbSizepgno ){  | 
 
| 
56418
 | 
 0  | 
 0  | 
   if( pPg->pgno>nPageCount ){  | 
 
| 
56420
 | 
 0  | 
 0  | 
   }else if( (pg1+nPagePerSector-1)>nPageCount ){  | 
 
| 
56429
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
56432
 | 
 0  | 
 0  | 
     if( pg==pPg->pgno || !sqlite3BitvecTest(pPager->pInJournal, pg) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pg==pPg->pgno || !sqlite3BitvecTest(pPager->pInJournal, pg) ){  | 
 
| 
56433
 | 
 0  | 
 0  | 
       if( pg!=PAGER_MJ_PGNO(pPager) ){  | 
 
| 
56435
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
56437
 | 
 0  | 
 0  | 
           if( pPage->flags&PGHDR_NEED_SYNC ){  | 
 
| 
56443
 | 
 0  | 
 0  | 
     }else if( (pPage = sqlite3PagerLookup(pPager, pg))!=0 ){  | 
 
| 
56444
 | 
 0  | 
 0  | 
       if( pPage->flags&PGHDR_NEED_SYNC ){  | 
 
| 
56457
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && needSync ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && needSync ){  | 
 
| 
56459
 | 
 0  | 
 0  | 
     for(ii=0; ii
 | 
 
| 
56461
 | 
 0  | 
 0  | 
       if( pPage ){  | 
 
| 
56492
 | 
 3730  | 
 1614  | 
   if( (pPg->flags & PGHDR_WRITEABLE)!=0 && pPager->dbSize>=pPg->pgno ){  | 
 
| 
 | 
 3730  | 
 0  | 
   if( (pPg->flags & PGHDR_WRITEABLE)!=0 && pPager->dbSize>=pPg->pgno ){  | 
 
| 
56493
 | 
 3  | 
 3727  | 
     if( pPager->nSavepoint ) return subjournalPageIfRequired(pPg);  | 
 
| 
56495
 | 
 0  | 
 1614  | 
   }else if( pPager->errCode ){  | 
 
| 
56497
 | 
 0  | 
 1614  | 
   }else if( pPager->sectorSize > (u32)pPager->pageSize ){  | 
 
| 
56538
 | 
 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 ){  | 
 
| 
56596
 | 
 72  | 
 0  | 
   if( !pPager->changeCountDone && ALWAYS(pPager->dbSize>0) ){  | 
 
| 
 | 
 72  | 
 0  | 
   if( !pPager->changeCountDone && ALWAYS(pPager->dbSize>0) ){  | 
 
| 
56610
 | 
 72  | 
 0  | 
     if( !DIRECT_MODE && ALWAYS(rc==SQLITE_OK) ){  | 
 
| 
56614
 | 
 72  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
56657
 | 
 72  | 
 0  | 
   if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;  | 
 
| 
56658
 | 
 72  | 
 0  | 
   if( rc==SQLITE_OK && !pPager->noSync ){  | 
 
| 
 | 
 72  | 
 0  | 
   if( rc==SQLITE_OK && !pPager->noSync ){  | 
 
| 
56679
 | 
 1024  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
56685
 | 
 1024  | 
 0  | 
     if( 0==pagerUseWal(pPager) ){  | 
 
| 
56733
 | 
 0  | 
 948  | 
   if( NEVER(pPager->errCode) ) return pPager->errCode;  | 
 
| 
56736
 | 
 0  | 
 948  | 
   if( sqlite3FaultSim(400) ) return SQLITE_IOERR;  | 
 
| 
56742
 | 
 20  | 
 928  | 
   if( pPager->eState
 | 
 
| 
56746
 | 
 856  | 
 72  | 
   if( 0==pagerFlushOnCommit(pPager, 1) ){  | 
 
| 
56753
 | 
 0  | 
 72  | 
     if( pagerUseWal(pPager) ){  | 
 
| 
56756
 | 
 0  | 
 0  | 
       if( pList==0 ){  | 
 
| 
56764
 | 
 0  | 
 0  | 
       if( ALWAYS(pList) ){  | 
 
| 
56768
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
56845
 | 
 0  | 
 72  | 
       if( rc!=SQLITE_OK ) goto commit_phase_one_exit;  | 
 
| 
56852
 | 
 0  | 
 72  | 
       if( rc!=SQLITE_OK ) goto commit_phase_one_exit;  | 
 
| 
56866
 | 
 0  | 
 72  | 
       if( rc!=SQLITE_OK ) goto commit_phase_one_exit;  | 
 
| 
56898
 | 
 0  | 
 72  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
56910
 | 
 0  | 
 72  | 
       if( pPager->dbSize>pPager->dbFileSize ){  | 
 
| 
56914
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ) goto commit_phase_one_exit;  | 
 
| 
56918
 | 
 72  | 
 0  | 
       if( !noSync ){  | 
 
| 
56926
 | 
 928  | 
 0  | 
   if( rc==SQLITE_OK && !pagerUseWal(pPager) ){  | 
 
| 
 | 
 928  | 
 0  | 
   if( rc==SQLITE_OK && !pagerUseWal(pPager) ){  | 
 
| 
56954
 | 
 0  | 
 948  | 
   if( NEVER(pPager->errCode) ) return pPager->errCode;  | 
 
| 
56973
 | 
 20  | 
 928  | 
   if( pPager->eState==PAGER_WRITER_LOCKED   | 
 
| 
56974
 | 
 13  | 
 7  | 
    && pPager->exclusiveMode   | 
 
| 
56975
 | 
 0  | 
 13  | 
    && pPager->journalMode==PAGER_JOURNALMODE_PERSIST  | 
 
| 
57023
 | 
 0  | 
 49  | 
   if( pPager->eState==PAGER_ERROR ) return pPager->errCode;  | 
 
| 
57024
 | 
 0  | 
 49  | 
   if( pPager->eState<=PAGER_READER ) return SQLITE_OK;  | 
 
| 
57026
 | 
 0  | 
 49  | 
   if( pagerUseWal(pPager) ){  | 
 
| 
57030
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
57031
 | 
 31  | 
 18  | 
   }else if( !isOpen(pPager->jfd) || pPager->eState==PAGER_WRITER_LOCKED ){  | 
 
| 
 | 
 0  | 
 31  | 
   }else if( !isOpen(pPager->jfd) || pPager->eState==PAGER_WRITER_LOCKED ){  | 
 
| 
57034
 | 
 5  | 
 13  | 
     if( !MEMDB && eState>PAGER_WRITER_LOCKED ){  | 
 
| 
 | 
 5  | 
 0  | 
     if( !MEMDB && eState>PAGER_WRITER_LOCKED ){  | 
 
| 
57143
 | 
 0  | 
 6  | 
   if( reset ){  | 
 
| 
57182
 | 
 0  | 
 1  | 
   if( !aNew ){  | 
 
| 
57189
 | 
 1  | 
 1  | 
   for(ii=nCurrent; ii
 | 
 
| 
57191
 | 
 1  | 
 0  | 
     if( isOpen(pPager->jfd) && pPager->journalOff>0 ){  | 
 
| 
 | 
 1  | 
 0  | 
     if( isOpen(pPager->jfd) && pPager->journalOff>0 ){  | 
 
| 
57198
 | 
 0  | 
 1  | 
     if( !aNew[ii].pInSavepoint ){  | 
 
| 
57201
 | 
 0  | 
 1  | 
     if( pagerUseWal(pPager) ){  | 
 
| 
57214
 | 
 1  | 
 3415  | 
   if( nSavepoint>pPager->nSavepoint && pPager->useJournal ){  | 
 
| 
 | 
 1  | 
 0  | 
   if( nSavepoint>pPager->nSavepoint && pPager->useJournal ){  | 
 
| 
57262
 | 
 1  | 
 0  | 
   if( rc==SQLITE_OK && iSavepointnSavepoint ){  | 
 
| 
 | 
 1  | 
 0  | 
   if( rc==SQLITE_OK && iSavepointnSavepoint ){  | 
 
| 
57271
 | 
 0  | 
 1  | 
     for(ii=nNew; iinSavepoint; ii++){  | 
 
| 
57278
 | 
 0  | 
 1  | 
     if( op==SAVEPOINT_RELEASE ){  | 
 
| 
57279
 | 
 0  | 
 0  | 
       if( nNew==0 && isOpen(pPager->sjfd) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nNew==0 && isOpen(pPager->sjfd) ){  | 
 
| 
57281
 | 
 0  | 
 0  | 
         if( sqlite3JournalIsInMemory(pPager->sjfd) ){  | 
 
| 
57293
 | 
 1  | 
 0  | 
     else if( pagerUseWal(pPager) || isOpen(pPager->jfd) ){  | 
 
| 
 | 
 1  | 
 0  | 
     else if( pagerUseWal(pPager) || isOpen(pPager->jfd) ){  | 
 
| 
57294
 | 
 1  | 
 0  | 
       PagerSavepoint *pSavepoint = (nNew==0)?0:&pPager->aSavepoint[nNew-1];  | 
 
| 
57329
 | 
 1993  | 
 0  | 
   return (nullIfMemDb && pPager->memDb) ? "" : pPager->zFilename;  | 
 
| 
 | 
 180  | 
 1813  | 
   return (nullIfMemDb && pPager->memDb) ? "" : pPager->zFilename;  | 
 
| 
57366
 | 
 0  | 
 0  | 
   return pPager->pWal ? sqlite3WalFile(pPager->pWal) : pPager->jfd;  | 
 
| 
57467
 | 
 0  | 
 0  | 
   if( pPager->tempFile ){  | 
 
| 
57469
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
57490
 | 
 0  | 
 0  | 
   if( (pPg->flags & PGHDR_DIRTY)!=0  | 
 
| 
57491
 | 
 0  | 
 0  | 
    && SQLITE_OK!=(rc = subjournalPageIfRequired(pPg))  | 
 
| 
57507
 | 
 0  | 
 0  | 
   if( (pPg->flags&PGHDR_NEED_SYNC) && !isCommit ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (pPg->flags&PGHDR_NEED_SYNC) && !isCommit ){  | 
 
| 
57522
 | 
 0  | 
 0  | 
   if( pPgOld ){  | 
 
| 
57524
 | 
 0  | 
 0  | 
     if( pPager->tempFile ){  | 
 
| 
57541
 | 
 0  | 
 0  | 
   if( pPager->tempFile && pPgOld ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pPager->tempFile && pPgOld ){  | 
 
| 
57546
 | 
 0  | 
 0  | 
   if( needSyncPgno ){  | 
 
| 
57563
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
57564
 | 
 0  | 
 0  | 
       if( needSyncPgno<=pPager->dbOrigSize ){  | 
 
| 
57624
 | 
 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) ){  | 
 
| 
57670
 | 
 0  | 
 0  | 
   if( MEMDB ){  | 
 
| 
57672
 | 
 0  | 
 0  | 
     if( eMode!=PAGER_JOURNALMODE_MEMORY && eMode!=PAGER_JOURNALMODE_OFF ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( eMode!=PAGER_JOURNALMODE_MEMORY && eMode!=PAGER_JOURNALMODE_OFF ){  | 
 
| 
57677
 | 
 0  | 
 0  | 
   if( eMode!=eOld ){  | 
 
| 
57695
 | 
 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 ){  | 
 
| 
57706
 | 
 0  | 
 0  | 
       if( pPager->eLock>=RESERVED_LOCK ){  | 
 
| 
57712
 | 
 0  | 
 0  | 
         if( state==PAGER_OPEN ){  | 
 
| 
57715
 | 
 0  | 
 0  | 
         if( pPager->eState==PAGER_READER ){  | 
 
| 
57719
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
57722
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && state==PAGER_READER ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && state==PAGER_READER ){  | 
 
| 
57724
 | 
 0  | 
 0  | 
         }else if( state==PAGER_OPEN ){  | 
 
| 
57729
 | 
 0  | 
 0  | 
     }else if( eMode==PAGER_JOURNALMODE_OFF ){  | 
 
| 
57752
 | 
 0  | 
 0  | 
   if( pPager->eState>=PAGER_WRITER_CACHEMOD ) return 0;  | 
 
| 
57753
 | 
 0  | 
 0  | 
   if( NEVER(isOpen(pPager->jfd) && pPager->journalOff>0) ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
   if( NEVER(isOpen(pPager->jfd) && pPager->journalOff>0) ) return 0;  | 
 
| 
57764
 | 
 0  | 
 0  | 
   if( iLimit>=-1 ){  | 
 
| 
57787
 | 
 0  | 
 0  | 
   if( pPager->tempFile==0 ) pager_reset(pPager);  | 
 
| 
57808
 | 
 0  | 
 0  | 
   if( pPager->pWal ){  | 
 
| 
57809
 | 
 0  | 
 0  | 
     rc = sqlite3WalCheckpoint(pPager->pWal, db, eMode,  | 
 
| 
57830
 | 
 0  | 
 0  | 
   if( pPager->noLock ) return 0;  | 
 
| 
57831
 | 
 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);  | 
 
| 
57843
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
57869
 | 
 0  | 
 0  | 
   if( pPager->exclusiveMode ){  | 
 
| 
57876
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
57915
 | 
 0  | 
 0  | 
   if( !pPager->tempFile && !pPager->pWal ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !pPager->tempFile && !pPager->pWal ){  | 
 
| 
57916
 | 
 0  | 
 0  | 
     if( !sqlite3PagerWalSupported(pPager) ) return SQLITE_CANTOPEN;  | 
 
| 
57922
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
57951
 | 
 0  | 
 0  | 
   if( !pPager->pWal ){  | 
 
| 
57954
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
57959
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && logexists ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && logexists ){  | 
 
| 
57967
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pPager->pWal ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pPager->pWal ){  | 
 
| 
57969
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
57974
 | 
 0  | 
 0  | 
       if( rc && !pPager->exclusiveMode ) pagerUnlockDb(pPager, SHARED_LOCK);  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc && !pPager->exclusiveMode ) pagerUnlockDb(pPager, SHARED_LOCK);  | 
 
| 
58650
 | 
 0  | 
 0  | 
   if( pWal->nWiData<=iPage ){  | 
 
| 
58654
 | 
 0  | 
 0  | 
     if( !apNew ){  | 
 
| 
58666
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode==WAL_HEAPMEMORY_MODE ){  | 
 
| 
58668
 | 
 0  | 
 0  | 
     if( !pWal->apWiData[iPage] ) rc = SQLITE_NOMEM_BKPT;  | 
 
| 
58675
 | 
 0  | 
 0  | 
     if( (rc&0xff)==SQLITE_READONLY ){  | 
 
| 
58677
 | 
 0  | 
 0  | 
       if( rc==SQLITE_READONLY ){  | 
 
| 
58692
 | 
 0  | 
 0  | 
   if( pWal->nWiData<=iPage || (*ppPage = pWal->apWiData[iPage])==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pWal->nWiData<=iPage || (*ppPage = pWal->apWiData[iPage])==0 ){  | 
 
| 
58746
 | 
 0  | 
 0  | 
   if( aIn ){  | 
 
| 
58756
 | 
 0  | 
 0  | 
   if( nativeCksum ){  | 
 
| 
58760
 | 
 0  | 
 0  | 
     }while( aData
 | 
 
| 
58766
 | 
 0  | 
 0  | 
     }while( aData
 | 
 
| 
58774
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode!=WAL_HEAPMEMORY_MODE ){  | 
 
| 
58822
 | 
 0  | 
 0  | 
   if( pWal->iReCksum==0 ){  | 
 
| 
58856
 | 
 0  | 
 0  | 
   if( memcmp(&pWal->hdr.aSalt, &aFrame[8], 8)!=0 ){  | 
 
| 
58863
 | 
 0  | 
 0  | 
   if( pgno==0 ){  | 
 
| 
58875
 | 
 0  | 
 0  | 
   if( aCksum[0]!=sqlite3Get4byte(&aFrame[16])   | 
 
| 
58876
 | 
 0  | 
 0  | 
    || aCksum[1]!=sqlite3Get4byte(&aFrame[20])   | 
 
| 
58922
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode ) return SQLITE_OK;  | 
 
| 
58931
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode ) return;  | 
 
| 
58938
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode ) return SQLITE_OK;  | 
 
| 
58947
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode ) return;  | 
 
| 
59004
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
59006
 | 
 0  | 
 0  | 
     if( iHash==0 ){  | 
 
| 
59039
 | 
 0  | 
 0  | 
   if( iHash==0 ){  | 
 
| 
59068
 | 
 0  | 
 0  | 
   if( pWal->hdr.mxFrame==0 ) return;  | 
 
| 
59083
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
59084
 | 
 0  | 
 0  | 
     if( sLoc.aHash[i]>iLimit ){  | 
 
| 
59126
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
59137
 | 
 0  | 
 0  | 
     if( idx==1 ){  | 
 
| 
59149
 | 
 0  | 
 0  | 
     if( sLoc.aPgno[idx] ){  | 
 
| 
59156
 | 
 0  | 
 0  | 
     for(iKey=walHash(iPage); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){  | 
 
| 
59157
 | 
 0  | 
 0  | 
       if( (nCollide--)==0 ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
59225
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
59227
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
59231
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
59240
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
59244
 | 
 0  | 
 0  | 
   if( nSize>WAL_HDRSIZE ){  | 
 
| 
59258
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
59269
 | 
 0  | 
 0  | 
     if( (magic&0xFFFFFFFE)!=WAL_MAGIC   | 
 
| 
59270
 | 
 0  | 
 0  | 
      || szPage&(szPage-1)   | 
 
| 
59271
 | 
 0  | 
 0  | 
      || szPage>SQLITE_MAX_PAGE_SIZE   | 
 
| 
59272
 | 
 0  | 
 0  | 
      || szPage<512   | 
 
| 
59285
 | 
 0  | 
 0  | 
     if( pWal->hdr.aFrameCksum[0]!=sqlite3Get4byte(&aBuf[24])  | 
 
| 
59286
 | 
 0  | 
 0  | 
      || pWal->hdr.aFrameCksum[1]!=sqlite3Get4byte(&aBuf[28])  | 
 
| 
59294
 | 
 0  | 
 0  | 
     if( version!=WAL_MAX_VERSION ){  | 
 
| 
59302
 | 
 0  | 
 0  | 
     if( !aFrame ){  | 
 
| 
59310
 | 
 0  | 
 0  | 
     for(iOffset=WAL_HDRSIZE; (iOffset+szFrame)<=nSize; iOffset+=szFrame){  | 
 
| 
59317
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) break;  | 
 
| 
59319
 | 
 0  | 
 0  | 
       if( !isValid ) break;  | 
 
| 
59321
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) break;  | 
 
| 
59324
 | 
 0  | 
 0  | 
       if( nTruncate ){  | 
 
| 
59339
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
59354
 | 
 0  | 
 0  | 
     for(i=1; iaReadMark[i] = READMARK_NOT_USED;  | 
 
| 
59355
 | 
 0  | 
 0  | 
     if( pWal->hdr.mxFrame ) pInfo->aReadMark[1] = pWal->hdr.mxFrame;  | 
 
| 
59362
 | 
 0  | 
 0  | 
     if( pWal->hdr.nPage ){  | 
 
| 
59381
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode==WAL_HEAPMEMORY_MODE || pWal->bShmUnreliable ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode==WAL_HEAPMEMORY_MODE || pWal->bShmUnreliable ){  | 
 
| 
59383
 | 
 0  | 
 0  | 
     for(i=0; inWiData; i++){  | 
 
| 
59388
 | 
 0  | 
 0  | 
   if( pWal->exclusiveMode!=WAL_HEAPMEMORY_MODE ){  | 
 
| 
59442
 | 
 0  | 
 0  | 
   if( !pRet ){  | 
 
| 
59454
 | 
 0  | 
 0  | 
   pRet->exclusiveMode = (bNoShm ? WAL_HEAPMEMORY_MODE: WAL_NORMAL_MODE);  | 
 
| 
59459
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && flags&SQLITE_OPEN_READONLY ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && flags&SQLITE_OPEN_READONLY ){  | 
 
| 
59463
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
59469
 | 
 0  | 
 0  | 
     if( iDC & SQLITE_IOCAP_SEQUENTIAL ){ pRet->syncHeader = 0; }  | 
 
| 
59470
 | 
 0  | 
 0  | 
     if( iDC & SQLITE_IOCAP_POWERSAFE_OVERWRITE ){  | 
 
| 
59483
 | 
 0  | 
 0  | 
   if( pWal ) pWal->mxWalSize = iLimit;  | 
 
| 
59507
 | 
 0  | 
 0  | 
   for(i=p->nSegment-1; i>=0; i--){  | 
 
| 
59509
 | 
 0  | 
 0  | 
     while( pSegment->iNextnEntry ){  | 
 
| 
59511
 | 
 0  | 
 0  | 
       if( iPg>iMin ){  | 
 
| 
59512
 | 
 0  | 
 0  | 
         if( iPg
 | 
 
| 
59564
 | 
 0  | 
 0  | 
   while( iRight
 | 
 
| 
 | 
 0  | 
 0  | 
   while( iRight
 | 
 
| 
59568
 | 
 0  | 
 0  | 
     if( (iLeft
 | 
 
| 
59569
 | 
 0  | 
 0  | 
      && (iRight>=nRight || aContent[aLeft[iLeft]]
 | 
 
| 
 | 
 0  | 
 0  | 
      && (iRight>=nRight || aContent[aLeft[iLeft]]
 | 
 
| 
59578
 | 
 0  | 
 0  | 
     if( iLeft
 | 
 
| 
 | 
 0  | 
 0  | 
     if( iLeft
 | 
 
| 
59628
 | 
 0  | 
 0  | 
   for(iList=0; iList
 | 
 
| 
59631
 | 
 0  | 
 0  | 
     for(iSub=0; iList & (1<
 | 
 
| 
59643
 | 
 0  | 
 0  | 
   for(iSub++; iSub
 | 
 
| 
59644
 | 
 0  | 
 0  | 
     if( nList & (1<
 | 
 
| 
59707
 | 
 0  | 
 0  | 
   if( !p ){  | 
 
| 
59716
 | 
 0  | 
 0  | 
   aTmp = (ht_slot *)sqlite3_malloc64(  | 
 
| 
59719
 | 
 0  | 
 0  | 
   if( !aTmp ){  | 
 
| 
59723
 | 
 0  | 
 0  | 
   for(i=walFramePage(nBackfill+1); rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=walFramePage(nBackfill+1); rc==SQLITE_OK && i
 | 
 
| 
59727
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
59733
 | 
 0  | 
 0  | 
       if( (i+1)==nSegment ){  | 
 
| 
59741
 | 
 0  | 
 0  | 
       for(j=0; j
 | 
 
| 
59753
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
59777
 | 
 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) );  | 
 
| 
59818
 | 
 0  | 
 0  | 
   for(i=2; iaReadMark[i] = READMARK_NOT_USED;  | 
 
| 
59876
 | 
 0  | 
 0  | 
   if( pInfo->nBackfillhdr.mxFrame ){  | 
 
| 
59889
 | 
 0  | 
 0  | 
     for(i=1; i
 | 
 
| 
59899
 | 
 0  | 
 0  | 
       if( mxSafeFrame>y ){  | 
 
| 
59902
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
59903
 | 
 0  | 
 0  | 
           pInfo->aReadMark[i] = (i==1 ? mxSafeFrame : READMARK_NOT_USED);  | 
 
| 
59905
 | 
 0  | 
 0  | 
         }else if( rc==SQLITE_BUSY ){  | 
 
| 
59915
 | 
 0  | 
 0  | 
     if( pInfo->nBackfill
 | 
 
| 
59920
 | 
 0  | 
 0  | 
     if( pIter  | 
 
| 
59921
 | 
 0  | 
 0  | 
      && (rc = walBusyLock(pWal, xBusy, pBusyArg, WAL_READ_LOCK(0),1))==SQLITE_OK  | 
 
| 
59933
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
59937
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && nSize
 | 
 
| 
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && nSize
 | 
 
| 
59944
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK && 0==walIteratorNext(pIter, &iDbpage, &iFrame) ){  | 
 
| 
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK && 0==walIteratorNext(pIter, &iDbpage, &iFrame) ){  | 
 
| 
59947
 | 
 0  | 
 0  | 
         if( db->u1.isInterrupted ){  | 
 
| 
59948
 | 
 0  | 
 0  | 
           rc = db->mallocFailed ? SQLITE_NOMEM_BKPT : SQLITE_INTERRUPT;  | 
 
| 
59951
 | 
 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 ){  | 
 
| 
59957
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ) break;  | 
 
| 
59961
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ) break;  | 
 
| 
59965
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
59966
 | 
 0  | 
 0  | 
         if( mxSafeFrame==walIndexHdr(pWal)->mxFrame ){  | 
 
| 
59970
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
59974
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
59983
 | 
 0  | 
 0  | 
     if( rc==SQLITE_BUSY ){  | 
 
| 
59995
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && eMode!=SQLITE_CHECKPOINT_PASSIVE ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && eMode!=SQLITE_CHECKPOINT_PASSIVE ){  | 
 
| 
59997
 | 
 0  | 
 0  | 
     if( pInfo->nBackfillhdr.mxFrame ){  | 
 
| 
59999
 | 
 0  | 
 0  | 
     }else if( eMode>=SQLITE_CHECKPOINT_RESTART ){  | 
 
| 
60004
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
60005
 | 
 0  | 
 0  | 
         if( eMode==SQLITE_CHECKPOINT_TRUNCATE ){  | 
 
| 
60041
 | 
 0  | 
 0  | 
   if( rx==SQLITE_OK && (sz > nMax ) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rx==SQLITE_OK && (sz > nMax ) ){  | 
 
| 
60045
 | 
 0  | 
 0  | 
   if( rx ){  | 
 
| 
60061
 | 
 0  | 
 289  | 
   if( pWal ){  | 
 
| 
60072
 | 
 0  | 
 0  | 
     if( zBuf!=0  | 
 
| 
60073
 | 
 0  | 
 0  | 
      && SQLITE_OK==(rc = sqlite3OsLock(pWal->pDbFd, SQLITE_LOCK_EXCLUSIVE))  | 
 
| 
60075
 | 
 0  | 
 0  | 
       if( pWal->exclusiveMode==WAL_NORMAL_MODE ){  | 
 
| 
60081
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
60086
 | 
 0  | 
 0  | 
         if( bPersist!=1 ){  | 
 
| 
60091
 | 
 0  | 
 0  | 
         }else if( pWal->mxWalSize>=0 ){  | 
 
| 
60105
 | 
 0  | 
 0  | 
     if( isDelete ){  | 
 
| 
60157
 | 
 0  | 
 0  | 
   if( memcmp(&h1, &h2, sizeof(h1))!=0 ){  | 
 
| 
60160
 | 
 0  | 
 0  | 
   if( h1.isInit==0 ){  | 
 
| 
60164
 | 
 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] ){  | 
 
| 
60168
 | 
 0  | 
 0  | 
   if( memcmp(&pWal->hdr, &h1, sizeof(WalIndexHdr)) ){  | 
 
| 
60208
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
60210
 | 
 0  | 
 0  | 
     if( rc==SQLITE_READONLY_CANTINIT ){  | 
 
| 
60238
 | 
 0  | 
 0  | 
   badHdr = (page0 ? walIndexTryHdr(pWal, pChanged) : 1);  | 
 
| 
60244
 | 
 0  | 
 0  | 
   if( badHdr ){  | 
 
| 
60245
 | 
 0  | 
 0  | 
     if( pWal->bShmUnreliable==0 && (pWal->readOnly & WAL_SHM_RDONLY) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pWal->bShmUnreliable==0 && (pWal->readOnly & WAL_SHM_RDONLY) ){  | 
 
| 
60246
 | 
 0  | 
 0  | 
       if( SQLITE_OK==(rc = walLockShared(pWal, WAL_WRITE_LOCK)) ){  | 
 
| 
60250
 | 
 0  | 
 0  | 
     }else if( SQLITE_OK==(rc = walLockExclusive(pWal, WAL_WRITE_LOCK, 1)) ){  | 
 
| 
60252
 | 
 0  | 
 0  | 
       if( SQLITE_OK==(rc = walIndexPage(pWal, 0, &page0)) ){  | 
 
| 
60254
 | 
 0  | 
 0  | 
         if( badHdr ){  | 
 
| 
60272
 | 
 0  | 
 0  | 
   if( badHdr==0 && pWal->hdr.iVersion!=WALINDEX_MAX_VERSION ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( badHdr==0 && pWal->hdr.iVersion!=WALINDEX_MAX_VERSION ){  | 
 
| 
60275
 | 
 0  | 
 0  | 
   if( pWal->bShmUnreliable ){  | 
 
| 
60276
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
60283
 | 
 0  | 
 0  | 
       if( rc==SQLITE_IOERR_SHORT_READ ) rc = WAL_RETRY;  | 
 
| 
60337
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
60338
 | 
 0  | 
 0  | 
     if( rc==SQLITE_BUSY ) rc = WAL_RETRY;  | 
 
| 
60367
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_READONLY_CANTINIT ){  | 
 
| 
60368
 | 
 0  | 
 0  | 
     rc = (rc==SQLITE_READONLY ? WAL_RETRY : rc);  | 
 
| 
60382
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
60385
 | 
 0  | 
 0  | 
   if( szWal
 | 
 
| 
60393
 | 
 0  | 
 0  | 
     rc = (pWal->hdr.mxFrame==0 ? SQLITE_OK : WAL_RETRY);  | 
 
| 
60399
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
60402
 | 
 0  | 
 0  | 
   if( memcmp(&pWal->hdr.aSalt, &aBuf[16], 8) ){  | 
 
| 
60413
 | 
 0  | 
 0  | 
   if( aFrame==0 ){  | 
 
| 
60425
 | 
 0  | 
 0  | 
   for(iOffset=walFrameOffset(pWal->hdr.mxFrame+1, pWal->hdr.szPage);   | 
 
| 
60434
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) break;  | 
 
| 
60435
 | 
 0  | 
 0  | 
     if( !walDecodeFrame(pWal, &pgno, &nTruncate, aData, aFrame) ) break;  | 
 
| 
60440
 | 
 0  | 
 0  | 
     if( nTruncate ){  | 
 
| 
60450
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
60452
 | 
 0  | 
 0  | 
     for(i=0; inWiData; i++){  | 
 
| 
60543
 | 
 0  | 
 0  | 
   if( cnt>5 ){  | 
 
| 
60545
 | 
 0  | 
 0  | 
     if( cnt>100 ){  | 
 
| 
60549
 | 
 0  | 
 0  | 
     if( cnt>=10 ) nDelay = (cnt-9)*(cnt-9)*39;  | 
 
| 
60553
 | 
 0  | 
 0  | 
   if( !useWal ){  | 
 
| 
60555
 | 
 0  | 
 0  | 
     if( pWal->bShmUnreliable==0 ){  | 
 
| 
60558
 | 
 0  | 
 0  | 
     if( rc==SQLITE_BUSY ){  | 
 
| 
60567
 | 
 0  | 
 0  | 
       if( pWal->apWiData[0]==0 ){  | 
 
| 
60576
 | 
 0  | 
 0  | 
       }else if( SQLITE_OK==(rc = walLockShared(pWal, WAL_RECOVER_LOCK)) ){  | 
 
| 
60579
 | 
 0  | 
 0  | 
       }else if( rc==SQLITE_BUSY ){  | 
 
| 
60583
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
60586
 | 
 0  | 
 0  | 
     else if( pWal->bShmUnreliable ){  | 
 
| 
60594
 | 
 0  | 
 0  | 
   if( !useWal && pInfo->nBackfill==pWal->hdr.mxFrame  | 
 
| 
 | 
 0  | 
 0  | 
   if( !useWal && pInfo->nBackfill==pWal->hdr.mxFrame  | 
 
| 
60604
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
60605
 | 
 0  | 
 0  | 
       if( memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr)) ){  | 
 
| 
60624
 | 
 0  | 
 0  | 
     }else if( rc!=SQLITE_BUSY ){  | 
 
| 
60642
 | 
 0  | 
 0  | 
   for(i=1; i
 | 
 
| 
60644
 | 
 0  | 
 0  | 
     if( mxReadMark<=thisMark && thisMark<=mxFrame ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( mxReadMark<=thisMark && thisMark<=mxFrame ){  | 
 
| 
60650
 | 
 0  | 
 0  | 
   if( (pWal->readOnly & WAL_SHM_RDONLY)==0  | 
 
| 
60651
 | 
 0  | 
 0  | 
    && (mxReadMark
 | 
 
| 
 | 
 0  | 
 0  | 
    && (mxReadMark
 | 
 
| 
60653
 | 
 0  | 
 0  | 
     for(i=1; i
 | 
 
| 
60655
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
60660
 | 
 0  | 
 0  | 
       }else if( rc!=SQLITE_BUSY ){  | 
 
| 
60665
 | 
 0  | 
 0  | 
   if( mxI==0 ){  | 
 
| 
60667
 | 
 0  | 
 0  | 
     return rc==SQLITE_BUSY ? WAL_RETRY : SQLITE_READONLY_CANTINIT;  | 
 
| 
60671
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
60672
 | 
 0  | 
 0  | 
     return rc==SQLITE_BUSY ? WAL_RETRY : rc;  | 
 
| 
60710
 | 
 0  | 
 0  | 
   if( AtomicLoad(pInfo->aReadMark+mxI)!=mxReadMark  | 
 
| 
60711
 | 
 0  | 
 0  | 
    || memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr))  | 
 
| 
60826
 | 
 0  | 
 0  | 
   }while( rc==WAL_RETRY );  | 
 
| 
60905
 | 
 0  | 
 0  | 
   if( pWal->readLock>=0 ){  | 
 
| 
60938
 | 
 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) ){  | 
 
| 
60969
 | 
 0  | 
 0  | 
   for(iHash=walFramePage(iLast); iHash>=iMinHash; iHash--){  | 
 
| 
60976
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
60980
 | 
 0  | 
 0  | 
     for(iKey=walHash(pgno); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){  | 
 
| 
60982
 | 
 0  | 
 0  | 
       if( iFrame<=iLast && iFrame>=pWal->minFrame  | 
 
| 
 | 
 0  | 
 0  | 
       if( iFrame<=iLast && iFrame>=pWal->minFrame  | 
 
| 
60983
 | 
 0  | 
 0  | 
        && sLoc.aPgno[sLoc.aHash[iKey]]==pgno ){  | 
 
| 
60987
 | 
 0  | 
 0  | 
       if( (nCollide--)==0 ){  | 
 
| 
60991
 | 
 0  | 
 0  | 
     if( iRead ) break;  | 
 
| 
61042
 | 
 0  | 
 300  | 
   if( pWal && ALWAYS(pWal->readLock>=0) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pWal && ALWAYS(pWal->readLock>=0) ){  | 
 
| 
61070
 | 
 0  | 
 0  | 
   if( pWal->readOnly ){  | 
 
| 
61078
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
61087
 | 
 0  | 
 0  | 
   if( memcmp(&pWal->hdr, (void *)walIndexHdr(pWal), sizeof(WalIndexHdr))!=0 ){  | 
 
| 
61101
 | 
 0  | 
 0  | 
   if( pWal->writeLock ){  | 
 
| 
61124
 | 
 0  | 
 0  | 
   if( ALWAYS(pWal->writeLock) ){  | 
 
| 
61133
 | 
 0  | 
 0  | 
     for(iFrame=pWal->hdr.mxFrame+1;   | 
 
| 
61134
 | 
 0  | 
 0  | 
         ALWAYS(rc==SQLITE_OK) && iFrame<=iMax;   | 
 
| 
61151
 | 
 0  | 
 0  | 
     if( iMax!=pWal->hdr.mxFrame ) walCleanupHash(pWal);  | 
 
| 
61182
 | 
 0  | 
 0  | 
   if( aWalData[3]!=pWal->nCkpt ){  | 
 
| 
61191
 | 
 0  | 
 0  | 
   if( aWalData[0]hdr.mxFrame ){  | 
 
| 
61217
 | 
 0  | 
 0  | 
   if( pWal->readLock==0 ){  | 
 
| 
61220
 | 
 0  | 
 0  | 
     if( pInfo->nBackfill>0 ){  | 
 
| 
61224
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
61236
 | 
 0  | 
 0  | 
       }else if( rc!=SQLITE_BUSY ){  | 
 
| 
61246
 | 
 0  | 
 0  | 
     }while( rc==WAL_RETRY );  | 
 
| 
61283
 | 
 0  | 
 0  | 
   if( iOffsetiSyncPoint && iOffset+iAmt>=p->iSyncPoint ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( iOffsetiSyncPoint && iOffset+iAmt>=p->iSyncPoint ){  | 
 
| 
61286
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
61292
 | 
 0  | 
 0  | 
     if( iAmt==0 || rc ) return rc;  | 
 
| 
 | 
 0  | 
 0  | 
     if( iAmt==0 || rc ) return rc;  | 
 
| 
61317
 | 
 0  | 
 0  | 
   if( rc ) return rc;  | 
 
| 
61340
 | 
 0  | 
 0  | 
   if( aBuf==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
61348
 | 
 0  | 
 0  | 
   if( pWal->iReCksum==1 ){  | 
 
| 
61359
 | 
 0  | 
 0  | 
   for(; rc==SQLITE_OK && iRead<=iLast; iRead++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(; rc==SQLITE_OK && iRead<=iLast; iRead++){  | 
 
| 
61362
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
61414
 | 
 0  | 
 0  | 
   if( memcmp(&pWal->hdr, (void *)pLive, sizeof(WalIndexHdr))!=0 ){  | 
 
| 
61421
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=(rc = walRestartLog(pWal)) ){  | 
 
| 
61430
 | 
 0  | 
 0  | 
   if( iFrame==0 ){  | 
 
| 
61438
 | 
 0  | 
 0  | 
     if( pWal->nCkpt==0 ) sqlite3_randomness(8, pWal->hdr.aSalt);  | 
 
| 
61452
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
61463
 | 
 0  | 
 0  | 
     if( pWal->syncHeader ){  | 
 
| 
61465
 | 
 0  | 
 0  | 
       if( rc ) return rc;  | 
 
| 
61480
 | 
 0  | 
 0  | 
   for(p=pList; p; p=p->pDirty){  | 
 
| 
61487
 | 
 0  | 
 0  | 
     if( iFirst && (p->pDirty || isCommit==0) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iFirst && (p->pDirty || isCommit==0) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iFirst && (p->pDirty || isCommit==0) ){  | 
 
| 
61491
 | 
 0  | 
 0  | 
       if( iWrite>=iFirst ){  | 
 
| 
61494
 | 
 0  | 
 0  | 
         if( pWal->iReCksum==0 || iWriteiReCksum ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( pWal->iReCksum==0 || iWriteiReCksum ){  | 
 
| 
61503
 | 
 0  | 
 0  | 
         if( rc ) return rc;  | 
 
| 
61511
 | 
 0  | 
 0  | 
     nDbSize = (isCommit && p->pDirty==0) ? nTruncate : 0;  | 
 
| 
 | 
 0  | 
 0  | 
     nDbSize = (isCommit && p->pDirty==0) ? nTruncate : 0;  | 
 
| 
61513
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
61520
 | 
 0  | 
 0  | 
   if( isCommit && pWal->iReCksum ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( isCommit && pWal->iReCksum ){  | 
 
| 
61522
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
61539
 | 
 0  | 
 0  | 
   if( isCommit && WAL_SYNC_FLAGS(sync_flags)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( isCommit && WAL_SYNC_FLAGS(sync_flags)!=0 ){  | 
 
| 
61541
 | 
 0  | 
 0  | 
     if( pWal->padToSectorBoundary ){  | 
 
| 
61546
 | 
 0  | 
 0  | 
       while( iOffset
 | 
 
| 
61548
 | 
 0  | 
 0  | 
         if( rc ) return rc;  | 
 
| 
61553
 | 
 0  | 
 0  | 
     if( bSync ){  | 
 
| 
61563
 | 
 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 ){  | 
 
| 
61565
 | 
 0  | 
 0  | 
     if( walFrameOffset(iFrame+nExtra+1, szPage)>pWal->mxWalSize ){  | 
 
| 
61578
 | 
 0  | 
 0  | 
   for(p=pList; p && rc==SQLITE_OK; p=p->pDirty){  | 
 
| 
 | 
 0  | 
 0  | 
   for(p=pList; p && rc==SQLITE_OK; p=p->pDirty){  | 
 
| 
61579
 | 
 0  | 
 0  | 
     if( (p->flags & PGHDR_WAL_APPEND)==0 ) continue;  | 
 
| 
61583
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && nExtra>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && nExtra>0 ){  | 
 
| 
61589
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
61595
 | 
 0  | 
 0  | 
     if( isCommit ){  | 
 
| 
61600
 | 
 0  | 
 0  | 
     if( isCommit ){  | 
 
| 
61644
 | 
 0  | 
 0  | 
   if( pWal->readOnly ) return SQLITE_READONLY;  | 
 
| 
61650
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
61672
 | 
 0  | 
 0  | 
   if( eMode!=SQLITE_CHECKPOINT_PASSIVE ){  | 
 
| 
61674
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
61676
 | 
 0  | 
 0  | 
     }else if( rc==SQLITE_BUSY ){  | 
 
| 
61684
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
61686
 | 
 0  | 
 0  | 
     if( isChanged && pWal->pDbFd->pMethods->iVersion>=3 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( isChanged && pWal->pDbFd->pMethods->iVersion>=3 ){  | 
 
| 
61692
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
61694
 | 
 0  | 
 0  | 
     if( pWal->hdr.mxFrame && walPagesize(pWal)!=nBuf ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pWal->hdr.mxFrame && walPagesize(pWal)!=nBuf ){  | 
 
| 
61701
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK || rc==SQLITE_BUSY ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK || rc==SQLITE_BUSY ){  | 
 
| 
61702
 | 
 0  | 
 0  | 
       if( pnLog ) *pnLog = (int)pWal->hdr.mxFrame;  | 
 
| 
61703
 | 
 0  | 
 0  | 
       if( pnCkpt ) *pnCkpt = (int)(walCkptInfo(pWal)->nBackfill);  | 
 
| 
61707
 | 
 0  | 
 0  | 
   if( isChanged ){  | 
 
| 
61722
 | 
 0  | 
 0  | 
   return (rc==SQLITE_OK && eMode!=eMode2 ? SQLITE_BUSY : rc);  | 
 
| 
 | 
 0  | 
 0  | 
   return (rc==SQLITE_OK && eMode!=eMode2 ? SQLITE_BUSY : rc);  | 
 
| 
61732
 | 
 0  | 
 3028  | 
   if( pWal ){  | 
 
| 
61777
 | 
 0  | 
 0  | 
   if( op==0 ){  | 
 
| 
61778
 | 
 0  | 
 0  | 
     if( pWal->exclusiveMode!=WAL_NORMAL_MODE ){  | 
 
| 
61780
 | 
 0  | 
 0  | 
       if( walLockShared(pWal, WAL_READ_LOCK(pWal->readLock))!=SQLITE_OK ){  | 
 
| 
61788
 | 
 0  | 
 0  | 
   }else if( op>0 ){  | 
 
| 
61806
 | 
 0  | 
 0  | 
   return (pWal && pWal->exclusiveMode==WAL_HEAPMEMORY_MODE );  | 
 
| 
 | 
 0  | 
 0  | 
   return (pWal && pWal->exclusiveMode==WAL_HEAPMEMORY_MODE );  | 
 
| 
62907
 | 
 12265  | 
 6041  | 
   for(i=0; inDb; i++){  | 
 
| 
62909
 | 
 8940  | 
 3325  | 
     if( p ){  | 
 
| 
63229
 | 
 10139  | 
 0  | 
   if( !p->sharable ){  | 
 
| 
63236
 | 
 0  | 
 0  | 
   if( pBt->pWriter!=p && (pBt->btsFlags & BTS_EXCLUSIVE)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pBt->pWriter!=p && (pBt->btsFlags & BTS_EXCLUSIVE)!=0 ){  | 
 
| 
63241
 | 
 0  | 
 0  | 
   for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){  | 
 
| 
63253
 | 
 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 ){  | 
 
| 
63255
 | 
 0  | 
 0  | 
       if( eLock==WRITE_LOCK ){  | 
 
| 
63305
 | 
 0  | 
 0  | 
   for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){  | 
 
| 
63306
 | 
 0  | 
 0  | 
     if( pIter->iTable==iTable && pIter->pBtree==p ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pIter->iTable==iTable && pIter->pBtree==p ){  | 
 
| 
63315
 | 
 0  | 
 0  | 
   if( !pLock ){  | 
 
| 
63317
 | 
 0  | 
 0  | 
     if( !pLock ){  | 
 
| 
63331
 | 
 0  | 
 0  | 
   if( eLock>pLock->eLock ){  | 
 
| 
63356
 | 
 0  | 
 1879  | 
   while( *ppIter ){  | 
 
| 
63360
 | 
 0  | 
 0  | 
     if( pLock->pBtree==p ){  | 
 
| 
63363
 | 
 0  | 
 0  | 
       if( pLock->iTable!=1 ){  | 
 
| 
63372
 | 
 997  | 
 882  | 
   if( pBt->pWriter==p ){  | 
 
| 
63375
 | 
 0  | 
 882  | 
   }else if( pBt->nTransaction==2 ){  | 
 
| 
63394
 | 
 0  | 
 98  | 
   if( pBt->pWriter==p ){  | 
 
| 
63398
 | 
 0  | 
 0  | 
     for(pLock=pBt->pLock; pLock; pLock=pLock->pNext){  | 
 
| 
63448
 | 
 0  | 
 0  | 
   for(p=pBt->pCursor; p; p=p->pNext){  | 
 
| 
63474
 | 
 3673  | 
 14  | 
   if( pBtree->hasIncrblobCur==0 ) return;  | 
 
| 
63477
 | 
 28  | 
 14  | 
   for(p=pBtree->pBt->pCursor; p; p=p->pNext){  | 
 
| 
63478
 | 
 14  | 
 14  | 
     if( (p->curFlags & BTCF_Incrblob)!=0 ){  | 
 
| 
63480
 | 
 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) ){  | 
 
| 
63529
 | 
 1  | 
 0  | 
   if( !pBt->pHasContent ){  | 
 
| 
63532
 | 
 0  | 
 1  | 
     if( !pBt->pHasContent ){  | 
 
| 
63536
 | 
 1  | 
 0  | 
   if( rc==SQLITE_OK && pgno<=sqlite3BitvecSize(pBt->pHasContent) ){  | 
 
| 
 | 
 1  | 
 0  | 
   if( rc==SQLITE_OK && pgno<=sqlite3BitvecSize(pBt->pHasContent) ){  | 
 
| 
63551
 | 
 0  | 
 1  | 
   return (p && (pgno>sqlite3BitvecSize(p) || sqlite3BitvecTest(p, pgno)));  | 
 
| 
 | 
 0  | 
 0  | 
   return (p && (pgno>sqlite3BitvecSize(p) || sqlite3BitvecTest(p, pgno)));  | 
 
| 
 | 
 0  | 
 0  | 
   return (p && (pgno>sqlite3BitvecSize(p) || sqlite3BitvecTest(p, pgno)));  | 
 
| 
63568
 | 
 5043  | 
 382  | 
   if( pCur->iPage>=0 ){  | 
 
| 
63569
 | 
 1432  | 
 5043  | 
     for(i=0; iiPage; i++){  | 
 
| 
63596
 | 
 68  | 
 0  | 
   if( pCur->curIntKey ){  | 
 
| 
63604
 | 
 0  | 
 0  | 
     if( pKey ){  | 
 
| 
63606
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
63633
 | 
 0  | 
 52  | 
   if( pCur->eState==CURSOR_SKIPNEXT ){  | 
 
| 
63640
 | 
 52  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
63677
 | 
 225  | 
 638  | 
   for(p=pBt->pCursor; p; p=p->pNext){  | 
 
| 
63678
 | 
 115  | 
 110  | 
     if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ) break;  | 
 
| 
 | 
 115  | 
 0  | 
     if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ) break;  | 
 
| 
 | 
 5  | 
 110  | 
     if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ) break;  | 
 
| 
63680
 | 
 110  | 
 638  | 
   if( p ) return saveCursorsOnList(p, iRoot, pExcept);  | 
 
| 
63681
 | 
 0  | 
 638  | 
   if( pExcept ) pExcept->curFlags &= ~BTCF_Multiple;  | 
 
| 
63696
 | 
 122  | 
 0  | 
     if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ){  | 
 
| 
 | 
 122  | 
 0  | 
     if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ){  | 
 
| 
 | 
 122  | 
 0  | 
     if( p!=pExcept && (0==iRoot || p->pgnoRoot==iRoot) ){  | 
 
| 
63697
 | 
 70  | 
 52  | 
       if( p->eState==CURSOR_VALID || p->eState==CURSOR_SKIPNEXT ){  | 
 
| 
 | 
 0  | 
 70  | 
       if( p->eState==CURSOR_VALID || p->eState==CURSOR_SKIPNEXT ){  | 
 
| 
63699
 | 
 0  | 
 52  | 
         if( SQLITE_OK!=rc ){  | 
 
| 
63708
 | 
 12  | 
 110  | 
   }while( p );  | 
 
| 
63737
 | 
 0  | 
 16  | 
   if( pKey ){  | 
 
| 
63740
 | 
 0  | 
 0  | 
     if( pIdxKey==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
63742
 | 
 0  | 
 0  | 
     if( pIdxKey->nField==0 ){  | 
 
| 
63751
 | 
 0  | 
 16  | 
   if( pIdxKey ){  | 
 
| 
63769
 | 
 0  | 
 16  | 
   if( pCur->eState==CURSOR_FAULT ){  | 
 
| 
63774
 | 
 16  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
63779
 | 
 16  | 
 0  | 
     if( pCur->skipNext && pCur->eState==CURSOR_VALID ){  | 
 
| 
 | 
 8  | 
 8  | 
     if( pCur->skipNext && pCur->eState==CURSOR_VALID ){  | 
 
| 
63840
 | 
 0  | 
 0  | 
   rc = restoreCursorPosition(pCur);  | 
 
| 
63841
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
63845
 | 
 0  | 
 0  | 
   if( pCur->eState!=CURSOR_VALID ){  | 
 
| 
63888
 | 
 0  | 
 0  | 
   if( pgno<2 ) return 0;  | 
 
| 
63892
 | 
 0  | 
 0  | 
   if( ret==PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
63915
 | 
 0  | 
 0  | 
   if( *pRC ) return;  | 
 
| 
63922
 | 
 0  | 
 0  | 
   if( key==0 ){  | 
 
| 
63928
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
63933
 | 
 0  | 
 0  | 
   if( offset<0 ){  | 
 
| 
63940
 | 
 0  | 
 0  | 
   if( eType!=pPtrmap[offset] || get4byte(&pPtrmap[offset+1])!=parent ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( eType!=pPtrmap[offset] || get4byte(&pPtrmap[offset+1])!=parent ){  | 
 
| 
63943
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
63971
 | 
 0  | 
 0  | 
   if( rc!=0 ){  | 
 
| 
63977
 | 
 0  | 
 0  | 
   if( offset<0 ){  | 
 
| 
63984
 | 
 0  | 
 0  | 
   if( pPgno ) *pPgno = get4byte(&pPtrmap[offset+1]);  | 
 
| 
63987
 | 
 0  | 
 0  | 
   if( *pEType<1 || *pEType>5 ) return SQLITE_CORRUPT_PGNO(iPtrmap);  | 
 
| 
 | 
 0  | 
 0  | 
   if( *pEType<1 || *pEType>5 ) return SQLITE_CORRUPT_PGNO(iPtrmap);  | 
 
| 
64042
 | 
 0  | 
 31  | 
   if( surplus <= maxLocal ){  | 
 
| 
64103
 | 
 123  | 
 10209  | 
   if( nPayload>=0x80 ){  | 
 
| 
64108
 | 
 31  | 
 123  | 
     }while( (*pIter)>=0x80 && pIter
 | 
 
| 
 | 
 31  | 
 0  | 
     }while( (*pIter)>=0x80 && pIter
 | 
 
| 
64119
 | 
 5365  | 
 4967  | 
   if( iKey>=0x80 ){  | 
 
| 
64124
 | 
 5365  | 
 0  | 
       if( (*pIter)<0x80 ) break;  | 
 
| 
64125
 | 
 0  | 
 0  | 
       if( pIter>=pEnd ){  | 
 
| 
64138
 | 
 10301  | 
 31  | 
   if( nPayload<=pPage->maxLocal ){  | 
 
| 
64143
 | 
 0  | 
 10301  | 
     if( pInfo->nSize<4 ) pInfo->nSize = 4;  | 
 
| 
64162
 | 
 0  | 
 305  | 
   if( nPayload>=0x80 ){  | 
 
| 
64167
 | 
 0  | 
 0  | 
     }while( *(pIter)>=0x80 && pIter
 | 
 
| 
 | 
 0  | 
 0  | 
     }while( *(pIter)>=0x80 && pIter
 | 
 
| 
64175
 | 
 305  | 
 0  | 
   if( nPayload<=pPage->maxLocal ){  | 
 
| 
64180
 | 
 0  | 
 305  | 
     if( pInfo->nSize<4 ) pInfo->nSize = 4;  | 
 
| 
64221
 | 
 0  | 
 22  | 
   if( nSize>=0x80 ){  | 
 
| 
64226
 | 
 0  | 
 0  | 
     }while( *(pIter)>=0x80 && pIter
 | 
 
| 
 | 
 0  | 
 0  | 
     }while( *(pIter)>=0x80 && pIter
 | 
 
| 
64229
 | 
 22  | 
 0  | 
   if( pPage->intKey ){  | 
 
| 
64234
 | 
 6  | 
 22  | 
     while( (*pIter++)&0x80 && pIter
 | 
 
| 
 | 
 6  | 
 0  | 
     while( (*pIter++)&0x80 && pIter
 | 
 
| 
64238
 | 
 22  | 
 0  | 
   if( nSize<=pPage->maxLocal ){  | 
 
| 
64240
 | 
 0  | 
 22  | 
     if( nSize<4 ) nSize = 4;  | 
 
| 
64246
 | 
 0  | 
 0  | 
     if( nSize>pPage->maxLocal ){  | 
 
| 
64271
 | 
 0  | 
 0  | 
   while( (*pIter++)&0x80 && pIter
 | 
 
| 
 | 
 0  | 
 0  | 
   while( (*pIter++)&0x80 && pIter
 | 
 
| 
64293
 | 
 0  | 
 0  | 
   if( *pRC ) return;  | 
 
| 
64296
 | 
 0  | 
 0  | 
   if( info.nLocal
 | 
 
| 
64350
 | 
 0  | 
 0  | 
   if( (int)data[hdr+7]<=nMaxFrag ){  | 
 
| 
64352
 | 
 0  | 
 0  | 
     if( iFree ){  | 
 
| 
64365
 | 
 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) ){  | 
 
| 
64371
 | 
 0  | 
 0  | 
         if( top>=iFree ){  | 
 
| 
64374
 | 
 0  | 
 0  | 
         if( iFree2 ){  | 
 
| 
64384
 | 
 0  | 
 0  | 
         for(pAddr=&data[cellOffset]; pAddr
 | 
 
| 
64386
 | 
 0  | 
 0  | 
           if( pc
 | 
 
| 
64387
 | 
 0  | 
 0  | 
           else if( pc
 | 
 
| 
64396
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
64405
 | 
 0  | 
 0  | 
     if( pciCellLast ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pciCellLast ){  | 
 
| 
64411
 | 
 0  | 
 0  | 
     if( cbrkusableSize ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( cbrkusableSize ){  | 
 
| 
64418
 | 
 0  | 
 0  | 
     if( temp==0 ){  | 
 
| 
64420
 | 
 0  | 
 0  | 
       if( cbrk==pc ) continue;  | 
 
| 
64431
 | 
 0  | 
 0  | 
   if( data[hdr+7]+cbrk-iCellFirst!=pPage->nFree ){  | 
 
| 
64467
 | 
 89  | 
 0  | 
   while( pc<=usableSize-4 ){  | 
 
| 
64472
 | 
 30  | 
 59  | 
     if( (x = size - nByte)>=0 ){  | 
 
| 
64475
 | 
 0  | 
 30  | 
       if( size+pc > usableSize ){  | 
 
| 
64478
 | 
 30  | 
 0  | 
       }else if( x<4 ){  | 
 
| 
64481
 | 
 0  | 
 30  | 
         if( aData[hdr+7]>57 ) return 0;  | 
 
| 
64496
 | 
 59  | 
 0  | 
     if( pc
 | 
 
| 
64498
 | 
 0  | 
 59  | 
   if( pc ){  | 
 
| 
64543
 | 
 0  | 
 3491  | 
   if( gap>top ){  | 
 
| 
64544
 | 
 0  | 
 0  | 
     if( top==0 && pPage->pBt->usableSize==65536 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( top==0 && pPage->pBt->usableSize==65536 ){  | 
 
| 
64558
 | 
 3402  | 
 89  | 
   if( (data[hdr+2] || data[hdr+1]) && gap+2<=top ){  | 
 
| 
 | 
 0  | 
 3402  | 
   if( (data[hdr+2] || data[hdr+1]) && gap+2<=top ){  | 
 
| 
 | 
 89  | 
 0  | 
   if( (data[hdr+2] || data[hdr+1]) && gap+2<=top ){  | 
 
| 
64560
 | 
 30  | 
 59  | 
     if( pSpace ){  | 
 
| 
64564
 | 
 0  | 
 59  | 
     }else if( rc ){  | 
 
| 
64573
 | 
 0  | 
 3461  | 
   if( gap+2+nByte>top ){  | 
 
| 
64576
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
64631
 | 
 234  | 
 2  | 
   if( data[iPtr+1]==0 && data[iPtr]==0 ){  | 
 
| 
 | 
 234  | 
 0  | 
   if( data[iPtr+1]==0 && data[iPtr]==0 ){  | 
 
| 
64634
 | 
 0  | 
 2  | 
     while( (iFreeBlk = get2byte(&data[iPtr]))
 | 
 
| 
64635
 | 
 0  | 
 0  | 
       if( iFreeBlk
 | 
 
| 
64636
 | 
 0  | 
 0  | 
         if( iFreeBlk==0 ) break;  | 
 
| 
64641
 | 
 0  | 
 2  | 
     if( iFreeBlk>pPage->pBt->usableSize-4 ){  | 
 
| 
64652
 | 
 2  | 
 0  | 
     if( iFreeBlk && iEnd+3>=iFreeBlk ){  | 
 
| 
 | 
 2  | 
 0  | 
     if( iFreeBlk && iEnd+3>=iFreeBlk ){  | 
 
| 
64654
 | 
 0  | 
 2  | 
       if( iEnd>iFreeBlk ) return SQLITE_CORRUPT_PAGE(pPage);  | 
 
| 
64656
 | 
 0  | 
 2  | 
       if( iEnd > pPage->pBt->usableSize ){  | 
 
| 
64667
 | 
 0  | 
 2  | 
     if( iPtr>hdr+1 ){  | 
 
| 
64669
 | 
 0  | 
 0  | 
       if( iPtrEnd+3>=iStart ){  | 
 
| 
64670
 | 
 0  | 
 0  | 
         if( iPtrEnd>iStart ) return SQLITE_CORRUPT_PAGE(pPage);  | 
 
| 
64676
 | 
 0  | 
 2  | 
     if( nFrag>data[hdr+7] ) return SQLITE_CORRUPT_PAGE(pPage);  | 
 
| 
64680
 | 
 178  | 
 58  | 
   if( iStart<=x ){  | 
 
| 
64684
 | 
 178  | 
 0  | 
     if( iStart
 | 
 
| 
 | 
 0  | 
 178  | 
     if( iStart
 | 
 
| 
64691
 | 
 0  | 
 236  | 
   if( pPage->pBt->btsFlags & BTS_FAST_SECURE ){  | 
 
| 
64724
 | 
 483  | 
 43  | 
   if( flagByte==(PTF_LEAFDATA | PTF_INTKEY) ){  | 
 
| 
64732
 | 
 481  | 
 2  | 
     if( pPage->leaf ){  | 
 
| 
64742
 | 
 43  | 
 0  | 
   }else if( flagByte==PTF_ZERODATA ){  | 
 
| 
64797
 | 
 0  | 
 84  | 
   if( decodeFlags(pPage, data[hdr]) ){  | 
 
| 
64815
 | 
 0  | 
 84  | 
   if( pPage->nCell>MX_CELL(pBt) ){  | 
 
| 
64835
 | 
 0  | 
 84  | 
   if( pBt->db->flags & SQLITE_CellSizeCk ){  | 
 
| 
64839
 | 
 0  | 
 0  | 
     if( !pPage->leaf ) iCellLast--;  | 
 
| 
64840
 | 
 0  | 
 0  | 
     for(i=0; inCell; i++){  | 
 
| 
64844
 | 
 0  | 
 0  | 
       if( pciCellLast ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pciCellLast ){  | 
 
| 
64849
 | 
 0  | 
 0  | 
       if( pc+sz>usableSize ){  | 
 
| 
64853
 | 
 0  | 
 0  | 
     if( !pPage->leaf ) iCellLast++;  | 
 
| 
64862
 | 
 0  | 
 84  | 
   if( pc>0 ){  | 
 
| 
64864
 | 
 0  | 
 0  | 
     if( pc
 | 
 
| 
64871
 | 
 0  | 
 0  | 
       if( pc>iCellLast ){  | 
 
| 
64878
 | 
 0  | 
 0  | 
       if( next<=pc+size+3 ) break;  | 
 
| 
64881
 | 
 0  | 
 0  | 
     if( next>0 ){  | 
 
| 
64885
 | 
 0  | 
 0  | 
     if( pc+size>(unsigned int)usableSize ){  | 
 
| 
64898
 | 
 0  | 
 84  | 
   if( nFree>usableSize ){  | 
 
| 
64921
 | 
 0  | 
 442  | 
   if( pBt->btsFlags & BTS_FAST_SECURE ){  | 
 
| 
64925
 | 
 2  | 
 440  | 
   first = hdr + ((flags&PTF_LEAF)==0 ? 12 : 8);  | 
 
| 
64949
 | 
 567  | 
 1898  | 
   if( pgno!=pPage->pgno ){  | 
 
| 
64954
 | 
 237  | 
 330  | 
     pPage->hdrOffset = pgno==1 ? 100 : 0;  | 
 
| 
64983
 | 
 5  | 
 2384  | 
   if( rc ) return rc;  | 
 
| 
64997
 | 
 0  | 
 0  | 
   if( pDbPage ){  | 
 
| 
65043
 | 
 0  | 
 6528  | 
   if( pgno>btreePagecount(pBt) ){  | 
 
| 
65048
 | 
 0  | 
 6528  | 
   if( rc ){  | 
 
| 
65052
 | 
 81  | 
 6447  | 
   if( (*ppPage)->isInit==0 ){  | 
 
| 
65055
 | 
 0  | 
 81  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
65065
 | 
 1452  | 
 5076  | 
   if( pCur && ((*ppPage)->nCell<1 || (*ppPage)->intKey!=pCur->curIntKey) ){  | 
 
| 
 | 
 1452  | 
 0  | 
   if( pCur && ((*ppPage)->nCell<1 || (*ppPage)->intKey!=pCur->curIntKey) ){  | 
 
| 
 | 
 0  | 
 1452  | 
   if( pCur && ((*ppPage)->nCell<1 || (*ppPage)->intKey!=pCur->curIntKey) ){  | 
 
| 
65073
 | 
 0  | 
 0  | 
   if( pCur ){  | 
 
| 
65098
 | 
 105  | 
 615  | 
   if( pPage ) releasePageNotNull(pPage);  | 
 
| 
65127
 | 
 303  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
65128
 | 
 0  | 
 303  | 
     if( sqlite3PagerPageRefcount((*ppPage)->pDbPage)>1 ){  | 
 
| 
65153
 | 
 29  | 
 0  | 
   if( pPage->isInit ){  | 
 
| 
65156
 | 
 1  | 
 28  | 
     if( sqlite3PagerPageRefcount(pData)>1 ){  | 
 
| 
65216
 | 
 262  | 
 35  | 
   const int isTempDb = zFilename==0 || zFilename[0]==0;  | 
 
| 
 | 
 3  | 
 259  | 
   const int isTempDb = zFilename==0 || zFilename[0]==0;  | 
 
| 
65224
 | 
 109  | 
 153  | 
   const int isMemdb = (zFilename && strcmp(zFilename, ":memory:")==0)  | 
 
| 
65225
 | 
 38  | 
 106  | 
                        || (isTempDb && sqlite3TempInMemory(db))  | 
 
| 
 | 
 38  | 
 0  | 
                        || (isTempDb && sqlite3TempInMemory(db))  | 
 
| 
65226
 | 
 262  | 
 35  | 
                        || (vfsFlags & SQLITE_OPEN_MEMORY)!=0;  | 
 
| 
 | 
 0  | 
 144  | 
                        || (vfsFlags & SQLITE_OPEN_MEMORY)!=0;  | 
 
| 
65240
 | 
 153  | 
 144  | 
   if( isMemdb ){  | 
 
| 
65243
 | 
 262  | 
 35  | 
   if( (vfsFlags & SQLITE_OPEN_MAIN_DB)!=0 && (isMemdb || isTempDb) ){  | 
 
| 
 | 
 109  | 
 153  | 
   if( (vfsFlags & SQLITE_OPEN_MAIN_DB)!=0 && (isMemdb || isTempDb) ){  | 
 
| 
 | 
 3  | 
 106  | 
   if( (vfsFlags & SQLITE_OPEN_MAIN_DB)!=0 && (isMemdb || isTempDb) ){  | 
 
| 
65247
 | 
 0  | 
 297  | 
   if( !p ){  | 
 
| 
65262
 | 
 259  | 
 38  | 
   if( isTempDb==0 && (isMemdb==0 || (vfsFlags&SQLITE_OPEN_URI)!=0) ){  | 
 
| 
 | 
 153  | 
 106  | 
   if( isTempDb==0 && (isMemdb==0 || (vfsFlags&SQLITE_OPEN_URI)!=0) ){  | 
 
| 
 | 
 0  | 
 153  | 
   if( isTempDb==0 && (isMemdb==0 || (vfsFlags&SQLITE_OPEN_URI)!=0) ){  | 
 
| 
65263
 | 
 0  | 
 106  | 
     if( vfsFlags & SQLITE_OPEN_SHAREDCACHE ){  | 
 
| 
65270
 | 
 0  | 
 0  | 
       if( !zFullPathname ){  | 
 
| 
65274
 | 
 0  | 
 0  | 
       if( isMemdb ){  | 
 
| 
65279
 | 
 0  | 
 0  | 
         if( rc ){  | 
 
| 
65291
 | 
 0  | 
 0  | 
       for(pBt=GLOBAL(BtShared*,sqlite3SharedCacheList); pBt; pBt=pBt->pNext){  | 
 
| 
65293
 | 
 0  | 
 0  | 
         if( 0==strcmp(zFullPathname, sqlite3PagerFilename(pBt->pPager, 0))  | 
 
| 
65294
 | 
 0  | 
 0  | 
                  && sqlite3PagerVfs(pBt->pPager)==pVfs ){  | 
 
| 
65296
 | 
 0  | 
 0  | 
           for(iDb=db->nDb-1; iDb>=0; iDb--){  | 
 
| 
65298
 | 
 0  | 
 0  | 
             if( pExisting && pExisting->pBt==pBt ){  | 
 
| 
 | 
 0  | 
 0  | 
             if( pExisting && pExisting->pBt==pBt ){  | 
 
| 
65326
 | 
 297  | 
 0  | 
   if( pBt==0 ){  | 
 
| 
65339
 | 
 0  | 
 297  | 
     if( pBt==0 ){  | 
 
| 
65345
 | 
 291  | 
 6  | 
     if( rc==SQLITE_OK ){  | 
 
| 
65349
 | 
 6  | 
 291  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
65359
 | 
 5  | 
 286  | 
     if( sqlite3PagerIsreadonly(pBt->pPager) ) pBt->btsFlags |= BTS_READ_ONLY;  | 
 
| 
65369
 | 
 25  | 
 266  | 
     if( pBt->pageSize<512 || pBt->pageSize>SQLITE_MAX_PAGE_SIZE  | 
 
| 
 | 
 25  | 
 0  | 
     if( pBt->pageSize<512 || pBt->pageSize>SQLITE_MAX_PAGE_SIZE  | 
 
| 
65370
 | 
 0  | 
 25  | 
          || ((pBt->pageSize-1)&pBt->pageSize)!=0 ){  | 
 
| 
65379
 | 
 231  | 
 35  | 
       if( zFilename && !isMemdb ){  | 
 
| 
 | 
 78  | 
 153  | 
       if( zFilename && !isMemdb ){  | 
 
| 
65397
 | 
 0  | 
 291  | 
     if( rc ) goto btree_open_out;  | 
 
| 
65405
 | 
 0  | 
 291  | 
     if( p->sharable ){  | 
 
| 
65428
 | 
 0  | 
 291  | 
   if( p->sharable ){  | 
 
| 
65431
 | 
 0  | 
 0  | 
     for(i=0; inDb; i++){  | 
 
| 
65432
 | 
 0  | 
 0  | 
       if( (pSib = db->aDb[i].pBt)!=0 && pSib->sharable ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( (pSib = db->aDb[i].pBt)!=0 && pSib->sharable ){  | 
 
| 
65433
 | 
 0  | 
 0  | 
         while( pSib->pPrev ){ pSib = pSib->pPrev; }  | 
 
| 
65434
 | 
 0  | 
 0  | 
         if( (uptr)p->pBt<(uptr)pSib->pBt ){  | 
 
| 
65439
 | 
 0  | 
 0  | 
           while( pSib->pNext && (uptr)pSib->pNext->pBt<(uptr)p->pBt ){  | 
 
| 
 | 
 0  | 
 0  | 
           while( pSib->pNext && (uptr)pSib->pNext->pBt<(uptr)p->pBt ){  | 
 
| 
65444
 | 
 0  | 
 0  | 
           if( p->pNext ){  | 
 
| 
65457
 | 
 6  | 
 291  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
65458
 | 
 6  | 
 0  | 
     if( pBt && pBt->pPager ){  | 
 
| 
 | 
 0  | 
 6  | 
     if( pBt && pBt->pPager ){  | 
 
| 
65471
 | 
 291  | 
 0  | 
     if( sqlite3BtreeSchema(p, 0, 0)==0 ){  | 
 
| 
65476
 | 
 100  | 
 191  | 
     if( pFile->pMethods ){  | 
 
| 
65504
 | 
 0  | 
 0  | 
   if( pBt->nRef<=0 ){  | 
 
| 
65505
 | 
 0  | 
 0  | 
     if( GLOBAL(BtShared*,sqlite3SharedCacheList)==pBt ){  | 
 
| 
65509
 | 
 0  | 
 0  | 
       while( ALWAYS(pList) && pList->pNext!=pBt ){  | 
 
| 
 | 
 0  | 
 0  | 
       while( ALWAYS(pList) && pList->pNext!=pBt ){  | 
 
| 
65512
 | 
 0  | 
 0  | 
       if( ALWAYS(pList) ){  | 
 
| 
65534
 | 
 165  | 
 3604  | 
   if( !pBt->pTmpSpace ){  | 
 
| 
65552
 | 
 165  | 
 0  | 
     if( pBt->pTmpSpace ){  | 
 
| 
65563
 | 
 163  | 
 128  | 
   if( pBt->pTmpSpace ){  | 
 
| 
65581
 | 
 5  | 
 289  | 
   while( pCur ){  | 
 
| 
65584
 | 
 5  | 
 0  | 
     if( pTmp->pBtree==p ){  | 
 
| 
65601
 | 
 0  | 
 289  | 
   if( !p->sharable || removeFromSharingList(pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !p->sharable || removeFromSharingList(pBt) ){  | 
 
| 
65609
 | 
 254  | 
 35  | 
     if( pBt->xFreeSchema && pBt->pSchema ){  | 
 
| 
 | 
 254  | 
 0  | 
     if( pBt->xFreeSchema && pBt->pSchema ){  | 
 
| 
65620
 | 
 0  | 
 289  | 
   if( p->pPrev ) p->pPrev->pNext = p->pNext;  | 
 
| 
65621
 | 
 0  | 
 289  | 
   if( p->pNext ) p->pNext->pPrev = p->pPrev;  | 
 
| 
65729
 | 
 2  | 
 32  | 
   if( pBt->btsFlags & BTS_PAGESIZE_FIXED ){  | 
 
| 
65733
 | 
 32  | 
 0  | 
   if( nReserve<0 ){  | 
 
| 
65737
 | 
 2  | 
 30  | 
   if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&  | 
 
| 
 | 
 2  | 
 0  | 
   if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&  | 
 
| 
 | 
 2  | 
 0  | 
   if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&  | 
 
| 
65746
 | 
 0  | 
 32  | 
   if( iFix ) pBt->btsFlags |= BTS_PAGESIZE_FIXED;  | 
 
| 
65830
 | 
 0  | 
 10  | 
   if( p==0 ) return 0;  | 
 
| 
65834
 | 
 5  | 
 5  | 
   if( newFlag>=0 ){  | 
 
| 
65858
 | 
 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 ){  | 
 
| 
65880
 | 
 0  | 
 0  | 
     (!p->pBt->autoVacuum)?BTREE_AUTOVACUUM_NONE:  | 
 
| 
65881
 | 
 0  | 
 0  | 
     (!p->pBt->incrVacuum)?BTREE_AUTOVACUUM_FULL:  | 
 
| 
65939
 | 
 2  | 
 2031  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
65941
 | 
 0  | 
 2031  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
65948
 | 
 1707  | 
 324  | 
   if( nPage==0 || memcmp(24+(u8*)pPage1->aData, 92+(u8*)pPage1->aData,4)!=0 ){  | 
 
| 
 | 
 0  | 
 1707  | 
   if( nPage==0 || memcmp(24+(u8*)pPage1->aData, 92+(u8*)pPage1->aData,4)!=0 ){  | 
 
| 
65951
 | 
 0  | 
 2031  | 
   if( (pBt->db->flags & SQLITE_ResetDatabase)!=0 ){  | 
 
| 
65954
 | 
 1707  | 
 324  | 
   if( nPage>0 ){  | 
 
| 
65962
 | 
 0  | 
 1707  | 
     if( memcmp(page1, zMagicHeader, 16)!=0 ){  | 
 
| 
65974
 | 
 0  | 
 1707  | 
     if( page1[18]>2 ){  | 
 
| 
65977
 | 
 0  | 
 1707  | 
     if( page1[19]>2 ){  | 
 
| 
65989
 | 
 0  | 
 1707  | 
     if( page1[19]==2 && (pBt->btsFlags & BTS_NO_WAL)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( page1[19]==2 && (pBt->btsFlags & BTS_NO_WAL)==0 ){  | 
 
| 
65992
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
65996
 | 
 0  | 
 0  | 
         if( isOpen==0 ){  | 
 
| 
66013
 | 
 0  | 
 1707  | 
     if( memcmp(&page1[21], "\100\040\040",3)!=0 ){  | 
 
| 
66022
 | 
 1707  | 
 0  | 
     if( ((pageSize-1)&pageSize)!=0  | 
 
| 
66023
 | 
 1707  | 
 0  | 
      || pageSize>SQLITE_MAX_PAGE_SIZE   | 
 
| 
66024
 | 
 1707  | 
 0  | 
      || pageSize<=256   | 
 
| 
66037
 | 
 0  | 
 1707  | 
     if( (u32)pageSize!=pBt->pageSize ){  | 
 
| 
66052
 | 
 1707  | 
 0  | 
     if( sqlite3WritableSchema(pBt->db)==0 && nPage>nPageFile ){  | 
 
| 
 | 
 0  | 
 1707  | 
     if( sqlite3WritableSchema(pBt->db)==0 && nPage>nPageFile ){  | 
 
| 
66059
 | 
 0  | 
 1707  | 
     if( usableSize<480 ){  | 
 
| 
66087
 | 
 2031  | 
 0  | 
   if( pBt->maxLocal>127 ){  | 
 
| 
66138
 | 
 2614  | 
 5287  | 
   if( pBt->inTransaction==TRANS_NONE && pBt->pPage1!=0 ){  | 
 
| 
 | 
 2031  | 
 583  | 
   if( pBt->inTransaction==TRANS_NONE && pBt->pPage1!=0 ){  | 
 
| 
66158
 | 
 843  | 
 155  | 
   if( pBt->nPage>0 ){  | 
 
| 
66165
 | 
 0  | 
 155  | 
   if( rc ) return rc;  | 
 
| 
66251
 | 
 2134  | 
 2797  | 
   if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){  | 
 
| 
 | 
 246  | 
 1888  | 
   if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){  | 
 
| 
 | 
 0  | 
 246  | 
   if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){  | 
 
| 
66256
 | 
 0  | 
 1888  | 
   if( (p->db->flags & SQLITE_ResetDatabase)   | 
 
| 
66257
 | 
 0  | 
 0  | 
    && sqlite3PagerIsreadonly(pBt->pPager)==0   | 
 
| 
66263
 | 
 4  | 
 1884  | 
   if( (pBt->btsFlags & BTS_READ_ONLY)!=0 && wrflag ){  | 
 
| 
 | 
 2  | 
 2  | 
   if( (pBt->btsFlags & BTS_READ_ONLY)!=0 && wrflag ){  | 
 
| 
66275
 | 
 1004  | 
 882  | 
     if( (wrflag && pBt->inTransaction==TRANS_WRITE)  | 
 
| 
 | 
 1004  | 
 0  | 
     if( (wrflag && pBt->inTransaction==TRANS_WRITE)  | 
 
| 
66276
 | 
 0  | 
 1886  | 
      || (pBt->btsFlags & BTS_PENDING)!=0  | 
 
| 
66279
 | 
 10  | 
 1876  | 
     }else if( wrflag>1 ){  | 
 
| 
66281
 | 
 0  | 
 10  | 
       for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){  | 
 
| 
66282
 | 
 0  | 
 0  | 
         if( pIter->pBtree!=p ){  | 
 
| 
66288
 | 
 0  | 
 1886  | 
     if( pBlock ){  | 
 
| 
66300
 | 
 0  | 
 1886  | 
   if( SQLITE_OK!=rc ) goto trans_begun;  | 
 
| 
66303
 | 
 356  | 
 1530  | 
   if( pBt->nPage==0 ) pBt->btsFlags |= BTS_INITIALLY_EMPTY;  | 
 
| 
66312
 | 
 2033  | 
 2031  | 
     while( pBt->pPage1==0 && SQLITE_OK==(rc = lockBtree(pBt)) );  | 
 
| 
 | 
 2031  | 
 2  | 
     while( pBt->pPage1==0 && SQLITE_OK==(rc = lockBtree(pBt)) );  | 
 
| 
66314
 | 
 2031  | 
 2  | 
     if( rc==SQLITE_OK && wrflag ){  | 
 
| 
 | 
 1149  | 
 882  | 
     if( rc==SQLITE_OK && wrflag ){  | 
 
| 
66315
 | 
 0  | 
 1149  | 
       if( (pBt->btsFlags & BTS_READ_ONLY)!=0 ){  | 
 
| 
66319
 | 
 997  | 
 152  | 
         if( rc==SQLITE_OK ){  | 
 
| 
66321
 | 
 0  | 
 152  | 
         }else if( rc==SQLITE_BUSY_SNAPSHOT && pBt->inTransaction==TRANS_NONE ){  | 
 
| 
 | 
 0  | 
 0  | 
         }else if( rc==SQLITE_BUSY_SNAPSHOT && pBt->inTransaction==TRANS_NONE ){  | 
 
| 
66330
 | 
 154  | 
 1879  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
66334
 | 
 154  | 
 1879  | 
           btreeInvokeBusyHandler(pBt) );  | 
 
| 
66337
 | 
 1879  | 
 7  | 
   if( rc==SQLITE_OK ){  | 
 
| 
66338
 | 
 1879  | 
 0  | 
     if( p->inTrans==TRANS_NONE ){  | 
 
| 
66341
 | 
 0  | 
 1879  | 
       if( p->sharable ){  | 
 
| 
66349
 | 
 997  | 
 882  | 
     p->inTrans = (wrflag?TRANS_WRITE:TRANS_READ);  | 
 
| 
66350
 | 
 1879  | 
 0  | 
     if( p->inTrans>pBt->inTransaction ){  | 
 
| 
66353
 | 
 997  | 
 882  | 
     if( wrflag ){  | 
 
| 
66359
 | 
 10  | 
 987  | 
       if( wrflag>1 ) pBt->btsFlags |= BTS_EXCLUSIVE;  | 
 
| 
66368
 | 
 0  | 
 997  | 
       if( pBt->nPage!=get4byte(&pPage1->aData[28]) ){  | 
 
| 
66370
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
66378
 | 
 4922  | 
 9  | 
   if( rc==SQLITE_OK ){  | 
 
| 
66379
 | 
 4744  | 
 178  | 
     if( pSchemaVersion ){  | 
 
| 
66382
 | 
 3416  | 
 1506  | 
     if( wrflag ){  | 
 
| 
66411
 | 
 0  | 
 0  | 
   rc = pPage->isInit ? SQLITE_OK : btreeInitPage(pPage);  | 
 
| 
66412
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
66415
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
66420
 | 
 0  | 
 0  | 
     if( !pPage->leaf ){  | 
 
| 
66426
 | 
 0  | 
 0  | 
   if( !pPage->leaf ){  | 
 
| 
66451
 | 
 0  | 
 0  | 
   if( eType==PTRMAP_OVERFLOW2 ){  | 
 
| 
66453
 | 
 0  | 
 0  | 
     if( get4byte(pPage->aData)!=iFrom ){  | 
 
| 
66462
 | 
 0  | 
 0  | 
     rc = pPage->isInit ? SQLITE_OK : btreeInitPage(pPage);  | 
 
| 
66463
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
66466
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
66468
 | 
 0  | 
 0  | 
       if( eType==PTRMAP_OVERFLOW1 ){  | 
 
| 
66471
 | 
 0  | 
 0  | 
         if( info.nLocal
 | 
 
| 
66472
 | 
 0  | 
 0  | 
           if( pCell+info.nSize > pPage->aData+pPage->pBt->usableSize ){  | 
 
| 
66475
 | 
 0  | 
 0  | 
           if( iFrom==get4byte(pCell+info.nSize-4) ){  | 
 
| 
66481
 | 
 0  | 
 0  | 
         if( get4byte(pCell)==iFrom ){  | 
 
| 
66488
 | 
 0  | 
 0  | 
     if( i==nCell ){  | 
 
| 
66526
 | 
 0  | 
 0  | 
   if( iDbPage<3 ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
66532
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
66545
 | 
 0  | 
 0  | 
   if( eType==PTRMAP_BTREE || eType==PTRMAP_ROOTPAGE ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( eType==PTRMAP_BTREE || eType==PTRMAP_ROOTPAGE ){  | 
 
| 
66547
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
66552
 | 
 0  | 
 0  | 
     if( nextOvfl!=0 ){  | 
 
| 
66554
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
66564
 | 
 0  | 
 0  | 
   if( eType!=PTRMAP_ROOTPAGE ){  | 
 
| 
66566
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
66570
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
66576
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
66610
 | 
 0  | 
 0  | 
   if( !PTRMAP_ISPAGE(pBt, iLastPg) && iLastPg!=PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !PTRMAP_ISPAGE(pBt, iLastPg) && iLastPg!=PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
66615
 | 
 0  | 
 0  | 
     if( nFreeList==0 ){  | 
 
| 
66620
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
66623
 | 
 0  | 
 0  | 
     if( eType==PTRMAP_ROOTPAGE ){  | 
 
| 
66627
 | 
 0  | 
 0  | 
     if( eType==PTRMAP_FREEPAGE ){  | 
 
| 
66628
 | 
 0  | 
 0  | 
       if( bCommit==0 ){  | 
 
| 
66637
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
66650
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
66661
 | 
 0  | 
 0  | 
       if( bCommit==0 ){  | 
 
| 
66668
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
66673
 | 
 0  | 
 0  | 
       }while( bCommit && iFreePg>nFin );  | 
 
| 
 | 
 0  | 
 0  | 
       }while( bCommit && iFreePg>nFin );  | 
 
| 
66678
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
66684
 | 
 0  | 
 0  | 
   if( bCommit==0 ){  | 
 
| 
66687
 | 
 0  | 
 0  | 
     }while( iLastPg==PENDING_BYTE_PAGE(pBt) || PTRMAP_ISPAGE(pBt, iLastPg) );  | 
 
| 
 | 
 0  | 
 0  | 
     }while( iLastPg==PENDING_BYTE_PAGE(pBt) || PTRMAP_ISPAGE(pBt, iLastPg) );  | 
 
| 
66707
 | 
 0  | 
 0  | 
   if( nOrig>PENDING_BYTE_PAGE(pBt) && nFin
 | 
 
| 
 | 
 0  | 
 0  | 
   if( nOrig>PENDING_BYTE_PAGE(pBt) && nFin
 | 
 
| 
66710
 | 
 0  | 
 0  | 
   while( PTRMAP_ISPAGE(pBt, nFin) || nFin==PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( PTRMAP_ISPAGE(pBt, nFin) || nFin==PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
66731
 | 
 0  | 
 0  | 
   if( !pBt->autoVacuum ){  | 
 
| 
66738
 | 
 0  | 
 0  | 
     if( nOrig
 | 
 
| 
66740
 | 
 0  | 
 0  | 
     }else if( nFree>0 ){  | 
 
| 
66742
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
66746
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
66775
 | 
 0  | 
 0  | 
   if( !pBt->incrVacuum ){  | 
 
| 
66782
 | 
 0  | 
 0  | 
     if( PTRMAP_ISPAGE(pBt, nOrig) || nOrig==PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( PTRMAP_ISPAGE(pBt, nOrig) || nOrig==PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
66792
 | 
 0  | 
 0  | 
     if( nFin>nOrig ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
66793
 | 
 0  | 
 0  | 
     if( nFin
 | 
 
| 
66796
 | 
 0  | 
 0  | 
     for(iFree=nOrig; iFree>nFin && rc==SQLITE_OK; iFree--){  | 
 
| 
 | 
 0  | 
 0  | 
     for(iFree=nOrig; iFree>nFin && rc==SQLITE_OK; iFree--){  | 
 
| 
66799
 | 
 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 ){  | 
 
| 
66807
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
66848
 | 
 944  | 
 1507  | 
   if( p->inTrans==TRANS_WRITE ){  | 
 
| 
66852
 | 
 0  | 
 944  | 
     if( pBt->autoVacuum ){  | 
 
| 
66854
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
66859
 | 
 0  | 
 944  | 
     if( pBt->bDoTruncate ){  | 
 
| 
66881
 | 
 1977  | 
 581  | 
   if( p->inTrans>TRANS_NONE && db->nVdbeRead>1 ){  | 
 
| 
 | 
 98  | 
 1879  | 
   if( p->inTrans>TRANS_NONE && db->nVdbeRead>1 ){  | 
 
| 
66892
 | 
 1879  | 
 581  | 
     if( p->inTrans!=TRANS_NONE ){  | 
 
| 
66895
 | 
 1879  | 
 0  | 
       if( 0==pBt->nTransaction ){  | 
 
| 
66937
 | 
 529  | 
 1926  | 
   if( p->inTrans==TRANS_NONE ) return SQLITE_OK;  | 
 
| 
66944
 | 
 948  | 
 978  | 
   if( p->inTrans==TRANS_WRITE ){  | 
 
| 
66950
 | 
 0  | 
 948  | 
     if( rc!=SQLITE_OK && bCleanup==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK && bCleanup==0 ){  | 
 
| 
66971
 | 
 169  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
67009
 | 
 29  | 
 1  | 
   if( pBtree ){  | 
 
| 
67011
 | 
 0  | 
 29  | 
     for(p=pBtree->pBt->pCursor; p; p=p->pNext){  | 
 
| 
67012
 | 
 0  | 
 0  | 
       if( writeOnly && (p->curFlags & BTCF_WriteFlag)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( writeOnly && (p->curFlags & BTCF_WriteFlag)==0 ){  | 
 
| 
67013
 | 
 0  | 
 0  | 
         if( p->eState==CURSOR_VALID || p->eState==CURSOR_SKIPNEXT ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( p->eState==CURSOR_VALID || p->eState==CURSOR_SKIPNEXT ){  | 
 
| 
67015
 | 
 0  | 
 0  | 
           if( rc!=SQLITE_OK ){  | 
 
| 
67051
 | 
 604  | 
 28  | 
   if( tripCode==SQLITE_OK ){  | 
 
| 
67053
 | 
 0  | 
 604  | 
     if( rc ) writeOnly = 0;  | 
 
| 
67057
 | 
 28  | 
 604  | 
   if( tripCode ){  | 
 
| 
67060
 | 
 0  | 
 28  | 
     if( rc2!=SQLITE_OK ) rc = rc2;  | 
 
| 
67064
 | 
 49  | 
 583  | 
   if( p->inTrans==TRANS_WRITE ){  | 
 
| 
67069
 | 
 0  | 
 49  | 
     if( rc2!=SQLITE_OK ){  | 
 
| 
67076
 | 
 44  | 
 5  | 
     if( btreeGetPage(pBt, 1, &pPage1, 0)==SQLITE_OK ){  | 
 
| 
67079
 | 
 5  | 
 39  | 
       if( nPage==0 ) sqlite3PagerPagecount(pBt->pPager, &nPage);  | 
 
| 
67145
 | 
 3  | 
 3  | 
   if( p && p->inTrans==TRANS_WRITE ){  | 
 
| 
 | 
 1  | 
 2  | 
   if( p && p->inTrans==TRANS_WRITE ){  | 
 
| 
67150
 | 
 1  | 
 0  | 
     if( op==SAVEPOINT_ROLLBACK ){  | 
 
| 
67153
 | 
 1  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
67156
 | 
 1  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
67157
 | 
 0  | 
 1  | 
       if( iSavepoint<0 && (pBt->btsFlags & BTS_INITIALLY_EMPTY)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( iSavepoint<0 && (pBt->btsFlags & BTS_INITIALLY_EMPTY)!=0 ){  | 
 
| 
67244
 | 
 3769  | 
 1518  | 
   if( wrFlag ){  | 
 
| 
67246
 | 
 0  | 
 3769  | 
     if( pBt->pTmpSpace==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
67248
 | 
 997  | 
 4290  | 
   if( iTable==1 && btreePagecount(pBt)==0 ){  | 
 
| 
 | 
 167  | 
 830  | 
   if( iTable==1 && btreePagecount(pBt)==0 ){  | 
 
| 
67261
 | 
 3769  | 
 1518  | 
   pCur->curPagerFlags = wrFlag ? 0 : PAGER_GET_READONLY;  | 
 
| 
67264
 | 
 646  | 
 5287  | 
   for(pX=pBt->pCursor; pX; pX=pX->pNext){  | 
 
| 
67265
 | 
 432  | 
 214  | 
     if( pX->pgnoRoot==(Pgno)iTable ){  | 
 
| 
67283
 | 
 0  | 
 5287  | 
   if( iTable<1 ){  | 
 
| 
67323
 | 
 5287  | 
 0  | 
   if( pBtree ){  | 
 
| 
67327
 | 
 5066  | 
 221  | 
     if( pBt->pCursor==pCur ){  | 
 
| 
67332
 | 
 221  | 
 6  | 
         if( pPrev->pNext==pCur ){  | 
 
| 
67337
 | 
 6  | 
 0  | 
       }while( ALWAYS(pPrev) );  | 
 
| 
67375
 | 
 10163  | 
 805  | 
   if( pCur->info.nSize==0 ){  | 
 
| 
67481
 | 
 0  | 
 0  | 
   if( pBt->autoVacuum ){  | 
 
| 
67486
 | 
 0  | 
 0  | 
     while( PTRMAP_ISPAGE(pBt, iGuess) || iGuess==PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( PTRMAP_ISPAGE(pBt, iGuess) || iGuess==PENDING_BYTE_PAGE(pBt) ){  | 
 
| 
67490
 | 
 0  | 
 0  | 
     if( iGuess<=btreePagecount(pBt) ){  | 
 
| 
67492
 | 
 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 ){  | 
 
| 
67501
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
67502
 | 
 0  | 
 0  | 
     rc = btreeGetPage(pBt, ovfl, &pPage, (ppPage==0) ? PAGER_GET_READONLY : 0);  | 
 
| 
67504
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
67510
 | 
 0  | 
 0  | 
   if( ppPage ){  | 
 
| 
67515
 | 
 0  | 
 0  | 
   return (rc==SQLITE_DONE ? SQLITE_OK : rc);  | 
 
| 
67536
 | 
 0  | 
 69  | 
   if( eOp ){  | 
 
| 
67539
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
67606
 | 
 0  | 
 21  | 
   if( (uptr)(aPayload - pPage->aData) > (pBt->usableSize - pCur->info.nLocal) ){  | 
 
| 
67616
 | 
 21  | 
 0  | 
   if( offsetinfo.nLocal ){  | 
 
| 
67618
 | 
 6  | 
 15  | 
     if( a+offset>pCur->info.nLocal ){  | 
 
| 
67630
 | 
 21  | 
 0  | 
   if( rc==SQLITE_OK && amt>0 ){  | 
 
| 
 | 
 6  | 
 15  | 
   if( rc==SQLITE_OK && amt>0 ){  | 
 
| 
67643
 | 
 6  | 
 0  | 
     if( (pCur->curFlags & BTCF_ValidOvfl)==0 ){  | 
 
| 
67645
 | 
 0  | 
 6  | 
       if( pCur->aOverflow==0  | 
 
| 
67646
 | 
 0  | 
 0  | 
        || nOvfl*(int)sizeof(Pgno) > sqlite3MallocSize(pCur->aOverflow)  | 
 
| 
67651
 | 
 0  | 
 6  | 
         if( aNew==0 ){  | 
 
| 
67664
 | 
 0  | 
 0  | 
       if( pCur->aOverflow[offset/ovflSize] ){  | 
 
| 
67672
 | 
 48  | 
 0  | 
     while( nextPage ){  | 
 
| 
67679
 | 
 0  | 
 48  | 
       if( offset>=ovflSize ){  | 
 
| 
67688
 | 
 0  | 
 0  | 
         if( pCur->aOverflow[iIdx+1] ){  | 
 
| 
67699
 | 
 42  | 
 6  | 
         if( a + offset > ovflSize ){  | 
 
| 
67735
 | 
 48  | 
 0  | 
           rc = sqlite3PagerGet(pBt->pPager, nextPage, &pDbPage,  | 
 
| 
67738
 | 
 48  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
67747
 | 
 6  | 
 42  | 
         if( amt==0 ) return rc;  | 
 
| 
67750
 | 
 0  | 
 42  | 
       if( rc ) break;  | 
 
| 
67755
 | 
 15  | 
 0  | 
   if( rc==SQLITE_OK && amt>0 ){  | 
 
| 
 | 
 0  | 
 15  | 
   if( rc==SQLITE_OK && amt>0 ){  | 
 
| 
67800
 | 
 0  | 
 0  | 
   if ( pCur->eState==CURSOR_INVALID ){  | 
 
| 
67805
 | 
 0  | 
 0  | 
   return rc ? rc : accessPayload(pCur, offset, amt, pBuf, 0);  | 
 
| 
67808
 | 
 15  | 
 0  | 
   if( pCur->eState==CURSOR_VALID ){  | 
 
| 
67850
 | 
 0  | 
 7600  | 
   if( amt>(int)(pCur->pPage->aDataEnd - pCur->info.pPayload) ){  | 
 
| 
67896
 | 
 0  | 
 1452  | 
   if( pCur->iPage>=(BTCURSOR_MAX_DEPTH-1) ){  | 
 
| 
67990
 | 
 508  | 
 5210  | 
   if( pCur->iPage>=0 ){  | 
 
| 
67991
 | 
 0  | 
 508  | 
     if( pCur->iPage ){  | 
 
| 
67993
 | 
 0  | 
 0  | 
       while( --pCur->iPage ){  | 
 
| 
67999
 | 
 167  | 
 5043  | 
   }else if( pCur->pgnoRoot==0 ){  | 
 
| 
68004
 | 
 0  | 
 5043  | 
     if( pCur->eState>=CURSOR_REQUIRESEEK ){  | 
 
| 
68005
 | 
 0  | 
 0  | 
       if( pCur->eState==CURSOR_FAULT ){  | 
 
| 
68013
 | 
 0  | 
 5043  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
68034
 | 
 5551  | 
 0  | 
   if( pRoot->isInit==0 || (pCur->pKeyInfo==0)!=pRoot->intKey ){  | 
 
| 
 | 
 0  | 
 5551  | 
   if( pRoot->isInit==0 || (pCur->pKeyInfo==0)!=pRoot->intKey ){  | 
 
| 
68044
 | 
 4801  | 
 750  | 
   if( pRoot->nCell>0 ){  | 
 
| 
68046
 | 
 0  | 
 750  | 
   }else if( !pRoot->leaf ){  | 
 
| 
68048
 | 
 0  | 
 0  | 
     if( pRoot->pgno!=1 ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
68073
 | 
 831  | 
 0  | 
   while( rc==SQLITE_OK && !(pPage = pCur->pPage)->leaf ){  | 
 
| 
 | 
 12  | 
 819  | 
   while( rc==SQLITE_OK && !(pPage = pCur->pPage)->leaf ){  | 
 
| 
68098
 | 
 1436  | 
 2775  | 
   while( !(pPage = pCur->pPage)->leaf ){  | 
 
| 
68102
 | 
 0  | 
 1436  | 
     if( rc ) return rc;  | 
 
| 
68120
 | 
 807  | 
 239  | 
   if( rc==SQLITE_OK ){  | 
 
| 
68124
 | 
 239  | 
 0  | 
   }else if( rc==SQLITE_EMPTY ){  | 
 
| 
68142
 | 
 0  | 
 0  | 
   if( ALWAYS(pCur->eState==CURSOR_VALID) ){  | 
 
| 
68160
 | 
 2  | 
 3084  | 
   if( CURSOR_VALID==pCur->eState && (pCur->curFlags & BTCF_AtLast)!=0 ){  | 
 
| 
 | 
 1  | 
 1  | 
   if( CURSOR_VALID==pCur->eState && (pCur->curFlags & BTCF_AtLast)!=0 ){  | 
 
| 
68175
 | 
 2775  | 
 310  | 
   if( rc==SQLITE_OK ){  | 
 
| 
68179
 | 
 2775  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
68184
 | 
 310  | 
 0  | 
   }else if( rc==SQLITE_EMPTY ){  | 
 
| 
68240
 | 
 4141  | 
 184  | 
   if( pIdxKey==0  | 
 
| 
68241
 | 
 2949  | 
 1192  | 
    && pCur->eState==CURSOR_VALID && (pCur->curFlags & BTCF_ValidNKey)!=0  | 
 
| 
 | 
 2943  | 
 6  | 
    && pCur->eState==CURSOR_VALID && (pCur->curFlags & BTCF_ValidNKey)!=0  | 
 
| 
68243
 | 
 0  | 
 2943  | 
     if( pCur->info.nKey==intKey ){  | 
 
| 
68247
 | 
 2770  | 
 173  | 
     if( pCur->info.nKey
 | 
 
| 
68248
 | 
 2770  | 
 0  | 
       if( (pCur->curFlags & BTCF_AtLast)!=0 ){  | 
 
| 
68256
 | 
 0  | 
 0  | 
       if( pCur->info.nKey+1==intKey && !pCur->skipNext ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pCur->info.nKey+1==intKey && !pCur->skipNext ){  | 
 
| 
68259
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
68261
 | 
 0  | 
 0  | 
           if( pCur->info.nKey==intKey ){  | 
 
| 
68264
 | 
 0  | 
 0  | 
         }else if( rc==SQLITE_DONE ){  | 
 
| 
68273
 | 
 184  | 
 1371  | 
   if( pIdxKey ){  | 
 
| 
68285
 | 
 352  | 
 1203  | 
   if( rc ){  | 
 
| 
68286
 | 
 352  | 
 0  | 
     if( rc==SQLITE_EMPTY ){  | 
 
| 
68318
 | 
 1052  | 
 151  | 
     if( xRecordCompare==0 ){  | 
 
| 
68322
 | 
 3018  | 
 0  | 
         if( pPage->intKeyLeaf ){  | 
 
| 
68323
 | 
 39  | 
 3018  | 
           while( 0x80 <= *(pCell++) ){  | 
 
| 
68324
 | 
 0  | 
 39  | 
             if( pCell>=pPage->aDataEnd ){  | 
 
| 
68330
 | 
 2053  | 
 965  | 
         if( nCellKey
 | 
 
| 
68332
 | 
 154  | 
 1899  | 
           if( lwr>upr ){ c = -1; break; }  | 
 
| 
68333
 | 
 68  | 
 897  | 
         }else if( nCellKey>intKey ){  | 
 
| 
68335
 | 
 1  | 
 67  | 
           if( lwr>upr ){ c = +1; break; }  | 
 
| 
68339
 | 
 0  | 
 897  | 
           if( !pPage->leaf ){  | 
 
| 
68367
 | 
 332  | 
 0  | 
         if( nCell<=pPage->max1bytePayload ){  | 
 
| 
68373
 | 
 0  | 
 0  | 
         }else if( !(pCell[1] & 0x80)   | 
 
| 
68374
 | 
 0  | 
 0  | 
           && (nCell = ((nCell&0x7f)<<7) + pCell[1])<=pPage->maxLocal  | 
 
| 
68398
 | 
 0  | 
 0  | 
           if( nCell<2 ){  | 
 
| 
68403
 | 
 0  | 
 0  | 
           if( pCellKey==0 ){  | 
 
| 
68410
 | 
 0  | 
 0  | 
           if( rc ){  | 
 
| 
68421
 | 
 304  | 
 28  | 
         if( c<0 ){  | 
 
| 
68423
 | 
 25  | 
 3  | 
         }else if( c>0 ){  | 
 
| 
68430
 | 
 0  | 
 3  | 
           if( pIdxKey->errCode ) rc = SQLITE_CORRUPT_BKPT;  | 
 
| 
68433
 | 
 148  | 
 181  | 
         if( lwr>upr ) break;  | 
 
| 
68440
 | 
 303  | 
 0  | 
     if( pPage->leaf ){  | 
 
| 
68448
 | 
 0  | 
 0  | 
     if( lwr>=pPage->nCell ){  | 
 
| 
68455
 | 
 0  | 
 0  | 
     if( rc ) break;  | 
 
| 
68494
 | 
 0  | 
 0  | 
   if( NEVER(pCur->eState!=CURSOR_VALID) ) return -1;  | 
 
| 
68495
 | 
 0  | 
 0  | 
   if( NEVER(pCur->pPage->leaf==0) ) return -1;  | 
 
| 
68498
 | 
 0  | 
 0  | 
   for(i=0; iiPage; i++){  | 
 
| 
68531
 | 
 16  | 
 607  | 
   if( pCur->eState!=CURSOR_VALID ){  | 
 
| 
68533
 | 
 16  | 
 0  | 
     rc = restoreCursorPosition(pCur);  | 
 
| 
68534
 | 
 0  | 
 16  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
68537
 | 
 8  | 
 8  | 
     if( CURSOR_INVALID==pCur->eState ){  | 
 
| 
68540
 | 
 8  | 
 0  | 
     if( pCur->skipNext ){  | 
 
| 
68543
 | 
 1  | 
 7  | 
       if( pCur->skipNext>0 ){  | 
 
| 
68553
 | 
 0  | 
 614  | 
   if( !pPage->isInit ){  | 
 
| 
68571
 | 
 613  | 
 1  | 
   if( idx>=pPage->nCell ){  | 
 
| 
68572
 | 
 4  | 
 609  | 
     if( !pPage->leaf ){  | 
 
| 
68574
 | 
 0  | 
 4  | 
       if( rc ) return rc;  | 
 
| 
68578
 | 
 597  | 
 16  | 
       if( pCur->iPage==0 ){  | 
 
| 
68584
 | 
 4  | 
 12  | 
     }while( pCur->ix>=pPage->nCell );  | 
 
| 
68585
 | 
 12  | 
 0  | 
     if( pPage->intKey ){  | 
 
| 
68591
 | 
 1  | 
 0  | 
   if( pPage->leaf ){  | 
 
| 
68605
 | 
 16  | 
 6265  | 
   if( pCur->eState!=CURSOR_VALID ) return btreeNext(pCur);  | 
 
| 
68607
 | 
 607  | 
 5658  | 
   if( (++pCur->ix)>=pPage->nCell ){  | 
 
| 
68611
 | 
 5650  | 
 8  | 
   if( pPage->leaf ){  | 
 
| 
68646
 | 
 0  | 
 58  | 
   if( pCur->eState!=CURSOR_VALID ){  | 
 
| 
68647
 | 
 0  | 
 0  | 
     rc = restoreCursorPosition(pCur);  | 
 
| 
68648
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
68651
 | 
 0  | 
 0  | 
     if( CURSOR_INVALID==pCur->eState ){  | 
 
| 
68654
 | 
 0  | 
 0  | 
     if( pCur->skipNext ){  | 
 
| 
68657
 | 
 0  | 
 0  | 
       if( pCur->skipNext<0 ){  | 
 
| 
68667
 | 
 0  | 
 58  | 
   if( !pPage->leaf ){  | 
 
| 
68670
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
68673
 | 
 58  | 
 0  | 
     while( pCur->ix==0 ){  | 
 
| 
68674
 | 
 58  | 
 0  | 
       if( pCur->iPage==0 ){  | 
 
| 
68685
 | 
 0  | 
 0  | 
     if( pPage->intKey && !pPage->leaf ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pPage->intKey && !pPage->leaf ){  | 
 
| 
68700
 | 
 231  | 
 0  | 
   if( pCur->eState!=CURSOR_VALID  | 
 
| 
68701
 | 
 173  | 
 58  | 
    || pCur->ix==0  | 
 
| 
68702
 | 
 0  | 
 173  | 
    || pCur->pPage->leaf==0  | 
 
| 
68755
 | 
 0  | 
 302  | 
   if( n>=mxPage ){  | 
 
| 
68758
 | 
 2  | 
 300  | 
   if( n>0 ){  | 
 
| 
68769
 | 
 0  | 
 2  | 
     if( eMode==BTALLOC_EXACT ){  | 
 
| 
68770
 | 
 0  | 
 0  | 
       if( nearby<=mxPage ){  | 
 
| 
68775
 | 
 0  | 
 0  | 
         if( rc ) return rc;  | 
 
| 
68776
 | 
 0  | 
 0  | 
         if( eType==PTRMAP_FREEPAGE ){  | 
 
| 
68780
 | 
 0  | 
 2  | 
     }else if( eMode==BTALLOC_LE ){  | 
 
| 
68789
 | 
 0  | 
 2  | 
     if( rc ) return rc;  | 
 
| 
68799
 | 
 0  | 
 2  | 
       if( pPrevTrunk ){  | 
 
| 
68811
 | 
 2  | 
 0  | 
       if( iTrunk>mxPage || nSearch++ > n ){  | 
 
| 
 | 
 0  | 
 2  | 
       if( iTrunk>mxPage || nSearch++ > n ){  | 
 
| 
68816
 | 
 0  | 
 2  | 
       if( rc ){  | 
 
| 
68825
 | 
 1  | 
 1  | 
       if( k==0 && !searchList ){  | 
 
| 
 | 
 1  | 
 0  | 
       if( k==0 && !searchList ){  | 
 
| 
68831
 | 
 0  | 
 1  | 
         if( rc ){  | 
 
| 
68839
 | 
 0  | 
 1  | 
       }else if( k>(u32)(pBt->usableSize/4 - 2) ){  | 
 
| 
68844
 | 
 0  | 
 1  | 
       }else if( searchList   | 
 
| 
68845
 | 
 0  | 
 0  | 
             && (nearby==iTrunk || (iTrunk
 | 
 
| 
 | 
 0  | 
 0  | 
             && (nearby==iTrunk || (iTrunk
 | 
 
| 
 | 
 0  | 
 0  | 
             && (nearby==iTrunk || (iTrunk
 | 
 
| 
68854
 | 
 0  | 
 0  | 
         if( rc ){  | 
 
| 
68857
 | 
 0  | 
 0  | 
         if( k==0 ){  | 
 
| 
68858
 | 
 0  | 
 0  | 
           if( !pPrevTrunk ){  | 
 
| 
68862
 | 
 0  | 
 0  | 
             if( rc!=SQLITE_OK ){  | 
 
| 
68874
 | 
 0  | 
 0  | 
           if( iNewTrunk>mxPage ){   | 
 
| 
68880
 | 
 0  | 
 0  | 
           if( rc!=SQLITE_OK ){  | 
 
| 
68884
 | 
 0  | 
 0  | 
           if( rc!=SQLITE_OK ){  | 
 
| 
68892
 | 
 0  | 
 0  | 
           if( !pPrevTrunk ){  | 
 
| 
68897
 | 
 0  | 
 0  | 
             if( rc ){  | 
 
| 
68906
 | 
 1  | 
 0  | 
       }else if( k>0 ){  | 
 
| 
68911
 | 
 1  | 
 0  | 
         if( nearby>0 ){  | 
 
| 
68914
 | 
 0  | 
 1  | 
           if( eMode==BTALLOC_LE ){  | 
 
| 
68915
 | 
 0  | 
 0  | 
             for(i=0; i
 | 
 
| 
68917
 | 
 0  | 
 0  | 
               if( iPage<=nearby ){  | 
 
| 
68925
 | 
 0  | 
 1  | 
             for(i=1; i
 | 
 
| 
68927
 | 
 0  | 
 0  | 
               if( d2
 | 
 
| 
68939
 | 
 0  | 
 1  | 
         if( iPage>mxPage ){  | 
 
| 
68944
 | 
 0  | 
 1  | 
         if( !searchList   | 
 
| 
68945
 | 
 0  | 
 0  | 
          || (iPage==nearby || (iPage
 | 
 
| 
 | 
 0  | 
 0  | 
          || (iPage==nearby || (iPage
 | 
 
| 
 | 
 0  | 
 0  | 
          || (iPage==nearby || (iPage
 | 
 
| 
68953
 | 
 0  | 
 1  | 
           if( rc ) goto end_allocate_page;  | 
 
| 
68954
 | 
 0  | 
 1  | 
           if( closest
 | 
 
| 
68960
 | 
 1  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
68962
 | 
 0  | 
 1  | 
             if( rc!=SQLITE_OK ){  | 
 
| 
68972
 | 
 0  | 
 2  | 
     }while( searchList );  | 
 
| 
68995
 | 
 0  | 
 300  | 
     if( rc ) return rc;  | 
 
| 
68997
 | 
 0  | 
 300  | 
     if( pBt->nPage==PENDING_BYTE_PAGE(pBt) ) pBt->nPage++;  | 
 
| 
69000
 | 
 0  | 
 300  | 
     if( pBt->autoVacuum && PTRMAP_ISPAGE(pBt, pBt->nPage) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pBt->autoVacuum && PTRMAP_ISPAGE(pBt, pBt->nPage) ){  | 
 
| 
69009
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
69013
 | 
 0  | 
 0  | 
       if( rc ) return rc;  | 
 
| 
69015
 | 
 0  | 
 0  | 
       if( pBt->nPage==PENDING_BYTE_PAGE(pBt) ){ pBt->nPage++; }  | 
 
| 
69023
 | 
 0  | 
 300  | 
     if( rc ) return rc;  | 
 
| 
69025
 | 
 0  | 
 300  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
69066
 | 
 0  | 
 5  | 
   if( iPage<2 ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
69067
 | 
 5  | 
 0  | 
   if( pMemPage ){  | 
 
| 
69076
 | 
 0  | 
 5  | 
   if( rc ) goto freepage_out;  | 
 
| 
69080
 | 
 0  | 
 5  | 
   if( pBt->btsFlags & BTS_SECURE_DELETE ){  | 
 
| 
69084
 | 
 0  | 
 0  | 
     if( (!pPage && ((rc = btreeGetPage(pBt, iPage, &pPage, 0))!=0) )  | 
 
| 
 | 
 0  | 
 0  | 
     if( (!pPage && ((rc = btreeGetPage(pBt, iPage, &pPage, 0))!=0) )  | 
 
| 
69085
 | 
 0  | 
 0  | 
      ||            ((rc = sqlite3PagerWrite(pPage->pDbPage))!=0)  | 
 
| 
69095
 | 
 0  | 
 5  | 
   if( ISAUTOVACUUM ){  | 
 
| 
69097
 | 
 0  | 
 0  | 
     if( rc ) goto freepage_out;  | 
 
| 
69107
 | 
 1  | 
 4  | 
   if( nFree!=0 ){  | 
 
| 
69112
 | 
 0  | 
 1  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
69118
 | 
 0  | 
 1  | 
     if( nLeaf > (u32)pBt->usableSize/4 - 2 ){  | 
 
| 
69122
 | 
 1  | 
 0  | 
     if( nLeaf < (u32)pBt->usableSize/4 - 8 ){  | 
 
| 
69143
 | 
 1  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
69146
 | 
 1  | 
 0  | 
         if( pPage && (pBt->btsFlags & BTS_SECURE_DELETE)==0 ){  | 
 
| 
 | 
 1  | 
 0  | 
         if( pPage && (pBt->btsFlags & BTS_SECURE_DELETE)==0 ){  | 
 
| 
69162
 | 
 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)) ){  | 
 
| 
69166
 | 
 0  | 
 4  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
69175
 | 
 5  | 
 0  | 
   if( pPage ){  | 
 
| 
69183
 | 
 5  | 
 0  | 
   if( (*pRC)==SQLITE_OK ){  | 
 
| 
69205
 | 
 474  | 
 0  | 
   if( pInfo->nLocal==pInfo->nPayload ){  | 
 
| 
69210
 | 
 0  | 
 0  | 
   if( pCell + pInfo->nSize > pPage->aDataEnd ){  | 
 
| 
69222
 | 
 0  | 
 0  | 
   while( nOvfl-- ){  | 
 
| 
69225
 | 
 0  | 
 0  | 
     if( ovflPgno<2 || ovflPgno>btreePagecount(pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( ovflPgno<2 || ovflPgno>btreePagecount(pBt) ){  | 
 
| 
69231
 | 
 0  | 
 0  | 
     if( nOvfl ){  | 
 
| 
69233
 | 
 0  | 
 0  | 
       if( rc ) return rc;  | 
 
| 
69236
 | 
 0  | 
 0  | 
     if( ( pOvfl || ((pOvfl = btreePageLookup(pBt, ovflPgno))!=0) )  | 
 
| 
 | 
 0  | 
 0  | 
     if( ( pOvfl || ((pOvfl = btreePageLookup(pBt, ovflPgno))!=0) )  | 
 
| 
69237
 | 
 0  | 
 0  | 
      && sqlite3PagerPageRefcount(pOvfl->pDbPage)!=1  | 
 
| 
69254
 | 
 0  | 
 0  | 
     if( pOvfl ){  | 
 
| 
69257
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
69301
 | 
 3636  | 
 63  | 
   if( pPage->intKey ){  | 
 
| 
69306
 | 
 3602  | 
 34  | 
     nHeader += putVarint32(&pCell[nHeader], nPayload);  | 
 
| 
69312
 | 
 63  | 
 0  | 
     nHeader += putVarint32(&pCell[nHeader], nPayload);  | 
 
| 
69317
 | 
 3693  | 
 6  | 
   if( nPayload<=pPage->maxLocal ){  | 
 
| 
69323
 | 
 0  | 
 3693  | 
     if( n<4 ) n = 4;  | 
 
| 
69339
 | 
 6  | 
 0  | 
   if( n > pPage->maxLocal ) n = mn;  | 
 
| 
69373
 | 
 48  | 
 6  | 
     if( n>spaceLeft ) n = spaceLeft;  | 
 
| 
69384
 | 
 54  | 
 0  | 
     if( nSrc>=n ){  | 
 
| 
69386
 | 
 0  | 
 0  | 
     }else if( nSrc>0 ){  | 
 
| 
69393
 | 
 6  | 
 48  | 
     if( nPayload<=0 ) break;  | 
 
| 
69398
 | 
 48  | 
 0  | 
     if( spaceLeft==0 ){  | 
 
| 
69402
 | 
 0  | 
 48  | 
       if( pBt->autoVacuum ){  | 
 
| 
69406
 | 
 0  | 
 0  | 
           PTRMAP_ISPAGE(pBt, pgnoOvfl) || pgnoOvfl==PENDING_BYTE_PAGE(pBt)   | 
 
| 
69407
 | 
 0  | 
 0  | 
         );  | 
 
| 
69422
 | 
 0  | 
 48  | 
       if( pBt->autoVacuum && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pBt->autoVacuum && rc==SQLITE_OK ){  | 
 
| 
69423
 | 
 0  | 
 0  | 
         u8 eType = (pgnoPtrmap?PTRMAP_OVERFLOW2:PTRMAP_OVERFLOW1);  | 
 
| 
69425
 | 
 0  | 
 0  | 
         if( rc ){  | 
 
| 
69430
 | 
 0  | 
 48  | 
       if( rc ){  | 
 
| 
69472
 | 
 0  | 
 236  | 
   if( *pRC ) return;  | 
 
| 
69483
 | 
 0  | 
 236  | 
   if( pc+sz > pPage->pBt->usableSize ){  | 
 
| 
69488
 | 
 0  | 
 236  | 
   if( rc ){  | 
 
| 
69493
 | 
 139  | 
 97  | 
   if( pPage->nCell==0 ){  | 
 
| 
69547
 | 
 3497  | 
 0  | 
   if( pPage->nOverflow || sz+2>pPage->nFree ){  | 
 
| 
 | 
 6  | 
 3491  | 
   if( pPage->nOverflow || sz+2>pPage->nFree ){  | 
 
| 
69548
 | 
 0  | 
 6  | 
     if( pTemp ){  | 
 
| 
69552
 | 
 0  | 
 6  | 
     if( iChild ){  | 
 
| 
69572
 | 
 0  | 
 3491  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
69580
 | 
 0  | 
 3491  | 
     if( rc ){ *pRC = rc; return; }  | 
 
| 
69588
 | 
 6  | 
 3485  | 
     if( iChild ){  | 
 
| 
69596
 | 
 6  | 
 3485  | 
     if( (++data[pPage->hdrOffset+4])==0 ) data[pPage->hdrOffset+3]++;  | 
 
| 
69599
 | 
 0  | 
 3491  | 
     if( pPage->pBt->autoVacuum ){  | 
 
| 
69627
 | 
 0  | 
 0  | 
   while( N>0 ){  | 
 
| 
69629
 | 
 0  | 
 0  | 
     if( p->szCell[idx]==0 ){  | 
 
| 
69651
 | 
 0  | 
 0  | 
   if( p->szCell[N] ) return p->szCell[N];  | 
 
| 
69687
 | 
 6  | 
 6  | 
   for(i=0; i
 | 
 
| 
69689
 | 
 3  | 
 3  | 
     if( SQLITE_WITHIN(pCell,aData,pEnd) ){  | 
 
| 
 | 
 0  | 
 3  | 
     if( SQLITE_WITHIN(pCell,aData,pEnd) ){  | 
 
| 
69695
 | 
 0  | 
 6  | 
     if( pData < pCellptr ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
69751
 | 
 0  | 
 0  | 
   for(i=iFirst; i
 | 
 
| 
69755
 | 
 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 ){  | 
 
| 
69756
 | 
 0  | 
 0  | 
       if( (pData - pBegin)
 | 
 
| 
69798
 | 
 0  | 
 0  | 
   for(i=iFirst; i
 | 
 
| 
69800
 | 
 0  | 
 0  | 
     if( SQLITE_WITHIN(pCell, pStart, pEnd) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( SQLITE_WITHIN(pCell, pStart, pEnd) ){  | 
 
| 
69806
 | 
 0  | 
 0  | 
       if( pFree!=(pCell + sz) ){  | 
 
| 
69807
 | 
 0  | 
 0  | 
         if( pFree ){  | 
 
| 
69813
 | 
 0  | 
 0  | 
         if( pFree+sz>pEnd ) return 0;  | 
 
| 
69821
 | 
 0  | 
 0  | 
   if( pFree ){  | 
 
| 
69863
 | 
 0  | 
 0  | 
   if( iOld
 | 
 
| 
69868
 | 
 0  | 
 0  | 
   if( iNewEnd < iOldEnd ){  | 
 
| 
69873
 | 
 0  | 
 0  | 
   if( pData
 | 
 
| 
69876
 | 
 0  | 
 0  | 
   if( iNew
 | 
 
| 
69881
 | 
 0  | 
 0  | 
     if( pageInsertArray(  | 
 
| 
69889
 | 
 0  | 
 0  | 
   for(i=0; inOverflow; i++){  | 
 
| 
69891
 | 
 0  | 
 0  | 
     if( iCell>=0 && iCell
 | 
 
| 
 | 
 0  | 
 0  | 
     if( iCell>=0 && iCell
 | 
 
| 
69895
 | 
 0  | 
 0  | 
       if( pageInsertArray(  | 
 
| 
69904
 | 
 0  | 
 0  | 
   if( pageInsertArray(  | 
 
| 
69985
 | 
 0  | 
 6  | 
   if( NEVER(pPage->nCell==0) ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
69993
 | 
 6  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
70004
 | 
 0  | 
 6  | 
     if( NEVER(rc) ) return rc;  | 
 
| 
70016
 | 
 0  | 
 6  | 
     if( ISAUTOVACUUM ){  | 
 
| 
70018
 | 
 0  | 
 0  | 
       if( szCell>pNew->minLocal ){  | 
 
| 
70038
 | 
 0  | 
 6  | 
     while( (*(pCell++)&0x80) && pCell
 | 
 
| 
 | 
 0  | 
 0  | 
     while( (*(pCell++)&0x80) && pCell
 | 
 
| 
70040
 | 
 6  | 
 6  | 
     while( ((*(pOut++) = *(pCell++))&0x80) && pCell
 | 
 
| 
 | 
 6  | 
 0  | 
     while( ((*(pOut++) = *(pCell++))&0x80) && pCell
 | 
 
| 
70043
 | 
 6  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
70119
 | 
 2  | 
 0  | 
   if( (*pRC)==SQLITE_OK ){  | 
 
| 
70124
 | 
 0  | 
 2  | 
     int const iToHdr = ((pTo->pgno==1) ? 100 : 0);  | 
 
| 
70145
 | 
 0  | 
 2  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
70153
 | 
 0  | 
 2  | 
     if( ISAUTOVACUUM ){  | 
 
| 
70254
 | 
 0  | 
 0  | 
   if( !aOvflSpace ){  | 
 
| 
70270
 | 
 0  | 
 0  | 
   if( i<2 ){  | 
 
| 
70274
 | 
 0  | 
 0  | 
     if( iParentIdx==0 ){                   | 
 
| 
70276
 | 
 0  | 
 0  | 
     }else if( iParentIdx==i ){  | 
 
| 
70284
 | 
 0  | 
 0  | 
   if( (i+nxDiv-pParent->nOverflow)==pParent->nCell ){  | 
 
| 
70292
 | 
 0  | 
 0  | 
     if( rc ){  | 
 
| 
70297
 | 
 0  | 
 0  | 
     if( (i--)==0 ) break;  | 
 
| 
70299
 | 
 0  | 
 0  | 
     if( pParent->nOverflow && i+nxDiv==pParent->aiOvfl[0] ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pParent->nOverflow && i+nxDiv==pParent->aiOvfl[0] ){  | 
 
| 
70321
 | 
 0  | 
 0  | 
       if( pBt->btsFlags & BTS_FAST_SECURE ){  | 
 
| 
70325
 | 
 0  | 
 0  | 
         if( (iOff+szNew[i])>(int)pBt->usableSize ){  | 
 
| 
70352
 | 
 0  | 
 0  | 
   if( b.apCell==0 ){  | 
 
| 
70379
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70390
 | 
 0  | 
 0  | 
     if( pOld->aData[0]!=apOld[0]->aData[0] ){  | 
 
| 
70413
 | 
 0  | 
 0  | 
     if( pOld->nOverflow>0 ){  | 
 
| 
70415
 | 
 0  | 
 0  | 
       for(j=0; j
 | 
 
| 
70420
 | 
 0  | 
 0  | 
       for(k=0; knOverflow; k++){  | 
 
| 
70427
 | 
 0  | 
 0  | 
     while( piCell
 | 
 
| 
70435
 | 
 0  | 
 0  | 
     if( i
 | 
 
| 
 | 
 0  | 
 0  | 
     if( i
 | 
 
| 
70448
 | 
 0  | 
 0  | 
       if( !pOld->leaf ){  | 
 
| 
70456
 | 
 0  | 
 0  | 
         while( b.szCell[b.nCell]<4 ){  | 
 
| 
70486
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70489
 | 
 0  | 
 0  | 
     for(j=0; jnOverflow; j++){  | 
 
| 
70495
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70497
 | 
 0  | 
 0  | 
     while( szNew[i]>usableSpace ){  | 
 
| 
70498
 | 
 0  | 
 0  | 
       if( i+1>=k ){  | 
 
| 
70500
 | 
 0  | 
 0  | 
         if( k>NB+2 ){ rc = SQLITE_CORRUPT_BKPT; goto balance_cleanup; }  | 
 
| 
70506
 | 
 0  | 
 0  | 
       if( !leafData ){  | 
 
| 
70507
 | 
 0  | 
 0  | 
         if( cntNew[i]
 | 
 
| 
70516
 | 
 0  | 
 0  | 
     while( cntNew[i]
 | 
 
| 
70518
 | 
 0  | 
 0  | 
       if( szNew[i]+sz>usableSpace ) break;  | 
 
| 
70521
 | 
 0  | 
 0  | 
       if( !leafData ){  | 
 
| 
70522
 | 
 0  | 
 0  | 
         if( cntNew[i]
 | 
 
| 
70530
 | 
 0  | 
 0  | 
     if( cntNew[i]>=b.nCell ){  | 
 
| 
70532
 | 
 0  | 
 0  | 
     }else if( cntNew[i] <= (i>0 ? cntNew[i-1] : 0) ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( cntNew[i] <= (i>0 ? cntNew[i-1] : 0) ){  | 
 
| 
70549
 | 
 0  | 
 0  | 
   for(i=k-1; i>0; i--){  | 
 
| 
70562
 | 
 0  | 
 0  | 
       if( szRight!=0  | 
 
| 
70563
 | 
 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)))){  | 
 
| 
70571
 | 
 0  | 
 0  | 
     }while( r>=0 );  | 
 
| 
70574
 | 
 0  | 
 0  | 
     if( cntNew[i-1] <= (i>1 ? cntNew[i-2] : 0) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( cntNew[i-1] <= (i>1 ? cntNew[i-2] : 0) ){  | 
 
| 
70598
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70600
 | 
 0  | 
 0  | 
     if( i
 | 
 
| 
70605
 | 
 0  | 
 0  | 
       if( rc ) goto balance_cleanup;  | 
 
| 
70608
 | 
 0  | 
 0  | 
       rc = allocateBtreePage(pBt, &pNew, &pgno, (bBulk ? 1 : pgno), 0);  | 
 
| 
70609
 | 
 0  | 
 0  | 
       if( rc ) goto balance_cleanup;  | 
 
| 
70616
 | 
 0  | 
 0  | 
       if( ISAUTOVACUUM ){  | 
 
| 
70618
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
70637
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70640
 | 
 0  | 
 0  | 
     for(j=0; j
 | 
 
| 
70641
 | 
 0  | 
 0  | 
       if( aPgno[j]==aPgno[i] ){  | 
 
| 
70654
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70656
 | 
 0  | 
 0  | 
     for(j=1; j
 | 
 
| 
70657
 | 
 0  | 
 0  | 
       if( aPgOrder[j]
 | 
 
| 
70661
 | 
 0  | 
 0  | 
     if( iBest!=i ){  | 
 
| 
70662
 | 
 0  | 
 0  | 
       if( iBest>i ){  | 
 
| 
70689
 | 
 0  | 
 0  | 
   if( (pageFlags & PTF_LEAF)==0 && nOld!=nNew ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (pageFlags & PTF_LEAF)==0 && nOld!=nNew ){  | 
 
| 
70690
 | 
 0  | 
 0  | 
     MemPage *pOld = (nNew>nOld ? apNew : apOld)[nOld-1];  | 
 
| 
70710
 | 
 0  | 
 0  | 
   if( ISAUTOVACUUM ){  | 
 
| 
70718
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
70720
 | 
 0  | 
 0  | 
       if( i==cntOldNext ){  | 
 
| 
70721
 | 
 0  | 
 0  | 
         MemPage *pOld = (++iOld)
 | 
 
| 
70725
 | 
 0  | 
 0  | 
       if( i==cntNew[iNew] ){  | 
 
| 
70727
 | 
 0  | 
 0  | 
         if( !leafData ) continue;  | 
 
| 
70736
 | 
 0  | 
 0  | 
       if( iOld>=nNew  | 
 
| 
70737
 | 
 0  | 
 0  | 
        || pNew->pgno!=aPgno[iOld]  | 
 
| 
70738
 | 
 0  | 
 0  | 
        || !SQLITE_WITHIN(pCell,aOld,&aOld[usableSize])  | 
 
| 
 | 
 0  | 
 0  | 
        || !SQLITE_WITHIN(pCell,aOld,&aOld[usableSize])  | 
 
| 
70740
 | 
 0  | 
 0  | 
         if( !leafCorrection ){  | 
 
| 
70743
 | 
 0  | 
 0  | 
         if( cachedCellSize(&b,i)>pNew->minLocal ){  | 
 
| 
70746
 | 
 0  | 
 0  | 
         if( rc ) goto balance_cleanup;  | 
 
| 
70752
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70764
 | 
 0  | 
 0  | 
     if( !pNew->leaf ){  | 
 
| 
70766
 | 
 0  | 
 0  | 
     }else if( leafData ){  | 
 
| 
70791
 | 
 0  | 
 0  | 
       if( b.szCell[j]==4 ){  | 
 
| 
70800
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto balance_cleanup;  | 
 
| 
70826
 | 
 0  | 
 0  | 
   for(i=1-nNew; i
 | 
 
| 
70829
 | 
 0  | 
 0  | 
     if( abDone[iPg] ) continue;         /* Skip pages already processed */  | 
 
| 
70830
 | 
 0  | 
 0  | 
     if( i>=0                            /* On the upwards pass, or... */  | 
 
| 
70831
 | 
 0  | 
 0  | 
      || cntOld[iPg-1]>=cntNew[iPg-1]    /* Condition (1) is true */  | 
 
| 
70845
 | 
 0  | 
 0  | 
       if( iPg==0 ){  | 
 
| 
70849
 | 
 0  | 
 0  | 
         iOld = iPg
 | 
 
| 
70855
 | 
 0  | 
 0  | 
       if( rc ) goto balance_cleanup;  | 
 
| 
70869
 | 
 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 ){  | 
 
| 
70894
 | 
 0  | 
 0  | 
   }else if( ISAUTOVACUUM && !leafCorrection ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( ISAUTOVACUUM && !leafCorrection ){  | 
 
| 
70898
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
70910
 | 
 0  | 
 0  | 
   for(i=nNew; i
 | 
 
| 
70930
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70933
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
70974
 | 
 2  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
70977
 | 
 0  | 
 2  | 
     if( ISAUTOVACUUM ){  | 
 
| 
70981
 | 
 0  | 
 2  | 
   if( rc ){  | 
 
| 
71030
 | 
 26  | 
 6  | 
     if( iPage==0 ){  | 
 
| 
71031
 | 
 2  | 
 24  | 
       if( pPage->nOverflow ){  | 
 
| 
71040
 | 
 2  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
71051
 | 
 0  | 
 6  | 
     }else if( pPage->nOverflow==0 && pPage->nFree<=nMin ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( pPage->nOverflow==0 && pPage->nFree<=nMin ){  | 
 
| 
71058
 | 
 6  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
71060
 | 
 6  | 
 0  | 
         if( pPage->intKeyLeaf  | 
 
| 
71061
 | 
 6  | 
 0  | 
          && pPage->nOverflow==1  | 
 
| 
71062
 | 
 6  | 
 0  | 
          && pPage->aiOvfl[0]==pPage->nCell  | 
 
| 
71063
 | 
 6  | 
 0  | 
          && pParent->pgno!=1  | 
 
| 
71064
 | 
 6  | 
 0  | 
          && pParent->nCell==iIdx  | 
 
| 
71105
 | 
 0  | 
 0  | 
           if( pFree ){  | 
 
| 
71128
 | 
 8  | 
 0  | 
   }while( rc==SQLITE_OK );  | 
 
| 
71130
 | 
 0  | 
 24  | 
   if( pFree ){  | 
 
| 
71147
 | 
 0  | 
 1  | 
   if( nData<=0 ){  | 
 
| 
71150
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
71151
 | 
 0  | 
 0  | 
     if( i
 | 
 
| 
71153
 | 
 0  | 
 0  | 
       if( rc ) return rc;  | 
 
| 
71157
 | 
 0  | 
 1  | 
     if( nData
 | 
 
| 
71162
 | 
 0  | 
 0  | 
       if( rc ) return rc;  | 
 
| 
71165
 | 
 1  | 
 0  | 
     if( memcmp(pDest, ((u8*)pX->pData) + iOffset, iAmt)!=0 ){  | 
 
| 
71167
 | 
 0  | 
 1  | 
       if( rc ) return rc;  | 
 
| 
71187
 | 
 0  | 
 1  | 
   if( pCur->info.pPayload + pCur->info.nLocal > pPage->aDataEnd ){  | 
 
| 
71193
 | 
 0  | 
 1  | 
   if( rc ) return rc;  | 
 
| 
71194
 | 
 1  | 
 0  | 
   if( pCur->info.nLocal==nTotal ) return SQLITE_OK;  | 
 
| 
71205
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
71206
 | 
 0  | 
 0  | 
     if( sqlite3PagerPageRefcount(pPage->pDbPage)!=1 ){  | 
 
| 
71209
 | 
 0  | 
 0  | 
       if( iOffset+ovflPageSize<(u32)nTotal ){  | 
 
| 
71218
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
71220
 | 
 0  | 
 0  | 
   }while( iOffset
 | 
 
| 
71273
 | 
 0  | 
 3700  | 
   if( pCur->eState==CURSOR_FAULT ){  | 
 
| 
71302
 | 
 110  | 
 3590  | 
   if( pCur->curFlags & BTCF_Multiple ){  | 
 
| 
71304
 | 
 0  | 
 110  | 
     if( rc ) return rc;  | 
 
| 
71307
 | 
 3637  | 
 63  | 
   if( pCur->pKeyInfo==0 ){  | 
 
| 
71329
 | 
 3006  | 
 631  | 
     if( (pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey ){  | 
 
| 
 | 
 236  | 
 2770  | 
     if( (pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey ){  | 
 
| 
71333
 | 
 217  | 
 19  | 
       if( pCur->info.nSize!=0  | 
 
| 
71334
 | 
 1  | 
 216  | 
        && pCur->info.nPayload==(u32)pX->nData+pX->nZero  | 
 
| 
71340
 | 
 3221  | 
 180  | 
     }else if( loc==0 ){  | 
 
| 
71346
 | 
 0  | 
 3221  | 
       if( rc ) return rc;  | 
 
| 
71361
 | 
 14  | 
 49  | 
     if( loc==0 && (flags & BTREE_SAVEPOSITION)==0 ){  | 
 
| 
 | 
 14  | 
 0  | 
     if( loc==0 && (flags & BTREE_SAVEPOSITION)==0 ){  | 
 
| 
71362
 | 
 14  | 
 0  | 
       if( pX->nMem ){  | 
 
| 
71376
 | 
 0  | 
 14  | 
       if( rc ) return rc;  | 
 
| 
71383
 | 
 0  | 
 63  | 
     if( loc==0 ){  | 
 
| 
71385
 | 
 0  | 
 0  | 
       if( pCur->info.nKey==pX->nKey ){  | 
 
| 
71408
 | 
 0  | 
 3699  | 
   if( rc ) goto end_insert;  | 
 
| 
71412
 | 
 426  | 
 3273  | 
   if( loc==0 ){  | 
 
| 
71416
 | 
 0  | 
 426  | 
     if( rc ){  | 
 
| 
71420
 | 
 0  | 
 426  | 
     if( !pPage->leaf ){  | 
 
| 
71424
 | 
 208  | 
 218  | 
     if( info.nSize==szNew && info.nLocal==info.nPayload   | 
 
| 
 | 
 208  | 
 0  | 
     if( info.nSize==szNew && info.nLocal==info.nPayload   | 
 
| 
71425
 | 
 0  | 
 208  | 
      && (!ISAUTOVACUUM || szNewminLocal)  | 
 
| 
 | 
 0  | 
 0  | 
      && (!ISAUTOVACUUM || szNewminLocal)  | 
 
| 
71437
 | 
 0  | 
 208  | 
       if( oldCell+szNew > pPage->aDataEnd ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
71442
 | 
 0  | 
 218  | 
     if( rc ) goto end_insert;  | 
 
| 
71443
 | 
 3263  | 
 10  | 
   }else if( loc<0 && pPage->nCell>0 ){  | 
 
| 
 | 
 2931  | 
 332  | 
   }else if( loc<0 && pPage->nCell>0 ){  | 
 
| 
71475
 | 
 6  | 
 3485  | 
   if( pPage->nOverflow ){  | 
 
| 
71486
 | 
 0  | 
 6  | 
     if( (flags & BTREE_SAVEPOSITION) && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (flags & BTREE_SAVEPOSITION) && rc==SQLITE_OK ){  | 
 
| 
71488
 | 
 0  | 
 0  | 
       if( pCur->pKeyInfo ){  | 
 
| 
71491
 | 
 0  | 
 0  | 
         if( pCur->pKey==0 ){  | 
 
| 
71560
 | 
 16  | 
 2  | 
   if( bPreserve ){  | 
 
| 
71561
 | 
 16  | 
 0  | 
     if( !pPage->leaf   | 
 
| 
71562
 | 
 16  | 
 0  | 
      || (pPage->nFree+cellSizePtr(pPage,pCell)+2)>(int)(pBt->usableSize*2/3)  | 
 
| 
71567
 | 
 0  | 
 16  | 
       if( rc ) return rc;  | 
 
| 
71580
 | 
 0  | 
 18  | 
   if( !pPage->leaf ){  | 
 
| 
71583
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
71588
 | 
 0  | 
 18  | 
   if( pCur->curFlags & BTCF_Multiple ){  | 
 
| 
71590
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
71595
 | 
 17  | 
 1  | 
   if( pCur->pKeyInfo==0 ){  | 
 
| 
71603
 | 
 0  | 
 18  | 
   if( rc ) return rc;  | 
 
| 
71606
 | 
 0  | 
 18  | 
   if( rc ) return rc;  | 
 
| 
71613
 | 
 0  | 
 18  | 
   if( !pPage->leaf ){  | 
 
| 
71619
 | 
 0  | 
 0  | 
     if( iCellDepthiPage-1 ){  | 
 
| 
71625
 | 
 0  | 
 0  | 
     if( pCell<&pLeaf->aData[4] ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
71631
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
71635
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
71654
 | 
 18  | 
 0  | 
   if( rc==SQLITE_OK && pCur->iPage>iCellDepth ){  | 
 
| 
 | 
 0  | 
 18  | 
   if( rc==SQLITE_OK && pCur->iPage>iCellDepth ){  | 
 
| 
71657
 | 
 0  | 
 0  | 
     while( pCur->iPage>iCellDepth ){  | 
 
| 
71664
 | 
 18  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
71665
 | 
 0  | 
 18  | 
     if( bSkipnext ){  | 
 
| 
71670
 | 
 0  | 
 0  | 
       if( iCellIdx>=pPage->nCell ){  | 
 
| 
71678
 | 
 16  | 
 2  | 
       if( bPreserve ){  | 
 
| 
71682
 | 
 10  | 
 8  | 
       if( rc==SQLITE_EMPTY ) rc = SQLITE_OK;  | 
 
| 
71716
 | 
 0  | 
 246  | 
   if( pBt->autoVacuum ){  | 
 
| 
71737
 | 
 0  | 
 0  | 
     while( pgnoRoot==PTRMAP_PAGENO(pBt, pgnoRoot) ||  | 
 
| 
 | 
 0  | 
 0  | 
     while( pgnoRoot==PTRMAP_PAGENO(pBt, pgnoRoot) ||  | 
 
| 
71749
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
71753
 | 
 0  | 
 0  | 
     if( pgnoMove!=pgnoRoot ){  | 
 
| 
71768
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
71774
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
71778
 | 
 0  | 
 0  | 
       if( eType==PTRMAP_ROOTPAGE || eType==PTRMAP_FREEPAGE ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( eType==PTRMAP_ROOTPAGE || eType==PTRMAP_FREEPAGE ){  | 
 
| 
71781
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
71791
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
71795
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
71799
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
71809
 | 
 0  | 
 0  | 
     if( rc ){  | 
 
| 
71820
 | 
 0  | 
 0  | 
     if( NEVER(rc) ){  | 
 
| 
71827
 | 
 0  | 
 246  | 
     if( rc ) return rc;  | 
 
| 
71831
 | 
 203  | 
 43  | 
   if( createTabFlags & BTREE_INTKEY ){  | 
 
| 
71868
 | 
 0  | 
 33  | 
   if( pgno>btreePagecount(pBt) ){  | 
 
| 
71872
 | 
 0  | 
 33  | 
   if( rc ) return rc;  | 
 
| 
71873
 | 
 0  | 
 33  | 
   if( pPage->bBusy ){  | 
 
| 
71879
 | 
 30  | 
 33  | 
   for(i=0; inCell; i++){  | 
 
| 
71881
 | 
 0  | 
 30  | 
     if( !pPage->leaf ){  | 
 
| 
71883
 | 
 0  | 
 0  | 
       if( rc ) goto cleardatabasepage_out;  | 
 
| 
71886
 | 
 0  | 
 30  | 
     if( rc ) goto cleardatabasepage_out;  | 
 
| 
71888
 | 
 0  | 
 33  | 
   if( !pPage->leaf ){  | 
 
| 
71890
 | 
 0  | 
 0  | 
     if( rc ) goto cleardatabasepage_out;  | 
 
| 
71891
 | 
 28  | 
 5  | 
   }else if( pnChange ){  | 
 
| 
71896
 | 
 0  | 
 33  | 
   if( freePageFlag ){  | 
 
| 
71898
 | 
 33  | 
 0  | 
   }else if( (rc = sqlite3PagerWrite(pPage->pDbPage))==0 ){  | 
 
| 
71929
 | 
 33  | 
 0  | 
   if( SQLITE_OK==rc ){  | 
 
| 
71979
 | 
 0  | 
 5  | 
   if( rc ) return rc;  | 
 
| 
71981
 | 
 0  | 
 5  | 
   if( rc ){  | 
 
| 
71992
 | 
 0  | 
 5  | 
   if( pBt->autoVacuum ){  | 
 
| 
71996
 | 
 0  | 
 0  | 
     if( iTable==maxRootPgno ){  | 
 
| 
72002
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
72013
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
72018
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
72025
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
72037
 | 
 0  | 
 0  | 
     while( maxRootPgno==PENDING_BYTE_PAGE(pBt)  | 
 
| 
72038
 | 
 0  | 
 0  | 
            || PTRMAP_ISPAGE(pBt, maxRootPgno) ){  | 
 
| 
72089
 | 
 0  | 
 1150  | 
   if( idx==BTREE_DATA_VERSION ){  | 
 
| 
72120
 | 
 515  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
72123
 | 
 0  | 
 515  | 
     if( idx==BTREE_INCR_VACUUM ){  | 
 
| 
72148
 | 
 6  | 
 4  | 
   if( rc==SQLITE_EMPTY ){  | 
 
| 
72156
 | 
 4  | 
 0  | 
   while( rc==SQLITE_OK ){  | 
 
| 
72165
 | 
 0  | 
 4  | 
     if( pPage->leaf || !pPage->intKey ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pPage->leaf || !pPage->intKey ){  | 
 
| 
72179
 | 
 4  | 
 0  | 
     if( pPage->leaf ){  | 
 
| 
72181
 | 
 4  | 
 0  | 
         if( pCur->iPage==0 ){  | 
 
| 
72187
 | 
 0  | 
 0  | 
       }while ( pCur->ix>=pCur->pPage->nCell );  | 
 
| 
72197
 | 
 0  | 
 0  | 
     if( iIdx==pPage->nCell ){  | 
 
| 
72227
 | 
 0  | 
 0  | 
   if( !pCheck->mxErr ) return;  | 
 
| 
72231
 | 
 0  | 
 0  | 
   if( pCheck->errMsg.nChar ){  | 
 
| 
72234
 | 
 0  | 
 0  | 
   if( pCheck->zPfx ){  | 
 
| 
72239
 | 
 0  | 
 0  | 
   if( pCheck->errMsg.accError==SQLITE_NOMEM ){  | 
 
| 
72274
 | 
 0  | 
 0  | 
   if( iPage>pCheck->nPage || iPage==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( iPage>pCheck->nPage || iPage==0 ){  | 
 
| 
72278
 | 
 0  | 
 0  | 
   if( getPageReferenced(pCheck, iPage) ){  | 
 
| 
72303
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
72304
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) pCheck->mallocFailed = 1;  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) pCheck->mallocFailed = 1;  | 
 
| 
72309
 | 
 0  | 
 0  | 
   if( ePtrmapType!=eType || iPtrmapParent!=iParent ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( ePtrmapType!=eType || iPtrmapParent!=iParent ){  | 
 
| 
72330
 | 
 0  | 
 0  | 
   while( iPage!=0 && pCheck->mxErr ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( iPage!=0 && pCheck->mxErr ){  | 
 
| 
72333
 | 
 0  | 
 0  | 
     if( checkRef(pCheck, iPage) ) break;  | 
 
| 
72335
 | 
 0  | 
 0  | 
     if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage, 0) ){  | 
 
| 
72340
 | 
 0  | 
 0  | 
     if( isFreeList ){  | 
 
| 
72343
 | 
 0  | 
 0  | 
       if( pCheck->pBt->autoVacuum ){  | 
 
| 
72347
 | 
 0  | 
 0  | 
       if( n>(int)pCheck->pBt->usableSize/4-2 ){  | 
 
| 
72352
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
72355
 | 
 0  | 
 0  | 
           if( pCheck->pBt->autoVacuum ){  | 
 
| 
72370
 | 
 0  | 
 0  | 
       if( pCheck->pBt->autoVacuum && N>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pCheck->pBt->autoVacuum && N>0 ){  | 
 
| 
72379
 | 
 0  | 
 0  | 
   if( N && nErrAtStart==pCheck->nErr ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( N && nErrAtStart==pCheck->nErr ){  | 
 
| 
72380
 | 
 0  | 
 0  | 
     checkAppendMsg(pCheck,  | 
 
| 
72413
 | 
 0  | 
 0  | 
   while( (j = i/2)>0 && aHeap[j]>aHeap[i] ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( (j = i/2)>0 && aHeap[j]>aHeap[i] ){  | 
 
| 
72422
 | 
 0  | 
 0  | 
   if( (x = aHeap[0])==0 ) return 0;  | 
 
| 
72428
 | 
 0  | 
 0  | 
   while( (j = i*2)<=aHeap[0] ){  | 
 
| 
72429
 | 
 0  | 
 0  | 
     if( aHeap[j]>aHeap[j+1] ) j++;  | 
 
| 
72430
 | 
 0  | 
 0  | 
     if( aHeap[i]
 | 
 
| 
72490
 | 
 0  | 
 0  | 
   if( iPage==0 ) return 0;  | 
 
| 
72491
 | 
 0  | 
 0  | 
   if( checkRef(pCheck, iPage) ) return 0;  | 
 
| 
72494
 | 
 0  | 
 0  | 
   if( (rc = btreeGetPage(pBt, (Pgno)iPage, &pPage, 0))!=0 ){  | 
 
| 
72504
 | 
 0  | 
 0  | 
   if( (rc = btreeInitPage(pPage))!=0 ){  | 
 
| 
72529
 | 
 0  | 
 0  | 
   if( !pPage->leaf ){  | 
 
| 
72533
 | 
 0  | 
 0  | 
     if( pBt->autoVacuum ){  | 
 
| 
72549
 | 
 0  | 
 0  | 
   for(i=nCell-1; i>=0 && pCheck->mxErr; i--){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=nCell-1; i>=0 && pCheck->mxErr; i--){  | 
 
| 
72557
 | 
 0  | 
 0  | 
     if( pcusableSize-4 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pcusableSize-4 ){  | 
 
| 
72565
 | 
 0  | 
 0  | 
     if( pc+info.nSize>usableSize ){  | 
 
| 
72572
 | 
 0  | 
 0  | 
     if( pPage->intKey ){  | 
 
| 
72573
 | 
 0  | 
 0  | 
       if( keyCanBeEqual ? (info.nKey > maxKey) : (info.nKey >= maxKey) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( keyCanBeEqual ? (info.nKey > maxKey) : (info.nKey >= maxKey) ){  | 
 
| 
72581
 | 
 0  | 
 0  | 
     if( info.nPayload>info.nLocal ){  | 
 
| 
72588
 | 
 0  | 
 0  | 
       if( pBt->autoVacuum ){  | 
 
| 
72595
 | 
 0  | 
 0  | 
     if( !pPage->leaf ){  | 
 
| 
72599
 | 
 0  | 
 0  | 
       if( pBt->autoVacuum ){  | 
 
| 
72605
 | 
 0  | 
 0  | 
       if( d2!=depth ){  | 
 
| 
72619
 | 
 0  | 
 0  | 
   if( doCoverageCheck && pCheck->mxErr>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( doCoverageCheck && pCheck->mxErr>0 ){  | 
 
| 
72623
 | 
 0  | 
 0  | 
     if( !pPage->leaf ){  | 
 
| 
72626
 | 
 0  | 
 0  | 
       for(i=nCell-1; i>=0; i--){  | 
 
| 
72640
 | 
 0  | 
 0  | 
     while( i>0 ){  | 
 
| 
72672
 | 
 0  | 
 0  | 
     while( btreeHeapPull(heap,&x) ){  | 
 
| 
72673
 | 
 0  | 
 0  | 
       if( (prev&0xffff)>=(x>>16) ){  | 
 
| 
72688
 | 
 0  | 
 0  | 
     if( heap[0]==0 && nFrag!=data[hdr+7] ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( heap[0]==0 && nFrag!=data[hdr+7] ){  | 
 
| 
72696
 | 
 0  | 
 0  | 
   if( !doCoverageCheck ) pPage->isInit = savedIsInit;  | 
 
| 
72750
 | 
 0  | 
 0  | 
   if( sCheck.nPage==0 ){  | 
 
| 
72755
 | 
 0  | 
 0  | 
   if( !sCheck.aPgRef ){  | 
 
| 
72760
 | 
 0  | 
 0  | 
   if( sCheck.heap==0 ){  | 
 
| 
72766
 | 
 0  | 
 0  | 
   if( i<=sCheck.nPage ) setPageReferenced(&sCheck, i);  | 
 
| 
72778
 | 
 0  | 
 0  | 
   if( pBt->autoVacuum ){  | 
 
| 
72781
 | 
 0  | 
 0  | 
     for(i=0; (int)i
 | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; (int)i
 | 
 
| 
72783
 | 
 0  | 
 0  | 
     if( mx!=mxInHdr ){  | 
 
| 
72789
 | 
 0  | 
 0  | 
   }else if( get4byte(&pBt->pPage1->aData[64])!=0 ){  | 
 
| 
72797
 | 
 0  | 
 0  | 
   for(i=0; (int)i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; (int)i
 | 
 
| 
72799
 | 
 0  | 
 0  | 
     if( aRoot[i]==0 ) continue;  | 
 
| 
72801
 | 
 0  | 
 0  | 
     if( pBt->autoVacuum && aRoot[i]>1 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pBt->autoVacuum && aRoot[i]>1 ){  | 
 
| 
72811
 | 
 0  | 
 0  | 
   for(i=1; i<=sCheck.nPage && sCheck.mxErr; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=1; i<=sCheck.nPage && sCheck.mxErr; i++){  | 
 
| 
72821
 | 
 0  | 
 0  | 
        (PTRMAP_PAGENO(pBt, i)!=i || !pBt->autoVacuum) ){  | 
 
| 
72825
 | 
 0  | 
 0  | 
        (PTRMAP_PAGENO(pBt, i)==i && pBt->autoVacuum) ){  | 
 
| 
72836
 | 
 0  | 
 0  | 
   if( sCheck.mallocFailed ){  | 
 
| 
72841
 | 
 0  | 
 0  | 
   if( sCheck.nErr==0 ) sqlite3_str_reset(&sCheck.errMsg);  | 
 
| 
72879
 | 
 2625  | 
 1555  | 
   return (p && (p->inTrans==TRANS_WRITE));  | 
 
| 
 | 
 996  | 
 1629  | 
   return (p && (p->inTrans==TRANS_WRITE));  | 
 
| 
72893
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
72896
 | 
 0  | 
 0  | 
     if( pBt->inTransaction!=TRANS_NONE ){  | 
 
| 
72945
 | 
 547  | 
 0  | 
   if( !pBt->pSchema && nBytes ){  | 
 
| 
 | 
 256  | 
 291  | 
   if( !pBt->pSchema && nBytes ){  | 
 
| 
72978
 | 
 0  | 
 15  | 
   if( p->sharable ){  | 
 
| 
72985
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
73011
 | 
 0  | 
 0  | 
   rc = restoreCursorPosition(pCsr);  | 
 
| 
73012
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
73016
 | 
 0  | 
 0  | 
   if( pCsr->eState!=CURSOR_VALID ){  | 
 
| 
73038
 | 
 0  | 
 0  | 
   if( (pCsr->curFlags & BTCF_WriteFlag)==0 ){  | 
 
| 
73074
 | 
 0  | 
 0  | 
   if( iVersion==1 ) pBt->btsFlags |= BTS_NO_WAL;  | 
 
| 
73077
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
73079
 | 
 0  | 
 0  | 
     if( aData[18]!=(u8)iVersion || aData[19]!=(u8)iVersion ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( aData[18]!=(u8)iVersion || aData[19]!=(u8)iVersion ){  | 
 
| 
73081
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
73083
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
73220
 | 
 0  | 
 8  | 
   if( i==1 ){  | 
 
| 
73225
 | 
 0  | 
 0  | 
     if( sqlite3OpenTempDatabase(&sParse) ){  | 
 
| 
73231
 | 
 0  | 
 0  | 
     if( rc ){  | 
 
| 
73236
 | 
 0  | 
 8  | 
   if( i<0 ){  | 
 
| 
73261
 | 
 0  | 
 4  | 
   if( sqlite3BtreeIsInReadTrans(p) ){  | 
 
| 
73302
 | 
 0  | 
 4  | 
   if( pSrcDb==pDestDb ){  | 
 
| 
73313
 | 
 0  | 
 4  | 
     if( !p ){  | 
 
| 
73319
 | 
 4  | 
 0  | 
   if( p ){  | 
 
| 
73327
 | 
 4  | 
 0  | 
     if( 0==p->pSrc || 0==p->pDest   | 
 
| 
 | 
 4  | 
 0  | 
     if( 0==p->pSrc || 0==p->pDest   | 
 
| 
73328
 | 
 0  | 
 4  | 
      || checkReadTransaction(pDestDb, p->pDest)!=SQLITE_OK   | 
 
| 
73339
 | 
 4  | 
 0  | 
   if( p ){  | 
 
| 
73354
 | 
 0  | 
 4  | 
   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));  | 
 
| 
73392
 | 
 0  | 
 10  | 
   if( nSrcPgsz!=nDestPgsz && sqlite3PagerIsMemdb(pDestPager) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( nSrcPgsz!=nDestPgsz && sqlite3PagerIsMemdb(pDestPager) ){  | 
 
| 
73420
 | 
 20  | 
 0  | 
   for(iOff=iEnd-(i64)nSrcPgsz; rc==SQLITE_OK && iOff
 | 
 
| 
 | 
 10  | 
 10  | 
   for(iOff=iEnd-(i64)nSrcPgsz; rc==SQLITE_OK && iOff
 | 
 
| 
73423
 | 
 0  | 
 10  | 
     if( iDest==PENDING_BYTE_PAGE(p->pDest->pBt) ) continue;  | 
 
| 
73424
 | 
 10  | 
 0  | 
     if( SQLITE_OK==(rc = sqlite3PagerGet(pDestPager, iDest, &pDestPg, 0))  | 
 
| 
73425
 | 
 10  | 
 0  | 
      && SQLITE_OK==(rc = sqlite3PagerWrite(pDestPg))  | 
 
| 
73440
 | 
 4  | 
 6  | 
       if( iOff==0 && bUpdate==0 ){  | 
 
| 
 | 
 4  | 
 0  | 
       if( iOff==0 && bUpdate==0 ){  | 
 
| 
73461
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && iCurrent>iSize ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && iCurrent>iSize ){  | 
 
| 
73499
 | 
 4  | 
 0  | 
   if( !isFatalError(rc) ){  | 
 
| 
73509
 | 
 4  | 
 0  | 
     if( p->pDestDb && p->pSrc->pBt->inTransaction==TRANS_WRITE ){  | 
 
| 
 | 
 0  | 
 4  | 
     if( p->pDestDb && p->pSrc->pBt->inTransaction==TRANS_WRITE ){  | 
 
| 
73519
 | 
 4  | 
 0  | 
     if( rc==SQLITE_OK && 0==sqlite3BtreeIsInReadTrans(p->pSrc) ){  | 
 
| 
 | 
 4  | 
 0  | 
     if( rc==SQLITE_OK && 0==sqlite3BtreeIsInReadTrans(p->pSrc) ){  | 
 
| 
73530
 | 
 4  | 
 0  | 
     if( p->bDestLocked==0 && rc==SQLITE_OK && setDestPgsz(p)==SQLITE_NOMEM ){  | 
 
| 
 | 
 4  | 
 0  | 
     if( p->bDestLocked==0 && rc==SQLITE_OK && setDestPgsz(p)==SQLITE_NOMEM ){  | 
 
| 
 | 
 0  | 
 4  | 
     if( p->bDestLocked==0 && rc==SQLITE_OK && setDestPgsz(p)==SQLITE_NOMEM ){  | 
 
| 
73535
 | 
 4  | 
 0  | 
     if( SQLITE_OK==rc && p->bDestLocked==0  | 
 
| 
 | 
 4  | 
 0  | 
     if( SQLITE_OK==rc && p->bDestLocked==0  | 
 
| 
73536
 | 
 4  | 
 0  | 
      && SQLITE_OK==(rc = sqlite3BtreeBeginTrans(p->pDest, 2,  | 
 
| 
73547
 | 
 4  | 
 0  | 
     if( SQLITE_OK==rc && destMode==PAGER_JOURNALMODE_WAL && pgszSrc!=pgszDest ){  | 
 
| 
 | 
 0  | 
 4  | 
     if( SQLITE_OK==rc && destMode==PAGER_JOURNALMODE_WAL && pgszSrc!=pgszDest ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( SQLITE_OK==rc && destMode==PAGER_JOURNALMODE_WAL && pgszSrc!=pgszDest ){  | 
 
| 
73556
 | 
 0  | 
 14  | 
     for(ii=0; (nPage<0 || iiiNext<=(Pgno)nSrcPage && !rc; ii++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(ii=0; (nPage<0 || iiiNext<=(Pgno)nSrcPage && !rc; ii++){  | 
 
| 
 | 
 10  | 
 4  | 
     for(ii=0; (nPage<0 || iiiNext<=(Pgno)nSrcPage && !rc; ii++){  | 
 
| 
 | 
 10  | 
 0  | 
     for(ii=0; (nPage<0 || iiiNext<=(Pgno)nSrcPage && !rc; ii++){  | 
 
| 
73558
 | 
 10  | 
 0  | 
       if( iSrcPg!=PENDING_BYTE_PAGE(p->pSrc->pBt) ){  | 
 
| 
73561
 | 
 10  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
73568
 | 
 4  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
73571
 | 
 4  | 
 0  | 
       if( p->iNext>(Pgno)nSrcPage ){  | 
 
| 
73573
 | 
 0  | 
 0  | 
       }else if( !p->isAttached ){  | 
 
| 
73583
 | 
 4  | 
 0  | 
     if( rc==SQLITE_DONE ){  | 
 
| 
73584
 | 
 0  | 
 4  | 
       if( nSrcPage==0 ){  | 
 
| 
73588
 | 
 4  | 
 0  | 
       if( rc==SQLITE_OK || rc==SQLITE_DONE ){  | 
 
| 
 | 
 4  | 
 0  | 
       if( rc==SQLITE_OK || rc==SQLITE_DONE ){  | 
 
| 
73591
 | 
 4  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
73592
 | 
 4  | 
 0  | 
         if( p->pDestDb ){  | 
 
| 
73595
 | 
 0  | 
 4  | 
         if( destMode==PAGER_JOURNALMODE_WAL ){  | 
 
| 
73599
 | 
 4  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
73615
 | 
 0  | 
 4  | 
         if( pgszSrc
 | 
 
| 
73618
 | 
 0  | 
 0  | 
           if( nDestTruncate==(int)PENDING_BYTE_PAGE(p->pDest->pBt) ){  | 
 
| 
73626
 | 
 0  | 
 4  | 
         if( pgszSrc
 | 
 
| 
73657
 | 
 0  | 
 0  | 
           for(iPg=nDestTruncate; rc==SQLITE_OK && iPg<=(Pgno)nDstPage; iPg++){  | 
 
| 
 | 
 0  | 
 0  | 
           for(iPg=nDestTruncate; rc==SQLITE_OK && iPg<=(Pgno)nDstPage; iPg++){  | 
 
| 
73658
 | 
 0  | 
 0  | 
             if( iPg!=PENDING_BYTE_PAGE(p->pDest->pBt) ){  | 
 
| 
73661
 | 
 0  | 
 0  | 
               if( rc==SQLITE_OK ){  | 
 
| 
73667
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
73673
 | 
 0  | 
 0  | 
           for(  | 
 
| 
73675
 | 
 0  | 
 0  | 
             rc==SQLITE_OK && iOff
 | 
 
| 
73681
 | 
 0  | 
 0  | 
             if( rc==SQLITE_OK ){  | 
 
| 
73687
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
73692
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
73701
 | 
 4  | 
 0  | 
         if( SQLITE_OK==rc  | 
 
| 
73702
 | 
 4  | 
 0  | 
          && SQLITE_OK==(rc = sqlite3BtreeCommitPhaseTwo(p->pDest, 0))  | 
 
| 
73714
 | 
 4  | 
 0  | 
     if( bCloseTrans ){  | 
 
| 
73721
 | 
 0  | 
 4  | 
     if( rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
73743
 | 
 0  | 
 4  | 
   if( p==0 ) return SQLITE_OK;  | 
 
| 
73752
 | 
 4  | 
 0  | 
   if( p->pDestDb ){  | 
 
| 
73755
 | 
 0  | 
 4  | 
   if( p->isAttached ){  | 
 
| 
73757
 | 
 0  | 
 0  | 
     while( *pp!=p ){  | 
 
| 
73767
 | 
 0  | 
 4  | 
   rc = (p->rc==SQLITE_DONE) ? SQLITE_OK : p->rc;  | 
 
| 
73768
 | 
 4  | 
 0  | 
   if( p->pDestDb ){  | 
 
| 
73775
 | 
 4  | 
 0  | 
   if( p->pDestDb ){  | 
 
| 
73833
 | 
 0  | 
 0  | 
     if( !isFatalError(p->rc) && iPageiNext ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( !isFatalError(p->rc) && iPageiNext ){  | 
 
| 
73844
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
73848
 | 
 0  | 
 0  | 
   }while( (p = p->pNext)!=0 );  | 
 
| 
73851
 | 
 0  | 
 151  | 
   if( pBackup ) backupUpdate(pBackup, iPage, aData);  | 
 
| 
73867
 | 
 0  | 
 1447  | 
   for(p=pBackup; p; p=p->pNext){  | 
 
| 
73891
 | 
 0  | 
 0  | 
   if( pFd->pMethods ){  | 
 
| 
73894
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;  | 
 
| 
73895
 | 
 0  | 
 0  | 
     if( rc ) goto copy_finished;  | 
 
| 
73923
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
74099
 | 
 1366  | 
 504  | 
   if( !(pMem->flags&MEM_Str) || pMem->enc==desiredEnc ){  | 
 
| 
 | 
 1366  | 
 0  | 
   if( !(pMem->flags&MEM_Str) || pMem->enc==desiredEnc ){  | 
 
| 
74139
 | 
 4867  | 
 17031  | 
   if( n<32 ) n = 32;  | 
 
| 
74140
 | 
 77  | 
 21821  | 
   if( pMem->szMalloc>0 && bPreserve && pMem->z==pMem->zMalloc ){  | 
 
| 
 | 
 77  | 
 0  | 
   if( pMem->szMalloc>0 && bPreserve && pMem->z==pMem->zMalloc ){  | 
 
| 
 | 
 29  | 
 48  | 
   if( pMem->szMalloc>0 && bPreserve && pMem->z==pMem->zMalloc ){  | 
 
| 
74144
 | 
 48  | 
 21821  | 
     if( pMem->szMalloc>0 ) sqlite3DbFreeNN(pMem->db, pMem->zMalloc);  | 
 
| 
74147
 | 
 0  | 
 21898  | 
   if( pMem->zMalloc==0 ){  | 
 
| 
74156
 | 
 180  | 
 21718  | 
   if( bPreserve && pMem->z ){  | 
 
| 
 | 
 180  | 
 0  | 
   if( bPreserve && pMem->z ){  | 
 
| 
74160
 | 
 0  | 
 21898  | 
   if( (pMem->flags&MEM_Dyn)!=0 ){  | 
 
| 
74186
 | 
 19984  | 
 5023  | 
   if( pMem->szMalloc
 | 
 
| 
74200
 | 
 0  | 
 209  | 
   if( sqlite3VdbeMemGrow(pMem, pMem->n+2, 1) ){  | 
 
| 
74218
 | 
 120  | 
 679  | 
   if( (pMem->flags & (MEM_Str|MEM_Blob))!=0 ){  | 
 
| 
74219
 | 
 0  | 
 120  | 
     if( ExpandBlob(pMem) ) return SQLITE_NOMEM;  | 
 
| 
 | 
 0  | 
 0  | 
     if( ExpandBlob(pMem) ) return SQLITE_NOMEM;  | 
 
| 
74220
 | 
 48  | 
 72  | 
     if( pMem->szMalloc==0 || pMem->z!=pMem->zMalloc ){  | 
 
| 
 | 
 48  | 
 0  | 
     if( pMem->szMalloc==0 || pMem->z!=pMem->zMalloc ){  | 
 
| 
74222
 | 
 0  | 
 120  | 
       if( rc ) return rc;  | 
 
| 
74247
 | 
 0  | 
 0  | 
   if( nByte<=0 ){  | 
 
| 
74250
 | 
 0  | 
 0  | 
   if( sqlite3VdbeMemGrow(pMem, nByte, 1) ){  | 
 
| 
74268
 | 
 9012  | 
 89  | 
   if( (pMem->flags & (MEM_Term|MEM_Str))!=MEM_Str ){  | 
 
| 
74301
 | 
 0  | 
 287  | 
   if( sqlite3VdbeMemClearAndResize(pMem, nByte) ){  | 
 
| 
74312
 | 
 285  | 
 2  | 
   if( fg & MEM_Int ){  | 
 
| 
74322
 | 
 4  | 
 283  | 
   if( bForce ) pMem->flags &= ~(MEM_Int|MEM_Real);  | 
 
| 
74351
 | 
 115  | 
 71  | 
   if( pMem->szMalloc>0 ) sqlite3DbFreeNN(pMem->db, pMem->zMalloc);  | 
 
| 
74397
 | 
 0  | 
 69  | 
   if( p->flags&MEM_Agg ){  | 
 
| 
74402
 | 
 69  | 
 0  | 
   if( p->flags&MEM_Dyn ){  | 
 
| 
74418
 | 
 58  | 
 367  | 
   if( VdbeMemDynamic(p) ){  | 
 
| 
74421
 | 
 367  | 
 58  | 
   if( p->szMalloc ){  | 
 
| 
74440
 | 
 4737  | 
 58  | 
   if( VdbeMemDynamic(p) || p->szMalloc ){  | 
 
| 
 | 
 367  | 
 4370  | 
   if( VdbeMemDynamic(p) || p->szMalloc ){  | 
 
| 
74465
 | 
 0  | 
 4  | 
   if( r<=(double)minInt ){  | 
 
| 
74467
 | 
 0  | 
 4  | 
   }else if( r>=(double)maxInt ){  | 
 
| 
74496
 | 
 2416  | 
 332  | 
   if( flags & MEM_Int ){  | 
 
| 
74498
 | 
 0  | 
 332  | 
   }else if( flags & MEM_Real ){  | 
 
| 
74500
 | 
 269  | 
 63  | 
   }else if( flags & (MEM_Str|MEM_Blob) ){  | 
 
| 
74523
 | 
 226  | 
 24  | 
   if( pMem->flags & MEM_Real ){  | 
 
| 
74525
 | 
 0  | 
 24  | 
   }else if( pMem->flags & MEM_Int ){  | 
 
| 
74527
 | 
 24  | 
 0  | 
   }else if( pMem->flags & (MEM_Str|MEM_Blob) ){  | 
 
| 
74540
 | 
 422  | 
 340  | 
   if( pMem->flags & MEM_Int ) return pMem->u.i!=0;  | 
 
| 
74541
 | 
 128  | 
 212  | 
   if( pMem->flags & MEM_Null ) return ifNull;  | 
 
| 
74568
 | 
 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
 | 
 
| 
74621
 | 
 0  | 
 0  | 
   if( (pMem->flags & (MEM_Int|MEM_Real|MEM_Null))==0 ){  | 
 
| 
74626
 | 
 0  | 
 0  | 
     if( rc==0 ){  | 
 
| 
74631
 | 
 0  | 
 0  | 
       if( rc==1 && sqlite3RealSameAsInt(pMem->u.r, i) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==1 && sqlite3RealSameAsInt(pMem->u.r, i) ){  | 
 
| 
74652
 | 
 0  | 
 1  | 
   if( pMem->flags & MEM_Null ) return;  | 
 
| 
74655
 | 
 0  | 
 0  | 
       if( (pMem->flags & MEM_Blob)==0 ){  | 
 
| 
74658
 | 
 0  | 
 0  | 
         if( pMem->flags & MEM_Str ) MemSetTypeFlag(pMem, MEM_Blob);  | 
 
| 
74714
 | 
 11  | 
 4825  | 
   if( VdbeMemDynamic(pMem) ){  | 
 
| 
74732
 | 
 0  | 
 1  | 
   if( n<0 ) n = 0;  | 
 
| 
74754
 | 
 0  | 
 1090  | 
   if( VdbeMemDynamic(pMem) ){  | 
 
| 
74776
 | 
 0  | 
 0  | 
   pMem->u.zPType = zPType ? zPType : "";  | 
 
| 
74780
 | 
 0  | 
 0  | 
   pMem->xDel = xDestructor ? xDestructor : sqlite3NoopDestructor;  | 
 
| 
74790
 | 
 220  | 
 0  | 
   if( !sqlite3IsNaN(val) ){  | 
 
| 
74822
 | 
 0  | 
 9  | 
   if( p==0 ) return SQLITE_NOMEM;  | 
 
| 
74835
 | 
 1646  | 
 898  | 
   if( p->flags & (MEM_Str|MEM_Blob) ){  | 
 
| 
74837
 | 
 1  | 
 1645  | 
     if( p->flags & MEM_Zero ){  | 
 
| 
74896
 | 
 0  | 
 2903  | 
   if( VdbeMemDynamic(pTo) ){ vdbeClrCopy(pTo,pFrom,srcType); return; }  | 
 
| 
74898
 | 
 2240  | 
 663  | 
   if( (pFrom->flags&MEM_Static)==0 ){  | 
 
| 
74913
 | 
 0  | 
 58  | 
   if( VdbeMemDynamic(pTo) ) vdbeMemClearExternAndSetNull(pTo);  | 
 
| 
74916
 | 
 24  | 
 34  | 
   if( pTo->flags&(MEM_Str|MEM_Blob) ){  | 
 
| 
74917
 | 
 14  | 
 10  | 
     if( 0==(pFrom->flags&MEM_Static) ){  | 
 
| 
74973
 | 
 2616  | 
 12786  | 
   if( !z ){  | 
 
| 
74978
 | 
 12786  | 
 0  | 
   if( pMem->db ){  | 
 
| 
74983
 | 
 782  | 
 12004  | 
   flags = (enc==0?MEM_Blob:MEM_Str);  | 
 
| 
74984
 | 
 11220  | 
 1566  | 
   if( nByte<0 ){  | 
 
| 
74986
 | 
 11220  | 
 0  | 
     if( enc==SQLITE_UTF8 ){  | 
 
| 
74988
 | 
 0  | 
 11220  | 
       if( nByte>iLimit ) nByte = iLimit+1;  | 
 
| 
74990
 | 
 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){}  | 
 
| 
74999
 | 
 10722  | 
 2064  | 
   if( xDel==SQLITE_TRANSIENT ){  | 
 
| 
75001
 | 
 9699  | 
 1023  | 
     if( flags&MEM_Term ){  | 
 
| 
75002
 | 
 9699  | 
 0  | 
       nAlloc += (enc==SQLITE_UTF8?1:2);  | 
 
| 
75004
 | 
 0  | 
 10722  | 
     if( nByte>iLimit ){  | 
 
| 
75010
 | 
 0  | 
 10722  | 
     if( sqlite3VdbeMemClearAndResize(pMem, MAX(nAlloc,32)) ){  | 
 
| 
75014
 | 
 536  | 
 1528  | 
   }else if( xDel==SQLITE_DYNAMIC ){  | 
 
| 
75022
 | 
 1468  | 
 60  | 
     flags |= ((xDel==SQLITE_STATIC)?MEM_Static:MEM_Dyn);  | 
 
| 
75027
 | 
 12004  | 
 782  | 
   pMem->enc = (enc==0 ? SQLITE_UTF8 : enc);  | 
 
| 
75030
 | 
 0  | 
 12786  | 
   if( pMem->enc!=SQLITE_UTF8 && sqlite3VdbeMemHandleBom(pMem) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pMem->enc!=SQLITE_UTF8 && sqlite3VdbeMemHandleBom(pMem) ){  | 
 
| 
75035
 | 
 0  | 
 12786  | 
   if( nByte>iLimit ){  | 
 
| 
75065
 | 
 6  | 
 0  | 
   if( SQLITE_OK==(rc = sqlite3VdbeMemClearAndResize(pMem, amt+1)) ){  | 
 
| 
75067
 | 
 6  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
75096
 | 
 529  | 
 6  | 
   if( offset+amt<=available ){  | 
 
| 
75118
 | 
 66  | 
 283  | 
   if( pVal->flags & (MEM_Blob|MEM_Str) ){  | 
 
| 
75119
 | 
 0  | 
 66  | 
     if( ExpandBlob(pVal) ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
     if( ExpandBlob(pVal) ) return 0;  | 
 
| 
75121
 | 
 0  | 
 66  | 
     if( pVal->enc != (enc & ~SQLITE_UTF16_ALIGNED) ){  | 
 
| 
75124
 | 
 0  | 
 66  | 
     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)) ){  | 
 
| 
75126
 | 
 0  | 
 0  | 
       if( sqlite3VdbeMemMakeWriteable(pVal)!=SQLITE_OK ){  | 
 
| 
75137
 | 
 349  | 
 0  | 
   if( pVal->enc==(enc & ~SQLITE_UTF16_ALIGNED) ){  | 
 
| 
75156
 | 
 17  | 
 6305  | 
   if( !pVal ) return 0;  | 
 
| 
75160
 | 
 5923  | 
 382  | 
   if( (pVal->flags&(MEM_Str|MEM_Term))==(MEM_Str|MEM_Term) && pVal->enc==enc ){  | 
 
| 
 | 
 5923  | 
 0  | 
   if( (pVal->flags&(MEM_Str|MEM_Term))==(MEM_Str|MEM_Term) && pVal->enc==enc ){  | 
 
| 
75164
 | 
 33  | 
 349  | 
   if( pVal->flags&MEM_Null ){  | 
 
| 
75175
 | 
 37  | 
 0  | 
   if( p ){  | 
 
| 
75376
 | 
 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;  | 
 
| 
75380
 | 
 0  | 
 0  | 
   if( NEVER(op==TK_REGISTER) ) op = pExpr->op2;  | 
 
| 
75389
 | 
 0  | 
 0  | 
   if( op==TK_CAST ){  | 
 
| 
75393
 | 
 0  | 
 0  | 
     if( *ppVal ){  | 
 
| 
75403
 | 
 0  | 
 0  | 
   if( op==TK_UMINUS  | 
 
| 
75404
 | 
 0  | 
 0  | 
    && (pExpr->pLeft->op==TK_INTEGER || pExpr->pLeft->op==TK_FLOAT) ){  | 
 
| 
 | 
 0  | 
 0  | 
    && (pExpr->pLeft->op==TK_INTEGER || pExpr->pLeft->op==TK_FLOAT) ){  | 
 
| 
75411
 | 
 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 ){  | 
 
| 
75413
 | 
 0  | 
 0  | 
     if( pVal==0 ) goto no_mem;  | 
 
| 
75414
 | 
 0  | 
 0  | 
     if( ExprHasProperty(pExpr, EP_IntValue) ){  | 
 
| 
75418
 | 
 0  | 
 0  | 
       if( zVal==0 ) goto no_mem;  | 
 
| 
75421
 | 
 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 ){  | 
 
| 
75426
 | 
 0  | 
 0  | 
     if( pVal->flags & (MEM_Int|MEM_Real) ) pVal->flags &= ~MEM_Str;  | 
 
| 
75427
 | 
 0  | 
 0  | 
     if( enc!=SQLITE_UTF8 ){  | 
 
| 
75430
 | 
 0  | 
 0  | 
   }else if( op==TK_UMINUS ) {  | 
 
| 
75432
 | 
 0  | 
 0  | 
     if( SQLITE_OK==valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx)   | 
 
| 
75433
 | 
 0  | 
 0  | 
      && pVal!=0  | 
 
| 
75436
 | 
 0  | 
 0  | 
       if( pVal->flags & MEM_Real ){  | 
 
| 
75438
 | 
 0  | 
 0  | 
       }else if( pVal->u.i==SMALLEST_INT64 ){  | 
 
| 
75446
 | 
 0  | 
 0  | 
   }else if( op==TK_NULL ){  | 
 
| 
75448
 | 
 0  | 
 0  | 
     if( pVal==0 ) goto no_mem;  | 
 
| 
75452
 | 
 0  | 
 0  | 
   else if( op==TK_BLOB ){  | 
 
| 
75457
 | 
 0  | 
 0  | 
     if( !pVal ) goto no_mem;  | 
 
| 
75470
 | 
 0  | 
 0  | 
   else if( op==TK_TRUEFALSE ){  | 
 
| 
75511
 | 
 0  | 
 2967  | 
   return pExpr ? valueFromExpr(db, pExpr, enc, affinity, ppVal, 0) : 0;  | 
 
| 
75789
 | 
 101  | 
 0  | 
   if( v ) sqlite3VdbeMemSetStr((Mem *)v, z, n, enc, xDel);  | 
 
| 
75796
 | 
 335  | 
 37  | 
   if( !v ) return;  | 
 
| 
75807
 | 
 0  | 
 0  | 
   return valueToText(pVal, enc)!=0 ? pVal->n : 0;  | 
 
| 
75812
 | 
 2520  | 
 505  | 
   if( (p->flags & MEM_Str)!=0 && pVal->enc==enc ){  | 
 
| 
 | 
 2520  | 
 0  | 
   if( (p->flags & MEM_Str)!=0 && pVal->enc==enc ){  | 
 
| 
75815
 | 
 505  | 
 0  | 
   if( (p->flags & MEM_Blob)!=0 ){  | 
 
| 
75816
 | 
 0  | 
 505  | 
     if( p->flags & MEM_Zero ){  | 
 
| 
75822
 | 
 0  | 
 0  | 
   if( p->flags & MEM_Null ) return 0;  | 
 
| 
75852
 | 
 0  | 
 5429  | 
   if( p==0 ) return 0;  | 
 
| 
75855
 | 
 1175  | 
 4254  | 
   if( db->pVdbe ){  | 
 
| 
75887
 | 
 18  | 
 4384  | 
   if( p==0 ) return;  | 
 
| 
75889
 | 
 7  | 
 4377  | 
   if( (prepFlags & SQLITE_PREPARE_SAVESQL)==0 ){  | 
 
| 
75957
 | 
 43  | 
 5429  | 
   int nNew = (p->nOpAlloc ? p->nOpAlloc*2 : (int)(1024/sizeof(Op)));  | 
 
| 
75962
 | 
 0  | 
 5472  | 
   if( nNew > p->db->aLimit[SQLITE_LIMIT_VDBE_OP] ){  | 
 
| 
75970
 | 
 5472  | 
 0  | 
   if( pNew ){  | 
 
| 
75975
 | 
 5472  | 
 0  | 
   return (pNew ? SQLITE_OK : SQLITE_NOMEM_BKPT);  | 
 
| 
76007
 | 
 0  | 
 5472  | 
   if( growOpArray(p, 1) ) return 1;  | 
 
| 
76018
 | 
 5472  | 
 55755  | 
   if( p->pParse->nOpAlloc<=i ){  | 
 
| 
76087
 | 
 1168  | 
 240  | 
   for(i=0; (c = zTypes[i])!=0; i++){  | 
 
| 
76088
 | 
 646  | 
 522  | 
     if( c=='s' ){  | 
 
| 
76089
 | 
 466  | 
 180  | 
       const char *z = va_arg(ap, const char*);  | 
 
| 
76090
 | 
 94  | 
 552  | 
       sqlite3VdbeAddOp4(p, z==0 ? OP_Null : OP_String8, 0, iDest+i, 0, z, 0);  | 
 
| 
76091
 | 
 506  | 
 16  | 
     }else if( c=='i' ){  | 
 
| 
76092
 | 
 302  | 
 204  | 
       sqlite3VdbeAddOp2(p, OP_Integer, va_arg(ap, int), iDest+i);  | 
 
| 
76133
 | 
 2190  | 
 0  | 
   if( p4copy ) memcpy(p4copy, zP4, 8);  | 
 
| 
76144
 | 
 1599  | 
 0  | 
   if( pParse->addrExplain==0 ) return 0;  | 
 
| 
76156
 | 
 0  | 
 674  | 
   if( pParse->explain==2 ){  | 
 
| 
76168
 | 
 0  | 
 0  | 
     if( bPush) pParse->addrExplain = iThis;  | 
 
| 
76191
 | 
 468  | 
 230  | 
   for(j=0; jdb->nDb; j++) sqlite3VdbeUsesBtree(p, j);  | 
 
| 
76206
 | 
 8539  | 
 0  | 
   if( p->db->mallocFailed==0 ){  | 
 
| 
76247
 | 
 7728  | 
 1802  | 
   if( (i & (i-1))==0 ){  | 
 
| 
76251
 | 
 9530  | 
 0  | 
   if( p->aLabel ){  | 
 
| 
76268
 | 
 9530  | 
 0  | 
   if( p->aLabel ){  | 
 
| 
76487
 | 
 19005  | 
 36874  | 
     if( pOp->opcode<=SQLITE_MX_JUMP_OPCODE ){  | 
 
| 
76492
 | 
 3091  | 
 1193  | 
           if( pOp->p2!=0 ) p->readOnly = 0;  | 
 
| 
76530
 | 
 17  | 
 0  | 
           if( pOp->p2>nMaxArgs ) nMaxArgs = pOp->p2;  | 
 
| 
76538
 | 
 42  | 
 1  | 
           if( n>nMaxArgs ) nMaxArgs = n;  | 
 
| 
76543
 | 
 2886  | 
 10551  | 
           if( pOp->p2<0 ){  | 
 
| 
76559
 | 
 5429  | 
 50450  | 
     if( pOp==p->aOp ) break;  | 
 
| 
76659
 | 
 0  | 
 19  | 
   if( p->nOp + nOp > p->pParse->nOpAlloc && growOpArray(p, nOp) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->nOp + nOp > p->pParse->nOpAlloc && growOpArray(p, nOp) ){  | 
 
| 
76663
 | 
 124  | 
 19  | 
   for(i=0; i
 | 
 
| 
76668
 | 
 25  | 
 99  | 
     if( (sqlite3OpcodeProperty[aOp->opcode] & OPFLG_JUMP)!=0 && aOp->p2>0 ){  | 
 
| 
 | 
 25  | 
 0  | 
     if( (sqlite3OpcodeProperty[aOp->opcode] & OPFLG_JUMP)!=0 && aOp->p2>0 ){  | 
 
| 
76739
 | 
 10728  | 
 0  | 
   if( p->nOp>0 ) p->aOp[p->nOp-1].p5 = p5;  | 
 
| 
76756
 | 
 0  | 
 816  | 
   if( (pDef->funcFlags & SQLITE_FUNC_EPHEM)!=0 ){  | 
 
| 
76767
 | 
 0  | 
 0  | 
   if( p->szMalloc ) sqlite3DbFree(db, p->zMalloc);  | 
 
| 
76790
 | 
 617  | 
 0  | 
       if( db->pnBytesFreed==0 ) sqlite3KeyInfoUnref((KeyInfo*)p4);  | 
 
| 
76804
 | 
 0  | 
 0  | 
       if( db->pnBytesFreed==0 ){  | 
 
| 
76812
 | 
 77  | 
 0  | 
       if( db->pnBytesFreed==0 ) sqlite3VtabUnlock((VTable *)p4);  | 
 
| 
76824
 | 
 5429  | 
 0  | 
   if( aOp ){  | 
 
| 
76826
 | 
 55879  | 
 5429  | 
     for(pOp=&aOp[nOp-1]; pOp>=aOp; pOp--){  | 
 
| 
76827
 | 
 7002  | 
 48877  | 
       if( pOp->p4type <= P4_FREE_IF_LE ) freeP4(db, pOp->p4type, pOp->p4.p);  | 
 
| 
76851
 | 
 0  | 
 417  | 
   if( p->db->mallocFailed ) return 0;  | 
 
| 
76866
 | 
 14  | 
 0  | 
   if( p->nOp>0 && p->aOp[p->nOp-1].opcode==op ){  | 
 
| 
 | 
 0  | 
 14  | 
   if( p->nOp>0 && p->aOp[p->nOp-1].opcode==op ){  | 
 
| 
76896
 | 
 1056  | 
 3313  | 
   if( pOp->p4type ){  | 
 
| 
76901
 | 
 1056  | 
 3313  | 
   if( n<0 ){  | 
 
| 
76904
 | 
 2809  | 
 504  | 
     if( n==0 ) n = sqlite3Strlen30(zP4);  | 
 
| 
76916
 | 
 0  | 
 10101  | 
   if( db->mallocFailed ){  | 
 
| 
76917
 | 
 0  | 
 0  | 
     if( n!=P4_VTAB ) freeP4(db, n, (void*)*(char**)&zP4);  | 
 
| 
76922
 | 
 1513  | 
 8588  | 
   if( addr<0 ){  | 
 
| 
76926
 | 
 6788  | 
 3313  | 
   if( n>=0 || pOp->p4type ){  | 
 
| 
 | 
 1056  | 
 5732  | 
   if( n>=0 || pOp->p4type ){  | 
 
| 
76930
 | 
 1056  | 
 4676  | 
   if( n==P4_INT32 ){  | 
 
| 
76935
 | 
 4612  | 
 64  | 
   }else if( zP4!=0 ){  | 
 
| 
76939
 | 
 77  | 
 4535  | 
     if( n==P4_VTAB ) sqlite3VtabLock((VTable*)zP4);  | 
 
| 
76956
 | 
 0  | 
 3054  | 
   if( p->db->mallocFailed ){  | 
 
| 
76978
 | 
 71  | 
 0  | 
   if( pKeyInfo ) sqlite3VdbeAppendP4(v, pKeyInfo, P4_KEYINFO);  | 
 
| 
77043
 | 
 225  | 
 5469  | 
   if( addr<0 ){  | 
 
| 
77047
 | 
 0  | 
 5694  | 
   if( p->db->mallocFailed ){  | 
 
| 
77243
 | 
 0  | 
 0  | 
       for(j=0; jnKeyField; j++){  | 
 
| 
77245
 | 
 0  | 
 0  | 
         const char *zColl = pColl ? pColl->zName : "";  | 
 
| 
77246
 | 
 0  | 
 0  | 
         if( strcmp(zColl, "BINARY")==0 ) zColl = "B";  | 
 
| 
77247
 | 
 0  | 
 0  | 
         sqlite3_str_appendf(&x, ",%s%s",   | 
 
| 
77290
 | 
 0  | 
 0  | 
       if( pMem->flags & MEM_Str ){  | 
 
| 
77292
 | 
 0  | 
 0  | 
       }else if( pMem->flags & MEM_Int ){  | 
 
| 
77294
 | 
 0  | 
 0  | 
       }else if( pMem->flags & MEM_Real ){  | 
 
| 
77296
 | 
 0  | 
 0  | 
       }else if( pMem->flags & MEM_Null ){  | 
 
| 
77316
 | 
 0  | 
 0  | 
       for(i=1; i<=n; i++){  | 
 
| 
77338
 | 
 0  | 
 0  | 
       if( zP4==0 ){  | 
 
| 
77362
 | 
 2175  | 
 2802  | 
   if( i!=1 && sqlite3BtreeSharable(p->db->aDb[i].pBt) ){  | 
 
| 
 | 
 0  | 
 2175  | 
   if( i!=1 && sqlite3BtreeSharable(p->db->aDb[i].pBt) ){  | 
 
| 
77394
 | 
 16207  | 
 0  | 
   if( DbMaskAllZero(p->lockMask) ) return;  /* The common case */  | 
 
| 
77398
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
77399
 | 
 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) ){  | 
 
| 
77461
 | 
 40799  | 
 12467  | 
   while( (N--)>0 ){  | 
 
| 
77476
 | 
 14138  | 
 3824  | 
   if( p && N ){  | 
 
| 
 | 
 8419  | 
 5719  | 
   if( p && N ){  | 
 
| 
77479
 | 
 0  | 
 8419  | 
     if( db->pnBytesFreed ){  | 
 
| 
77481
 | 
 0  | 
 0  | 
         if( p->szMalloc ) sqlite3DbFree(db, p->zMalloc);  | 
 
| 
77482
 | 
 0  | 
 0  | 
       }while( (++p)
 | 
 
| 
77504
 | 
 21  | 
 51992  | 
       if( p->flags&(MEM_Agg|MEM_Dyn) ){  | 
 
| 
77506
 | 
 21875  | 
 30117  | 
       }else if( p->szMalloc ){  | 
 
| 
77512
 | 
 43594  | 
 8419  | 
     }while( (++p)
 | 
 
| 
77554
 | 
 0  | 
 0  | 
   for(i=0; inChildCsr; i++){  | 
 
| 
77592
 | 
 0  | 
 0  | 
   int bListSubprogs = (p->explain==1 || (db->flags & SQLITE_TriggerEQP)!=0);  | 
 
| 
 | 
 0  | 
 0  | 
   int bListSubprogs = (p->explain==1 || (db->flags & SQLITE_TriggerEQP)!=0);  | 
 
| 
77606
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_NOMEM ){  | 
 
| 
77621
 | 
 0  | 
 0  | 
   if( bListSubprogs ){  | 
 
| 
77628
 | 
 0  | 
 0  | 
     if( pSub->flags&MEM_Blob ){  | 
 
| 
77634
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
77641
 | 
 0  | 
 0  | 
     if( i>=nRow ){  | 
 
| 
77646
 | 
 0  | 
 0  | 
     if( inOp ){  | 
 
| 
77655
 | 
 0  | 
 0  | 
       for(j=0; i>=apSub[j]->nOp; j++){  | 
 
| 
77666
 | 
 0  | 
 0  | 
     if( bListSubprogs && pOp->p4type==P4_SUBPROGRAM ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( bListSubprogs && pOp->p4type==P4_SUBPROGRAM ){  | 
 
| 
77669
 | 
 0  | 
 0  | 
       for(j=0; j
 | 
 
| 
77670
 | 
 0  | 
 0  | 
         if( apSub[j]==pOp->p4.pProgram ) break;  | 
 
| 
77672
 | 
 0  | 
 0  | 
       if( j==nSub ){  | 
 
| 
77674
 | 
 0  | 
 0  | 
         if( p->rc!=SQLITE_OK ){  | 
 
| 
77685
 | 
 0  | 
 0  | 
     if( p->explain<2 ) break;  | 
 
| 
77686
 | 
 0  | 
 0  | 
     if( pOp->opcode==OP_Explain ) break;  | 
 
| 
77687
 | 
 0  | 
 0  | 
     if( pOp->opcode==OP_Init && p->pc>1 ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( pOp->opcode==OP_Init && p->pc>1 ) break;  | 
 
| 
77690
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
77691
 | 
 0  | 
 0  | 
     if( db->u1.isInterrupted ){  | 
 
| 
77697
 | 
 0  | 
 0  | 
       if( p->explain==1 ){  | 
 
| 
77722
 | 
 0  | 
 0  | 
       if( sqlite3VdbeMemClearAndResize(pMem, 100) ){ /* P4 */  | 
 
| 
77728
 | 
 0  | 
 0  | 
       if( zP4!=pMem->z ){  | 
 
| 
77738
 | 
 0  | 
 0  | 
       if( p->explain==1 ){  | 
 
| 
77739
 | 
 0  | 
 0  | 
         if( sqlite3VdbeMemClearAndResize(pMem, 4) ){  | 
 
| 
77851
 | 
 22042  | 
 922  | 
   if( pBuf==0 ){  | 
 
| 
77853
 | 
 21716  | 
 326  | 
     if( nByte <= p->nFree ){  | 
 
| 
77951
 | 
 1458  | 
 3971  | 
   if( nCursor==0 && nMem>0 ) nMem++;  /* Space for aMem[0] even if not used */  | 
 
| 
 | 
 561  | 
 897  | 
   if( nCursor==0 && nMem>0 ) nMem++;  /* Space for aMem[0] even if not used */  | 
 
| 
77965
 | 
 257  | 
 5172  | 
   p->usesStmtJournal = (u8)(pParse->isMultiWrite && pParse->mayAbort);  | 
 
| 
 | 
 11  | 
 246  | 
   p->usesStmtJournal = (u8)(pParse->isMultiWrite && pParse->mayAbort);  | 
 
| 
77966
 | 
 0  | 
 5429  | 
   if( pParse->explain && nMem<10 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pParse->explain && nMem<10 ){  | 
 
| 
77990
 | 
 5429  | 
 312  | 
     if( x.nNeeded==0 ) break;  | 
 
| 
77993
 | 
 312  | 
 0  | 
   }while( !db->mallocFailed );  | 
 
| 
77998
 | 
 0  | 
 5429  | 
   if( db->mallocFailed ){  | 
 
| 
78021
 | 
 206  | 
 5645  | 
   if( pCx==0 ){  | 
 
| 
78031
 | 
 5  | 
 5282  | 
       if( pCx->isEphemeral ){  | 
 
| 
78032
 | 
 5  | 
 0  | 
         if( pCx->pBtx ) sqlite3BtreeClose(pCx->pBtx);  | 
 
| 
78058
 | 
 7100  | 
 0  | 
   if( p->apCsr ){  | 
 
| 
78060
 | 
 6980  | 
 7100  | 
     for(i=0; inCursor; i++){  | 
 
| 
78062
 | 
 4814  | 
 2166  | 
       if( pC ){  | 
 
| 
78105
 | 
 0  | 
 7100  | 
   if( p->pFrame ){  | 
 
| 
78107
 | 
 0  | 
 0  | 
     for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent);  | 
 
| 
78114
 | 
 7100  | 
 0  | 
   if( p->aMem ){  | 
 
| 
78117
 | 
 0  | 
 7100  | 
   while( p->pDelFrame ){  | 
 
| 
78124
 | 
 0  | 
 7100  | 
   if( p->pAuxData ) sqlite3VdbeDeleteAuxData(p->db, &p->pAuxData, -1, 0);  | 
 
| 
78138
 | 
 4  | 
 1605  | 
   if( p->nResColumn ){  | 
 
| 
78145
 | 
 0  | 
 1609  | 
   if( p->aColName==0 ) return;  | 
 
| 
78170
 | 
 0  | 
 13448  | 
   if( p->db->mallocFailed ){  | 
 
| 
78216
 | 
 5713  | 
 0  | 
   for(i=0; rc==SQLITE_OK && inDb; i++){   | 
 
| 
 | 
 3841  | 
 1872  | 
   for(i=0; rc==SQLITE_OK && inDb; i++){   | 
 
| 
78218
 | 
 952  | 
 2889  | 
     if( sqlite3BtreeIsInTrans(pBt) ){  | 
 
| 
78234
 | 
 757  | 
 195  | 
       if( db->aDb[i].safety_level!=PAGER_SYNCHRONOUS_OFF  | 
 
| 
78235
 | 
 77  | 
 680  | 
        && aMJNeeded[sqlite3PagerGetJournalMode(pPager)]  | 
 
| 
78236
 | 
 77  | 
 0  | 
        && sqlite3PagerIsMemdb(pPager)==0  | 
 
| 
78245
 | 
 0  | 
 1872  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
78250
 | 
 934  | 
 938  | 
   if( needXcommit && db->xCommitCallback ){  | 
 
| 
 | 
 10  | 
 924  | 
   if( needXcommit && db->xCommitCallback ){  | 
 
| 
78252
 | 
 4  | 
 6  | 
     if( rc ){  | 
 
| 
78266
 | 
 146  | 
 1722  | 
   if( 0==sqlite3Strlen30(sqlite3BtreeGetFilename(db->aDb[0].pBt))  | 
 
| 
78267
 | 
 146  | 
 0  | 
    || nTrans<=1  | 
 
| 
78269
 | 
 5701  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inDb; i++){  | 
 
| 
 | 
 3833  | 
 1868  | 
     for(i=0; rc==SQLITE_OK && inDb; i++){  | 
 
| 
78271
 | 
 2278  | 
 1555  | 
       if( pBt ){  | 
 
| 
78281
 | 
 5701  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inDb; i++){  | 
 
| 
 | 
 3833  | 
 1868  | 
     for(i=0; rc==SQLITE_OK && inDb; i++){  | 
 
| 
78283
 | 
 2278  | 
 1555  | 
       if( pBt ){  | 
 
| 
78287
 | 
 1868  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
78310
 | 
 0  | 
 0  | 
     if( zMaster==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
78313
 | 
 0  | 
 0  | 
       if( retryCount ){  | 
 
| 
78314
 | 
 0  | 
 0  | 
         if( retryCount>100 ){  | 
 
| 
78318
 | 
 0  | 
 0  | 
         }else if( retryCount==1 ){  | 
 
| 
78331
 | 
 0  | 
 0  | 
     }while( rc==SQLITE_OK && res );  | 
 
| 
 | 
 0  | 
 0  | 
     }while( rc==SQLITE_OK && res );  | 
 
| 
78332
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
78339
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
78350
 | 
 0  | 
 0  | 
     for(i=0; inDb; i++){  | 
 
| 
78352
 | 
 0  | 
 0  | 
       if( sqlite3BtreeIsInTrans(pBt) ){  | 
 
| 
78354
 | 
 0  | 
 0  | 
         if( zFile==0 ){  | 
 
| 
78360
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
78372
 | 
 0  | 
 0  | 
     if( 0==(sqlite3OsDeviceCharacteristics(pMaster)&SQLITE_IOCAP_SEQUENTIAL)  | 
 
| 
78373
 | 
 0  | 
 0  | 
      && SQLITE_OK!=(rc = sqlite3OsSync(pMaster, SQLITE_SYNC_NORMAL))  | 
 
| 
78391
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inDb; i++){   | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inDb; i++){   | 
 
| 
78393
 | 
 0  | 
 0  | 
       if( pBt ){  | 
 
| 
78399
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
78411
 | 
 0  | 
 0  | 
     if( rc ){  | 
 
| 
78424
 | 
 0  | 
 0  | 
     for(i=0; inDb; i++){   | 
 
| 
78426
 | 
 0  | 
 0  | 
       if( pBt ){  | 
 
| 
78492
 | 
 0  | 
 0  | 
   for(i=0; inDb; i++){   | 
 
| 
78495
 | 
 0  | 
 0  | 
     if( pBt ){  | 
 
| 
78496
 | 
 0  | 
 0  | 
       if( eOp==SAVEPOINT_ROLLBACK ){  | 
 
| 
78499
 | 
 0  | 
 0  | 
       if( rc2==SQLITE_OK ){  | 
 
| 
78502
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
78510
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
78511
 | 
 0  | 
 0  | 
     if( eOp==SAVEPOINT_ROLLBACK ){  | 
 
| 
78514
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
78522
 | 
 0  | 
 0  | 
   if( eOp==SAVEPOINT_ROLLBACK ){  | 
 
| 
78529
 | 
 0  | 
 9318  | 
   if( p->db->nStatement && p->iStatement ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->db->nStatement && p->iStatement ){  | 
 
| 
78549
 | 
 2069  | 
 11171  | 
   if( (deferred && (db->nDeferredCons+db->nDeferredImmCons)>0)   | 
 
| 
 | 
 2069  | 
 0  | 
   if( (deferred && (db->nDeferredCons+db->nDeferredImmCons)>0)   | 
 
| 
78550
 | 
 11171  | 
 2069  | 
    || (!deferred && p->nFkConstraint>0)   | 
 
| 
 | 
 1  | 
 11170  | 
    || (!deferred && p->nFkConstraint>0)   | 
 
| 
78594
 | 
 4998  | 
 7100  | 
   if( p->magic!=VDBE_MAGIC_RUN ){  | 
 
| 
78597
 | 
 0  | 
 7100  | 
   if( db->mallocFailed ){  | 
 
| 
78605
 | 
 5355  | 
 1745  | 
   if( p->pc>=0 && p->bIsReader ){  | 
 
| 
 | 
 4883  | 
 472  | 
   if( p->pc>=0 && p->bIsReader ){  | 
 
| 
78615
 | 
 4883  | 
 0  | 
     isSpecialError = mrc==SQLITE_NOMEM || mrc==SQLITE_IOERR  | 
 
| 
78616
 | 
 4883  | 
 0  | 
                      || mrc==SQLITE_INTERRUPT || mrc==SQLITE_FULL;  | 
 
| 
 | 
 4883  | 
 0  | 
                      || mrc==SQLITE_INTERRUPT || mrc==SQLITE_FULL;  | 
 
| 
 | 
 0  | 
 4883  | 
                      || mrc==SQLITE_INTERRUPT || mrc==SQLITE_FULL;  | 
 
| 
78617
 | 
 0  | 
 4883  | 
     if( isSpecialError ){  | 
 
| 
78630
 | 
 0  | 
 0  | 
       if( !p->readOnly || mrc!=SQLITE_INTERRUPT ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( !p->readOnly || mrc!=SQLITE_INTERRUPT ){  | 
 
| 
78631
 | 
 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 ){  | 
 
| 
78646
 | 
 4845  | 
 38  | 
     if( p->rc==SQLITE_OK ){  | 
 
| 
78656
 | 
 280  | 
 4603  | 
     if( !sqlite3VtabInSync(db)   | 
 
| 
 | 
 173  | 
 107  | 
     if( !sqlite3VtabInSync(db)   | 
 
| 
78657
 | 
 2196  | 
 2580  | 
      && db->autoCommit   | 
 
| 
78658
 | 
 1891  | 
 305  | 
      && db->nVdbeWrite==(p->readOnly==0)   | 
 
| 
78660
 | 
 19  | 
 1872  | 
       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) ){  | 
 
| 
78662
 | 
 0  | 
 1872  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
78663
 | 
 0  | 
 0  | 
           if( NEVER(p->readOnly) ){  | 
 
| 
78675
 | 
 0  | 
 1872  | 
         if( rc==SQLITE_BUSY && p->readOnly ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( rc==SQLITE_BUSY && p->readOnly ){  | 
 
| 
78678
 | 
 4  | 
 1868  | 
         }else if( rc!=SQLITE_OK ){  | 
 
| 
78693
 | 
 2992  | 
 0  | 
     }else if( eStatementOp==0 ){  | 
 
| 
78694
 | 
 20  | 
 2972  | 
       if( p->rc==SQLITE_OK || p->errorAction==OE_Fail ){  | 
 
| 
 | 
 0  | 
 20  | 
       if( p->rc==SQLITE_OK || p->errorAction==OE_Fail ){  | 
 
| 
78696
 | 
 20  | 
 0  | 
       }else if( p->errorAction==OE_Abort ){  | 
 
| 
78712
 | 
 2992  | 
 1891  | 
     if( eStatementOp ){  | 
 
| 
78714
 | 
 0  | 
 2992  | 
       if( rc ){  | 
 
| 
78715
 | 
 0  | 
 0  | 
         if( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT ){  | 
 
| 
78730
 | 
 3081  | 
 1802  | 
     if( p->changeCntOn ){  | 
 
| 
78731
 | 
 3081  | 
 0  | 
       if( eStatementOp!=SAVEPOINT_ROLLBACK ){  | 
 
| 
78744
 | 
 5355  | 
 1745  | 
   if( p->pc>=0 ){  | 
 
| 
78746
 | 
 3398  | 
 1957  | 
     if( !p->readOnly ) db->nVdbeWrite--;  | 
 
| 
78747
 | 
 4883  | 
 472  | 
     if( p->bIsReader ) db->nVdbeRead--;  | 
 
| 
78754
 | 
 0  | 
 7100  | 
   if( db->mallocFailed ){  | 
 
| 
78767
 | 
 7  | 
 7093  | 
   return (p->rc==SQLITE_BUSY ? SQLITE_BUSY : SQLITE_OK);  | 
 
| 
78790
 | 
 76  | 
 5329  | 
   if( p->zErrMsg ){  | 
 
| 
78793
 | 
 14  | 
 62  | 
     if( db->pErr==0 ) db->pErr = sqlite3ValueNew(db);  | 
 
| 
78797
 | 
 335  | 
 4994  | 
   }else if( db->pErr ){  | 
 
| 
78855
 | 
 5355  | 
 1745  | 
   if( p->pc>=0 ){  | 
 
| 
78858
 | 
 175  | 
 5180  | 
     if( p->runOnlyOnce ) p->expired = 1;  | 
 
| 
78859
 | 
 0  | 
 1745  | 
   }else if( p->rc && p->expired ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( p->rc && p->expired ){  | 
 
| 
78864
 | 
 0  | 
 0  | 
     sqlite3ErrorWithMsg(db, p->rc, p->zErrMsg ? "%s" : 0, p->zErrMsg);  | 
 
| 
78929
 | 
 3399  | 
 2030  | 
   if( p->magic==VDBE_MAGIC_RUN || p->magic==VDBE_MAGIC_HALT ){  | 
 
| 
 | 
 3399  | 
 0  | 
   if( p->magic==VDBE_MAGIC_RUN || p->magic==VDBE_MAGIC_HALT ){  | 
 
| 
78954
 | 
 0  | 
 6  | 
   while( *pp ){  | 
 
| 
78956
 | 
 0  | 
 0  | 
     if( (iOp<0)  | 
 
| 
78957
 | 
 0  | 
 0  | 
      || (pAux->iAuxOp==iOp  | 
 
| 
78958
 | 
 0  | 
 0  | 
           && pAux->iAuxArg>=0  | 
 
| 
78959
 | 
 0  | 
 0  | 
           && (pAux->iAuxArg>31 || !(mask & MASKBIT32(pAux->iAuxArg))))  | 
 
| 
 | 
 0  | 
 0  | 
           && (pAux->iAuxArg>31 || !(mask & MASKBIT32(pAux->iAuxArg))))  | 
 
| 
78962
 | 
 0  | 
 0  | 
       if( pAux->xDeleteAux ){  | 
 
| 
78985
 | 
 0  | 
 5429  | 
   for(pSub=p->pProgram; pSub; pSub=pNext){  | 
 
| 
78990
 | 
 5429  | 
 0  | 
   if( p->magic!=VDBE_MAGIC_INIT ){  | 
 
| 
79022
 | 
 101  | 
 5328  | 
   if( p->pPrev ){  | 
 
| 
79028
 | 
 1110  | 
 4319  | 
   if( p->pNext ){  | 
 
| 
79050
 | 
 0  | 
 236  | 
   if( rc ) return rc;  | 
 
| 
79051
 | 
 0  | 
 236  | 
   if( res!=0 ) return SQLITE_CORRUPT_BKPT;  | 
 
| 
79074
 | 
 0  | 
 0  | 
   if( isDifferentRow ) p->nullRow = 1;  | 
 
| 
79084
 | 
 0  | 
 769  | 
   if( sqlite3BtreeCursorHasMoved(p->uc.pCursor) ){  | 
 
| 
79106
 | 
 236  | 
 15733  | 
   if( p->deferredMoveto ){  | 
 
| 
79108
 | 
 0  | 
 236  | 
     if( p->aAltMap && (iMap = p->aAltMap[1+*piCol])>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->aAltMap && (iMap = p->aAltMap[1+*piCol])>0 ){  | 
 
| 
79115
 | 
 0  | 
 15733  | 
   if( sqlite3BtreeCursorHasMoved(p->uc.pCursor) ){  | 
 
| 
79171
 | 
 744  | 
 11001  | 
   if( flags&MEM_Null ){  | 
 
| 
79175
 | 
 1874  | 
 9127  | 
   if( flags&MEM_Int ){  | 
 
| 
79180
 | 
 101  | 
 1773  | 
     if( i<0 ){  | 
 
| 
79185
 | 
 1642  | 
 232  | 
     if( u<=127 ){  | 
 
| 
79186
 | 
 927  | 
 715  | 
       if( (i&1)==i && file_format>=4 ){  | 
 
| 
 | 
 927  | 
 0  | 
       if( (i&1)==i && file_format>=4 ){  | 
 
| 
79194
 | 
 70  | 
 162  | 
     if( u<=32767 ){ *pLen = 2; return 2; }  | 
 
| 
79195
 | 
 0  | 
 162  | 
     if( u<=8388607 ){ *pLen = 3; return 3; }  | 
 
| 
79196
 | 
 30  | 
 132  | 
     if( u<=2147483647 ){ *pLen = 4; return 4; }  | 
 
| 
79197
 | 
 48  | 
 84  | 
     if( u<=MAX_6BYTE ){ *pLen = 6; return 5; }  | 
 
| 
79201
 | 
 6162  | 
 2965  | 
   if( flags&MEM_Real ){  | 
 
| 
79208
 | 
 1  | 
 2964  | 
   if( flags & MEM_Zero ){  | 
 
| 
79239
 | 
 214  | 
 54  | 
   if( serial_type>=128 ){  | 
 
| 
79322
 | 
 7853  | 
 3892  | 
   if( serial_type<=7 && serial_type>0 ){  | 
 
| 
 | 
 7109  | 
 744  | 
   if( serial_type<=7 && serial_type>0 ){  | 
 
| 
79325
 | 
 6162  | 
 947  | 
     if( serial_type==7 ){  | 
 
| 
79337
 | 
 44122  | 
 7109  | 
     }while( i );  | 
 
| 
79342
 | 
 2965  | 
 1671  | 
   if( serial_type>=12 ){  | 
 
| 
79346
 | 
 2962  | 
 3  | 
     if( len>0 ) memcpy(buf, pMem->z, len);  | 
 
| 
79380
 | 
 84  | 
 62958  | 
   if( serial_type==6 ){  | 
 
| 
79404
 | 
 0  | 
 62958  | 
     pMem->flags = sqlite3IsNaN(pMem->u.r) ? MEM_Null : MEM_Real;  | 
 
| 
79520
 | 
 0  | 
 129  | 
   if( !p ) return 0;  | 
 
| 
79548
 | 
 20201  | 
 0  | 
   idx = getVarint32(aKey, szHdr);  | 
 
| 
79551
 | 
 20211  | 
 0  | 
   while( idx
 | 
 
| 
 | 
 20211  | 
 0  | 
   while( idx
 | 
 
| 
79554
 | 
 20211  | 
 0  | 
     idx += getVarint32(&aKey[idx], serial_type);  | 
 
| 
79562
 | 
 20201  | 
 10  | 
     if( (++u)>=p->nField ) break;  | 
 
| 
79721
 | 
 1721  | 
 0  | 
   if( pMem1->enc==pColl->enc ){  | 
 
| 
79736
 | 
 0  | 
 0  | 
     if( (v1==0 || v2==0) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (v1==0 || v2==0) ){  | 
 
| 
79737
 | 
 0  | 
 0  | 
       if( prcErr ) *prcErr = SQLITE_NOMEM_BKPT;  | 
 
| 
79754
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
79755
 | 
 0  | 
 0  | 
     if( z[i] ) return 0;  | 
 
| 
79777
 | 
 0  | 
 197  | 
   if( (pB1->flags|pB2->flags) & MEM_Zero ){  | 
 
| 
79778
 | 
 0  | 
 0  | 
     if( pB1->flags & pB2->flags & MEM_Zero ){  | 
 
| 
79780
 | 
 0  | 
 0  | 
     }else if( pB1->flags & MEM_Zero ){  | 
 
| 
79781
 | 
 0  | 
 0  | 
       if( !isAllZero(pB2->z, pB2->n) ) return -1;  | 
 
| 
79784
 | 
 0  | 
 0  | 
       if( !isAllZero(pB1->z, pB1->n) ) return +1;  | 
 
| 
79789
 | 
 4  | 
 193  | 
   if( c ) return c;  | 
 
| 
79801
 | 
 0  | 
 0  | 
     if( x
 | 
 
| 
79802
 | 
 0  | 
 0  | 
     if( x>r ) return +1;  | 
 
| 
79840
 | 
 18  | 
 1734  | 
   if( combined_flags&MEM_Null ){  | 
 
| 
79846
 | 
 523  | 
 1211  | 
   if( combined_flags&(MEM_Int|MEM_Real) ){  | 
 
| 
79847
 | 
 387  | 
 136  | 
     if( (f1 & f2 & MEM_Int)!=0 ){  | 
 
| 
79848
 | 
 4  | 
 383  | 
       if( pMem1->u.i < pMem2->u.i ) return -1;  | 
 
| 
79849
 | 
 208  | 
 175  | 
       if( pMem1->u.i > pMem2->u.i ) return +1;  | 
 
| 
79852
 | 
 0  | 
 136  | 
     if( (f1 & f2 & MEM_Real)!=0 ){  | 
 
| 
79853
 | 
 0  | 
 0  | 
       if( pMem1->u.r < pMem2->u.r ) return -1;  | 
 
| 
79854
 | 
 0  | 
 0  | 
       if( pMem1->u.r > pMem2->u.r ) return +1;  | 
 
| 
79857
 | 
 16  | 
 120  | 
     if( (f1&MEM_Int)!=0 ){  | 
 
| 
79858
 | 
 0  | 
 16  | 
       if( (f2&MEM_Real)!=0 ){  | 
 
| 
79864
 | 
 120  | 
 0  | 
     if( (f1&MEM_Real)!=0 ){  | 
 
| 
79865
 | 
 0  | 
 120  | 
       if( (f2&MEM_Int)!=0 ){  | 
 
| 
79877
 | 
 1211  | 
 0  | 
   if( combined_flags&MEM_Str ){  | 
 
| 
79878
 | 
 0  | 
 1211  | 
     if( (f1 & MEM_Str)==0 ){  | 
 
| 
79881
 | 
 0  | 
 1211  | 
     if( (f2 & MEM_Str)==0 ){  | 
 
| 
79895
 | 
 1014  | 
 197  | 
     if( pColl ){  | 
 
| 
79987
 | 
 35  | 
 35905  | 
   if( bSkip ){  | 
 
| 
79989
 | 
 35  | 
 0  | 
     idx1 = 1 + getVarint32(&aKey1[1], s1);  | 
 
| 
79995
 | 
 35905  | 
 0  | 
     idx1 = getVarint32(aKey1, szHdr1);  | 
 
| 
79997
 | 
 0  | 
 35905  | 
     if( d1>(unsigned)nKey1 ){   | 
 
| 
80014
 | 
 315  | 
 35644  | 
     if( pRhs->flags & MEM_Int ){  | 
 
| 
80017
 | 
 0  | 
 315  | 
       if( serial_type>=10 ){  | 
 
| 
80019
 | 
 8  | 
 307  | 
       }else if( serial_type==0 ){  | 
 
| 
80021
 | 
 0  | 
 307  | 
       }else if( serial_type==7 ){  | 
 
| 
80027
 | 
 61  | 
 246  | 
         if( lhs
 | 
 
| 
80029
 | 
 4  | 
 242  | 
         }else if( lhs>rhs ){  | 
 
| 
80036
 | 
 34889  | 
 755  | 
     else if( pRhs->flags & MEM_Real ){  | 
 
| 
80038
 | 
 0  | 
 34889  | 
       if( serial_type>=10 ){  | 
 
| 
80044
 | 
 0  | 
 34889  | 
       }else if( serial_type==0 ){  | 
 
| 
80048
 | 
 34889  | 
 0  | 
         if( serial_type==7 ){  | 
 
| 
80049
 | 
 17419  | 
 17470  | 
           if( mem1.u.ru.r ){  | 
 
| 
80051
 | 
 17470  | 
 0  | 
           }else if( mem1.u.r>pRhs->u.r ){  | 
 
| 
80061
 | 
 713  | 
 42  | 
     else if( pRhs->flags & MEM_Str ){  | 
 
| 
80062
 | 
 713  | 
 0  | 
       getVarint32(&aKey1[idx1], serial_type);  | 
 
| 
80064
 | 
 6  | 
 707  | 
       if( serial_type<12 ){  | 
 
| 
80066
 | 
 0  | 
 707  | 
       }else if( !(serial_type & 0x01) ){  | 
 
| 
80072
 | 
 0  | 
 707  | 
         if( (d1+mem1.n) > (unsigned)nKey1 ){  | 
 
| 
80075
 | 
 707  | 
 0  | 
         }else if( (pKeyInfo = pPKey2->pKeyInfo)->aColl[i] ){  | 
 
| 
80086
 | 
 0  | 
 0  | 
           if( rc==0 ) rc = mem1.n - pRhs->n;   | 
 
| 
80092
 | 
 0  | 
 42  | 
     else if( pRhs->flags & MEM_Blob ){  | 
 
| 
80094
 | 
 0  | 
 0  | 
       getVarint32(&aKey1[idx1], serial_type);  | 
 
| 
80096
 | 
 0  | 
 0  | 
       if( serial_type<12 || (serial_type & 0x01) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( serial_type<12 || (serial_type & 0x01) ){  | 
 
| 
80102
 | 
 0  | 
 0  | 
         if( (d1+nStr) > (unsigned)nKey1 ){  | 
 
| 
80105
 | 
 0  | 
 0  | 
         }else if( pRhs->flags & MEM_Zero ){  | 
 
| 
80106
 | 
 0  | 
 0  | 
           if( !isAllZero((const char*)&aKey1[d1],nStr) ){  | 
 
| 
80114
 | 
 0  | 
 0  | 
           if( rc==0 ) rc = nStr - pRhs->n;  | 
 
| 
80125
 | 
 35645  | 
 314  | 
     if( rc!=0 ){  | 
 
| 
80126
 | 
 17451  | 
 18194  | 
       if( pPKey2->pKeyInfo->aSortOrder[i] ){  | 
 
| 
80135
 | 
 295  | 
 19  | 
     if( i==pPKey2->nField ) break;  | 
 
| 
80139
 | 
 19  | 
 0  | 
   }while( idx1<(unsigned)szHdr1 && d1<=(unsigned)nKey1 );  | 
 
| 
 | 
 19  | 
 0  | 
   }while( idx1<(unsigned)szHdr1 && d1<=(unsigned)nKey1 );  | 
 
| 
80242
 | 
 221  | 
 63  | 
   if( v>lhs ){  | 
 
| 
80244
 | 
 1  | 
 62  | 
   }else if( v
 | 
 
| 
80246
 | 
 30  | 
 32  | 
   }else if( pPKey2->nField>1 ){  | 
 
| 
80277
 | 
 13  | 
 0  | 
   getVarint32(&aKey1[1], serial_type);  | 
 
| 
80278
 | 
 2  | 
 11  | 
   if( serial_type<12 ){  | 
 
| 
80280
 | 
 0  | 
 11  | 
   }else if( !(serial_type & 0x01) ){   | 
 
| 
80288
 | 
 0  | 
 11  | 
     if( (szHdr + nStr) > nKey1 ){  | 
 
| 
80295
 | 
 10  | 
 1  | 
     if( res==0 ){  | 
 
| 
80297
 | 
 4  | 
 6  | 
       if( res==0 ){  | 
 
| 
80298
 | 
 0  | 
 4  | 
         if( pPKey2->nField>1 ){  | 
 
| 
80304
 | 
 0  | 
 6  | 
       }else if( res>0 ){  | 
 
| 
80309
 | 
 0  | 
 1  | 
     }else if( res>0 ){  | 
 
| 
80342
 | 
 184  | 
 0  | 
   if( p->pKeyInfo->nAllField<=13 ){  | 
 
| 
80344
 | 
 0  | 
 184  | 
     if( p->pKeyInfo->aSortOrder[0] ){  | 
 
| 
80351
 | 
 147  | 
 37  | 
     if( (flags & MEM_Int) ){  | 
 
| 
80357
 | 
 23  | 
 14  | 
     if( (flags & (MEM_Real|MEM_Null|MEM_Blob))==0 && p->pKeyInfo->aColl[0]==0 ){  | 
 
| 
 | 
 15  | 
 8  | 
     if( (flags & (MEM_Real|MEM_Null|MEM_Blob))==0 && p->pKeyInfo->aColl[0]==0 ){  | 
 
| 
80394
 | 
 0  | 
 257  | 
   if( rc ){  | 
 
| 
80399
 | 
 257  | 
 0  | 
   (void)getVarint32((u8*)m.z, szHdr);  | 
 
| 
80404
 | 
 257  | 
 0  | 
   if( unlikely(szHdr<3 || szHdr>(unsigned)m.n) ){  | 
 
| 
 | 
 257  | 
 0  | 
   if( unlikely(szHdr<3 || szHdr>(unsigned)m.n) ){  | 
 
| 
80410
 | 
 257  | 
 0  | 
   (void)getVarint32((u8*)&m.z[szHdr-1], typeRowid);  | 
 
| 
80419
 | 
 257  | 
 0  | 
   if( unlikely(typeRowid<1 || typeRowid>9 || typeRowid==7) ){  | 
 
| 
 | 
 257  | 
 0  | 
   if( unlikely(typeRowid<1 || typeRowid>9 || typeRowid==7) ){  | 
 
| 
 | 
 257  | 
 0  | 
   if( unlikely(typeRowid<1 || typeRowid>9 || typeRowid==7) ){  | 
 
| 
80424
 | 
 0  | 
 257  | 
   if( unlikely((u32)m.n
 | 
 
| 
80470
 | 
 272  | 
 0  | 
   if( nCellKey<=0 || nCellKey>0x7fffffff ){  | 
 
| 
 | 
 0  | 
 272  | 
   if( nCellKey<=0 || nCellKey>0x7fffffff ){  | 
 
| 
80476
 | 
 0  | 
 272  | 
   if( rc ){  | 
 
| 
80522
 | 
 132  | 
 356  | 
   for(p = db->pVdbe; p; p=p->pNext){  | 
 
| 
80551
 | 
 0  | 
 0  | 
   if( v ){  | 
 
| 
80554
 | 
 0  | 
 0  | 
     if( 0==(pMem->flags & MEM_Null) ){  | 
 
| 
80556
 | 
 0  | 
 0  | 
       if( pRet ){  | 
 
| 
80574
 | 
 0  | 
 0  | 
   if( iVar>=32 ){  | 
 
| 
80594
 | 
 0  | 
 0  | 
   if( pCtx->pVdbe->aOp[pCtx->iOp].opcode==OP_PureFunc ){  | 
 
| 
80610
 | 
 0  | 
 365  | 
   if( pVtab->zErrMsg ){  | 
 
| 
80740
 | 
 0  | 
 0  | 
   return p==0 || p->expired;  | 
 
| 
 | 
 0  | 
 0  | 
   return p==0 || p->expired;  | 
 
| 
80750
 | 
 0  | 
 15405  | 
   if( p->db==0 ){  | 
 
| 
80758
 | 
 0  | 
 13345  | 
   if( p==0 ){  | 
 
| 
80780
 | 
 6  | 
 0  | 
   if( db->xProfile ){  | 
 
| 
80783
 | 
 0  | 
 6  | 
   if( db->mTrace & SQLITE_TRACE_PROFILE ){  | 
 
| 
80809
 | 
 376  | 
 2060  | 
   if( pStmt==0 ){  | 
 
| 
80816
 | 
 0  | 
 2060  | 
     if( vdbeSafety(v) ) return SQLITE_MISUSE_BKPT;  | 
 
| 
80818
 | 
 0  | 
 2060  | 
     checkProfileCallback(db, v);  | 
 
| 
80836
 | 
 64  | 
 1671  | 
   if( pStmt==0 ){  | 
 
| 
80842
 | 
 0  | 
 1671  | 
     checkProfileCallback(db, v);  | 
 
| 
80863
 | 
 0  | 
 0  | 
   for(i=0; inVar; i++){  | 
 
| 
80868
 | 
 0  | 
 0  | 
   if( p->expmask ){  | 
 
| 
80882
 | 
 512  | 
 0  | 
   if( p->flags & (MEM_Blob|MEM_Str) ){  | 
 
| 
80883
 | 
 0  | 
 512  | 
     if( ExpandBlob(p)!=SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( ExpandBlob(p)!=SQLITE_OK ){  | 
 
| 
80888
 | 
 511  | 
 1  | 
     return p->n ? p->z : 0;  | 
 
| 
80910
 | 
 0  | 
 0  | 
   return ((pMem->flags & MEM_Subtype) ? pMem->eSubtype : 0);  | 
 
| 
80914
 | 
 0  | 
 0  | 
   if( (p->flags&(MEM_TypeMask|MEM_Term|MEM_Subtype)) ==  | 
 
| 
80916
 | 
 0  | 
 0  | 
    && zPType!=0  | 
 
| 
80917
 | 
 0  | 
 0  | 
    && p->eSubtype=='p'  | 
 
| 
80918
 | 
 0  | 
 0  | 
    && strcmp(p->u.zPType, zPType)==0  | 
 
| 
80990
 | 
 0  | 
 0  | 
   if( pOrig==0 ) return 0;  | 
 
| 
80992
 | 
 0  | 
 0  | 
   if( pNew==0 ) return 0;  | 
 
| 
80997
 | 
 0  | 
 0  | 
   if( pNew->flags&(MEM_Str|MEM_Blob) ){  | 
 
| 
81000
 | 
 0  | 
 0  | 
     if( sqlite3VdbeMemMakeWriteable(pNew)!=SQLITE_OK ){  | 
 
| 
81034
 | 
 0  | 
 303  | 
   if( sqlite3VdbeMemSetStr(pCtx->pOut, z, n, enc, xDel)==SQLITE_TOOBIG ){  | 
 
| 
81044
 | 
 0  | 
 0  | 
   if( xDel==0 ){  | 
 
| 
81046
 | 
 0  | 
 0  | 
   }else if( xDel==SQLITE_TRANSIENT ){  | 
 
| 
81051
 | 
 0  | 
 0  | 
   if( pCtx ) sqlite3_result_error_toobig(pCtx);  | 
 
| 
81072
 | 
 0  | 
 0  | 
   if( n>0x7fffffff ){  | 
 
| 
81142
 | 
 0  | 
 0  | 
   if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE;  | 
 
| 
81143
 | 
 0  | 
 0  | 
   if( n>0x7fffffff ){  | 
 
| 
81189
 | 
 0  | 
 1  | 
   if( n>(u64)pOut->db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
81196
 | 
 0  | 
 0  | 
   pCtx->isError = errCode ? errCode : -1;  | 
 
| 
81200
 | 
 0  | 
 0  | 
   if( pCtx->pOut->flags & MEM_Null ){  | 
 
| 
81230
 | 
 4960  | 
 2400  | 
   for(i=0; inDb; i++){  | 
 
| 
81232
 | 
 3028  | 
 1932  | 
     if( pBt ){  | 
 
| 
81237
 | 
 0  | 
 3028  | 
       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 ){  | 
 
| 
81261
 | 
 0  | 
 11325  | 
   if( p->magic!=VDBE_MAGIC_RUN ){  | 
 
| 
81291
 | 
 0  | 
 11325  | 
   if( db->mallocFailed ){  | 
 
| 
81296
 | 
 5356  | 
 5969  | 
   if( p->pc<=0 && p->expired ){  | 
 
| 
 | 
 1  | 
 5355  | 
   if( p->pc<=0 && p->expired ){  | 
 
| 
81301
 | 
 5355  | 
 5969  | 
   if( p->pc<0 ){  | 
 
| 
81306
 | 
 4749  | 
 606  | 
     if( db->nVdbeActive==0 ){  | 
 
| 
81315
 | 
 5347  | 
 8  | 
     if( (db->xProfile || (db->mTrace & SQLITE_TRACE_PROFILE)!=0)  | 
 
| 
 | 
 0  | 
 5347  | 
     if( (db->xProfile || (db->mTrace & SQLITE_TRACE_PROFILE)!=0)  | 
 
| 
81316
 | 
 6  | 
 2  | 
         && !db->init.busy && p->zSql ){  | 
 
| 
 | 
 6  | 
 0  | 
         && !db->init.busy && p->zSql ){  | 
 
| 
81324
 | 
 3398  | 
 1957  | 
     if( p->readOnly==0 ) db->nVdbeWrite++;  | 
 
| 
81325
 | 
 4883  | 
 472  | 
     if( p->bIsReader ) db->nVdbeRead++;  | 
 
| 
81332
 | 
 0  | 
 11324  | 
   if( p->explain ){  | 
 
| 
81344
 | 
 4998  | 
 6326  | 
   if( rc!=SQLITE_ROW ) checkProfileCallback(db, p);  | 
 
| 
 | 
 6  | 
 4992  | 
   if( rc!=SQLITE_ROW ) checkProfileCallback(db, p);  | 
 
| 
81347
 | 
 4949  | 
 6375  | 
   if( rc==SQLITE_DONE && db->autoCommit ){  | 
 
| 
 | 
 2400  | 
 2549  | 
   if( rc==SQLITE_DONE && db->autoCommit ){  | 
 
| 
81350
 | 
 0  | 
 2400  | 
     if( p->rc!=SQLITE_OK ){  | 
 
| 
81356
 | 
 0  | 
 11324  | 
   if( SQLITE_NOMEM==sqlite3ApiExit(p->db, p->rc) ){  | 
 
| 
81371
 | 
 10616  | 
 709  | 
   if( (p->prepFlags & SQLITE_PREPARE_SAVESQL)!=0   | 
 
| 
81372
 | 
 4595  | 
 6021  | 
    && rc!=SQLITE_ROW   | 
 
| 
81373
 | 
 50  | 
 4545  | 
    && rc!=SQLITE_DONE   | 
 
| 
81395
 | 
 0  | 
 11324  | 
   if( vdbeSafetyNotNull(v) ){  | 
 
| 
81401
 | 
 1  | 
 11324  | 
   while( (rc = sqlite3Step(v))==SQLITE_SCHEMA  | 
 
| 
81402
 | 
 1  | 
 0  | 
          && cnt++ < SQLITE_MAX_SCHEMA_RETRY ){  | 
 
| 
81405
 | 
 0  | 
 1  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
81416
 | 
 0  | 
 0  | 
       if( !db->mallocFailed ){  | 
 
| 
81426
 | 
 0  | 
 1  | 
     if( savedPc>=0 ) v->doingRerun = 1;  | 
 
| 
81493
 | 
 0  | 
 0  | 
   if( *piTime==0 ){  | 
 
| 
81495
 | 
 0  | 
 0  | 
     if( rc ) *piTime = 0;  | 
 
| 
81507
 | 
 71  | 
 115  | 
   if( nByte<=0 ){  | 
 
| 
81514
 | 
 115  | 
 0  | 
     if( pMem->z ){  | 
 
| 
81530
 | 
 186  | 
 468  | 
   if( (p->pMem->flags & MEM_Agg)==0 ){  | 
 
| 
81556
 | 
 0  | 
 0  | 
   for(pAuxData=pCtx->pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNextAux){  | 
 
| 
81557
 | 
 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) ){  | 
 
| 
81591
 | 
 0  | 
 0  | 
   for(pAuxData=pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNextAux){  | 
 
| 
81592
 | 
 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) ){  | 
 
| 
81596
 | 
 0  | 
 0  | 
   if( pAuxData==0 ){  | 
 
| 
81598
 | 
 0  | 
 0  | 
     if( !pAuxData ) goto failed;  | 
 
| 
81603
 | 
 0  | 
 0  | 
     if( pCtx->isError==0 ) pCtx->isError = -1;  | 
 
| 
81604
 | 
 0  | 
 0  | 
   }else if( pAuxData->xDeleteAux ){  | 
 
| 
81613
 | 
 0  | 
 0  | 
   if( xDelete ){  | 
 
| 
81639
 | 
 7113  | 
 4  | 
   return pVm ? pVm->nResColumn : 0;  | 
 
| 
81648
 | 
 14  | 
 0  | 
   if( pVm==0 || pVm->pResultSet==0 ) return 0;  | 
 
| 
 | 
 0  | 
 14  | 
   if( pVm==0 || pVm->pResultSet==0 ) return 0;  | 
 
| 
81700
 | 
 0  | 
 8586  | 
   if( pVm==0 ) return (Mem*)columnNullValue();  | 
 
| 
81703
 | 
 8580  | 
 6  | 
   if( pVm->pResultSet!=0 && inResColumn && i>=0 ){  | 
 
| 
 | 
 8580  | 
 0  | 
   if( pVm->pResultSet!=0 && inResColumn && i>=0 ){  | 
 
| 
 | 
 8580  | 
 0  | 
   if( pVm->pResultSet!=0 && inResColumn && i>=0 ){  | 
 
| 
81738
 | 
 8586  | 
 0  | 
   if( p ){  | 
 
| 
81792
 | 
 0  | 
 14  | 
   if( pOut->flags&MEM_Static ){  | 
 
| 
81849
 | 
 2651  | 
 0  | 
   if( N=0 ){  | 
 
| 
 | 
 2651  | 
 0  | 
   if( N=0 ){  | 
 
| 
81857
 | 
 0  | 
 2651  | 
     if( db->mallocFailed ){  | 
 
| 
81975
 | 
 0  | 
 2021  | 
   if( vdbeSafetyNotNull(p) ){  | 
 
| 
81979
 | 
 2021  | 
 0  | 
   if( p->magic!=VDBE_MAGIC_RUN || p->pc>=0 ){  | 
 
| 
 | 
 0  | 
 2021  | 
   if( p->magic!=VDBE_MAGIC_RUN || p->pc>=0 ){  | 
 
| 
81986
 | 
 2021  | 
 0  | 
   if( i<1 || i>p->nVar ){  | 
 
| 
 | 
 0  | 
 2021  | 
   if( i<1 || i>p->nVar ){  | 
 
| 
82007
 | 
 0  | 
 2021  | 
   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<
 | 
 
| 
82029
 | 
 1331  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
82030
 | 
 1331  | 
 0  | 
     if( zData!=0 ){  | 
 
| 
82033
 | 
 1331  | 
 0  | 
       if( rc==SQLITE_OK && encoding!=0 ){  | 
 
| 
 | 
 1009  | 
 322  | 
       if( rc==SQLITE_OK && encoding!=0 ){  | 
 
| 
82036
 | 
 0  | 
 1331  | 
       if( rc ){  | 
 
| 
82042
 | 
 0  | 
 0  | 
   }else if( xDel!=SQLITE_STATIC && xDel!=SQLITE_TRANSIENT ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( xDel!=SQLITE_STATIC && xDel!=SQLITE_TRANSIENT ){  | 
 
| 
82072
 | 
 0  | 
 0  | 
   if( nData>0x7fffffff ){  | 
 
| 
82082
 | 
 2  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
82095
 | 
 589  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
82120
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
82123
 | 
 0  | 
 0  | 
   }else if( xDestructor ){  | 
 
| 
82146
 | 
 0  | 
 0  | 
   if( nData>0x7fffffff ){  | 
 
| 
82149
 | 
 0  | 
 0  | 
     if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE;  | 
 
| 
82176
 | 
 0  | 
 0  | 
       if( pValue->flags & MEM_Zero ){  | 
 
| 
82199
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
82209
 | 
 0  | 
 0  | 
   if( n>(u64)p->db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
82226
 | 
 1249  | 
 7  | 
   return p ? p->nVar : 0;  | 
 
| 
82237
 | 
 0  | 
 4  | 
   if( p==0 ) return 0;  | 
 
| 
82247
 | 
 7  | 
 0  | 
   if( p==0 || zName==0 ) return 0;  | 
 
| 
 | 
 0  | 
 7  | 
   if( p==0 || zName==0 ) return 0;  | 
 
| 
82264
 | 
 0  | 
 1  | 
   for(i=0; inVar; i++){  | 
 
| 
82287
 | 
 0  | 
 0  | 
   if( pFrom->nVar!=pTo->nVar ){  | 
 
| 
82291
 | 
 0  | 
 0  | 
   if( pTo->expmask ){  | 
 
| 
82295
 | 
 0  | 
 0  | 
   if( pFrom->expmask ){  | 
 
| 
82309
 | 
 0  | 
 0  | 
   return pStmt ? ((Vdbe*)pStmt)->db : 0;  | 
 
| 
82317
 | 
 0  | 
 0  | 
   return pStmt ? ((Vdbe*)pStmt)->readOnly : 1;  | 
 
| 
82325
 | 
 0  | 
 0  | 
   return v!=0 && v->magic==VDBE_MAGIC_RUN && v->pc>=0;  | 
 
| 
 | 
 0  | 
 0  | 
   return v!=0 && v->magic==VDBE_MAGIC_RUN && v->pc>=0;  | 
 
| 
 | 
 0  | 
 0  | 
   return v!=0 && v->magic==VDBE_MAGIC_RUN && v->pc>=0;  | 
 
| 
82343
 | 
 0  | 
 0  | 
   if( pStmt==0 ){  | 
 
| 
82366
 | 
 0  | 
 6  | 
   if( op==SQLITE_STMTSTATUS_MEMUSED ){  | 
 
| 
82377
 | 
 0  | 
 6  | 
     if( resetFlag ) pVdbe->aCounter[op] = 0;  | 
 
| 
82387
 | 
 1385  | 
 0  | 
   return p ? p->zSql : 0;  | 
 
| 
82405
 | 
 0  | 
 0  | 
   if( zSql ){  | 
 
| 
82716
 | 
 110  | 
 10  | 
   while( zSql[0] ){  | 
 
| 
82719
 | 
 10  | 
 100  | 
     if( tokenType==TK_VARIABLE ){  | 
 
| 
82773
 | 
 0  | 
 14  | 
   if( db->nVdbeExec>1 ){  | 
 
| 
82774
 | 
 0  | 
 0  | 
     while( *zRawSql ){  | 
 
| 
82776
 | 
 0  | 
 0  | 
       while( *(zRawSql++)!='\n' && *zRawSql );  | 
 
| 
 | 
 0  | 
 0  | 
       while( *(zRawSql++)!='\n' && *zRawSql );  | 
 
| 
82781
 | 
 4  | 
 10  | 
   }else if( p->nVar==0 ){  | 
 
| 
82784
 | 
 20  | 
 0  | 
     while( zRawSql[0] ){  | 
 
| 
82790
 | 
 10  | 
 10  | 
       if( nToken==0 ) break;  | 
 
| 
82791
 | 
 10  | 
 0  | 
       if( zRawSql[0]=='?' ){  | 
 
| 
82792
 | 
 0  | 
 10  | 
         if( nToken>1 ){  | 
 
| 
82812
 | 
 0  | 
 10  | 
       if( pVar->flags & MEM_Null ){  | 
 
| 
82814
 | 
 0  | 
 10  | 
       }else if( pVar->flags & MEM_Int ){  | 
 
| 
82816
 | 
 0  | 
 10  | 
       }else if( pVar->flags & MEM_Real ){  | 
 
| 
82818
 | 
 10  | 
 0  | 
       }else if( pVar->flags & MEM_Str ){  | 
 
| 
82822
 | 
 0  | 
 10  | 
         if( enc!=SQLITE_UTF8 ){  | 
 
| 
82826
 | 
 0  | 
 0  | 
           if( SQLITE_NOMEM==sqlite3VdbeChangeEncoding(&utf8, SQLITE_UTF8) ){  | 
 
| 
82847
 | 
 0  | 
 10  | 
         if( enc!=SQLITE_UTF8 ) sqlite3VdbeMemRelease(&utf8);  | 
 
| 
82849
 | 
 0  | 
 0  | 
       }else if( pVar->flags & MEM_Zero ){  | 
 
| 
82859
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
82871
 | 
 0  | 
 14  | 
   if( out.accError ) sqlite3_str_reset(&out);  | 
 
| 
83111
 | 
 843  | 
 4802  | 
   Mem *pMem = iCur>0 ? &p->aMem[p->nMem-iCur] : p->aMem;  | 
 
| 
83115
 | 
 5287  | 
 358  | 
   nByte =   | 
 
| 
83120
 | 
 202  | 
 5443  | 
   if( p->apCsr[iCur] ){ /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
83124
 | 
 5645  | 
 0  | 
   if( SQLITE_OK==sqlite3VdbeMemClearAndResize(pMem, nByte) ){  | 
 
| 
83131
 | 
 5287  | 
 358  | 
     if( eCurType==CURTYPE_BTREE ){  | 
 
| 
83160
 | 
 28  | 
 299  | 
   if( sqlite3AtoF(pRec->z, &rValue, pRec->n, enc)==0 ) return;  | 
 
| 
83161
 | 
 295  | 
 4  | 
   if( 0==sqlite3Atoi64(pRec->z, &iValue, pRec->n, enc) ){  | 
 
| 
83167
 | 
 4  | 
 0  | 
     if( bTryForInt ) sqlite3VdbeIntegerAffinity(pRec);  | 
 
| 
83199
 | 
 1653  | 
 1117  | 
   if( affinity>=SQLITE_AFF_NUMERIC ){  | 
 
| 
83202
 | 
 848  | 
 805  | 
     if( (pRec->flags & MEM_Int)==0 ){ /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
83203
 | 
 848  | 
 0  | 
       if( (pRec->flags & MEM_Real)==0 ){  | 
 
| 
83204
 | 
 233  | 
 615  | 
         if( pRec->flags & MEM_Str ) applyNumericAffinity(pRec,1);  | 
 
| 
83209
 | 
 1117  | 
 0  | 
   }else if( affinity==SQLITE_AFF_TEXT ){  | 
 
| 
83215
 | 
 39  | 
 1078  | 
     if( 0==(pRec->flags&MEM_Str) ){ /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
83216
 | 
 4  | 
 35  | 
       if( (pRec->flags&(MEM_Real|MEM_Int)) ){  | 
 
| 
83232
 | 
 0  | 
 10  | 
   if( eType==SQLITE_TEXT ){  | 
 
| 
83261
 | 
 0  | 
 2  | 
   if( sqlite3AtoF(pMem->z, &pMem->u.r, pMem->n, pMem->enc)==0 ){  | 
 
| 
83264
 | 
 2  | 
 0  | 
   if( sqlite3Atoi64(pMem->z, &pMem->u.i, pMem->n, pMem->enc)==0 ){  | 
 
| 
83278
 | 
 67  | 
 33  | 
   if( pMem->flags & (MEM_Int|MEM_Real) ){  | 
 
| 
83281
 | 
 2  | 
 31  | 
   if( pMem->flags & (MEM_Str|MEM_Blob) ){  | 
 
| 
83541
 | 
 9  | 
 14316  | 
   if( VdbeMemDynamic(pOut) ){ /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
83586
 | 
 0  | 
 11324  | 
   if( p->rc==SQLITE_NOMEM ){  | 
 
| 
83597
 | 
 0  | 
 11324  | 
   if( db->u1.isInterrupted ) goto abort_due_to_interrupt;  | 
 
| 
83600
 | 
 4014  | 
 7310  | 
   if( db->xProgress ){  | 
 
| 
83775
 | 
 0  | 
 16493  | 
   if( db->u1.isInterrupted ) goto abort_due_to_interrupt;  | 
 
| 
83783
 | 
 240  | 
 16253  | 
   if( nVmStep>=nProgressLimit && db->xProgress!=0 ){  | 
 
| 
 | 
 240  | 
 0  | 
   if( nVmStep>=nProgressLimit && db->xProgress!=0 ){  | 
 
| 
83786
 | 
 0  | 
 240  | 
     if( db->xProgress(db->pProgressArg) ){  | 
 
| 
83849
 | 
 24  | 
 22  | 
   if( pOp->p2 ) goto jump_to_p2;  | 
 
| 
83912
 | 
 81  | 
 0  | 
   if( (pIn3->flags & MEM_Null)==0 ) break;  | 
 
| 
83954
 | 
 4736  | 
 4  | 
   if( pOp->p1==SQLITE_OK && p->pFrame ){  | 
 
| 
 | 
 0  | 
 4736  | 
   if( pOp->p1==SQLITE_OK && p->pFrame ){  | 
 
| 
83961
 | 
 0  | 
 0  | 
     if( pOp->p2==OE_Ignore ){  | 
 
| 
83978
 | 
 4  | 
 4736  | 
   if( p->rc ){  | 
 
| 
83979
 | 
 4  | 
 0  | 
     if( pOp->p5 ){  | 
 
| 
83987
 | 
 3  | 
 1  | 
       if( pOp->p4.z ){  | 
 
| 
83997
 | 
 0  | 
 4740  | 
   if( rc==SQLITE_BUSY ){  | 
 
| 
84002
 | 
 5  | 
 4735  | 
     rc = p->rc ? SQLITE_ERROR : SQLITE_DONE;  | 
 
| 
84062
 | 
 0  | 
 2514  | 
   if( encoding!=SQLITE_UTF8 ){  | 
 
| 
84065
 | 
 0  | 
 0  | 
     if( SQLITE_OK!=sqlite3VdbeChangeEncoding(pOut, encoding) ) goto no_mem;  | 
 
| 
84070
 | 
 0  | 
 0  | 
     if( pOp->p4type==P4_DYNAMIC ){  | 
 
| 
84079
 | 
 0  | 
 2514  | 
   if( pOp->p1>db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
84107
 | 
 0  | 
 2709  | 
   if( pOp->p3>0 ){  | 
 
| 
84111
 | 
 0  | 
 0  | 
     if( pIn3->u.i==pOp->p5 ) pOut->flags = MEM_Blob|MEM_Static|MEM_Term;  | 
 
| 
84135
 | 
 0  | 
 1337  | 
   pOut->flags = nullFlag = pOp->p1 ? (MEM_Null|MEM_Cleared) : MEM_Null;  | 
 
| 
84140
 | 
 718  | 
 1337  | 
   while( cnt>0 ){  | 
 
| 
84195
 | 
 0  | 
 1970  | 
   if( sqlite3VdbeMemTooBig(pVar) ){  | 
 
| 
84237
 | 
 0  | 
 86  | 
     Deephemeralize(pOut);  | 
 
| 
 | 
 0  | 
 0  | 
     Deephemeralize(pOut);  | 
 
| 
84241
 | 
 0  | 
 86  | 
   }while( --n );  | 
 
| 
84263
 | 
 785  | 
 53  | 
     Deephemeralize(pOut);  | 
 
| 
 | 
 0  | 
 785  | 
     Deephemeralize(pOut);  | 
 
| 
84268
 | 
 838  | 
 0  | 
     if( (n--)==0 ) break;  | 
 
| 
84335
 | 
 2002  | 
 4324  | 
   if( db->xProgress!=0  | 
 
| 
84336
 | 
 80  | 
 1922  | 
    && nVmStep>=nProgressLimit   | 
 
| 
84337
 | 
 0  | 
 80  | 
    && db->xProgress(db->pProgressArg)!=0  | 
 
| 
84347
 | 
 0  | 
 6326  | 
   if( SQLITE_OK!=(rc = sqlite3VdbeCheckFk(p, 0)) ){  | 
 
| 
84380
 | 
 9035  | 
 6326  | 
   for(i=0; ip2; i++){  | 
 
| 
84382
 | 
 0  | 
 9035  | 
     Deephemeralize(&pMem[i]);  | 
 
| 
 | 
 0  | 
 0  | 
     Deephemeralize(&pMem[i]);  | 
 
| 
84388
 | 
 0  | 
 6326  | 
   if( db->mallocFailed ) goto no_mem;  | 
 
| 
84390
 | 
 0  | 
 6326  | 
   if( db->mTrace & SQLITE_TRACE_ROW ){  | 
 
| 
84421
 | 
 0  | 
 0  | 
   if( (pIn1->flags | pIn2->flags) & MEM_Null ){  | 
 
| 
84425
 | 
 0  | 
 0  | 
   if( ExpandBlob(pIn1) || ExpandBlob(pIn2) ) goto no_mem;  | 
 
| 
 | 
 0  | 
 0  | 
   if( ExpandBlob(pIn1) || ExpandBlob(pIn2) ) goto no_mem;  | 
 
| 
 | 
 0  | 
 0  | 
   if( ExpandBlob(pIn1) || ExpandBlob(pIn2) ) goto no_mem;  | 
 
| 
 | 
 0  | 
 0  | 
   if( ExpandBlob(pIn1) || ExpandBlob(pIn2) ) goto no_mem;  | 
 
| 
84426
 | 
 0  | 
 0  | 
   Stringify(pIn1, encoding);  | 
 
| 
 | 
 0  | 
 0  | 
   Stringify(pIn1, encoding);  | 
 
| 
84427
 | 
 0  | 
 0  | 
   Stringify(pIn2, encoding);  | 
 
| 
 | 
 0  | 
 0  | 
   Stringify(pIn2, encoding);  | 
 
| 
84429
 | 
 0  | 
 0  | 
   if( nByte>db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
84432
 | 
 0  | 
 0  | 
   if( sqlite3VdbeMemGrow(pOut, (int)nByte+2, pOut==pIn2) ){  | 
 
| 
84436
 | 
 0  | 
 0  | 
   if( pOut!=pIn2 ){  | 
 
| 
84507
 | 
 19  | 
 31  | 
   if( (type1 & type2 & MEM_Int)!=0 ){  | 
 
| 
84512
 | 
 0  | 
 19  | 
       case OP_Add:       if( sqlite3AddInt64(&iB,iA) ) goto fp_math;  break;  | 
 
| 
84513
 | 
 0  | 
 0  | 
       case OP_Subtract:  if( sqlite3SubInt64(&iB,iA) ) goto fp_math;  break;  | 
 
| 
84514
 | 
 0  | 
 0  | 
       case OP_Multiply:  if( sqlite3MulInt64(&iB,iA) ) goto fp_math;  break;  | 
 
| 
84516
 | 
 0  | 
 0  | 
         if( iA==0 ) goto arithmetic_result_is_null;  | 
 
| 
84517
 | 
 0  | 
 0  | 
         if( iA==-1 && iB==SMALLEST_INT64 ) goto fp_math;  | 
 
| 
 | 
 0  | 
 0  | 
         if( iA==-1 && iB==SMALLEST_INT64 ) goto fp_math;  | 
 
| 
84522
 | 
 0  | 
 0  | 
         if( iA==0 ) goto arithmetic_result_is_null;  | 
 
| 
84523
 | 
 0  | 
 0  | 
         if( iA==-1 ) iA = 1;  | 
 
| 
84530
 | 
 31  | 
 0  | 
   }else if( (flags & MEM_Null)!=0 ){  | 
 
| 
84543
 | 
 0  | 
 0  | 
         if( rA==(double)0 ) goto arithmetic_result_is_null;  | 
 
| 
84550
 | 
 0  | 
 0  | 
         if( iA==0 ) goto arithmetic_result_is_null;  | 
 
| 
84551
 | 
 0  | 
 0  | 
         if( iA==-1 ) iA = 1;  | 
 
| 
84560
 | 
 0  | 
 0  | 
     if( sqlite3IsNaN(rB) ){  | 
 
| 
84565
 | 
 0  | 
 0  | 
     if( ((type1|type2)&MEM_Real)==0 && !bIntint ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( ((type1|type2)&MEM_Real)==0 && !bIntint ){  | 
 
| 
84594
 | 
 0  | 
 17  | 
   if( pOp->p1 ){  | 
 
| 
84642
 | 
 0  | 
 0  | 
   if( (pIn1->flags | pIn2->flags) & MEM_Null ){  | 
 
| 
84649
 | 
 0  | 
 0  | 
   if( op==OP_BitAnd ){  | 
 
| 
84651
 | 
 0  | 
 0  | 
   }else if( op==OP_BitOr ){  | 
 
| 
84653
 | 
 0  | 
 0  | 
   }else if( iB!=0 ){  | 
 
| 
84657
 | 
 0  | 
 0  | 
     if( iB<0 ){  | 
 
| 
84660
 | 
 0  | 
 0  | 
       iB = iB>(-64) ? -iB : 64;  | 
 
| 
84663
 | 
 0  | 
 0  | 
     if( iB>=64 ){  | 
 
| 
84664
 | 
 0  | 
 0  | 
       iA = (iA>=0 || op==OP_ShiftLeft) ? 0 : -1;  | 
 
| 
 | 
 0  | 
 0  | 
       iA = (iA>=0 || op==OP_ShiftLeft) ? 0 : -1;  | 
 
| 
84667
 | 
 0  | 
 0  | 
       if( op==OP_ShiftLeft ){  | 
 
| 
84672
 | 
 0  | 
 0  | 
         if( iA<0 ) uA |= ((((u64)0xffffffff)<<32)|0xffffffff) << (64-iB);  | 
 
| 
84707
 | 
 121  | 
 90  | 
   if( (pIn1->flags & MEM_Int)==0 ){  | 
 
| 
84710
 | 
 4  | 
 117  | 
     if( (pIn1->flags & MEM_Int)==0 ){  | 
 
| 
84711
 | 
 4  | 
 0  | 
       if( pOp->p2==0 ){  | 
 
| 
84735
 | 
 0  | 
 0  | 
   if( pIn1->flags & MEM_Int ){  | 
 
| 
84767
 | 
 0  | 
 1  | 
   rc = ExpandBlob(pIn1);  | 
 
| 
84770
 | 
 0  | 
 1  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
84886
 | 
 21  | 
 1667  | 
   if( (flags1 | flags3)&MEM_Null ){  | 
 
| 
84888
 | 
 0  | 
 21  | 
     if( pOp->p5 & SQLITE_NULLEQ ){  | 
 
| 
84896
 | 
 0  | 
 0  | 
       if( (flags1&flags3&MEM_Null)!=0  | 
 
| 
84897
 | 
 0  | 
 0  | 
        && (flags3&MEM_Cleared)==0  | 
 
| 
84908
 | 
 0  | 
 21  | 
       if( pOp->p5 & SQLITE_STOREP2 ){  | 
 
| 
84916
 | 
 0  | 
 21  | 
         if( pOp->p5 & SQLITE_JUMPIFNULL ){  | 
 
| 
84925
 | 
 142  | 
 1525  | 
     if( affinity>=SQLITE_AFF_NUMERIC ){  | 
 
| 
84926
 | 
 94  | 
 48  | 
       if( (flags1 | flags3)&MEM_Str ){  | 
 
| 
84927
 | 
 94  | 
 0  | 
         if( (flags1 & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){  | 
 
| 
84937
 | 
 0  | 
 94  | 
         if( (flags3 & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){  | 
 
| 
84943
 | 
 142  | 
 0  | 
       if( (pIn1->flags & pIn3->flags & MEM_Int)!=0 ){  | 
 
| 
84944
 | 
 35  | 
 107  | 
         if( pIn3->u.i > pIn1->u.i ){ res = +1; goto compare_op; }  | 
 
| 
84945
 | 
 51  | 
 56  | 
         if( pIn3->u.i < pIn1->u.i ){ res = -1; goto compare_op; }  | 
 
| 
84949
 | 
 922  | 
 603  | 
     }else if( affinity==SQLITE_AFF_TEXT ){  | 
 
| 
84950
 | 
 0  | 
 922  | 
       if( (flags1 & MEM_Str)==0 && (flags1 & (MEM_Int|MEM_Real))!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( (flags1 & MEM_Str)==0 && (flags1 & (MEM_Int|MEM_Real))!=0 ){  | 
 
| 
84958
 | 
 0  | 
 922  | 
       if( (flags3 & MEM_Str)==0 && (flags3 & (MEM_Int|MEM_Real))!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( (flags3 & MEM_Str)==0 && (flags3 & (MEM_Int|MEM_Real))!=0 ){  | 
 
| 
84978
 | 
 668  | 
 999  | 
   if( res<0 ){                        /* ne, eq, gt, le, lt, ge */  | 
 
| 
84981
 | 
 665  | 
 334  | 
   }else if( res==0 ){  | 
 
| 
84995
 | 
 0  | 
 1667  | 
   if( pOp->p5 & SQLITE_STOREP2 ){  | 
 
| 
84998
 | 
 0  | 
 0  | 
     if( (pOp->p5 & SQLITE_KEEPNULL)!=0 ){  | 
 
| 
85012
 | 
 0  | 
 0  | 
       if( (pOp->opcode==OP_Eq)==res2 ) break;  | 
 
| 
85020
 | 
 558  | 
 1109  | 
     if( res2 ){  | 
 
| 
85040
 | 
 0  | 
 0  | 
   if( iCompare!=0 ) goto jump_to_p2;  | 
 
| 
85096
 | 
 227  | 
 0  | 
   if( (pOp->p5 & OPFLAG_PERMUTE)==0 ){  | 
 
| 
85122
 | 
 227  | 
 200  | 
   for(i=0; i
 | 
 
| 
85123
 | 
 0  | 
 227  | 
     idx = aPermute ? aPermute[i] : i;  | 
 
| 
85132
 | 
 27  | 
 200  | 
     if( iCompare ){  | 
 
| 
85133
 | 
 0  | 
 27  | 
       if( bRev ) iCompare = -iCompare;  | 
 
| 
85147
 | 
 27  | 
 200  | 
   if( iCompare<0 ){  | 
 
| 
85149
 | 
 200  | 
 0  | 
   }else if( iCompare==0 ){  | 
 
| 
85184
 | 
 0  | 
 0  | 
   if( pOp->opcode==OP_And ){  | 
 
| 
85192
 | 
 0  | 
 0  | 
   if( v1==2 ){  | 
 
| 
85240
 | 
 0  | 
 0  | 
   if( (pIn1->flags & MEM_Null)==0 ){  | 
 
| 
85259
 | 
 0  | 
 0  | 
   if( (pIn1->flags & MEM_Null)==0 ){  | 
 
| 
85286
 | 
 0  | 
 148  | 
   if( p->pFrame ){  | 
 
| 
85288
 | 
 0  | 
 0  | 
     if( (p->pFrame->aOnce[iAddr/8] & (1<<(iAddr & 7)))!=0 ){  | 
 
| 
85294
 | 
 2  | 
 146  | 
     if( p->aOp[0].p1==pOp->p1 ){  | 
 
| 
85314
 | 
 177  | 
 263  | 
   if( c ) goto jump_to_p2;  | 
 
| 
85328
 | 
 238  | 
 84  | 
   if( c ) goto jump_to_p2;  | 
 
| 
85340
 | 
 81  | 
 428  | 
   if( (pIn1->flags & MEM_Null)!=0 ){  | 
 
| 
85354
 | 
 375  | 
 95  | 
   if( (pIn1->flags & MEM_Null)==0 ){  | 
 
| 
85371
 | 
 0  | 
 0  | 
   if( p->apCsr[pOp->p1]->nullRow ){  | 
 
| 
85456
 | 
 0  | 
 15969  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
85469
 | 
 11703  | 
 4266  | 
   if( pC->cacheStatus!=p->cacheCtr ){                /*OPTIMIZATION-IF-FALSE*/  | 
 
| 
85470
 | 
 4638  | 
 7065  | 
     if( pC->nullRow ){  | 
 
| 
85471
 | 
 4638  | 
 0  | 
       if( pC->eCurType==CURTYPE_PSEUDO ){  | 
 
| 
85493
 | 
 0  | 
 7065  | 
       if( pC->payloadSize > (u32)db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
85498
 | 
 11703  | 
 0  | 
     pC->iHdrOffset = getVarint32(pC->aRow, aOffset[0]);  | 
 
| 
85502
 | 
 0  | 
 11703  | 
     if( pC->szRow
 | 
 
| 
85519
 | 
 0  | 
 0  | 
       if( aOffset[0] > 98307 || aOffset[0] > pC->payloadSize ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( aOffset[0] > 98307 || aOffset[0] > pC->payloadSize ){  | 
 
| 
85546
 | 
 1992  | 
 2274  | 
   if( pC->nHdrParsed<=p2 ){  | 
 
| 
85550
 | 
 1992  | 
 0  | 
     if( pC->iHdrOffset
 | 
 
| 
85552
 | 
 0  | 
 1992  | 
       if( pC->aRow==0 ){  | 
 
| 
85555
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ) goto abort_due_to_error;  | 
 
| 
85569
 | 
 17029  | 
 193  | 
         if( (t = zHdr[0])<0x80 ){  | 
 
| 
85578
 | 
 3542  | 
 13680  | 
       }while( i<=p2 && zHdr
 | 
 
| 
 | 
 3527  | 
 15  | 
       }while( i<=p2 && zHdr
 | 
 
| 
85585
 | 
 10864  | 
 2831  | 
       if( (zHdr>=zEndHdr && (zHdr>zEndHdr || offset64!=pC->payloadSize))  | 
 
| 
 | 
 10864  | 
 0  | 
       if( (zHdr>=zEndHdr && (zHdr>zEndHdr || offset64!=pC->payloadSize))  | 
 
| 
 | 
 10864  | 
 0  | 
       if( (zHdr>=zEndHdr && (zHdr>zEndHdr || offset64!=pC->payloadSize))  | 
 
| 
85586
 | 
 0  | 
 13695  | 
        || (offset64 > pC->payloadSize)  | 
 
| 
85588
 | 
 0  | 
 0  | 
         if( aOffset[0]==0 ){  | 
 
| 
85592
 | 
 0  | 
 0  | 
           if( pC->aRow==0 ) sqlite3VdbeMemRelease(&sMem);  | 
 
| 
85599
 | 
 0  | 
 13695  | 
       if( pC->aRow==0 ) sqlite3VdbeMemRelease(&sMem);  | 
 
| 
85608
 | 
 15  | 
 13680  | 
     if( pC->nHdrParsed<=p2 ){  | 
 
| 
85609
 | 
 0  | 
 15  | 
       if( pOp->p4type==P4_MEM ){  | 
 
| 
85627
 | 
 0  | 
 15954  | 
   if( VdbeMemDynamic(pDest) ){  | 
 
| 
85631
 | 
 15948  | 
 6  | 
   if( pC->szRow>=aOffset[p2+1] ){  | 
 
| 
85635
 | 
 11285  | 
 4663  | 
     if( t<12 ){  | 
 
| 
85645
 | 
 1705  | 
 2958  | 
       if( pDest->szMalloc < len+2 ){  | 
 
| 
85647
 | 
 0  | 
 1705  | 
         if( sqlite3VdbeMemGrow(pDest, len+2, 0) ) goto no_mem;  | 
 
| 
85659
 | 
 0  | 
 6  | 
     if( ((pOp->p5 & (OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG))!=0  | 
 
| 
85660
 | 
 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))  | 
 
| 
85661
 | 
 0  | 
 6  | 
      || (len = sqlite3VdbeSerialTypeLen(t))==0  | 
 
| 
85678
 | 
 0  | 
 6  | 
       if( rc!=SQLITE_OK ) goto abort_due_to_error;  | 
 
| 
85690
 | 
 0  | 
 0  | 
   if( aOp[0].p3>0 ){  | 
 
| 
85721
 | 
 118  | 
 237  | 
   }while( zAffinity[0] );  | 
 
| 
85793
 | 
 781  | 
 7347  | 
   if( zAffinity ){  | 
 
| 
85798
 | 
 1513  | 
 781  | 
     }while( zAffinity[0] );  | 
 
| 
85822
 | 
 1  | 
 11744  | 
     if( pRec->flags & MEM_Zero ){  | 
 
| 
85823
 | 
 0  | 
 1  | 
       if( serial_type==0 ){  | 
 
| 
85832
 | 
 0  | 
 1  | 
       }else if( nData ){  | 
 
| 
85833
 | 
 0  | 
 0  | 
         if( sqlite3VdbeMemExpandBlob(pRec) ) goto no_mem;  | 
 
| 
85842
 | 
 136  | 
 11609  | 
     nHdr += serial_type<=127 ? 1 : sqlite3VarintLen(serial_type);  | 
 
| 
85844
 | 
 8128  | 
 3617  | 
     if( pRec==pData0 ) break;  | 
 
| 
85854
 | 
 8128  | 
 0  | 
   if( nHdr<=126 ){  | 
 
| 
85861
 | 
 0  | 
 0  | 
     if( nVarint
 | 
 
| 
85870
 | 
 4532  | 
 3596  | 
   if( nByte+nZero<=pOut->szMalloc ){  | 
 
| 
85877
 | 
 0  | 
 3596  | 
     if( nByte+nZero>db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
85880
 | 
 0  | 
 3596  | 
     if( sqlite3VdbeMemClearAndResize(pOut, (int)nByte) ){  | 
 
| 
85887
 | 
 8128  | 
 0  | 
   i = putVarint32(zNewRecord, nHdr);  | 
 
| 
85895
 | 
 11609  | 
 136  | 
     i += putVarint32(&zNewRecord[i], serial_type);            /* serial type */  | 
 
| 
85899
 | 
 3617  | 
 8128  | 
   }while( (++pRec)<=pLast );  | 
 
| 
85906
 | 
 1  | 
 8127  | 
   if( nZero ){  | 
 
| 
85931
 | 
 0  | 
 10  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
85966
 | 
 24  | 
 10  | 
   if( p1==SAVEPOINT_BEGIN ){  | 
 
| 
85967
 | 
 0  | 
 24  | 
     if( db->nVdbeWrite>0 ){  | 
 
| 
85984
 | 
 0  | 
 24  | 
       if( rc!=SQLITE_OK ) goto abort_due_to_error;  | 
 
| 
85989
 | 
 24  | 
 0  | 
       if( pNew ){  | 
 
| 
85995
 | 
 13  | 
 11  | 
         if( db->autoCommit ){  | 
 
| 
86014
 | 
 12  | 
 0  | 
     for(  | 
 
| 
86016
 | 
 2  | 
 10  | 
       pSavepoint && sqlite3StrICmp(pSavepoint->zName, zName);  | 
 
| 
86021
 | 
 0  | 
 10  | 
     if( !pSavepoint ){  | 
 
| 
86024
 | 
 0  | 
 10  | 
     }else if( db->nVdbeWrite>0 && p1==SAVEPOINT_RELEASE ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( db->nVdbeWrite>0 && p1==SAVEPOINT_RELEASE ){  | 
 
| 
86037
 | 
 8  | 
 2  | 
       int isTransaction = pSavepoint->pNext==0 && db->isTransactionSavepoint;  | 
 
| 
 | 
 7  | 
 1  | 
       int isTransaction = pSavepoint->pNext==0 && db->isTransactionSavepoint;  | 
 
| 
86038
 | 
 7  | 
 3  | 
       if( isTransaction && p1==SAVEPOINT_RELEASE ){  | 
 
| 
 | 
 7  | 
 0  | 
       if( isTransaction && p1==SAVEPOINT_RELEASE ){  | 
 
| 
86039
 | 
 0  | 
 7  | 
         if( (rc = sqlite3VdbeCheckFk(p, 1))!=SQLITE_OK ){  | 
 
| 
86043
 | 
 0  | 
 7  | 
         if( sqlite3VdbeHalt(p)==SQLITE_BUSY ){  | 
 
| 
86054
 | 
 1  | 
 2  | 
         if( p1==SAVEPOINT_ROLLBACK ){  | 
 
| 
86056
 | 
 2  | 
 1  | 
           for(ii=0; iinDb; ii++){  | 
 
| 
86060
 | 
 0  | 
 2  | 
             if( rc!=SQLITE_OK ) goto abort_due_to_error;  | 
 
| 
86065
 | 
 6  | 
 3  | 
         for(ii=0; iinDb; ii++){  | 
 
| 
86067
 | 
 0  | 
 6  | 
           if( rc!=SQLITE_OK ){  | 
 
| 
86071
 | 
 1  | 
 2  | 
         if( isSchemaChange ){  | 
 
| 
86080
 | 
 2  | 
 10  | 
       while( db->pSavepoint!=pSavepoint ){  | 
 
| 
86091
 | 
 9  | 
 1  | 
       if( p1==SAVEPOINT_RELEASE ){  | 
 
| 
86095
 | 
 2  | 
 7  | 
         if( !isTransaction ){  | 
 
| 
86103
 | 
 7  | 
 3  | 
       if( !isTransaction || p1==SAVEPOINT_ROLLBACK ){  | 
 
| 
 | 
 0  | 
 7  | 
       if( !isTransaction || p1==SAVEPOINT_ROLLBACK ){  | 
 
| 
86105
 | 
 0  | 
 3  | 
         if( rc!=SQLITE_OK ) goto abort_due_to_error;  | 
 
| 
86109
 | 
 0  | 
 34  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
86134
 | 
 218  | 
 20  | 
   if( desiredAutoCommit!=db->autoCommit ){  | 
 
| 
86135
 | 
 28  | 
 190  | 
     if( iRollback ){  | 
 
| 
86139
 | 
 84  | 
 106  | 
     }else if( desiredAutoCommit && db->nVdbeWrite>0 ){  | 
 
| 
 | 
 0  | 
 84  | 
     }else if( desiredAutoCommit && db->nVdbeWrite>0 ){  | 
 
| 
86147
 | 
 0  | 
 190  | 
     }else if( (rc = sqlite3VdbeCheckFk(p, 1))!=SQLITE_OK ){  | 
 
| 
86152
 | 
 0  | 
 218  | 
     if( sqlite3VdbeHalt(p)==SQLITE_BUSY ){  | 
 
| 
86160
 | 
 214  | 
 4  | 
     if( p->rc==SQLITE_OK ){  | 
 
| 
86167
 | 
 0  | 
 20  | 
     sqlite3VdbeError(p,  | 
 
| 
86168
 | 
 0  | 
 0  | 
         (!desiredAutoCommit)?"cannot start a transaction within a transaction":(  | 
 
| 
86220
 | 
 3487  | 
 1333  | 
   if( pOp->p2 && (db->flags & SQLITE_QueryOnly)!=0 ){  | 
 
| 
 | 
 0  | 
 3487  | 
   if( pOp->p2 && (db->flags & SQLITE_QueryOnly)!=0 ){  | 
 
| 
86226
 | 
 4749  | 
 71  | 
   if( pBt ){  | 
 
| 
86230
 | 
 9  | 
 4740  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
86231
 | 
 7  | 
 2  | 
       if( (rc&0xff)==SQLITE_BUSY ){  | 
 
| 
86239
 | 
 3407  | 
 1333  | 
     if( pOp->p2 && p->usesStmtJournal   | 
 
| 
 | 
 11  | 
 3396  | 
     if( pOp->p2 && p->usesStmtJournal   | 
 
| 
86240
 | 
 11  | 
 0  | 
      && (db->autoCommit==0 || db->nVdbeRead>1)   | 
 
| 
 | 
 0  | 
 11  | 
      && (db->autoCommit==0 || db->nVdbeRead>1)   | 
 
| 
86243
 | 
 0  | 
 0  | 
       if( p->iStatement==0 ){  | 
 
| 
86250
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
86262
 | 
 4229  | 
 582  | 
   if( pOp->p5  | 
 
| 
86263
 | 
 4229  | 
 0  | 
    && (iMeta!=pOp->p3  | 
 
| 
86264
 | 
 0  | 
 4229  | 
       || db->aDb[pOp->p1].pSchema->iGeneration!=pOp->p4.i)  | 
 
| 
86286
 | 
 0  | 
 0  | 
     if( db->aDb[pOp->p1].pSchema->schema_cookie!=iMeta ){  | 
 
| 
86292
 | 
 0  | 
 4811  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
86350
 | 
 223  | 
 288  | 
   if( pOp->p2==BTREE_SCHEMA_VERSION ){  | 
 
| 
86354
 | 
 144  | 
 144  | 
   }else if( pOp->p2==BTREE_FILE_FORMAT ){  | 
 
| 
86358
 | 
 75  | 
 436  | 
   if( pOp->p1==1 ){  | 
 
| 
86364
 | 
 0  | 
 511  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
86465
 | 
 9  | 
 2  | 
   if( pCur && pCur->pgnoRoot==(u32)pOp->p2 ){  | 
 
| 
 | 
 9  | 
 0  | 
   if( pCur && pCur->pgnoRoot==(u32)pOp->p2 ){  | 
 
| 
86479
 | 
 0  | 
 5282  | 
   if( p->expired==1 ){  | 
 
| 
86493
 | 
 3764  | 
 1518  | 
   if( pOp->opcode==OP_OpenWrite ){  | 
 
| 
86497
 | 
 3237  | 
 527  | 
     if( pDb->pSchema->file_format < p->minWriteFileFormat ){  | 
 
| 
86503
 | 
 6  | 
 5276  | 
   if( pOp->p5 & OPFLAG_P2ISREG ){  | 
 
| 
86518
 | 
 193  | 
 5089  | 
   if( pOp->p4type==P4_KEYINFO ){  | 
 
| 
86523
 | 
 5089  | 
 0  | 
   }else if( pOp->p4type==P4_INT32 ){  | 
 
| 
86530
 | 
 0  | 
 5282  | 
   if( pCur==0 ) goto no_mem;  | 
 
| 
86554
 | 
 0  | 
 5291  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
86574
 | 
 0  | 
 0  | 
   if( pCx==0 ) goto no_mem;  | 
 
| 
86629
 | 
 0  | 
 5  | 
   if( pCx==0 ) goto no_mem;  | 
 
| 
86634
 | 
 5  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
86637
 | 
 5  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
86643
 | 
 5  | 
 0  | 
     if( (pCx->pKeyInfo = pKeyInfo = pOp->p4.pKeyInfo)!=0 ){  | 
 
| 
86647
 | 
 5  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
86661
 | 
 0  | 
 5  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
86682
 | 
 0  | 
 160  | 
   if( pCx==0 ) goto no_mem;  | 
 
| 
86687
 | 
 0  | 
 160  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
86703
 | 
 59  | 
 174  | 
   if( (pC->seqCount++)==0 ){  | 
 
| 
86731
 | 
 0  | 
 155  | 
   if( pCx==0 ) goto no_mem;  | 
 
| 
86891
 | 
 0  | 
 120  | 
   if( pC->isTable ){  | 
 
| 
86900
 | 
 0  | 
 0  | 
     if( (pIn3->flags & (MEM_Int|MEM_Real|MEM_Str))==MEM_Str ){  | 
 
| 
86907
 | 
 0  | 
 0  | 
     if( (pIn3->flags & MEM_Int)==0 ){  | 
 
| 
86908
 | 
 0  | 
 0  | 
       if( (pIn3->flags & MEM_Real)==0 ){  | 
 
| 
86922
 | 
 0  | 
 0  | 
       if( pIn3->u.r<(double)iKey ){  | 
 
| 
86926
 | 
 0  | 
 0  | 
         if( (oc & 0x0001)==(OP_SeekGT & 0x0001) ) oc--;  | 
 
| 
86931
 | 
 0  | 
 0  | 
       else if( pIn3->u.r>(double)iKey ){  | 
 
| 
86935
 | 
 0  | 
 0  | 
         if( (oc & 0x0001)==(OP_SeekLT & 0x0001) ) oc++;  | 
 
| 
86940
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
86948
 | 
 31  | 
 89  | 
     if( sqlite3BtreeCursorHasHint(pC->uc.pCursor, BTREE_SEEK_EQ) ){  | 
 
| 
86971
 | 
 113  | 
 7  | 
     r.default_rc = ((1 & (oc - OP_SeekLT)) ? -1 : +1);  | 
 
| 
86983
 | 
 0  | 
 120  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
86986
 | 
 31  | 
 89  | 
     if( eqOnly && r.eqSeen==0 ){  | 
 
| 
 | 
 7  | 
 24  | 
     if( eqOnly && r.eqSeen==0 ){  | 
 
| 
86996
 | 
 13  | 
 100  | 
   if( oc>=OP_SeekGE ){  assert( oc==OP_SeekGE || oc==OP_SeekGT );  | 
 
| 
86997
 | 
 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) ){  | 
 
| 
87000
 | 
 1  | 
 3  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
87001
 | 
 1  | 
 0  | 
         if( rc==SQLITE_DONE ){  | 
 
| 
87013
 | 
 100  | 
 0  | 
     if( res>0 || (res==0 && oc==OP_SeekLT) ){  | 
 
| 
 | 
 0  | 
 100  | 
     if( res>0 || (res==0 && oc==OP_SeekLT) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( res>0 || (res==0 && oc==OP_SeekLT) ){  | 
 
| 
87016
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
87017
 | 
 0  | 
 0  | 
         if( rc==SQLITE_DONE ){  | 
 
| 
87034
 | 
 9  | 
 111  | 
   if( res ){  | 
 
| 
87036
 | 
 24  | 
 87  | 
   }else if( eqOnly ){  | 
 
| 
87153
 | 
 0  | 
 0  | 
   if( pC->seekHit ) break;  | 
 
| 
87183
 | 
 50  | 
 0  | 
   if( pOp->p4.i>0 ){  | 
 
| 
87198
 | 
 0  | 
 0  | 
     rc = ExpandBlob(pIn3);  | 
 
| 
87200
 | 
 0  | 
 0  | 
     if( rc ) goto no_mem;  | 
 
| 
87202
 | 
 0  | 
 0  | 
     if( pIdxKey==0 ) goto no_mem;  | 
 
| 
87207
 | 
 48  | 
 2  | 
   if( pOp->opcode==OP_NoConflict ){  | 
 
| 
87211
 | 
 82  | 
 44  | 
     for(ii=0; iinField; ii++){  | 
 
| 
87212
 | 
 4  | 
 78  | 
       if( pIdxKey->aMem[ii].flags & MEM_Null ){  | 
 
| 
87219
 | 
 0  | 
 50  | 
   if( pFree ) sqlite3DbFreeNN(db, pFree);  | 
 
| 
87220
 | 
 0  | 
 50  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
87228
 | 
 2  | 
 48  | 
   if( pOp->opcode==OP_Found ){  | 
 
| 
87230
 | 
 0  | 
 2  | 
     if( alreadyExists ) goto jump_to_p2;  | 
 
| 
87233
 | 
 44  | 
 4  | 
     if( takeJump || !alreadyExists ) goto jump_to_p2;  | 
 
| 
 | 
 3  | 
 41  | 
     if( takeJump || !alreadyExists ) goto jump_to_p2;  | 
 
| 
87292
 | 
 0  | 
 443  | 
   if( (pIn3->flags & MEM_Int)==0 ){  | 
 
| 
87302
 | 
 0  | 
 0  | 
     if( isNotInt ) goto jump_to_p2;  | 
 
| 
87328
 | 
 198  | 
 470  | 
   if( res!=0 ){  | 
 
| 
87330
 | 
 0  | 
 198  | 
     if( pOp->p2==0 ){  | 
 
| 
87336
 | 
 0  | 
 470  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
87416
 | 
 3058  | 
 0  | 
     if( !pC->useRandomRowid ){  | 
 
| 
87418
 | 
 0  | 
 3058  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
87421
 | 
 285  | 
 2773  | 
       if( res ){  | 
 
| 
87426
 | 
 0  | 
 2773  | 
         if( v>=MAX_ROWID ){  | 
 
| 
87435
 | 
 192  | 
 2866  | 
     if( pOp->p3 ){  | 
 
| 
87438
 | 
 0  | 
 192  | 
       if( p->pFrame ){  | 
 
| 
87439
 | 
 0  | 
 0  | 
         for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent);  | 
 
| 
87454
 | 
 192  | 
 0  | 
       if( pMem->u.i==MAX_ROWID || pC->useRandomRowid ){  | 
 
| 
 | 
 0  | 
 192  | 
       if( pMem->u.i==MAX_ROWID || pC->useRandomRowid ){  | 
 
| 
87458
 | 
 0  | 
 192  | 
       if( vu.i+1 ){  | 
 
| 
87464
 | 
 0  | 
 3058  | 
     if( pC->useRandomRowid ){  | 
 
| 
87477
 | 
 0  | 
 0  | 
             && (res==0)  | 
 
| 
87478
 | 
 0  | 
 0  | 
             && (++cnt<100));  | 
 
| 
 | 
 0  | 
 0  | 
             && (++cnt<100));  | 
 
| 
87479
 | 
 0  | 
 0  | 
       if( rc ) goto abort_due_to_error;  | 
 
| 
87480
 | 
 0  | 
 0  | 
       if( res==0 ){  | 
 
| 
87558
 | 
 3637  | 
 0  | 
   if( pOp->opcode==OP_Insert ){  | 
 
| 
87569
 | 
 2981  | 
 656  | 
   if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){  | 
 
| 
 | 
 60  | 
 2921  | 
   if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){  | 
 
| 
87593
 | 
 2981  | 
 656  | 
   if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++;  | 
 
| 
87594
 | 
 2977  | 
 660  | 
   if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = x.nKey;  | 
 
| 
87598
 | 
 3015  | 
 622  | 
   seekResult = ((pOp->p5 & OPFLAG_USESEEKRESULT) ? pC->seekResult : 0);  | 
 
| 
87599
 | 
 1  | 
 3636  | 
   if( pData->flags & MEM_Zero ){  | 
 
| 
87612
 | 
 0  | 
 3637  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
87613
 | 
 60  | 
 3577  | 
   if( pTab ){  | 
 
| 
87616
 | 
 0  | 
 60  | 
     db->xUpdateCallback(db->pUpdateArg,  | 
 
| 
87688
 | 
 12  | 
 6  | 
   if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){  | 
 
| 
 | 
 0  | 
 12  | 
   if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){  | 
 
| 
87693
 | 
 0  | 
 0  | 
     if( (pOp->p5 & OPFLAG_SAVEPOSITION)!=0 && pC->isTable ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (pOp->p5 & OPFLAG_SAVEPOSITION)!=0 && pC->isTable ){  | 
 
| 
87739
 | 
 0  | 
 18  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
87742
 | 
 12  | 
 6  | 
   if( opflags & OPFLAG_NCHANGE ){  | 
 
| 
87744
 | 
 0  | 
 12  | 
     if( db->xUpdateCallback && HasRowid(pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( db->xUpdateCallback && HasRowid(pTab) ){  | 
 
| 
87794
 | 
 0  | 
 1  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
87795
 | 
 1  | 
 0  | 
   if( res ) goto jump_to_p2;  | 
 
| 
87820
 | 
 0  | 
 4636  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
87885
 | 
 0  | 
 0  | 
   if( n>(u32)db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
87890
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
87891
 | 
 0  | 
 0  | 
   if( !pOp->p3 ) Deephemeralize(pOut);  | 
 
| 
 | 
 0  | 
 0  | 
   if( !pOp->p3 ) Deephemeralize(pOut);  | 
 
| 
 | 
 0  | 
 0  | 
   if( !pOp->p3 ) Deephemeralize(pOut);  | 
 
| 
87918
 | 
 0  | 
 524  | 
   if( pC->nullRow ){  | 
 
| 
87921
 | 
 12  | 
 512  | 
   }else if( pC->deferredMoveto ){  | 
 
| 
87924
 | 
 0  | 
 512  | 
   }else if( pC->eCurType==CURTYPE_VTAB ){  | 
 
| 
87931
 | 
 0  | 
 0  | 
     if( rc ) goto abort_due_to_error;  | 
 
| 
87937
 | 
 0  | 
 512  | 
     if( rc ) goto abort_due_to_error;  | 
 
| 
87938
 | 
 0  | 
 512  | 
     if( pC->nullRow ){  | 
 
| 
87962
 | 
 0  | 
 0  | 
   if( pC->eCurType==CURTYPE_BTREE ){  | 
 
| 
88010
 | 
 2  | 
 26  | 
   if( pOp->opcode==OP_SeekEnd ){  | 
 
| 
88013
 | 
 0  | 
 2  | 
     if( sqlite3BtreeCursorIsValidNN(pCrsr) ){  | 
 
| 
88021
 | 
 0  | 
 28  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88022
 | 
 24  | 
 4  | 
   if( pOp->p2>0 ){  | 
 
| 
88024
 | 
 24  | 
 0  | 
     if( res ) goto jump_to_p2;  | 
 
| 
88046
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88047
 | 
 0  | 
 0  | 
   if( res==0 ){  | 
 
| 
88049
 | 
 0  | 
 0  | 
     if( ALWAYS(sz>=0) && sqlite3LogEst((u64)sz)p3 ) res = 1;  | 
 
| 
 | 
 0  | 
 0  | 
     if( ALWAYS(sz>=0) && sqlite3LogEst((u64)sz)p3 ) res = 1;  | 
 
| 
88052
 | 
 0  | 
 0  | 
   if( res ) goto jump_to_p2;  | 
 
| 
88116
 | 
 160  | 
 1046  | 
   if( isSorter(pC) ){  | 
 
| 
88124
 | 
 0  | 
 1046  | 
     if( pOp->p5 ) sqlite3BtreeSkipNext(pCrsr);  | 
 
| 
88129
 | 
 0  | 
 1206  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88133
 | 
 271  | 
 935  | 
   if( res ) goto jump_to_p2;  | 
 
| 
88230
 | 
 10342  | 
 784  | 
   if( rc==SQLITE_OK ){  | 
 
| 
88238
 | 
 0  | 
 784  | 
   if( rc!=SQLITE_DONE ) goto abort_due_to_error;  | 
 
| 
88291
 | 
 0  | 
 4703  | 
   if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++;  | 
 
| 
88294
 | 
 0  | 
 4703  | 
   rc = ExpandBlob(pIn2);  | 
 
| 
88295
 | 
 0  | 
 4703  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88296
 | 
 4640  | 
 63  | 
   if( pOp->opcode==OP_SorterInsert ){  | 
 
| 
88303
 | 
 54  | 
 9  | 
     rc = sqlite3BtreeInsert(pC->uc.pCursor, &x,  | 
 
| 
88310
 | 
 0  | 
 4703  | 
   if( rc) goto abort_due_to_error;  | 
 
| 
88342
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88343
 | 
 0  | 
 0  | 
   if( res==0 ){  | 
 
| 
88345
 | 
 0  | 
 0  | 
     if( rc ) goto abort_due_to_error;  | 
 
| 
88403
 | 
 0  | 
 257  | 
   if( NEVER(rc!=SQLITE_OK) ) goto abort_due_to_error;  | 
 
| 
88405
 | 
 257  | 
 0  | 
   if( !pC->nullRow ){  | 
 
| 
88408
 | 
 0  | 
 257  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
88411
 | 
 246  | 
 11  | 
     if( pOp->opcode==OP_DeferredSeek ){  | 
 
| 
88498
 | 
 16  | 
 256  | 
   if( pOp->opcode
 | 
 
| 
88518
 | 
 257  | 
 15  | 
   if( (pOp->opcode&1)==(OP_IdxLT&1) ){  | 
 
| 
88526
 | 
 0  | 
 272  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88527
 | 
 32  | 
 240  | 
   if( res>0 ) goto jump_to_p2;  | 
 
| 
88567
 | 
 0  | 
 5  | 
   if( db->nVdbeRead > db->nVDestroy+1 ){  | 
 
| 
88578
 | 
 0  | 
 5  | 
     if( rc ) goto abort_due_to_error;  | 
 
| 
88580
 | 
 0  | 
 5  | 
     if( iMoved!=0 ){  | 
 
| 
88616
 | 
 28  | 
 0  | 
   rc = sqlite3BtreeClearTable(  | 
 
| 
88619
 | 
 28  | 
 0  | 
   if( pOp->p3 ){  | 
 
| 
88621
 | 
 0  | 
 28  | 
     if( pOp->p3>0 ){  | 
 
| 
88627
 | 
 0  | 
 28  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88645
 | 
 0  | 
 0  | 
   if( isSorter(pC) ){  | 
 
| 
88651
 | 
 0  | 
 0  | 
     if( rc ) goto abort_due_to_error;  | 
 
| 
88679
 | 
 0  | 
 241  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88693
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88727
 | 
 0  | 
 218  | 
   if( pOp->p4.z==0 ){  | 
 
| 
88744
 | 
 0  | 
 218  | 
     if( zSql==0 ){  | 
 
| 
88752
 | 
 218  | 
 0  | 
       if( rc==SQLITE_OK ) rc = initData.rc;  | 
 
| 
88757
 | 
 0  | 
 218  | 
   if( rc ){  | 
 
| 
88759
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOMEM ){  | 
 
| 
88777
 | 
 0  | 
 1  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
88867
 | 
 0  | 
 0  | 
   if( nErr==0 ){  | 
 
| 
88869
 | 
 0  | 
 0  | 
   }else if( z==0 ){  | 
 
| 
88893
 | 
 2  | 
 0  | 
   if( (pIn1->flags & MEM_Blob)==0 ){  | 
 
| 
88894
 | 
 0  | 
 2  | 
     if( sqlite3VdbeMemSetRowSet(pIn1) ) goto no_mem;  | 
 
| 
88914
 | 
 4  | 
 5  | 
   if( (pIn1->flags & MEM_Blob)==0   | 
 
| 
88915
 | 
 2  | 
 2  | 
    || sqlite3RowSetNext((RowSet*)pIn1->z, &val)==0  | 
 
| 
88964
 | 
 7  | 
 9  | 
   if( (pIn1->flags & MEM_Blob)==0 ){  | 
 
| 
88965
 | 
 0  | 
 7  | 
     if( sqlite3VdbeMemSetRowSet(pIn1) ) goto no_mem;  | 
 
| 
88970
 | 
 12  | 
 4  | 
   if( iSet ){  | 
 
| 
88973
 | 
 0  | 
 12  | 
     if( exists ) goto jump_to_p2;  | 
 
| 
88975
 | 
 10  | 
 6  | 
   if( iSet>=0 ){  | 
 
| 
89024
 | 
 0  | 
 0  | 
   if( pOp->p5 ){  | 
 
| 
89026
 | 
 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);  | 
 
| 
89027
 | 
 0  | 
 0  | 
     if( pFrame ) break;  | 
 
| 
89030
 | 
 0  | 
 0  | 
   if( p->nFrame>=db->aLimit[SQLITE_LIMIT_TRIGGER_DEPTH] ){  | 
 
| 
89040
 | 
 0  | 
 0  | 
   if( (pRt->flags&MEM_Blob)==0 ){  | 
 
| 
89048
 | 
 0  | 
 0  | 
     if( pProgram->nCsr==0 ) nMem++;  | 
 
| 
89054
 | 
 0  | 
 0  | 
     if( !pFrame ){  | 
 
| 
89082
 | 
 0  | 
 0  | 
     for(pMem=VdbeFrameMem(pFrame); pMem!=pEnd; pMem++){  | 
 
| 
89155
 | 
 0  | 
 1  | 
   if( db->flags & SQLITE_DeferFKs ){  | 
 
| 
89157
 | 
 0  | 
 1  | 
   }else if( pOp->p1 ){  | 
 
| 
89178
 | 
 0  | 
 2  | 
   if( pOp->p1 ){  | 
 
| 
89180
 | 
 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;  | 
 
| 
89183
 | 
 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;  | 
 
| 
89203
 | 
 0  | 
 192  | 
   if( p->pFrame ){  | 
 
| 
89204
 | 
 0  | 
 0  | 
     for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent);  | 
 
| 
89213
 | 
 0  | 
 192  | 
   if( pIn1->u.iu.i){  | 
 
| 
89234
 | 
 33  | 
 33  | 
   if( pIn1->u.i>0 ){  | 
 
| 
89267
 | 
 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) ){  | 
 
| 
89294
 | 
 3  | 
 2  | 
   if( pIn1->u.i ){  | 
 
| 
89295
 | 
 3  | 
 0  | 
      if( pIn1->u.i>0 ) pIn1->u.i--;  | 
 
| 
89310
 | 
 58  | 
 0  | 
   if( pIn1->u.i>SMALLEST_INT64 ) pIn1->u.i--;  | 
 
| 
89312
 | 
 58  | 
 0  | 
   if( pIn1->u.i==0 ) goto jump_to_p2;  | 
 
| 
89368
 | 
 0  | 
 77  | 
   if( pCtx==0 ) goto no_mem;  | 
 
| 
89411
 | 
 77  | 
 391  | 
   if( pCtx->pMem != pMem ){  | 
 
| 
89413
 | 
 29  | 
 77  | 
     for(i=pCtx->argc-1; i>=0; i--) pCtx->argv[i] = &aMem[pOp->p2+i];  | 
 
| 
89428
 | 
 0  | 
 468  | 
   if( pOp->p1 ){  | 
 
| 
89434
 | 
 0  | 
 468  | 
   if( pCtx->isError ){  | 
 
| 
89435
 | 
 0  | 
 0  | 
     if( pCtx->isError>0 ){  | 
 
| 
89439
 | 
 0  | 
 0  | 
     if( pCtx->skipFlag ){  | 
 
| 
89442
 | 
 0  | 
 0  | 
       if( i ) sqlite3VdbeMemSetInt64(&aMem[i], 1);  | 
 
| 
89448
 | 
 0  | 
 0  | 
     if( rc ) goto abort_due_to_error;  | 
 
| 
89489
 | 
 0  | 
 186  | 
   if( pOp->p3 ){  | 
 
| 
89498
 | 
 0  | 
 186  | 
   if( rc ){  | 
 
| 
89504
 | 
 0  | 
 186  | 
   if( sqlite3VdbeMemTooBig(pMem) ){  | 
 
| 
89536
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
89537
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_BUSY ) goto abort_due_to_error;  | 
 
| 
89541
 | 
 0  | 
 0  | 
   for(i=0, pMem = &aMem[pOp->p3]; i<3; i++, pMem++){  | 
 
| 
89585
 | 
 0  | 
 0  | 
   if( eNew==PAGER_JOURNALMODE_QUERY ) eNew = eOld;  | 
 
| 
89586
 | 
 0  | 
 0  | 
   if( !sqlite3PagerOkToChangeJournalMode(pPager) ) eNew = eOld;  | 
 
| 
89594
 | 
 0  | 
 0  | 
   if( eNew==PAGER_JOURNALMODE_WAL  | 
 
| 
89595
 | 
 0  | 
 0  | 
    && (sqlite3Strlen30(zFilename)==0           /* Temp file */  | 
 
| 
89596
 | 
 0  | 
 0  | 
        || !sqlite3PagerWalSupported(pPager))   /* No shared-memory support */  | 
 
| 
89601
 | 
 0  | 
 0  | 
   if( (eNew!=eOld)  | 
 
| 
89602
 | 
 0  | 
 0  | 
    && (eOld==PAGER_JOURNALMODE_WAL || eNew==PAGER_JOURNALMODE_WAL)  | 
 
| 
 | 
 0  | 
 0  | 
    && (eOld==PAGER_JOURNALMODE_WAL || eNew==PAGER_JOURNALMODE_WAL)  | 
 
| 
89604
 | 
 0  | 
 0  | 
     if( !db->autoCommit || db->nVdbeRead>1 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( !db->autoCommit || db->nVdbeRead>1 ){  | 
 
| 
89606
 | 
 0  | 
 0  | 
       sqlite3VdbeError(p,  | 
 
| 
89613
 | 
 0  | 
 0  | 
       if( eOld==PAGER_JOURNALMODE_WAL ){  | 
 
| 
89620
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
89623
 | 
 0  | 
 0  | 
       }else if( eOld==PAGER_JOURNALMODE_MEMORY ){  | 
 
| 
89633
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
89634
 | 
 0  | 
 0  | 
         rc = sqlite3BtreeSetVersion(pBt, (eNew==PAGER_JOURNALMODE_WAL ? 2 : 1));  | 
 
| 
89640
 | 
 0  | 
 0  | 
   if( rc ) eNew = eOld;  | 
 
| 
89648
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
89662
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
89683
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
89684
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_DONE ) goto abort_due_to_error;  | 
 
| 
89710
 | 
 24  | 
 5  | 
   if( !pOp->p1 ){  | 
 
| 
89736
 | 
 15  | 
 0  | 
   if( isWriteLock || 0==(db->flags&SQLITE_ReadUncommit) ){  | 
 
| 
 | 
 15  | 
 0  | 
   if( isWriteLock || 0==(db->flags&SQLITE_ReadUncommit) ){  | 
 
| 
89742
 | 
 0  | 
 15  | 
     if( rc ){  | 
 
| 
89743
 | 
 0  | 
 0  | 
       if( (rc&0xFF)==SQLITE_LOCKED ){  | 
 
| 
89768
 | 
 35  | 
 10  | 
   if( pVTab ) sqlite3VtabImportErrmsg(p, pVTab->pVtab);  | 
 
| 
89769
 | 
 0  | 
 45  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
89794
 | 
 10  | 
 0  | 
   if( zTab ){  | 
 
| 
89798
 | 
 1  | 
 9  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
89813
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
89835
 | 
 43  | 
 0  | 
   if( pVtab==0 || NEVER(pVtab->pModule==0) ){  | 
 
| 
 | 
 0  | 
 43  | 
   if( pVtab==0 || NEVER(pVtab->pModule==0) ){  | 
 
| 
89842
 | 
 0  | 
 43  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
89849
 | 
 43  | 
 0  | 
   if( pCur ){  | 
 
| 
89912
 | 
 60  | 
 43  | 
   for(i = 0; i
 | 
 
| 
89917
 | 
 0  | 
 43  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
89921
 | 
 5  | 
 38  | 
   if( res ) goto jump_to_p2;  | 
 
| 
89952
 | 
 0  | 
 96  | 
   if( pCur->nullRow ){  | 
 
| 
89962
 | 
 0  | 
 96  | 
   if( pOp->p5 & OPFLAG_NOCHNG ){  | 
 
| 
89971
 | 
 0  | 
 96  | 
   if( sContext.isError>0 ){  | 
 
| 
89979
 | 
 0  | 
 96  | 
   if( sqlite3VdbeMemTooBig(pDest) ){  | 
 
| 
89982
 | 
 0  | 
 96  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
90003
 | 
 0  | 
 75  | 
   if( pCur->nullRow ){  | 
 
| 
90018
 | 
 0  | 
 75  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
90021
 | 
 37  | 
 38  | 
   if( !res ){  | 
 
| 
90054
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
90056
 | 
 0  | 
 0  | 
   if( isLegacy==0 ) db->flags &= ~SQLITE_LegacyAlter;  | 
 
| 
90059
 | 
 0  | 
 0  | 
   if( rc ) goto abort_due_to_error;  | 
 
| 
90105
 | 
 0  | 
 35  | 
   if( db->mallocFailed ) goto no_mem;  | 
 
| 
90108
 | 
 35  | 
 0  | 
   if( pVtab==0 || NEVER(pVtab->pModule==0) ){  | 
 
| 
 | 
 0  | 
 35  | 
   if( pVtab==0 || NEVER(pVtab->pModule==0) ){  | 
 
| 
90115
 | 
 35  | 
 0  | 
   if( ALWAYS(pModule->xUpdate) ){  | 
 
| 
90119
 | 
 229  | 
 35  | 
     for(i=0; i
 | 
 
| 
90129
 | 
 35  | 
 0  | 
     if( rc==SQLITE_OK && pOp->p1 ){  | 
 
| 
 | 
 35  | 
 0  | 
     if( rc==SQLITE_OK && pOp->p1 ){  | 
 
| 
90133
 | 
 0  | 
 35  | 
     if( (rc&0xff)==SQLITE_CONSTRAINT && pOp->p4.pVtab->bConstraint ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (rc&0xff)==SQLITE_CONSTRAINT && pOp->p4.pVtab->bConstraint ){  | 
 
| 
90134
 | 
 0  | 
 0  | 
       if( pOp->p5==OE_Ignore ){  | 
 
| 
90137
 | 
 0  | 
 0  | 
         p->errorAction = ((pOp->p5==OE_Replace) ? OE_Abort : pOp->p5);  | 
 
| 
90142
 | 
 0  | 
 35  | 
     if( rc ) goto abort_due_to_error;  | 
 
| 
90177
 | 
 0  | 
 0  | 
   if( pOp->p3 ){  | 
 
| 
90179
 | 
 0  | 
 0  | 
     if( newMax < (unsigned)pOp->p3 ) newMax = (unsigned)pOp->p3;  | 
 
| 
90238
 | 
 0  | 
 543  | 
   if( pCtx==0 ) goto no_mem;  | 
 
| 
90265
 | 
 543  | 
 398  | 
   if( pCtx->pOut != pOut ){  | 
 
| 
90267
 | 
 950  | 
 543  | 
     for(i=pCtx->argc-1; i>=0; i--) pCtx->argv[i] = &aMem[pOp->p2+i];  | 
 
| 
90282
 | 
 6  | 
 935  | 
   if( pCtx->isError ){  | 
 
| 
90283
 | 
 6  | 
 0  | 
     if( pCtx->isError>0 ){  | 
 
| 
90289
 | 
 6  | 
 0  | 
     if( rc ) goto abort_due_to_error;  | 
 
| 
90293
 | 
 292  | 
 643  | 
   if( pOut->flags & (MEM_Str|MEM_Blob) ){  | 
 
| 
90295
 | 
 0  | 
 292  | 
     if( sqlite3VdbeMemTooBig(pOut) ) goto too_big;  | 
 
| 
90350
 | 
 20  | 
 5335  | 
   if( (db->mTrace & (SQLITE_TRACE_STMT|SQLITE_TRACE_LEGACY))!=0  | 
 
| 
90351
 | 
 20  | 
 0  | 
    && !p->doingRerun  | 
 
| 
90352
 | 
 0  | 
 20  | 
    && (zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql))!=0  | 
 
| 
 | 
 14  | 
 6  | 
    && (zTrace = (pOp->p4.z ? pOp->p4.z : p->zSql))!=0  | 
 
| 
90355
 | 
 14  | 
 0  | 
     if( db->mTrace & SQLITE_TRACE_LEGACY ){  | 
 
| 
90362
 | 
 0  | 
 0  | 
     if( db->nVdbeExec>1 ){  | 
 
| 
90389
 | 
 0  | 
 5355  | 
   if( pOp->p1>=sqlite3GlobalConfig.iOnceResetThreshold ){  | 
 
| 
90390
 | 
 0  | 
 0  | 
     if( pOp->opcode==OP_Trace ) break;  | 
 
| 
90391
 | 
 0  | 
 0  | 
     for(i=1; inOp; i++){  | 
 
| 
90392
 | 
 0  | 
 0  | 
       if( p->aOp[i].opcode==OP_Once ) p->aOp[i].p1 = 0;  | 
 
| 
90500
 | 
 0  | 
 33  | 
   if( db->mallocFailed ) rc = SQLITE_NOMEM_BKPT;  | 
 
| 
90502
 | 
 6  | 
 27  | 
   if( p->zErrMsg==0 && rc!=SQLITE_IOERR_NOMEM ){  | 
 
| 
 | 
 6  | 
 0  | 
   if( p->zErrMsg==0 && rc!=SQLITE_IOERR_NOMEM ){  | 
 
| 
90511
 | 
 0  | 
 33  | 
   if( rc==SQLITE_IOERR_NOMEM ) sqlite3OomFault(db);  | 
 
| 
90513
 | 
 0  | 
 33  | 
   if( resetSchemaOnFault>0 ){  | 
 
| 
90550
 | 
 0  | 
 0  | 
   rc = db->mallocFailed ? SQLITE_NOMEM_BKPT : SQLITE_INTERRUPT;  | 
 
| 
90627
 | 
 0  | 
 15  | 
   if( v->pc>4 ){  | 
 
| 
90634
 | 
 15  | 
 0  | 
   if( rc==SQLITE_ROW ){  | 
 
| 
90636
 | 
 15  | 
 0  | 
     u32 type = pC->nHdrParsed>p->iCol ? pC->aType[p->iCol] : 0;  | 
 
| 
90639
 | 
 0  | 
 15  | 
     if( type<12 ){  | 
 
| 
90640
 | 
 0  | 
 0  | 
       zErr = sqlite3MPrintf(p->db, "cannot open value of type %s",  | 
 
| 
90641
 | 
 0  | 
 0  | 
           type==0?"null": type==7?"real": "integer"  | 
 
| 
90654
 | 
 15  | 
 0  | 
   if( rc==SQLITE_ROW ){  | 
 
| 
90656
 | 
 0  | 
 0  | 
   }else if( p->pStmt ){  | 
 
| 
90659
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
90712
 | 
 0  | 
 15  | 
     if( !pBlob ) goto blob_open_out;  | 
 
| 
90719
 | 
 15  | 
 0  | 
     if( pTab && IsVirtual(pTab) ){  | 
 
| 
 | 
 0  | 
 15  | 
     if( pTab && IsVirtual(pTab) ){  | 
 
| 
90723
 | 
 15  | 
 0  | 
     if( pTab && !HasRowid(pTab) ){  | 
 
| 
 | 
 0  | 
 15  | 
     if( pTab && !HasRowid(pTab) ){  | 
 
| 
90728
 | 
 15  | 
 0  | 
     if( pTab && pTab->pSelect ){  | 
 
| 
 | 
 0  | 
 15  | 
     if( pTab && pTab->pSelect ){  | 
 
| 
90733
 | 
 0  | 
 15  | 
     if( !pTab ){  | 
 
| 
90734
 | 
 0  | 
 0  | 
       if( sParse.zErrMsg ){  | 
 
| 
90747
 | 
 30  | 
 0  | 
     for(iCol=0; iColnCol; iCol++) {  | 
 
| 
90748
 | 
 15  | 
 15  | 
       if( sqlite3StrICmp(pTab->aCol[iCol].zName, zColumn)==0 ){  | 
 
| 
90752
 | 
 0  | 
 15  | 
     if( iCol==pTab->nCol ){  | 
 
| 
90763
 | 
 0  | 
 15  | 
     if( wrFlag ){  | 
 
| 
90767
 | 
 0  | 
 0  | 
       if( db->flags&SQLITE_ForeignKeys ){  | 
 
| 
90773
 | 
 0  | 
 0  | 
         for(pFKey=pTab->pFKey; pFKey; pFKey=pFKey->pNextFrom){  | 
 
| 
90775
 | 
 0  | 
 0  | 
           for(j=0; jnCol; j++){  | 
 
| 
90776
 | 
 0  | 
 0  | 
             if( pFKey->aCol[j].iFrom==iCol ){  | 
 
| 
90783
 | 
 0  | 
 0  | 
       for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
90785
 | 
 0  | 
 0  | 
         for(j=0; jnKeyCol; j++){  | 
 
| 
90787
 | 
 0  | 
 0  | 
           if( pIdx->aiColumn[j]==iCol || pIdx->aiColumn[j]==XN_EXPR ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( pIdx->aiColumn[j]==iCol || pIdx->aiColumn[j]==XN_EXPR ){  | 
 
| 
90792
 | 
 0  | 
 0  | 
       if( zFault ){  | 
 
| 
90803
 | 
 15  | 
 0  | 
     if( pBlob->pStmt ){  | 
 
| 
90844
 | 
 15  | 
 0  | 
       if( db->mallocFailed==0 ){  | 
 
| 
90855
 | 
 15  | 
 0  | 
       if( db->mallocFailed==0 ){  | 
 
| 
90860
 | 
 0  | 
 15  | 
         if( wrFlag ) aOp[1].opcode = OP_OpenWrite;  | 
 
| 
90885
 | 
 0  | 
 15  | 
     if( db->mallocFailed ){  | 
 
| 
90889
 | 
 15  | 
 0  | 
   } while( (++nAttempt)
 | 
 
| 
 | 
 0  | 
 15  | 
   } while( (++nAttempt)
 | 
 
| 
90892
 | 
 15  | 
 0  | 
   if( rc==SQLITE_OK && db->mallocFailed==0 ){  | 
 
| 
 | 
 15  | 
 0  | 
   if( rc==SQLITE_OK && db->mallocFailed==0 ){  | 
 
| 
90895
 | 
 0  | 
 0  | 
     if( pBlob && pBlob->pStmt ) sqlite3VdbeFinalize((Vdbe *)pBlob->pStmt);  | 
 
| 
 | 
 0  | 
 0  | 
     if( pBlob && pBlob->pStmt ) sqlite3VdbeFinalize((Vdbe *)pBlob->pStmt);  | 
 
| 
90898
 | 
 0  | 
 15  | 
   sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr);  | 
 
| 
90915
 | 
 15  | 
 349  | 
   if( p ){  | 
 
| 
90942
 | 
 0  | 
 15  | 
   if( p==0 ) return SQLITE_MISUSE_BKPT;  | 
 
| 
90947
 | 
 15  | 
 0  | 
   if( n<0 || iOffset<0 || ((sqlite3_int64)iOffset+n)>p->nByte ){  | 
 
| 
 | 
 15  | 
 0  | 
   if( n<0 || iOffset<0 || ((sqlite3_int64)iOffset+n)>p->nByte ){  | 
 
| 
 | 
 0  | 
 15  | 
   if( n<0 || iOffset<0 || ((sqlite3_int64)iOffset+n)>p->nByte ){  | 
 
| 
90950
 | 
 0  | 
 15  | 
   }else if( v==0 ){  | 
 
| 
90987
 | 
 0  | 
 15  | 
     if( rc==SQLITE_ABORT ){  | 
 
| 
91022
 | 
 15  | 
 0  | 
   return (p && p->pStmt) ? p->nByte : 0;  | 
 
| 
 | 
 15  | 
 0  | 
   return (p && p->pStmt) ? p->nByte : 0;  | 
 
| 
91040
 | 
 0  | 
 0  | 
   if( p==0 ) return SQLITE_MISUSE_BKPT;  | 
 
| 
91044
 | 
 0  | 
 0  | 
   if( p->pStmt==0 ){  | 
 
| 
91052
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
91053
 | 
 0  | 
 0  | 
       sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr);  | 
 
| 
91540
 | 
 0  | 
 0  | 
   if( pReadr->aMap ) sqlite3OsUnfetch(pReadr->pFd, 0, pReadr->aMap);  | 
 
| 
91562
 | 
 0  | 
 0  | 
   if( p->aMap ){  | 
 
| 
91574
 | 
 0  | 
 0  | 
   if( iBuf==0 ){  | 
 
| 
91579
 | 
 0  | 
 0  | 
     if( (p->iEof - p->iReadOff) > (i64)p->nBuffer ){  | 
 
| 
91589
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
91593
 | 
 0  | 
 0  | 
   if( nByte<=nAvail ){  | 
 
| 
91606
 | 
 0  | 
 0  | 
     if( p->nAlloc
 | 
 
| 
91609
 | 
 0  | 
 0  | 
       while( nByte>nNew ) nNew = nNew*2;  | 
 
| 
91611
 | 
 0  | 
 0  | 
       if( !aNew ) return SQLITE_NOMEM_BKPT;  | 
 
| 
91624
 | 
 0  | 
 0  | 
     while( nRem>0 ){  | 
 
| 
91630
 | 
 0  | 
 0  | 
       if( nRem>p->nBuffer ) nCopy = p->nBuffer;  | 
 
| 
91632
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
91651
 | 
 0  | 
 0  | 
   if( p->aMap ){  | 
 
| 
91655
 | 
 0  | 
 0  | 
     if( iBuf && (p->nBuffer-iBuf)>=9 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iBuf && (p->nBuffer-iBuf)>=9 ){  | 
 
| 
91662
 | 
 0  | 
 0  | 
         if( rc ) return rc;  | 
 
| 
91664
 | 
 0  | 
 0  | 
       }while( (a[0]&0x80)!=0 );  | 
 
| 
91683
 | 
 0  | 
 0  | 
   if( pFile->iEof<=(i64)(pTask->pSorter->db->nMaxSorterMmap) ){  | 
 
| 
91685
 | 
 0  | 
 0  | 
     if( pFd->pMethods->iVersion>=3 ){  | 
 
| 
91708
 | 
 0  | 
 0  | 
   if( sqlite3FaultSim(201) ) return SQLITE_IOERR_READ;  | 
 
| 
91709
 | 
 0  | 
 0  | 
   if( pReadr->aMap ){  | 
 
| 
91718
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pReadr->aMap==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pReadr->aMap==0 ){  | 
 
| 
91721
 | 
 0  | 
 0  | 
     if( pReadr->aBuffer==0 ){  | 
 
| 
91723
 | 
 0  | 
 0  | 
       if( pReadr->aBuffer==0 ) rc = SQLITE_NOMEM_BKPT;  | 
 
| 
91726
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && iBuf ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && iBuf ){  | 
 
| 
91728
 | 
 0  | 
 0  | 
       if( (pReadr->iReadOff + nRead) > pReadr->iEof ){  | 
 
| 
91750
 | 
 0  | 
 0  | 
   if( pReadr->iReadOff>=pReadr->iEof ){  | 
 
| 
91753
 | 
 0  | 
 0  | 
     if( pIncr ){  | 
 
| 
91755
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && pIncr->bEof==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && pIncr->bEof==0 ){  | 
 
| 
91763
 | 
 0  | 
 0  | 
     if( bEof ){  | 
 
| 
91771
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
91774
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
91807
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
91814
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
91832
 | 
 5  | 
 0  | 
   if( *pbKey2Cached==0 ){  | 
 
| 
91859
 | 
 20195  | 
 15402  | 
   if( !*pbKey2Cached ){  | 
 
| 
91886
 | 
 88  | 
 0  | 
   getVarint32(&p1[1], n1);  | 
 
| 
91887
 | 
 88  | 
 0  | 
   getVarint32(&p2[1], n2);  | 
 
| 
91889
 | 
 25  | 
 63  | 
   if( res==0 ){  | 
 
| 
91893
 | 
 25  | 
 63  | 
   if( res==0 ){  | 
 
| 
91894
 | 
 5  | 
 20  | 
     if( pTask->pSorter->pKeyInfo->nKeyField>1 ){  | 
 
| 
91900
 | 
 0  | 
 63  | 
     if( pTask->pSorter->pKeyInfo->aSortOrder[0] ){  | 
 
| 
91929
 | 
 86  | 
 194  | 
   if( s1==s2 ){  | 
 
| 
91935
 | 
 86  | 
 0  | 
     for(i=0; i
 | 
 
| 
91936
 | 
 86  | 
 0  | 
       if( (res = v1[i] - v2[i])!=0 ){  | 
 
| 
91937
 | 
 0  | 
 86  | 
         if( ((v1[0] ^ v2[0]) & 0x80)!=0 ){  | 
 
| 
91938
 | 
 0  | 
 0  | 
           res = v1[0] & 0x80 ? -1 : +1;  | 
 
| 
91943
 | 
 78  | 
 116  | 
   }else if( s1>7 && s2>7 ){  | 
 
| 
 | 
 58  | 
 20  | 
   }else if( s1>7 && s2>7 ){  | 
 
| 
91946
 | 
 116  | 
 20  | 
     if( s2>7 ){  | 
 
| 
91948
 | 
 20  | 
 0  | 
     }else if( s1>7 ){  | 
 
| 
91955
 | 
 116  | 
 20  | 
     if( res>0 ){  | 
 
| 
91956
 | 
 0  | 
 116  | 
       if( *v1 & 0x80 ) res = -1;  | 
 
| 
91958
 | 
 0  | 
 20  | 
       if( *v2 & 0x80 ) res = +1;  | 
 
| 
91962
 | 
 0  | 
 280  | 
   if( res==0 ){  | 
 
| 
91963
 | 
 0  | 
 0  | 
     if( pTask->pSorter->pKeyInfo->nKeyField>1 ){  | 
 
| 
91968
 | 
 0  | 
 280  | 
   }else if( pTask->pSorter->pKeyInfo->aSortOrder[0] ){  | 
 
| 
92036
 | 
 0  | 
 160  | 
   if( pSorter==0 ){  | 
 
| 
92042
 | 
 5  | 
 155  | 
     if( nField && nWorker==0 ){  | 
 
| 
92050
 | 
 160  | 
 160  | 
     for(i=0; inTask; i++){  | 
 
| 
92055
 | 
 160  | 
 0  | 
     if( !sqlite3TempInMemory(db) ){  | 
 
| 
92061
 | 
 160  | 
 0  | 
       if( mxCache<0 ){  | 
 
| 
92073
 | 
 160  | 
 0  | 
       if( sqlite3GlobalConfig.bSmallMalloc==0 ){  | 
 
| 
92077
 | 
 0  | 
 160  | 
         if( !pSorter->list.aMemory ) rc = SQLITE_NOMEM_BKPT;  | 
 
| 
92081
 | 
 160  | 
 0  | 
     if( pKeyInfo->nAllField<13   | 
 
| 
92082
 | 
 155  | 
 5  | 
      && (pKeyInfo->aColl[0]==0 || pKeyInfo->aColl[0]==db->pDfltColl)  | 
 
| 
 | 
 139  | 
 16  | 
      && (pKeyInfo->aColl[0]==0 || pKeyInfo->aColl[0]==db->pDfltColl)  | 
 
| 
92098
 | 
 0  | 
 160  | 
   for(p=pRecord; p; p=pNext){  | 
 
| 
92121
 | 
 0  | 
 160  | 
   if( pTask->file.pFd ){  | 
 
| 
92124
 | 
 0  | 
 160  | 
   if( pTask->file2.pFd ){  | 
 
| 
92244
 | 
 0  | 
 0  | 
   while( N
 | 
 
| 
92247
 | 
 0  | 
 0  | 
   pNew = sqlite3FaultSim(100) ? 0 : (MergeEngine*)sqlite3MallocZero(nByte);  | 
 
| 
92248
 | 
 0  | 
 0  | 
   if( pNew ){  | 
 
| 
92262
 | 
 0  | 
 160  | 
   if( pMerger ){  | 
 
| 
92263
 | 
 0  | 
 0  | 
     for(i=0; inTree; i++){  | 
 
| 
92275
 | 
 0  | 
 0  | 
   if( pIncr ){  | 
 
| 
92304
 | 
 160  | 
 160  | 
   for(i=0; inTask; i++){  | 
 
| 
92309
 | 
 0  | 
 160  | 
   if( pSorter->list.aMemory==0 ){  | 
 
| 
92328
 | 
 160  | 
 0  | 
   if( pSorter ){  | 
 
| 
92347
 | 
 0  | 
 0  | 
   if( nByte<=(i64)(db->nMaxSorterMmap) && pFd->pMethods->iVersion>=3 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( nByte<=(i64)(db->nMaxSorterMmap) && pFd->pMethods->iVersion>=3 ){  | 
 
| 
92371
 | 
 0  | 
 0  | 
   if( sqlite3FaultSim(202) ) return SQLITE_IOERR_ACCESS;  | 
 
| 
92377
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
92380
 | 
 0  | 
 0  | 
     if( nExtend>0 ){  | 
 
| 
92393
 | 
 128  | 
 0  | 
   if( pTask->pUnpacked==0 ){  | 
 
| 
92395
 | 
 0  | 
 128  | 
     if( pTask->pUnpacked==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
92422
 | 
 17582  | 
 18383  | 
     if( res<=0 ){  | 
 
| 
92426
 | 
 2155  | 
 15427  | 
       if( p1==0 ){  | 
 
| 
92435
 | 
 2357  | 
 16026  | 
       if( p2==0 ){  | 
 
| 
92449
 | 
 73  | 
 55  | 
   if( p->typeMask==SORTER_TYPE_INTEGER ){  | 
 
| 
92451
 | 
 29  | 
 26  | 
   }else if( p->typeMask==SORTER_TYPE_TEXT ){  | 
 
| 
92469
 | 
 0  | 
 128  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
92475
 | 
 0  | 
 128  | 
   if( !aSlot ){  | 
 
| 
92479
 | 
 4640  | 
 128  | 
   while( p ){  | 
 
| 
92481
 | 
 4640  | 
 0  | 
     if( pList->aMemory ){  | 
 
| 
92482
 | 
 128  | 
 4512  | 
       if( (u8*)p==pList->aMemory ){  | 
 
| 
92493
 | 
 4467  | 
 4640  | 
     for(i=0; aSlot[i]; i++){  | 
 
| 
92502
 | 
 8192  | 
 128  | 
   for(i=0; i<64; i++){  | 
 
| 
92503
 | 
 8019  | 
 173  | 
     if( aSlot[i]==0 ) continue;  | 
 
| 
92504
 | 
 45  | 
 128  | 
     p = p ? vdbeSorterMerge(pTask, p, aSlot[i]) : aSlot[i];  | 
 
| 
92526
 | 
 0  | 
 0  | 
   if( !p->aBuffer ){  | 
 
| 
92542
 | 
 0  | 
 0  | 
   while( nRem>0 && p->eFWErr==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( nRem>0 && p->eFWErr==0 ){  | 
 
| 
92544
 | 
 0  | 
 0  | 
     if( nCopy>(p->nBuffer - p->iBufEnd) ){  | 
 
| 
92550
 | 
 0  | 
 0  | 
     if( p->iBufEnd==p->nBuffer ){  | 
 
| 
92575
 | 
 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 ){  | 
 
| 
92629
 | 
 0  | 
 0  | 
   if( pTask->file.pFd==0 ){  | 
 
| 
92637
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
92642
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
92646
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
92654
 | 
 0  | 
 0  | 
     for(p=pList->pList; p; p=pNext){  | 
 
| 
92658
 | 
 0  | 
 0  | 
       if( pList->aMemory==0 ) sqlite3_free(p);  | 
 
| 
92689
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
92700
 | 
 0  | 
 0  | 
     for(i=(pMerger->nTree+iPrev)/2; i>0; i=i/2){  | 
 
| 
92703
 | 
 0  | 
 0  | 
       if( pReadr1->pFd==0 ){  | 
 
| 
92705
 | 
 0  | 
 0  | 
       }else if( pReadr2->pFd==0 ){  | 
 
| 
92728
 | 
 0  | 
 0  | 
       if( iRes<0 || (iRes==0 && pReadr1
 | 
 
| 
 | 
 0  | 
 0  | 
       if( iRes<0 || (iRes==0 && pReadr1
 | 
 
| 
 | 
 0  | 
 0  | 
       if( iRes<0 || (iRes==0 && pReadr1
 | 
 
| 
92733
 | 
 0  | 
 0  | 
         if( pReadr1->pFd ) bCached = 0;  | 
 
| 
92741
 | 
 0  | 
 0  | 
   return (rc==SQLITE_OK ? pTask->pUnpacked->errCode : rc);  | 
 
| 
92843
 | 
 4640  | 
 0  | 
   getVarint32((const u8*)&pVal->z[1], t);  | 
 
| 
92844
 | 
 4634  | 
 6  | 
   if( t>0 && t<10 && t!=7 ){  | 
 
| 
 | 
 4290  | 
 344  | 
   if( t>0 && t<10 && t!=7 ){  | 
 
| 
 | 
 290  | 
 4000  | 
   if( t>0 && t<10 && t!=7 ){  | 
 
| 
92846
 | 
 344  | 
 4006  | 
   }else if( t>10 && (t & 0x01) ){  | 
 
| 
 | 
 344  | 
 0  | 
   }else if( t>10 && (t & 0x01) ){  | 
 
| 
92872
 | 
 4640  | 
 0  | 
   if( pSorter->mxPmaSize ){  | 
 
| 
92873
 | 
 4640  | 
 0  | 
     if( pSorter->list.aMemory ){  | 
 
| 
92874
 | 
 4512  | 
 128  | 
       bFlush = pSorter->iMemory && (pSorter->iMemory+nReq) > pSorter->mxPmaSize;  | 
 
| 
 | 
 0  | 
 4512  | 
       bFlush = pSorter->iMemory && (pSorter->iMemory+nReq) > pSorter->mxPmaSize;  | 
 
| 
92878
 | 
 0  | 
 0  | 
        || (pSorter->list.szPMA > pSorter->mnPmaSize && sqlite3HeapNearlyFull())  | 
 
| 
 | 
 0  | 
 0  | 
        || (pSorter->list.szPMA > pSorter->mnPmaSize && sqlite3HeapNearlyFull())  | 
 
| 
 | 
 0  | 
 0  | 
        || (pSorter->list.szPMA > pSorter->mnPmaSize && sqlite3HeapNearlyFull())  | 
 
| 
92881
 | 
 0  | 
 4640  | 
     if( bFlush ){  | 
 
| 
92890
 | 
 187  | 
 4453  | 
   if( nPMA>pSorter->mxKeysize ){  | 
 
| 
92894
 | 
 4640  | 
 0  | 
   if( pSorter->list.aMemory ){  | 
 
| 
92897
 | 
 13  | 
 4627  | 
     if( nMin>pSorter->nMemory ){  | 
 
| 
92901
 | 
 3  | 
 13  | 
       while( nNew < nMin ) nNew = nNew*2;  | 
 
| 
92902
 | 
 0  | 
 13  | 
       if( nNew > pSorter->mxPmaSize ) nNew = pSorter->mxPmaSize;  | 
 
| 
92903
 | 
 0  | 
 13  | 
       if( nNew < nMin ) nNew = nMin;  | 
 
| 
92906
 | 
 0  | 
 13  | 
       if( !aNew ) return SQLITE_NOMEM_BKPT;  | 
 
| 
92914
 | 
 4513  | 
 127  | 
     if( pSorter->list.pList ){  | 
 
| 
92919
 | 
 0  | 
 0  | 
     if( pNew==0 ){  | 
 
| 
92950
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK ){  | 
 
| 
92958
 | 
 0  | 
 0  | 
     if( pReader->pFd==0 ) break;  | 
 
| 
92959
 | 
 0  | 
 0  | 
     if( (iEof + nKey + sqlite3VarintLen(nKey))>(iStart + pIncr->mxSz) ) break;  | 
 
| 
92969
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
93038
 | 
 0  | 
 0  | 
     if( pIncr->aFile[0].iEof==pIncr->iStartOff ){  | 
 
| 
93058
 | 
 0  | 
 0  | 
   IncrMerger *pIncr = *ppOut = (IncrMerger*)  | 
 
| 
93060
 | 
 0  | 
 0  | 
   if( pIncr ){  | 
 
| 
93101
 | 
 0  | 
 0  | 
   if( iOut>=(pMerger->nTree/2) ){  | 
 
| 
93112
 | 
 0  | 
 0  | 
   if( p1->pFd==0 ){  | 
 
| 
93114
 | 
 0  | 
 0  | 
   }else if( p2->pFd==0 ){  | 
 
| 
93124
 | 
 0  | 
 0  | 
     if( res<=0 ){  | 
 
| 
93192
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
93205
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
93208
 | 
 0  | 
 0  | 
   for(i=pMerger->nTree-1; i>0; i--){  | 
 
| 
93261
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
93272
 | 
 0  | 
 0  | 
       if( pTask->file2.pFd==0 ){  | 
 
| 
93277
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
93302
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && (SQLITE_MAX_WORKER_THREADS==0 || eMode!=INCRINIT_TASK) ){  | 
 
| 
93338
 | 
 0  | 
 0  | 
   if( pIncr ){  | 
 
| 
93377
 | 
 0  | 
 0  | 
   if( pNew==0 ) rc = SQLITE_NOMEM_BKPT;  | 
 
| 
93379
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
93386
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
93407
 | 
 0  | 
 0  | 
   while( nDiv < (i64)nPMA ){  | 
 
| 
93437
 | 
 0  | 
 0  | 
   for(i=1; i
 | 
 
| 
93441
 | 
 0  | 
 0  | 
   for(i=1; i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=1; i
 | 
 
| 
93445
 | 
 0  | 
 0  | 
     if( pReadr->pIncr==0 ){  | 
 
| 
93447
 | 
 0  | 
 0  | 
       if( pNew==0 ){  | 
 
| 
93453
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
93459
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
93497
 | 
 0  | 
 0  | 
   for(iTask=0; rc==SQLITE_OK && iTasknTask; iTask++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(iTask=0; rc==SQLITE_OK && iTasknTask; iTask++){  | 
 
| 
93505
 | 
 0  | 
 0  | 
       if( pTask->nPMA<=SORTER_MAX_MERGE_COUNT ){  | 
 
| 
93511
 | 
 0  | 
 0  | 
         if( pRoot==0 ) rc = SQLITE_NOMEM_BKPT;  | 
 
| 
93512
 | 
 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){  | 
 
| 
93518
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
93524
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
93540
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
93571
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
93627
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
93650
 | 
 160  | 
 0  | 
   if( pSorter->bUsePMA==0 ){  | 
 
| 
93651
 | 
 128  | 
 32  | 
     if( pSorter->list.pList ){  | 
 
| 
93675
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
93698
 | 
 0  | 
 4630  | 
   if( pSorter->bUsePMA ){  | 
 
| 
93713
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && res ) rc = SQLITE_DONE;  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && res ) rc = SQLITE_DONE;  | 
 
| 
93719
 | 
 0  | 
 4630  | 
     if( pSorter->list.aMemory==0 ) vdbeSorterRecordFree(db, pFree);  | 
 
| 
93720
 | 
 4508  | 
 122  | 
     rc = pSorter->list.pList ? SQLITE_OK : SQLITE_DONE;  | 
 
| 
93734
 | 
 0  | 
 4637  | 
   if( pSorter->bUsePMA ){  | 
 
| 
93763
 | 
 0  | 
 4636  | 
   if( sqlite3VdbeMemClearAndResize(pOut, nKey) ){  | 
 
| 
93805
 | 
 1  | 
 0  | 
   if( r2==0 ){  | 
 
| 
93807
 | 
 0  | 
 1  | 
     if( r2==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
93814
 | 
 1  | 
 1  | 
   for(i=0; i
 | 
 
| 
93815
 | 
 0  | 
 1  | 
     if( r2->aMem[i].flags & MEM_Null ){  | 
 
| 
93934
 | 
 172  | 
 111  | 
   if( p->readpoint.iOffset!=iOfst || iOfst==0 ){  | 
 
| 
 | 
 1  | 
 171  | 
   if( p->readpoint.iOffset!=iOfst || iOfst==0 ){  | 
 
| 
93936
 | 
 288  | 
 0  | 
     for(pChunk=p->pFirst;   | 
 
| 
93937
 | 
 176  | 
 112  | 
         ALWAYS(pChunk) && (iOff+p->nChunkSize)<=iOfst;  | 
 
| 
93955
 | 
 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 );  | 
 
| 
93956
 | 
 283  | 
 0  | 
   p->readpoint.iOffset = pChunk ? iOfst+iAmt : 0;  | 
 
| 
93968
 | 
 4382  | 
 886  | 
   for(pIter=p->pFirst; pIter; pIter=pNext){  | 
 
| 
93985
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
93989
 | 
 0  | 
 0  | 
     for(pIter=copy.pFirst; pIter; pIter=pIter->pNext){  | 
 
| 
93990
 | 
 0  | 
 0  | 
       if( iOff + nChunk > copy.endpoint.iOffset ){  | 
 
| 
93994
 | 
 0  | 
 0  | 
       if( rc ) break;  | 
 
| 
93997
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
94002
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
94029
 | 
 711  | 
 3311  | 
   if( p->nSpill>0 && (iAmt+iOfst)>p->nSpill ){  | 
 
| 
 | 
 0  | 
 711  | 
   if( p->nSpill>0 && (iAmt+iOfst)>p->nSpill ){  | 
 
| 
94031
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
94055
 | 
 7518  | 
 4022  | 
       while( nWrite>0 ){  | 
 
| 
94060
 | 
 4382  | 
 3136  | 
         if( iChunkOffset==0 ){  | 
 
| 
94063
 | 
 0  | 
 4382  | 
           if( !pNew ){  | 
 
| 
94067
 | 
 3496  | 
 886  | 
           if( pChunk ){  | 
 
| 
94098
 | 
 0  | 
 0  | 
   if( ALWAYS(size==0) ){  | 
 
| 
94189
 | 
 74  | 
 886  | 
   if( nSpill==0 ){  | 
 
| 
94193
 | 
 195  | 
 691  | 
   if( nSpill>0 ){  | 
 
| 
94308
 | 
 6498  | 
 26202  | 
     if( rc ) return rc & WRC_Abort;  | 
 
| 
94309
 | 
 6707  | 
 19495  | 
     if( !ExprHasProperty(pExpr,(EP_TokenOnly|EP_Leaf)) ){  | 
 
| 
94310
 | 
 4077  | 
 2630  | 
       if( pExpr->pLeft && walkExpr(pWalker, pExpr->pLeft) ) return WRC_Abort;  | 
 
| 
 | 
 12  | 
 4065  | 
       if( pExpr->pLeft && walkExpr(pWalker, pExpr->pLeft) ) return WRC_Abort;  | 
 
| 
94312
 | 
 3699  | 
 2996  | 
       if( pExpr->pRight ){  | 
 
| 
94315
 | 
 71  | 
 2925  | 
       }else if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
94316
 | 
 23  | 
 48  | 
         if( sqlite3WalkSelect(pWalker, pExpr->x.pSelect) ) return WRC_Abort;  | 
 
| 
94317
 | 
 1529  | 
 1396  | 
       }else if( pExpr->x.pList ){  | 
 
| 
94318
 | 
 194  | 
 1335  | 
         if( sqlite3WalkExprList(pWalker, pExpr->x.pList) ) return WRC_Abort;  | 
 
| 
94321
 | 
 0  | 
 2779  | 
       if( ExprHasProperty(pExpr, EP_WinFunc) ){  | 
 
| 
94323
 | 
 0  | 
 0  | 
         if( sqlite3WalkExprList(pWalker, pWin->pPartition) ) return WRC_Abort;  | 
 
| 
94324
 | 
 0  | 
 0  | 
         if( sqlite3WalkExprList(pWalker, pWin->pOrderBy) ) return WRC_Abort;  | 
 
| 
94325
 | 
 0  | 
 0  | 
         if( sqlite3WalkExpr(pWalker, pWin->pFilter) ) return WRC_Abort;  | 
 
| 
94334
 | 
 24924  | 
 8127  | 
   return pExpr ? walkExpr(pWalker,pExpr) : WRC_Continue;  | 
 
| 
94344
 | 
 6288  | 
 5487  | 
   if( p ){  | 
 
| 
94345
 | 
 10688  | 
 6094  | 
     for(i=p->nExpr, pItem=p->a; i>0; i--, pItem++){  | 
 
| 
94346
 | 
 194  | 
 10494  | 
       if( sqlite3WalkExpr(pWalker, pItem->pExpr) ) return WRC_Abort;  | 
 
| 
94359
 | 
 0  | 
 3156  | 
   if( sqlite3WalkExprList(pWalker, p->pEList) ) return WRC_Abort;  | 
 
| 
94360
 | 
 0  | 
 3156  | 
   if( sqlite3WalkExpr(pWalker, p->pWhere) ) return WRC_Abort;  | 
 
| 
94361
 | 
 0  | 
 3156  | 
   if( sqlite3WalkExprList(pWalker, p->pGroupBy) ) return WRC_Abort;  | 
 
| 
94362
 | 
 0  | 
 3156  | 
   if( sqlite3WalkExpr(pWalker, p->pHaving) ) return WRC_Abort;  | 
 
| 
94363
 | 
 0  | 
 3156  | 
   if( sqlite3WalkExprList(pWalker, p->pOrderBy) ) return WRC_Abort;  | 
 
| 
94364
 | 
 0  | 
 3156  | 
   if( sqlite3WalkExpr(pWalker, p->pLimit) ) return WRC_Abort;  | 
 
| 
94382
 | 
 2288  | 
 3156  | 
   for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){  | 
 
| 
94383
 | 
 72  | 
 2216  | 
     if( pItem->pSelect && sqlite3WalkSelect(pWalker, pItem->pSelect) ){  | 
 
| 
 | 
 0  | 
 72  | 
     if( pItem->pSelect && sqlite3WalkSelect(pWalker, pItem->pSelect) ){  | 
 
| 
94386
 | 
 0  | 
 2288  | 
     if( pItem->fg.isTabFunc  | 
 
| 
94387
 | 
 0  | 
 0  | 
      && sqlite3WalkExprList(pWalker, pItem->u1.pFuncArg)  | 
 
| 
94414
 | 
 43  | 
 4551  | 
   if( p==0 ) return WRC_Continue;  | 
 
| 
94415
 | 
 0  | 
 4551  | 
   if( pWalker->xSelectCallback==0 ) return WRC_Continue;  | 
 
| 
94418
 | 
 1565  | 
 3156  | 
     if( rc ) return rc & WRC_Abort;  | 
 
| 
94419
 | 
 3156  | 
 0  | 
     if( sqlite3WalkSelectExpr(pWalker, p)  | 
 
| 
94420
 | 
 0  | 
 3156  | 
      || sqlite3WalkSelectFrom(pWalker, p)  | 
 
| 
94424
 | 
 3148  | 
 8  | 
     if( pWalker->xSelectCallback2 ){  | 
 
| 
94428
 | 
 170  | 
 2986  | 
   }while( p!=0 );  | 
 
| 
94462
 | 
 0  | 
 0  | 
   if( pExpr->op==TK_AGG_FUNCTION ) pExpr->op2 += pWalker->u.n;  | 
 
| 
94466
 | 
 0  | 
 116  | 
   if( N>0 ){  | 
 
| 
94511
 | 
 123  | 
 0  | 
   if( pDup!=0 ){  | 
 
| 
94512
 | 
 116  | 
 7  | 
     if( zType[0]!='G' ) incrAggFunctionDepth(pDup, nSubquery);  | 
 
| 
94513
 | 
 0  | 
 123  | 
     if( pExpr->op==TK_COLLATE ){  | 
 
| 
94528
 | 
 123  | 
 0  | 
     if( !ExprHasProperty(pExpr, EP_IntValue) && pExpr->u.zToken!=0 ){  | 
 
| 
 | 
 120  | 
 3  | 
     if( !ExprHasProperty(pExpr, EP_IntValue) && pExpr->u.zToken!=0 ){  | 
 
| 
94546
 | 
 0  | 
 0  | 
   if( pUsing ){  | 
 
| 
94548
 | 
 0  | 
 0  | 
     for(k=0; knId; k++){  | 
 
| 
94549
 | 
 0  | 
 0  | 
       if( sqlite3StrICmp(pUsing->a[k].zName, zCol)==0 ) return 1;  | 
 
| 
94569
 | 
 0  | 
 0  | 
   for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}  | 
 
| 
 | 
 0  | 
 0  | 
   for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}  | 
 
| 
94570
 | 
 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) ){  | 
 
| 
94574
 | 
 0  | 
 0  | 
   for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}  | 
 
| 
 | 
 0  | 
 0  | 
   for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}  | 
 
| 
94575
 | 
 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) ){  | 
 
| 
94579
 | 
 0  | 
 0  | 
   if( zCol && sqlite3StrICmp(zSpan, zCol)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zCol && sqlite3StrICmp(zSpan, zCol)!=0 ){  | 
 
| 
94645
 | 
 3  | 
 4107  | 
   if( zDb ){  | 
 
| 
94648
 | 
 0  | 
 3  | 
     if( (pNC->ncFlags & (NC_PartIdx|NC_IsCheck))!=0 ){  | 
 
| 
94655
 | 
 3  | 
 0  | 
       for(i=0; inDb; i++){  | 
 
| 
94657
 | 
 3  | 
 0  | 
         if( sqlite3StrICmp(db->aDb[i].zDbSName,zDb)==0 ){  | 
 
| 
94671
 | 
 4112  | 
 10  | 
     if( pSrcList ){  | 
 
| 
94672
 | 
 4129  | 
 4112  | 
       for(i=0, pItem=pSrcList->a; inSrc; i++, pItem++){  | 
 
| 
94676
 | 
 175  | 
 3954  | 
         if( pItem->pSelect && (pItem->pSelect->selFlags & SF_NestedFrom)!=0 ){  | 
 
| 
 | 
 0  | 
 175  | 
         if( pItem->pSelect && (pItem->pSelect->selFlags & SF_NestedFrom)!=0 ){  | 
 
| 
94679
 | 
 0  | 
 0  | 
           for(j=0; jnExpr; j++){  | 
 
| 
94680
 | 
 0  | 
 0  | 
             if( sqlite3MatchSpanName(pEList->a[j].zSpan, zCol, zTab, zDb) ){  | 
 
| 
94688
 | 
 0  | 
 0  | 
           if( hit || zTab==0 ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
           if( hit || zTab==0 ) continue;  | 
 
| 
94690
 | 
 3  | 
 4126  | 
         if( zDb && pTab->pSchema!=pSchema ){  | 
 
| 
 | 
 0  | 
 3  | 
         if( zDb && pTab->pSchema!=pSchema ){  | 
 
| 
94693
 | 
 80  | 
 4049  | 
         if( zTab ){  | 
 
| 
94694
 | 
 62  | 
 18  | 
           const char *zTabName = pItem->zAlias ? pItem->zAlias : pTab->zName;  | 
 
| 
94696
 | 
 28  | 
 52  | 
           if( sqlite3StrICmp(zTabName, zTab)!=0 ){  | 
 
| 
94699
 | 
 0  | 
 52  | 
           if( IN_RENAME_OBJECT && pItem->zAlias ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( IN_RENAME_OBJECT && pItem->zAlias ){  | 
 
| 
94703
 | 
 4100  | 
 1  | 
         if( 0==(cntTab++) ){  | 
 
| 
94706
 | 
 12142  | 
 640  | 
         for(j=0, pCol=pTab->aCol; jnCol; j++, pCol++){  | 
 
| 
94707
 | 
 3461  | 
 8681  | 
           if( sqlite3StrICmp(pCol->zName, zCol)==0 ){  | 
 
| 
94712
 | 
 0  | 
 3461  | 
             if( cnt==1 ){  | 
 
| 
94713
 | 
 0  | 
 0  | 
               if( pItem->fg.jointype & JT_NATURAL ) continue;  | 
 
| 
94714
 | 
 0  | 
 0  | 
               if( nameInUsingClause(pItem->pUsing, zCol) ) continue;  | 
 
| 
94719
 | 
 3217  | 
 244  | 
             pExpr->iColumn = j==pTab->iPKey ? -1 : (i16)j;  | 
 
| 
94724
 | 
 4100  | 
 12  | 
       if( pMatch ){  | 
 
| 
94729
 | 
 0  | 
 4100  | 
         if( (pMatch->fg.jointype & JT_LEFT)!=0 ){  | 
 
| 
94741
 | 
 4119  | 
 3  | 
     if( zDb==0 && zTab!=0 && cntTab==0 ){  | 
 
| 
 | 
 61  | 
 4058  | 
     if( zDb==0 && zTab!=0 && cntTab==0 ){  | 
 
| 
 | 
 12  | 
 49  | 
     if( zDb==0 && zTab!=0 && cntTab==0 ){  | 
 
| 
94744
 | 
 0  | 
 12  | 
       if( pParse->pTriggerTab!=0 ){  | 
 
| 
94747
 | 
 0  | 
 0  | 
         if( op!=TK_DELETE && sqlite3StrICmp("new",zTab) == 0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( op!=TK_DELETE && sqlite3StrICmp("new",zTab) == 0 ){  | 
 
| 
94750
 | 
 0  | 
 0  | 
         }else if( op!=TK_INSERT && sqlite3StrICmp("old",zTab)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         }else if( op!=TK_INSERT && sqlite3StrICmp("old",zTab)==0 ){  | 
 
| 
94757
 | 
 0  | 
 12  | 
       if( (pNC->ncFlags & NC_UUpsert)!=0 ){  | 
 
| 
94759
 | 
 0  | 
 0  | 
         if( pUpsert && sqlite3StrICmp("excluded",zTab)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( pUpsert && sqlite3StrICmp("excluded",zTab)==0 ){  | 
 
| 
94766
 | 
 0  | 
 12  | 
       if( pTab ){   | 
 
| 
94770
 | 
 0  | 
 0  | 
         for(iCol=0, pCol=pTab->aCol; iColnCol; iCol++, pCol++){  | 
 
| 
94771
 | 
 0  | 
 0  | 
           if( sqlite3StrICmp(pCol->zName, zCol)==0 ){  | 
 
| 
94772
 | 
 0  | 
 0  | 
             if( iCol==pTab->iPKey ){  | 
 
| 
94778
 | 
 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) ){  | 
 
| 
94782
 | 
 0  | 
 0  | 
         if( iColnCol ){  | 
 
| 
94785
 | 
 0  | 
 0  | 
           if( pExpr->iTable==2 ){  | 
 
| 
94787
 | 
 0  | 
 0  | 
             if( IN_RENAME_OBJECT ){  | 
 
| 
94800
 | 
 0  | 
 0  | 
             if( iCol<0 ){  | 
 
| 
94802
 | 
 0  | 
 0  | 
             }else if( pExpr->iTable==0 ){  | 
 
| 
94805
 | 
 0  | 
 0  | 
               pParse->oldmask |= (iCol>=32 ? 0xffffffff : (((u32)1)<
 | 
 
| 
94809
 | 
 0  | 
 0  | 
               pParse->newmask |= (iCol>=32 ? 0xffffffff : (((u32)1)<
 | 
 
| 
94824
 | 
 661  | 
 3461  | 
     if( cnt==0  | 
 
| 
94825
 | 
 639  | 
 22  | 
      && cntTab==1  | 
 
| 
94826
 | 
 639  | 
 0  | 
      && pMatch  | 
 
| 
94827
 | 
 639  | 
 0  | 
      && (pNC->ncFlags & NC_IdxExpr)==0  | 
 
| 
94828
 | 
 631  | 
 8  | 
      && sqlite3IsRowid(zCol)  | 
 
| 
94829
 | 
 631  | 
 0  | 
      && VisibleRowid(pMatch->pTab)  | 
 
| 
94854
 | 
 1447  | 
 2675  | 
     if( (pNC->ncFlags & NC_UEList)!=0  | 
 
| 
94855
 | 
 20  | 
 1427  | 
      && cnt==0  | 
 
| 
94856
 | 
 8  | 
 12  | 
      && zTab==0  | 
 
| 
94860
 | 
 16  | 
 1  | 
       for(j=0; jnExpr; j++){  | 
 
| 
94862
 | 
 9  | 
 7  | 
         if( zAs!=0 && sqlite3StrICmp(zAs, zCol)==0 ){  | 
 
| 
 | 
 7  | 
 2  | 
         if( zAs!=0 && sqlite3StrICmp(zAs, zCol)==0 ){  | 
 
| 
94868
 | 
 7  | 
 0  | 
           if( (pNC->ncFlags&NC_AllowAgg)==0 && ExprHasProperty(pOrig, EP_Agg) ){  | 
 
| 
 | 
 0  | 
 7  | 
           if( (pNC->ncFlags&NC_AllowAgg)==0 && ExprHasProperty(pOrig, EP_Agg) ){  | 
 
| 
94872
 | 
 0  | 
 7  | 
           if( sqlite3ExprVectorSize(pOrig)!=1 ){  | 
 
| 
94880
 | 
 0  | 
 7  | 
           if( IN_RENAME_OBJECT ){  | 
 
| 
94891
 | 
 4092  | 
 23  | 
     if( cnt ) break;  | 
 
| 
94894
 | 
 12  | 
 11  | 
   }while( pNC );  | 
 
| 
94907
 | 
 11  | 
 4092  | 
   if( cnt==0 && zTab==0 ){  | 
 
| 
 | 
 11  | 
 0  | 
   if( cnt==0 && zTab==0 ){  | 
 
| 
94909
 | 
 11  | 
 0  | 
     if( ExprHasProperty(pExpr,EP_DblQuoted) ){  | 
 
| 
94914
 | 
 0  | 
 0  | 
     if( sqlite3ExprIdToTrueFalse(pExpr) ){  | 
 
| 
94923
 | 
 0  | 
 4092  | 
   if( cnt!=1 ){  | 
 
| 
94925
 | 
 0  | 
 0  | 
     zErr = cnt==0 ? "no such column" : "ambiguous column name";  | 
 
| 
94926
 | 
 0  | 
 0  | 
     if( zDb ){  | 
 
| 
94928
 | 
 0  | 
 0  | 
     }else if( zTab ){  | 
 
| 
94943
 | 
 3217  | 
 875  | 
   if( pExpr->iColumn>=0 && pMatch!=0 ){  | 
 
| 
 | 
 3217  | 
 0  | 
   if( pExpr->iColumn>=0 && pMatch!=0 ){  | 
 
| 
94946
 | 
 0  | 
 3217  | 
     if( n>=BMS ){  | 
 
| 
94962
 | 
 4099  | 
 0  | 
   if( cnt==1 ){  | 
 
| 
94964
 | 
 4092  | 
 7  | 
     if( !ExprHasProperty(pExpr, EP_Alias) ){  | 
 
| 
94972
 | 
 4099  | 
 12  | 
       if( pTopNC==pNC ) break;  | 
 
| 
94987
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
94991
 | 
 0  | 
 0  | 
     if( p->y.pTab->iPKey==iCol ){  | 
 
| 
95014
 | 
 0  | 
 1641  | 
   if( (pNC->ncFlags & validMask)!=0 ){  | 
 
| 
95016
 | 
 0  | 
 0  | 
     if( pNC->ncFlags & NC_IdxExpr )      zIn = "index expressions";  | 
 
| 
95018
 | 
 0  | 
 0  | 
     else if( pNC->ncFlags & NC_IsCheck ) zIn = "CHECK constraints";  | 
 
| 
95031
 | 
 0  | 
 0  | 
   if( p->op!=TK_FLOAT ) return -1;  | 
 
| 
95034
 | 
 0  | 
 0  | 
   if( r>1.0 ) return -1;  | 
 
| 
95105
 | 
 4058  | 
 52  | 
       if( pExpr->op==TK_ID ){  | 
 
| 
95113
 | 
 49  | 
 3  | 
         if( pRight->op==TK_ID ){  | 
 
| 
95123
 | 
 0  | 
 52  | 
         if( IN_RENAME_OBJECT ){  | 
 
| 
95135
 | 
 544  | 
 101  | 
       int n = pList ? pList->nExpr : 0;    /* Number of arguments */  | 
 
| 
95148
 | 
 0  | 
 645  | 
       if( pDef==0 ){  | 
 
| 
95150
 | 
 0  | 
 0  | 
         if( pDef==0 ){  | 
 
| 
95157
 | 
 0  | 
 645  | 
         if( pDef->funcFlags & SQLITE_FUNC_UNLIKELY ){  | 
 
| 
95159
 | 
 0  | 
 0  | 
           if( n==2 ){  | 
 
| 
95161
 | 
 0  | 
 0  | 
             if( pExpr->iTable<0 ){  | 
 
| 
95177
 | 
 0  | 
 0  | 
             pExpr->iTable = pDef->zName[0]=='u' ? 8388608 : 125829120;  | 
 
| 
95183
 | 
 0  | 
 645  | 
           if( auth!=SQLITE_OK ){  | 
 
| 
95184
 | 
 0  | 
 0  | 
             if( auth==SQLITE_DENY ){  | 
 
| 
95194
 | 
 151  | 
 494  | 
         if( pDef->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG) ){  | 
 
| 
95200
 | 
 494  | 
 151  | 
         if( (pDef->funcFlags & SQLITE_FUNC_CONSTANT)==0 ){  | 
 
| 
95207
 | 
 0  | 
 645  | 
         if( (pDef->funcFlags & SQLITE_FUNC_INTERNAL)!=0  | 
 
| 
95208
 | 
 0  | 
 0  | 
          && pParse->nested==0  | 
 
| 
95209
 | 
 0  | 
 0  | 
          && sqlite3Config.bInternalFunctions==0  | 
 
| 
95218
 | 
 645  | 
 0  | 
       if( 0==IN_RENAME_OBJECT ){  | 
 
| 
95224
 | 
 645  | 
 0  | 
         if( pDef && pDef->xValue==0 && ExprHasProperty(pExpr, EP_WinFunc) ){  | 
 
| 
 | 
 596  | 
 49  | 
         if( pDef && pDef->xValue==0 && ExprHasProperty(pExpr, EP_WinFunc) ){  | 
 
| 
 | 
 0  | 
 596  | 
         if( pDef && pDef->xValue==0 && ExprHasProperty(pExpr, EP_WinFunc) ){  | 
 
| 
95229
 | 
 133  | 
 512  | 
         }else if(   | 
 
| 
95230
 | 
 133  | 
 0  | 
               (is_agg && (pNC->ncFlags & NC_AllowAgg)==0)  | 
 
| 
95231
 | 
 133  | 
 512  | 
            || (is_agg && (pDef->funcFlags&SQLITE_FUNC_WINDOW) && !pExpr->y.pWin)  | 
 
| 
 | 
 0  | 
 133  | 
            || (is_agg && (pDef->funcFlags&SQLITE_FUNC_WINDOW) && !pExpr->y.pWin)  | 
 
| 
 | 
 0  | 
 0  | 
            || (is_agg && (pDef->funcFlags&SQLITE_FUNC_WINDOW) && !pExpr->y.pWin)  | 
 
| 
95232
 | 
 133  | 
 512  | 
            || (is_agg && pExpr->y.pWin && (pNC->ncFlags & NC_AllowWin)==0)  | 
 
| 
 | 
 0  | 
 133  | 
            || (is_agg && pExpr->y.pWin && (pNC->ncFlags & NC_AllowWin)==0)  | 
 
| 
 | 
 0  | 
 0  | 
            || (is_agg && pExpr->y.pWin && (pNC->ncFlags & NC_AllowWin)==0)  | 
 
| 
95235
 | 
 0  | 
 0  | 
           if( (pDef->funcFlags & SQLITE_FUNC_WINDOW) || pExpr->y.pWin ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( (pDef->funcFlags & SQLITE_FUNC_WINDOW) || pExpr->y.pWin ){  | 
 
| 
95251
 | 
 0  | 
 645  | 
         else if( no_such_func && pParse->db->init.busy==0  | 
 
| 
 | 
 0  | 
 0  | 
         else if( no_such_func && pParse->db->init.busy==0  | 
 
| 
95258
 | 
 0  | 
 645  | 
         }else if( wrong_num_args ){  | 
 
| 
95263
 | 
 133  | 
 512  | 
         if( is_agg ){  | 
 
| 
95265
 | 
 0  | 
 133  | 
           pNC->ncFlags &= ~(pExpr->y.pWin ? NC_AllowWin : NC_AllowAgg);  | 
 
| 
95272
 | 
 133  | 
 512  | 
       if( is_agg ){  | 
 
| 
95274
 | 
 0  | 
 133  | 
         if( pExpr->y.pWin ){  | 
 
| 
95280
 | 
 0  | 
 0  | 
           if( 0==pSel->pWin   | 
 
| 
95281
 | 
 0  | 
 0  | 
            || 0==sqlite3WindowCompare(pParse, pSel->pWin, pExpr->y.pWin)   | 
 
| 
95293
 | 
 133  | 
 0  | 
           while( pNC2 && !sqlite3FunctionUsesThisSrc(pExpr, pNC2->pSrcList) ){  | 
 
| 
 | 
 0  | 
 133  | 
           while( pNC2 && !sqlite3FunctionUsesThisSrc(pExpr, pNC2->pSrcList) ){  | 
 
| 
95298
 | 
 133  | 
 0  | 
           if( pNC2 ){  | 
 
| 
95318
 | 
 16  | 
 16  | 
       if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
95323
 | 
 2  | 
 14  | 
         if( nRef!=pNC->nRef ){  | 
 
| 
95340
 | 
 0  | 
 1  | 
       if( (pRight = pExpr->pRight)->op==TK_ID ){  | 
 
| 
95342
 | 
 0  | 
 0  | 
         if( rc==WRC_Abort ) return WRC_Abort;  | 
 
| 
95343
 | 
 0  | 
 0  | 
         if( pRight->op==TK_TRUEFALSE ){  | 
 
| 
95359
 | 
 0  | 
 1114  | 
       if( pParse->db->mallocFailed ) break;  | 
 
| 
95362
 | 
 14  | 
 1100  | 
       if( pExpr->op==TK_BETWEEN ){  | 
 
| 
95364
 | 
 14  | 
 0  | 
         if( nRight==nLeft ){  | 
 
| 
95371
 | 
 0  | 
 1114  | 
       if( nLeft!=nRight ){  | 
 
| 
95386
 | 
 7859  | 
 0  | 
   return (pParse->nErr || pParse->db->mallocFailed) ? WRC_Abort : WRC_Continue;  | 
 
| 
 | 
 0  | 
 7859  | 
   return (pParse->nErr || pParse->db->mallocFailed) ? WRC_Abort : WRC_Continue;  | 
 
| 
95410
 | 
 537  | 
 1  | 
   if( pE->op==TK_ID ){  | 
 
| 
95412
 | 
 1531  | 
 464  | 
     for(i=0; inExpr; i++){  | 
 
| 
95414
 | 
 167  | 
 1364  | 
       if( zAs!=0 && sqlite3StrICmp(zAs, zCol)==0 ){  | 
 
| 
 | 
 73  | 
 94  | 
       if( zAs!=0 && sqlite3StrICmp(zAs, zCol)==0 ){  | 
 
| 
95468
 | 
 0  | 
 0  | 
   if( rc ) return 0;  | 
 
| 
95474
 | 
 0  | 
 0  | 
   for(i=0; inExpr; i++){  | 
 
| 
95475
 | 
 0  | 
 0  | 
     if( sqlite3ExprCompare(0, pEList->a[i].pExpr, pE, -1)<2 ){  | 
 
| 
95524
 | 
 24  | 
 0  | 
   if( pOrderBy==0 ) return 0;  | 
 
| 
95526
 | 
 0  | 
 0  | 
   if( pOrderBy->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){  | 
 
| 
95530
 | 
 0  | 
 0  | 
   for(i=0; inExpr; i++){  | 
 
| 
95534
 | 
 0  | 
 0  | 
   while( pSelect->pPrior ){  | 
 
| 
95538
 | 
 0  | 
 0  | 
   while( pSelect && moreToDo ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( pSelect && moreToDo ){  | 
 
| 
95543
 | 
 0  | 
 0  | 
     for(i=0, pItem=pOrderBy->a; inExpr; i++, pItem++){  | 
 
| 
95546
 | 
 0  | 
 0  | 
       if( pItem->done ) continue;  | 
 
| 
95548
 | 
 0  | 
 0  | 
       if( sqlite3ExprIsInteger(pE, &iCol) ){  | 
 
| 
95549
 | 
 0  | 
 0  | 
         if( iCol<=0 || iCol>pEList->nExpr ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( iCol<=0 || iCol>pEList->nExpr ){  | 
 
| 
95555
 | 
 0  | 
 0  | 
         if( iCol==0 ){  | 
 
| 
95557
 | 
 0  | 
 0  | 
           if( !db->mallocFailed ){  | 
 
| 
95564
 | 
 0  | 
 0  | 
       if( iCol>0 ){  | 
 
| 
95568
 | 
 0  | 
 0  | 
         if( pNew==0 ) return 1;  | 
 
| 
95571
 | 
 0  | 
 0  | 
         if( pItem->pExpr==pE ){  | 
 
| 
95576
 | 
 0  | 
 0  | 
           while( pParent->pLeft->op==TK_COLLATE ) pParent = pParent->pLeft;  | 
 
| 
95589
 | 
 0  | 
 0  | 
   for(i=0; inExpr; i++){  | 
 
| 
95590
 | 
 0  | 
 0  | 
     if( pOrderBy->a[i].done==0 ){  | 
 
| 
95620
 | 
 504  | 
 0  | 
   if( pOrderBy==0 || pParse->db->mallocFailed ) return 0;  | 
 
| 
 | 
 0  | 
 504  | 
   if( pOrderBy==0 || pParse->db->mallocFailed ) return 0;  | 
 
| 
95621
 | 
 0  | 
 504  | 
   if( pOrderBy->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){  | 
 
| 
95627
 | 
 551  | 
 504  | 
   for(i=0, pItem=pOrderBy->a; inExpr; i++, pItem++){  | 
 
| 
95628
 | 
 116  | 
 435  | 
     if( pItem->u.x.iOrderByCol ){  | 
 
| 
95629
 | 
 0  | 
 116  | 
       if( pItem->u.x.iOrderByCol>pEList->nExpr ){  | 
 
| 
95670
 | 
 1059  | 
 504  | 
   if( pOrderBy==0 ) return 0;  | 
 
| 
95673
 | 
 551  | 
 504  | 
   for(i=0, pItem=pOrderBy->a; inExpr; i++, pItem++){  | 
 
| 
95676
 | 
 538  | 
 13  | 
     if( zType[0]!='G' ){  | 
 
| 
95678
 | 
 73  | 
 465  | 
       if( iCol>0 ){  | 
 
| 
95687
 | 
 0  | 
 478  | 
     if( sqlite3ExprIsInteger(pE2, &iCol) ){  | 
 
| 
95691
 | 
 0  | 
 0  | 
       if( iCol<1 || iCol>0xffff ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( iCol<1 || iCol>0xffff ){  | 
 
| 
95701
 | 
 0  | 
 478  | 
     if( sqlite3ResolveExprNames(pNC, pE) ){  | 
 
| 
95704
 | 
 1382  | 
 478  | 
     for(j=0; jpEList->nExpr; j++){  | 
 
| 
95705
 | 
 43  | 
 1339  | 
       if( sqlite3ExprCompare(0, pE, pSelect->pEList->a[j].pExpr, -1)==0 ){  | 
 
| 
95707
 | 
 0  | 
 43  | 
         if( ExprHasProperty(pE, EP_WinFunc) ){  | 
 
| 
95712
 | 
 0  | 
 0  | 
           for(pp=&pSelect->pWin; *pp; pp=&(*pp)->pNextWin){  | 
 
| 
95713
 | 
 0  | 
 0  | 
             if( *pp==pE->y.pWin ){  | 
 
| 
95742
 | 
 16  | 
 1491  | 
   if( p->selFlags & SF_Resolved ){  | 
 
| 
95757
 | 
 0  | 
 1491  | 
   if( (p->selFlags & SF_Expanded)==0 ){  | 
 
| 
95759
 | 
 0  | 
 0  | 
     return (pParse->nErr || db->mallocFailed) ? WRC_Abort : WRC_Prune;  | 
 
| 
 | 
 0  | 
 0  | 
     return (pParse->nErr || db->mallocFailed) ? WRC_Abort : WRC_Prune;  | 
 
| 
95765
 | 
 1574  | 
 1491  | 
   while( p ){  | 
 
| 
95776
 | 
 0  | 
 1574  | 
     if( sqlite3ResolveExprNames(&sNC, p->pLimit) ){  | 
 
| 
95786
 | 
 0  | 
 1574  | 
     if( p->selFlags & SF_Converted ){  | 
 
| 
95796
 | 
 1143  | 
 1574  | 
     for(i=0; ipSrc->nSrc; i++){  | 
 
| 
95798
 | 
 35  | 
 1108  | 
       if( pItem->pSelect ){  | 
 
| 
95808
 | 
 0  | 
 35  | 
         for(pNC=pOuterNC; pNC; pNC=pNC->pNext) nRef += pNC->nRef;  | 
 
| 
95810
 | 
 0  | 
 35  | 
         if( pItem->zName ) pParse->zAuthContext = pItem->zName;  | 
 
| 
95813
 | 
 35  | 
 0  | 
         if( pParse->nErr || db->mallocFailed ) return WRC_Abort;  | 
 
| 
 | 
 0  | 
 35  | 
         if( pParse->nErr || db->mallocFailed ) return WRC_Abort;  | 
 
| 
95815
 | 
 0  | 
 35  | 
         for(pNC=pOuterNC; pNC; pNC=pNC->pNext) nRef -= pNC->nRef;  | 
 
| 
95829
 | 
 0  | 
 1574  | 
     if( sqlite3ResolveExprListNames(&sNC, p->pEList) ) return WRC_Abort;  | 
 
| 
95837
 | 
 1561  | 
 13  | 
     if( pGroupBy || (sNC.ncFlags & NC_HasAgg)!=0 ){  | 
 
| 
 | 
 120  | 
 1441  | 
     if( pGroupBy || (sNC.ncFlags & NC_HasAgg)!=0 ){  | 
 
| 
95846
 | 
 5  | 
 1569  | 
     if( p->pHaving && !pGroupBy ){  | 
 
| 
 | 
 0  | 
 5  | 
     if( p->pHaving && !pGroupBy ){  | 
 
| 
95862
 | 
 0  | 
 1574  | 
     if( sqlite3ResolveExprNames(&sNC, p->pHaving) ) return WRC_Abort;  | 
 
| 
95863
 | 
 0  | 
 1574  | 
     if( sqlite3ResolveExprNames(&sNC, p->pWhere) ) return WRC_Abort;  | 
 
| 
95866
 | 
 1143  | 
 1574  | 
     for(i=0; ipSrc->nSrc; i++){  | 
 
| 
95868
 | 
 0  | 
 1143  | 
       if( pItem->fg.isTabFunc  | 
 
| 
95869
 | 
 0  | 
 0  | 
        && sqlite3ResolveExprListNames(&sNC, pItem->u1.pFuncArg)   | 
 
| 
95886
 | 
 0  | 
 1574  | 
     if( p->selFlags & SF_Converted ){  | 
 
| 
95902
 | 
 1550  | 
 24  | 
     if( isCompound<=nCompound  /* Defer right-most ORDER BY of a compound */  | 
 
| 
95903
 | 
 0  | 
 1550  | 
      && resolveOrderGroupBy(&sNC, p, p->pOrderBy, "ORDER")  | 
 
| 
95907
 | 
 0  | 
 1574  | 
     if( db->mallocFailed ){  | 
 
| 
95915
 | 
 13  | 
 1561  | 
     if( pGroupBy ){  | 
 
| 
95918
 | 
 13  | 
 0  | 
       if( resolveOrderGroupBy(&sNC, p, pGroupBy, "GROUP") || db->mallocFailed ){  | 
 
| 
 | 
 0  | 
 13  | 
       if( resolveOrderGroupBy(&sNC, p, pGroupBy, "GROUP") || db->mallocFailed ){  | 
 
| 
95921
 | 
 13  | 
 13  | 
       for(i=0, pItem=pGroupBy->a; inExpr; i++, pItem++){  | 
 
| 
95922
 | 
 0  | 
 13  | 
         if( ExprHasProperty(pItem->pExpr, EP_Agg) ){  | 
 
| 
95932
 | 
 83  | 
 1491  | 
     if( p->pNext && p->pEList->nExpr!=p->pNext->pEList->nExpr ){  | 
 
| 
 | 
 0  | 
 83  | 
     if( p->pNext && p->pEList->nExpr!=p->pNext->pEList->nExpr ){  | 
 
| 
95946
 | 
 24  | 
 1467  | 
   if( isCompound && resolveCompoundOrderBy(pParse, pLeftmost) ){  | 
 
| 
 | 
 0  | 
 24  | 
   if( isCompound && resolveCompoundOrderBy(pParse, pLeftmost) ){  | 
 
| 
96008
 | 
 4054  | 
 8739  | 
   if( pExpr==0 ) return SQLITE_OK;  | 
 
| 
96018
 | 
 0  | 
 8739  | 
   if( sqlite3ExprCheckHeight(w.pParse, w.pParse->nHeight) ){  | 
 
| 
96026
 | 
 133  | 
 8606  | 
   if( pNC->ncFlags & NC_HasAgg ){  | 
 
| 
96030
 | 
 8739  | 
 0  | 
   return pNC->nErr>0 || w.pParse->nErr>0;  | 
 
| 
 | 
 0  | 
 8739  | 
   return pNC->nErr>0 || w.pParse->nErr>0;  | 
 
| 
96043
 | 
 4222  | 
 0  | 
   if( pList ){  | 
 
| 
96044
 | 
 6038  | 
 4222  | 
     for(i=0; inExpr; i++){  | 
 
| 
96045
 | 
 0  | 
 6038  | 
       if( sqlite3ResolveExprNames(pNC, pList->a[i].pExpr) ) return WRC_Abort;  | 
 
| 
96110
 | 
 0  | 
 126  | 
   if( sqlite3ResolveExprNames(&sNC, pExpr) ) return;  | 
 
| 
96111
 | 
 0  | 
 126  | 
   if( pList ) sqlite3ResolveExprListNames(&sNC, pList);  | 
 
| 
96141
 | 
 1227  | 
 10  | 
   return iCol>=0 ? pTab->aCol[iCol].affinity : SQLITE_AFF_INTEGER;  | 
 
| 
96163
 | 
 7  | 
 2469  | 
   if( pExpr->flags & EP_Generic ) return 0;  | 
 
| 
96165
 | 
 2  | 
 2467  | 
   if( op==TK_SELECT ){  | 
 
| 
96169
 | 
 10  | 
 2457  | 
   if( op==TK_REGISTER ) op = pExpr->op2;  | 
 
| 
96171
 | 
 0  | 
 2467  | 
   if( op==TK_CAST ){  | 
 
| 
96176
 | 
 2467  | 
 0  | 
   if( (op==TK_AGG_COLUMN || op==TK_COLUMN) && pExpr->y.pTab ){  | 
 
| 
 | 
 1237  | 
 1230  | 
   if( (op==TK_AGG_COLUMN || op==TK_COLUMN) && pExpr->y.pTab ){  | 
 
| 
 | 
 1237  | 
 0  | 
   if( (op==TK_AGG_COLUMN || op==TK_COLUMN) && pExpr->y.pTab ){  | 
 
| 
96179
 | 
 0  | 
 1230  | 
   if( op==TK_SELECT_COLUMN ){  | 
 
| 
96202
 | 
 274  | 
 0  | 
   if( pCollName->n>0 ){  | 
 
| 
96204
 | 
 274  | 
 0  | 
     if( pNew ){  | 
 
| 
96224
 | 
 13992  | 
 815  | 
   while( pExpr && ExprHasProperty(pExpr, EP_Skip) ){  | 
 
| 
 | 
 362  | 
 13630  | 
   while( pExpr && ExprHasProperty(pExpr, EP_Skip) ){  | 
 
| 
96225
 | 
 0  | 
 362  | 
     if( ExprHasProperty(pExpr, EP_Unlikely) ){  | 
 
| 
96256
 | 
 1590  | 
 0  | 
   while( p ){  | 
 
| 
96258
 | 
 5  | 
 1585  | 
     if( p->flags & EP_Generic ) break;  | 
 
| 
96259
 | 
 1571  | 
 14  | 
     if( (op==TK_AGG_COLUMN || op==TK_COLUMN  | 
 
| 
 | 
 123  | 
 1448  | 
     if( (op==TK_AGG_COLUMN || op==TK_COLUMN  | 
 
| 
96260
 | 
 123  | 
 0  | 
           || op==TK_REGISTER || op==TK_TRIGGER)  | 
 
| 
 | 
 0  | 
 123  | 
           || op==TK_REGISTER || op==TK_TRIGGER)  | 
 
| 
96261
 | 
 1462  | 
 0  | 
      && p->y.pTab!=0  | 
 
| 
96266
 | 
 1025  | 
 437  | 
       if( j>=0 ){  | 
 
| 
96272
 | 
 123  | 
 0  | 
     if( op==TK_CAST || op==TK_UPLUS ){  | 
 
| 
 | 
 0  | 
 123  | 
     if( op==TK_CAST || op==TK_UPLUS ){  | 
 
| 
96276
 | 
 107  | 
 16  | 
     if( op==TK_COLLATE || (op==TK_REGISTER && p->op2==TK_COLLATE) ){  | 
 
| 
 | 
 0  | 
 107  | 
     if( op==TK_COLLATE || (op==TK_REGISTER && p->op2==TK_COLLATE) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( op==TK_COLLATE || (op==TK_REGISTER && p->op2==TK_COLLATE) ){  | 
 
| 
96280
 | 
 0  | 
 107  | 
     if( p->flags & EP_Collate ){  | 
 
| 
96281
 | 
 0  | 
 0  | 
       if( p->pLeft && (p->pLeft->flags & EP_Collate)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( p->pLeft && (p->pLeft->flags & EP_Collate)!=0 ){  | 
 
| 
96290
 | 
 0  | 
 0  | 
         if( p->x.pList!=0 && ALWAYS(!ExprHasProperty(p, EP_xIsSelect)) ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( p->x.pList!=0 && ALWAYS(!ExprHasProperty(p, EP_xIsSelect)) ){  | 
 
| 
96292
 | 
 0  | 
 0  | 
           for(i=0; ALWAYS(ix.pList->nExpr); i++){  | 
 
| 
96293
 | 
 0  | 
 0  | 
             if( ExprHasProperty(p->x.pList->a[i].pExpr, EP_Collate) ){  | 
 
| 
96305
 | 
 0  | 
 1590  | 
   if( sqlite3CheckCollSeq(pParse, pColl) ){   | 
 
| 
96323
 | 
 424  | 
 229  | 
   if( p==0 ) p = pParse->db->pDfltColl;  | 
 
| 
96344
 | 
 619  | 
 559  | 
   if( aff1 && aff2 ){  | 
 
| 
 | 
 21  | 
 598  | 
   if( aff1 && aff2 ){  | 
 
| 
96348
 | 
 5  | 
 16  | 
     if( sqlite3IsNumericAffinity(aff1) || sqlite3IsNumericAffinity(aff2) ){  | 
 
| 
 | 
 0  | 
 5  | 
     if( sqlite3IsNumericAffinity(aff1) || sqlite3IsNumericAffinity(aff2) ){  | 
 
| 
96353
 | 
 559  | 
 598  | 
   }else if( !aff1 && !aff2 ){  | 
 
| 
 | 
 19  | 
 540  | 
   }else if( !aff1 && !aff2 ){  | 
 
| 
96376
 | 
 499  | 
 0  | 
   if( pExpr->pRight ){  | 
 
| 
96378
 | 
 0  | 
 0  | 
   }else if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
96380
 | 
 0  | 
 0  | 
   }else if( aff==0 ){  | 
 
| 
96433
 | 
 1  | 
 717  | 
   if( pLeft->flags & EP_Collate ){  | 
 
| 
96435
 | 
 717  | 
 0  | 
   }else if( pRight && (pRight->flags & EP_Collate)!=0 ){  | 
 
| 
 | 
 5  | 
 712  | 
   }else if( pRight && (pRight->flags & EP_Collate)!=0 ){  | 
 
| 
96439
 | 
 23  | 
 689  | 
     if( !pColl ){  | 
 
| 
96491
 | 
 230  | 
 4071  | 
   if( op==TK_REGISTER ) op = pExpr->op2;  | 
 
| 
96492
 | 
 0  | 
 4301  | 
   if( op==TK_VECTOR ){  | 
 
| 
96494
 | 
 2  | 
 4299  | 
   }else if( op==TK_SELECT ){  | 
 
| 
96518
 | 
 0  | 
 47  | 
   if( sqlite3ExprIsVector(pVector) ){  | 
 
| 
96520
 | 
 0  | 
 0  | 
     if( pVector->op==TK_SELECT || pVector->op2==TK_SELECT ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pVector->op==TK_SELECT || pVector->op2==TK_SELECT ){  | 
 
| 
96556
 | 
 0  | 
 0  | 
   if( pVector->op==TK_SELECT ){  | 
 
| 
96575
 | 
 0  | 
 0  | 
     if( pRet ){  | 
 
| 
96581
 | 
 0  | 
 0  | 
     if( pVector->op==TK_VECTOR ) pVector = pVector->x.pList->a[iField].pExpr;  | 
 
| 
96598
 | 
 0  | 
 0  | 
   if( pExpr->op==TK_SELECT ){  | 
 
| 
96633
 | 
 0  | 
 0  | 
   if( op==TK_REGISTER ){  | 
 
| 
96637
 | 
 0  | 
 0  | 
   if( op==TK_SELECT ){  | 
 
| 
96673
 | 
 0  | 
 0  | 
   if( nLeft!=sqlite3ExprVectorSize(pRight) ){  | 
 
| 
96688
 | 
 0  | 
 0  | 
   if( opx==TK_LE ) opx = TK_LT;  | 
 
| 
96689
 | 
 0  | 
 0  | 
   if( opx==TK_GE ) opx = TK_GT;  | 
 
| 
96710
 | 
 0  | 
 0  | 
     if( i==nLeft-1 ){  | 
 
| 
96713
 | 
 0  | 
 0  | 
     if( opx==TK_EQ ){  | 
 
| 
96716
 | 
 0  | 
 0  | 
     }else if( opx==TK_NE ){  | 
 
| 
96726
 | 
 0  | 
 0  | 
       if( i==nLeft-2 ) opx = op;  | 
 
| 
96741
 | 
 0  | 
 11751  | 
   if( nHeight>mxHeight ){  | 
 
| 
96760
 | 
 4972  | 
 2581  | 
   if( p ){  | 
 
| 
96761
 | 
 2499  | 
 2473  | 
     if( p->nHeight>*pnHeight ){  | 
 
| 
96767
 | 
 662  | 
 78  | 
   if( p ){  | 
 
| 
96769
 | 
 1285  | 
 662  | 
     for(i=0; inExpr; i++){  | 
 
| 
96776
 | 
 60  | 
 60  | 
   for(p=pSelect; p; p=p->pPrior){  | 
 
| 
96800
 | 
 16  | 
 3028  | 
   if( ExprHasProperty(p, EP_xIsSelect) ){  | 
 
| 
96802
 | 
 560  | 
 2468  | 
   }else if( p->x.pList ){  | 
 
| 
96818
 | 
 0  | 
 677  | 
   if( pParse->nErr ) return;  | 
 
| 
96876
 | 
 2019  | 
 303  | 
   if( pToken ){  | 
 
| 
96877
 | 
 504  | 
 1515  | 
     if( op!=TK_INTEGER || pToken->z==0  | 
 
| 
 | 
 504  | 
 0  | 
     if( op!=TK_INTEGER || pToken->z==0  | 
 
| 
96878
 | 
 12  | 
 492  | 
           || sqlite3GetInt32(pToken->z, &iValue)==0 ){  | 
 
| 
96884
 | 
 2322  | 
 0  | 
   if( pNew ){  | 
 
| 
96888
 | 
 2019  | 
 303  | 
     if( pToken ){  | 
 
| 
96889
 | 
 492  | 
 1527  | 
       if( nExtra==0 ){  | 
 
| 
96895
 | 
 1445  | 
 82  | 
         if( pToken->n ) memcpy(pNew->u.zToken, pToken->z, pToken->n);  | 
 
| 
96897
 | 
 799  | 
 728  | 
         if( dequote && sqlite3Isquote(pNew->u.zToken[0]) ){  | 
 
| 
 | 
 4  | 
 795  | 
         if( dequote && sqlite3Isquote(pNew->u.zToken[0]) ){  | 
 
| 
96898
 | 
 0  | 
 4  | 
           if( pNew->u.zToken[0]=='"' ) pNew->flags |= EP_DblQuoted;  | 
 
| 
96937
 | 
 0  | 
 2367  | 
   if( pRoot==0 ){  | 
 
| 
96942
 | 
 1799  | 
 568  | 
     if( pRight ){  | 
 
| 
96946
 | 
 1825  | 
 542  | 
     if( pLeft ){  | 
 
| 
96968
 | 
 272  | 
 2063  | 
   if( op==TK_AND && pParse->nErr==0 ){  | 
 
| 
 | 
 272  | 
 0  | 
   if( op==TK_AND && pParse->nErr==0 ){  | 
 
| 
96973
 | 
 2063  | 
 0  | 
     if( p ){  | 
 
| 
96980
 | 
 2335  | 
 0  | 
   if( p ) {  | 
 
| 
96991
 | 
 16  | 
 0  | 
   if( pExpr ){  | 
 
| 
97018
 | 
 0  | 
 150  | 
   if( ExprHasProperty(p, EP_FromJoin) ) return 0;  | 
 
| 
97019
 | 
 150  | 
 0  | 
   if( !sqlite3ExprIsInteger(p, &v) ) return 0;  | 
 
| 
97024
 | 
 0  | 
 756  | 
   if( ExprHasProperty(p, EP_FromJoin) ) return 0;  | 
 
| 
97025
 | 
 756  | 
 0  | 
   if( !sqlite3ExprIsInteger(p, &v) ) return 0;  | 
 
| 
97038
 | 
 84  | 
 303  | 
   if( pLeft==0 ){  | 
 
| 
97040
 | 
 0  | 
 303  | 
   }else if( pRight==0 ){  | 
 
| 
97042
 | 
 303  | 
 0  | 
   }else if( exprAlwaysFalse(pLeft) || exprAlwaysFalse(pRight) ){  | 
 
| 
 | 
 0  | 
 303  | 
   }else if( exprAlwaysFalse(pLeft) || exprAlwaysFalse(pRight) ){  | 
 
| 
97067
 | 
 0  | 
 645  | 
   if( pNew==0 ){  | 
 
| 
97071
 | 
 544  | 
 101  | 
   if( pList && pList->nExpr > pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){  | 
 
| 
 | 
 0  | 
 544  | 
   if( pList && pList->nExpr > pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){  | 
 
| 
97078
 | 
 0  | 
 645  | 
   if( eDistinct==SF_Distinct ) ExprSetProperty(pNew, EP_Distinct);  | 
 
| 
97103
 | 
 0  | 
 1079  | 
   if( pExpr==0 ) return;  | 
 
| 
97109
 | 
 1048  | 
 31  | 
   if( z[1]==0 ){  | 
 
| 
97115
 | 
 13  | 
 18  | 
     if( z[0]=='?' ){  | 
 
| 
97120
 | 
 13  | 
 0  | 
       if( n==2 ){ /*OPTIMIZATION-IF-TRUE*/  | 
 
| 
97130
 | 
 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] ){  | 
 
| 
97136
 | 
 13  | 
 0  | 
       if( x>pParse->nVar ){  | 
 
| 
97139
 | 
 0  | 
 0  | 
       }else if( sqlite3VListNumToName(pParse->pVList, x)==0 ){  | 
 
| 
97148
 | 
 17  | 
 1  | 
       if( x==0 ){  | 
 
| 
97153
 | 
 30  | 
 1  | 
     if( doAdd ){  | 
 
| 
97158
 | 
 0  | 
 1079  | 
   if( x>db->aLimit[SQLITE_LIMIT_VARIABLE_NUMBER] ){  | 
 
| 
97181
 | 
 3930  | 
 12457  | 
   if( !ExprHasProperty(p, (EP_TokenOnly|EP_Leaf)) ){  | 
 
| 
97184
 | 
 2098  | 
 1832  | 
     if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft);  | 
 
| 
 | 
 2098  | 
 0  | 
     if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft);  | 
 
| 
97185
 | 
 1753  | 
 2177  | 
     if( p->pRight ){  | 
 
| 
97187
 | 
 16  | 
 2161  | 
     }else if( ExprHasProperty(p, EP_xIsSelect) ){  | 
 
| 
97192
 | 
 0  | 
 3930  | 
     if( ExprHasProperty(p, EP_WinFunc) ){  | 
 
| 
97197
 | 
 120  | 
 16267  | 
   if( ExprHasProperty(p, EP_MemToken) ) sqlite3DbFree(db, p->u.zToken);  | 
 
| 
97198
 | 
 16260  | 
 127  | 
   if( !ExprHasProperty(p, EP_Static) ){  | 
 
| 
97203
 | 
 12536  | 
 27259  | 
   if( p ) sqlite3ExprDeleteNN(db, p);  | 
 
| 
97212
 | 
 0  | 
 2740  | 
   if( ExprHasProperty(p, EP_TokenOnly) ) return EXPR_TOKENONLYSIZE;  | 
 
| 
97213
 | 
 0  | 
 2740  | 
   if( ExprHasProperty(p, EP_Reduced) ) return EXPR_REDUCEDSIZE;  | 
 
| 
97256
 | 
 24  | 
 5480  | 
   if( 0==flags || p->op==TK_SELECT_COLUMN   | 
 
| 
 | 
 24  | 
 0  | 
   if( 0==flags || p->op==TK_SELECT_COLUMN   | 
 
| 
97258
 | 
 0  | 
 24  | 
    || ExprHasProperty(p, EP_WinFunc)  | 
 
| 
97267
 | 
 12  | 
 12  | 
     if( p->pLeft || p->x.pList ){  | 
 
| 
 | 
 0  | 
 12  | 
     if( p->pLeft || p->x.pList ){  | 
 
| 
97284
 | 
 2676  | 
 80  | 
   if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){  | 
 
| 
 | 
 2618  | 
 58  | 
   if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){  | 
 
| 
97305
 | 
 2748  | 
 12  | 
   if( p ){  | 
 
| 
97307
 | 
 8  | 
 2740  | 
     if( flags&EXPRDUP_REDUCE ){  | 
 
| 
97333
 | 
 4  | 
 2744  | 
   if( pzBuffer ){  | 
 
| 
97342
 | 
 2748  | 
 0  | 
   if( pNew ){  | 
 
| 
97351
 | 
 2670  | 
 78  | 
     if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){  | 
 
| 
 | 
 2612  | 
 58  | 
     if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){  | 
 
| 
97356
 | 
 8  | 
 2740  | 
     if( dupFlags ){  | 
 
| 
97362
 | 
 0  | 
 2740  | 
       if( nSize
 | 
 
| 
97373
 | 
 2612  | 
 136  | 
     if( nToken ){  | 
 
| 
97378
 | 
 375  | 
 2373  | 
     if( 0==((p->flags|pNew->flags) & (EP_TokenOnly|EP_Leaf)) ){  | 
 
| 
97380
 | 
 0  | 
 375  | 
       if( ExprHasProperty(p, EP_xIsSelect) ){  | 
 
| 
97388
 | 
 8  | 
 2740  | 
     if( ExprHasProperty(pNew, EP_Reduced|EP_TokenOnly|EP_WinFunc) ){  | 
 
| 
97390
 | 
 4  | 
 4  | 
       if( !ExprHasProperty(pNew, EP_TokenOnly|EP_Leaf) ){  | 
 
| 
97392
 | 
 4  | 
 0  | 
                       exprDup(db, p->pLeft, EXPRDUP_REDUCE, &zAlloc) : 0;  | 
 
| 
97394
 | 
 0  | 
 4  | 
                        exprDup(db, p->pRight, EXPRDUP_REDUCE, &zAlloc) : 0;  | 
 
| 
97397
 | 
 0  | 
 8  | 
       if( ExprHasProperty(p, EP_WinFunc) ){  | 
 
| 
97402
 | 
 4  | 
 4  | 
       if( pzBuffer ){  | 
 
| 
97406
 | 
 371  | 
 2369  | 
       if( !ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){  | 
 
| 
97407
 | 
 0  | 
 371  | 
         if( pNew->op==TK_SELECT_COLUMN ){  | 
 
| 
97429
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
97432
 | 
 0  | 
 0  | 
     if( pRet ){  | 
 
| 
97435
 | 
 0  | 
 0  | 
       for(i=0; inCte; i++){  | 
 
| 
97467
 | 
 2744  | 
 736  | 
   return p ? exprDup(db, p, flags, 0) : 0;  | 
 
| 
97475
 | 
 186  | 
 203  | 
   if( p==0 ) return 0;  | 
 
| 
97477
 | 
 0  | 
 203  | 
   if( pNew==0 ) return 0;  | 
 
| 
97481
 | 
 366  | 
 203  | 
   for(i=0; inExpr; i++, pItem++, pOldItem++){  | 
 
| 
97485
 | 
 366  | 
 0  | 
     if( pOldExpr   | 
 
| 
97486
 | 
 0  | 
 366  | 
      && pOldExpr->op==TK_SELECT_COLUMN  | 
 
| 
97487
 | 
 0  | 
 0  | 
      && (pNewExpr = pItem->pExpr)!=0   | 
 
| 
97490
 | 
 0  | 
 0  | 
       if( pNewExpr->iColumn==0 ){  | 
 
| 
97525
 | 
 0  | 
 0  | 
   if( p==0 ) return 0;  | 
 
| 
97526
 | 
 0  | 
 0  | 
   nByte = sizeof(*p) + (p->nSrc>0 ? sizeof(p->a[0]) * (p->nSrc-1) : 0);  | 
 
| 
97528
 | 
 0  | 
 0  | 
   if( pNew==0 ) return 0;  | 
 
| 
97530
 | 
 0  | 
 0  | 
   for(i=0; inSrc; i++){  | 
 
| 
97542
 | 
 0  | 
 0  | 
     if( pNewItem->fg.isIndexedBy ){  | 
 
| 
97546
 | 
 0  | 
 0  | 
     if( pNewItem->fg.isTabFunc ){  | 
 
| 
97551
 | 
 0  | 
 0  | 
     if( pTab ){  | 
 
| 
97565
 | 
 0  | 
 0  | 
   if( p==0 ) return 0;  | 
 
| 
97567
 | 
 0  | 
 0  | 
   if( pNew==0 ) return 0;  | 
 
| 
97570
 | 
 0  | 
 0  | 
   if( pNew->a==0 ){  | 
 
| 
97577
 | 
 0  | 
 0  | 
   for(i=0; inId; i++){  | 
 
| 
97592
 | 
 0  | 
 43  | 
   for(p=pDup; p; p=p->pPrior){  | 
 
| 
97594
 | 
 0  | 
 0  | 
     if( pNew==0 ) break;  | 
 
| 
97655
 | 
 6538  | 
 3859  | 
   if( pList==0 ){  | 
 
| 
97657
 | 
 0  | 
 6538  | 
     if( pList==0 ){  | 
 
| 
97661
 | 
 3365  | 
 494  | 
   }else if( (pList->nExpr & (pList->nExpr-1))==0 ){  | 
 
| 
97665
 | 
 0  | 
 3365  | 
     if( pNew==0 ){  | 
 
| 
97704
 | 
 0  | 
 0  | 
   int iFirst = pList ? pList->nExpr : 0;  | 
 
| 
97707
 | 
 0  | 
 0  | 
   if( NEVER(pColumns==0) ) goto vector_append_error;  | 
 
| 
97708
 | 
 0  | 
 0  | 
   if( pExpr==0 ) goto vector_append_error;  | 
 
| 
97715
 | 
 0  | 
 0  | 
   if( pExpr->op!=TK_SELECT && pColumns->nId!=(n=sqlite3ExprVectorSize(pExpr)) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pExpr->op!=TK_SELECT && pColumns->nId!=(n=sqlite3ExprVectorSize(pExpr)) ){  | 
 
| 
97721
 | 
 0  | 
 0  | 
   for(i=0; inId; i++){  | 
 
| 
97724
 | 
 0  | 
 0  | 
     if( pList ){  | 
 
| 
97731
 | 
 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) ){  | 
 
| 
97756
 | 
 0  | 
 670  | 
   if( p==0 ) return;  | 
 
| 
97759
 | 
 629  | 
 41  | 
   if( iSortOrder<0 ){  | 
 
| 
97781
 | 
 1726  | 
 0  | 
   if( pList ){  | 
 
| 
97787
 | 
 1463  | 
 263  | 
     if( dequote ) sqlite3Dequote(pItem->zName);  | 
 
| 
97788
 | 
 0  | 
 1726  | 
     if( IN_RENAME_OBJECT ){  | 
 
| 
97810
 | 
 2691  | 
 0  | 
   if( pList ){  | 
 
| 
97830
 | 
 285  | 
 0  | 
   if( pEList && pEList->nExpr>mx ){  | 
 
| 
 | 
 0  | 
 285  | 
   if( pEList && pEList->nExpr>mx ){  | 
 
| 
97847
 | 
 4022  | 
 6741  | 
   }while( --i>0 );  | 
 
| 
97851
 | 
 6741  | 
 19312  | 
   if( pList ) exprListDeleteNN(db, pList);  | 
 
| 
97862
 | 
 957  | 
 560  | 
   for(i=0; inExpr; i++){  | 
 
| 
97890
 | 
 0  | 
 0  | 
   if( sqlite3StrICmp(pExpr->u.zToken, "true")==0  | 
 
| 
97891
 | 
 0  | 
 0  | 
    || sqlite3StrICmp(pExpr->u.zToken, "false")==0  | 
 
| 
97941
 | 
 3344  | 
 1137  | 
   if( pWalker->eCode==2 && ExprHasProperty(pExpr, EP_FromJoin) ){  | 
 
| 
 | 
 0  | 
 3344  | 
   if( pWalker->eCode==2 && ExprHasProperty(pExpr, EP_FromJoin) ){  | 
 
| 
97951
 | 
 714  | 
 0  | 
       if( pWalker->eCode>=4 || ExprHasProperty(pExpr,EP_ConstFunc) ){  | 
 
| 
 | 
 319  | 
 395  | 
       if( pWalker->eCode>=4 || ExprHasProperty(pExpr,EP_ConstFunc) ){  | 
 
| 
97960
 | 
 0  | 
 0  | 
       if( sqlite3ExprIdToTrueFalse(pExpr) ){  | 
 
| 
97971
 | 
 0  | 
 1166  | 
       if( ExprHasProperty(pExpr, EP_FixedCol) && pWalker->eCode!=2 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( ExprHasProperty(pExpr, EP_FixedCol) && pWalker->eCode!=2 ){  | 
 
| 
97974
 | 
 22  | 
 1144  | 
       if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){  | 
 
| 
 | 
 22  | 
 0  | 
       if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){  | 
 
| 
97985
 | 
 0  | 
 1117  | 
       if( pWalker->eCode==5 ){  | 
 
| 
97990
 | 
 0  | 
 1117  | 
       }else if( pWalker->eCode==4 ){  | 
 
| 
98065
 | 
 10  | 
 10  | 
   for(i=0; inExpr; i++){  | 
 
| 
98067
 | 
 0  | 
 10  | 
     if( sqlite3ExprCompare(0, pExpr, p, -1)<2 ){  | 
 
| 
98069
 | 
 0  | 
 0  | 
       if( sqlite3IsBinary(pColl) ){  | 
 
| 
98076
 | 
 0  | 
 10  | 
   if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
98154
 | 
 0  | 
 1832  | 
   if( p==0 ) return 0;  /* Can only happen following on OOM */  | 
 
| 
98161
 | 
 55  | 
 1777  | 
   if( p->flags & EP_IntValue ){  | 
 
| 
98172
 | 
 0  | 
 0  | 
       if( sqlite3ExprIsInteger(p->pLeft, &v) ){  | 
 
| 
98200
 | 
 0  | 
 58  | 
   while( p->op==TK_UPLUS || p->op==TK_UMINUS ){ p = p->pLeft; }  | 
 
| 
 | 
 0  | 
 58  | 
   while( p->op==TK_UPLUS || p->op==TK_UMINUS ){ p = p->pLeft; }  | 
 
| 
98202
 | 
 0  | 
 58  | 
   if( op==TK_REGISTER ) op = p->op2;  | 
 
| 
98210
 | 
 5  | 
 0  | 
       return ExprHasProperty(p, EP_CanBeNull) ||  | 
 
| 
98211
 | 
 5  | 
 0  | 
              p->y.pTab==0 ||  /* Reference to column of index on expression */  | 
 
| 
 | 
 3  | 
 2  | 
              p->y.pTab==0 ||  /* Reference to column of index on expression */  | 
 
| 
98212
 | 
 3  | 
 0  | 
              (p->iColumn>=0 && p->y.pTab->aCol[p->iColumn].notNull==0);  | 
 
| 
98230
 | 
 5  | 
 53  | 
   if( aff==SQLITE_AFF_BLOB ) return 1;  | 
 
| 
98231
 | 
 0  | 
 53  | 
   while( p->op==TK_UPLUS || p->op==TK_UMINUS ){ p = p->pLeft; }  | 
 
| 
 | 
 0  | 
 53  | 
   while( p->op==TK_UPLUS || p->op==TK_UMINUS ){ p = p->pLeft; }  | 
 
| 
98233
 | 
 0  | 
 53  | 
   if( op==TK_REGISTER ) op = p->op2;  | 
 
| 
98236
 | 
 0  | 
 6  | 
       return aff==SQLITE_AFF_INTEGER || aff==SQLITE_AFF_NUMERIC;  | 
 
| 
 | 
 0  | 
 0  | 
       return aff==SQLITE_AFF_INTEGER || aff==SQLITE_AFF_NUMERIC;  | 
 
| 
98239
 | 
 0  | 
 0  | 
       return aff==SQLITE_AFF_REAL || aff==SQLITE_AFF_NUMERIC;  | 
 
| 
 | 
 0  | 
 0  | 
       return aff==SQLITE_AFF_REAL || aff==SQLITE_AFF_NUMERIC;  | 
 
| 
98250
 | 
 2  | 
 2  | 
           && (aff==SQLITE_AFF_INTEGER || aff==SQLITE_AFF_NUMERIC);  | 
 
| 
 | 
 0  | 
 2  | 
           && (aff==SQLITE_AFF_INTEGER || aff==SQLITE_AFF_NUMERIC);  | 
 
| 
 | 
 0  | 
 0  | 
           && (aff==SQLITE_AFF_INTEGER || aff==SQLITE_AFF_NUMERIC);  | 
 
| 
98262
 | 
 0  | 
 641  | 
   if( sqlite3StrICmp(z, "_ROWID_")==0 ) return 1;  | 
 
| 
98263
 | 
 631  | 
 10  | 
   if( sqlite3StrICmp(z, "ROWID")==0 ) return 1;  | 
 
| 
98264
 | 
 0  | 
 10  | 
   if( sqlite3StrICmp(z, "OID")==0 ) return 1;  | 
 
| 
98290
 | 
 16  | 
 0  | 
   if( !ExprHasProperty(pX, EP_xIsSelect) ) return 0;  /* Not a subquery */  | 
 
| 
98291
 | 
 0  | 
 0  | 
   if( ExprHasProperty(pX, EP_VarSelect)  ) return 0;  /* Correlated subq */  | 
 
| 
98293
 | 
 0  | 
 0  | 
   if( p->pPrior ) return 0;              /* Not a compound SELECT */  | 
 
| 
98294
 | 
 0  | 
 0  | 
   if( p->selFlags & (SF_Distinct|SF_Aggregate) ){  | 
 
| 
98300
 | 
 0  | 
 0  | 
   if( p->pLimit ) return 0;              /* Has no LIMIT clause */  | 
 
| 
98301
 | 
 0  | 
 0  | 
   if( p->pWhere ) return 0;              /* Has no WHERE clause */  | 
 
| 
98304
 | 
 0  | 
 0  | 
   if( pSrc->nSrc!=1 ) return 0;          /* Single term in FROM clause */  | 
 
| 
98305
 | 
 0  | 
 0  | 
   if( pSrc->a[0].pSelect ) return 0;     /* FROM is not a subquery or view */  | 
 
| 
98309
 | 
 0  | 
 0  | 
   if( IsVirtual(pTab) ) return 0;        /* FROM clause not a virtual table */  | 
 
| 
98313
 | 
 0  | 
 0  | 
   for(i=0; inExpr; i++){  | 
 
| 
98315
 | 
 0  | 
 0  | 
     if( pRes->op!=TK_COLUMN ) return 0;  | 
 
| 
98460
 | 
 0  | 
 16  | 
   if( prRhsHasNull && (pX->flags & EP_xIsSelect) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( prRhsHasNull && (pX->flags & EP_xIsSelect) ){  | 
 
| 
98463
 | 
 0  | 
 0  | 
     for(i=0; inExpr; i++){  | 
 
| 
98464
 | 
 0  | 
 0  | 
       if( sqlite3ExprCanBeNull(pEList->a[i].pExpr) ) break;  | 
 
| 
98466
 | 
 0  | 
 0  | 
     if( i==pEList->nExpr ){  | 
 
| 
98474
 | 
 16  | 
 0  | 
   if( pParse->nErr==0 && (p = isCandidateForInOpt(pX))!=0 ){  | 
 
| 
 | 
 0  | 
 16  | 
   if( pParse->nErr==0 && (p = isCandidateForInOpt(pX))!=0 ){  | 
 
| 
98492
 | 
 0  | 
 0  | 
     if( nExpr==1 && pEList->a[0].pExpr->iColumn<0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nExpr==1 && pEList->a[0].pExpr->iColumn<0 ){  | 
 
| 
98511
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
98533
 | 
 0  | 
 0  | 
       if( affinity_ok ){  | 
 
| 
98535
 | 
 0  | 
 0  | 
         for(pIdx=pTab->pIndex; pIdx && eType==0; pIdx=pIdx->pNext){  | 
 
| 
 | 
 0  | 
 0  | 
         for(pIdx=pTab->pIndex; pIdx && eType==0; pIdx=pIdx->pNext){  | 
 
| 
98538
 | 
 0  | 
 0  | 
           if( pIdx->nColumn
 | 
 
| 
98543
 | 
 0  | 
 0  | 
           if( pIdx->nColumn>=BMS-1 ) continue;  | 
 
| 
98544
 | 
 0  | 
 0  | 
           if( mustBeUnique ){  | 
 
| 
98545
 | 
 0  | 
 0  | 
             if( pIdx->nKeyCol>nExpr  | 
 
| 
98546
 | 
 0  | 
 0  | 
              ||(pIdx->nColumn>nExpr && !IsUniqueIndex(pIdx))  | 
 
| 
 | 
 0  | 
 0  | 
              ||(pIdx->nColumn>nExpr && !IsUniqueIndex(pIdx))  | 
 
| 
98553
 | 
 0  | 
 0  | 
           for(i=0; i
 | 
 
| 
98560
 | 
 0  | 
 0  | 
             for(j=0; j
 | 
 
| 
98561
 | 
 0  | 
 0  | 
               if( pIdx->aiColumn[j]!=pRhs->iColumn ) continue;  | 
 
| 
98563
 | 
 0  | 
 0  | 
               if( pReq!=0 && sqlite3StrICmp(pReq->zName, pIdx->azColl[j])!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               if( pReq!=0 && sqlite3StrICmp(pReq->zName, pIdx->azColl[j])!=0 ){  | 
 
| 
98568
 | 
 0  | 
 0  | 
             if( j==nExpr ) break;  | 
 
| 
98570
 | 
 0  | 
 0  | 
             if( mCol & colUsed ) break; /* Each column used only once */  | 
 
| 
98572
 | 
 0  | 
 0  | 
             if( aiMap ) aiMap[i] = j;  | 
 
| 
98576
 | 
 0  | 
 0  | 
           if( colUsed==(MASKBIT(nExpr)-1) ){  | 
 
| 
98587
 | 
 0  | 
 0  | 
             if( prRhsHasNull ){  | 
 
| 
98594
 | 
 0  | 
 0  | 
               if( nExpr==1 ){  | 
 
| 
98612
 | 
 16  | 
 0  | 
   if( eType==0  | 
 
| 
98613
 | 
 16  | 
 0  | 
    && (inFlags & IN_INDEX_NOOP_OK)  | 
 
| 
98614
 | 
 16  | 
 0  | 
    && !ExprHasProperty(pX, EP_xIsSelect)  | 
 
| 
98615
 | 
 16  | 
 0  | 
    && (!sqlite3InRhsIsConstant(pX) || pX->x.pList->nExpr<=2)  | 
 
| 
 | 
 16  | 
 0  | 
    && (!sqlite3InRhsIsConstant(pX) || pX->x.pList->nExpr<=2)  | 
 
| 
98620
 | 
 0  | 
 16  | 
   if( eType==0 ){  | 
 
| 
98627
 | 
 0  | 
 0  | 
     if( inFlags & IN_INDEX_LOOP ){  | 
 
| 
98629
 | 
 0  | 
 0  | 
       if( pX->pLeft->iColumn<0 && !ExprHasProperty(pX, EP_xIsSelect) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pX->pLeft->iColumn<0 && !ExprHasProperty(pX, EP_xIsSelect) ){  | 
 
| 
98632
 | 
 0  | 
 0  | 
     }else if( prRhsHasNull ){  | 
 
| 
98641
 | 
 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 ){  | 
 
| 
 | 
 16  | 
 0  | 
   if( aiMap && eType!=IN_INDEX_INDEX_ASC && eType!=IN_INDEX_INDEX_DESC ){  | 
 
| 
98644
 | 
 16  | 
 16  | 
     for(i=0; i
 | 
 
| 
98662
 | 
 0  | 
 16  | 
   Select *pSelect = (pExpr->flags & EP_xIsSelect) ? pExpr->x.pSelect : 0;  | 
 
| 
98667
 | 
 16  | 
 0  | 
   if( zRet ){  | 
 
| 
98669
 | 
 16  | 
 16  | 
     for(i=0; i
 | 
 
| 
98672
 | 
 0  | 
 16  | 
       if( pSelect ){  | 
 
| 
98710
 | 
 0  | 
 0  | 
   if( pExpr->flags & EP_xIsSelect ){  | 
 
| 
98758
 | 
 0  | 
 16  | 
   if( NEVER(v==0) ) return 0;  | 
 
| 
98770
 | 
 14  | 
 2  | 
   if( !ExprHasProperty(pExpr, EP_VarSelect) ){  | 
 
| 
98774
 | 
 0  | 
 16  | 
   switch( pExpr->op ){  | 
 
| 
98798
 | 
 0  | 
 0  | 
       addr = sqlite3VdbeAddOp2(v, OP_OpenEphemeral,   | 
 
| 
98800
 | 
 0  | 
 0  | 
       pKeyInfo = isRowid ? 0 : sqlite3KeyInfoAlloc(pParse->db, nVal, 1);  | 
 
| 
98802
 | 
 0  | 
 0  | 
       if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
98811
 | 
 0  | 
 0  | 
         ExplainQueryPlan((pParse, 1, "%sLIST SUBQUERY",  | 
 
| 
98817
 | 
 0  | 
 0  | 
         if( ALWAYS(pEList->nExpr==nVal) ){  | 
 
| 
98825
 | 
 0  | 
 0  | 
           if( sqlite3Select(pParse, pSelect, &dest) ){  | 
 
| 
98835
 | 
 0  | 
 0  | 
           for(i=0; i
 | 
 
| 
98842
 | 
 0  | 
 0  | 
       }else if( ALWAYS(pExpr->x.pList!=0) ){  | 
 
| 
98856
 | 
 0  | 
 0  | 
         if( !affinity ){  | 
 
| 
98859
 | 
 0  | 
 0  | 
         if( pKeyInfo ){  | 
 
| 
98867
 | 
 0  | 
 0  | 
         if( isRowid ) sqlite3VdbeAddOp4(v, OP_Blob, 0, r2, 0, "", P4_STATIC);  | 
 
| 
98868
 | 
 0  | 
 0  | 
         for(i=pList->nExpr, pItem=pList->a; i>0; i--, pItem++){  | 
 
| 
98877
 | 
 0  | 
 0  | 
           if( jmpIfDynamic>=0 && !sqlite3ExprIsConstant(pE2) ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( jmpIfDynamic>=0 && !sqlite3ExprIsConstant(pE2) ){  | 
 
| 
98883
 | 
 0  | 
 0  | 
           if( isRowid && sqlite3ExprIsInteger(pE2, &iValToIns) ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( isRowid && sqlite3ExprIsInteger(pE2, &iValToIns) ){  | 
 
| 
98887
 | 
 0  | 
 0  | 
             if( isRowid ){  | 
 
| 
98901
 | 
 0  | 
 0  | 
       if( pKeyInfo ){  | 
 
| 
98934
 | 
 14  | 
 2  | 
       ExplainQueryPlan((pParse, 1, "%sSCALAR SUBQUERY",  | 
 
| 
98936
 | 
 16  | 
 0  | 
       nReg = pExpr->op==TK_SELECT ? pSel->pEList->nExpr : 1;  | 
 
| 
98939
 | 
 16  | 
 0  | 
       if( pExpr->op==TK_SELECT ){  | 
 
| 
98951
 | 
 0  | 
 16  | 
       if( pSel->pLimit ){  | 
 
| 
98958
 | 
 0  | 
 16  | 
       if( sqlite3Select(pParse, pSel, &dest) ){  | 
 
| 
98967
 | 
 0  | 
 16  | 
   if( rHasNullFlag ){  | 
 
| 
98971
 | 
 14  | 
 2  | 
   if( jmpIfDynamic>=0 ){  | 
 
| 
98988
 | 
 0  | 
 32  | 
   if( (pIn->flags & EP_xIsSelect) ){  | 
 
| 
98989
 | 
 0  | 
 0  | 
     if( nVector!=pIn->x.pSelect->pEList->nExpr ){  | 
 
| 
98993
 | 
 0  | 
 32  | 
   }else if( nVector!=1 ){  | 
 
| 
99051
 | 
 0  | 
 16  | 
   if( sqlite3ExprCheckIN(pParse, pExpr) ) return;  | 
 
| 
99057
 | 
 0  | 
 16  | 
   if( pParse->db->mallocFailed ) goto sqlite3ExprCodeIN_oom_error;  | 
 
| 
99066
 | 
 0  | 
 16  | 
   eType = sqlite3FindInIndex(pParse, pExpr,  | 
 
| 
99093
 | 
 16  | 
 16  | 
   for(i=0; i
 | 
 
| 
 | 
 16  | 
 0  | 
   for(i=0; i
 | 
 
| 
99094
 | 
 16  | 
 0  | 
   if( i==nVector ){  | 
 
| 
99100
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
99111
 | 
 16  | 
 0  | 
   if( eType==IN_INDEX_NOOP ){  | 
 
| 
99119
 | 
 0  | 
 16  | 
     if( destIfNull!=destIfFalse ){  | 
 
| 
99123
 | 
 32  | 
 16  | 
     for(ii=0; iinExpr; ii++){  | 
 
| 
99125
 | 
 0  | 
 32  | 
       if( regCkNull && sqlite3ExprCanBeNull(pList->a[ii].pExpr) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( regCkNull && sqlite3ExprCanBeNull(pList->a[ii].pExpr) ){  | 
 
| 
99128
 | 
 16  | 
 16  | 
       if( iinExpr-1 || destIfNull!=destIfFalse ){  | 
 
| 
 | 
 0  | 
 16  | 
       if( iinExpr-1 || destIfNull!=destIfFalse ){  | 
 
| 
99142
 | 
 0  | 
 16  | 
     if( regCkNull ){  | 
 
| 
99155
 | 
 0  | 
 0  | 
   if( destIfNull==destIfFalse ){  | 
 
| 
99160
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
99162
 | 
 0  | 
 0  | 
     if( sqlite3ExprCanBeNull(p) ){  | 
 
| 
99172
 | 
 0  | 
 0  | 
   if( eType==IN_INDEX_ROWID ){  | 
 
| 
99181
 | 
 0  | 
 0  | 
     if( destIfFalse==destIfNull ){  | 
 
| 
99195
 | 
 0  | 
 0  | 
   if( rRhsHasNull && nVector==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rRhsHasNull && nVector==1 ){  | 
 
| 
99203
 | 
 0  | 
 0  | 
   if( destIfFalse==destIfNull ) sqlite3VdbeGoto(v, destIfFalse);  | 
 
| 
99212
 | 
 0  | 
 0  | 
   if( destStep6 ) sqlite3VdbeResolveLabel(v, destStep6);  | 
 
| 
99215
 | 
 0  | 
 0  | 
   if( nVector>1 ){  | 
 
| 
99222
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
99235
 | 
 0  | 
 0  | 
   if( nVector>1 ){  | 
 
| 
99249
 | 
 0  | 
 16  | 
   if( rLhs!=rLhsOrig ) sqlite3ReleaseTempReg(pParse, rLhs);  | 
 
| 
99267
 | 
 2166  | 
 0  | 
   if( ALWAYS(z!=0) ){  | 
 
| 
99271
 | 
 0  | 
 2166  | 
     if( negateFlag ) value = -value;  | 
 
| 
99286
 | 
 472  | 
 12  | 
   if( pExpr->flags & EP_IntValue ){  | 
 
| 
99289
 | 
 0  | 
 472  | 
     if( negFlag ) i = -i;  | 
 
| 
99297
 | 
 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)){  | 
 
| 
99302
 | 
 0  | 
 0  | 
       if( sqlite3_strnicmp(z,"0x",2)==0 ){  | 
 
| 
99303
 | 
 0  | 
 0  | 
         sqlite3ErrorMsg(pParse, "hex literal too big: %s%s", negFlag?"-":"",z);  | 
 
| 
99311
 | 
 0  | 
 12  | 
       if( negFlag ){ value = c==3 ? SMALLEST_INT64 : -value; }  | 
 
| 
 | 
 0  | 
 0  | 
       if( negFlag ){ value = c==3 ? SMALLEST_INT64 : -value; }  | 
 
| 
99329
 | 
 0  | 
 14  | 
   if( iTabCol==XN_EXPR ){  | 
 
| 
99351
 | 
 0  | 
 3047  | 
   if( pTab==0 ){  | 
 
| 
99355
 | 
 2967  | 
 80  | 
   if( iCol<0 || iCol==pTab->iPKey ){  | 
 
| 
 | 
 2  | 
 2965  | 
   if( iCol<0 || iCol==pTab->iPKey ){  | 
 
| 
99358
 | 
 54  | 
 2911  | 
     int op = IsVirtual(pTab) ? OP_VColumn : OP_Column;  | 
 
| 
99360
 | 
 0  | 
 2965  | 
     if( !HasRowid(pTab) && !IsVirtual(pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( !HasRowid(pTab) && !IsVirtual(pTab) ){  | 
 
| 
99365
 | 
 2967  | 
 80  | 
   if( iCol>=0 ){  | 
 
| 
99388
 | 
 16  | 
 2952  | 
   if( p5 ){  | 
 
| 
99428
 | 
 16  | 
 0  | 
   if( nResult==1 ){  | 
 
| 
99432
 | 
 0  | 
 0  | 
     if( p->op==TK_SELECT ){  | 
 
| 
99442
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
99473
 | 
 0  | 
 10055  | 
   if( v==0 ){  | 
 
| 
99479
 | 
 56  | 
 10039  | 
   if( pExpr==0 ){  | 
 
| 
99488
 | 
 8  | 
 58  | 
       if( !pAggInfo->directMode ){  | 
 
| 
99491
 | 
 10  | 
 48  | 
       }else if( pAggInfo->useSortingIdx ){  | 
 
| 
99500
 | 
 0  | 
 2968  | 
       if( ExprHasProperty(pExpr, EP_FixedCol) ){  | 
 
| 
99509
 | 
 0  | 
 0  | 
         if( aff!=SQLITE_AFF_BLOB ){  | 
 
| 
99513
 | 
 0  | 
 0  | 
           if( iReg!=target ){  | 
 
| 
99522
 | 
 0  | 
 2968  | 
       if( iTab<0 ){  | 
 
| 
99523
 | 
 0  | 
 0  | 
         if( pParse->iSelfTab<0 ){  | 
 
| 
99581
 | 
 31  | 
 1048  | 
       if( pExpr->u.zToken[1]!=0 ){  | 
 
| 
99596
 | 
 0  | 
 1  | 
       if( inReg!=target ){  | 
 
| 
99607
 | 
 0  | 
 0  | 
       op = (op==TK_IS) ? TK_EQ : TK_NE;  | 
 
| 
99617
 | 
 0  | 
 0  | 
       if( sqlite3ExprIsVector(pLeft) ){  | 
 
| 
99668
 | 
 0  | 
 0  | 
       if( pLeft->op==TK_INTEGER ){  | 
 
| 
99672
 | 
 0  | 
 0  | 
       }else if( pLeft->op==TK_FLOAT ){  | 
 
| 
99726
 | 
 0  | 
 133  | 
       if( pInfo==0 ){  | 
 
| 
99746
 | 
 0  | 
 619  | 
       if( ExprHasProperty(pExpr, EP_WinFunc) ){  | 
 
| 
99751
 | 
 523  | 
 96  | 
       if( ConstFactorOk(pParse) && sqlite3ExprIsConstantNotJoin(pExpr) ){  | 
 
| 
 | 
 49  | 
 474  | 
       if( ConstFactorOk(pParse) && sqlite3ExprIsConstantNotJoin(pExpr) ){  | 
 
| 
99757
 | 
 0  | 
 570  | 
       if( ExprHasProperty(pExpr, EP_TokenOnly) ){  | 
 
| 
99762
 | 
 552  | 
 18  | 
       nFarg = pFarg ? pFarg->nExpr : 0;  | 
 
| 
99771
 | 
 570  | 
 0  | 
       if( pDef==0 || pDef->xFinalize!=0 ){  | 
 
| 
 | 
 0  | 
 570  | 
       if( pDef==0 || pDef->xFinalize!=0 ){  | 
 
| 
99780
 | 
 7  | 
 563  | 
       if( pDef->funcFlags & SQLITE_FUNC_COALESCE ){  | 
 
| 
99784
 | 
 7  | 
 7  | 
         for(i=1; i
 | 
 
| 
99796
 | 
 0  | 
 563  | 
       if( pDef->funcFlags & SQLITE_FUNC_UNLIKELY ){  | 
 
| 
99817
 | 
 975  | 
 563  | 
       for(i=0; i
 | 
 
| 
99818
 | 
 975  | 
 0  | 
         if( i<32 && sqlite3ExprIsConstant(pFarg->a[i].pExpr) ){  | 
 
| 
 | 
 817  | 
 158  | 
         if( i<32 && sqlite3ExprIsConstant(pFarg->a[i].pExpr) ){  | 
 
| 
99822
 | 
 0  | 
 975  | 
         if( (pDef->funcFlags & SQLITE_FUNC_NEEDCOLL)!=0 && !pColl ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( (pDef->funcFlags & SQLITE_FUNC_NEEDCOLL)!=0 && !pColl ){  | 
 
| 
99826
 | 
 545  | 
 18  | 
       if( pFarg ){  | 
 
| 
99827
 | 
 487  | 
 58  | 
         if( constMask ){  | 
 
| 
99839
 | 
 22  | 
 523  | 
         if( (pDef->funcFlags & (SQLITE_FUNC_LENGTH|SQLITE_FUNC_TYPEOF))!=0 ){  | 
 
| 
99844
 | 
 6  | 
 16  | 
           if( exprOp==TK_COLUMN || exprOp==TK_AGG_COLUMN ){  | 
 
| 
 | 
 0  | 
 6  | 
           if( exprOp==TK_COLUMN || exprOp==TK_AGG_COLUMN ){  | 
 
| 
99871
 | 
 418  | 
 145  | 
       if( nFarg>=2 && ExprHasProperty(pExpr, EP_InfixFunc) ){  | 
 
| 
 | 
 141  | 
 277  | 
       if( nFarg>=2 && ExprHasProperty(pExpr, EP_InfixFunc) ){  | 
 
| 
99873
 | 
 404  | 
 18  | 
       }else if( nFarg>0 ){  | 
 
| 
99877
 | 
 0  | 
 563  | 
       if( pDef->funcFlags & SQLITE_FUNC_NEEDCOLL ){  | 
 
| 
99878
 | 
 0  | 
 0  | 
         if( !pColl ) pColl = db->pDfltColl;   | 
 
| 
99892
 | 
 0  | 
 563  | 
         sqlite3VdbeAddOp4(v, pParse->iSelfTab ? OP_PureFunc0 : OP_Function0,  | 
 
| 
99896
 | 
 545  | 
 18  | 
       if( nFarg && constMask==0 ){  | 
 
| 
 | 
 58  | 
 487  | 
       if( nFarg && constMask==0 ){  | 
 
| 
99907
 | 
 16  | 
 0  | 
       if( op==TK_SELECT && (nCol = pExpr->x.pSelect->pEList->nExpr)!=1 ){  | 
 
| 
 | 
 0  | 
 16  | 
       if( op==TK_SELECT && (nCol = pExpr->x.pSelect->pEList->nExpr)!=1 ){  | 
 
| 
99916
 | 
 0  | 
 0  | 
       if( pExpr->pLeft->iTable==0 ){  | 
 
| 
99920
 | 
 0  | 
 0  | 
       if( pExpr->iTable  | 
 
| 
99921
 | 
 0  | 
 0  | 
        && pExpr->iTable!=(n = sqlite3ExprVectorSize(pExpr->pLeft))   | 
 
| 
100010
 | 
 0  | 
 0  | 
       if( pExpr->iColumn>=0   | 
 
| 
100011
 | 
 0  | 
 0  | 
        && pTab->aCol[pExpr->iColumn].affinity==SQLITE_AFF_REAL  | 
 
| 
100071
 | 
 0  | 
 0  | 
       if( (pX = pExpr->pLeft)!=0 ){  | 
 
| 
100086
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
100087
 | 
 0  | 
 0  | 
         if( pX ){  | 
 
| 
100101
 | 
 0  | 
 0  | 
       if( (nExpr&1)!=0 ){  | 
 
| 
100116
 | 
 0  | 
 0  | 
       if( !pParse->pTriggerTab ){  | 
 
| 
100121
 | 
 0  | 
 0  | 
       if( pExpr->affinity==OE_Abort ){  | 
 
| 
100125
 | 
 0  | 
 0  | 
       if( pExpr->affinity==OE_Ignore ){  | 
 
| 
100160
 | 
 761  | 
 711  | 
   if( regDest<0 && p ){  | 
 
| 
 | 
 307  | 
 454  | 
   if( regDest<0 && p ){  | 
 
| 
100163
 | 
 452  | 
 276  | 
     for(pItem=p->a, i=p->nExpr; i>0; pItem++, i--){  | 
 
| 
100164
 | 
 350  | 
 102  | 
       if( pItem->reusable && sqlite3ExprCompare(0,pItem->pExpr,pExpr,-1)==0 ){  | 
 
| 
 | 
 31  | 
 319  | 
       if( pItem->reusable && sqlite3ExprCompare(0,pItem->pExpr,pExpr,-1)==0 ){  | 
 
| 
100171
 | 
 1441  | 
 0  | 
   if( p ){  | 
 
| 
100174
 | 
 730  | 
 711  | 
      if( regDest<0 ) regDest = ++pParse->nMem;  | 
 
| 
100197
 | 
 1483  | 
 4  | 
   if( ConstFactorOk(pParse)  | 
 
| 
100198
 | 
 1473  | 
 10  | 
    && pExpr->op!=TK_REGISTER  | 
 
| 
100199
 | 
 712  | 
 761  | 
    && sqlite3ExprIsConstantNotJoin(pExpr)  | 
 
| 
100206
 | 
 744  | 
 31  | 
     if( r2==r1 ){  | 
 
| 
100225
 | 
 5712  | 
 56  | 
   if( pExpr && pExpr->op==TK_REGISTER ){  | 
 
| 
 | 
 253  | 
 5459  | 
   if( pExpr && pExpr->op==TK_REGISTER ){  | 
 
| 
100230
 | 
 1  | 
 5514  | 
     if( inReg!=target && pParse->pVdbe ){  | 
 
| 
 | 
 1  | 
 0  | 
     if( inReg!=target && pParse->pVdbe ){  | 
 
| 
100244
 | 
 0  | 
 0  | 
   if( !db->mallocFailed ) sqlite3ExprCode(pParse, pExpr, target);  | 
 
| 
100255
 | 
 51  | 
 0  | 
   if( pParse->okConstFactor && sqlite3ExprIsConstantNotJoin(pExpr) ){  | 
 
| 
 | 
 51  | 
 0  | 
   if( pParse->okConstFactor && sqlite3ExprIsConstantNotJoin(pExpr) ){  | 
 
| 
100315
 | 
 2224  | 
 19  | 
   u8 copyOp = (flags & SQLITE_ECEL_DUP) ? OP_Copy : OP_SCopy;  | 
 
| 
100321
 | 
 90  | 
 2153  | 
   if( !ConstFactorOk(pParse) ) flags &= ~SQLITE_ECEL_FACTOR;  | 
 
| 
100322
 | 
 4055  | 
 2243  | 
   for(pItem=pList->a, i=0; i
 | 
 
| 
100330
 | 
 225  | 
 3830  | 
     if( (flags & SQLITE_ECEL_REF)!=0 && (j = pItem->u.x.iOrderByCol)>0 ){  | 
 
| 
 | 
 88  | 
 137  | 
     if( (flags & SQLITE_ECEL_REF)!=0 && (j = pItem->u.x.iOrderByCol)>0 ){  | 
 
| 
100331
 | 
 88  | 
 0  | 
       if( flags & SQLITE_ECEL_OMITREF ){  | 
 
| 
100337
 | 
 818  | 
 3149  | 
     }else if( (flags & SQLITE_ECEL_FACTOR)!=0  | 
 
| 
100338
 | 
 660  | 
 158  | 
            && sqlite3ExprIsConstantNotJoin(pExpr)  | 
 
| 
100343
 | 
 184  | 
 3123  | 
       if( inReg!=target+i ){  | 
 
| 
100345
 | 
 184  | 
 0  | 
         if( copyOp==OP_Copy  | 
 
| 
100346
 | 
 2  | 
 182  | 
          && (pOp=sqlite3VdbeGetOp(v, -1))->opcode==OP_Copy  | 
 
| 
100347
 | 
 1  | 
 1  | 
          && pOp->p1+pOp->p3+1==inReg  | 
 
| 
100348
 | 
 1  | 
 0  | 
          && pOp->p2+pOp->p3+1==target+i  | 
 
| 
100410
 | 
 0  | 
 0  | 
   if( xJump ){  | 
 
| 
100457
 | 
 0  | 
 18  | 
   if( NEVER(v==0) )     return;  /* Existence of VDBE checked by caller */  | 
 
| 
100458
 | 
 0  | 
 18  | 
   if( NEVER(pExpr==0) ) return;  /* No way this can happen */  | 
 
| 
100488
 | 
 0  | 
 0  | 
       if( isTrue ^ isNot ){  | 
 
| 
100489
 | 
 0  | 
 0  | 
         sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest,  | 
 
| 
100492
 | 
 0  | 
 0  | 
         sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest,  | 
 
| 
100501
 | 
 0  | 
 0  | 
       op = (op==TK_IS) ? TK_EQ : TK_NE;  | 
 
| 
100510
 | 
 0  | 
 2  | 
       if( sqlite3ExprIsVector(pExpr->pLeft) ) goto default_expr;  | 
 
| 
100549
 | 
 0  | 
 0  | 
       int destIfNull = jumpIfNull ? dest : destIfFalse;  | 
 
| 
100558
 | 
 0  | 
 12  | 
       if( exprAlwaysTrue(pExpr) ){  | 
 
| 
100560
 | 
 12  | 
 0  | 
       }else if( exprAlwaysFalse(pExpr) ){  | 
 
| 
100593
 | 
 0  | 
 932  | 
   if( NEVER(v==0) ) return; /* Existence of VDBE checked by caller */  | 
 
| 
100594
 | 
 128  | 
 804  | 
   if( pExpr==0 )    return;  | 
 
| 
100655
 | 
 0  | 
 0  | 
       if( isTrue ^ isNot ){  | 
 
| 
100657
 | 
 0  | 
 0  | 
         sqlite3ExprIfFalse(pParse, pExpr->pLeft, dest,  | 
 
| 
100662
 | 
 0  | 
 0  | 
         sqlite3ExprIfTrue(pParse, pExpr->pLeft, dest,  | 
 
| 
100671
 | 
 0  | 
 1  | 
       op = (pExpr->op==TK_IS) ? TK_NE : TK_EQ;  | 
 
| 
100680
 | 
 0  | 
 619  | 
       if( sqlite3ExprIsVector(pExpr->pLeft) ) goto default_expr;  | 
 
| 
100716
 | 
 16  | 
 0  | 
       if( jumpIfNull ){  | 
 
| 
100728
 | 
 0  | 
 138  | 
       if( exprAlwaysFalse(pExpr) ){  | 
 
| 
100730
 | 
 138  | 
 0  | 
       }else if( exprAlwaysTrue(pExpr) ){  | 
 
| 
100754
 | 
 0  | 
 0  | 
   if( db->mallocFailed==0 ){  | 
 
| 
100779
 | 
 0  | 
 0  | 
   if( pR ){  | 
 
| 
100783
 | 
 0  | 
 0  | 
     if( pL ){  | 
 
| 
100784
 | 
 0  | 
 0  | 
       if( sqlite3_value_type(pL)==SQLITE_TEXT ){  | 
 
| 
100827
 | 
 1851  | 
 2992  | 
   if( pA==0 || pB==0 ){  | 
 
| 
 | 
 0  | 
 1851  | 
   if( pA==0 || pB==0 ){  | 
 
| 
100828
 | 
 2992  | 
 0  | 
     return pB==pA ? 0 : 2;  | 
 
| 
100830
 | 
 0  | 
 1851  | 
   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) ){  | 
 
| 
100834
 | 
 0  | 
 1851  | 
   if( combinedFlags & EP_IntValue ){  | 
 
| 
100835
 | 
 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 ){  | 
 
| 
100840
 | 
 66  | 
 1785  | 
   if( pA->op!=pB->op ){  | 
 
| 
100841
 | 
 16  | 
 50  | 
     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 ){  | 
 
| 
100844
 | 
 0  | 
 50  | 
     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 ){  | 
 
| 
100849
 | 
 413  | 
 1372  | 
   if( pA->op!=TK_COLUMN && pA->op!=TK_AGG_COLUMN && pA->u.zToken ){  | 
 
| 
 | 
 413  | 
 0  | 
   if( pA->op!=TK_COLUMN && pA->op!=TK_AGG_COLUMN && pA->u.zToken ){  | 
 
| 
 | 
 413  | 
 0  | 
   if( pA->op!=TK_COLUMN && pA->op!=TK_AGG_COLUMN && pA->u.zToken ){  | 
 
| 
100850
 | 
 54  | 
 359  | 
     if( pA->op==TK_FUNCTION ){  | 
 
| 
100851
 | 
 0  | 
 54  | 
       if( sqlite3StrICmp(pA->u.zToken,pB->u.zToken)!=0 ) return 2;  | 
 
| 
100862
 | 
 0  | 
 54  | 
       if( ExprHasProperty(pA,EP_WinFunc) ){  | 
 
| 
100863
 | 
 0  | 
 0  | 
         if( sqlite3WindowCompare(pParse,pA->y.pWin,pB->y.pWin)!=0 ) return 2;  | 
 
| 
100866
 | 
 0  | 
 359  | 
     }else if( pA->op==TK_COLLATE ){  | 
 
| 
100867
 | 
 0  | 
 0  | 
       if( sqlite3_stricmp(pA->u.zToken,pB->u.zToken)!=0 ) return 2;  | 
 
| 
100868
 | 
 289  | 
 70  | 
     }else if( strcmp(pA->u.zToken,pB->u.zToken)!=0 ){  | 
 
| 
100872
 | 
 0  | 
 1496  | 
   if( (pA->flags & EP_Distinct)!=(pB->flags & EP_Distinct) ) return 2;  | 
 
| 
100873
 | 
 1496  | 
 0  | 
   if( ALWAYS((combinedFlags & EP_TokenOnly)==0) ){  | 
 
| 
100874
 | 
 0  | 
 1496  | 
     if( combinedFlags & EP_xIsSelect ) return 2;  | 
 
| 
100875
 | 
 1496  | 
 0  | 
     if( (combinedFlags & EP_FixedCol)==0  | 
 
| 
100876
 | 
 0  | 
 1496  | 
      && sqlite3ExprCompare(pParse, pA->pLeft, pB->pLeft, iTab) ) return 2;  | 
 
| 
100877
 | 
 0  | 
 1496  | 
     if( sqlite3ExprCompare(pParse, pA->pRight, pB->pRight, iTab) ) return 2;  | 
 
| 
100878
 | 
 48  | 
 1448  | 
     if( sqlite3ExprListCompare(pA->x.pList, pB->x.pList, iTab) ) return 2;  | 
 
| 
100880
 | 
 1381  | 
 67  | 
     if( pA->op!=TK_STRING && pA->op!=TK_TRUEFALSE ){  | 
 
| 
 | 
 1381  | 
 0  | 
     if( pA->op!=TK_STRING && pA->op!=TK_TRUEFALSE ){  | 
 
| 
100881
 | 
 1312  | 
 69  | 
       if( pA->iColumn!=pB->iColumn ) return 2;  | 
 
| 
100882
 | 
 2  | 
 67  | 
       if( pA->iTable!=pB->iTable   | 
 
| 
100883
 | 
 0  | 
 2  | 
        && (pA->iTable!=iTab || NEVER(pB->iTable>=0)) ) return 2;  | 
 
| 
 | 
 0  | 
 0  | 
        && (pA->iTable!=iTab || NEVER(pB->iTable>=0)) ) return 2;  | 
 
| 
100906
 | 
 1563  | 
 68  | 
   if( pA==0 && pB==0 ) return 0;  | 
 
| 
 | 
 1561  | 
 2  | 
   if( pA==0 && pB==0 ) return 0;  | 
 
| 
100907
 | 
 68  | 
 2  | 
   if( pA==0 || pB==0 ) return 1;  | 
 
| 
 | 
 11  | 
 57  | 
   if( pA==0 || pB==0 ) return 1;  | 
 
| 
100908
 | 
 0  | 
 57  | 
   if( pA->nExpr!=pB->nExpr ) return 1;  | 
 
| 
100909
 | 
 93  | 
 7  | 
   for(i=0; inExpr; i++){  | 
 
| 
100912
 | 
 1  | 
 92  | 
     if( pA->a[i].sortOrder!=pB->a[i].sortOrder ) return 1;  | 
 
| 
100913
 | 
 49  | 
 43  | 
     if( sqlite3ExprCompare(0, pExprA, pExprB, iTab) ) return 1;  | 
 
| 
100955
 | 
 0  | 
 0  | 
   if( sqlite3ExprCompare(pParse, pE1, pE2, iTab)==0 ){  | 
 
| 
100958
 | 
 0  | 
 0  | 
   if( pE2->op==TK_OR  | 
 
| 
100959
 | 
 0  | 
 0  | 
    && (sqlite3ExprImpliesExpr(pParse, pE1, pE2->pLeft, iTab)  | 
 
| 
100960
 | 
 0  | 
 0  | 
              || sqlite3ExprImpliesExpr(pParse, pE1, pE2->pRight, iTab) )  | 
 
| 
100964
 | 
 0  | 
 0  | 
   if( pE2->op==TK_NOTNULL && pE1->op!=TK_ISNULL && pE1->op!=TK_IS ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pE2->op==TK_NOTNULL && pE1->op!=TK_ISNULL && pE1->op!=TK_IS ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pE2->op==TK_NOTNULL && pE1->op!=TK_ISNULL && pE1->op!=TK_IS ){  | 
 
| 
100967
 | 
 0  | 
 0  | 
     if( sqlite3ExprCompare(pParse, pX, pE2->pLeft, iTab)==0 ) return 1;  | 
 
| 
100984
 | 
 0  | 
 0  | 
   if( ExprHasProperty(pExpr, EP_FromJoin) ) return WRC_Prune;  | 
 
| 
101004
 | 
 0  | 
 0  | 
       if( pWalker->u.iCur==pExpr->iTable ){  | 
 
| 
101025
 | 
 0  | 
 0  | 
       if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->y.pTab))  | 
 
| 
 | 
 0  | 
 0  | 
       if( (pExpr->pLeft->op==TK_COLUMN && IsVirtual(pExpr->pLeft->y.pTab))  | 
 
| 
101026
 | 
 0  | 
 0  | 
        || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->y.pTab))  | 
 
| 
 | 
 0  | 
 0  | 
        || (pExpr->pRight->op==TK_COLUMN && IsVirtual(pExpr->pRight->y.pTab))  | 
 
| 
101086
 | 
 43  | 
 99  | 
   if( pExpr->op==TK_COLUMN  | 
 
| 
101087
 | 
 43  | 
 0  | 
    && pExpr->iTable==pWalker->u.pIdxCover->iCur  | 
 
| 
101088
 | 
 0  | 
 43  | 
    && sqlite3ColumnOfIndex(pWalker->u.pIdxCover->pIdx, pExpr->iColumn)<0  | 
 
| 
101144
 | 
 0  | 
 50  | 
   if( pExpr->op==TK_COLUMN || NEVER(pExpr->op==TK_AGG_COLUMN) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pExpr->op==TK_COLUMN || NEVER(pExpr->op==TK_AGG_COLUMN) ){  | 
 
| 
101148
 | 
 50  | 
 0  | 
     int nSrc = pSrc ? pSrc->nSrc : 0;  | 
 
| 
101149
 | 
 50  | 
 0  | 
     for(i=0; i
 | 
 
| 
101150
 | 
 50  | 
 0  | 
       if( pExpr->iTable==pSrc->a[i].iCursor ) break;  | 
 
| 
101152
 | 
 50  | 
 0  | 
     if( i
 | 
 
| 
101178
 | 
 83  | 
 50  | 
   return cnt.nThis>0 || cnt.nOther==0;  | 
 
| 
 | 
 83  | 
 0  | 
   return cnt.nThis>0 || cnt.nOther==0;  | 
 
| 
101233
 | 
 59  | 
 0  | 
       if( ALWAYS(pSrcList!=0) ){  | 
 
| 
101235
 | 
 60  | 
 0  | 
         for(i=0; inSrc; i++, pItem++){  | 
 
| 
101238
 | 
 59  | 
 1  | 
           if( pExpr->iTable==pItem->iCursor ){  | 
 
| 
101247
 | 
 5  | 
 58  | 
             for(k=0; knColumn; k++, pCol++){  | 
 
| 
101248
 | 
 3  | 
 2  | 
               if( pCol->iTable==pExpr->iTable &&  | 
 
| 
 | 
 1  | 
 2  | 
               if( pCol->iTable==pExpr->iTable &&  | 
 
| 
101253
 | 
 58  | 
 1  | 
             if( (k>=pAggInfo->nColumn)  | 
 
| 
101254
 | 
 58  | 
 0  | 
              && (k = addAggInfoColumn(pParse->db, pAggInfo))>=0   | 
 
| 
101263
 | 
 10  | 
 48  | 
               if( pAggInfo->pGroupBy ){  | 
 
| 
101268
 | 
 10  | 
 3  | 
                 for(j=0; j
 | 
 
| 
101270
 | 
 10  | 
 0  | 
                   if( pE->op==TK_COLUMN && pE->iTable==pExpr->iTable &&  | 
 
| 
 | 
 9  | 
 1  | 
                   if( pE->op==TK_COLUMN && pE->iTable==pExpr->iTable &&  | 
 
| 
 | 
 7  | 
 2  | 
                   if( pE->op==TK_COLUMN && pE->iTable==pExpr->iTable &&  | 
 
| 
101277
 | 
 51  | 
 7  | 
               if( pCol->iSorterColumn<0 ){  | 
 
| 
101297
 | 
 134  | 
 0  | 
       if( (pNC->ncFlags & NC_InAggFunc)==0  | 
 
| 
101298
 | 
 134  | 
 0  | 
        && pWalker->walkerDepth==pExpr->op2  | 
 
| 
101304
 | 
 1  | 
 133  | 
         for(i=0; inFunc; i++, pItem++){  | 
 
| 
101305
 | 
 1  | 
 0  | 
           if( sqlite3ExprCompare(0, pItem->pExpr, pExpr, -1)==0 ){  | 
 
| 
101309
 | 
 133  | 
 1  | 
         if( i>=pAggInfo->nFunc ){  | 
 
| 
101314
 | 
 133  | 
 0  | 
           if( i>=0 ){  | 
 
| 
101320
 | 
 50  | 
 83  | 
             pItem->pFunc = sqlite3FindFunction(pParse->db,  | 
 
| 
101323
 | 
 0  | 
 133  | 
             if( pExpr->flags & EP_Distinct ){  | 
 
| 
101383
 | 
 185  | 
 214  | 
   if( pList ){  | 
 
| 
101384
 | 
 188  | 
 185  | 
     for(pItem=pList->a, i=0; inExpr; i++, pItem++){  | 
 
| 
101394
 | 
 3227  | 
 617  | 
   if( pParse->nTempReg==0 ){  | 
 
| 
101405
 | 
 1172  | 
 1010  | 
   if( iReg && pParse->nTempRegaTempReg) ){  | 
 
| 
 | 
 1172  | 
 0  | 
   if( iReg && pParse->nTempRegaTempReg) ){  | 
 
| 
101415
 | 
 144  | 
 62  | 
   if( nReg==1 ) return sqlite3GetTempReg(pParse);  | 
 
| 
101418
 | 
 1  | 
 61  | 
   if( nReg<=n ){  | 
 
| 
101428
 | 
 144  | 
 88  | 
   if( nReg==1 ){  | 
 
| 
101432
 | 
 14  | 
 74  | 
   if( nReg>pParse->nRangeReg ){  | 
 
| 
101502
 | 
 0  | 
 0  | 
   if( 0==sqlite3StrNICmp(zName, "sqlite_", 7) ){  | 
 
| 
101527
 | 
 0  | 
 0  | 
   if( bTemp==0 ){  | 
 
| 
101545
 | 
 0  | 
 0  | 
   if( v ){  | 
 
| 
101548
 | 
 0  | 
 0  | 
     if( iDb!=1 ) sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, 1, 0);  | 
 
| 
101573
 | 
 0  | 
 0  | 
   if( NEVER(db->mallocFailed) ) goto exit_rename_table;  | 
 
| 
101578
 | 
 0  | 
 0  | 
   if( !pTab ) goto exit_rename_table;  | 
 
| 
101585
 | 
 0  | 
 0  | 
   if( !zName ) goto exit_rename_table;  | 
 
| 
101590
 | 
 0  | 
 0  | 
   if( sqlite3FindTable(db, zName, zDb) || sqlite3FindIndex(db, zName, zDb) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( sqlite3FindTable(db, zName, zDb) || sqlite3FindIndex(db, zName, zDb) ){  | 
 
| 
101599
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=isSystemTable(pParse, pTab->zName) ){  | 
 
| 
101602
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){ goto  | 
 
| 
101607
 | 
 0  | 
 0  | 
   if( pTab->pSelect ){  | 
 
| 
101615
 | 
 0  | 
 0  | 
   if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){  | 
 
| 
101621
 | 
 0  | 
 0  | 
   if( sqlite3ViewGetColumnNames(pParse, pTab) ){  | 
 
| 
101624
 | 
 0  | 
 0  | 
   if( IsVirtual(pTab) ){  | 
 
| 
101626
 | 
 0  | 
 0  | 
     if( pVTab->pVtab->pModule->xRename==0 ){  | 
 
| 
101638
 | 
 0  | 
 0  | 
   if( v==0 ){  | 
 
| 
101677
 | 
 0  | 
 0  | 
   if( sqlite3FindTable(db, "sqlite_sequence", zDb) ){  | 
 
| 
101687
 | 
 0  | 
 0  | 
   if( iDb!=1 ){  | 
 
| 
101705
 | 
 0  | 
 0  | 
   if( pVTab ){  | 
 
| 
101744
 | 
 0  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ) return;  | 
 
| 
 | 
 0  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ) return;  | 
 
| 
101759
 | 
 0  | 
 0  | 
   if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){  | 
 
| 
101769
 | 
 0  | 
 0  | 
   if( pDflt && pDflt->pLeft->op==TK_NULL ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pDflt && pDflt->pLeft->op==TK_NULL ){  | 
 
| 
101777
 | 
 0  | 
 0  | 
   if( pCol->colFlags & COLFLAG_PRIMKEY ){  | 
 
| 
101781
 | 
 0  | 
 0  | 
   if( pNew->pIndex ){  | 
 
| 
101785
 | 
 0  | 
 0  | 
   if( (db->flags&SQLITE_ForeignKeys) && pNew->pFKey && pDflt ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (db->flags&SQLITE_ForeignKeys) && pNew->pFKey && pDflt ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (db->flags&SQLITE_ForeignKeys) && pNew->pFKey && pDflt ){  | 
 
| 
101790
 | 
 0  | 
 0  | 
   if( pCol->notNull && !pDflt ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pCol->notNull && !pDflt ){  | 
 
| 
101799
 | 
 0  | 
 0  | 
   if( pDflt ){  | 
 
| 
101804
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
101808
 | 
 0  | 
 0  | 
     if( !pVal ){  | 
 
| 
101817
 | 
 0  | 
 0  | 
   if( zCol ){  | 
 
| 
101820
 | 
 0  | 
 0  | 
     while( zEnd>zCol && (*zEnd==';' || sqlite3Isspace(*zEnd)) ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( zEnd>zCol && (*zEnd==';' || sqlite3Isspace(*zEnd)) ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( zEnd>zCol && (*zEnd==';' || sqlite3Isspace(*zEnd)) ){  | 
 
| 
101840
 | 
 0  | 
 0  | 
   if( v ){  | 
 
| 
101881
 | 
 0  | 
 0  | 
   if( db->mallocFailed ) goto exit_begin_add_column;  | 
 
| 
101883
 | 
 0  | 
 0  | 
   if( !pTab ) goto exit_begin_add_column;  | 
 
| 
101886
 | 
 0  | 
 0  | 
   if( IsVirtual(pTab) ){  | 
 
| 
101893
 | 
 0  | 
 0  | 
   if( pTab->pSelect ){  | 
 
| 
101897
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=isSystemTable(pParse, pTab->zName) ){  | 
 
| 
101912
 | 
 0  | 
 0  | 
   if( !pNew ) goto exit_begin_add_column;  | 
 
| 
101921
 | 
 0  | 
 0  | 
   if( !pNew->aCol || !pNew->zName ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !pNew->aCol || !pNew->zName ){  | 
 
| 
101926
 | 
 0  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
101953
 | 
 0  | 
 0  | 
   if( pTab->pSelect ){  | 
 
| 
101958
 | 
 0  | 
 0  | 
   if( IsVirtual(pTab) ){  | 
 
| 
101962
 | 
 0  | 
 0  | 
   if( zType ){  | 
 
| 
101996
 | 
 0  | 
 0  | 
   if( !pTab ) goto exit_rename_column;  | 
 
| 
101999
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=isSystemTable(pParse, pTab->zName) ) goto exit_rename_column;  | 
 
| 
102000
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=isRealTable(pParse, pTab) ) goto exit_rename_column;  | 
 
| 
102009
 | 
 0  | 
 0  | 
   if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){  | 
 
| 
102017
 | 
 0  | 
 0  | 
   if( !zOld ) goto exit_rename_column;  | 
 
| 
102018
 | 
 0  | 
 0  | 
   for(iCol=0; iColnCol; iCol++){  | 
 
| 
102019
 | 
 0  | 
 0  | 
     if( 0==sqlite3StrICmp(pTab->aCol[iCol].zName, zOld) ) break;  | 
 
| 
102021
 | 
 0  | 
 0  | 
   if( iCol==pTab->nCol ){  | 
 
| 
102031
 | 
 0  | 
 0  | 
   if( !zNew ) goto exit_rename_column;  | 
 
| 
102156
 | 
 0  | 
 0  | 
   if( pNew ){  | 
 
| 
102174
 | 
 0  | 
 0  | 
   for(p=pParse->pRename; p; p=p->pNext){  | 
 
| 
102175
 | 
 0  | 
 0  | 
     if( p->p==pFrom ){  | 
 
| 
102207
 | 
 0  | 
 0  | 
   if( pEList ){  | 
 
| 
102214
 | 
 0  | 
 0  | 
     for(i=0; inExpr; i++){  | 
 
| 
102226
 | 
 0  | 
 0  | 
   for(p=pToken; p; p=pNext){  | 
 
| 
102241
 | 
 0  | 
 0  | 
   for(pp=&pParse->pRename; (*pp); pp=&(*pp)->pNext){  | 
 
| 
102242
 | 
 0  | 
 0  | 
     if( (*pp)->p==pPtr ){  | 
 
| 
102275
 | 
 0  | 
 0  | 
   if( pExpr->op==TK_TRIGGER   | 
 
| 
102276
 | 
 0  | 
 0  | 
    && pExpr->iColumn==p->iCol   | 
 
| 
102277
 | 
 0  | 
 0  | 
    && pWalker->pParse->pTriggerTab==p->pTab  | 
 
| 
102280
 | 
 0  | 
 0  | 
   }else if( pExpr->op==TK_COLUMN   | 
 
| 
102281
 | 
 0  | 
 0  | 
    && pExpr->iColumn==p->iCol   | 
 
| 
102282
 | 
 0  | 
 0  | 
    && p->pTab==pExpr->y.pTab  | 
 
| 
102303
 | 
 0  | 
 0  | 
   for(pToken=pBest->pNext; pToken; pToken=pToken->pNext){  | 
 
| 
102304
 | 
 0  | 
 0  | 
     if( pToken->t.z>pBest->t.z ) pBest = pToken;  | 
 
| 
102306
 | 
 0  | 
 0  | 
   for(pp=&pCtx->pList; *pp!=pBest; pp=&(*pp)->pNext);  | 
 
| 
102330
 | 
 0  | 
 0  | 
   zErr = sqlite3_mprintf("error in %s %s%s: %s",   | 
 
| 
102350
 | 
 0  | 
 0  | 
   if( pEList ){  | 
 
| 
102352
 | 
 0  | 
 0  | 
     for(i=0; inExpr; i++){  | 
 
| 
102354
 | 
 0  | 
 0  | 
       if( 0==sqlite3_stricmp(zName, zOld) ){  | 
 
| 
102372
 | 
 0  | 
 0  | 
   if( pIdList ){  | 
 
| 
102374
 | 
 0  | 
 0  | 
     for(i=0; inId; i++){  | 
 
| 
102376
 | 
 0  | 
 0  | 
       if( 0==sqlite3_stricmp(zName, zOld) ){  | 
 
| 
102398
 | 
 0  | 
 0  | 
   db->init.iDb = bTemp ? 1 : sqlite3FindDbName(db, zDb);  | 
 
| 
102404
 | 
 0  | 
 0  | 
   p->eParseMode = (bTable ? PARSE_MODE_RENAME_TABLE : PARSE_MODE_RENAME_COLUMN);  | 
 
| 
102412
 | 
 0  | 
 0  | 
   if( db->mallocFailed ) rc = SQLITE_NOMEM;  | 
 
| 
102413
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK   | 
 
| 
102414
 | 
 0  | 
 0  | 
    && p->pNewTable==0 && p->pNewIndex==0 && p->pNewTrigger==0   | 
 
| 
 | 
 0  | 
 0  | 
    && p->pNewTable==0 && p->pNewIndex==0 && p->pNewTrigger==0   | 
 
| 
 | 
 0  | 
 0  | 
    && p->pNewTable==0 && p->pNewIndex==0 && p->pNewTrigger==0   | 
 
| 
102465
 | 
 0  | 
 0  | 
   if( zQuot==0 ){  | 
 
| 
102470
 | 
 0  | 
 0  | 
   if( bQuote ){  | 
 
| 
102481
 | 
 0  | 
 0  | 
   if( zOut ){  | 
 
| 
102484
 | 
 0  | 
 0  | 
     while( pRename->pList ){  | 
 
| 
102490
 | 
 0  | 
 0  | 
       if( sqlite3IsIdChar(*pBest->t.z) ){  | 
 
| 
102499
 | 
 0  | 
 0  | 
       if( pBest->t.n!=nReplace ){  | 
 
| 
102542
 | 
 0  | 
 0  | 
   if( ALWAYS(pParse->pTriggerTab) ){  | 
 
| 
102547
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pNew->pWhen ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pNew->pWhen ){  | 
 
| 
102551
 | 
 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){  | 
 
| 
102552
 | 
 0  | 
 0  | 
     if( pStep->pSelect ){  | 
 
| 
102554
 | 
 0  | 
 0  | 
       if( pParse->nErr ) rc = pParse->rc;  | 
 
| 
102556
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && pStep->zTarget ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && pStep->zTarget ){  | 
 
| 
102558
 | 
 0  | 
 0  | 
       if( pTarget==0 ){  | 
 
| 
102560
 | 
 0  | 
 0  | 
       }else if( SQLITE_OK==(rc = sqlite3ViewGetColumnNames(pParse, pTarget)) ){  | 
 
| 
102567
 | 
 0  | 
 0  | 
         if( pStep->pWhere ){  | 
 
| 
102570
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
102574
 | 
 0  | 
 0  | 
         if( pStep->pUpsert ){  | 
 
| 
102581
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
102585
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
102588
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
102610
 | 
 0  | 
 0  | 
   for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){  | 
 
| 
102614
 | 
 0  | 
 0  | 
     if( pStep->pUpsert ){  | 
 
| 
102630
 | 
 0  | 
 0  | 
   if( pParse->pVdbe ){  | 
 
| 
102634
 | 
 0  | 
 0  | 
   if( pParse->pNewIndex ) sqlite3FreeIndex(db, pParse->pNewIndex);  | 
 
| 
102690
 | 
 0  | 
 0  | 
   if( zSql==0 ) return;  | 
 
| 
102691
 | 
 0  | 
 0  | 
   if( zTable==0 ) return;  | 
 
| 
102692
 | 
 0  | 
 0  | 
   if( zNew==0 ) return;  | 
 
| 
102693
 | 
 0  | 
 0  | 
   if( iCol<0 ) return;  | 
 
| 
102696
 | 
 0  | 
 0  | 
   if( pTab==0 || iCol>=pTab->nCol ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab==0 || iCol>=pTab->nCol ){  | 
 
| 
102702
 | 
 0  | 
 0  | 
   sCtx.iCol = ((iCol==pTab->iPKey) ? -1 : iCol);  | 
 
| 
102717
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto renameColumnFunc_done;  | 
 
| 
102718
 | 
 0  | 
 0  | 
   if( sParse.pNewTable ){  | 
 
| 
102720
 | 
 0  | 
 0  | 
     if( pSelect ){  | 
 
| 
102723
 | 
 0  | 
 0  | 
       rc = (db->mallocFailed ? SQLITE_NOMEM : sParse.rc);  | 
 
| 
102724
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
102727
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) goto renameColumnFunc_done;  | 
 
| 
102734
 | 
 0  | 
 0  | 
       if( bFKOnly==0 ){  | 
 
| 
102738
 | 
 0  | 
 0  | 
         if( sCtx.iCol<0 ){  | 
 
| 
102742
 | 
 0  | 
 0  | 
         for(pIdx=sParse.pNewTable->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
102747
 | 
 0  | 
 0  | 
       for(pFKey=sParse.pNewTable->pFKey; pFKey; pFKey=pFKey->pNextFrom){  | 
 
| 
102748
 | 
 0  | 
 0  | 
         for(i=0; inCol; i++){  | 
 
| 
102749
 | 
 0  | 
 0  | 
           if( bFKOnly==0 && pFKey->aCol[i].iFrom==iCol ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( bFKOnly==0 && pFKey->aCol[i].iFrom==iCol ){  | 
 
| 
102752
 | 
 0  | 
 0  | 
           if( 0==sqlite3_stricmp(pFKey->zTo, zTable)  | 
 
| 
102753
 | 
 0  | 
 0  | 
            && 0==sqlite3_stricmp(pFKey->aCol[i].zCol, zOld)  | 
 
| 
102760
 | 
 0  | 
 0  | 
   }else if( sParse.pNewIndex ){  | 
 
| 
102766
 | 
 0  | 
 0  | 
     rc = renameResolveTrigger(&sParse, (bTemp ? 0 : zDb));  | 
 
| 
102767
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto renameColumnFunc_done;  | 
 
| 
102769
 | 
 0  | 
 0  | 
     for(pStep=sParse.pNewTrigger->step_list; pStep; pStep=pStep->pNext){  | 
 
| 
102770
 | 
 0  | 
 0  | 
       if( pStep->zTarget ){   | 
 
| 
102772
 | 
 0  | 
 0  | 
         if( pTarget==pTab ){  | 
 
| 
102773
 | 
 0  | 
 0  | 
           if( pStep->pUpsert ){  | 
 
| 
102785
 | 
 0  | 
 0  | 
     if( sParse.pTriggerTab==pTab ){  | 
 
| 
102797
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
102798
 | 
 0  | 
 0  | 
     if( sParse.zErrMsg ){  | 
 
| 
102818
 | 
 0  | 
 0  | 
   if( pExpr->op==TK_COLUMN && p->pTab==pExpr->y.pTab ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pExpr->op==TK_COLUMN && p->pTab==pExpr->y.pTab ){  | 
 
| 
102831
 | 
 0  | 
 0  | 
   for(i=0; inSrc; i++){  | 
 
| 
102833
 | 
 0  | 
 0  | 
     if( pItem->pTab==p->pTab ){  | 
 
| 
102874
 | 
 0  | 
 0  | 
   if( zInput && zOld && zNew ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zInput && zOld && zNew ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zInput && zOld && zNew ){  | 
 
| 
102898
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
102900
 | 
 0  | 
 0  | 
       if( sParse.pNewTable ){  | 
 
| 
102903
 | 
 0  | 
 0  | 
         if( pTab->pSelect ){  | 
 
| 
102904
 | 
 0  | 
 0  | 
           if( isLegacy==0 ){  | 
 
| 
102910
 | 
 0  | 
 0  | 
             if( sParse.nErr ) rc = sParse.rc;  | 
 
| 
102916
 | 
 0  | 
 0  | 
           if( isLegacy==0 || (db->flags & SQLITE_ForeignKeys) ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( isLegacy==0 || (db->flags & SQLITE_ForeignKeys) ){  | 
 
| 
102918
 | 
 0  | 
 0  | 
             for(pFKey=pTab->pFKey; pFKey; pFKey=pFKey->pNextFrom){  | 
 
| 
102919
 | 
 0  | 
 0  | 
               if( sqlite3_stricmp(pFKey->zTo, zOld)==0 ){  | 
 
| 
102929
 | 
 0  | 
 0  | 
           if( sqlite3_stricmp(zOld, pTab->zName)==0 ){  | 
 
| 
102931
 | 
 0  | 
 0  | 
             if( isLegacy==0 ){  | 
 
| 
102939
 | 
 0  | 
 0  | 
       else if( sParse.pNewIndex ){  | 
 
| 
102941
 | 
 0  | 
 0  | 
         if( isLegacy==0 ){  | 
 
| 
102950
 | 
 0  | 
 0  | 
         if( 0==sqlite3_stricmp(sParse.pNewTrigger->table, zOld)   | 
 
| 
102951
 | 
 0  | 
 0  | 
             && sCtx.pTab->pSchema==pTrigger->pTabSchema  | 
 
| 
102956
 | 
 0  | 
 0  | 
         if( isLegacy==0 ){  | 
 
| 
102957
 | 
 0  | 
 0  | 
           rc = renameResolveTrigger(&sParse, bTemp ? 0 : zDb);  | 
 
| 
102958
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
102960
 | 
 0  | 
 0  | 
             for(pStep=pTrigger->step_list; pStep; pStep=pStep->pNext){  | 
 
| 
102961
 | 
 0  | 
 0  | 
               if( pStep->zTarget && 0==sqlite3_stricmp(pStep->zTarget, zOld) ){  | 
 
| 
 | 
 0  | 
 0  | 
               if( pStep->zTarget && 0==sqlite3_stricmp(pStep->zTarget, zOld) ){  | 
 
| 
102971
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
102974
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
102975
 | 
 0  | 
 0  | 
       if( sParse.zErrMsg ){  | 
 
| 
103029
 | 
 0  | 
 0  | 
   if( zDb && zInput ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zDb && zInput ){  | 
 
| 
103033
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
103034
 | 
 0  | 
 0  | 
       if( isLegacy==0 && sParse.pNewTable && sParse.pNewTable->pSelect ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( isLegacy==0 && sParse.pNewTable && sParse.pNewTable->pSelect ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( isLegacy==0 && sParse.pNewTable && sParse.pNewTable->pSelect ){  | 
 
| 
103039
 | 
 0  | 
 0  | 
         if( sParse.nErr ) rc = sParse.rc;  | 
 
| 
103042
 | 
 0  | 
 0  | 
       else if( sParse.pNewTrigger ){  | 
 
| 
103043
 | 
 0  | 
 0  | 
         if( isLegacy==0 ){  | 
 
| 
103044
 | 
 0  | 
 0  | 
           rc = renameResolveTrigger(&sParse, bTemp ? 0 : zDb);  | 
 
| 
103046
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
103049
 | 
 0  | 
 0  | 
           if( i1==i2 ) sqlite3_result_int(context, 1);  | 
 
| 
103054
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
103281
 | 
 0  | 
 1  | 
   if( v==0 ) return;  | 
 
| 
103289
 | 
 3  | 
 1  | 
   for(i=0; i
 | 
 
| 
103292
 | 
 3  | 
 0  | 
     if( (pStat = sqlite3FindTable(db, zTab, pDb->zDbSName))==0 ){  | 
 
| 
103293
 | 
 1  | 
 2  | 
       if( aTable[i].zCols ){  | 
 
| 
103311
 | 
 0  | 
 0  | 
       if( zWhere ){  | 
 
| 
103328
 | 
 1  | 
 1  | 
   for(i=0; aTable[i].zCols; i++){  | 
 
| 
103514
 | 
 0  | 
 0  | 
   if( p==0 ){  | 
 
| 
103824
 | 
 0  | 
 0  | 
   if( p->nRow==0 ){  | 
 
| 
103826
 | 
 0  | 
 0  | 
     for(i=0; inCol; i++) p->current.anEq[i] = 1;  | 
 
| 
103833
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
103836
 | 
 0  | 
 0  | 
     for(i=iChng; inCol; i++){  | 
 
| 
103958
 | 
 0  | 
 0  | 
     if( zRet==0 ){  | 
 
| 
103965
 | 
 0  | 
 0  | 
     for(i=0; inKeyCol; i++){  | 
 
| 
104093
 | 
 2  | 
 0  | 
   if( v==0 || NEVER(pTab==0) ){  | 
 
| 
 | 
 0  | 
 2  | 
   if( v==0 || NEVER(pTab==0) ){  | 
 
| 
104096
 | 
 0  | 
 2  | 
   if( pTab->tnum==0 ){  | 
 
| 
104100
 | 
 1  | 
 1  | 
   if( sqlite3_strlike("sqlite\\_%", pTab->zName, '\\')==0 ){  | 
 
| 
104109
 | 
 0  | 
 1  | 
   if( sqlite3AuthCheck(pParse, SQLITE_ANALYZE, pTab->zName, 0,  | 
 
| 
104138
 | 
 0  | 
 1  | 
   for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
104145
 | 
 0  | 
 0  | 
     if( pOnlyIdx && pOnlyIdx!=pIdx ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
     if( pOnlyIdx && pOnlyIdx!=pIdx ) continue;  | 
 
| 
104146
 | 
 0  | 
 0  | 
     if( pIdx->pPartIdxWhere==0 ) needTableCnt = 0;  | 
 
| 
104147
 | 
 0  | 
 0  | 
     if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIdx) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIdx) ){  | 
 
| 
104154
 | 
 0  | 
 0  | 
       nColTest = pIdx->uniqNotNull ? pIdx->nKeyCol-1 : nCol-1;  | 
 
| 
104237
 | 
 0  | 
 0  | 
     if( nColTest>0 ){  | 
 
| 
104241
 | 
 0  | 
 0  | 
       if( aGotoChng==0 ) continue;  | 
 
| 
104255
 | 
 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) ){  | 
 
| 
104262
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
104283
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
104381
 | 
 1  | 
 0  | 
   if( pOnlyIdx==0 && needTableCnt ){  | 
 
| 
 | 
 1  | 
 0  | 
   if( pOnlyIdx==0 && needTableCnt ){  | 
 
| 
104405
 | 
 1  | 
 0  | 
   if( v ){  | 
 
| 
104428
 | 
 2  | 
 1  | 
   for(k=sqliteHashFirst(&pSchema->tblHash); k; k=sqliteHashNext(k)){  | 
 
| 
104450
 | 
 0  | 
 0  | 
   if( pOnlyIdx ){  | 
 
| 
104484
 | 
 0  | 
 1  | 
   if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){  | 
 
| 
104489
 | 
 1  | 
 0  | 
   if( pName1==0 ){  | 
 
| 
104491
 | 
 2  | 
 1  | 
     for(i=0; inDb; i++){  | 
 
| 
104492
 | 
 1  | 
 1  | 
       if( i==1 ) continue;  /* Do not analyze the TEMP database */  | 
 
| 
104495
 | 
 0  | 
 0  | 
   }else if( pName2->n==0 && (iDb = sqlite3FindDb(db, pName1))>=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( pName2->n==0 && (iDb = sqlite3FindDb(db, pName1))>=0 ){  | 
 
| 
104501
 | 
 0  | 
 0  | 
     if( iDb>=0 ){  | 
 
| 
104502
 | 
 0  | 
 0  | 
       zDb = pName2->n ? db->aDb[iDb].zDbSName : 0;  | 
 
| 
104504
 | 
 0  | 
 0  | 
       if( z ){  | 
 
| 
104505
 | 
 0  | 
 0  | 
         if( (pIdx = sqlite3FindIndex(db, z, zDb))!=0 ){  | 
 
| 
104507
 | 
 0  | 
 0  | 
         }else if( (pTab = sqlite3LocateTable(pParse, 0, z, zDb))!=0 ){  | 
 
| 
104514
 | 
 1  | 
 0  | 
   if( db->nSqlExec==0 && (v = sqlite3GetVdbe(pParse))!=0 ){  | 
 
| 
 | 
 1  | 
 0  | 
   if( db->nSqlExec==0 && (v = sqlite3GetVdbe(pParse))!=0 ){  | 
 
| 
104551
 | 
 0  | 
 0  | 
   for(i=0; *z && i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; *z && i
 | 
 
| 
104553
 | 
 0  | 
 0  | 
     while( (c=z[0])>='0' && c<='9' ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( (c=z[0])>='0' && c<='9' ){  | 
 
| 
104566
 | 
 0  | 
 0  | 
     if( *z==' ' ) z++;  | 
 
| 
104575
 | 
 0  | 
 0  | 
     while( z[0] ){  | 
 
| 
104576
 | 
 0  | 
 0  | 
       if( sqlite3_strglob("unordered*", z)==0 ){  | 
 
| 
104578
 | 
 0  | 
 0  | 
       }else if( sqlite3_strglob("sz=[0-9]*", z)==0 ){  | 
 
| 
104580
 | 
 0  | 
 0  | 
       }else if( sqlite3_strglob("noskipscan*", z)==0 ){  | 
 
| 
104588
 | 
 0  | 
 0  | 
       while( z[0]!=0 && z[0]!=' ' ) z++;  | 
 
| 
 | 
 0  | 
 0  | 
       while( z[0]!=0 && z[0]!=' ' ) z++;  | 
 
| 
104589
 | 
 0  | 
 0  | 
       while( z[0]==' ' ) z++;  | 
 
| 
104614
 | 
 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 ){  | 
 
| 
104618
 | 
 0  | 
 0  | 
   if( pTable==0 ){  | 
 
| 
104621
 | 
 0  | 
 0  | 
   if( argv[1]==0 ){  | 
 
| 
104623
 | 
 0  | 
 0  | 
   }else if( sqlite3_stricmp(argv[0],argv[1])==0 ){  | 
 
| 
104630
 | 
 0  | 
 0  | 
   if( pIndex ){  | 
 
| 
104646
 | 
 0  | 
 0  | 
     if( pIndex->pPartIdxWhere==0 ){  | 
 
| 
104960
 | 
 221  | 
 187  | 
   for(i=sqliteHashFirst(&pSchema->tblHash); i; i=sqliteHashNext(i)){  | 
 
| 
104964
 | 
 0  | 
 187  | 
   for(i=sqliteHashFirst(&pSchema->idxHash); i; i=sqliteHashNext(i)){  | 
 
| 
104976
 | 
 1  | 
 186  | 
   if( sqlite3FindTable(db, "sqlite_stat1", sInfo.zDatabase)!=0 ){  | 
 
| 
104979
 | 
 0  | 
 1  | 
     if( zSql==0 ){  | 
 
| 
104989
 | 
 0  | 
 187  | 
   for(i=sqliteHashFirst(&pSchema->idxHash); i; i=sqliteHashNext(i)){  | 
 
| 
104991
 | 
 0  | 
 0  | 
     if( !pIdx->hasStat1 ) sqlite3DefaultRowEst(pIdx);  | 
 
| 
105008
 | 
 0  | 
 187  | 
   if( rc==SQLITE_NOMEM ){  | 
 
| 
105056
 | 
 10  | 
 5  | 
   if( pExpr ){  | 
 
| 
105057
 | 
 3  | 
 7  | 
     if( pExpr->op!=TK_ID ){  | 
 
| 
105102
 | 
 0  | 
 5  | 
   if( zFile==0 ) zFile = "";  | 
 
| 
105103
 | 
 0  | 
 5  | 
   if( zName==0 ) zName = "";  | 
 
| 
105131
 | 
 0  | 
 5  | 
     if( db->nDb>=db->aLimit[SQLITE_LIMIT_ATTACHED]+2 ){  | 
 
| 
105137
 | 
 10  | 
 5  | 
     for(i=0; inDb; i++){  | 
 
| 
105140
 | 
 0  | 
 10  | 
       if( sqlite3StrICmp(z, zName)==0 ){  | 
 
| 
105149
 | 
 5  | 
 0  | 
     if( db->aDb==db->aDbStatic ){  | 
 
| 
105151
 | 
 0  | 
 5  | 
       if( aNew==0 ) return;  | 
 
| 
105155
 | 
 0  | 
 0  | 
       if( aNew==0 ) return;  | 
 
| 
105167
 | 
 0  | 
 5  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
105168
 | 
 0  | 
 0  | 
       if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);  | 
 
| 
105180
 | 
 0  | 
 5  | 
   if( rc==SQLITE_CONSTRAINT ){  | 
 
| 
105183
 | 
 5  | 
 0  | 
   }else if( rc==SQLITE_OK ){  | 
 
| 
105186
 | 
 0  | 
 5  | 
     if( !pNew->pSchema ){  | 
 
| 
105188
 | 
 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) ){  | 
 
| 
105206
 | 
 5  | 
 0  | 
   if( rc==SQLITE_OK && pNew->zDbSName==0 ){  | 
 
| 
 | 
 0  | 
 5  | 
   if( rc==SQLITE_OK && pNew->zDbSName==0 ){  | 
 
| 
105248
 | 
 5  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
105265
 | 
 0  | 
 5  | 
   if( rc ){  | 
 
| 
105269
 | 
 0  | 
 0  | 
       if( db->aDb[iDb].pBt ){  | 
 
| 
105276
 | 
 0  | 
 0  | 
       if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
105280
 | 
 0  | 
 0  | 
       }else if( zErrDyn==0 ){  | 
 
| 
105291
 | 
 0  | 
 0  | 
   if( zErrDyn ){  | 
 
| 
105295
 | 
 0  | 
 0  | 
   if( rc ) sqlite3_result_error_code(context, rc);  | 
 
| 
105319
 | 
 0  | 
 0  | 
   if( zName==0 ) zName = "";  | 
 
| 
105320
 | 
 0  | 
 0  | 
   for(i=0; inDb; i++){  | 
 
| 
105322
 | 
 0  | 
 0  | 
     if( pDb->pBt==0 ) continue;  | 
 
| 
105323
 | 
 0  | 
 0  | 
     if( sqlite3StrICmp(pDb->zDbSName, zName)==0 ) break;  | 
 
| 
105326
 | 
 0  | 
 0  | 
   if( i>=db->nDb ){  | 
 
| 
105330
 | 
 0  | 
 0  | 
   if( i<2 ){  | 
 
| 
105334
 | 
 0  | 
 0  | 
   if( sqlite3BtreeIsInReadTrans(pDb->pBt) || sqlite3BtreeIsInBackup(pDb->pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( sqlite3BtreeIsInReadTrans(pDb->pBt) || sqlite3BtreeIsInBackup(pDb->pBt) ){  | 
 
| 
105368
 | 
 0  | 
 5  | 
   if( pParse->nErr ) goto attach_end;  | 
 
| 
105372
 | 
 5  | 
 0  | 
   if(   | 
 
| 
105373
 | 
 5  | 
 0  | 
       SQLITE_OK!=(rc = resolveAttachExpr(&sName, pFilename)) ||  | 
 
| 
105374
 | 
 5  | 
 0  | 
       SQLITE_OK!=(rc = resolveAttachExpr(&sName, pDbname)) ||  | 
 
| 
105381
 | 
 5  | 
 0  | 
   if( pAuthArg ){  | 
 
| 
105383
 | 
 5  | 
 0  | 
     if( pAuthArg->op==TK_STRING ){  | 
 
| 
105389
 | 
 0  | 
 5  | 
     if(rc!=SQLITE_OK ){  | 
 
| 
105403
 | 
 5  | 
 0  | 
   if( v ){  | 
 
| 
105508
 | 
 0  | 
 10  | 
   if( NEVER(pList==0) ) return 0;  | 
 
| 
105510
 | 
 10  | 
 10  | 
   for(i=0, pItem=pList->a; inSrc; i++, pItem++){  | 
 
| 
105511
 | 
 10  | 
 0  | 
     if( pFix->bVarOnly==0 ){  | 
 
| 
105512
 | 
 0  | 
 10  | 
       if( pItem->zDatabase && sqlite3StrICmp(pItem->zDatabase, zDb) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pItem->zDatabase && sqlite3StrICmp(pItem->zDatabase, zDb) ){  | 
 
| 
105523
 | 
 0  | 
 10  | 
     if( sqlite3FixSelect(pFix, pItem->pSelect) ) return 1;  | 
 
| 
105524
 | 
 0  | 
 10  | 
     if( sqlite3FixExpr(pFix, pItem->pOn) ) return 1;  | 
 
| 
105526
 | 
 0  | 
 10  | 
     if( pItem->fg.isTabFunc && sqlite3FixExprList(pFix, pItem->u1.pFuncArg) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pItem->fg.isTabFunc && sqlite3FixExprList(pFix, pItem->u1.pFuncArg) ){  | 
 
| 
105537
 | 
 0  | 
 10  | 
   while( pSelect ){  | 
 
| 
105538
 | 
 0  | 
 0  | 
     if( sqlite3FixExprList(pFix, pSelect->pEList) ){  | 
 
| 
105541
 | 
 0  | 
 0  | 
     if( sqlite3FixSrcList(pFix, pSelect->pSrc) ){  | 
 
| 
105544
 | 
 0  | 
 0  | 
     if( sqlite3FixExpr(pFix, pSelect->pWhere) ){  | 
 
| 
105547
 | 
 0  | 
 0  | 
     if( sqlite3FixExprList(pFix, pSelect->pGroupBy) ){  | 
 
| 
105550
 | 
 0  | 
 0  | 
     if( sqlite3FixExpr(pFix, pSelect->pHaving) ){  | 
 
| 
105553
 | 
 0  | 
 0  | 
     if( sqlite3FixExprList(pFix, pSelect->pOrderBy) ){  | 
 
| 
105556
 | 
 0  | 
 0  | 
     if( sqlite3FixExpr(pFix, pSelect->pLimit) ){  | 
 
| 
105559
 | 
 0  | 
 0  | 
     if( pSelect->pWith ){  | 
 
| 
105561
 | 
 0  | 
 0  | 
       for(i=0; ipWith->nCte; i++){  | 
 
| 
105562
 | 
 0  | 
 0  | 
         if( sqlite3FixSelect(pFix, pSelect->pWith->a[i].pSelect) ){  | 
 
| 
105575
 | 
 0  | 
 10  | 
   while( pExpr ){  | 
 
| 
105576
 | 
 0  | 
 0  | 
     if( pExpr->op==TK_VARIABLE ){  | 
 
| 
105577
 | 
 0  | 
 0  | 
       if( pFix->pParse->db->init.busy ){  | 
 
| 
105584
 | 
 0  | 
 0  | 
     if( ExprHasProperty(pExpr, EP_TokenOnly|EP_Leaf) ) break;  | 
 
| 
105585
 | 
 0  | 
 0  | 
     if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
105586
 | 
 0  | 
 0  | 
       if( sqlite3FixSelect(pFix, pExpr->x.pSelect) ) return 1;  | 
 
| 
105588
 | 
 0  | 
 0  | 
       if( sqlite3FixExprList(pFix, pExpr->x.pList) ) return 1;  | 
 
| 
105590
 | 
 0  | 
 0  | 
     if( sqlite3FixExpr(pFix, pExpr->pRight) ){  | 
 
| 
105603
 | 
 0  | 
 0  | 
   if( pList==0 ) return 0;  | 
 
| 
105604
 | 
 0  | 
 0  | 
   for(i=0, pItem=pList->a; inExpr; i++, pItem++){  | 
 
| 
105605
 | 
 0  | 
 0  | 
     if( sqlite3FixExpr(pFix, pItem->pExpr) ){  | 
 
| 
105618
 | 
 0  | 
 0  | 
   while( pStep ){  | 
 
| 
105619
 | 
 0  | 
 0  | 
     if( sqlite3FixSelect(pFix, pStep->pSelect) ){  | 
 
| 
105622
 | 
 0  | 
 0  | 
     if( sqlite3FixExpr(pFix, pStep->pWhere) ){  | 
 
| 
105625
 | 
 0  | 
 0  | 
     if( sqlite3FixExprList(pFix, pStep->pExprList) ){  | 
 
| 
105629
 | 
 0  | 
 0  | 
     if( pStep->pUpsert ){  | 
 
| 
105631
 | 
 0  | 
 0  | 
       if( sqlite3FixExprList(pFix, pUp->pUpsertTarget)  | 
 
| 
105632
 | 
 0  | 
 0  | 
        || sqlite3FixExpr(pFix, pUp->pUpsertTargetWhere)  | 
 
| 
105633
 | 
 0  | 
 0  | 
        || sqlite3FixExprList(pFix, pUp->pUpsertSet)  | 
 
| 
105634
 | 
 0  | 
 0  | 
        || sqlite3FixExpr(pFix, pUp->pUpsertWhere)  | 
 
| 
105761
 | 
 0  | 
 0  | 
   if( db->init.busy ) return SQLITE_OK;  | 
 
| 
105767
 | 
 0  | 
 0  | 
   if( rc==SQLITE_DENY ){  | 
 
| 
105769
 | 
 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);  | 
 
| 
105772
 | 
 0  | 
 0  | 
   }else if( rc!=SQLITE_IGNORE && rc!=SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( rc!=SQLITE_IGNORE && rc!=SQLITE_OK ){  | 
 
| 
105802
 | 
 4092  | 
 0  | 
   if( db->xAuth==0 ) return;  | 
 
| 
105804
 | 
 0  | 
 0  | 
   if( iDb<0 ){  | 
 
| 
105810
 | 
 0  | 
 0  | 
   if( pExpr->op==TK_TRIGGER ){  | 
 
| 
105814
 | 
 0  | 
 0  | 
     for(iSrc=0; ALWAYS(iSrcnSrc); iSrc++){  | 
 
| 
105815
 | 
 0  | 
 0  | 
       if( pExpr->iTable==pTabList->a[iSrc].iCursor ){  | 
 
| 
105822
 | 
 0  | 
 0  | 
   if( NEVER(pTab==0) ) return;  | 
 
| 
105824
 | 
 0  | 
 0  | 
   if( iCol>=0 ){  | 
 
| 
105827
 | 
 0  | 
 0  | 
   }else if( pTab->iPKey>=0 ){  | 
 
| 
105834
 | 
 0  | 
 0  | 
   if( SQLITE_IGNORE==sqlite3AuthReadCol(pParse, pTab->zName, zCol, iDb) ){  | 
 
| 
105859
 | 
 6811  | 
 1704  | 
   if( db->init.busy || IN_SPECIAL_PARSE ){  | 
 
| 
 | 
 18  | 
 6793  | 
   if( db->init.busy || IN_SPECIAL_PARSE ){  | 
 
| 
105863
 | 
 6789  | 
 4  | 
   if( db->xAuth==0 ){  | 
 
| 
105883
 | 
 2  | 
 2  | 
   if( rc==SQLITE_DENY ){  | 
 
| 
105886
 | 
 0  | 
 2  | 
   }else if( rc!=SQLITE_OK && rc!=SQLITE_IGNORE ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( rc!=SQLITE_OK && rc!=SQLITE_IGNORE ){  | 
 
| 
105914
 | 
 0  | 
 293  | 
   if( pContext->pParse ){  | 
 
| 
105979
 | 
 0  | 
 4518  | 
   Parse *pToplevel = sqlite3ParseToplevel(pParse);  | 
 
| 
105985
 | 
 2501  | 
 2017  | 
   if( iDb==1 ) return;  | 
 
| 
105986
 | 
 2017  | 
 0  | 
   if( !sqlite3BtreeSharable(pParse->db->aDb[iDb].pBt) ) return;  | 
 
| 
105987
 | 
 0  | 
 0  | 
   for(i=0; inTableLock; i++){  | 
 
| 
105989
 | 
 0  | 
 0  | 
     if( p->iDb==iDb && p->iTab==iTab ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->iDb==iDb && p->iTab==iTab ){  | 
 
| 
105990
 | 
 0  | 
 0  | 
       p->isWriteLock = (p->isWriteLock || isWriteLock);  | 
 
| 
 | 
 0  | 
 0  | 
       p->isWriteLock = (p->isWriteLock || isWriteLock);  | 
 
| 
105998
 | 
 0  | 
 0  | 
   if( pToplevel->aTableLock ){  | 
 
| 
106021
 | 
 0  | 
 4397  | 
   for(i=0; inTableLock; i++){  | 
 
| 
106061
 | 
 278  | 
 5422  | 
   if( pParse->nested ) return;  | 
 
| 
106062
 | 
 5422  | 
 0  | 
   if( db->mallocFailed || pParse->nErr ){  | 
 
| 
 | 
 8  | 
 5414  | 
   if( db->mallocFailed || pParse->nErr ){  | 
 
| 
106063
 | 
 0  | 
 8  | 
     if( pParse->rc==SQLITE_OK ) pParse->rc = SQLITE_ERROR;  | 
 
| 
106073
 | 
 5414  | 
 0  | 
   if( v ){  | 
 
| 
106093
 | 
 5414  | 
 0  | 
     if( db->mallocFailed==0   | 
 
| 
106094
 | 
 1368  | 
 4046  | 
      && (DbMaskNonZero(pParse->cookieMask) || pParse->pConstExpr)  | 
 
| 
 | 
 351  | 
 1017  | 
      && (DbMaskNonZero(pParse->cookieMask) || pParse->pConstExpr)  | 
 
| 
106099
 | 
 8905  | 
 4397  | 
       for(iDb=0; iDbnDb; iDb++){  | 
 
| 
106101
 | 
 4828  | 
 4077  | 
         if( DbMaskTest(pParse->cookieMask, iDb)==0 ) continue;  | 
 
| 
106111
 | 
 3673  | 
 404  | 
         if( db->init.busy==0 ) sqlite3VdbeChangeP5(v, 1);  | 
 
| 
106116
 | 
 17  | 
 4397  | 
       for(i=0; inVtabLock; i++){  | 
 
| 
106134
 | 
 815  | 
 3582  | 
       if( pParse->pConstExpr ){  | 
 
| 
106137
 | 
 1441  | 
 815  | 
         for(i=0; inExpr; i++){  | 
 
| 
106150
 | 
 5414  | 
 0  | 
   if( v && pParse->nErr==0 && !db->mallocFailed ){  | 
 
| 
 | 
 5414  | 
 0  | 
   if( v && pParse->nErr==0 && !db->mallocFailed ){  | 
 
| 
 | 
 5414  | 
 0  | 
   if( v && pParse->nErr==0 && !db->mallocFailed ){  | 
 
| 
106153
 | 
 2  | 
 5412  | 
     if( pParse->pAinc!=0 && pParse->nTab==0 ) pParse->nTab = 1;  | 
 
| 
 | 
 0  | 
 2  | 
     if( pParse->pAinc!=0 && pParse->nTab==0 ) pParse->nTab = 1;  | 
 
| 
106180
 | 
 0  | 
 278  | 
   if( pParse->nErr ) return;  | 
 
| 
106185
 | 
 0  | 
 278  | 
   if( zSql==0 ){  | 
 
| 
106234
 | 
 9257  | 
 1566  | 
     for(i=OMIT_TEMPDB; inDb; i++){  | 
 
| 
106235
 | 
 9166  | 
 91  | 
       int j = (i<2) ? i^1 : i;   /* Search TEMP before MAIN */  | 
 
| 
106236
 | 
 3992  | 
 5265  | 
       if( zDatabase==0 || sqlite3StrICmp(zDatabase, db->aDb[j].zDbSName)==0 ){  | 
 
| 
 | 
 1980  | 
 2012  | 
       if( zDatabase==0 || sqlite3StrICmp(zDatabase, db->aDb[j].zDbSName)==0 ){  | 
 
| 
106239
 | 
 4244  | 
 3001  | 
         if( p ) return p;  | 
 
| 
106244
 | 
 1329  | 
 237  | 
     if( sqlite3StrICmp(zName, MASTER_NAME)!=0 ) break;  | 
 
| 
106245
 | 
 186  | 
 51  | 
     if( sqlite3_stricmp(zDatabase, db->aDb[1].zDbSName)!=0 ) break;  | 
 
| 
106272
 | 
 4156  | 
 0  | 
   if( (db->mDbFlags & DBFLAG_SchemaKnownOk)==0   | 
 
| 
106273
 | 
 0  | 
 4156  | 
    && SQLITE_OK!=sqlite3ReadSchema(pParse)  | 
 
| 
106279
 | 
 9  | 
 4147  | 
   if( p==0 ){  | 
 
| 
106280
 | 
 0  | 
 9  | 
     const char *zMsg = flags & LOCATE_VIEW ? "no such view" : "no such table";  | 
 
| 
106286
 | 
 9  | 
 0  | 
     if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){  | 
 
| 
 | 
 0  | 
 9  | 
     if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){  | 
 
| 
106289
 | 
 0  | 
 9  | 
     if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){  | 
 
| 
106293
 | 
 7  | 
 2  | 
     if( (flags & LOCATE_NOERR)==0 ){  | 
 
| 
106294
 | 
 0  | 
 7  | 
       if( zDbase ){  | 
 
| 
106322
 | 
 10  | 
 4068  | 
   if( p->pSchema ){  | 
 
| 
106348
 | 
 1825  | 
 850  | 
   for(i=OMIT_TEMPDB; inDb; i++){  | 
 
| 
106349
 | 
 1789  | 
 36  | 
     int j = (i<2) ? i^1 : i;  /* Search TEMP before MAIN */  | 
 
| 
106352
 | 
 1825  | 
 0  | 
     if( zDb && sqlite3StrICmp(zDb, db->aDb[j].zDbSName) ) continue;  | 
 
| 
 | 
 930  | 
 895  | 
     if( zDb && sqlite3StrICmp(zDb, db->aDb[j].zDbSName) ) continue;  | 
 
| 
106355
 | 
 45  | 
 850  | 
     if( p ) break;  | 
 
| 
106370
 | 
 0  | 
 76  | 
   if( p->isResized ) sqlite3DbFree(db, (void *)p->azColl);  | 
 
| 
106390
 | 
 0  | 
 0  | 
   if( ALWAYS(pIndex) ){  | 
 
| 
106391
 | 
 0  | 
 0  | 
     if( pIndex->pTable->pIndex==pIndex ){  | 
 
| 
106398
 | 
 0  | 
 0  | 
       while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; }  | 
 
| 
 | 
 0  | 
 0  | 
       while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; }  | 
 
| 
106399
 | 
 0  | 
 0  | 
       if( ALWAYS(p && p->pNext==pIndex) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( ALWAYS(p && p->pNext==pIndex) ){  | 
 
| 
106418
 | 
 5  | 
 265  | 
   for(i=j=2; inDb; i++){  | 
 
| 
106420
 | 
 5  | 
 0  | 
     if( pDb->pBt==0 ){  | 
 
| 
106425
 | 
 0  | 
 0  | 
     if( j
 | 
 
| 
106431
 | 
 265  | 
 0  | 
   if( db->nDb<=2 && db->aDb!=db->aDbStatic ){  | 
 
| 
 | 
 5  | 
 260  | 
   if( db->nDb<=2 && db->aDb!=db->aDbStatic ){  | 
 
| 
106447
 | 
 0  | 
 0  | 
   if( iDb>=0 ){  | 
 
| 
106454
 | 
 0  | 
 0  | 
   if( db->nSchemaLock==0 ){  | 
 
| 
106455
 | 
 0  | 
 0  | 
     for(i=0; inDb; i++){  | 
 
| 
106456
 | 
 0  | 
 0  | 
       if( DbHasProperty(db, i, DB_ResetWanted) ){  | 
 
| 
106470
 | 
 20  | 
 10  | 
   for(i=0; inDb; i++){  | 
 
| 
106472
 | 
 20  | 
 0  | 
     if( pDb->pSchema ){  | 
 
| 
106473
 | 
 20  | 
 0  | 
       if( db->nSchemaLock==0 ){  | 
 
| 
106483
 | 
 10  | 
 0  | 
   if( db->nSchemaLock==0 ){  | 
 
| 
106503
 | 
 852  | 
 20  | 
   if( (pCol = pTable->aCol)!=0 ){  | 
 
| 
106504
 | 
 2916  | 
 852  | 
     for(i=0; inCol; i++, pCol++){  | 
 
| 
106542
 | 
 71  | 
 872  | 
   for(pIndex = pTable->pIndex; pIndex; pIndex=pNext){  | 
 
| 
106546
 | 
 33  | 
 38  | 
     if( (db==0 || db->pnBytesFreed==0) && !IsVirtual(pTable) ){  | 
 
| 
 | 
 33  | 
 0  | 
     if( (db==0 || db->pnBytesFreed==0) && !IsVirtual(pTable) ){  | 
 
| 
 | 
 71  | 
 0  | 
     if( (db==0 || db->pnBytesFreed==0) && !IsVirtual(pTable) ){  | 
 
| 
106583
 | 
 8463  | 
 4928  | 
   if( !pTable ) return;  | 
 
| 
106584
 | 
 4327  | 
 601  | 
   if( ((!db || db->pnBytesFreed==0) && (--pTable->nTabRef)>0) ) return;  | 
 
| 
 | 
 4321  | 
 6  | 
   if( ((!db || db->pnBytesFreed==0) && (--pTable->nTabRef)>0) ) return;  | 
 
| 
 | 
 4056  | 
 866  | 
   if( ((!db || db->pnBytesFreed==0) && (--pTable->nTabRef)>0) ) return;  | 
 
| 
106623
 | 
 8168  | 
 111  | 
   if( pName ){  | 
 
| 
106640
 | 
 220  | 
 5  | 
   if( p->nTab==0 ){  | 
 
| 
106653
 | 
 261  | 
 0  | 
   if( zName ){  | 
 
| 
106655
 | 
 540  | 
 0  | 
     for(i=(db->nDb-1), pDb=&db->aDb[i]; i>=0; i--, pDb--){  | 
 
| 
106656
 | 
 261  | 
 279  | 
       if( 0==sqlite3_stricmp(pDb->zDbSName, zName) ) break;  | 
 
| 
106659
 | 
 0  | 
 279  | 
       if( i==0 && 0==sqlite3_stricmp("main", zName) ) break;  | 
 
| 
 | 
 0  | 
 0  | 
       if( i==0 && 0==sqlite3_stricmp("main", zName) ) break;  | 
 
| 
106706
 | 
 141  | 
 514  | 
   if( pName2->n>0 ){  | 
 
| 
106707
 | 
 0  | 
 141  | 
     if( db->init.busy ) {  | 
 
| 
106713
 | 
 0  | 
 141  | 
     if( iDb<0 ){  | 
 
| 
106748
 | 
 230  | 
 617  | 
   if( !pParse->db->init.busy && pParse->nested==0   | 
 
| 
 | 
 225  | 
 5  | 
   if( !pParse->db->init.busy && pParse->nested==0   | 
 
| 
106749
 | 
 225  | 
 0  | 
           && sqlite3WritableSchema(pParse->db)==0  | 
 
| 
106750
 | 
 0  | 
 225  | 
           && 0==sqlite3StrNICmp(zName, "sqlite_", 7) ){  | 
 
| 
106762
 | 
 26  | 
 29  | 
   for(p=pTab->pIndex; p && !IsPrimaryKeyIndex(p); p=p->pNext){}  | 
 
| 
 | 
 4  | 
 22  | 
   for(p=pTab->pIndex; p && !IsPrimaryKeyIndex(p); p=p->pNext){}  | 
 
| 
106772
 | 
 238  | 
 44  | 
   for(i=0; inColumn; i++){  | 
 
| 
106773
 | 
 91  | 
 147  | 
     if( iCol==pIdx->aiColumn[i] ) return i;  | 
 
| 
106810
 | 
 612  | 
 225  | 
   if( db->init.busy && db->init.newTnum==1 ){  | 
 
| 
 | 
 367  | 
 245  | 
   if( db->init.busy && db->init.newTnum==1 ){  | 
 
| 
106813
 | 
 181  | 
 186  | 
     zName = sqlite3DbStrDup(db, SCHEMA_TABLE(iDb));  | 
 
| 
106818
 | 
 0  | 
 470  | 
     if( iDb<0 ) return;  | 
 
| 
106819
 | 
 25  | 
 445  | 
     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 ){  | 
 
| 
106825
 | 
 25  | 
 445  | 
     if( !OMIT_TEMPDB && isTemp ) iDb = 1;  | 
 
| 
106827
 | 
 0  | 
 470  | 
     if( IN_RENAME_OBJECT ){  | 
 
| 
106832
 | 
 0  | 
 837  | 
   if( zName==0 ) return;  | 
 
| 
106833
 | 
 0  | 
 837  | 
   if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){  | 
 
| 
106836
 | 
 206  | 
 631  | 
   if( db->init.iDb==1 ) isTemp = 1;  | 
 
| 
106848
 | 
 231  | 
 606  | 
     if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0, zDb) ){  | 
 
| 
 | 
 0  | 
 837  | 
     if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0, zDb) ){  | 
 
| 
106851
 | 
 817  | 
 20  | 
     if( !isVirtual && sqlite3AuthCheck(pParse, (int)aCode[isTemp+2*isView],  | 
 
| 
 | 
 0  | 
 817  | 
     if( !isVirtual && sqlite3AuthCheck(pParse, (int)aCode[isTemp+2*isView],  | 
 
| 
106865
 | 
 828  | 
 9  | 
   if( !IN_SPECIAL_PARSE ){  | 
 
| 
106867
 | 
 0  | 
 828  | 
     if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){  | 
 
| 
106871
 | 
 0  | 
 828  | 
     if( pTable ){  | 
 
| 
106872
 | 
 0  | 
 0  | 
       if( !noErr ){  | 
 
| 
106880
 | 
 0  | 
 828  | 
     if( sqlite3FindIndex(db, zName, zDb)!=0 ){  | 
 
| 
106887
 | 
 0  | 
 837  | 
   if( pTable==0 ){  | 
 
| 
106910
 | 
 832  | 
 5  | 
   if( !pParse->nested && strcmp(zName, "sqlite_sequence")==0 ){  | 
 
| 
 | 
 4  | 
 828  | 
   if( !pParse->nested && strcmp(zName, "sqlite_sequence")==0 ){  | 
 
| 
106924
 | 
 225  | 
 612  | 
   if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){  | 
 
| 
 | 
 225  | 
 0  | 
   if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){  | 
 
| 
106933
 | 
 10  | 
 215  | 
     if( isVirtual ){  | 
 
| 
106948
 | 
 0  | 
 225  | 
                   1 : SQLITE_MAX_FILE_FORMAT;  | 
 
| 
106963
 | 
 225  | 
 0  | 
     if( isView || isVirtual ){  | 
 
| 
 | 
 10  | 
 215  | 
     if( isView || isVirtual ){  | 
 
| 
107017
 | 
 0  | 
 2770  | 
   if( (p = pParse->pNewTable)==0 ) return;  | 
 
| 
107018
 | 
 0  | 
 2770  | 
   if( p->nCol+1>db->aLimit[SQLITE_LIMIT_COLUMN] ){  | 
 
| 
107023
 | 
 0  | 
 2770  | 
   if( z==0 ) return;  | 
 
| 
107024
 | 
 0  | 
 2770  | 
   if( IN_RENAME_OBJECT ) sqlite3RenameTokenMap(pParse, (void*)z, pName);  | 
 
| 
107028
 | 
 4469  | 
 2770  | 
   for(i=0; inCol; i++){  | 
 
| 
107029
 | 
 0  | 
 4469  | 
     if( sqlite3_stricmp(z, p->aCol[i].zName)==0 ){  | 
 
| 
107035
 | 
 817  | 
 1953  | 
   if( (p->nCol & 0x7)==0 ){  | 
 
| 
107038
 | 
 0  | 
 817  | 
     if( aNew==0 ){  | 
 
| 
107049
 | 
 282  | 
 2488  | 
   if( pType->n==0 ){  | 
 
| 
107081
 | 
 173  | 
 0  | 
   if( p==0 || NEVER(p->nCol<1) ) return;  | 
 
| 
 | 
 0  | 
 173  | 
   if( p==0 || NEVER(p->nCol<1) ) return;  | 
 
| 
107088
 | 
 0  | 
 173  | 
   if( pCol->colFlags & COLFLAG_UNIQUE ){  | 
 
| 
107090
 | 
 0  | 
 0  | 
     for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
107092
 | 
 0  | 
 0  | 
       if( pIdx->aiColumn[0]==p->nCol-1 ){  | 
 
| 
107130
 | 
 9917  | 
 1720  | 
   while( zIn[0] ){  | 
 
| 
107133
 | 
 120  | 
 9797  | 
     if( h==(('c'<<24)+('h'<<16)+('a'<<8)+'r') ){             /* CHAR */  | 
 
| 
107136
 | 
 0  | 
 9797  | 
     }else if( h==(('c'<<24)+('l'<<16)+('o'<<8)+'b') ){       /* CLOB */  | 
 
| 
107138
 | 
 1514  | 
 8283  | 
     }else if( h==(('t'<<24)+('e'<<16)+('x'<<8)+'t') ){       /* TEXT */  | 
 
| 
107140
 | 
 54  | 
 8229  | 
     }else if( h==(('b'<<24)+('l'<<16)+('o'<<8)+'b')          /* BLOB */  | 
 
| 
107141
 | 
 0  | 
 54  | 
         && (aff==SQLITE_AFF_NUMERIC || aff==SQLITE_AFF_REAL) ){  | 
 
| 
 | 
 0  | 
 0  | 
         && (aff==SQLITE_AFF_NUMERIC || aff==SQLITE_AFF_REAL) ){  | 
 
| 
107143
 | 
 0  | 
 54  | 
       if( zIn[0]=='(' ) zChar = zIn;  | 
 
| 
107145
 | 
 0  | 
 8229  | 
     }else if( h==(('r'<<24)+('e'<<16)+('a'<<8)+'l')          /* REAL */  | 
 
| 
107146
 | 
 0  | 
 0  | 
         && aff==SQLITE_AFF_NUMERIC ){  | 
 
| 
107148
 | 
 0  | 
 8229  | 
     }else if( h==(('f'<<24)+('l'<<16)+('o'<<8)+'a')          /* FLOA */  | 
 
| 
107149
 | 
 0  | 
 0  | 
         && aff==SQLITE_AFF_NUMERIC ){  | 
 
| 
107151
 | 
 0  | 
 8229  | 
     }else if( h==(('d'<<24)+('o'<<16)+('u'<<8)+'b')          /* DOUB */  | 
 
| 
107152
 | 
 0  | 
 0  | 
         && aff==SQLITE_AFF_NUMERIC ){  | 
 
| 
107155
 | 
 769  | 
 7460  | 
     }else if( (h&0x00FFFFFF)==(('i'<<16)+('n'<<8)+'t') ){    /* INT */  | 
 
| 
107163
 | 
 2488  | 
 1  | 
   if( pCol ){  | 
 
| 
107165
 | 
 1688  | 
 800  | 
     if( aff
 | 
 
| 
107166
 | 
 120  | 
 1568  | 
       if( zChar ){  | 
 
| 
107167
 | 
 269  | 
 21  | 
         while( zChar[0] ){  | 
 
| 
107168
 | 
 99  | 
 170  | 
           if( sqlite3Isdigit(zChar[0]) ){  | 
 
| 
107185
 | 
 0  | 
 2488  | 
     if( v>255 ) v = 255;  | 
 
| 
107211
 | 
 4  | 
 0  | 
   if( p!=0 ){  | 
 
| 
107213
 | 
 0  | 
 4  | 
     if( !sqlite3ExprIsConstantOrFunction(pExpr, db->init.busy) ){  | 
 
| 
107231
 | 
 0  | 
 4  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
107254
 | 
 0  | 
 206  | 
   if( p->op==TK_STRING ){  | 
 
| 
107256
 | 
 0  | 
 206  | 
   }else if( p->op==TK_COLLATE && p->pLeft->op==TK_STRING ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( p->op==TK_COLLATE && p->pLeft->op==TK_STRING ){  | 
 
| 
107290
 | 
 0  | 
 189  | 
   if( pTab==0 ) goto primary_key_exit;  | 
 
| 
107291
 | 
 0  | 
 189  | 
   if( pTab->tabFlags & TF_HasPrimaryKey ){  | 
 
| 
107297
 | 
 151  | 
 38  | 
   if( pList==0 ){  | 
 
| 
107304
 | 
 80  | 
 38  | 
     for(i=0; i
 | 
 
| 
107308
 | 
 80  | 
 0  | 
       if( pCExpr->op==TK_ID ){  | 
 
| 
107310
 | 
 150  | 
 0  | 
         for(iCol=0; iColnCol; iCol++){  | 
 
| 
107311
 | 
 80  | 
 70  | 
           if( sqlite3StrICmp(zCName, pTab->aCol[iCol].zName)==0 ){  | 
 
| 
107320
 | 
 161  | 
 28  | 
   if( nTerm==1  | 
 
| 
107321
 | 
 161  | 
 0  | 
    && pCol  | 
 
| 
107322
 | 
 139  | 
 22  | 
    && sqlite3StrICmp(sqlite3ColumnType(pCol,""), "INTEGER")==0  | 
 
| 
107323
 | 
 139  | 
 0  | 
    && sortOrder!=SQLITE_SO_DESC  | 
 
| 
107325
 | 
 0  | 
 139  | 
     if( IN_RENAME_OBJECT && pList ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( IN_RENAME_OBJECT && pList ){  | 
 
| 
107332
 | 
 6  | 
 133  | 
     if( pList ) pParse->iPkSortOrder = pList->a[0].sortOrder;  | 
 
| 
107333
 | 
 0  | 
 50  | 
   }else if( autoInc ){  | 
 
| 
107359
 | 
 0  | 
 0  | 
   if( pTab && !IN_DECLARE_VTAB  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab && !IN_DECLARE_VTAB  | 
 
| 
107360
 | 
 0  | 
 0  | 
    && !sqlite3BtreeIsReadonly(db->aDb[db->init.iDb].pBt)  | 
 
| 
107363
 | 
 0  | 
 0  | 
     if( pParse->constraintName.n ){  | 
 
| 
107383
 | 
 0  | 
 0  | 
   if( (p = pParse->pNewTable)==0 ) return;  | 
 
| 
107387
 | 
 0  | 
 0  | 
   if( !zColl ) return;  | 
 
| 
107389
 | 
 0  | 
 0  | 
   if( sqlite3LocateCollSeq(pParse, zColl) ){  | 
 
| 
107398
 | 
 0  | 
 0  | 
     for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
107400
 | 
 0  | 
 0  | 
       if( pIdx->aiColumn[0]==i ){  | 
 
| 
107436
 | 
 64  | 
 0  | 
   if( !initbusy && (!pColl || !pColl->xCmp) ){  | 
 
| 
 | 
 64  | 
 0  | 
   if( !initbusy && (!pColl || !pColl->xCmp) ){  | 
 
| 
 | 
 0  | 
 64  | 
   if( !initbusy && (!pColl || !pColl->xCmp) ){  | 
 
| 
107481
 | 
 0  | 
 0  | 
   for(n=0; *z; n++, z++){  | 
 
| 
107482
 | 
 0  | 
 0  | 
     if( *z=='"' ){ n++; }  | 
 
| 
107505
 | 
 0  | 
 0  | 
   for(j=0; zIdent[j]; j++){  | 
 
| 
107506
 | 
 0  | 
 0  | 
     if( !sqlite3Isalnum(zIdent[j]) && zIdent[j]!='_' ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( !sqlite3Isalnum(zIdent[j]) && zIdent[j]!='_' ) break;  | 
 
| 
107509
 | 
 0  | 
 0  | 
             || sqlite3KeywordCode(zIdent, j)!=TK_ID  | 
 
| 
107510
 | 
 0  | 
 0  | 
             || zIdent[j]!=0  | 
 
| 
107511
 | 
 0  | 
 0  | 
             || j==0;  | 
 
| 
 | 
 0  | 
 0  | 
             || j==0;  | 
 
| 
107513
 | 
 0  | 
 0  | 
   if( needQuote ) z[i++] = '"';  | 
 
| 
107514
 | 
 0  | 
 0  | 
   for(j=0; zIdent[j]; j++){  | 
 
| 
107516
 | 
 0  | 
 0  | 
     if( zIdent[j]=='"' ) z[i++] = '"';  | 
 
| 
107518
 | 
 0  | 
 0  | 
   if( needQuote ) z[i++] = '"';  | 
 
| 
107534
 | 
 0  | 
 0  | 
   for(pCol = p->aCol, i=0; inCol; i++, pCol++){  | 
 
| 
107538
 | 
 0  | 
 0  | 
   if( n<50 ){   | 
 
| 
107549
 | 
 0  | 
 0  | 
   if( zStmt==0 ){  | 
 
| 
107557
 | 
 0  | 
 0  | 
   for(pCol=p->aCol, i=0; inCol; i++, pCol++){  | 
 
| 
107599
 | 
 0  | 
 0  | 
   if( pIdx->nColumn>=N ) return SQLITE_OK;  | 
 
| 
107603
 | 
 0  | 
 0  | 
   if( zExtra==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
107624
 | 
 2770  | 
 817  | 
   for(i=pTab->nCol, pTabCol=pTab->aCol; i>0; i--, pTabCol++){  | 
 
| 
107627
 | 
 678  | 
 139  | 
   if( pTab->iPKey<0 ) wTable++;  | 
 
| 
107638
 | 
 202  | 
 76  | 
   for(i=0; inColumn; i++){  | 
 
| 
107641
 | 
 126  | 
 76  | 
     wIndex += x<0 ? 1 : aCol[pIdx->aiColumn[i]].szEst;  | 
 
| 
107649
 | 
 0  | 
 0  | 
   while( nCol-- > 0 ) if( x==*(aiCol++) ) return 1;  | 
 
| 
 | 
 0  | 
 0  | 
   while( nCol-- > 0 ) if( x==*(aiCol++) ) return 1;  | 
 
| 
107666
 | 
 202  | 
 76  | 
   for(j=pIdx->nColumn-1; j>=0; j--){  | 
 
| 
107668
 | 
 126  | 
 76  | 
     if( x>=0 ){  | 
 
| 
107671
 | 
 126  | 
 0  | 
       if( x
 | 
 
| 
107712
 | 
 0  | 
 0  | 
   if( !db->init.imposterTable ){  | 
 
| 
107713
 | 
 0  | 
 0  | 
     for(i=0; inCol; i++){  | 
 
| 
107714
 | 
 0  | 
 0  | 
       if( (pTab->aCol[i].colFlags & COLFLAG_PRIMKEY)!=0 ){  | 
 
| 
107723
 | 
 0  | 
 0  | 
   if( pParse->addrCrTab ){  | 
 
| 
107731
 | 
 0  | 
 0  | 
   if( pTab->iPKey>=0 ){  | 
 
| 
107737
 | 
 0  | 
 0  | 
     if( pList==0 ) return;  | 
 
| 
107742
 | 
 0  | 
 0  | 
     if( db->mallocFailed || pParse->nErr ) return;  | 
 
| 
 | 
 0  | 
 0  | 
     if( db->mallocFailed || pParse->nErr ) return;  | 
 
| 
107753
 | 
 0  | 
 0  | 
     for(i=j=1; inKeyCol; i++){  | 
 
| 
107754
 | 
 0  | 
 0  | 
       if( hasColumn(pPk->aiColumn, j, pPk->aiColumn[i]) ){  | 
 
| 
107764
 | 
 0  | 
 0  | 
   if( !db->init.imposterTable ) pPk->uniqNotNull = 1;  | 
 
| 
107771
 | 
 0  | 
 0  | 
   if( v && pPk->tnum>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( v && pPk->tnum>0 ){  | 
 
| 
107782
 | 
 0  | 
 0  | 
   for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
107784
 | 
 0  | 
 0  | 
     if( IsPrimaryKeyIndex(pIdx) ) continue;  | 
 
| 
107785
 | 
 0  | 
 0  | 
     for(i=n=0; i
 | 
 
| 
107786
 | 
 0  | 
 0  | 
       if( !hasColumn(pIdx->aiColumn, pIdx->nKeyCol, pPk->aiColumn[i]) ) n++;  | 
 
| 
107788
 | 
 0  | 
 0  | 
     if( n==0 ){  | 
 
| 
107793
 | 
 0  | 
 0  | 
     if( resizeIndexObject(db, pIdx, pIdx->nKeyCol+n) ) return;  | 
 
| 
107794
 | 
 0  | 
 0  | 
     for(i=0, j=pIdx->nKeyCol; i
 | 
 
| 
107795
 | 
 0  | 
 0  | 
       if( !hasColumn(pIdx->aiColumn, pIdx->nKeyCol, pPk->aiColumn[i]) ){  | 
 
| 
107807
 | 
 0  | 
 0  | 
   if( nPknCol ){  | 
 
| 
107808
 | 
 0  | 
 0  | 
     if( resizeIndexObject(db, pPk, pTab->nCol) ) return;  | 
 
| 
107809
 | 
 0  | 
 0  | 
     for(i=0, j=nPk; inCol; i++){  | 
 
| 
107810
 | 
 0  | 
 0  | 
       if( !hasColumn(pPk->aiColumn, j, i) ){  | 
 
| 
107839
 | 
 294  | 
 523  | 
   if( zTail==0 ) return 0;  | 
 
| 
107843
 | 
 461  | 
 62  | 
   if( pTab==0 ) return 0;  | 
 
| 
107844
 | 
 0  | 
 62  | 
   if( !IsVirtual(pTab) ) return 0;  | 
 
| 
107846
 | 
 0  | 
 62  | 
   if( pMod==0 ) return 0;  | 
 
| 
107847
 | 
 0  | 
 62  | 
   if( pMod->pModule->iVersion<3 ) return 0;  | 
 
| 
107848
 | 
 0  | 
 62  | 
   if( pMod->pModule->xShadowName==0 ) return 0;  | 
 
| 
107887
 | 
 0  | 
 817  | 
   if( pEnd==0 && pSelect==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pEnd==0 && pSelect==0 ){  | 
 
| 
107892
 | 
 0  | 
 817  | 
   if( p==0 ) return;  | 
 
| 
107894
 | 
 817  | 
 0  | 
   if( pSelect==0 && isShadowTableName(db, p->zName) ){  | 
 
| 
 | 
 62  | 
 755  | 
   if( pSelect==0 && isShadowTableName(db, p->zName) ){  | 
 
| 
107907
 | 
 602  | 
 215  | 
   if( db->init.busy ){  | 
 
| 
107908
 | 
 0  | 
 602  | 
     if( pSelect ){  | 
 
| 
107913
 | 
 367  | 
 235  | 
     if( p->tnum==1 ) p->tabFlags |= TF_Readonly;  | 
 
| 
107917
 | 
 0  | 
 817  | 
   if( tabOpts & TF_WithoutRowid ){  | 
 
| 
107918
 | 
 0  | 
 0  | 
     if( (p->tabFlags & TF_Autoincrement) ){  | 
 
| 
107923
 | 
 0  | 
 0  | 
     if( (p->tabFlags & TF_HasPrimaryKey)==0 ){  | 
 
| 
107936
 | 
 0  | 
 817  | 
   if( p->pCheck ){  | 
 
| 
107943
 | 
 66  | 
 817  | 
   for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
107953
 | 
 215  | 
 602  | 
   if( !db->init.busy ){  | 
 
| 
107961
 | 
 0  | 
 215  | 
     if( NEVER(v==0) ) return;  | 
 
| 
107968
 | 
 215  | 
 0  | 
     if( p->pSelect==0 ){  | 
 
| 
107993
 | 
 0  | 
 215  | 
     if( pSelect ){  | 
 
| 
108012
 | 
 0  | 
 0  | 
       if( pParse->nErr ) return;  | 
 
| 
108014
 | 
 0  | 
 0  | 
       if( pSelTab==0 ) return;  | 
 
| 
108023
 | 
 0  | 
 0  | 
       if( pParse->nErr ) return;  | 
 
| 
108038
 | 
 0  | 
 215  | 
     if( pSelect ){  | 
 
| 
108041
 | 
 0  | 
 215  | 
       Token *pEnd2 = tabOpts ? &pParse->sLastToken : pEnd;  | 
 
| 
108043
 | 
 215  | 
 0  | 
       if( pEnd2->z[0]!=';' ) n += pEnd2->n;  | 
 
| 
108072
 | 
 5  | 
 210  | 
     if( (p->tabFlags & TF_Autoincrement)!=0 ){  | 
 
| 
108075
 | 
 4  | 
 1  | 
       if( pDb->pSchema->pSeqTab==0 ){  | 
 
| 
108092
 | 
 602  | 
 215  | 
   if( db->init.busy ){  | 
 
| 
108097
 | 
 0  | 
 602  | 
     if( pOld ){  | 
 
| 
108106
 | 
 602  | 
 0  | 
     if( !p->pSelect ){  | 
 
| 
108110
 | 
 579  | 
 23  | 
       if( pCons->z==0 ){  | 
 
| 
108143
 | 
 0  | 
 0  | 
   if( pParse->nVar>0 ){  | 
 
| 
108149
 | 
 0  | 
 0  | 
   if( p==0 || pParse->nErr ) goto create_view_fail;  | 
 
| 
 | 
 0  | 
 0  | 
   if( p==0 || pParse->nErr ) goto create_view_fail;  | 
 
| 
108153
 | 
 0  | 
 0  | 
   if( sqlite3FixSelect(&sFix, pSelect) ) goto create_view_fail;  | 
 
| 
108160
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
108167
 | 
 0  | 
 0  | 
   if( db->mallocFailed ) goto create_view_fail;  | 
 
| 
108174
 | 
 0  | 
 0  | 
   if( sEnd.z[0]!=';' ){  | 
 
| 
108181
 | 
 0  | 
 0  | 
   while( sqlite3Isspace(z[n-1]) ){ n--; }  | 
 
| 
108190
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
108223
 | 
 0  | 
 3037  | 
   if( rc ){  | 
 
| 
108226
 | 
 60  | 
 2977  | 
   if( IsVirtual(pTable) ) return 0;  | 
 
| 
108233
 | 
 2977  | 
 0  | 
   if( pTable->nCol>0 ) return 0;  | 
 
| 
108250
 | 
 0  | 
 0  | 
   if( pTable->nCol<0 ){  | 
 
| 
108265
 | 
 0  | 
 0  | 
   if( pSel ){  | 
 
| 
108283
 | 
 0  | 
 0  | 
     if( pTable->pCheck ){  | 
 
| 
108292
 | 
 0  | 
 0  | 
       if( db->mallocFailed==0   | 
 
| 
108293
 | 
 0  | 
 0  | 
        && pParse->nErr==0  | 
 
| 
108294
 | 
 0  | 
 0  | 
        && pTable->nCol==pSel->pEList->nExpr  | 
 
| 
108298
 | 
 0  | 
 0  | 
     }else if( pSelTab ){  | 
 
| 
108322
 | 
 0  | 
 0  | 
   if( db->mallocFailed ){  | 
 
| 
108339
 | 
 5  | 
 0  | 
   if( !DbHasProperty(db, idx, DB_UnresetViews) ) return;  | 
 
| 
108340
 | 
 0  | 
 0  | 
   for(i=sqliteHashFirst(&db->aDb[idx].pSchema->tblHash); i;i=sqliteHashNext(i)){  | 
 
| 
108342
 | 
 0  | 
 0  | 
     if( pTab->pSelect ){  | 
 
| 
108380
 | 
 0  | 
 0  | 
   for(pElem=sqliteHashFirst(pHash); pElem; pElem=sqliteHashNext(pElem)){  | 
 
| 
108382
 | 
 0  | 
 0  | 
     if( pTab->tnum==iFrom ){  | 
 
| 
108387
 | 
 0  | 
 0  | 
   for(pElem=sqliteHashFirst(pHash); pElem; pElem=sqliteHashNext(pElem)){  | 
 
| 
108389
 | 
 0  | 
 0  | 
     if( pIdx->tnum==iFrom ){  | 
 
| 
108405
 | 
 0  | 
 5  | 
   if( iTable<2 ) sqlite3ErrorMsg(pParse, "corrupt schema");  | 
 
| 
108455
 | 
 5  | 
 5  | 
     if( iDestroyed==0 || iTab
 | 
 
| 
 | 
 0  | 
 5  | 
     if( iDestroyed==0 || iTab
 | 
 
| 
108458
 | 
 0  | 
 10  | 
     for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
108461
 | 
 0  | 
 0  | 
       if( (iDestroyed==0 || (iIdxiLargest ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( (iDestroyed==0 || (iIdxiLargest ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( (iDestroyed==0 || (iIdxiLargest ){  | 
 
| 
108465
 | 
 5  | 
 5  | 
     if( iLargest==0 ){  | 
 
| 
108488
 | 
 20  | 
 5  | 
   for(i=1; i<=4; i++){  | 
 
| 
108491
 | 
 0  | 
 20  | 
     if( sqlite3FindTable(pParse->db, zTab, zDbName) ){  | 
 
| 
108514
 | 
 0  | 
 5  | 
   if( IsVirtual(pTab) ){  | 
 
| 
108524
 | 
 0  | 
 5  | 
   while( pTrigger ){  | 
 
| 
108537
 | 
 0  | 
 5  | 
   if( pTab->tabFlags & TF_Autoincrement ){  | 
 
| 
108555
 | 
 5  | 
 0  | 
   if( !isView && !IsVirtual(pTab) ){  | 
 
| 
 | 
 5  | 
 0  | 
   if( !isView && !IsVirtual(pTab) ){  | 
 
| 
108562
 | 
 0  | 
 5  | 
   if( IsVirtual(pTab) ){  | 
 
| 
108580
 | 
 0  | 
 12  | 
   if( db->mallocFailed ){  | 
 
| 
108585
 | 
 0  | 
 12  | 
   if( sqlite3ReadSchema(pParse) ) goto exit_drop_table;  | 
 
| 
108586
 | 
 1  | 
 11  | 
   if( noErr ) db->suppressErr++;  | 
 
| 
108589
 | 
 1  | 
 11  | 
   if( noErr ) db->suppressErr--;  | 
 
| 
108591
 | 
 7  | 
 5  | 
   if( pTab==0 ){  | 
 
| 
108592
 | 
 1  | 
 6  | 
     if( noErr ) sqlite3CodeVerifyNamedSchema(pParse, pName->a[0].zDatabase);  | 
 
| 
108601
 | 
 0  | 
 5  | 
   if( IsVirtual(pTab) && sqlite3ViewGetColumnNames(pParse, pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( IsVirtual(pTab) && sqlite3ViewGetColumnNames(pParse, pTab) ){  | 
 
| 
108607
 | 
 0  | 
 5  | 
     const char *zTab = SCHEMA_TABLE(iDb);  | 
 
| 
108610
 | 
 0  | 
 5  | 
     if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb)){  | 
 
| 
108613
 | 
 0  | 
 5  | 
     if( isView ){  | 
 
| 
108614
 | 
 0  | 
 0  | 
       if( !OMIT_TEMPDB && iDb==1 ){  | 
 
| 
108620
 | 
 0  | 
 5  | 
     }else if( IsVirtual(pTab) ){  | 
 
| 
108625
 | 
 0  | 
 5  | 
       if( !OMIT_TEMPDB && iDb==1 ){  | 
 
| 
108631
 | 
 0  | 
 5  | 
     if( sqlite3AuthCheck(pParse, code, pTab->zName, zArg2, zDb) ){  | 
 
| 
108634
 | 
 0  | 
 5  | 
     if( sqlite3AuthCheck(pParse, SQLITE_DELETE, pTab->zName, 0, zDb) ){  | 
 
| 
108639
 | 
 0  | 
 5  | 
   if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0   | 
 
| 
108640
 | 
 0  | 
 0  | 
     && sqlite3StrNICmp(pTab->zName, "sqlite_stat", 11)!=0 ){  | 
 
| 
108649
 | 
 0  | 
 5  | 
   if( isView && pTab->pSelect==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( isView && pTab->pSelect==0 ){  | 
 
| 
108653
 | 
 5  | 
 0  | 
   if( !isView && pTab->pSelect ){  | 
 
| 
 | 
 0  | 
 5  | 
   if( !isView && pTab->pSelect ){  | 
 
| 
108663
 | 
 5  | 
 0  | 
   if( v ){  | 
 
| 
108665
 | 
 5  | 
 0  | 
     if( !isView ){  | 
 
| 
108710
 | 
 16  | 
 0  | 
   if( p==0 || IN_DECLARE_VTAB ) goto fk_end;  | 
 
| 
 | 
 16  | 
 0  | 
   if( p==0 || IN_DECLARE_VTAB ) goto fk_end;  | 
 
| 
108711
 | 
 12  | 
 4  | 
   if( pFromCol==0 ){  | 
 
| 
108713
 | 
 0  | 
 12  | 
     if( NEVER(iCol<0) ) goto fk_end;  | 
 
| 
108714
 | 
 12  | 
 0  | 
     if( pToCol && pToCol->nExpr!=1 ){  | 
 
| 
 | 
 0  | 
 12  | 
     if( pToCol && pToCol->nExpr!=1 ){  | 
 
| 
108721
 | 
 4  | 
 0  | 
   }else if( pToCol && pToCol->nExpr!=pFromCol->nExpr ){  | 
 
| 
 | 
 0  | 
 4  | 
   }else if( pToCol && pToCol->nExpr!=pFromCol->nExpr ){  | 
 
| 
108730
 | 
 16  | 
 0  | 
   if( pToCol ){  | 
 
| 
108731
 | 
 18  | 
 16  | 
     for(i=0; inExpr; i++){  | 
 
| 
108736
 | 
 0  | 
 16  | 
   if( pFKey==0 ){  | 
 
| 
108743
 | 
 0  | 
 16  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
108751
 | 
 12  | 
 4  | 
   if( pFromCol==0 ){  | 
 
| 
108754
 | 
 6  | 
 4  | 
     for(i=0; i
 | 
 
| 
108756
 | 
 16  | 
 0  | 
       for(j=0; jnCol; j++){  | 
 
| 
108757
 | 
 6  | 
 10  | 
         if( sqlite3StrICmp(p->aCol[j].zName, pFromCol->a[i].zName)==0 ){  | 
 
| 
108762
 | 
 0  | 
 6  | 
       if( j>=p->nCol ){  | 
 
| 
108768
 | 
 0  | 
 6  | 
       if( IN_RENAME_OBJECT ){  | 
 
| 
108773
 | 
 16  | 
 0  | 
   if( pToCol ){  | 
 
| 
108774
 | 
 18  | 
 16  | 
     for(i=0; i
 | 
 
| 
108777
 | 
 0  | 
 18  | 
       if( IN_RENAME_OBJECT ){  | 
 
| 
108793
 | 
 0  | 
 16  | 
   if( pNextTo==pFKey ){  | 
 
| 
108797
 | 
 0  | 
 16  | 
   if( pNextTo ){  | 
 
| 
108826
 | 
 4  | 
 0  | 
   if( (pTab = pParse->pNewTable)==0 || (pFKey = pTab->pFKey)==0 ) return;  | 
 
| 
 | 
 0  | 
 4  | 
   if( (pTab = pParse->pNewTable)==0 || (pFKey = pTab->pFKey)==0 ) return;  | 
 
| 
108859
 | 
 0  | 
 5  | 
   if( sqlite3AuthCheck(pParse, SQLITE_REINDEX, pIndex->zName, 0,  | 
 
| 
108869
 | 
 0  | 
 5  | 
   if( v==0 ) return;  | 
 
| 
108870
 | 
 5  | 
 0  | 
   if( memRootPage>=0 ){  | 
 
| 
108895
 | 
 0  | 
 5  | 
   if( memRootPage<0 ) sqlite3VdbeAddOp2(v, OP_Clear, tnum, iDb);  | 
 
| 
108898
 | 
 5  | 
 0  | 
   sqlite3VdbeChangeP5(v, OPFLAG_BULKCSR|((memRootPage>=0)?OPFLAG_P2ISREG:0));  | 
 
| 
108901
 | 
 2  | 
 3  | 
   if( IsUniqueIndex(pIndex) ){  | 
 
| 
108947
 | 
 77  | 
 0  | 
   if( p ){  | 
 
| 
109002
 | 
 76  | 
 0  | 
   if( db->mallocFailed || pParse->nErr>0 ){  | 
 
| 
 | 
 76  | 
 0  | 
   if( db->mallocFailed || pParse->nErr>0 ){  | 
 
| 
109005
 | 
 0  | 
 76  | 
   if( IN_DECLARE_VTAB && idxType!=SQLITE_IDXTYPE_PRIMARYKEY ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( IN_DECLARE_VTAB && idxType!=SQLITE_IDXTYPE_PRIMARYKEY ){  | 
 
| 
109008
 | 
 0  | 
 76  | 
   if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){  | 
 
| 
109015
 | 
 10  | 
 66  | 
   if( pTblName!=0 ){  | 
 
| 
109023
 | 
 0  | 
 10  | 
     if( iDb<0 ) goto exit_create_index;  | 
 
| 
109031
 | 
 5  | 
 5  | 
     if( !db->init.busy ){  | 
 
| 
109033
 | 
 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 ){  | 
 
| 
109047
 | 
 0  | 
 10  | 
     if( pTab==0 ) goto exit_create_index;  | 
 
| 
109048
 | 
 0  | 
 10  | 
     if( iDb==1 && db->aDb[iDb].pSchema!=pTab->pSchema ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iDb==1 && db->aDb[iDb].pSchema!=pTab->pSchema ){  | 
 
| 
109054
 | 
 0  | 
 10  | 
     if( !HasRowid(pTab) ) pPk = sqlite3PrimaryKeyIndex(pTab);  | 
 
| 
109059
 | 
 0  | 
 66  | 
     if( !pTab ) goto exit_create_index;  | 
 
| 
109066
 | 
 0  | 
 76  | 
   if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0   | 
 
| 
109067
 | 
 0  | 
 0  | 
        && db->init.busy==0  | 
 
| 
109074
 | 
 0  | 
 0  | 
        && sqlite3StrNICmp(&pTab->zName[7],"altertab_",9)!=0  | 
 
| 
109080
 | 
 0  | 
 76  | 
   if( pTab->pSelect ){  | 
 
| 
109086
 | 
 0  | 
 76  | 
   if( IsVirtual(pTab) ){  | 
 
| 
109105
 | 
 10  | 
 66  | 
   if( pName ){  | 
 
| 
109107
 | 
 0  | 
 10  | 
     if( zName==0 ) goto exit_create_index;  | 
 
| 
109109
 | 
 0  | 
 10  | 
     if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){  | 
 
| 
109112
 | 
 10  | 
 0  | 
     if( !IN_RENAME_OBJECT ){  | 
 
| 
109113
 | 
 5  | 
 5  | 
       if( !db->init.busy ){  | 
 
| 
109114
 | 
 0  | 
 5  | 
         if( sqlite3FindTable(db, zName, 0)!=0 ){  | 
 
| 
109119
 | 
 0  | 
 10  | 
       if( sqlite3FindIndex(db, zName, pDb->zDbSName)!=0 ){  | 
 
| 
109120
 | 
 0  | 
 0  | 
         if( !ifNotExist ){  | 
 
| 
109132
 | 
 2  | 
 66  | 
     for(pLoop=pTab->pIndex, n=1; pLoop; pLoop=pLoop->pNext, n++){}  | 
 
| 
109134
 | 
 0  | 
 66  | 
     if( zName==0 ){  | 
 
| 
109143
 | 
 0  | 
 66  | 
     if( IN_SPECIAL_PARSE ) zName[7]++;  | 
 
| 
109149
 | 
 76  | 
 0  | 
   if( !IN_RENAME_OBJECT ){  | 
 
| 
109151
 | 
 2  | 
 74  | 
     if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iDb), 0, zDb) ){  | 
 
| 
 | 
 0  | 
 76  | 
     if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iDb), 0, zDb) ){  | 
 
| 
109155
 | 
 2  | 
 74  | 
     if( !OMIT_TEMPDB && iDb==1 ) i = SQLITE_CREATE_TEMP_INDEX;  | 
 
| 
109156
 | 
 0  | 
 76  | 
     if( sqlite3AuthCheck(pParse, i, zName, pTab->zName, zDb) ){  | 
 
| 
109166
 | 
 26  | 
 50  | 
   if( pList==0 ){  | 
 
| 
109173
 | 
 0  | 
 26  | 
     if( pList==0 ) goto exit_create_index;  | 
 
| 
109183
 | 
 126  | 
 76  | 
   for(i=0; inExpr; i++){  | 
 
| 
109186
 | 
 0  | 
 126  | 
     if( pExpr->op==TK_COLLATE ){  | 
 
| 
109195
 | 
 0  | 
 76  | 
   nExtraCol = pPk ? pPk->nKeyCol : 1;  | 
 
| 
109198
 | 
 0  | 
 76  | 
   if( db->mallocFailed ){  | 
 
| 
109212
 | 
 0  | 
 76  | 
   if( pPIWhere ){  | 
 
| 
109221
 | 
 55  | 
 21  | 
   if( pDb->pSchema->file_format>=4 ){  | 
 
| 
109237
 | 
 0  | 
 76  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
109241
 | 
 126  | 
 76  | 
   for(i=0; inKeyCol; i++, pListItem++){  | 
 
| 
109248
 | 
 0  | 
 126  | 
     if( pParse->nErr ) goto exit_create_index;  | 
 
| 
109250
 | 
 0  | 
 126  | 
     if( pCExpr->op!=TK_COLUMN ){  | 
 
| 
109251
 | 
 0  | 
 0  | 
       if( pTab==pParse->pNewTable ){  | 
 
| 
109256
 | 
 0  | 
 0  | 
       if( pIndex->aColExpr==0 ){  | 
 
| 
109266
 | 
 0  | 
 126  | 
       if( j<0 ){  | 
 
| 
109268
 | 
 98  | 
 28  | 
       }else if( pTab->aCol[j].notNull==0 ){  | 
 
| 
109274
 | 
 0  | 
 126  | 
     if( pListItem->pExpr->op==TK_COLLATE ){  | 
 
| 
109283
 | 
 126  | 
 0  | 
     }else if( j>=0 ){  | 
 
| 
109286
 | 
 126  | 
 0  | 
     if( !zColl ) zColl = sqlite3StrBINARY;  | 
 
| 
109287
 | 
 63  | 
 63  | 
     if( !db->init.busy && !sqlite3LocateCollSeq(pParse, zColl) ){  | 
 
| 
 | 
 0  | 
 63  | 
     if( !db->init.busy && !sqlite3LocateCollSeq(pParse, zColl) ){  | 
 
| 
109299
 | 
 0  | 
 76  | 
   if( pPk ){  | 
 
| 
109300
 | 
 0  | 
 0  | 
     for(j=0; jnKeyCol; j++){  | 
 
| 
109303
 | 
 0  | 
 0  | 
       if( hasColumn(pIndex->aiColumn, pIndex->nKeyCol, x) ){  | 
 
| 
109318
 | 
 10  | 
 66  | 
   if( pParse->pNewTable==0 ) estimateIndexWidth(pIndex);  | 
 
| 
109325
 | 
 10  | 
 66  | 
   if( pTblName!=0 && pIndex->nColumn>=pTab->nCol ){  | 
 
| 
 | 
 6  | 
 4  | 
   if( pTblName!=0 && pIndex->nColumn>=pTab->nCol ){  | 
 
| 
109327
 | 
 10  | 
 2  | 
     for(j=0; jnCol; j++){  | 
 
| 
109328
 | 
 2  | 
 8  | 
       if( j==pTab->iPKey ) continue;  | 
 
| 
109329
 | 
 4  | 
 4  | 
       if( sqlite3ColumnOfIndex(pIndex,j)>=0 ) continue;  | 
 
| 
109335
 | 
 66  | 
 10  | 
   if( pTab==pParse->pNewTable ){  | 
 
| 
109358
 | 
 2  | 
 66  | 
     for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
109364
 | 
 0  | 
 2  | 
       if( pIdx->nKeyCol!=pIndex->nKeyCol ) continue;  | 
 
| 
109365
 | 
 2  | 
 0  | 
       for(k=0; knKeyCol; k++){  | 
 
| 
109369
 | 
 2  | 
 0  | 
         if( pIdx->aiColumn[k]!=pIndex->aiColumn[k] ) break;  | 
 
| 
109372
 | 
 0  | 
 0  | 
         if( sqlite3StrICmp(z1, z2) ) break;  | 
 
| 
109374
 | 
 0  | 
 2  | 
       if( k==pIdx->nKeyCol ){  | 
 
| 
109375
 | 
 0  | 
 0  | 
         if( pIdx->onError!=pIndex->onError ){  | 
 
| 
109383
 | 
 0  | 
 0  | 
           if( !(pIdx->onError==OE_Default || pIndex->onError==OE_Default) ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( !(pIdx->onError==OE_Default || pIndex->onError==OE_Default) ){  | 
 
| 
109387
 | 
 0  | 
 0  | 
           if( pIdx->onError==OE_Default ){  | 
 
| 
109391
 | 
 0  | 
 0  | 
         if( idxType==SQLITE_IDXTYPE_PRIMARYKEY ) pIdx->idxType = idxType;  | 
 
| 
109397
 | 
 76  | 
 0  | 
   if( !IN_RENAME_OBJECT ){  | 
 
| 
109403
 | 
 38  | 
 38  | 
     if( db->init.busy ){  | 
 
| 
109409
 | 
 0  | 
 38  | 
       if( p ){  | 
 
| 
109415
 | 
 5  | 
 33  | 
       if( pTblName!=0 ){  | 
 
| 
109433
 | 
 0  | 
 38  | 
     else if( HasRowid(pTab) || pTblName!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     else if( HasRowid(pTab) || pTblName!=0 ){  | 
 
| 
109439
 | 
 0  | 
 38  | 
       if( v==0 ) goto exit_create_index;  | 
 
| 
109455
 | 
 5  | 
 33  | 
       if( pStart ){  | 
 
| 
109457
 | 
 3  | 
 2  | 
         if( pName->z[n-1]==';' ) n--;  | 
 
| 
109459
 | 
 3  | 
 2  | 
         zStmt = sqlite3MPrintf(db, "CREATE%s INDEX %.*s",  | 
 
| 
109482
 | 
 5  | 
 33  | 
       if( pTblName ){  | 
 
| 
109500
 | 
 38  | 
 38  | 
   if( db->init.busy || pTblName==0 ){  | 
 
| 
 | 
 33  | 
 5  | 
   if( db->init.busy || pTblName==0 ){  | 
 
| 
109501
 | 
 0  | 
 71  | 
     if( onError!=OE_Replace || pTab->pIndex==0  | 
 
| 
 | 
 0  | 
 0  | 
     if( onError!=OE_Replace || pTab->pIndex==0  | 
 
| 
109502
 | 
 0  | 
 0  | 
          || pTab->pIndex->onError==OE_Replace){  | 
 
| 
109507
 | 
 0  | 
 0  | 
       while( pOther->pNext && pOther->pNext->onError!=OE_Replace ){  | 
 
| 
 | 
 0  | 
 0  | 
       while( pOther->pNext && pOther->pNext->onError!=OE_Replace ){  | 
 
| 
109515
 | 
 0  | 
 5  | 
   else if( IN_RENAME_OBJECT ){  | 
 
| 
109523
 | 
 5  | 
 71  | 
   if( pIndex ) sqlite3FreeIndex(db, pIndex);  | 
 
| 
109552
 | 
 74  | 
 2  | 
   int nCopy = MIN(ArraySize(aVal), pIdx->nKeyCol);  | 
 
| 
109562
 | 
 0  | 
 76  | 
   if( pIdx->pPartIdxWhere!=0 ) a[0] -= 10;  assert( 10==sqlite3LogEst(2) );  | 
 
| 
109563
 | 
 0  | 
 76  | 
   if( a[0]<33 ) a[0] = 33;                  assert( 33==sqlite3LogEst(10) );  | 
 
| 
109568
 | 
 2  | 
 76  | 
   for(i=nCopy+1; i<=pIdx->nKeyCol; i++){  | 
 
| 
109573
 | 
 70  | 
 6  | 
   if( IsUniqueIndex(pIdx) ) a[pIdx->nKeyCol] = 0;  | 
 
| 
109587
 | 
 0  | 
 0  | 
   if( db->mallocFailed ){  | 
 
| 
109591
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){  | 
 
| 
109595
 | 
 0  | 
 0  | 
   if( pIndex==0 ){  | 
 
| 
109596
 | 
 0  | 
 0  | 
     if( !ifExists ){  | 
 
| 
109604
 | 
 0  | 
 0  | 
   if( pIndex->idxType!=SQLITE_IDXTYPE_APPDEF ){  | 
 
| 
109615
 | 
 0  | 
 0  | 
     const char *zTab = SCHEMA_TABLE(iDb);  | 
 
| 
109616
 | 
 0  | 
 0  | 
     if( sqlite3AuthCheck(pParse, SQLITE_DELETE, zTab, 0, zDb) ){  | 
 
| 
109619
 | 
 0  | 
 0  | 
     if( !OMIT_TEMPDB && iDb ) code = SQLITE_DROP_TEMP_INDEX;  | 
 
| 
109620
 | 
 0  | 
 0  | 
     if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){  | 
 
| 
109628
 | 
 0  | 
 0  | 
   if( v ){  | 
 
| 
109670
 | 
 2544  | 
 7  | 
   if( (n & (n-1))==0 ){  | 
 
| 
109671
 | 
 75  | 
 2469  | 
     int sz = (n==0) ? 1 : 2*n;  | 
 
| 
109673
 | 
 0  | 
 2544  | 
     if( pNew==0 ){  | 
 
| 
109695
 | 
 2281  | 
 79  | 
   if( pList==0 ){  | 
 
| 
109697
 | 
 0  | 
 2281  | 
     if( pList==0 ) return 0;  | 
 
| 
109706
 | 
 0  | 
 2360  | 
   if( i<0 ){  | 
 
| 
109711
 | 
 0  | 
 2360  | 
   if( IN_RENAME_OBJECT && pList->a[i].zName ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT && pList->a[i].zName ){  | 
 
| 
109722
 | 
 4490  | 
 2281  | 
   if( pList==0 ) return;  | 
 
| 
109723
 | 
 2360  | 
 2281  | 
   for(i=0; inId; i++){  | 
 
| 
109736
 | 
 0  | 
 0  | 
   if( pList==0 ) return -1;  | 
 
| 
109737
 | 
 0  | 
 0  | 
   for(i=0; inId; i++){  | 
 
| 
109738
 | 
 0  | 
 0  | 
     if( sqlite3StrICmp(pList->a[i].zName, zName)==0 ) return i;  | 
 
| 
109777
 | 
 3  | 
 0  | 
   if( (u32)pSrc->nSrc+nExtra>pSrc->nAlloc ){  | 
 
| 
109783
 | 
 0  | 
 3  | 
     if( pNew==0 ){  | 
 
| 
109794
 | 
 0  | 
 3  | 
   for(i=pSrc->nSrc-1; i>=iStart; i--){  | 
 
| 
109801
 | 
 3  | 
 3  | 
   for(i=iStart; i
 | 
 
| 
109853
 | 
 4105  | 
 3  | 
   if( pList==0 ){  | 
 
| 
109855
 | 
 0  | 
 4105  | 
     if( pList==0 ) return 0;  | 
 
| 
109863
 | 
 0  | 
 4108  | 
   if( db->mallocFailed ){  | 
 
| 
109868
 | 
 1416  | 
 2692  | 
   if( pDatabase && pDatabase->z==0 ){  | 
 
| 
 | 
 642  | 
 774  | 
   if( pDatabase && pDatabase->z==0 ){  | 
 
| 
109871
 | 
 774  | 
 3334  | 
   if( pDatabase ){  | 
 
| 
109888
 | 
 1609  | 
 0  | 
   if( pList ){  | 
 
| 
109889
 | 
 1156  | 
 1596  | 
     for(i=0, pItem=pList->a; inSrc; i++, pItem++){  | 
 
| 
109890
 | 
 13  | 
 1143  | 
       if( pItem->iCursor>=0 ) break;  | 
 
| 
109892
 | 
 35  | 
 1108  | 
       if( pItem->pSelect ){  | 
 
| 
109905
 | 
 66  | 
 7187  | 
   if( pList==0 ) return;  | 
 
| 
109906
 | 
 4108  | 
 7187  | 
   for(pItem=pList->a, i=0; inSrc; i++, pItem++){  | 
 
| 
109910
 | 
 0  | 
 4108  | 
     if( pItem->fg.isIndexedBy ) sqlite3DbFree(db, pItem->u1.zIndexedBy);  | 
 
| 
109911
 | 
 0  | 
 4108  | 
     if( pItem->fg.isTabFunc ) sqlite3ExprListDelete(db, pItem->u1.pFuncArg);  | 
 
| 
109948
 | 
 1140  | 
 3  | 
   if( !p && (pOn || pUsing) ){  | 
 
| 
 | 
 1140  | 
 0  | 
   if( !p && (pOn || pUsing) ){  | 
 
| 
 | 
 0  | 
 1140  | 
   if( !p && (pOn || pUsing) ){  | 
 
| 
109949
 | 
 0  | 
 0  | 
     sqlite3ErrorMsg(pParse, "a JOIN clause is required before %s",   | 
 
| 
109955
 | 
 0  | 
 1143  | 
   if( p==0 ){  | 
 
| 
109962
 | 
 0  | 
 1143  | 
   if( IN_RENAME_OBJECT && pItem->zName ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT && pItem->zName ){  | 
 
| 
109963
 | 
 0  | 
 0  | 
     Token *pToken = (ALWAYS(pDatabase) && pDatabase->z) ? pDatabase : pTable;  | 
 
| 
 | 
 0  | 
 0  | 
     Token *pToken = (ALWAYS(pDatabase) && pDatabase->z) ? pDatabase : pTable;  | 
 
| 
109967
 | 
 12  | 
 1131  | 
   if( pAlias->n ){  | 
 
| 
109989
 | 
 1401  | 
 0  | 
   if( p && pIndexedBy->n>0 ){  | 
 
| 
 | 
 0  | 
 1401  | 
   if( p && pIndexedBy->n>0 ){  | 
 
| 
109996
 | 
 0  | 
 0  | 
     if( pIndexedBy->n==1 && !pIndexedBy->z ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pIndexedBy->n==1 && !pIndexedBy->z ){  | 
 
| 
110012
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
110040
 | 
 1140  | 
 0  | 
   if( p ){  | 
 
| 
110042
 | 
 3  | 
 1140  | 
     for(i=p->nSrc-1; i>0; i--){  | 
 
| 
110060
 | 
 0  | 
 133  | 
   if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "BEGIN", 0, 0) ){  | 
 
| 
110064
 | 
 0  | 
 133  | 
   if( !v ) return;  | 
 
| 
110065
 | 
 96  | 
 37  | 
   if( type!=TK_DEFERRED ){  | 
 
| 
110066
 | 
 192  | 
 96  | 
     for(i=0; inDb; i++){  | 
 
| 
110067
 | 
 12  | 
 180  | 
       sqlite3VdbeAddOp2(v, OP_Transaction, i, (type==TK_EXCLUSIVE)+1);  | 
 
| 
110087
 | 
 28  | 
 84  | 
   if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION,   | 
 
| 
 | 
 0  | 
 112  | 
   if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION,   | 
 
| 
110092
 | 
 112  | 
 0  | 
   if( v ){  | 
 
| 
110103
 | 
 34  | 
 0  | 
   if( zName ){  | 
 
| 
110109
 | 
 34  | 
 0  | 
     if( !v || sqlite3AuthCheck(pParse, SQLITE_SAVEPOINT, az[op], zName, 0) ){  | 
 
| 
 | 
 0  | 
 34  | 
     if( !v || sqlite3AuthCheck(pParse, SQLITE_SAVEPOINT, az[op], zName, 0) ){  | 
 
| 
110123
 | 
 30  | 
 2424  | 
   if( db->aDb[1].pBt==0 && !pParse->explain ){  | 
 
| 
 | 
 30  | 
 0  | 
   if( db->aDb[1].pBt==0 && !pParse->explain ){  | 
 
| 
110134
 | 
 0  | 
 30  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
110142
 | 
 0  | 
 30  | 
     if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, -1, 0) ){  | 
 
| 
110157
 | 
 0  | 
 4666  | 
   Parse *pToplevel = sqlite3ParseToplevel(pParse);  | 
 
| 
110163
 | 
 4077  | 
 589  | 
   if( DbMaskTest(pToplevel->cookieMask, iDb)==0 ){  | 
 
| 
110165
 | 
 2451  | 
 1626  | 
     if( !OMIT_TEMPDB && iDb==1 ){  | 
 
| 
110178
 | 
 2  | 
 1  | 
   for(i=0; inDb; i++){  | 
 
| 
110180
 | 
 1  | 
 1  | 
     if( pDb->pBt && (!zDb || 0==sqlite3StrICmp(zDb, pDb->zDbSName)) ){  | 
 
| 
 | 
 0  | 
 1  | 
     if( pDb->pBt && (!zDb || 0==sqlite3StrICmp(zDb, pDb->zDbSName)) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pDb->pBt && (!zDb || 0==sqlite3StrICmp(zDb, pDb->zDbSName)) ){  | 
 
| 
110200
 | 
 0  | 
 3215  | 
   Parse *pToplevel = sqlite3ParseToplevel(pParse);  | 
 
| 
110214
 | 
 0  | 
 39  | 
   Parse *pToplevel = sqlite3ParseToplevel(pParse);  | 
 
| 
110235
 | 
 0  | 
 162  | 
   Parse *pToplevel = sqlite3ParseToplevel(pParse);  | 
 
| 
110254
 | 
 64  | 
 0  | 
   if( onError==OE_Abort ){  | 
 
| 
110275
 | 
 0  | 
 26  | 
   if( pIdx->aColExpr ){  | 
 
| 
110278
 | 
 37  | 
 26  | 
     for(j=0; jnKeyCol; j++){  | 
 
| 
110282
 | 
 11  | 
 26  | 
       if( j ) sqlite3_str_append(&errMsg, ", ", 2);  | 
 
| 
110289
 | 
 19  | 
 7  | 
   sqlite3HaltConstraint(pParse,   | 
 
| 
110306
 | 
 32  | 
 0  | 
   if( pTab->iPKey>=0 ){  | 
 
| 
110326
 | 
 0  | 
 0  | 
   for(i=0; inColumn; i++){  | 
 
| 
110329
 | 
 0  | 
 0  | 
     if( pIndex->aiColumn[i]>=0 && 0==sqlite3StrICmp(z, zColl) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pIndex->aiColumn[i]>=0 && 0==sqlite3StrICmp(z, zColl) ){  | 
 
| 
110345
 | 
 0  | 
 0  | 
   for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){  | 
 
| 
110346
 | 
 0  | 
 0  | 
     if( zColl==0 || collationMatch(zColl, pIndex) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( zColl==0 || collationMatch(zColl, pIndex) ){  | 
 
| 
110369
 | 
 0  | 
 0  | 
   for(iDb=0, pDb=db->aDb; iDbnDb; iDb++, pDb++){  | 
 
| 
110371
 | 
 0  | 
 0  | 
     for(k=sqliteHashFirst(&pDb->pSchema->tblHash);  k; k=sqliteHashNext(k)){  | 
 
| 
110405
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){  | 
 
| 
110409
 | 
 0  | 
 0  | 
   if( pName1==0 ){  | 
 
| 
110412
 | 
 0  | 
 0  | 
   }else if( NEVER(pName2==0) || pName2->z==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( NEVER(pName2==0) || pName2->z==0 ){  | 
 
| 
110416
 | 
 0  | 
 0  | 
     if( !zColl ) return;  | 
 
| 
110418
 | 
 0  | 
 0  | 
     if( pColl ){  | 
 
| 
110426
 | 
 0  | 
 0  | 
   if( iDb<0 ) return;  | 
 
| 
110428
 | 
 0  | 
 0  | 
   if( z==0 ) return;  | 
 
| 
110431
 | 
 0  | 
 0  | 
   if( pTab ){  | 
 
| 
110438
 | 
 0  | 
 0  | 
   if( pIndex ){  | 
 
| 
110458
 | 
 0  | 
 76  | 
   if( pParse->nErr ) return 0;  | 
 
| 
110459
 | 
 6  | 
 70  | 
   if( pIdx->uniqNotNull ){  | 
 
| 
110464
 | 
 76  | 
 0  | 
   if( pKey ){  | 
 
| 
110466
 | 
 204  | 
 76  | 
     for(i=0; i
 | 
 
| 
110468
 | 
 1  | 
 203  | 
       pKey->aColl[i] = zColl==sqlite3StrBINARY ? 0 :  | 
 
| 
110472
 | 
 0  | 
 76  | 
     if( pParse->nErr ){  | 
 
| 
110474
 | 
 0  | 
 0  | 
       if( pIdx->bNoQuery==0 ){  | 
 
| 
110511
 | 
 0  | 
 0  | 
   if( zName && pWith ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zName && pWith ){  | 
 
| 
110513
 | 
 0  | 
 0  | 
     for(i=0; inCte; i++){  | 
 
| 
110514
 | 
 0  | 
 0  | 
       if( sqlite3StrICmp(zName, pWith->a[i].zName)==0 ){  | 
 
| 
110520
 | 
 0  | 
 0  | 
   if( pWith ){  | 
 
| 
110528
 | 
 0  | 
 0  | 
   if( db->mallocFailed ){  | 
 
| 
110548
 | 
 0  | 
 0  | 
   if( pWith ){  | 
 
| 
110550
 | 
 0  | 
 0  | 
     for(i=0; inCte; i++){  | 
 
| 
110587
 | 
 12  | 
 0  | 
   if( db->xCollNeeded ){  | 
 
| 
110589
 | 
 0  | 
 12  | 
     if( !zExternal ) return;  | 
 
| 
110594
 | 
 0  | 
 12  | 
   if( db->xCollNeeded16 ){  | 
 
| 
110599
 | 
 0  | 
 0  | 
     if( zExternal ){  | 
 
| 
110619
 | 
 0  | 
 0  | 
   for(i=0; i<3; i++){  | 
 
| 
110621
 | 
 0  | 
 0  | 
     if( pColl2->xCmp!=0 ){  | 
 
| 
110654
 | 
 16  | 
 0  | 
   if( !p ){  | 
 
| 
110657
 | 
 4  | 
 12  | 
   if( !p || !p->xCmp ){  | 
 
| 
 | 
 0  | 
 4  | 
   if( !p || !p->xCmp ){  | 
 
| 
110664
 | 
 16  | 
 0  | 
   if( p && !p->xCmp && synthCollSeq(db, p) ){  | 
 
| 
 | 
 0  | 
 16  | 
   if( p && !p->xCmp && synthCollSeq(db, p) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p && !p->xCmp && synthCollSeq(db, p) ){  | 
 
| 
110668
 | 
 0  | 
 16  | 
   if( p==0 ){  | 
 
| 
110687
 | 
 1041  | 
 549  | 
   if( pColl && pColl->xCmp==0 ){  | 
 
| 
 | 
 0  | 
 1041  | 
   if( pColl && pColl->xCmp==0 ){  | 
 
| 
110691
 | 
 0  | 
 0  | 
     if( !p ){  | 
 
| 
110722
 | 
 1586  | 
 1412  | 
   if( 0==pColl && create ){  | 
 
| 
 | 
 787  | 
 799  | 
   if( 0==pColl && create ){  | 
 
| 
110725
 | 
 787  | 
 0  | 
     if( pColl ){  | 
 
| 
110741
 | 
 0  | 
 787  | 
       if( pDel!=0 ){  | 
 
| 
110773
 | 
 2998  | 
 978  | 
   if( zName ){  | 
 
| 
110780
 | 
 3177  | 
 799  | 
   if( pColl ) pColl += enc-1;  | 
 
| 
110821
 | 
 0  | 
 13950  | 
   if( nArg==(-2) ) return (p->xSFunc==0) ? 0 : FUNC_PERFECT_MATCH;  | 
 
| 
 | 
 0  | 
 0  | 
   if( nArg==(-2) ) return (p->xSFunc==0) ? 0 : FUNC_PERFECT_MATCH;  | 
 
| 
110824
 | 
 8330  | 
 5620  | 
   if( p->nArg!=nArg && p->nArg>=0 ) return 0;  | 
 
| 
 | 
 8156  | 
 174  | 
   if( p->nArg!=nArg && p->nArg>=0 ) return 0;  | 
 
| 
110828
 | 
 5620  | 
 174  | 
   if( p->nArg==nArg ){  | 
 
| 
110835
 | 
 1794  | 
 4000  | 
   if( enc==(p->funcFlags & SQLITE_FUNC_ENCMASK) ){  | 
 
| 
110837
 | 
 1004  | 
 2996  | 
   }else if( (enc & p->funcFlags & 2)!=0 ){  | 
 
| 
110853
 | 
 53140  | 
 18406  | 
   for(p=sqlite3BuiltinFunctions.a[h]; p; p=p->u.pHash){  | 
 
| 
110854
 | 
 2286  | 
 50854  | 
     if( sqlite3StrICmp(p->zName, zFunc)==0 ){  | 
 
| 
110884
 | 
 8075  | 
 380  | 
   for(i=0; i
 | 
 
| 
110891
 | 
 1805  | 
 6270  | 
     if( pOther ){  | 
 
| 
110944
 | 
 13042  | 
 26038  | 
   while( p ){  | 
 
| 
110946
 | 
 3787  | 
 9255  | 
     if( score>bestScore ){  | 
 
| 
110965
 | 
 14906  | 
 11132  | 
   if( !createFlag && (pBest==0 || (db->mDbFlags & DBFLAG_PreferBuiltin)!=0) ){  | 
 
| 
 | 
 2289  | 
 12617  | 
   if( !createFlag && (pBest==0 || (db->mDbFlags & DBFLAG_PreferBuiltin)!=0) ){  | 
 
| 
 | 
 0  | 
 2289  | 
   if( !createFlag && (pBest==0 || (db->mDbFlags & DBFLAG_PreferBuiltin)!=0) ){  | 
 
| 
110969
 | 
 908  | 
 12617  | 
     while( p ){  | 
 
| 
110971
 | 
 509  | 
 399  | 
       if( score>bestScore ){  | 
 
| 
110983
 | 
 11132  | 
 14906  | 
   if( createFlag && bestScore
 | 
 
| 
 | 
 11132  | 
 0  | 
   if( createFlag && bestScore
 | 
 
| 
 | 
 11132  | 
 0  | 
   if( createFlag && bestScore
 | 
 
| 
110991
 | 
 118405  | 
 11132  | 
     for(z=(u8*)pBest->zName; *z; z++) *z = sqlite3UpperToLower[*z];  | 
 
| 
110993
 | 
 0  | 
 11132  | 
     if( pOther==pBest ){  | 
 
| 
111002
 | 
 13902  | 
 12136  | 
   if( pBest && (pBest->xSFunc || createFlag) ){  | 
 
| 
 | 
 11132  | 
 2770  | 
   if( pBest && (pBest->xSFunc || createFlag) ){  | 
 
| 
 | 
 11132  | 
 0  | 
   if( pBest && (pBest->xSFunc || createFlag) ){  | 
 
| 
111026
 | 
 0  | 
 523  | 
   for(pElem=sqliteHashFirst(&temp2); pElem; pElem=sqliteHashNext(pElem)){  | 
 
| 
111031
 | 
 601  | 
 523  | 
   for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){  | 
 
| 
111038
 | 
 363  | 
 160  | 
   if( pSchema->schemaFlags & DB_SchemaLoaded ){  | 
 
| 
111050
 | 
 256  | 
 251  | 
   if( pBt ){  | 
 
| 
111055
 | 
 0  | 
 507  | 
   if( !p ){  | 
 
| 
111057
 | 
 507  | 
 0  | 
   }else if ( 0==p->file_format ){  | 
 
| 
111106
 | 
 2948  | 
 0  | 
   if( pTab ){  | 
 
| 
111109
 | 
 0  | 
 2948  | 
   if( sqlite3IndexedByLookup(pParse, pItem) ){  | 
 
| 
111132
 | 
 17  | 
 2926  | 
   if( IsVirtual(pTab) ){  | 
 
| 
111135
 | 
 2618  | 
 308  | 
   if( (pTab->tabFlags & (TF_Readonly|TF_Shadow))==0 ) return 0;  | 
 
| 
111137
 | 
 273  | 
 35  | 
   if( (pTab->tabFlags & TF_Readonly)!=0 ){  | 
 
| 
111138
 | 
 273  | 
 0  | 
     return sqlite3WritableSchema(db)==0 && pParse->nested==0;  | 
 
| 
 | 
 0  | 
 273  | 
     return sqlite3WritableSchema(db)==0 && pParse->nested==0;  | 
 
| 
111143
 | 
 0  | 
 0  | 
           && db->pVtabCtx==0  | 
 
| 
111145
 | 
 0  | 
 35  | 
           && db->nVdbeExec==0;  | 
 
| 
 | 
 0  | 
 0  | 
           && db->nVdbeExec==0;  | 
 
| 
111154
 | 
 0  | 
 2943  | 
   if( tabIsReadOnly(pParse, pTab) ){  | 
 
| 
111159
 | 
 2943  | 
 0  | 
   if( !viewOk && pTab->pSelect ){  | 
 
| 
 | 
 0  | 
 2943  | 
   if( !viewOk && pTab->pSelect ){  | 
 
| 
111189
 | 
 0  | 
 0  | 
   if( pFrom ){  | 
 
| 
111351
 | 
 58  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ){  | 
 
| 
 | 
 58  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ){  | 
 
| 
111363
 | 
 0  | 
 58  | 
   if( pTab==0 )  goto delete_from_cleanup;  | 
 
| 
111375
 | 
 58  | 
 0  | 
   bComplex = pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0);  | 
 
| 
 | 
 0  | 
 58  | 
   bComplex = pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0);  | 
 
| 
111393
 | 
 0  | 
 58  | 
   if( sqlite3ViewGetColumnNames(pParse, pTab) ){  | 
 
| 
111397
 | 
 0  | 
 58  | 
   if( sqlite3IsReadOnly(pParse, pTab, (pTrigger?1:0)) ){  | 
 
| 
111405
 | 
 2  | 
 56  | 
   if( rcauth==SQLITE_DENY ){  | 
 
| 
111414
 | 
 8  | 
 56  | 
   for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){  | 
 
| 
111420
 | 
 0  | 
 56  | 
   if( isView ){  | 
 
| 
111427
 | 
 0  | 
 56  | 
   if( v==0 ){  | 
 
| 
111430
 | 
 51  | 
 5  | 
   if( pParse->nested==0 ) sqlite3VdbeCountChanges(v);  | 
 
| 
111437
 | 
 0  | 
 56  | 
   if( isView ){  | 
 
| 
111452
 | 
 0  | 
 56  | 
   if( sqlite3ResolveExprNames(&sNC, pWhere) ){  | 
 
| 
111459
 | 
 0  | 
 56  | 
   if( (db->flags & SQLITE_CountRows)!=0  | 
 
| 
111460
 | 
 0  | 
 0  | 
    && !pParse->nested  | 
 
| 
111461
 | 
 0  | 
 0  | 
    && !pParse->pTriggerTab  | 
 
| 
111479
 | 
 56  | 
 0  | 
   if( rcauth==SQLITE_OK  | 
 
| 
111480
 | 
 28  | 
 28  | 
    && pWhere==0  | 
 
| 
111481
 | 
 28  | 
 0  | 
    && !bComplex  | 
 
| 
111482
 | 
 28  | 
 0  | 
    && !IsVirtual(pTab)  | 
 
| 
111489
 | 
 28  | 
 0  | 
     if( HasRowid(pTab) ){  | 
 
| 
111490
 | 
 0  | 
 28  | 
       sqlite3VdbeAddOp4(v, OP_Clear, pTab->tnum, iDb, memCnt ? memCnt : -1,  | 
 
| 
111493
 | 
 0  | 
 28  | 
     for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
111501
 | 
 0  | 
 28  | 
     if( sNC.ncFlags & NC_VarSelect ) bComplex = 1;  | 
 
| 
111502
 | 
 0  | 
 28  | 
     wcf |= (bComplex ? 0 : WHERE_ONEPASS_MULTIROW);  | 
 
| 
111503
 | 
 28  | 
 0  | 
     if( HasRowid(pTab) ){  | 
 
| 
111531
 | 
 0  | 
 28  | 
     if( pWInfo==0 ) goto delete_from_cleanup;  | 
 
| 
111535
 | 
 24  | 
 4  | 
     if( eOnePass!=ONEPASS_SINGLE ) sqlite3MultiWrite(pParse);  | 
 
| 
111538
 | 
 0  | 
 28  | 
     if( memCnt ){  | 
 
| 
111543
 | 
 0  | 
 28  | 
     if( pPk ){  | 
 
| 
111544
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
111555
 | 
 28  | 
 0  | 
     if( eOnePass!=ONEPASS_OFF ){  | 
 
| 
111561
 | 
 0  | 
 28  | 
       if( aToOpen==0 ){  | 
 
| 
111567
 | 
 28  | 
 0  | 
       if( aiCurOnePass[0]>=0 ) aToOpen[aiCurOnePass[0]-iTabCur] = 0;  | 
 
| 
111568
 | 
 8  | 
 20  | 
       if( aiCurOnePass[1]>=0 ) aToOpen[aiCurOnePass[1]-iTabCur] = 0;  | 
 
| 
111569
 | 
 0  | 
 28  | 
       if( addrEphOpen ) sqlite3VdbeChangeToNoop(v, addrEphOpen);  | 
 
| 
111571
 | 
 0  | 
 0  | 
       if( pPk ){  | 
 
| 
111587
 | 
 28  | 
 0  | 
     if( eOnePass!=ONEPASS_OFF ){  | 
 
| 
111598
 | 
 28  | 
 0  | 
     if( !isView ){  | 
 
| 
111600
 | 
 24  | 
 4  | 
       if( eOnePass==ONEPASS_MULTI ){  | 
 
| 
111608
 | 
 24  | 
 4  | 
       if( eOnePass==ONEPASS_MULTI ) sqlite3VdbeJumpHere(v, iAddrOnce);  | 
 
| 
111614
 | 
 28  | 
 0  | 
     if( eOnePass!=ONEPASS_OFF ){  | 
 
| 
111616
 | 
 28  | 
 0  | 
       if( !IsVirtual(pTab) && aToOpen[iDataCur-iTabCur] ){  | 
 
| 
 | 
 0  | 
 28  | 
       if( !IsVirtual(pTab) && aToOpen[iDataCur-iTabCur] ){  | 
 
| 
111621
 | 
 0  | 
 0  | 
     }else if( pPk ){  | 
 
| 
111623
 | 
 0  | 
 0  | 
       if( IsVirtual(pTab) ){  | 
 
| 
111637
 | 
 0  | 
 28  | 
     if( IsVirtual(pTab) ){  | 
 
| 
111642
 | 
 0  | 
 0  | 
       if( eOnePass==ONEPASS_SINGLE ){  | 
 
| 
111644
 | 
 0  | 
 0  | 
         if( sqlite3IsToplevel(pParse) ){  | 
 
| 
111659
 | 
 28  | 
 0  | 
     if( eOnePass!=ONEPASS_OFF ){  | 
 
| 
111662
 | 
 0  | 
 0  | 
     }else if( pPk ){  | 
 
| 
111675
 | 
 51  | 
 5  | 
   if( pParse->nested==0 && pParse->pTriggerTab==0 ){  | 
 
| 
 | 
 51  | 
 0  | 
   if( pParse->nested==0 && pParse->pTriggerTab==0 ){  | 
 
| 
111683
 | 
 0  | 
 56  | 
   if( memCnt ){  | 
 
| 
111778
 | 
 35  | 
 0  | 
   opSeek = HasRowid(pTab) ? OP_NotExists : OP_NotFound;  | 
 
| 
111779
 | 
 7  | 
 28  | 
   if( eMode==ONEPASS_OFF ){  | 
 
| 
111787
 | 
 35  | 
 0  | 
   if( sqlite3FkRequired(pParse, pTab, 0, 0) || pTrigger ){  | 
 
| 
 | 
 0  | 
 35  | 
   if( sqlite3FkRequired(pParse, pTab, 0, 0) || pTrigger ){  | 
 
| 
111804
 | 
 0  | 
 0  | 
     for(iCol=0; iColnCol; iCol++){  | 
 
| 
111807
 | 
 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) ){  | 
 
| 
111826
 | 
 0  | 
 0  | 
     if( addrStart
 | 
 
| 
111850
 | 
 35  | 
 0  | 
   if( pTab->pSelect==0 ){  | 
 
| 
111854
 | 
 5  | 
 30  | 
     if( pParse->nested==0 || 0==sqlite3_stricmp(pTab->zName, "sqlite_stat1") ){  | 
 
| 
 | 
 0  | 
 5  | 
     if( pParse->nested==0 || 0==sqlite3_stricmp(pTab->zName, "sqlite_stat1") ){  | 
 
| 
111857
 | 
 28  | 
 7  | 
     if( eMode!=ONEPASS_OFF ){  | 
 
| 
111860
 | 
 15  | 
 20  | 
     if( iIdxNoSeek>=0 && iIdxNoSeek!=iDataCur ){  | 
 
| 
 | 
 15  | 
 0  | 
     if( iIdxNoSeek>=0 && iIdxNoSeek!=iDataCur ){  | 
 
| 
111863
 | 
 24  | 
 11  | 
     if( eMode==ONEPASS_MULTI ) p5 |= OPFLAG_SAVEPOSITION;  | 
 
| 
111919
 | 
 0  | 
 270  | 
   pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab);  | 
 
| 
111920
 | 
 15  | 
 270  | 
   for(i=0, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){  | 
 
| 
111922
 | 
 0  | 
 15  | 
     if( aRegIdx!=0 && aRegIdx[i]==0 ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
     if( aRegIdx!=0 && aRegIdx[i]==0 ) continue;  | 
 
| 
111923
 | 
 0  | 
 15  | 
     if( pIdx==pPk ) continue;  | 
 
| 
111924
 | 
 15  | 
 0  | 
     if( iIdxCur+i==iIdxNoSeek ) continue;  | 
 
| 
111928
 | 
 0  | 
 0  | 
     sqlite3VdbeAddOp3(v, OP_IdxDelete, iIdxCur+i, r1,  | 
 
| 
111981
 | 
 5  | 
 1  | 
   if( piPartIdxLabel ){  | 
 
| 
111982
 | 
 0  | 
 5  | 
     if( pIdx->pPartIdxWhere ){  | 
 
| 
111992
 | 
 0  | 
 6  | 
   nCol = (prefixOnly && pIdx->uniqNotNull) ? pIdx->nKeyCol : pIdx->nColumn;  | 
 
| 
 | 
 0  | 
 0  | 
   nCol = (prefixOnly && pIdx->uniqNotNull) ? pIdx->nKeyCol : pIdx->nColumn;  | 
 
| 
111994
 | 
 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;  | 
 
| 
111995
 | 
 14  | 
 6  | 
   for(j=0; j
 | 
 
| 
111996
 | 
 0  | 
 14  | 
     if( pPrior  | 
 
| 
111997
 | 
 0  | 
 0  | 
      && pPrior->aiColumn[j]==pIdx->aiColumn[j]  | 
 
| 
111998
 | 
 0  | 
 0  | 
      && pPrior->aiColumn[j]!=XN_EXPR  | 
 
| 
112012
 | 
 6  | 
 0  | 
   if( regOut ){  | 
 
| 
112014
 | 
 0  | 
 6  | 
     if( pIdx->pTable->pSelect ){  | 
 
| 
112029
 | 
 0  | 
 5  | 
   if( iLabel ){  | 
 
| 
112092
 | 
 0  | 
 0  | 
   mask = sqlite3_user_data(context)==0 ? 0 : -1;  | 
 
| 
112097
 | 
 0  | 
 0  | 
   if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;  | 
 
| 
112098
 | 
 0  | 
 0  | 
   for(i=1; i
 | 
 
| 
112099
 | 
 0  | 
 0  | 
     if( sqlite3_value_type(argv[i])==SQLITE_NULL ) return;  | 
 
| 
112100
 | 
 0  | 
 0  | 
     if( (sqlite3MemCompare(argv[iBest], argv[i], pColl)^mask)>=0 ){  | 
 
| 
112154
 | 
 0  | 
 13  | 
       if( z==0 ) return;  | 
 
| 
112156
 | 
 144  | 
 13  | 
       while( (c = *z)!=0 ){  | 
 
| 
112158
 | 
 3  | 
 141  | 
         if( c>=0xc0 ){  | 
 
| 
112159
 | 
 4  | 
 3  | 
           while( (*z & 0xc0)==0x80 ){ z++; z0++; }  | 
 
| 
112184
 | 
 0  | 
 0  | 
       if( iVal<0 ){  | 
 
| 
112185
 | 
 0  | 
 0  | 
         if( iVal==SMALLEST_INT64 ){  | 
 
| 
112209
 | 
 0  | 
 0  | 
       if( rVal<0 ) rVal = -rVal;  | 
 
| 
112243
 | 
 0  | 
 0  | 
   if( typeHaystack==SQLITE_NULL || typeNeedle==SQLITE_NULL ) return;  | 
 
| 
 | 
 0  | 
 0  | 
   if( typeHaystack==SQLITE_NULL || typeNeedle==SQLITE_NULL ) return;  | 
 
| 
112246
 | 
 0  | 
 0  | 
   if( nNeedle>0 ){  | 
 
| 
112247
 | 
 0  | 
 0  | 
     if( typeHaystack==SQLITE_BLOB && typeNeedle==SQLITE_BLOB ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( typeHaystack==SQLITE_BLOB && typeNeedle==SQLITE_BLOB ){  | 
 
| 
112256
 | 
 0  | 
 0  | 
     if( zNeedle==0 || (nHaystack && zHaystack==0) ) return;  | 
 
| 
 | 
 0  | 
 0  | 
     if( zNeedle==0 || (nHaystack && zHaystack==0) ) return;  | 
 
| 
 | 
 0  | 
 0  | 
     if( zNeedle==0 || (nHaystack && zHaystack==0) ) return;  | 
 
| 
112257
 | 
 0  | 
 0  | 
     while( nNeedle<=nHaystack && memcmp(zHaystack, zNeedle, nNeedle)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( nNeedle<=nHaystack && memcmp(zHaystack, zNeedle, nNeedle)!=0 ){  | 
 
| 
112262
 | 
 0  | 
 0  | 
       }while( isText && (zHaystack[0]&0xc0)==0x80 );  | 
 
| 
 | 
 0  | 
 0  | 
       }while( isText && (zHaystack[0]&0xc0)==0x80 );  | 
 
| 
112264
 | 
 0  | 
 0  | 
     if( nNeedle>nHaystack ) N = 0;  | 
 
| 
112283
 | 
 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 ){  | 
 
| 
112321
 | 
 0  | 
 0  | 
   if( sqlite3_value_type(argv[1])==SQLITE_NULL  | 
 
| 
112322
 | 
 0  | 
 0  | 
    || (argc==3 && sqlite3_value_type(argv[2])==SQLITE_NULL)  | 
 
| 
 | 
 0  | 
 0  | 
    || (argc==3 && sqlite3_value_type(argv[2])==SQLITE_NULL)  | 
 
| 
112328
 | 
 0  | 
 0  | 
   if( p0type==SQLITE_BLOB ){  | 
 
| 
112331
 | 
 0  | 
 0  | 
     if( z==0 ) return;  | 
 
| 
112335
 | 
 0  | 
 0  | 
     if( z==0 ) return;  | 
 
| 
112337
 | 
 0  | 
 0  | 
     if( p1<0 ){  | 
 
| 
112338
 | 
 0  | 
 0  | 
       for(z2=z; *z2; len++){  | 
 
| 
112339
 | 
 0  | 
 0  | 
         SQLITE_SKIP_UTF8(z2);  | 
 
| 
 | 
 0  | 
 0  | 
         SQLITE_SKIP_UTF8(z2);  | 
 
| 
112351
 | 
 0  | 
 0  | 
   if( argc==3 ){  | 
 
| 
112353
 | 
 0  | 
 0  | 
     if( p2<0 ){  | 
 
| 
112360
 | 
 0  | 
 0  | 
   if( p1<0 ){  | 
 
| 
112362
 | 
 0  | 
 0  | 
     if( p1<0 ){  | 
 
| 
112364
 | 
 0  | 
 0  | 
       if( p2<0 ) p2 = 0;  | 
 
| 
112367
 | 
 0  | 
 0  | 
   }else if( p1>0 ){  | 
 
| 
112369
 | 
 0  | 
 0  | 
   }else if( p2>0 ){  | 
 
| 
112372
 | 
 0  | 
 0  | 
   if( negP2 ){  | 
 
| 
112374
 | 
 0  | 
 0  | 
     if( p1<0 ){  | 
 
| 
112380
 | 
 0  | 
 0  | 
   if( p0type!=SQLITE_BLOB ){  | 
 
| 
112381
 | 
 0  | 
 0  | 
     while( *z && p1 ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( *z && p1 ){  | 
 
| 
112382
 | 
 0  | 
 0  | 
       SQLITE_SKIP_UTF8(z);  | 
 
| 
 | 
 0  | 
 0  | 
       SQLITE_SKIP_UTF8(z);  | 
 
| 
112385
 | 
 0  | 
 0  | 
     for(z2=z; *z2 && p2; p2--){  | 
 
| 
 | 
 0  | 
 0  | 
     for(z2=z; *z2 && p2; p2--){  | 
 
| 
112386
 | 
 0  | 
 0  | 
       SQLITE_SKIP_UTF8(z2);  | 
 
| 
 | 
 0  | 
 0  | 
       SQLITE_SKIP_UTF8(z2);  | 
 
| 
112391
 | 
 0  | 
 0  | 
     if( p1+p2>len ){  | 
 
| 
112393
 | 
 0  | 
 0  | 
       if( p2<0 ) p2 = 0;  | 
 
| 
112408
 | 
 0  | 
 0  | 
   if( argc==2 ){  | 
 
| 
112409
 | 
 0  | 
 0  | 
     if( SQLITE_NULL==sqlite3_value_type(argv[1]) ) return;  | 
 
| 
112411
 | 
 0  | 
 0  | 
     if( n>30 ) n = 30;  | 
 
| 
112412
 | 
 0  | 
 0  | 
     if( n<0 ) n = 0;  | 
 
| 
112414
 | 
 0  | 
 0  | 
   if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;  | 
 
| 
112420
 | 
 0  | 
 0  | 
   if( n==0 && r>=0 && r
 | 
 
| 
 | 
 0  | 
 0  | 
   if( n==0 && r>=0 && r
 | 
 
| 
 | 
 0  | 
 0  | 
   if( n==0 && r>=0 && r
 | 
 
| 
112422
 | 
 0  | 
 0  | 
   }else if( n==0 && r<0 && (-r)
 | 
 
| 
 | 
 0  | 
 0  | 
   }else if( n==0 && r<0 && (-r)
 | 
 
| 
 | 
 0  | 
 0  | 
   }else if( n==0 && r<0 && (-r)
 | 
 
| 
112426
 | 
 0  | 
 0  | 
     if( zBuf==0 ){  | 
 
| 
112450
 | 
 0  | 
 20  | 
   if( nByte>db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
112455
 | 
 0  | 
 20  | 
     if( !z ){  | 
 
| 
112474
 | 
 20  | 
 0  | 
   if( z2 ){  | 
 
| 
112476
 | 
 20  | 
 0  | 
     if( z1 ){  | 
 
| 
112477
 | 
 100  | 
 20  | 
       for(i=0; i
 | 
 
| 
112493
 | 
 0  | 
 0  | 
   if( z2 ){  | 
 
| 
112495
 | 
 0  | 
 0  | 
     if( z1 ){  | 
 
| 
112496
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
112525
 | 
 0  | 
 0  | 
   if( r<0 ){  | 
 
| 
112553
 | 
 0  | 
 0  | 
   if( n<1 ){  | 
 
| 
112557
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
112701
 | 
 293  | 
 56  | 
   while( (c = Utf8Read(zPattern))!=0 ){  | 
 
| 
 | 
 286  | 
 63  | 
   while( (c = Utf8Read(zPattern))!=0 ){  | 
 
| 
112702
 | 
 18  | 
 268  | 
     if( c==matchAll ){  /* Match "*" */  | 
 
| 
112706
 | 
 18  | 
 0  | 
       while( (c=Utf8Read(zPattern)) == matchAll || c == matchOne ){  | 
 
| 
 | 
 0  | 
 18  | 
       while( (c=Utf8Read(zPattern)) == matchAll || c == matchOne ){  | 
 
| 
 | 
 0  | 
 18  | 
       while( (c=Utf8Read(zPattern)) == matchAll || c == matchOne ){  | 
 
| 
112707
 | 
 0  | 
 0  | 
         if( c==matchOne && sqlite3Utf8Read(&zString)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( c==matchOne && sqlite3Utf8Read(&zString)==0 ){  | 
 
| 
112711
 | 
 10  | 
 8  | 
       if( c==0 ){  | 
 
| 
112713
 | 
 0  | 
 8  | 
       }else if( c==matchOther ){  | 
 
| 
112714
 | 
 0  | 
 0  | 
         if( pInfo->matchSet==0 ){  | 
 
| 
112716
 | 
 0  | 
 0  | 
           if( c==0 ) return SQLITE_NOWILDCARDMATCH;  | 
 
| 
112721
 | 
 0  | 
 0  | 
           while( *zString ){  | 
 
| 
112723
 | 
 0  | 
 0  | 
             if( bMatch!=SQLITE_NOMATCH ) return bMatch;  | 
 
| 
112724
 | 
 0  | 
 0  | 
             SQLITE_SKIP_UTF8(zString);  | 
 
| 
 | 
 0  | 
 0  | 
             SQLITE_SKIP_UTF8(zString);  | 
 
| 
112739
 | 
 8  | 
 0  | 
       if( c<=0x80 ){  | 
 
| 
112742
 | 
 8  | 
 0  | 
         if( noCase ){  | 
 
| 
112752
 | 
 3  | 
 5  | 
           if( zString[0]==0 ) break;  | 
 
| 
112755
 | 
 5  | 
 0  | 
           if( bMatch!=SQLITE_NOMATCH ) return bMatch;  | 
 
| 
112759
 | 
 0  | 
 0  | 
         while( (c2 = Utf8Read(zString))!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         while( (c2 = Utf8Read(zString))!=0 ){  | 
 
| 
112760
 | 
 0  | 
 0  | 
           if( c2!=c ) continue;  | 
 
| 
112762
 | 
 0  | 
 0  | 
           if( bMatch!=SQLITE_NOMATCH ) return bMatch;  | 
 
| 
112767
 | 
 9  | 
 259  | 
     if( c==matchOther ){  | 
 
| 
112768
 | 
 9  | 
 0  | 
       if( pInfo->matchSet==0 ){  | 
 
| 
112770
 | 
 0  | 
 9  | 
         if( c==0 ) return SQLITE_NOMATCH;  | 
 
| 
112777
 | 
 0  | 
 0  | 
         if( c==0 ) return SQLITE_NOMATCH;  | 
 
| 
112779
 | 
 0  | 
 0  | 
         if( c2=='^' ){  | 
 
| 
112783
 | 
 0  | 
 0  | 
         if( c2==']' ){  | 
 
| 
112784
 | 
 0  | 
 0  | 
           if( c==']' ) seen = 1;  | 
 
| 
112787
 | 
 0  | 
 0  | 
         while( c2 && c2!=']' ){  | 
 
| 
 | 
 0  | 
 0  | 
         while( c2 && c2!=']' ){  | 
 
| 
112788
 | 
 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 ){  | 
 
| 
112790
 | 
 0  | 
 0  | 
             if( c>=prior_c && c<=c2 ) seen = 1;  | 
 
| 
 | 
 0  | 
 0  | 
             if( c>=prior_c && c<=c2 ) seen = 1;  | 
 
| 
112793
 | 
 0  | 
 0  | 
             if( c==c2 ){  | 
 
| 
112800
 | 
 0  | 
 0  | 
         if( c2==0 || (seen ^ invert)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( c2==0 || (seen ^ invert)==0 ){  | 
 
| 
112806
 | 
 240  | 
 28  | 
     c2 = Utf8Read(zString);  | 
 
| 
112807
 | 
 147  | 
 121  | 
     if( c==c2 ) continue;  | 
 
| 
112808
 | 
 121  | 
 0  | 
     if( noCase  && sqlite3Tolower(c)==sqlite3Tolower(c2) && c<0x80 && c2<0x80 ){  | 
 
| 
 | 
 52  | 
 69  | 
     if( noCase  && sqlite3Tolower(c)==sqlite3Tolower(c2) && c<0x80 && c2<0x80 ){  | 
 
| 
 | 
 52  | 
 0  | 
     if( noCase  && sqlite3Tolower(c)==sqlite3Tolower(c2) && c<0x80 && c2<0x80 ){  | 
 
| 
 | 
 52  | 
 0  | 
     if( noCase  && sqlite3Tolower(c)==sqlite3Tolower(c2) && c<0x80 && c2<0x80 ){  | 
 
| 
112811
 | 
 3  | 
 66  | 
     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;  | 
 
| 
112886
 | 
 0  | 
 130  | 
   if( nPat > db->aLimit[SQLITE_LIMIT_LIKE_PATTERN_LENGTH] ){  | 
 
| 
112892
 | 
 0  | 
 130  | 
   if( argc==3 ){  | 
 
| 
112897
 | 
 0  | 
 0  | 
     if( zEsc==0 ) return;  | 
 
| 
112898
 | 
 0  | 
 0  | 
     if( sqlite3Utf8CharLen((char*)zEsc, -1)!=1 ){  | 
 
| 
112907
 | 
 130  | 
 0  | 
   if( zA && zB ){  | 
 
| 
 | 
 130  | 
 0  | 
   if( zA && zB ){  | 
 
| 
112928
 | 
 0  | 
 0  | 
   if( sqlite3MemCompare(argv[0], argv[1], pColl)!=0 ){  | 
 
| 
112997
 | 
 0  | 
 0  | 
   if( (zOptName = (const char*)sqlite3_value_text(argv[0]))!=0 ){  | 
 
| 
113049
 | 
 0  | 
 0  | 
       if( r1!=r2 ){  | 
 
| 
113065
 | 
 0  | 
 0  | 
       if( zText ){  | 
 
| 
113067
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
113086
 | 
 0  | 
 0  | 
       if( zArg==0 ) return;  | 
 
| 
113087
 | 
 0  | 
 0  | 
       for(i=0, n=0; zArg[i]; i++){ if( zArg[i]=='\'' ) n++; }  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0, n=0; zArg[i]; i++){ if( zArg[i]=='\'' ) n++; }  | 
 
| 
113089
 | 
 0  | 
 0  | 
       if( z ){  | 
 
| 
113091
 | 
 0  | 
 0  | 
         for(i=0, j=1; zArg[i]; i++){  | 
 
| 
113093
 | 
 0  | 
 0  | 
           if( zArg[i]=='\'' ){  | 
 
| 
113122
 | 
 0  | 
 0  | 
   if( z && z[0] ) sqlite3_result_int(context, sqlite3Utf8Read(&z));  | 
 
| 
 | 
 0  | 
 0  | 
   if( z && z[0] ) sqlite3_result_int(context, sqlite3Utf8Read(&z));  | 
 
| 
113138
 | 
 0  | 
 0  | 
   if( z==0 ){  | 
 
| 
113142
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
113146
 | 
 0  | 
 0  | 
     if( x<0 || x>0x10ffff ) x = 0xfffd;  | 
 
| 
 | 
 0  | 
 0  | 
     if( x<0 || x>0x10ffff ) x = 0xfffd;  | 
 
| 
113148
 | 
 0  | 
 0  | 
     if( c<0x00080 ){  | 
 
| 
113150
 | 
 0  | 
 0  | 
     }else if( c<0x00800 ){  | 
 
| 
113153
 | 
 0  | 
 0  | 
     }else if( c<0x10000 ){  | 
 
| 
113185
 | 
 0  | 
 0  | 
   if( zHex ){  | 
 
| 
113186
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
113209
 | 
 0  | 
 1  | 
   if( n<0 ) n = 0;  | 
 
| 
113211
 | 
 0  | 
 1  | 
   if( rc ){  | 
 
| 
113243
 | 
 0  | 
 0  | 
   if( zStr==0 ) return;  | 
 
| 
113247
 | 
 0  | 
 0  | 
   if( zPattern==0 ){  | 
 
| 
113252
 | 
 0  | 
 0  | 
   if( zPattern[0]==0 ){  | 
 
| 
113260
 | 
 0  | 
 0  | 
   if( zRep==0 ) return;  | 
 
| 
113266
 | 
 0  | 
 0  | 
   if( zOut==0 ){  | 
 
| 
113271
 | 
 0  | 
 0  | 
   for(i=j=0; i<=loopLimit; i++){  | 
 
| 
113272
 | 
 0  | 
 0  | 
     if( zStr[i]!=zPattern[0] || memcmp(&zStr[i], zPattern, nPattern) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( zStr[i]!=zPattern[0] || memcmp(&zStr[i], zPattern, nPattern) ){  | 
 
| 
113275
 | 
 0  | 
 0  | 
       if( nRep>nPattern ){  | 
 
| 
113279
 | 
 0  | 
 0  | 
         if( nOut-1>db->aLimit[SQLITE_LIMIT_LENGTH] ){  | 
 
| 
113285
 | 
 0  | 
 0  | 
         if( (cntExpand&(cntExpand-1))==0 ){  | 
 
| 
113291
 | 
 0  | 
 0  | 
           if( zOut==0 ){  | 
 
| 
113329
 | 
 0  | 
 0  | 
   if( sqlite3_value_type(argv[0])==SQLITE_NULL ){  | 
 
| 
113333
 | 
 0  | 
 0  | 
   if( zIn==0 ) return;  | 
 
| 
113336
 | 
 0  | 
 0  | 
   if( argc==1 ){  | 
 
| 
113343
 | 
 0  | 
 0  | 
   }else if( (zCharSet = sqlite3_value_text(argv[1]))==0 ){  | 
 
| 
113347
 | 
 0  | 
 0  | 
     for(z=zCharSet, nChar=0; *z; nChar++){  | 
 
| 
113348
 | 
 0  | 
 0  | 
       SQLITE_SKIP_UTF8(z);  | 
 
| 
 | 
 0  | 
 0  | 
       SQLITE_SKIP_UTF8(z);  | 
 
| 
113350
 | 
 0  | 
 0  | 
     if( nChar>0 ){  | 
 
| 
113352
 | 
 0  | 
 0  | 
       if( azChar==0 ){  | 
 
| 
113356
 | 
 0  | 
 0  | 
       for(z=zCharSet, nChar=0; *z; nChar++){  | 
 
| 
113358
 | 
 0  | 
 0  | 
         SQLITE_SKIP_UTF8(z);  | 
 
| 
 | 
 0  | 
 0  | 
         SQLITE_SKIP_UTF8(z);  | 
 
| 
113363
 | 
 0  | 
 0  | 
   if( nChar>0 ){  | 
 
| 
113365
 | 
 0  | 
 0  | 
     if( flags & 1 ){  | 
 
| 
113366
 | 
 0  | 
 0  | 
       while( nIn>0 ){  | 
 
| 
113368
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
113370
 | 
 0  | 
 0  | 
           if( len<=nIn && memcmp(zIn, azChar[i], len)==0 ) break;  | 
 
| 
 | 
 0  | 
 0  | 
           if( len<=nIn && memcmp(zIn, azChar[i], len)==0 ) break;  | 
 
| 
113372
 | 
 0  | 
 0  | 
         if( i>=nChar ) break;  | 
 
| 
113377
 | 
 0  | 
 0  | 
     if( flags & 2 ){  | 
 
| 
113378
 | 
 0  | 
 0  | 
       while( nIn>0 ){  | 
 
| 
113380
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
113382
 | 
 0  | 
 0  | 
           if( len<=nIn && memcmp(&zIn[nIn-len],azChar[i],len)==0 ) break;  | 
 
| 
 | 
 0  | 
 0  | 
           if( len<=nIn && memcmp(&zIn[nIn-len],azChar[i],len)==0 ) break;  | 
 
| 
113384
 | 
 0  | 
 0  | 
         if( i>=nChar ) break;  | 
 
| 
113388
 | 
 0  | 
 0  | 
     if( zCharSet ){  | 
 
| 
113489
 | 
 0  | 
 0  | 
   if( (db->flags & SQLITE_LoadExtFunc)==0 ){  | 
 
| 
113494
 | 
 0  | 
 0  | 
   if( argc==2 ){  | 
 
| 
113499
 | 
 0  | 
 0  | 
   if( zFile && sqlite3_load_extension(db, zFile, zProc, &zErrMsg) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zFile && sqlite3_load_extension(db, zFile, zProc, &zErrMsg) ){  | 
 
| 
113537
 | 
 10  | 
 0  | 
   if( p && type!=SQLITE_NULL ){  | 
 
| 
 | 
 10  | 
 0  | 
   if( p && type!=SQLITE_NULL ){  | 
 
| 
113539
 | 
 10  | 
 0  | 
     if( type==SQLITE_INTEGER ){  | 
 
| 
113542
 | 
 10  | 
 0  | 
       if( (p->approx|p->overflow)==0 && sqlite3AddInt64(&p->iSum, v) ){  | 
 
| 
 | 
 0  | 
 10  | 
       if( (p->approx|p->overflow)==0 && sqlite3AddInt64(&p->iSum, v) ){  | 
 
| 
113561
 | 
 0  | 
 0  | 
   if( ALWAYS(p) && type!=SQLITE_NULL ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( ALWAYS(p) && type!=SQLITE_NULL ){  | 
 
| 
113565
 | 
 0  | 
 0  | 
     if( type==SQLITE_INTEGER && p->approx==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( type==SQLITE_INTEGER && p->approx==0 ){  | 
 
| 
113580
 | 
 5  | 
 0  | 
   if( p && p->cnt>0 ){  | 
 
| 
 | 
 5  | 
 0  | 
   if( p && p->cnt>0 ){  | 
 
| 
113581
 | 
 0  | 
 5  | 
     if( p->overflow ){  | 
 
| 
113583
 | 
 0  | 
 5  | 
     }else if( p->approx ){  | 
 
| 
113593
 | 
 0  | 
 0  | 
   if( p && p->cnt>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p && p->cnt>0 ){  | 
 
| 
113601
 | 
 0  | 
 0  | 
   sqlite3_result_double(context, p ? p->rSum : (double)0);  | 
 
| 
113622
 | 
 247  | 
 50  | 
   if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && p ){  | 
 
| 
 | 
 247  | 
 0  | 
   if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && p ){  | 
 
| 
 | 
 297  | 
 0  | 
   if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0])) && p ){  | 
 
| 
113638
 | 
 33  | 
 4  | 
   sqlite3_result_int64(context, p ? p->n : 0);  | 
 
| 
113645
 | 
 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) ){  | 
 
| 
113669
 | 
 0  | 
 17  | 
   if( !pBest ) return;  | 
 
| 
113671
 | 
 0  | 
 17  | 
   if( sqlite3_value_type(pArg)==SQLITE_NULL ){  | 
 
| 
113672
 | 
 0  | 
 0  | 
     if( pBest->flags ) sqlite3SkipAccumulatorLoad(context);  | 
 
| 
113673
 | 
 0  | 
 17  | 
   }else if( pBest->flags ){  | 
 
| 
113687
 | 
 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) ){  | 
 
| 
113700
 | 
 17  | 
 31  | 
   if( pRes ){  | 
 
| 
113701
 | 
 17  | 
 0  | 
     if( pRes->flags ){  | 
 
| 
113704
 | 
 17  | 
 0  | 
     if( bValue==0 ) sqlite3VdbeMemRelease(pRes);  | 
 
| 
113731
 | 
 0  | 
 0  | 
   if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;  | 
 
| 
113734
 | 
 0  | 
 0  | 
   if( pAccum ){  | 
 
| 
113738
 | 
 0  | 
 0  | 
     if( !firstTerm ){  | 
 
| 
113739
 | 
 0  | 
 0  | 
       if( argc==2 ){  | 
 
| 
113746
 | 
 0  | 
 0  | 
       if( zSep ) sqlite3_str_append(pAccum, zSep, nSep);  | 
 
| 
113750
 | 
 0  | 
 0  | 
     if( zVal ) sqlite3_str_append(pAccum, zVal, nVal);  | 
 
| 
113762
 | 
 0  | 
 0  | 
   if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return;  | 
 
| 
113766
 | 
 0  | 
 0  | 
   if( ALWAYS(pAccum) ){  | 
 
| 
113768
 | 
 0  | 
 0  | 
     if( argc==2 ){  | 
 
| 
113773
 | 
 0  | 
 0  | 
     if( n>=(int)pAccum->nChar ){  | 
 
| 
113779
 | 
 0  | 
 0  | 
     if( pAccum->nChar==0 ) pAccum->mxAlloc = 0;  | 
 
| 
113788
 | 
 0  | 
 0  | 
   if( pAccum ){  | 
 
| 
113789
 | 
 0  | 
 0  | 
     if( pAccum->accError==SQLITE_TOOBIG ){  | 
 
| 
113791
 | 
 0  | 
 0  | 
     }else if( pAccum->accError==SQLITE_NOMEM ){  | 
 
| 
113803
 | 
 0  | 
 0  | 
   if( pAccum ){  | 
 
| 
113804
 | 
 0  | 
 0  | 
     if( pAccum->accError==SQLITE_TOOBIG ){  | 
 
| 
113806
 | 
 0  | 
 0  | 
     }else if( pAccum->accError==SQLITE_NOMEM ){  | 
 
| 
113826
 | 
 0  | 
 251  | 
   if( rc==SQLITE_NOMEM ){  | 
 
| 
113837
 | 
 0  | 
 0  | 
   if( ALWAYS(pDef) ){  | 
 
| 
113849
 | 
 0  | 
 0  | 
   if( caseSensitive ){  | 
 
| 
113859
 | 
 0  | 
 0  | 
   setLikeOptFlag(db, "like",   | 
 
| 
113883
 | 
 167  | 
 1442  | 
   if( pExpr->op!=TK_FUNCTION || !pExpr->x.pList ){  | 
 
| 
 | 
 0  | 
 167  | 
   if( pExpr->op!=TK_FUNCTION || !pExpr->x.pList ){  | 
 
| 
113889
 | 
 167  | 
 0  | 
   if( NEVER(pDef==0) || (pDef->funcFlags & SQLITE_FUNC_LIKE)==0 ){  | 
 
| 
 | 
 50  | 
 117  | 
   if( NEVER(pDef==0) || (pDef->funcFlags & SQLITE_FUNC_LIKE)==0 ){  | 
 
| 
113892
 | 
 117  | 
 0  | 
   if( nExpr<3 ){  | 
 
| 
113897
 | 
 0  | 
 0  | 
     if( pEscape->op!=TK_STRING ) return 0;  | 
 
| 
113899
 | 
 0  | 
 0  | 
     if( zEscape[0]==0 || zEscape[1]!=0 ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
     if( zEscape[0]==0 || zEscape[1]!=0 ) return 0;  | 
 
| 
114264
 | 
 10  | 
 0  | 
   if( nCol==1 ){  | 
 
| 
114272
 | 
 10  | 
 0  | 
     if( pParent->iPKey>=0 ){  | 
 
| 
114273
 | 
 0  | 
 10  | 
       if( !zKey ) return 0;  | 
 
| 
114274
 | 
 10  | 
 0  | 
       if( !sqlite3StrICmp(pParent->aCol[pParent->iPKey].zName, zKey) ) return 0;  | 
 
| 
114276
 | 
 0  | 
 0  | 
   }else if( paiCol ){  | 
 
| 
114279
 | 
 0  | 
 0  | 
     if( !aiCol ) return 1;  | 
 
| 
114283
 | 
 0  | 
 0  | 
   for(pIdx=pParent->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
114284
 | 
 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 ){   | 
 
| 
114289
 | 
 0  | 
 0  | 
       if( zKey==0 ){  | 
 
| 
114293
 | 
 0  | 
 0  | 
         if( IsPrimaryKeyIndex(pIdx) ){  | 
 
| 
114294
 | 
 0  | 
 0  | 
           if( aiCol ){  | 
 
| 
114296
 | 
 0  | 
 0  | 
             for(i=0; iaCol[i].iFrom;  | 
 
| 
114306
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
114311
 | 
 0  | 
 0  | 
           if( iCol<0 ) break; /* No foreign keys against expression indexes */  | 
 
| 
114317
 | 
 0  | 
 0  | 
           if( !zDfltColl ) zDfltColl = sqlite3StrBINARY;  | 
 
| 
114318
 | 
 0  | 
 0  | 
           if( sqlite3StrICmp(pIdx->azColl[i], zDfltColl) ) break;  | 
 
| 
114321
 | 
 0  | 
 0  | 
           for(j=0; j
 | 
 
| 
114322
 | 
 0  | 
 0  | 
             if( sqlite3StrICmp(pFKey->aCol[j].zCol, zIdxCol)==0 ){  | 
 
| 
114323
 | 
 0  | 
 0  | 
               if( aiCol ) aiCol[i] = pFKey->aCol[j].iFrom;  | 
 
| 
114327
 | 
 0  | 
 0  | 
           if( j==nCol ) break;  | 
 
| 
114329
 | 
 0  | 
 0  | 
         if( i==nCol ) break;      /* pIdx is usable */  | 
 
| 
114334
 | 
 0  | 
 0  | 
   if( !pIdx ){  | 
 
| 
114335
 | 
 0  | 
 0  | 
     if( !pParse->disableTriggers ){  | 
 
| 
114403
 | 
 2  | 
 8  | 
   if( nIncr<0 ){  | 
 
| 
114407
 | 
 10  | 
 10  | 
   for(i=0; inCol; i++){  | 
 
| 
114412
 | 
 10  | 
 0  | 
   if( isIgnore==0 ){  | 
 
| 
114413
 | 
 10  | 
 0  | 
     if( pIdx==0 ){  | 
 
| 
114432
 | 
 0  | 
 10  | 
       if( pTab==pFKey->pFrom && nIncr==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pTab==pFKey->pFrom && nIncr==1 ){  | 
 
| 
114450
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
114464
 | 
 0  | 
 0  | 
       if( pTab==pFKey->pFrom && nIncr==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pTab==pFKey->pFrom && nIncr==1 ){  | 
 
| 
114466
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
114471
 | 
 0  | 
 0  | 
           if( pIdx->aiColumn[i]==pTab->iPKey ){  | 
 
| 
114490
 | 
 10  | 
 0  | 
   if( !pFKey->isDeferred && !(pParse->db->flags & SQLITE_DeferFKs)  | 
 
| 
 | 
 10  | 
 0  | 
   if( !pFKey->isDeferred && !(pParse->db->flags & SQLITE_DeferFKs)  | 
 
| 
114491
 | 
 10  | 
 0  | 
    && !pParse->pToplevel   | 
 
| 
114492
 | 
 6  | 
 4  | 
    && !pParse->isMultiWrite   | 
 
| 
114502
 | 
 2  | 
 2  | 
     if( nIncr>0 && pFKey->isDeferred==0 ){  | 
 
| 
 | 
 2  | 
 0  | 
     if( nIncr>0 && pFKey->isDeferred==0 ){  | 
 
| 
114533
 | 
 0  | 
 0  | 
   if( pExpr ){  | 
 
| 
114534
 | 
 0  | 
 0  | 
     if( iCol>=0 && iCol!=pTab->iPKey ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iCol>=0 && iCol!=pTab->iPKey ){  | 
 
| 
114539
 | 
 0  | 
 0  | 
       if( zColl==0 ) zColl = db->pDfltColl->zName;  | 
 
| 
114560
 | 
 0  | 
 0  | 
   if( pExpr ){  | 
 
| 
114623
 | 
 0  | 
 0  | 
   if( nIncr<0 ){  | 
 
| 
114636
 | 
 0  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
114643
 | 
 0  | 
 0  | 
     iCol = pIdx ? pIdx->aiColumn[i] : -1;  | 
 
| 
114645
 | 
 0  | 
 0  | 
     iCol = aiCol ? aiCol[i] : pFKey->aCol[0].iFrom;  | 
 
| 
114664
 | 
 0  | 
 0  | 
   if( pTab==pFKey->pFrom && nIncr>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab==pFKey->pFrom && nIncr>0 ){  | 
 
| 
114668
 | 
 0  | 
 0  | 
     if( HasRowid(pTab) ){  | 
 
| 
114676
 | 
 0  | 
 0  | 
       for(i=0; inKeyCol; i++){  | 
 
| 
114698
 | 
 0  | 
 0  | 
   if( pParse->nErr==0 ){  | 
 
| 
114701
 | 
 0  | 
 0  | 
     if( pWInfo ){  | 
 
| 
114708
 | 
 0  | 
 0  | 
   if( iFkIfZero ){  | 
 
| 
114740
 | 
 0  | 
 32  | 
   if( p ){  | 
 
| 
114769
 | 
 0  | 
 5  | 
   if( (db->flags&SQLITE_ForeignKeys) && !IsVirtual(pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (db->flags&SQLITE_ForeignKeys) && !IsVirtual(pTab) ){  | 
 
| 
114775
 | 
 0  | 
 0  | 
     if( sqlite3FkReferences(pTab)==0 ){  | 
 
| 
114782
 | 
 0  | 
 0  | 
       for(p=pTab->pFKey; p; p=p->pNextFrom){  | 
 
| 
114783
 | 
 0  | 
 0  | 
         if( p->isDeferred || (db->flags & SQLITE_DeferFKs) ) break;  | 
 
| 
 | 
 0  | 
 0  | 
         if( p->isDeferred || (db->flags & SQLITE_DeferFKs) ) break;  | 
 
| 
114785
 | 
 0  | 
 0  | 
       if( !p ) return;  | 
 
| 
114803
 | 
 0  | 
 0  | 
     if( (db->flags & SQLITE_DeferFKs)==0 ){  | 
 
| 
114811
 | 
 0  | 
 0  | 
     if( iSkip ){  | 
 
| 
114837
 | 
 6  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
114839
 | 
 6  | 
 0  | 
     if( aChange[iChildKey]>=0 ) return 1;  | 
 
| 
114840
 | 
 0  | 
 0  | 
     if( iChildKey==pTab->iPKey && bChngRowid ) return 1;  | 
 
| 
 | 
 0  | 
 0  | 
     if( iChildKey==pTab->iPKey && bChngRowid ) return 1;  | 
 
| 
114864
 | 
 0  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
114867
 | 
 0  | 
 0  | 
     for(iKey=0; iKeynCol; iKey++){  | 
 
| 
114868
 | 
 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) ){  | 
 
| 
114870
 | 
 0  | 
 0  | 
         if( zKey ){  | 
 
| 
114871
 | 
 0  | 
 0  | 
           if( 0==sqlite3StrICmp(pCol->zName, zKey) ) return 1;  | 
 
| 
114872
 | 
 0  | 
 0  | 
         }else if( pCol->colFlags & COLFLAG_PRIMKEY ){  | 
 
| 
114887
 | 
 0  | 
 8  | 
   Parse *pTop = sqlite3ParseToplevel(pParse);  | 
 
| 
114888
 | 
 0  | 
 8  | 
   if( pTop->pTriggerPrg ){  | 
 
| 
114890
 | 
 0  | 
 0  | 
     if( (p==pFKey->apTrigger[0] && pFKey->aAction[0]==OE_SetNull)  | 
 
| 
 | 
 0  | 
 0  | 
     if( (p==pFKey->apTrigger[0] && pFKey->aAction[0]==OE_SetNull)  | 
 
| 
114891
 | 
 0  | 
 0  | 
      || (p==pFKey->apTrigger[1] && pFKey->aAction[1]==OE_SetNull)  | 
 
| 
 | 
 0  | 
 0  | 
      || (p==pFKey->apTrigger[1] && pFKey->aAction[1]==OE_SetNull)  | 
 
| 
114937
 | 
 2606  | 
 31  | 
   if( (db->flags&SQLITE_ForeignKeys)==0 ) return;  | 
 
| 
114944
 | 
 10  | 
 31  | 
   for(pFKey=pTab->pFKey; pFKey; pFKey=pFKey->pNextFrom){  | 
 
| 
114953
 | 
 4  | 
 6  | 
     if( aChange   | 
 
| 
114954
 | 
 4  | 
 0  | 
      && sqlite3_stricmp(pTab->zName, pFKey->zTo)!=0  | 
 
| 
114955
 | 
 0  | 
 4  | 
      && fkChildIsModified(pTab, pFKey, aChange, bChngRowid)==0   | 
 
| 
114964
 | 
 0  | 
 10  | 
     if( pParse->disableTriggers ){  | 
 
| 
114969
 | 
 10  | 
 0  | 
     if( !pTo || sqlite3FkLocateIndex(pParse, pTo, pFKey, &pIdx, &aiFree) ){  | 
 
| 
 | 
 0  | 
 10  | 
     if( !pTo || sqlite3FkLocateIndex(pParse, pTo, pFKey, &pIdx, &aiFree) ){  | 
 
| 
114971
 | 
 0  | 
 0  | 
       if( !isIgnoreErrors || db->mallocFailed ) return;  | 
 
| 
 | 
 0  | 
 0  | 
       if( !isIgnoreErrors || db->mallocFailed ) return;  | 
 
| 
114972
 | 
 0  | 
 0  | 
       if( pTo==0 ){  | 
 
| 
114982
 | 
 0  | 
 0  | 
         for(i=0; inCol; i++){  | 
 
| 
114992
 | 
 0  | 
 10  | 
     if( aiFree ){  | 
 
| 
114998
 | 
 10  | 
 10  | 
     for(i=0; inCol; i++){  | 
 
| 
114999
 | 
 0  | 
 10  | 
       if( aiCol[i]==pTab->iPKey ){  | 
 
| 
115007
 | 
 0  | 
 10  | 
       if( db->xAuth ){  | 
 
| 
115009
 | 
 0  | 
 0  | 
         char *zCol = pTo->aCol[pIdx ? pIdx->aiColumn[i] : pTo->iPKey].zName;  | 
 
| 
115022
 | 
 2  | 
 8  | 
     if( regOld!=0 ){  | 
 
| 
115028
 | 
 8  | 
 2  | 
     if( regNew!=0 && !isSetNullAction(pParse, pFKey) ){  | 
 
| 
 | 
 8  | 
 0  | 
     if( regNew!=0 && !isSetNullAction(pParse, pFKey) ){  | 
 
| 
115045
 | 
 15  | 
 31  | 
   for(pFKey = sqlite3FkReferences(pTab); pFKey; pFKey=pFKey->pNextTo){  | 
 
| 
115050
 | 
 0  | 
 15  | 
     if( aChange && fkParentIsModified(pTab, pFKey, aChange, bChngRowid)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( aChange && fkParentIsModified(pTab, pFKey, aChange, bChngRowid)==0 ){  | 
 
| 
115054
 | 
 15  | 
 0  | 
     if( !pFKey->isDeferred && !(db->flags & SQLITE_DeferFKs)   | 
 
| 
 | 
 15  | 
 0  | 
     if( !pFKey->isDeferred && !(db->flags & SQLITE_DeferFKs)   | 
 
| 
115055
 | 
 15  | 
 0  | 
      && !pParse->pToplevel && !pParse->isMultiWrite   | 
 
| 
 | 
 15  | 
 0  | 
      && !pParse->pToplevel && !pParse->isMultiWrite   | 
 
| 
115063
 | 
 0  | 
 0  | 
     if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ){  | 
 
| 
115064
 | 
 0  | 
 0  | 
       if( !isIgnoreErrors || db->mallocFailed ) return;  | 
 
| 
 | 
 0  | 
 0  | 
       if( !isIgnoreErrors || db->mallocFailed ) return;  | 
 
| 
115072
 | 
 0  | 
 0  | 
     if( pSrc ){  | 
 
| 
115079
 | 
 0  | 
 0  | 
       if( regNew!=0 ){  | 
 
| 
115082
 | 
 0  | 
 0  | 
       if( regOld!=0 ){  | 
 
| 
115102
 | 
 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 ){  | 
 
| 
115124
 | 
 2  | 
 0  | 
   if( pParse->db->flags&SQLITE_ForeignKeys ){  | 
 
| 
115127
 | 
 2  | 
 2  | 
     for(p=pTab->pFKey; p; p=p->pNextFrom){  | 
 
| 
115128
 | 
 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);  | 
 
| 
115130
 | 
 0  | 
 2  | 
     for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){  | 
 
| 
115133
 | 
 0  | 
 0  | 
       if( pIdx ){  | 
 
| 
115134
 | 
 0  | 
 0  | 
         for(i=0; inKeyCol; i++){  | 
 
| 
115136
 | 
 0  | 
 0  | 
           mask |= COLUMN_MASK(pIdx->aiColumn[i]);  | 
 
| 
115174
 | 
 17  | 
 329  | 
   if( pParse->db->flags&SQLITE_ForeignKeys ){  | 
 
| 
115175
 | 
 0  | 
 17  | 
     if( !aChange ){  | 
 
| 
115179
 | 
 0  | 
 0  | 
       eRet = (sqlite3FkReferences(pTab) || pTab->pFKey);  | 
 
| 
 | 
 0  | 
 0  | 
       eRet = (sqlite3FkReferences(pTab) || pTab->pFKey);  | 
 
| 
115186
 | 
 2  | 
 17  | 
       for(p=pTab->pFKey; p; p=p->pNextFrom){  | 
 
| 
115187
 | 
 0  | 
 2  | 
         if( 0==sqlite3_stricmp(pTab->zName, p->zTo) ) return 2;  | 
 
| 
115188
 | 
 2  | 
 0  | 
         if( fkChildIsModified(pTab, p, aChange, chngRowid) ){  | 
 
| 
115194
 | 
 0  | 
 17  | 
       for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){  | 
 
| 
115195
 | 
 0  | 
 0  | 
         if( fkParentIsModified(pTab, p, aChange, chngRowid) ){  | 
 
| 
115196
 | 
 0  | 
 0  | 
           if( p->aAction[1]!=OE_None ) return 2;  | 
 
| 
115246
 | 
 0  | 
 0  | 
   if( action==OE_Restrict && (db->flags & SQLITE_DeferFKs) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( action==OE_Restrict && (db->flags & SQLITE_DeferFKs) ){  | 
 
| 
115251
 | 
 0  | 
 0  | 
   if( action!=OE_None && !pTrigger ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( action!=OE_None && !pTrigger ){  | 
 
| 
115263
 | 
 0  | 
 0  | 
     if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ) return 0;  | 
 
| 
115266
 | 
 0  | 
 0  | 
     for(i=0; inCol; i++){  | 
 
| 
115274
 | 
 0  | 
 0  | 
       iFromCol = aiCol ? aiCol[i] : pFKey->aCol[0].iFrom;  | 
 
| 
115279
 | 
 0  | 
 0  | 
                    pTab->aCol[pIdx ? pIdx->aiColumn[i] : pTab->iPKey].zName);  | 
 
| 
115299
 | 
 0  | 
 0  | 
       if( pChanges ){  | 
 
| 
115311
 | 
 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) ){  | 
 
| 
115313
 | 
 0  | 
 0  | 
         if( action==OE_Cascade ){  | 
 
| 
115317
 | 
 0  | 
 0  | 
         }else if( action==OE_SetDflt ){  | 
 
| 
115319
 | 
 0  | 
 0  | 
           if( pDflt ){  | 
 
| 
115336
 | 
 0  | 
 0  | 
     if( action==OE_Restrict ){  | 
 
| 
115343
 | 
 0  | 
 0  | 
       if( pRaise ){  | 
 
| 
115363
 | 
 0  | 
 0  | 
     if( pTrigger ){  | 
 
| 
115371
 | 
 0  | 
 0  | 
       if( pWhen ){  | 
 
| 
115384
 | 
 0  | 
 0  | 
     if( db->mallocFailed==1 ){  | 
 
| 
115395
 | 
 0  | 
 0  | 
         if( !pChanges ){   | 
 
| 
115406
 | 
 0  | 
 0  | 
     pTrigger->op = (pChanges ? TK_UPDATE : TK_DELETE);  | 
 
| 
115428
 | 
 2  | 
 35  | 
   if( pParse->db->flags&SQLITE_ForeignKeys ){  | 
 
| 
115430
 | 
 0  | 
 2  | 
     for(pFKey = sqlite3FkReferences(pTab); pFKey; pFKey=pFKey->pNextTo){  | 
 
| 
115431
 | 
 0  | 
 0  | 
       if( aChange==0 || fkParentIsModified(pTab, pFKey, aChange, bChngRowid) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( aChange==0 || fkParentIsModified(pTab, pFKey, aChange, bChngRowid) ){  | 
 
| 
115433
 | 
 0  | 
 0  | 
         if( pAct ){  | 
 
| 
115454
 | 
 16  | 
 872  | 
   for(pFKey=pTab->pFKey; pFKey; pFKey=pNext){  | 
 
| 
115457
 | 
 8  | 
 8  | 
     if( !db || db->pnBytesFreed==0 ){  | 
 
| 
 | 
 8  | 
 0  | 
     if( !db || db->pnBytesFreed==0 ){  | 
 
| 
115458
 | 
 0  | 
 16  | 
       if( pFKey->pPrevTo ){  | 
 
| 
115462
 | 
 0  | 
 16  | 
         const char *z = (p ? pFKey->pNextTo->zTo : pFKey->zTo);  | 
 
| 
115465
 | 
 0  | 
 16  | 
       if( pFKey->pNextTo ){  | 
 
| 
115527
 | 
 3972  | 
 0  | 
   if( HasRowid(pTab) ){  | 
 
| 
115561
 | 
 15  | 
 24  | 
   if( !pIdx->zColAff ){  | 
 
| 
115573
 | 
 0  | 
 15  | 
     if( !pIdx->zColAff ){  | 
 
| 
115577
 | 
 43  | 
 15  | 
     for(n=0; nnColumn; n++){  | 
 
| 
115579
 | 
 28  | 
 15  | 
       if( x>=0 ){  | 
 
| 
115581
 | 
 15  | 
 0  | 
       }else if( x==XN_ROWID ){  | 
 
| 
115588
 | 
 0  | 
 0  | 
         if( aff==0 ) aff = SQLITE_AFF_BLOB;  | 
 
| 
115621
 | 
 297  | 
 2571  | 
   if( zColAff==0 ){  | 
 
| 
115624
 | 
 0  | 
 297  | 
     if( !zColAff ){  | 
 
| 
115629
 | 
 1062  | 
 297  | 
     for(i=0; inCol; i++){  | 
 
| 
115634
 | 
 363  | 
 49  | 
     }while( i>=0 && zColAff[i]==SQLITE_AFF_BLOB );  | 
 
| 
 | 
 115  | 
 248  | 
     }while( i>=0 && zColAff[i]==SQLITE_AFF_BLOB );  | 
 
| 
115639
 | 
 457  | 
 2411  | 
   if( i ){  | 
 
| 
115640
 | 
 19  | 
 438  | 
     if( iReg ){  | 
 
| 
115659
 | 
 0  | 
 2  | 
   VTable *pVTab = IsVirtual(pTab) ? sqlite3GetVTable(p->db, pTab) : 0;  | 
 
| 
115662
 | 
 34  | 
 2  | 
   for(i=1; i
 | 
 
| 
115665
 | 
 0  | 
 34  | 
     if( pOp->opcode==OP_OpenRead && pOp->p3==iDb ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pOp->opcode==OP_OpenRead && pOp->p3==iDb ){  | 
 
| 
115668
 | 
 0  | 
 0  | 
       if( tnum==pTab->tnum ){  | 
 
| 
115671
 | 
 0  | 
 0  | 
       for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){  | 
 
| 
115672
 | 
 0  | 
 0  | 
         if( tnum==pIndex->tnum ){  | 
 
| 
115678
 | 
 0  | 
 34  | 
     if( pOp->opcode==OP_VOpen && pOp->p4.pVtab==pVTab ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pOp->opcode==OP_VOpen && pOp->p4.pVtab==pVTab ){  | 
 
| 
115719
 | 
 2  | 
 2648  | 
   if( (pTab->tabFlags & TF_Autoincrement)!=0  | 
 
| 
115720
 | 
 2  | 
 0  | 
    && (pParse->db->mDbFlags & DBFLAG_Vacuum)==0  | 
 
| 
115722
 | 
 0  | 
 2  | 
     Parse *pToplevel = sqlite3ParseToplevel(pParse);  | 
 
| 
115729
 | 
 2  | 
 0  | 
     if( pSeqTab==0  | 
 
| 
115730
 | 
 2  | 
 0  | 
      || !HasRowid(pSeqTab)  | 
 
| 
115731
 | 
 2  | 
 0  | 
      || IsVirtual(pSeqTab)  | 
 
| 
115732
 | 
 0  | 
 2  | 
      || pSeqTab->nCol!=2  | 
 
| 
115740
 | 
 0  | 
 2  | 
     while( pInfo && pInfo->pTab!=pTab ){ pInfo = pInfo->pNext; }  | 
 
| 
 | 
 0  | 
 0  | 
     while( pInfo && pInfo->pTab!=pTab ){ pInfo = pInfo->pNext; }  | 
 
| 
115741
 | 
 2  | 
 0  | 
     if( pInfo==0 ){  | 
 
| 
115743
 | 
 0  | 
 2  | 
       if( pInfo==0 ) return 0;  | 
 
| 
115774
 | 
 2  | 
 4397  | 
   for(p = pParse->pAinc; p; p = p->pNext){  | 
 
| 
115797
 | 
 0  | 
 2  | 
     if( aOp==0 ) break;  | 
 
| 
115822
 | 
 2  | 
 2648  | 
   if( memId>0 ){  | 
 
| 
115840
 | 
 2  | 
 2  | 
   for(p = pParse->pAinc; p; p = p->pNext){  | 
 
| 
115860
 | 
 0  | 
 2  | 
     if( aOp==0 ) break;  | 
 
| 
115872
 | 
 2  | 
 2666  | 
   if( pParse->pAinc ) autoIncrementEnd(pParse);  | 
 
| 
116036
 | 
 2650  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ){  | 
 
| 
 | 
 2650  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ){  | 
 
| 
116045
 | 
 2650  | 
 0  | 
   if( pSelect && (pSelect->selFlags & SF_Values)!=0 && pSelect->pPrior==0 ){  | 
 
| 
 | 
 2650  | 
 0  | 
   if( pSelect && (pSelect->selFlags & SF_Values)!=0 && pSelect->pPrior==0 ){  | 
 
| 
 | 
 2648  | 
 2  | 
   if( pSelect && (pSelect->selFlags & SF_Values)!=0 && pSelect->pPrior==0 ){  | 
 
| 
116056
 | 
 0  | 
 2650  | 
   if( pTab==0 ){  | 
 
| 
116061
 | 
 0  | 
 2650  | 
   if( sqlite3AuthCheck(pParse, SQLITE_INSERT, pTab->zName, 0,  | 
 
| 
116087
 | 
 0  | 
 2650  | 
   if( sqlite3ViewGetColumnNames(pParse, pTab) ){  | 
 
| 
116093
 | 
 0  | 
 2650  | 
   if( sqlite3IsReadOnly(pParse, pTab, tmask) ){  | 
 
| 
116100
 | 
 0  | 
 2650  | 
   if( v==0 ) goto insert_cleanup;  | 
 
| 
116101
 | 
 2612  | 
 38  | 
   if( pParse->nested==0 ) sqlite3VdbeCountChanges(v);  | 
 
| 
116102
 | 
 2648  | 
 2  | 
   sqlite3BeginWriteOperation(pParse, pSelect || pTrigger, iDb);  | 
 
| 
 | 
 0  | 
 2648  | 
   sqlite3BeginWriteOperation(pParse, pSelect || pTrigger, iDb);  | 
 
| 
116114
 | 
 369  | 
 2281  | 
   if( pColumn==0 && xferOptimization(pParse, pTab, pSelect, onError, iDb) ){  | 
 
| 
 | 
 0  | 
 369  | 
   if( pColumn==0 && xferOptimization(pParse, pTab, pSelect, onError, iDb) ){  | 
 
| 
116131
 | 
 17  | 
 2633  | 
   if( IsVirtual(pTab) ){  | 
 
| 
116149
 | 
 2281  | 
 369  | 
   if( pColumn ){  | 
 
| 
116150
 | 
 2360  | 
 2281  | 
     for(i=0; inId; i++){  | 
 
| 
116153
 | 
 2360  | 
 2281  | 
     for(i=0; inId; i++){  | 
 
| 
116154
 | 
 2515  | 
 0  | 
       for(j=0; jnCol; j++){  | 
 
| 
116155
 | 
 2360  | 
 155  | 
         if( sqlite3StrICmp(pColumn->a[i].zName, pTab->aCol[j].zName)==0 ){  | 
 
| 
116157
 | 
 47  | 
 2313  | 
           if( i!=j ) bIdListInOrder = 0;  | 
 
| 
116158
 | 
 14  | 
 2346  | 
           if( j==pTab->iPKey ){  | 
 
| 
116164
 | 
 0  | 
 2360  | 
       if( j>=pTab->nCol ){  | 
 
| 
116165
 | 
 0  | 
 0  | 
         if( sqlite3IsRowid(pColumn->a[i].zName) && !withoutRowid ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( sqlite3IsRowid(pColumn->a[i].zName) && !withoutRowid ){  | 
 
| 
116183
 | 
 2  | 
 2648  | 
   if( pSelect ){  | 
 
| 
116194
 | 
 2  | 
 0  | 
     dest.iSdst = bIdListInOrder ? regData : 0;  | 
 
| 
116198
 | 
 2  | 
 0  | 
     if( rc || db->mallocFailed || pParse->nErr ) goto insert_cleanup;  | 
 
| 
 | 
 2  | 
 0  | 
     if( rc || db->mallocFailed || pParse->nErr ) goto insert_cleanup;  | 
 
| 
 | 
 2  | 
 0  | 
     if( rc || db->mallocFailed || pParse->nErr ) goto insert_cleanup;  | 
 
| 
116213
 | 
 2  | 
 0  | 
     if( pTrigger || readsTable(pParse, iDb, pTab) ){  | 
 
| 
 | 
 0  | 
 2  | 
     if( pTrigger || readsTable(pParse, iDb, pTab) ){  | 
 
| 
116217
 | 
 0  | 
 2  | 
     if( useTempTable ){  | 
 
| 
116254
 | 
 2648  | 
 0  | 
     if( pList ){  | 
 
| 
116256
 | 
 0  | 
 2648  | 
       if( sqlite3ResolveExprListNames(&sNC, pList) ){  | 
 
| 
116268
 | 
 369  | 
 2281  | 
   if( pColumn==0 && nColumn>0 ){  | 
 
| 
 | 
 369  | 
 0  | 
   if( pColumn==0 && nColumn>0 ){  | 
 
| 
116275
 | 
 3135  | 
 2650  | 
   for(i=0; inCol; i++){  | 
 
| 
116278
 | 
 369  | 
 2281  | 
   if( pColumn==0 && nColumn && nColumn!=(pTab->nCol-nHidden) ){  | 
 
| 
 | 
 369  | 
 0  | 
   if( pColumn==0 && nColumn && nColumn!=(pTab->nCol-nHidden) ){  | 
 
| 
 | 
 0  | 
 369  | 
   if( pColumn==0 && nColumn && nColumn!=(pTab->nCol-nHidden) ){  | 
 
| 
116284
 | 
 2281  | 
 369  | 
   if( pColumn!=0 && nColumn!=pColumn->nId ){  | 
 
| 
 | 
 0  | 
 2281  | 
   if( pColumn!=0 && nColumn!=pColumn->nId ){  | 
 
| 
116291
 | 
 0  | 
 2650  | 
   if( (db->flags & SQLITE_CountRows)!=0  | 
 
| 
116292
 | 
 0  | 
 0  | 
    && !pParse->nested  | 
 
| 
116293
 | 
 0  | 
 0  | 
    && !pParse->pTriggerTab  | 
 
| 
116300
 | 
 2650  | 
 0  | 
   if( !isView ){  | 
 
| 
116305
 | 
 0  | 
 2650  | 
     if( aRegIdx==0 ){  | 
 
| 
116308
 | 
 32  | 
 2650  | 
     for(i=0, pIdx=pTab->pIndex; ipNext, i++){  | 
 
| 
116315
 | 
 0  | 
 2650  | 
   if( pUpsert ){  | 
 
| 
116321
 | 
 0  | 
 0  | 
     if( pUpsert->pUpsertTarget ){  | 
 
| 
116329
 | 
 0  | 
 2650  | 
   if( useTempTable ){  | 
 
| 
116341
 | 
 2  | 
 2648  | 
   }else if( pSelect ){  | 
 
| 
116357
 | 
 0  | 
 2650  | 
   if( tmask & TRIGGER_BEFORE ){  | 
 
| 
116366
 | 
 0  | 
 0  | 
     if( ipkColumn<0 ){  | 
 
| 
116371
 | 
 0  | 
 0  | 
       if( useTempTable ){  | 
 
| 
116390
 | 
 0  | 
 0  | 
     for(i=j=0; inCol; i++){  | 
 
| 
116391
 | 
 0  | 
 0  | 
       if( pColumn ){  | 
 
| 
116392
 | 
 0  | 
 0  | 
         for(j=0; jnId; j++){  | 
 
| 
116393
 | 
 0  | 
 0  | 
           if( pColumn->a[j].idx==i ) break;  | 
 
| 
116396
 | 
 0  | 
 0  | 
       if( (!useTempTable && !pList) || (pColumn && j>=pColumn->nId)  | 
 
| 
 | 
 0  | 
 0  | 
       if( (!useTempTable && !pList) || (pColumn && j>=pColumn->nId)  | 
 
| 
 | 
 0  | 
 0  | 
       if( (!useTempTable && !pList) || (pColumn && j>=pColumn->nId)  | 
 
| 
116397
 | 
 0  | 
 0  | 
             || (pColumn==0 && IsOrdinaryHiddenColumn(&pTab->aCol[i])) ){  | 
 
| 
116399
 | 
 0  | 
 0  | 
       }else if( useTempTable ){  | 
 
| 
116405
 | 
 0  | 
 0  | 
       if( pColumn==0 && !IsOrdinaryHiddenColumn(&pTab->aCol[i]) ) j++;  | 
 
| 
116413
 | 
 0  | 
 0  | 
     if( !isView ){  | 
 
| 
116427
 | 
 2650  | 
 0  | 
   if( !isView ){  | 
 
| 
116428
 | 
 17  | 
 2633  | 
     if( IsVirtual(pTab) ){  | 
 
| 
116432
 | 
 43  | 
 2607  | 
     if( ipkColumn>=0 ){  | 
 
| 
116433
 | 
 0  | 
 43  | 
       if( useTempTable ){  | 
 
| 
116435
 | 
 2  | 
 41  | 
       }else if( pSelect ){  | 
 
| 
116442
 | 
 0  | 
 41  | 
         if( pOp->opcode==OP_Null && !IsVirtual(pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( pOp->opcode==OP_Null && !IsVirtual(pTab) ){  | 
 
| 
116453
 | 
 43  | 
 0  | 
       if( !appendFlag ){  | 
 
| 
116455
 | 
 43  | 
 0  | 
         if( !IsVirtual(pTab) ){  | 
 
| 
116465
 | 
 2590  | 
 17  | 
     }else if( IsVirtual(pTab) || withoutRowid ){  | 
 
| 
 | 
 0  | 
 2590  | 
     }else if( IsVirtual(pTab) || withoutRowid ){  | 
 
| 
116477
 | 
 3135  | 
 2650  | 
     for(i=0; inCol; i++){  | 
 
| 
116479
 | 
 59  | 
 3076  | 
       if( i==pTab->iPKey ){  | 
 
| 
116488
 | 
 679  | 
 2397  | 
       if( pColumn==0 ){  | 
 
| 
116489
 | 
 0  | 
 679  | 
         if( IsHiddenColumn(&pTab->aCol[i]) ){  | 
 
| 
116496
 | 
 2561  | 
 51  | 
         for(j=0; jnId; j++){  | 
 
| 
116497
 | 
 2346  | 
 215  | 
           if( pColumn->a[j].idx==i ) break;  | 
 
| 
116500
 | 
 3076  | 
 0  | 
       if( j<0 || nColumn==0 || (pColumn && j>=pColumn->nId) ){  | 
 
| 
 | 
 3076  | 
 0  | 
       if( j<0 || nColumn==0 || (pColumn && j>=pColumn->nId) ){  | 
 
| 
 | 
 2397  | 
 679  | 
       if( j<0 || nColumn==0 || (pColumn && j>=pColumn->nId) ){  | 
 
| 
 | 
 51  | 
 2346  | 
       if( j<0 || nColumn==0 || (pColumn && j>=pColumn->nId) ){  | 
 
| 
116502
 | 
 0  | 
 3025  | 
       }else if( useTempTable ){  | 
 
| 
116504
 | 
 2  | 
 3023  | 
       }else if( pSelect ){  | 
 
| 
116505
 | 
 0  | 
 2  | 
         if( regFromSelect!=regData ){  | 
 
| 
116517
 | 
 17  | 
 2633  | 
     if( IsVirtual(pTab) ){  | 
 
| 
116521
 | 
 4  | 
 13  | 
       sqlite3VdbeChangeP5(v, onError==OE_Default ? OE_Abort : onError);  | 
 
| 
116541
 | 
 18  | 
 2615  | 
       bUseSeek = (isReplace==0 || (pTrigger==0 &&  | 
 
| 
 | 
 18  | 
 0  | 
       bUseSeek = (isReplace==0 || (pTrigger==0 &&  | 
 
| 
 | 
 0  | 
 18  | 
       bUseSeek = (isReplace==0 || (pTrigger==0 &&  | 
 
| 
116542
 | 
 0  | 
 0  | 
           ((db->flags & SQLITE_ForeignKeys)==0 || sqlite3FkReferences(pTab)==0)  | 
 
| 
116552
 | 
 0  | 
 2650  | 
   if( regRowCount ){  | 
 
| 
116556
 | 
 0  | 
 2650  | 
   if( pTrigger ){  | 
 
| 
116566
 | 
 0  | 
 2650  | 
   if( useTempTable ){  | 
 
| 
116570
 | 
 2  | 
 2648  | 
   }else if( pSelect ){  | 
 
| 
116580
 | 
 2612  | 
 38  | 
   if( pParse->nested==0 && pParse->pTriggerTab==0 ){  | 
 
| 
 | 
 2612  | 
 0  | 
   if( pParse->nested==0 && pParse->pTriggerTab==0 ){  | 
 
| 
116589
 | 
 0  | 
 2650  | 
   if( regRowCount ){  | 
 
| 
116630
 | 
 0  | 
 0  | 
   if( pExpr->op==TK_COLUMN ){  | 
 
| 
116632
 | 
 0  | 
 0  | 
     if( pExpr->iColumn>=0 ){  | 
 
| 
116633
 | 
 0  | 
 0  | 
       if( pWalker->u.aiCol[pExpr->iColumn]>=0 ){  | 
 
| 
116669
 | 
 0  | 
 0  | 
   if( !chngRowid ){  | 
 
| 
116808
 | 
 2868  | 
 0  | 
   if( HasRowid(pTab) ){  | 
 
| 
116822
 | 
 4216  | 
 2868  | 
   for(i=0; i
 | 
 
| 
116823
 | 
 61  | 
 4155  | 
     if( i==pTab->iPKey ){  | 
 
| 
116826
 | 
 1160  | 
 2995  | 
     if( aiChng && aiChng[i]<0 ){  | 
 
| 
 | 
 25  | 
 1135  | 
     if( aiChng && aiChng[i]<0 ){  | 
 
| 
116831
 | 
 4056  | 
 74  | 
     if( onError==OE_None ) continue;  /* This column is allowed to be NULL */  | 
 
| 
116832
 | 
 0  | 
 74  | 
     if( overrideError!=OE_Default ){  | 
 
| 
116834
 | 
 74  | 
 0  | 
     }else if( onError==OE_Default ){  | 
 
| 
116837
 | 
 0  | 
 74  | 
     if( onError==OE_Replace && pTab->aCol[i].pDflt==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( onError==OE_Replace && pTab->aCol[i].pDflt==0 ){  | 
 
| 
116876
 | 
 0  | 
 2868  | 
   if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){  | 
 
| 
116879
 | 
 0  | 
 0  | 
     onError = overrideError!=OE_Default ? overrideError : OE_Abort;  | 
 
| 
116880
 | 
 0  | 
 0  | 
     for(i=0; inExpr; i++){  | 
 
| 
116883
 | 
 0  | 
 0  | 
       if( aiChng  | 
 
| 
116884
 | 
 0  | 
 0  | 
        && !sqlite3ExprReferencesUpdatedColumn(pExpr, aiChng, pkChng)  | 
 
| 
116893
 | 
 0  | 
 0  | 
       if( onError==OE_Ignore ){  | 
 
| 
116897
 | 
 0  | 
 0  | 
         if( zName==0 ) zName = pTab->zName;  | 
 
| 
116898
 | 
 0  | 
 0  | 
         if( onError==OE_Replace ) onError = OE_Abort; /* IMP: R-15569-63625 */  | 
 
| 
116938
 | 
 0  | 
 2868  | 
   if( pUpsert ){  | 
 
| 
116939
 | 
 0  | 
 0  | 
     if( pUpsert->pUpsertTarget==0 ){  | 
 
| 
116945
 | 
 0  | 
 0  | 
     }else if( (pUpIdx = pUpsert->pUpsertIdx)!=0 ){  | 
 
| 
116956
 | 
 43  | 
 2825  | 
   if( pkChng && pPk==0 ){  | 
 
| 
 | 
 43  | 
 0  | 
   if( pkChng && pPk==0 ){  | 
 
| 
116961
 | 
 11  | 
 32  | 
     if( overrideError!=OE_Default ){  | 
 
| 
116963
 | 
 32  | 
 0  | 
     }else if( onError==OE_Default ){  | 
 
| 
116968
 | 
 0  | 
 43  | 
     if( pUpsert && pUpsert->pUpsertIdx==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pUpsert && pUpsert->pUpsertIdx==0 ){  | 
 
| 
116969
 | 
 0  | 
 0  | 
       if( pUpsert->pUpsertSet==0 ){  | 
 
| 
116981
 | 
 11  | 
 32  | 
     if( onError==OE_Replace      /* IPK rule is REPLACE */  | 
 
| 
116982
 | 
 0  | 
 11  | 
      && onError!=overrideError   /* Rules for other contraints are different */  | 
 
| 
116983
 | 
 0  | 
 0  | 
      && pTab->pIndex             /* There exist other constraints */  | 
 
| 
116989
 | 
 0  | 
 43  | 
     if( isUpdate ){  | 
 
| 
117043
 | 
 0  | 
 11  | 
         if( db->flags&SQLITE_RecTriggers ){  | 
 
| 
117046
 | 
 11  | 
 0  | 
         if( pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0) ){  | 
 
| 
 | 
 0  | 
 11  | 
         if( pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0) ){  | 
 
| 
117060
 | 
 0  | 
 11  | 
           if( pTab->pIndex ){  | 
 
| 
117081
 | 
 0  | 
 43  | 
     if( ipkTop ){  | 
 
| 
117094
 | 
 32  | 
 2868  | 
   for(ix=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, ix++){  | 
 
| 
117100
 | 
 0  | 
 32  | 
     if( aRegIdx[ix]==0 ) continue;  /* Skip indices that do not change */  | 
 
| 
117101
 | 
 0  | 
 32  | 
     if( pUpIdx==pIdx ){  | 
 
| 
117109
 | 
 32  | 
 0  | 
     if( bAffinityDone==0 && (pUpIdx==0 || pUpIdx==pIdx) ){  | 
 
| 
 | 
 0  | 
 32  | 
     if( bAffinityDone==0 && (pUpIdx==0 || pUpIdx==pIdx) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( bAffinityDone==0 && (pUpIdx==0 || pUpIdx==pIdx) ){  | 
 
| 
117118
 | 
 0  | 
 32  | 
     if( pIdx->pPartIdxWhere ){  | 
 
| 
117130
 | 
 81  | 
 32  | 
     for(i=0; inColumn; i++){  | 
 
| 
117133
 | 
 0  | 
 81  | 
       if( iField==XN_EXPR ){  | 
 
| 
117139
 | 
 49  | 
 32  | 
         if( iField==XN_ROWID || iField==pTab->iPKey ){  | 
 
| 
 | 
 0  | 
 49  | 
         if( iField==XN_ROWID || iField==pTab->iPKey ){  | 
 
| 
117144
 | 
 32  | 
 49  | 
         sqlite3VdbeAddOp2(v, iField<0 ? OP_IntCopy : OP_SCopy, x, regIdx+i);  | 
 
| 
117158
 | 
 0  | 
 32  | 
     if( isUpdate && pPk==pIdx && pkChng==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( isUpdate && pPk==pIdx && pkChng==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( isUpdate && pPk==pIdx && pkChng==0 ){  | 
 
| 
117165
 | 
 1  | 
 31  | 
     if( onError==OE_None ){   | 
 
| 
117169
 | 
 7  | 
 24  | 
     if( overrideError!=OE_Default ){  | 
 
| 
117171
 | 
 23  | 
 1  | 
     }else if( onError==OE_Default ){  | 
 
| 
117176
 | 
 0  | 
 31  | 
     if( pUpIdx==pIdx ){  | 
 
| 
117177
 | 
 0  | 
 0  | 
       if( pUpsert->pUpsertSet==0 ){  | 
 
| 
117191
 | 
 31  | 
 0  | 
     if( (ix==0 && pIdx->pNext==0)                   /* Condition 3 */  | 
 
| 
 | 
 31  | 
 0  | 
     if( (ix==0 && pIdx->pNext==0)                   /* Condition 3 */  | 
 
| 
117192
 | 
 0  | 
 31  | 
      && pPk==pIdx                                   /* Condition 2 */  | 
 
| 
117193
 | 
 0  | 
 0  | 
      && onError==OE_Replace                         /* Condition 1 */  | 
 
| 
117196
 | 
 0  | 
 0  | 
      && ( 0==(db->flags&SQLITE_ForeignKeys) ||      /* Condition 5 */  | 
 
| 
 | 
 0  | 
 0  | 
      && ( 0==(db->flags&SQLITE_ForeignKeys) ||      /* Condition 5 */  | 
 
| 
117197
 | 
 0  | 
 0  | 
          (0==pTab->pFKey && 0==sqlite3FkReferences(pTab)))  | 
 
| 
117209
 | 
 31  | 
 0  | 
     regR = (pIdx==pPk) ? regIdx : sqlite3GetTempRange(pParse, nPkField);  | 
 
| 
117210
 | 
 31  | 
 0  | 
     if( isUpdate || onError==OE_Replace ){  | 
 
| 
 | 
 7  | 
 24  | 
     if( isUpdate || onError==OE_Replace ){  | 
 
| 
117211
 | 
 7  | 
 0  | 
       if( HasRowid(pTab) ){  | 
 
| 
117215
 | 
 0  | 
 7  | 
         if( isUpdate ){  | 
 
| 
117224
 | 
 0  | 
 0  | 
         if( pIdx!=pPk ){  | 
 
| 
117225
 | 
 0  | 
 0  | 
           for(i=0; inKeyCol; i++){  | 
 
| 
117233
 | 
 0  | 
 0  | 
         if( isUpdate ){  | 
 
| 
117243
 | 
 0  | 
 0  | 
           int regCmp = (IsPrimaryKeyIndex(pIdx) ? regIdx : regR);  | 
 
| 
117245
 | 
 0  | 
 0  | 
           for(i=0; inKeyCol; i++){  | 
 
| 
117249
 | 
 0  | 
 0  | 
             if( i==(pPk->nKeyCol-1) ){  | 
 
| 
117291
 | 
 0  | 
 7  | 
         if( db->flags&SQLITE_RecTriggers ){  | 
 
| 
117294
 | 
 7  | 
 0  | 
         if( pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0) ){  | 
 
| 
 | 
 0  | 
 7  | 
         if( pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0) ){  | 
 
| 
117304
 | 
 0  | 
 31  | 
     if( pUpIdx==pIdx ){  | 
 
| 
117310
 | 
 31  | 
 0  | 
     if( regR!=regIdx ) sqlite3ReleaseTempRange(pParse, regR, nPkField);  | 
 
| 
117314
 | 
 0  | 
 2868  | 
   if( ipkTop ){  | 
 
| 
117382
 | 
 32  | 
 2868  | 
   for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){  | 
 
| 
117383
 | 
 0  | 
 32  | 
     if( aRegIdx[i]==0 ) continue;  | 
 
| 
117385
 | 
 0  | 
 32  | 
     if( pIdx->pPartIdxWhere ){  | 
 
| 
117389
 | 
 32  | 
 0  | 
     pik_flags = (useSeekResult ? OPFLAG_USESEEKRESULT : 0);  | 
 
| 
117390
 | 
 26  | 
 6  | 
     if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){  | 
 
| 
 | 
 0  | 
 26  | 
     if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){  | 
 
| 
117403
 | 
 4  | 
 28  | 
     sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iIdxCur+i, aRegIdx[i],  | 
 
| 
117408
 | 
 0  | 
 2868  | 
   if( !HasRowid(pTab) ) return;  | 
 
| 
117413
 | 
 2836  | 
 32  | 
   if( !bAffinityDone ){  | 
 
| 
117416
 | 
 268  | 
 2600  | 
   if( pParse->nested ){  | 
 
| 
117420
 | 
 5  | 
 2595  | 
     pik_flags |= (update_flags?update_flags:OPFLAG_LASTROWID);  | 
 
| 
117422
 | 
 2590  | 
 278  | 
   if( appendBias ){  | 
 
| 
117425
 | 
 2633  | 
 235  | 
   if( useSeekResult ){  | 
 
| 
117429
 | 
 2600  | 
 268  | 
   if( !pParse->nested ){  | 
 
| 
117474
 | 
 17  | 
 2896  | 
   if( IsVirtual(pTab) ){  | 
 
| 
117483
 | 
 2633  | 
 263  | 
   if( iBase<0 ) iBase = pParse->nTab;  | 
 
| 
117485
 | 
 2661  | 
 235  | 
   if( piDataCur ) *piDataCur = iDataCur;  | 
 
| 
117486
 | 
 2896  | 
 0  | 
   if( HasRowid(pTab) && (aToOpen==0 || aToOpen[0]) ){  | 
 
| 
 | 
 263  | 
 2633  | 
   if( HasRowid(pTab) && (aToOpen==0 || aToOpen[0]) ){  | 
 
| 
 | 
 7  | 
 256  | 
   if( HasRowid(pTab) && (aToOpen==0 || aToOpen[0]) ){  | 
 
| 
117491
 | 
 2661  | 
 235  | 
   if( piIdxCur ) *piIdxCur = iBase;  | 
 
| 
117492
 | 
 40  | 
 2896  | 
   for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){  | 
 
| 
117495
 | 
 34  | 
 6  | 
     if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){  | 
 
| 
 | 
 0  | 
 34  | 
     if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){  | 
 
| 
117496
 | 
 0  | 
 0  | 
       if( piDataCur ) *piDataCur = iIdxCur;  | 
 
| 
117499
 | 
 8  | 
 32  | 
     if( aToOpen==0 || aToOpen[i+1] ){  | 
 
| 
 | 
 0  | 
 8  | 
     if( aToOpen==0 || aToOpen[i+1] ){  | 
 
| 
117506
 | 
 2633  | 
 263  | 
   if( iBase>pParse->nTab ) pParse->nTab = iBase;  | 
 
| 
117538
 | 
 0  | 
 0  | 
   if( pDest->nKeyCol!=pSrc->nKeyCol ){  | 
 
| 
117541
 | 
 0  | 
 0  | 
   if( pDest->onError!=pSrc->onError ){  | 
 
| 
117544
 | 
 0  | 
 0  | 
   for(i=0; inKeyCol; i++){  | 
 
| 
117545
 | 
 0  | 
 0  | 
     if( pSrc->aiColumn[i]!=pDest->aiColumn[i] ){  | 
 
| 
117548
 | 
 0  | 
 0  | 
     if( pSrc->aiColumn[i]==XN_EXPR ){  | 
 
| 
117550
 | 
 0  | 
 0  | 
       if( sqlite3ExprCompare(0, pSrc->aColExpr->a[i].pExpr,  | 
 
| 
117555
 | 
 0  | 
 0  | 
     if( pSrc->aSortOrder[i]!=pDest->aSortOrder[i] ){  | 
 
| 
117558
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(pSrc->azColl[i],pDest->azColl[i])!=0 ){  | 
 
| 
117562
 | 
 0  | 
 0  | 
   if( sqlite3ExprCompare(0, pSrc->pPartIdxWhere, pDest->pPartIdxWhere, -1) ){  | 
 
| 
117618
 | 
 369  | 
 0  | 
   if( pSelect==0 ){  | 
 
| 
117621
 | 
 0  | 
 0  | 
   if( pParse->pWith || pSelect->pWith ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pParse->pWith || pSelect->pWith ){  | 
 
| 
117627
 | 
 0  | 
 0  | 
   if( sqlite3TriggerList(pParse, pDest) ){  | 
 
| 
117631
 | 
 0  | 
 0  | 
   if( IsVirtual(pDest) ){  | 
 
| 
117635
 | 
 0  | 
 0  | 
   if( onError==OE_Default ){  | 
 
| 
117636
 | 
 0  | 
 0  | 
     if( pDest->iPKey>=0 ) onError = pDest->keyConf;  | 
 
| 
117637
 | 
 0  | 
 0  | 
     if( onError==OE_Default ) onError = OE_Abort;  | 
 
| 
117640
 | 
 0  | 
 0  | 
   if( pSelect->pSrc->nSrc!=1 ){  | 
 
| 
117643
 | 
 0  | 
 0  | 
   if( pSelect->pSrc->a[0].pSelect ){  | 
 
| 
117646
 | 
 0  | 
 0  | 
   if( pSelect->pWhere ){  | 
 
| 
117649
 | 
 0  | 
 0  | 
   if( pSelect->pOrderBy ){  | 
 
| 
117654
 | 
 0  | 
 0  | 
   if( pSelect->pGroupBy ){  | 
 
| 
117657
 | 
 0  | 
 0  | 
   if( pSelect->pLimit ){  | 
 
| 
117660
 | 
 0  | 
 0  | 
   if( pSelect->pPrior ){  | 
 
| 
117663
 | 
 0  | 
 0  | 
   if( pSelect->selFlags & SF_Distinct ){  | 
 
| 
117668
 | 
 0  | 
 0  | 
   if( pEList->nExpr!=1 ){  | 
 
| 
117672
 | 
 0  | 
 0  | 
   if( pEList->a[0].pExpr->op!=TK_ASTERISK ){  | 
 
| 
117682
 | 
 0  | 
 0  | 
   if( pSrc==0 ){  | 
 
| 
117685
 | 
 0  | 
 0  | 
   if( pSrc==pDest ){  | 
 
| 
117688
 | 
 0  | 
 0  | 
   if( HasRowid(pDest)!=HasRowid(pSrc) ){  | 
 
| 
117692
 | 
 0  | 
 0  | 
   if( IsVirtual(pSrc) ){  | 
 
| 
117696
 | 
 0  | 
 0  | 
   if( pSrc->pSelect ){  | 
 
| 
117699
 | 
 0  | 
 0  | 
   if( pDest->nCol!=pSrc->nCol ){  | 
 
| 
117702
 | 
 0  | 
 0  | 
   if( pDest->iPKey!=pSrc->iPKey ){  | 
 
| 
117705
 | 
 0  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
117715
 | 
 0  | 
 0  | 
     if( pDestCol->affinity!=pSrcCol->affinity ){  | 
 
| 
117718
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(pDestCol->zColl, pSrcCol->zColl)!=0 ){  | 
 
| 
117721
 | 
 0  | 
 0  | 
     if( pDestCol->notNull && !pSrcCol->notNull ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pDestCol->notNull && !pSrcCol->notNull ){  | 
 
| 
117725
 | 
 0  | 
 0  | 
     if( i>0 ){  | 
 
| 
117728
 | 
 0  | 
 0  | 
       if( (pDestCol->pDflt==0)!=(pSrcCol->pDflt==0)   | 
 
| 
117729
 | 
 0  | 
 0  | 
        || (pDestCol->pDflt && strcmp(pDestCol->pDflt->u.zToken,  | 
 
| 
 | 
 0  | 
 0  | 
        || (pDestCol->pDflt && strcmp(pDestCol->pDflt->u.zToken,  | 
 
| 
117736
 | 
 0  | 
 0  | 
   for(pDestIdx=pDest->pIndex; pDestIdx; pDestIdx=pDestIdx->pNext){  | 
 
| 
117737
 | 
 0  | 
 0  | 
     if( IsUniqueIndex(pDestIdx) ){  | 
 
| 
117740
 | 
 0  | 
 0  | 
     for(pSrcIdx=pSrc->pIndex; pSrcIdx; pSrcIdx=pSrcIdx->pNext){  | 
 
| 
117741
 | 
 0  | 
 0  | 
       if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break;  | 
 
| 
117743
 | 
 0  | 
 0  | 
     if( pSrcIdx==0 ){  | 
 
| 
117748
 | 
 0  | 
 0  | 
   if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){  | 
 
| 
117760
 | 
 0  | 
 0  | 
   if( (db->flags & SQLITE_ForeignKeys)!=0 && pDest->pFKey!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (db->flags & SQLITE_ForeignKeys)!=0 && pDest->pFKey!=0 ){  | 
 
| 
117764
 | 
 0  | 
 0  | 
   if( (db->flags & SQLITE_CountRows)!=0 ){  | 
 
| 
117785
 | 
 0  | 
 0  | 
   if( (db->mDbFlags & DBFLAG_Vacuum)==0 && (  | 
 
| 
 | 
 0  | 
 0  | 
   if( (db->mDbFlags & DBFLAG_Vacuum)==0 && (  | 
 
| 
117786
 | 
 0  | 
 0  | 
       (pDest->iPKey<0 && pDest->pIndex!=0)          /* (1) */  | 
 
| 
117787
 | 
 0  | 
 0  | 
    || destHasUniqueIdx                              /* (2) */  | 
 
| 
117788
 | 
 0  | 
 0  | 
    || (onError!=OE_Abort && onError!=OE_Rollback)   /* (3) */  | 
 
| 
 | 
 0  | 
 0  | 
    || (onError!=OE_Abort && onError!=OE_Rollback)   /* (3) */  | 
 
| 
117811
 | 
 0  | 
 0  | 
   if( HasRowid(pSrc) ){  | 
 
| 
117815
 | 
 0  | 
 0  | 
     if( pDest->iPKey>=0 ){  | 
 
| 
117823
 | 
 0  | 
 0  | 
     }else if( pDest->pIndex==0 ){  | 
 
| 
117830
 | 
 0  | 
 0  | 
     if( db->mDbFlags & DBFLAG_Vacuum ){  | 
 
| 
117847
 | 
 0  | 
 0  | 
   for(pDestIdx=pDest->pIndex; pDestIdx; pDestIdx=pDestIdx->pNext){  | 
 
| 
117849
 | 
 0  | 
 0  | 
     for(pSrcIdx=pSrc->pIndex; ALWAYS(pSrcIdx); pSrcIdx=pSrcIdx->pNext){  | 
 
| 
117850
 | 
 0  | 
 0  | 
       if( xferCompatibleIndex(pDestIdx, pSrcIdx) ) break;  | 
 
| 
117862
 | 
 0  | 
 0  | 
     if( db->mDbFlags & DBFLAG_Vacuum ){  | 
 
| 
117877
 | 
 0  | 
 0  | 
       for(i=0; inColumn; i++){  | 
 
| 
117879
 | 
 0  | 
 0  | 
         if( sqlite3_stricmp(sqlite3StrBINARY, zColl) ) break;  | 
 
| 
117881
 | 
 0  | 
 0  | 
       if( i==pSrcIdx->nColumn ){  | 
 
| 
117886
 | 
 0  | 
 0  | 
     if( !HasRowid(pSrc) && pDestIdx->idxType==2 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( !HasRowid(pSrc) && pDestIdx->idxType==2 ){  | 
 
| 
117896
 | 
 0  | 
 0  | 
   if( emptySrcTest ) sqlite3VdbeJumpHere(v, emptySrcTest);  | 
 
| 
117899
 | 
 0  | 
 0  | 
   if( emptyDestTest ){  | 
 
| 
117955
 | 
 0  | 
 3365  | 
   if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;  | 
 
| 
117956
 | 
 0  | 
 3365  | 
   if( zSql==0 ) zSql = "";  | 
 
| 
117960
 | 
 6693  | 
 39  | 
   while( rc==SQLITE_OK && zSql[0] ){  | 
 
| 
 | 
 3367  | 
 3326  | 
   while( rc==SQLITE_OK && zSql[0] ){  | 
 
| 
117967
 | 
 4  | 
 3363  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
117970
 | 
 4  | 
 3359  | 
     if( !pStmt ){  | 
 
| 
117984
 | 
 688  | 
 6954  | 
       if( xCallback && (SQLITE_ROW==rc ||   | 
 
| 
 | 
 405  | 
 283  | 
       if( xCallback && (SQLITE_ROW==rc ||   | 
 
| 
 | 
 405  | 
 0  | 
       if( xCallback && (SQLITE_ROW==rc ||   | 
 
| 
117985
 | 
 158  | 
 247  | 
           (SQLITE_DONE==rc && !callbackIsInit  | 
 
| 
117986
 | 
 0  | 
 158  | 
                            && db->flags&SQLITE_NullCallback)) ){  | 
 
| 
117987
 | 
 247  | 
 36  | 
         if( !callbackIsInit ){  | 
 
| 
117989
 | 
 0  | 
 247  | 
           if( azCols==0 ){  | 
 
| 
117992
 | 
 741  | 
 247  | 
           for(i=0; i
 | 
 
| 
118000
 | 
 283  | 
 0  | 
         if( rc==SQLITE_ROW ){  | 
 
| 
118002
 | 
 849  | 
 283  | 
           for(i=0; i
 | 
 
| 
118004
 | 
 33  | 
 816  | 
             if( !azVals[i] && sqlite3_column_type(pStmt, i)!=SQLITE_NULL ){  | 
 
| 
 | 
 0  | 
 33  | 
             if( !azVals[i] && sqlite3_column_type(pStmt, i)!=SQLITE_NULL ){  | 
 
| 
118011
 | 
 0  | 
 283  | 
         if( xCallback(pArg, nCol, azVals, azCols) ){  | 
 
| 
118023
 | 
 3359  | 
 4283  | 
       if( rc!=SQLITE_ROW ){  | 
 
| 
118027
 | 
 0  | 
 3359  | 
         while( sqlite3Isspace(zSql[0]) ) zSql++;  | 
 
| 
118037
 | 
 0  | 
 3365  | 
   if( pStmt ) sqlite3VdbeFinalize((Vdbe *)pStmt);  | 
 
| 
118041
 | 
 39  | 
 3326  | 
   if( rc!=SQLITE_OK && pzErrMsg ){  | 
 
| 
 | 
 39  | 
 0  | 
   if( rc!=SQLITE_OK && pzErrMsg ){  | 
 
| 
118043
 | 
 0  | 
 39  | 
     if( *pzErrMsg==0 ){  | 
 
| 
118047
 | 
 2892  | 
 434  | 
   }else if( pzErrMsg ){  | 
 
| 
119194
 | 
 0  | 
 0  | 
   if( pzErrMsg ) *pzErrMsg = 0;  | 
 
| 
119203
 | 
 0  | 
 0  | 
   if( (db->flags & SQLITE_LoadExtension)==0 ){  | 
 
| 
119204
 | 
 0  | 
 0  | 
     if( pzErrMsg ){  | 
 
| 
119210
 | 
 0  | 
 0  | 
   zEntry = zProc ? zProc : "sqlite3_extension_init";  | 
 
| 
119214
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
119216
 | 
 0  | 
 0  | 
     if( zAltFile==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
119221
 | 
 0  | 
 0  | 
   if( handle==0 ){  | 
 
| 
119222
 | 
 0  | 
 0  | 
     if( pzErrMsg ){  | 
 
| 
119224
 | 
 0  | 
 0  | 
       if( zErrmsg ){  | 
 
| 
119245
 | 
 0  | 
 0  | 
   if( xInit==0 && zProc==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( xInit==0 && zProc==0 ){  | 
 
| 
119249
 | 
 0  | 
 0  | 
     if( zAltEntry==0 ){  | 
 
| 
119254
 | 
 0  | 
 0  | 
     for(iFile=ncFile-1; iFile>=0 && zFile[iFile]!='/'; iFile--){}  | 
 
| 
 | 
 0  | 
 0  | 
     for(iFile=ncFile-1; iFile>=0 && zFile[iFile]!='/'; iFile--){}  | 
 
| 
119256
 | 
 0  | 
 0  | 
     if( sqlite3_strnicmp(zFile+iFile, "lib", 3)==0 ) iFile += 3;  | 
 
| 
119257
 | 
 0  | 
 0  | 
     for(iEntry=8; (c = zFile[iFile])!=0 && c!='.'; iFile++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(iEntry=8; (c = zFile[iFile])!=0 && c!='.'; iFile++){  | 
 
| 
119258
 | 
 0  | 
 0  | 
       if( sqlite3Isalpha(c) ){  | 
 
| 
119266
 | 
 0  | 
 0  | 
   if( xInit==0 ){  | 
 
| 
119267
 | 
 0  | 
 0  | 
     if( pzErrMsg ){  | 
 
| 
119270
 | 
 0  | 
 0  | 
       if( zErrmsg ){  | 
 
| 
119282
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
119283
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK_LOAD_PERMANENTLY ) return SQLITE_OK;  | 
 
| 
119284
 | 
 0  | 
 0  | 
     if( pzErrMsg ){  | 
 
| 
119294
 | 
 0  | 
 0  | 
   if( aHandle==0 ){  | 
 
| 
119297
 | 
 0  | 
 0  | 
   if( db->nExtension>0 ){  | 
 
| 
119327
 | 
 0  | 
 255  | 
   for(i=0; inExtension; i++){  | 
 
| 
119339
 | 
 0  | 
 0  | 
   if( onoff ){  | 
 
| 
119389
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
119400
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
119401
 | 
 0  | 
 0  | 
       if( wsdAutoext.aExt[i]==xInit ) break;  | 
 
| 
119403
 | 
 0  | 
 0  | 
     if( i==wsdAutoext.nExt ){  | 
 
| 
119407
 | 
 0  | 
 0  | 
       if( aNew==0 ){  | 
 
| 
119440
 | 
 0  | 
 0  | 
   for(i=(int)wsdAutoext.nExt-1; i>=0; i--){  | 
 
| 
119441
 | 
 0  | 
 0  | 
     if( wsdAutoext.aExt[i]==xInit ){  | 
 
| 
119457
 | 
 0  | 
 0  | 
   if( sqlite3_initialize()==SQLITE_OK )  | 
 
| 
119484
 | 
 251  | 
 0  | 
   if( wsdAutoext.nExt==0 ){  | 
 
| 
119488
 | 
 0  | 
 0  | 
   for(i=0; go; i++){  | 
 
| 
119499
 | 
 0  | 
 0  | 
     if( i>=wsdAutoext.nExt ){  | 
 
| 
119507
 | 
 0  | 
 0  | 
     if( xInit && (rc = xInit(db, &zErrmsg, pThunk))!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( xInit && (rc = xInit(db, &zErrmsg, pThunk))!=0 ){  | 
 
| 
120242
 | 
 2  | 
 6  | 
   if( sqlite3Isdigit(*z) ){  | 
 
| 
120246
 | 
 6  | 
 0  | 
   for(i=0; i
 | 
 
| 
120247
 | 
 6  | 
 0  | 
     if( iLength[i]==n && sqlite3StrNICmp(&zText[iOffset[i]],z,n)==0  | 
 
| 
 | 
 6  | 
 0  | 
     if( iLength[i]==n && sqlite3StrNICmp(&zText[iOffset[i]],z,n)==0  | 
 
| 
120248
 | 
 6  | 
 0  | 
      && (!omitFull || iValue[i]<=1)  | 
 
| 
 | 
 6  | 
 0  | 
      && (!omitFull || iValue[i]<=1)  | 
 
| 
120273
 | 
 0  | 
 0  | 
   if( z ){  | 
 
| 
120274
 | 
 0  | 
 0  | 
     if( 0==sqlite3StrICmp(z, "exclusive") ) return PAGER_LOCKINGMODE_EXCLUSIVE;  | 
 
| 
120275
 | 
 0  | 
 0  | 
     if( 0==sqlite3StrICmp(z, "normal") ) return PAGER_LOCKINGMODE_NORMAL;  | 
 
| 
120289
 | 
 0  | 
 0  | 
   if( 0==sqlite3StrICmp(z, "none") ) return BTREE_AUTOVACUUM_NONE;  | 
 
| 
120290
 | 
 0  | 
 0  | 
   if( 0==sqlite3StrICmp(z, "full") ) return BTREE_AUTOVACUUM_FULL;  | 
 
| 
120291
 | 
 0  | 
 0  | 
   if( 0==sqlite3StrICmp(z, "incremental") ) return BTREE_AUTOVACUUM_INCR;  | 
 
| 
120293
 | 
 0  | 
 0  | 
   return (u8)((i>=0&&i<=2)?i:0);  | 
 
| 
 | 
 0  | 
 0  | 
   return (u8)((i>=0&&i<=2)?i:0);  | 
 
| 
120304
 | 
 0  | 
 0  | 
   if( z[0]>='0' && z[0]<='2' ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( z[0]>='0' && z[0]<='2' ){  | 
 
| 
120306
 | 
 0  | 
 0  | 
   }else if( sqlite3StrICmp(z, "file")==0 ){  | 
 
| 
120308
 | 
 0  | 
 0  | 
   }else if( sqlite3StrICmp(z, "memory")==0 ){  | 
 
| 
120323
 | 
 0  | 
 0  | 
   if( db->aDb[1].pBt!=0 ){  | 
 
| 
120324
 | 
 0  | 
 0  | 
     if( !db->autoCommit || sqlite3BtreeIsInReadTrans(db->aDb[1].pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( !db->autoCommit || sqlite3BtreeIsInReadTrans(db->aDb[1].pBt) ){  | 
 
| 
120346
 | 
 0  | 
 0  | 
   if( db->temp_store==ts ) return SQLITE_OK;  | 
 
| 
120347
 | 
 0  | 
 0  | 
   if( invalidateTempStorage( pParse ) != SQLITE_OK ){  | 
 
| 
120363
 | 
 155  | 
 16  | 
   sqlite3VdbeSetNumCols(v, n==0 ? 1 : n);  | 
 
| 
120364
 | 
 16  | 
 155  | 
   if( n==0 ){  | 
 
| 
120368
 | 
 682  | 
 155  | 
     for(i=0, j=pPragma->iPragCName; i
 | 
 
| 
120389
 | 
 0  | 
 0  | 
   if( zValue ){  | 
 
| 
120402
 | 
 8  | 
 0  | 
   if( db->autoCommit ){  | 
 
| 
120411
 | 
 16  | 
 8  | 
     while( (n--) > 0 ){  | 
 
| 
120412
 | 
 8  | 
 8  | 
       if( pDb->pBt ){  | 
 
| 
120464
 | 
 0  | 
 0  | 
   if( eMode==ArraySize(azModeName) ) return 0;  | 
 
| 
120475
 | 
 1020  | 
 0  | 
   while( lwr<=upr ){  | 
 
| 
120478
 | 
 175  | 
 845  | 
     if( rc==0 ) break;  | 
 
| 
120479
 | 
 286  | 
 559  | 
     if( rc<0 ){  | 
 
| 
120485
 | 
 175  | 
 0  | 
   return lwr>upr ? 0 : &aPragmaName[mid];  | 
 
| 
120538
 | 
 0  | 
 175  | 
   if( v==0 ) return;  | 
 
| 
120545
 | 
 0  | 
 175  | 
   if( iDb<0 ) return;  | 
 
| 
120551
 | 
 3  | 
 172  | 
   if( iDb==1 && sqlite3OpenTempDatabase(pParse) ){  | 
 
| 
 | 
 0  | 
 3  | 
   if( iDb==1 && sqlite3OpenTempDatabase(pParse) ){  | 
 
| 
120556
 | 
 0  | 
 175  | 
   if( !zLeft ) return;  | 
 
| 
120557
 | 
 0  | 
 175  | 
   if( minusFlag ){  | 
 
| 
120564
 | 
 99  | 
 76  | 
   zDb = pId2->n>0 ? pDb->zDbSName : 0;  | 
 
| 
120565
 | 
 0  | 
 175  | 
   if( sqlite3AuthCheck(pParse, SQLITE_PRAGMA, zLeft, zRight, zDb) ){  | 
 
| 
120590
 | 
 0  | 
 175  | 
   if( rc==SQLITE_OK ){  | 
 
| 
120597
 | 
 0  | 
 175  | 
   if( rc!=SQLITE_NOTFOUND ){  | 
 
| 
120598
 | 
 0  | 
 0  | 
     if( aFcntl[0] ){  | 
 
| 
120609
 | 
 0  | 
 175  | 
   if( pPragma==0 ) goto pragma_out;  | 
 
| 
120612
 | 
 155  | 
 20  | 
   if( (pPragma->mPragFlg & PragFlg_NeedSchema)!=0 ){  | 
 
| 
120613
 | 
 0  | 
 155  | 
     if( sqlite3ReadSchema(pParse) ) goto pragma_out;  | 
 
| 
120617
 | 
 175  | 
 0  | 
   if( (pPragma->mPragFlg & PragFlg_NoColumns)==0   | 
 
| 
120618
 | 
 20  | 
 155  | 
    && ((pPragma->mPragFlg & PragFlg_NoColumns1)==0 || zRight==0)  | 
 
| 
 | 
 12  | 
 8  | 
    && ((pPragma->mPragFlg & PragFlg_NoColumns1)==0 || zRight==0)  | 
 
| 
120658
 | 
 0  | 
 0  | 
     if( !zRight ){  | 
 
| 
120691
 | 
 8  | 
 0  | 
     if( !zRight ){  | 
 
| 
120692
 | 
 8  | 
 0  | 
       int size = ALWAYS(pBt) ? sqlite3BtreeGetPageSize(pBt) : 0;  | 
 
| 
120699
 | 
 0  | 
 0  | 
       if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize,-1,0) ){  | 
 
| 
120718
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
120719
 | 
 0  | 
 0  | 
       if( sqlite3_stricmp(zRight, "fast")==0 ){  | 
 
| 
120725
 | 
 0  | 
 0  | 
     if( pId2->n==0 && b>=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pId2->n==0 && b>=0 ){  | 
 
| 
120727
 | 
 0  | 
 0  | 
       for(ii=0; iinDb; ii++){  | 
 
| 
120757
 | 
 0  | 
 0  | 
     if( sqlite3Tolower(zLeft[0])=='p' ){  | 
 
| 
120775
 | 
 0  | 
 0  | 
     if( pId2->n==0 && eMode==PAGER_LOCKINGMODE_QUERY ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pId2->n==0 && eMode==PAGER_LOCKINGMODE_QUERY ){  | 
 
| 
120783
 | 
 0  | 
 0  | 
       if( pId2->n==0 ){  | 
 
| 
120794
 | 
 0  | 
 0  | 
         for(ii=2; iinDb; ii++){  | 
 
| 
120806
 | 
 0  | 
 0  | 
     if( eMode==PAGER_LOCKINGMODE_EXCLUSIVE ){  | 
 
| 
120822
 | 
 0  | 
 0  | 
     if( zRight==0 ){  | 
 
| 
120829
 | 
 0  | 
 0  | 
       for(eMode=0; (zMode = sqlite3JournalModename(eMode))!=0; eMode++){  | 
 
| 
120830
 | 
 0  | 
 0  | 
         if( sqlite3StrNICmp(zRight, zMode, n)==0 ) break;  | 
 
| 
120832
 | 
 0  | 
 0  | 
       if( !zMode ){  | 
 
| 
120838
 | 
 0  | 
 0  | 
     if( eMode==PAGER_JOURNALMODE_QUERY && pId2->n==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( eMode==PAGER_JOURNALMODE_QUERY && pId2->n==0 ){  | 
 
| 
120843
 | 
 0  | 
 0  | 
     for(ii=db->nDb-1; ii>=0; ii--){  | 
 
| 
120844
 | 
 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) ){  | 
 
| 
120862
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
120864
 | 
 0  | 
 0  | 
       if( iLimit<-1 ) iLimit = -1;  | 
 
| 
120884
 | 
 0  | 
 0  | 
     if( !zRight ){  | 
 
| 
120896
 | 
 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) ){  | 
 
| 
120935
 | 
 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 ){  | 
 
| 
120963
 | 
 0  | 
 0  | 
     if( !zRight ){  | 
 
| 
120997
 | 
 0  | 
 0  | 
     if( !zRight ){  | 
 
| 
120998
 | 
 0  | 
 0  | 
       returnSingleInt(v,  | 
 
| 
121003
 | 
 0  | 
 0  | 
       if( sqlite3GetInt32(zRight, &size) ){  | 
 
| 
121006
 | 
 0  | 
 0  | 
       if( sqlite3GetBoolean(zRight, size!=0) ){  | 
 
| 
121034
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
121037
 | 
 0  | 
 0  | 
       if( sz<0 ) sz = sqlite3GlobalConfig.szMmap;  | 
 
| 
121038
 | 
 0  | 
 0  | 
       if( pId2->n==0 ) db->szMmap = sz;  | 
 
| 
121039
 | 
 0  | 
 0  | 
       for(ii=db->nDb-1; ii>=0; ii--){  | 
 
| 
121040
 | 
 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) ){  | 
 
| 
121051
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
121053
 | 
 0  | 
 0  | 
     }else if( rc!=SQLITE_NOTFOUND ){  | 
 
| 
121072
 | 
 0  | 
 0  | 
     if( !zRight ){  | 
 
| 
121091
 | 
 0  | 
 0  | 
     if( !zRight ){  | 
 
| 
121095
 | 
 0  | 
 0  | 
       if( zRight[0] ){  | 
 
| 
121098
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK || res==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK || res==0 ){  | 
 
| 
121103
 | 
 0  | 
 0  | 
       if( SQLITE_TEMP_STORE==0  | 
 
| 
121110
 | 
 0  | 
 0  | 
       if( zRight[0] ){  | 
 
| 
121206
 | 
 0  | 
 0  | 
     if( !zRight ){  | 
 
| 
121209
 | 
 0  | 
 0  | 
       if( !db->autoCommit ){  | 
 
| 
121212
 | 
 0  | 
 0  | 
       }else if( iDb!=1 ){  | 
 
| 
121214
 | 
 0  | 
 0  | 
         if( iLevel==0 ) iLevel = 1;  | 
 
| 
121226
 | 
 4  | 
 8  | 
     if( zRight==0 ){  | 
 
| 
121231
 | 
 0  | 
 8  | 
       if( db->autoCommit==0 ){  | 
 
| 
121243
 | 
 7  | 
 1  | 
       if( sqlite3GetBoolean(zRight, 0) ){  | 
 
| 
121247
 | 
 0  | 
 1  | 
         if( mask==SQLITE_DeferFKs ) db->nDeferredImmCons = 0;  | 
 
| 
121275
 | 
 53  | 
 0  | 
   case PragTyp_TABLE_INFO: if( zRight ){  | 
 
| 
121278
 | 
 51  | 
 2  | 
     if( pTab ){  | 
 
| 
121287
 | 
 94  | 
 51  | 
       for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){  | 
 
| 
121289
 | 
 0  | 
 94  | 
         if( isHidden && pPragma->iArg==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( isHidden && pPragma->iArg==0 ){  | 
 
| 
121293
 | 
 42  | 
 52  | 
         if( (pCol->colFlags & COLFLAG_PRIMKEY)==0 ){  | 
 
| 
121295
 | 
 23  | 
 29  | 
         }else if( pPk==0 ){  | 
 
| 
121298
 | 
 37  | 
 0  | 
           for(k=1; k<=pTab->nCol && pPk->aiColumn[k-1]!=i; k++){}  | 
 
| 
 | 
 8  | 
 29  | 
           for(k=1; k<=pTab->nCol && pPk->aiColumn[k-1]!=i; k++){}  | 
 
| 
121301
 | 
 0  | 
 94  | 
         sqlite3VdbeMultiLoad(v, 1, pPragma->iArg ? "issisii" : "issisi",  | 
 
| 
 | 
 0  | 
 94  | 
         sqlite3VdbeMultiLoad(v, 1, pPragma->iArg ? "issisii" : "issisi",  | 
 
| 
121341
 | 
 24  | 
 0  | 
   case PragTyp_INDEX_INFO: if( zRight ){  | 
 
| 
121345
 | 
 12  | 
 12  | 
     if( pIdx ){  | 
 
| 
121349
 | 
 0  | 
 12  | 
       if( pPragma->iArg ){  | 
 
| 
121361
 | 
 16  | 
 12  | 
       for(i=0; i
 | 
 
| 
121363
 | 
 16  | 
 0  | 
         sqlite3VdbeMultiLoad(v, 1, "iisX", i, cnum,  | 
 
| 
121365
 | 
 0  | 
 16  | 
         if( pPragma->iArg ){  | 
 
| 
121377
 | 
 4  | 
 0  | 
   case PragTyp_INDEX_LIST: if( zRight ){  | 
 
| 
121382
 | 
 4  | 
 0  | 
     if( pTab ){  | 
 
| 
121386
 | 
 16  | 
 4  | 
       for(pIdx=pTab->pIndex, i=0; pIdx; pIdx=pIdx->pNext, i++){  | 
 
| 
121402
 | 
 155  | 
 64  | 
     for(i=0; inDb; i++){  | 
 
| 
121403
 | 
 39  | 
 116  | 
       if( db->aDb[i].pBt==0 ) continue;  | 
 
| 
121417
 | 
 0  | 
 0  | 
     for(p=sqliteHashFirst(&db->aCollSeq); p; p=sqliteHashNext(p)){  | 
 
| 
121467
 | 
 10  | 
 0  | 
   case PragTyp_FOREIGN_KEY_LIST: if( zRight ){  | 
 
| 
121471
 | 
 10  | 
 0  | 
     if( pTab ){  | 
 
| 
121473
 | 
 7  | 
 3  | 
       if( pFK ){  | 
 
| 
121478
 | 
 12  | 
 7  | 
         while(pFK){  | 
 
| 
121480
 | 
 14  | 
 12  | 
           for(j=0; jnCol; j++){  | 
 
| 
121523
 | 
 0  | 
 0  | 
     while( k ){  | 
 
| 
121525
 | 
 0  | 
 0  | 
       if( zRight ){  | 
 
| 
121532
 | 
 0  | 
 0  | 
       if( pTab==0 || pTab->pFKey==0 ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
       if( pTab==0 || pTab->pFKey==0 ) continue;  | 
 
| 
121536
 | 
 0  | 
 0  | 
       if( pTab->nCol+regRow>pParse->nMem ) pParse->nMem = pTab->nCol + regRow;  | 
 
| 
121539
 | 
 0  | 
 0  | 
       for(i=1, pFK=pTab->pFKey; pFK; i++, pFK=pFK->pNextFrom){  | 
 
| 
121541
 | 
 0  | 
 0  | 
         if( pParent==0 ) continue;  | 
 
| 
121545
 | 
 0  | 
 0  | 
         if( x==0 ){  | 
 
| 
121546
 | 
 0  | 
 0  | 
           if( pIdx==0 ){  | 
 
| 
121558
 | 
 0  | 
 0  | 
       if( pFK ) break;  | 
 
| 
121559
 | 
 0  | 
 0  | 
       if( pParse->nTabnTab = i;  | 
 
| 
121561
 | 
 0  | 
 0  | 
       for(i=1, pFK=pTab->pFKey; pFK; i++, pFK=pFK->pNextFrom){  | 
 
| 
121565
 | 
 0  | 
 0  | 
         if( pParent ){  | 
 
| 
121575
 | 
 0  | 
 0  | 
         for(j=0; jnCol; j++){  | 
 
| 
121576
 | 
 0  | 
 0  | 
           int iCol = aiCols ? aiCols[j] : pFK->aCol[j].iFrom;  | 
 
| 
121583
 | 
 0  | 
 0  | 
         if( pIdx ){  | 
 
| 
121588
 | 
 0  | 
 0  | 
         }else if( pParent ){  | 
 
| 
121596
 | 
 0  | 
 0  | 
         if( HasRowid(pTab) ){  | 
 
| 
121631
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
121670
 | 
 0  | 
 0  | 
     if( pId2->z==0 ) iDb = -1;  | 
 
| 
121677
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
121679
 | 
 0  | 
 0  | 
       if( mxErr<=0 ){  | 
 
| 
121686
 | 
 0  | 
 0  | 
     for(i=0; inDb; i++){  | 
 
| 
121694
 | 
 0  | 
 0  | 
       if( iDb>=0 && i!=iDb ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
       if( iDb>=0 && i!=iDb ) continue;  | 
 
| 
121705
 | 
 0  | 
 0  | 
       for(cnt=0, x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){  | 
 
| 
121709
 | 
 0  | 
 0  | 
         if( HasRowid(pTab) ) cnt++;  | 
 
| 
121710
 | 
 0  | 
 0  | 
         for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){ cnt++; }  | 
 
| 
121711
 | 
 0  | 
 0  | 
         if( nIdx>mxIdx ) mxIdx = nIdx;  | 
 
| 
121714
 | 
 0  | 
 0  | 
       if( aRoot==0 ) break;  | 
 
| 
121715
 | 
 0  | 
 0  | 
       for(cnt=0, x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){  | 
 
| 
121718
 | 
 0  | 
 0  | 
         if( HasRowid(pTab) ) aRoot[++cnt] = pTab->tnum;  | 
 
| 
121719
 | 
 0  | 
 0  | 
         for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
121742
 | 
 0  | 
 0  | 
       for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){  | 
 
| 
121750
 | 
 0  | 
 0  | 
         if( pTab->tnum<1 ) continue;  /* Skip VIEWs or VIRTUAL TABLEs */  | 
 
| 
121751
 | 
 0  | 
 0  | 
         pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab);  | 
 
| 
121758
 | 
 0  | 
 0  | 
         for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){  | 
 
| 
121765
 | 
 0  | 
 0  | 
         if( !isQuick ){  | 
 
| 
121771
 | 
 0  | 
 0  | 
         for(j=0; jnCol; j++){  | 
 
| 
121774
 | 
 0  | 
 0  | 
           if( j==pTab->iPKey ) continue;  | 
 
| 
121775
 | 
 0  | 
 0  | 
           if( pTab->aCol[j].notNull==0 ) continue;  | 
 
| 
121786
 | 
 0  | 
 0  | 
         if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){  | 
 
| 
121788
 | 
 0  | 
 0  | 
           if( db->mallocFailed==0 ){  | 
 
| 
121794
 | 
 0  | 
 0  | 
             for(k=pCheck->nExpr-1; k>0; k--){  | 
 
| 
121809
 | 
 0  | 
 0  | 
         if( !isQuick ){ /* Omit the remaining tests for quick_check */  | 
 
| 
121811
 | 
 0  | 
 0  | 
           for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){  | 
 
| 
121814
 | 
 0  | 
 0  | 
             if( pPk==pIdx ) continue;  | 
 
| 
121833
 | 
 0  | 
 0  | 
             if( IsUniqueIndex(pIdx) ){  | 
 
| 
121837
 | 
 0  | 
 0  | 
               for(kk=0; kknKeyCol; kk++){  | 
 
| 
121840
 | 
 0  | 
 0  | 
                 if( iCol>=0 && pTab->aCol[iCol].notNull ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
                 if( iCol>=0 && pTab->aCol[iCol].notNull ) continue;  | 
 
| 
121860
 | 
 0  | 
 0  | 
         if( !isQuick ){  | 
 
| 
121862
 | 
 0  | 
 0  | 
           for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){  | 
 
| 
121863
 | 
 0  | 
 0  | 
             if( pPk==pIdx ) continue;  | 
 
| 
121890
 | 
 0  | 
 0  | 
       if( aOp ){  | 
 
| 
121942
 | 
 0  | 
 0  | 
     if( !zRight ){    /* "PRAGMA encoding" */  | 
 
| 
121943
 | 
 0  | 
 0  | 
       if( sqlite3ReadSchema(pParse) ) goto pragma_out;  | 
 
| 
121954
 | 
 0  | 
 0  | 
       if(   | 
 
| 
121955
 | 
 0  | 
 0  | 
         !(DbHasProperty(db, 0, DB_SchemaLoaded)) ||   | 
 
| 
121958
 | 
 0  | 
 0  | 
         for(pEnc=&encnames[0]; pEnc->zName; pEnc++){  | 
 
| 
121959
 | 
 0  | 
 0  | 
           if( 0==sqlite3StrICmp(zRight, pEnc->zName) ){  | 
 
| 
121960
 | 
 0  | 
 0  | 
             SCHEMA_ENC(db) = ENC(db) =  | 
 
| 
121965
 | 
 0  | 
 0  | 
         if( !pEnc->zName ){  | 
 
| 
122010
 | 
 0  | 
 0  | 
     if( zRight && (pPragma->mPragFlg & PragFlg_ReadOnly)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( zRight && (pPragma->mPragFlg & PragFlg_ReadOnly)==0 ){  | 
 
| 
122055
 | 
 0  | 
 0  | 
     while( (zOpt = sqlite3_compileoption_get(i++))!=0 ){  | 
 
| 
122071
 | 
 0  | 
 0  | 
     int iBt = (pId2->z?iDb:SQLITE_MAX_ATTACHED);  | 
 
| 
122073
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
122074
 | 
 0  | 
 0  | 
       if( sqlite3StrICmp(zRight, "full")==0 ){  | 
 
| 
122076
 | 
 0  | 
 0  | 
       }else if( sqlite3StrICmp(zRight, "restart")==0 ){  | 
 
| 
122078
 | 
 0  | 
 0  | 
       }else if( sqlite3StrICmp(zRight, "truncate")==0 ){  | 
 
| 
122097
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
122100
 | 
 0  | 
 0  | 
     returnSingleInt(v,   | 
 
| 
122184
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
122186
 | 
 0  | 
 0  | 
       if( (opMask & 0x02)==0 ) break;  | 
 
| 
122191
 | 
 0  | 
 0  | 
     for(iDbLast = zDb?iDb:db->nDb-1; iDb<=iDbLast; iDb++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(iDbLast = zDb?iDb:db->nDb-1; iDb<=iDbLast; iDb++){  | 
 
| 
122192
 | 
 0  | 
 0  | 
       if( iDb==1 ) continue;  | 
 
| 
122195
 | 
 0  | 
 0  | 
       for(k=sqliteHashFirst(&pSchema->tblHash); k; k=sqliteHashNext(k)){  | 
 
| 
122201
 | 
 0  | 
 0  | 
         if( (pTab->tabFlags & TF_StatsUsed)==0 ) continue;  | 
 
| 
122205
 | 
 0  | 
 0  | 
         for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
122206
 | 
 0  | 
 0  | 
           if( !pIdx->hasStat1 ){  | 
 
| 
122211
 | 
 0  | 
 0  | 
         if( szThreshold ){  | 
 
| 
122219
 | 
 0  | 
 0  | 
         if( opMask & 0x01 ){  | 
 
| 
122243
 | 
 0  | 
 0  | 
     if( zRight ){  | 
 
| 
122263
 | 
 0  | 
 0  | 
     if( zRight && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( zRight && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK ){  | 
 
| 
122279
 | 
 0  | 
 0  | 
     if( zRight  | 
 
| 
122280
 | 
 0  | 
 0  | 
      && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK  | 
 
| 
122281
 | 
 0  | 
 0  | 
      && N>=0  | 
 
| 
122430
 | 
 0  | 
 0  | 
   for(i=0, j=pPragma->iPragCName; inPragCName; i++, j++){  | 
 
| 
122434
 | 
 0  | 
 0  | 
   if( i==0 ){  | 
 
| 
122439
 | 
 0  | 
 0  | 
   if( pPragma->mPragFlg & PragFlg_Result1 ){  | 
 
| 
122443
 | 
 0  | 
 0  | 
   if( pPragma->mPragFlg & (PragFlg_SchemaOpt|PragFlg_SchemaReq) ){  | 
 
| 
122451
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
122453
 | 
 0  | 
 0  | 
     if( pTab==0 ){  | 
 
| 
122493
 | 
 0  | 
 0  | 
   if( pTab->nHidden==0 ){ return SQLITE_OK; }  | 
 
| 
122497
 | 
 0  | 
 0  | 
   for(i=0; inConstraint; i++, pConstraint++){  | 
 
| 
122498
 | 
 0  | 
 0  | 
     if( pConstraint->usable==0 ) continue;  | 
 
| 
122499
 | 
 0  | 
 0  | 
     if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue;  | 
 
| 
122500
 | 
 0  | 
 0  | 
     if( pConstraint->iColumn < pTab->iHidden ) continue;  | 
 
| 
122505
 | 
 0  | 
 0  | 
   if( seen[0]==0 ){  | 
 
| 
122513
 | 
 0  | 
 0  | 
   if( seen[1]==0 ) return SQLITE_OK;  | 
 
| 
122526
 | 
 0  | 
 0  | 
   if( pCsr==0 ) return SQLITE_NOMEM;  | 
 
| 
122538
 | 
 0  | 
 0  | 
   for(i=0; iazArg); i++){  | 
 
| 
122560
 | 
 0  | 
 0  | 
   if( SQLITE_ROW!=sqlite3_step(pCsr->pPragma) ){  | 
 
| 
122587
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
122591
 | 
 0  | 
 0  | 
     if( zText ){  | 
 
| 
122593
 | 
 0  | 
 0  | 
       if( pCsr->azArg[j]==0 ){  | 
 
| 
122600
 | 
 0  | 
 0  | 
   if( pCsr->azArg[1] ){  | 
 
| 
122604
 | 
 0  | 
 0  | 
   if( pCsr->azArg[0] ){  | 
 
| 
122608
 | 
 0  | 
 0  | 
   if( zSql==0 ) return SQLITE_NOMEM;  | 
 
| 
122611
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
122636
 | 
 0  | 
 0  | 
   if( iiHidden ){  | 
 
| 
122690
 | 
 0  | 
 0  | 
   if( pName==0 ) return 0;  | 
 
| 
122691
 | 
 0  | 
 0  | 
   if( (pName->mPragFlg & (PragFlg_Result0|PragFlg_Result1))==0 ) return 0;  | 
 
| 
122729
 | 
 0  | 
 0  | 
   if( db->mallocFailed ){  | 
 
| 
122731
 | 
 0  | 
 0  | 
   }else if( pData->pzErrMsg[0]!=0 ){  | 
 
| 
122733
 | 
 0  | 
 0  | 
   }else if( pData->mInitFlags & INITFLAG_AlterTable ){  | 
 
| 
122736
 | 
 0  | 
 0  | 
   }else if( db->flags & SQLITE_WriteSchema ){  | 
 
| 
122740
 | 
 0  | 
 0  | 
     if( zObj==0 ) zObj = "?";  | 
 
| 
122742
 | 
 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);  | 
 
| 
122769
 | 
 0  | 
 650  | 
   if( db->mallocFailed ){  | 
 
| 
122775
 | 
 0  | 
 650  | 
   if( argv==0 ) return 0;   /* Might happen if EMPTY_RESULT_CALLBACKS are on */  | 
 
| 
122776
 | 
 0  | 
 650  | 
   if( argv[1]==0 ){  | 
 
| 
122778
 | 
 617  | 
 33  | 
   }else if( sqlite3_strnicmp(argv[2],"create ",7)==0 ){  | 
 
| 
122798
 | 
 0  | 
 617  | 
     if( SQLITE_OK!=rc ){  | 
 
| 
122799
 | 
 0  | 
 0  | 
       if( db->init.orphanTrigger ){  | 
 
| 
122803
 | 
 0  | 
 0  | 
         if( rc==SQLITE_NOMEM ){  | 
 
| 
122805
 | 
 0  | 
 0  | 
         }else if( rc!=SQLITE_INTERRUPT && (rc&0xFF)!=SQLITE_LOCKED ){  | 
 
| 
 | 
 0  | 
 0  | 
         }else if( rc!=SQLITE_INTERRUPT && (rc&0xFF)!=SQLITE_LOCKED ){  | 
 
| 
122811
 | 
 33  | 
 0  | 
   }else if( argv[0]==0 || (argv[2]!=0 && argv[2][0]!=0) ){  | 
 
| 
 | 
 0  | 
 33  | 
   }else if( argv[0]==0 || (argv[2]!=0 && argv[2][0]!=0) ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( argv[0]==0 || (argv[2]!=0 && argv[2][0]!=0) ){  | 
 
| 
122822
 | 
 33  | 
 0  | 
     if( pIndex==0 ){  | 
 
| 
122829
 | 
 0  | 
 33  | 
     }else if( sqlite3GetInt32(argv[1], &pIndex->tnum)==0 ){  | 
 
| 
122870
 | 
 181  | 
 186  | 
   azArg[0] = zMasterName = SCHEMA_TABLE(iDb);  | 
 
| 
122881
 | 
 0  | 
 367  | 
   if( initData.rc ){  | 
 
| 
122889
 | 
 181  | 
 186  | 
   if( pDb->pBt==0 ){  | 
 
| 
122900
 | 
 162  | 
 24  | 
   if( !sqlite3BtreeIsInReadTrans(pDb->pBt) ){  | 
 
| 
122902
 | 
 0  | 
 162  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
122926
 | 
 930  | 
 186  | 
   for(i=0; i
 | 
 
| 
122929
 | 
 0  | 
 186  | 
   if( (db->flags & SQLITE_ResetDatabase)!=0 ){  | 
 
| 
122939
 | 
 29  | 
 157  | 
   if( meta[BTREE_TEXT_ENCODING-1] ){  /* text encoding */  | 
 
| 
122940
 | 
 29  | 
 0  | 
     if( iDb==0 ){  | 
 
| 
122945
 | 
 0  | 
 29  | 
       if( encoding==0 ) encoding = SQLITE_UTF8;  | 
 
| 
122952
 | 
 0  | 
 0  | 
       if( meta[BTREE_TEXT_ENCODING-1]!=ENC(db) ){  | 
 
| 
122964
 | 
 185  | 
 1  | 
   if( pDb->pSchema->cache_size==0 ){  | 
 
| 
122967
 | 
 185  | 
 0  | 
     if( size==0 ){ size = SQLITE_DEFAULT_CACHE_SIZE; }  | 
 
| 
122982
 | 
 157  | 
 29  | 
   if( pDb->pSchema->file_format==0 ){  | 
 
| 
122985
 | 
 0  | 
 186  | 
   if( pDb->pSchema->file_format>SQLITE_MAX_FILE_FORMAT ){  | 
 
| 
122996
 | 
 181  | 
 5  | 
   if( iDb==0 && meta[BTREE_FILE_FORMAT-1]>=4 ){  | 
 
| 
 | 
 29  | 
 152  | 
   if( iDb==0 && meta[BTREE_FILE_FORMAT-1]>=4 ){  | 
 
| 
123019
 | 
 186  | 
 0  | 
     if( rc==SQLITE_OK ) rc = initData.rc;  | 
 
| 
123022
 | 
 186  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
123027
 | 
 0  | 
 186  | 
   if( db->mallocFailed ){  | 
 
| 
123031
 | 
 0  | 
 186  | 
   if( rc==SQLITE_OK || (db->flags&SQLITE_NoSchemaError)){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK || (db->flags&SQLITE_NoSchemaError)){  | 
 
| 
123049
 | 
 162  | 
 24  | 
   if( openedTransaction ){  | 
 
| 
123055
 | 
 0  | 
 367  | 
   if( rc ){  | 
 
| 
123056
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
123085
 | 
 181  | 
 4006  | 
   if( !DbHasProperty(db, 0, DB_SchemaLoaded) ){  | 
 
| 
123087
 | 
 0  | 
 181  | 
     if( rc ) return rc;  | 
 
| 
123090
 | 
 4387  | 
 4187  | 
   for(i=db->nDb-1; i>0; i--){  | 
 
| 
123092
 | 
 186  | 
 4201  | 
     if( !DbHasProperty(db, i, DB_SchemaLoaded) ){  | 
 
| 
123094
 | 
 0  | 
 186  | 
       if( rc ) return rc;  | 
 
| 
123097
 | 
 4059  | 
 128  | 
   if( commit_internal ){  | 
 
| 
123111
 | 
 4169  | 
 1059  | 
   if( !db->init.busy ){  | 
 
| 
123113
 | 
 0  | 
 4169  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
123116
 | 
 0  | 
 4169  | 
     }else if( db->noSharedCache ){  | 
 
| 
123137
 | 
 14  | 
 7  | 
   for(iDb=0; iDbnDb; iDb++){  | 
 
| 
123140
 | 
 7  | 
 7  | 
     if( pBt==0 ) continue;  | 
 
| 
123145
 | 
 7  | 
 0  | 
     if( !sqlite3BtreeIsInReadTrans(pBt) ){  | 
 
| 
123147
 | 
 7  | 
 0  | 
       if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
 | 
 0  | 
 7  | 
       if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
123150
 | 
 0  | 
 7  | 
       if( rc!=SQLITE_OK ) return;  | 
 
| 
123159
 | 
 0  | 
 7  | 
     if( cookie!=db->aDb[iDb].pSchema->schema_cookie ){  | 
 
| 
123165
 | 
 7  | 
 0  | 
     if( openedTransaction ){  | 
 
| 
123192
 | 
 10301  | 
 35  | 
   if( pSchema ){  | 
 
| 
123195
 | 
 10301  | 
 5485  | 
       if( db->aDb[i].pSchema==pSchema ){  | 
 
| 
123211
 | 
 5447  | 
 0  | 
   if( db ){  | 
 
| 
123245
 | 
 70  | 
 5353  | 
   if( prepFlags & SQLITE_PREPARE_PERSISTENT ){  | 
 
| 
123273
 | 
 11014  | 
 5423  | 
   for(i=0; inDb; i++) {  | 
 
| 
123275
 | 
 8253  | 
 2761  | 
     if( pBt ){  | 
 
| 
123278
 | 
 0  | 
 8253  | 
       if( rc ){  | 
 
| 
123290
 | 
 0  | 
 5423  | 
   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) ){  | 
 
| 
123295
 | 
 0  | 
 0  | 
     if( nBytes>mxLen ){  | 
 
| 
123301
 | 
 0  | 
 0  | 
     if( zSqlCopy ){  | 
 
| 
123313
 | 
 5405  | 
 18  | 
   if( sParse.rc==SQLITE_DONE ) sParse.rc = SQLITE_OK;  | 
 
| 
123314
 | 
 7  | 
 5416  | 
   if( sParse.checkSchema ){  | 
 
| 
123317
 | 
 0  | 
 5423  | 
   if( db->mallocFailed ){  | 
 
| 
123320
 | 
 4480  | 
 943  | 
   if( pzTail ){  | 
 
| 
123326
 | 
 5413  | 
 10  | 
   if( rc==SQLITE_OK && sParse.pVdbe && sParse.explain ){  | 
 
| 
 | 
 5405  | 
 8  | 
   if( rc==SQLITE_OK && sParse.pVdbe && sParse.explain ){  | 
 
| 
 | 
 0  | 
 5405  | 
   if( rc==SQLITE_OK && sParse.pVdbe && sParse.explain ){  | 
 
| 
123332
 | 
 0  | 
 0  | 
     if( sParse.explain==2 ){  | 
 
| 
123341
 | 
 0  | 
 0  | 
     for(i=iFirst; i
 | 
 
| 
123348
 | 
 4402  | 
 1021  | 
   if( db->init.busy==0 ){  | 
 
| 
123351
 | 
 5405  | 
 18  | 
   if( sParse.pVdbe && (rc!=SQLITE_OK || db->mallocFailed) ){  | 
 
| 
 | 
 5405  | 
 0  | 
   if( sParse.pVdbe && (rc!=SQLITE_OK || db->mallocFailed) ){  | 
 
| 
 | 
 0  | 
 5405  | 
   if( sParse.pVdbe && (rc!=SQLITE_OK || db->mallocFailed) ){  | 
 
| 
123358
 | 
 10  | 
 5413  | 
   if( zErrMsg ){  | 
 
| 
123366
 | 
 0  | 
 5423  | 
   while( sParse.pTriggerPrg ){  | 
 
| 
123393
 | 
 5423  | 
 0  | 
   if( !sqlite3SafetyCheckOk(db)||zSql==0 ){  | 
 
| 
 | 
 0  | 
 5423  | 
   if( !sqlite3SafetyCheckOk(db)||zSql==0 ){  | 
 
| 
123405
 | 
 0  | 
 5423  | 
        || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt++)==0) );  | 
 
| 
 | 
 0  | 
 5423  | 
        || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt++)==0) );  | 
 
| 
 | 
 0  | 
 0  | 
        || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt++)==0) );  | 
 
| 
123723
 | 
 0  | 
 1  | 
   if( rc ){  | 
 
| 
123724
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOMEM ){  | 
 
| 
123826
 | 
 0  | 
 0  | 
   if( !sqlite3SafetyCheckOk(db)||zSql==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !sqlite3SafetyCheckOk(db)||zSql==0 ){  | 
 
| 
123829
 | 
 0  | 
 0  | 
   if( nBytes>=0 ){  | 
 
| 
123832
 | 
 0  | 
 0  | 
     for(sz=0; sz
 | 
 
| 
 | 
 0  | 
 0  | 
     for(sz=0; sz
 | 
 
| 
 | 
 0  | 
 0  | 
     for(sz=0; sz
 | 
 
| 
123837
 | 
 0  | 
 0  | 
   if( zSql8 ){  | 
 
| 
123841
 | 
 0  | 
 0  | 
   if( zTail8 && pzTail ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zTail8 && pzTail ){  | 
 
| 
123997
 | 
 4222  | 
 4139  | 
   while( p ){  | 
 
| 
124007
 | 
 0  | 
 4222  | 
     if( OK_IF_ALWAYS_TRUE(p->pWinDefn) ){  | 
 
| 
124011
 | 
 0  | 
 4222  | 
     if( OK_IF_ALWAYS_TRUE(p->pWith) ) sqlite3WithDelete(db, p->pWith);  | 
 
| 
124012
 | 
 4222  | 
 0  | 
     if( bFree ) sqlite3DbFreeNN(db, p);  | 
 
| 
124048
 | 
 0  | 
 4222  | 
   if( pNew==0 ){  | 
 
| 
124052
 | 
 0  | 
 4222  | 
   if( pEList==0 ){  | 
 
| 
124065
 | 
 2658  | 
 1564  | 
   if( pSrc==0 ) pSrc = sqlite3DbMallocZero(pParse->db, sizeof(*pSrc));  | 
 
| 
124079
 | 
 0  | 
 4222  | 
   if( pParse->db->mallocFailed ) {  | 
 
| 
124094
 | 
 4139  | 
 7683  | 
   if( OK_IF_ALWAYS_TRUE(p) ) clearSelect(db, p, 1);  | 
 
| 
124101
 | 
 0  | 
 2  | 
   while( p->pNext ) p = p->pNext;  | 
 
| 
124145
 | 
 0  | 
 0  | 
   for(i=0; i<3 && apAll[i]; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; i<3 && apAll[i]; i++){  | 
 
| 
124147
 | 
 0  | 
 0  | 
     for(j=0; j
 | 
 
| 
124148
 | 
 0  | 
 0  | 
       if( p->n==aKeyword[j].nChar   | 
 
| 
124149
 | 
 0  | 
 0  | 
           && sqlite3StrNICmp((char*)p->z, &zKeyText[aKeyword[j].i], p->n)==0 ){  | 
 
| 
124155
 | 
 0  | 
 0  | 
     if( j>=ArraySize(aKeyword) ){  | 
 
| 
124160
 | 
 0  | 
 0  | 
   if(  | 
 
| 
124161
 | 
 0  | 
 0  | 
      (jointype & (JT_INNER|JT_OUTER))==(JT_INNER|JT_OUTER) ||  | 
 
| 
124166
 | 
 0  | 
 0  | 
     if( pC==0 ){ zSp++; }  | 
 
| 
124170
 | 
 0  | 
 0  | 
   }else if( (jointype & JT_OUTER)!=0   | 
 
| 
124171
 | 
 0  | 
 0  | 
          && (jointype & (JT_LEFT|JT_RIGHT))!=JT_LEFT ){  | 
 
| 
124185
 | 
 0  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
124186
 | 
 0  | 
 0  | 
     if( sqlite3StrICmp(pTab->aCol[i].zName, zCol)==0 ) return i;  | 
 
| 
124211
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
124213
 | 
 0  | 
 0  | 
     if( iCol>=0 ){  | 
 
| 
124214
 | 
 0  | 
 0  | 
       if( piTab ){  | 
 
| 
124259
 | 
 0  | 
 0  | 
   if( pEq && isOuterJoin ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pEq && isOuterJoin ){  | 
 
| 
124295
 | 
 0  | 
 0  | 
   while( p ){  | 
 
| 
124300
 | 
 0  | 
 0  | 
     if( p->op==TK_FUNCTION && p->x.pList ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->op==TK_FUNCTION && p->x.pList ){  | 
 
| 
124302
 | 
 0  | 
 0  | 
       for(i=0; ix.pList->nExpr; i++){  | 
 
| 
124318
 | 
 303  | 
 596  | 
   while( p ){  | 
 
| 
124319
 | 
 0  | 
 303  | 
     if( ExprHasProperty(p, EP_FromJoin)  | 
 
| 
124320
 | 
 0  | 
 0  | 
      && (iTable<0 || p->iRightJoinTable==iTable) ){  | 
 
| 
 | 
 0  | 
 0  | 
      && (iTable<0 || p->iRightJoinTable==iTable) ){  | 
 
| 
124323
 | 
 96  | 
 207  | 
     if( p->op==TK_FUNCTION && p->x.pList ){  | 
 
| 
 | 
 96  | 
 0  | 
     if( p->op==TK_FUNCTION && p->x.pList ){  | 
 
| 
124325
 | 
 192  | 
 96  | 
       for(i=0; ix.pList->nExpr; i++){  | 
 
| 
124357
 | 
 3  | 
 1574  | 
   for(i=0; inSrc-1; i++, pRight++, pLeft++){  | 
 
| 
124361
 | 
 3  | 
 0  | 
     if( NEVER(pLeft->pTab==0 || pRightTab==0) ) continue;  | 
 
| 
 | 
 0  | 
 3  | 
     if( NEVER(pLeft->pTab==0 || pRightTab==0) ) continue;  | 
 
| 
124367
 | 
 0  | 
 3  | 
     if( pRight->fg.jointype & JT_NATURAL ){  | 
 
| 
124368
 | 
 0  | 
 0  | 
       if( pRight->pOn || pRight->pUsing ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pRight->pOn || pRight->pUsing ){  | 
 
| 
124373
 | 
 0  | 
 0  | 
       for(j=0; jnCol; j++){  | 
 
| 
124379
 | 
 0  | 
 0  | 
         if( tableAndColumnIndex(pSrc, i+1, zName, &iLeft, &iLeftCol) ){  | 
 
| 
124388
 | 
 0  | 
 3  | 
     if( pRight->pOn && pRight->pUsing ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pRight->pOn && pRight->pUsing ){  | 
 
| 
124397
 | 
 0  | 
 3  | 
     if( pRight->pOn ){  | 
 
| 
124398
 | 
 0  | 
 0  | 
       if( isOuter ) setJoinExpr(pRight->pOn, pRight->iCursor);  | 
 
| 
124410
 | 
 0  | 
 3  | 
     if( pRight->pUsing ){  | 
 
| 
124412
 | 
 0  | 
 0  | 
       for(j=0; jnId; j++){  | 
 
| 
124420
 | 
 0  | 
 0  | 
         if( iRightCol<0  | 
 
| 
124421
 | 
 0  | 
 0  | 
          || !tableAndColumnIndex(pSrc, i+1, zName, &iLeft, &iLeftCol)  | 
 
| 
124484
 | 
 1  | 
 73  | 
   if( pSort->pDeferredRowLoad ){  | 
 
| 
124532
 | 
 74  | 
 0  | 
   if( nPrefixReg ){  | 
 
| 
124540
 | 
 0  | 
 74  | 
   iLimit = pSelect->iOffset ? pSelect->iOffset+1 : pSelect->iLimit;  | 
 
| 
124542
 | 
 18  | 
 56  | 
   sqlite3ExprCodeExprList(pParse, pSort->pOrderBy, regBase, regOrigData,  | 
 
| 
124544
 | 
 1  | 
 73  | 
   if( bSeq ){  | 
 
| 
124547
 | 
 0  | 
 74  | 
   if( nPrefixReg==0 && nData>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( nPrefixReg==0 && nData>0 ){  | 
 
| 
124550
 | 
 15  | 
 59  | 
   if( nOBSat>0 ){  | 
 
| 
124562
 | 
 0  | 
 15  | 
     if( bSeq ){  | 
 
| 
124570
 | 
 0  | 
 15  | 
     if( pParse->db->mallocFailed ) return;  | 
 
| 
124584
 | 
 0  | 
 15  | 
     if( iLimit ){  | 
 
| 
124592
 | 
 1  | 
 73  | 
   if( iLimit ){  | 
 
| 
124617
 | 
 59  | 
 15  | 
   if( regRecord==0 ){  | 
 
| 
124620
 | 
 73  | 
 1  | 
   if( pSort->sortFlags & SORTFLAG_UseSorter ){  | 
 
| 
124627
 | 
 1  | 
 73  | 
   if( iSkip ){  | 
 
| 
124628
 | 
 0  | 
 1  | 
     sqlite3VdbeChangeP2(v, iSkip,  | 
 
| 
124641
 | 
 0  | 
 1563  | 
   if( iOffset>0 ){  | 
 
| 
124794
 | 
 1431  | 
 132  | 
   hasDistinct = pDistinct ? pDistinct->eTnctType : WHERE_DISTINCT_NOOP;  | 
 
| 
124795
 | 
 1431  | 
 132  | 
   if( pSort && pSort->pOrderBy==0 ) pSort = 0;  | 
 
| 
 | 
 1357  | 
 74  | 
   if( pSort && pSort->pOrderBy==0 ) pSort = 0;  | 
 
| 
124796
 | 
 1489  | 
 74  | 
   if( pSort==0 && !hasDistinct ){  | 
 
| 
 | 
 1487  | 
 2  | 
   if( pSort==0 && !hasDistinct ){  | 
 
| 
124805
 | 
 1464  | 
 99  | 
   if( pDest->iSdst==0 ){  | 
 
| 
124806
 | 
 74  | 
 1390  | 
     if( pSort ){  | 
 
| 
124808
 | 
 1  | 
 73  | 
       if( !(pSort->sortFlags & SORTFLAG_UseSorter) ) nPrefixReg++;  | 
 
| 
124813
 | 
 0  | 
 99  | 
   }else if( pDest->iSdst+nResultCol > pParse->nMem ){  | 
 
| 
124823
 | 
 2  | 
 1561  | 
   if( srcTab>=0 ){  | 
 
| 
124824
 | 
 2  | 
 2  | 
     for(i=0; i
 | 
 
| 
124828
 | 
 1561  | 
 0  | 
   }else if( eDest!=SRT_Exists ){  | 
 
| 
124837
 | 
 1545  | 
 16  | 
     if( eDest==SRT_Mem || eDest==SRT_Output || eDest==SRT_Coroutine ){  | 
 
| 
 | 
 107  | 
 1438  | 
     if( eDest==SRT_Mem || eDest==SRT_Output || eDest==SRT_Coroutine ){  | 
 
| 
 | 
 101  | 
 6  | 
     if( eDest==SRT_Mem || eDest==SRT_Output || eDest==SRT_Coroutine ){  | 
 
| 
124842
 | 
 74  | 
 1487  | 
     if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){  | 
 
| 
 | 
 74  | 
 0  | 
     if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){  | 
 
| 
 | 
 74  | 
 0  | 
     if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){  | 
 
| 
 | 
 74  | 
 0  | 
     if( pSort && hasDistinct==0 && eDest!=SRT_EphemTab && eDest!=SRT_Table ){  | 
 
| 
124851
 | 
 106  | 
 74  | 
       for(i=pSort->nOBSat; ipOrderBy->nExpr; i++){  | 
 
| 
124853
 | 
 88  | 
 18  | 
         if( (j = pSort->pOrderBy->a[i].u.x.iOrderByCol)>0 ){  | 
 
| 
124875
 | 
 207  | 
 74  | 
       for(i=0; inExpr; i++){  | 
 
| 
124876
 | 
 88  | 
 119  | 
         if( pEList->a[i].u.x.iOrderByCol>0  | 
 
| 
124901
 | 
 18  | 
 1543  | 
     if( p->iLimit  | 
 
| 
124902
 | 
 1  | 
 17  | 
      && (ecelFlags & SQLITE_ECEL_OMITREF)!=0   | 
 
| 
124903
 | 
 1  | 
 0  | 
      && nPrefixReg>0  | 
 
| 
124918
 | 
 2  | 
 1561  | 
   if( hasDistinct ){  | 
 
| 
124942
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
124944
 | 
 0  | 
 0  | 
           if( i
 | 
 
| 
124971
 | 
 2  | 
 0  | 
     if( pSort==0 ){  | 
 
| 
125013
 | 
 0  | 
 0  | 
       if( eDest==SRT_DistFifo ){  | 
 
| 
125026
 | 
 0  | 
 0  | 
       if( pSort ){  | 
 
| 
125046
 | 
 0  | 
 0  | 
       if( pSort ){  | 
 
| 
125077
 | 
 0  | 
 16  | 
       if( pSort ){  | 
 
| 
125094
 | 
 74  | 
 1467  | 
       if( pSort ){  | 
 
| 
125097
 | 
 103  | 
 1364  | 
       }else if( eDest==SRT_Coroutine ){  | 
 
| 
125124
 | 
 0  | 
 0  | 
       if( eDest==SRT_DistQueue ){  | 
 
| 
125133
 | 
 0  | 
 0  | 
       if( eDest==SRT_DistQueue ){  | 
 
| 
125137
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
125145
 | 
 0  | 
 0  | 
       if( addrTest ) sqlite3VdbeJumpHere(v, addrTest);  | 
 
| 
125171
 | 
 1489  | 
 74  | 
   if( pSort==0 && p->iLimit ){  | 
 
| 
 | 
 17  | 
 1472  | 
   if( pSort==0 && p->iLimit ){  | 
 
| 
125183
 | 
 599  | 
 0  | 
   if( p ){  | 
 
| 
125201
 | 
 619  | 
 0  | 
   if( p ){  | 
 
| 
125204
 | 
 599  | 
 20  | 
     if( p->nRef==0 ) sqlite3DbFreeNN(p->db, p);  | 
 
| 
125212
 | 
 20  | 
 0  | 
   if( p ){  | 
 
| 
125257
 | 
 521  | 
 0  | 
   if( pInfo ){  | 
 
| 
125259
 | 
 571  | 
 521  | 
     for(i=iStart, pItem=pList->a+iStart; i
 | 
 
| 
125345
 | 
 15  | 
 59  | 
   if( pSort->labelBkOut ){  | 
 
| 
125362
 | 
 0  | 
 74  | 
   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 ){  | 
 
| 
125370
 | 
 73  | 
 1  | 
   if( pSort->sortFlags & SORTFLAG_UseSorter ){  | 
 
| 
125373
 | 
 15  | 
 58  | 
     if( pSort->labelBkOut ){  | 
 
| 
125378
 | 
 15  | 
 58  | 
     if( addrOnce ) sqlite3VdbeJumpHere(v, addrOnce);  | 
 
| 
125390
 | 
 207  | 
 74  | 
   for(i=0, iCol=nKey+bSeq-1; i
 | 
 
| 
125394
 | 
 119  | 
 88  | 
     if( aOutEx[i].u.x.iOrderByCol==0 ) iCol++;  | 
 
| 
125427
 | 
 207  | 
 74  | 
   for(i=nColumn-1; i>=0; i--){  | 
 
| 
125435
 | 
 88  | 
 119  | 
       if( aOutEx[i].u.x.iOrderByCol ){  | 
 
| 
125469
 | 
 74  | 
 0  | 
       if( eDest==SRT_Output ){  | 
 
| 
125477
 | 
 0  | 
 74  | 
   if( regRowid ){  | 
 
| 
125478
 | 
 0  | 
 0  | 
     if( eDest==SRT_Set ){  | 
 
| 
125488
 | 
 73  | 
 1  | 
   if( pSort->sortFlags & SORTFLAG_UseSorter ){  | 
 
| 
125493
 | 
 15  | 
 59  | 
   if( pSort->regReturn ) sqlite3VdbeAddOp1(v, OP_Return, pSort->regReturn);  | 
 
| 
125558
 | 
 4322  | 
 0  | 
       while( pNC && !pTab ){  | 
 
| 
 | 
 2161  | 
 2161  | 
       while( pNC && !pTab ){  | 
 
| 
125560
 | 
 2166  | 
 0  | 
         for(j=0;jnSrc && pTabList->a[j].iCursor!=pExpr->iTable;j++);  | 
 
| 
 | 
 5  | 
 2161  | 
         for(j=0;jnSrc && pTabList->a[j].iCursor!=pExpr->iTable;j++);  | 
 
| 
125561
 | 
 2161  | 
 0  | 
         if( jnSrc ){  | 
 
| 
125569
 | 
 0  | 
 2161  | 
       if( pTab==0 ){  | 
 
| 
125591
 | 
 198  | 
 1963  | 
       if( pS ){  | 
 
| 
125596
 | 
 198  | 
 0  | 
         if( iCol>=0 && iColpEList->nExpr ){  | 
 
| 
 | 
 198  | 
 0  | 
         if( iCol>=0 && iColpEList->nExpr ){  | 
 
| 
125612
 | 
 28  | 
 1935  | 
         if( iCol<0 ) iCol = pTab->iPKey;  | 
 
| 
125614
 | 
 0  | 
 1963  | 
         if( iCol<0 ){  | 
 
| 
125622
 | 
 1930  | 
 33  | 
         if( pNC->pParse && pTab->pSchema ){  | 
 
| 
 | 
 1930  | 
 0  | 
         if( pNC->pParse && pTab->pSchema ){  | 
 
| 
125657
 | 
 2748  | 
 146  | 
   if( pzOrigDb ){  | 
 
| 
125683
 | 
 2550  | 
 1438  | 
   for(i=0; inExpr; i++){  | 
 
| 
125753
 | 
 0  | 
 1438  | 
   if( pParse->explain ){  | 
 
| 
125758
 | 
 0  | 
 1438  | 
   if( pParse->colNamesSet ) return;  | 
 
| 
125760
 | 
 0  | 
 1438  | 
   while( pSelect->pPrior ) pSelect = pSelect->pPrior;  | 
 
| 
125768
 | 
 1  | 
 1437  | 
   srcName = (db->flags & SQLITE_ShortColNames)!=0 || fullName;  | 
 
| 
 | 
 1  | 
 0  | 
   srcName = (db->flags & SQLITE_ShortColNames)!=0 || fullName;  | 
 
| 
125770
 | 
 2550  | 
 1438  | 
   for(i=0; inExpr; i++){  | 
 
| 
125776
 | 
 291  | 
 2259  | 
     if( pEList->a[i].zName ){  | 
 
| 
125780
 | 
 2259  | 
 0  | 
     }else if( srcName && p->op==TK_COLUMN ){  | 
 
| 
 | 
 1748  | 
 511  | 
     }else if( srcName && p->op==TK_COLUMN ){  | 
 
| 
125785
 | 
 13  | 
 1735  | 
       if( iCol<0 ) iCol = pTab->iPKey;  | 
 
| 
125787
 | 
 0  | 
 1748  | 
       if( iCol<0 ){  | 
 
| 
125792
 | 
 0  | 
 1748  | 
       if( fullName ){  | 
 
| 
125801
 | 
 0  | 
 511  | 
       z = z==0 ? sqlite3MPrintf(db, "column%d", i+1) : sqlite3DbStrDup(db, z);  | 
 
| 
125846
 | 
 35  | 
 0  | 
   if( pEList ){  | 
 
| 
125850
 | 
 0  | 
 35  | 
     if( nCol>32767 ) nCol = 32767;  | 
 
| 
125859
 | 
 146  | 
 35  | 
   for(i=0, pCol=aCol; imallocFailed; i++, pCol++){  | 
 
| 
 | 
 146  | 
 0  | 
   for(i=0, pCol=aCol; imallocFailed; i++, pCol++){  | 
 
| 
125862
 | 
 59  | 
 87  | 
     if( (zName = pEList->a[i].zName)!=0 ){  | 
 
| 
125866
 | 
 0  | 
 59  | 
       while( pColExpr->op==TK_DOT ){  | 
 
| 
125871
 | 
 0  | 
 59  | 
       if( pColExpr->op==TK_COLUMN ){  | 
 
| 
125876
 | 
 0  | 
 0  | 
         if( iCol<0 ) iCol = pTab->iPKey;  | 
 
| 
125877
 | 
 0  | 
 0  | 
         zName = iCol>=0 ? pTab->aCol[iCol].zName : "rowid";  | 
 
| 
125878
 | 
 59  | 
 0  | 
       }else if( pColExpr->op==TK_ID ){  | 
 
| 
125886
 | 
 146  | 
 0  | 
     if( zName ){  | 
 
| 
125896
 | 
 146  | 
 0  | 
     while( zName && sqlite3HashFind(&ht, zName)!=0 ){  | 
 
| 
 | 
 0  | 
 146  | 
     while( zName && sqlite3HashFind(&ht, zName)!=0 ){  | 
 
| 
125898
 | 
 0  | 
 0  | 
       if( nName>0 ){  | 
 
| 
125899
 | 
 0  | 
 0  | 
         for(j=nName-1; j>0 && sqlite3Isdigit(zName[j]); j--){}  | 
 
| 
 | 
 0  | 
 0  | 
         for(j=nName-1; j>0 && sqlite3Isdigit(zName[j]); j--){}  | 
 
| 
125900
 | 
 0  | 
 0  | 
         if( zName[j]==':' ) nName = j;  | 
 
| 
125903
 | 
 0  | 
 0  | 
       if( cnt>3 ) sqlite3_randomness(sizeof(cnt), &cnt);  | 
 
| 
125907
 | 
 146  | 
 0  | 
     if( zName && sqlite3HashInsert(&ht, zName, pCol)==pCol ){  | 
 
| 
 | 
 0  | 
 146  | 
     if( zName && sqlite3HashInsert(&ht, zName, pCol)==pCol ){  | 
 
| 
125912
 | 
 0  | 
 35  | 
   if( db->mallocFailed ){  | 
 
| 
125913
 | 
 0  | 
 0  | 
     for(j=0; j
 | 
 
| 
125951
 | 
 0  | 
 35  | 
   if( db->mallocFailed ) return;  | 
 
| 
125955
 | 
 146  | 
 35  | 
   for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){  | 
 
| 
125962
 | 
 33  | 
 113  | 
     if( zType ){  | 
 
| 
125966
 | 
 33  | 
 0  | 
       if( pCol->zName ){  | 
 
| 
125971
 | 
 61  | 
 85  | 
     if( pCol->affinity==0 ) pCol->affinity = SQLITE_AFF_BLOB;  | 
 
| 
125973
 | 
 85  | 
 61  | 
     if( pColl && pCol->zColl==0 ){  | 
 
| 
 | 
 85  | 
 0  | 
     if( pColl && pCol->zColl==0 ){  | 
 
| 
125993
 | 
 0  | 
 0  | 
   if( pParse->nErr ) return 0;  | 
 
| 
125994
 | 
 0  | 
 0  | 
   while( pSelect->pPrior ) pSelect = pSelect->pPrior;  | 
 
| 
125997
 | 
 0  | 
 0  | 
   if( pTab==0 ){  | 
 
| 
126009
 | 
 0  | 
 0  | 
   if( db->mallocFailed ){  | 
 
| 
126021
 | 
 22970  | 
 5414  | 
   if( pParse->pVdbe ){  | 
 
| 
126024
 | 
 5414  | 
 0  | 
   if( pParse->pToplevel==0  | 
 
| 
126025
 | 
 5414  | 
 0  | 
    && OptimizationEnabled(pParse->db,SQLITE_FactorOutConst)  | 
 
| 
126063
 | 
 0  | 
 1553  | 
   if( p->iLimit ) return;  | 
 
| 
126071
 | 
 18  | 
 1535  | 
   if( pLimit ){  | 
 
| 
126077
 | 
 18  | 
 0  | 
     if( sqlite3ExprIsInteger(pLimit->pLeft, &n) ){  | 
 
| 
126080
 | 
 0  | 
 18  | 
       if( n==0 ){  | 
 
| 
126082
 | 
 18  | 
 0  | 
       }else if( n>=0 && p->nSelectRow>sqlite3LogEst((u64)n) ){  | 
 
| 
 | 
 18  | 
 0  | 
       }else if( n>=0 && p->nSelectRow>sqlite3LogEst((u64)n) ){  | 
 
| 
126092
 | 
 0  | 
 18  | 
     if( pLimit->pRight ){  | 
 
| 
126115
 | 
 4  | 
 2  | 
   if( p->pPrior ){  | 
 
| 
126124
 | 
 6  | 
 0  | 
   if( pRet==0 && ALWAYS(iColpEList->nExpr) ){  | 
 
| 
 | 
 6  | 
 0  | 
   if( pRet==0 && ALWAYS(iColpEList->nExpr) ){  | 
 
| 
126144
 | 
 0  | 
 0  | 
   if( pRet ){  | 
 
| 
126146
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
126151
 | 
 0  | 
 0  | 
       if( pTerm->flags & EP_Collate ){  | 
 
| 
126155
 | 
 0  | 
 0  | 
         if( pColl==0 ) pColl = db->pDfltColl;  | 
 
| 
126229
 | 
 0  | 
 0  | 
   if( p->pWin ){  | 
 
| 
126236
 | 
 0  | 
 0  | 
   if( sqlite3AuthCheck(pParse, SQLITE_RECURSIVE, 0, 0, 0) ) return;  | 
 
| 
126250
 | 
 0  | 
 0  | 
   for(i=0; ALWAYS(inSrc); i++){  | 
 
| 
126251
 | 
 0  | 
 0  | 
     if( pSrc->a[i].fg.isRecursive ){  | 
 
| 
126261
 | 
 0  | 
 0  | 
   if( p->op==TK_UNION ){  | 
 
| 
126262
 | 
 0  | 
 0  | 
     eDest = pOrderBy ? SRT_DistQueue : SRT_DistFifo;  | 
 
| 
126265
 | 
 0  | 
 0  | 
     eDest = pOrderBy ? SRT_Queue : SRT_Fifo;  | 
 
| 
126272
 | 
 0  | 
 0  | 
   if( pOrderBy ){  | 
 
| 
126281
 | 
 0  | 
 0  | 
   if( iDistinct ){  | 
 
| 
126294
 | 
 0  | 
 0  | 
   if( rc ) goto end_of_recursive_query;  | 
 
| 
126301
 | 
 0  | 
 0  | 
   if( pOrderBy ){  | 
 
| 
126313
 | 
 0  | 
 0  | 
   if( regLimit ){  | 
 
| 
126322
 | 
 0  | 
 0  | 
   if( p->selFlags & SF_Aggregate ){  | 
 
| 
126380
 | 
 2  | 
 8  | 
     if( p->pPrior==0 ) break;  | 
 
| 
126385
 | 
 0  | 
 2  | 
   ExplainQueryPlan((pParse, 0, "SCAN %d CONSTANT ROW%s", nRow,  | 
 
| 
126387
 | 
 10  | 
 2  | 
   while( p ){  | 
 
| 
126389
 | 
 0  | 
 10  | 
     if( !bShowAll ) break;  | 
 
| 
126447
 | 
 77  | 
 0  | 
   if( pPrior->pOrderBy || pPrior->pLimit ){  | 
 
| 
 | 
 0  | 
 77  | 
   if( pPrior->pOrderBy || pPrior->pLimit ){  | 
 
| 
126448
 | 
 0  | 
 0  | 
     sqlite3ErrorMsg(pParse,"%s clause should come after %s not before",  | 
 
| 
126459
 | 
 0  | 
 77  | 
   if( dest.eDest==SRT_EphemTab ){  | 
 
| 
126467
 | 
 2  | 
 75  | 
   if( p->selFlags & SF_MultiValue ){  | 
 
| 
126479
 | 
 0  | 
 75  | 
   if( p->selFlags & SF_Recursive ){  | 
 
| 
126486
 | 
 0  | 
 75  | 
   if( p->pOrderBy ){  | 
 
| 
126491
 | 
 22  | 
 53  | 
     if( pPrior->pPrior==0 ){  | 
 
| 
126509
 | 
 0  | 
 71  | 
         if( rc ){  | 
 
| 
126515
 | 
 0  | 
 71  | 
         if( p->iLimit ){  | 
 
| 
126518
 | 
 0  | 
 0  | 
           if( p->iOffset ){  | 
 
| 
126529
 | 
 0  | 
 71  | 
         if( pPrior->pLimit  | 
 
| 
126530
 | 
 0  | 
 0  | 
          && sqlite3ExprIsInteger(pPrior->pLimit->pLeft, &nLimit)  | 
 
| 
126531
 | 
 0  | 
 0  | 
          && nLimit>0 && p->nSelectRow > sqlite3LogEst((u64)nLimit)   | 
 
| 
 | 
 0  | 
 0  | 
          && nLimit>0 && p->nSelectRow > sqlite3LogEst((u64)nLimit)   | 
 
| 
126535
 | 
 0  | 
 71  | 
         if( addr ){  | 
 
| 
126552
 | 
 2  | 
 2  | 
         if( dest.eDest==priorOp ){  | 
 
| 
126576
 | 
 0  | 
 4  | 
         if( rc ){  | 
 
| 
126582
 | 
 0  | 
 4  | 
         if( p->op==TK_EXCEPT ){  | 
 
| 
126602
 | 
 4  | 
 0  | 
         if( p->op==TK_UNION ){  | 
 
| 
126614
 | 
 2  | 
 2  | 
         if( dest.eDest!=priorOp ){  | 
 
| 
126657
 | 
 0  | 
 0  | 
         if( rc ){  | 
 
| 
126676
 | 
 0  | 
 0  | 
         if( p->nSelectRow>pPrior->nSelectRow ){  | 
 
| 
126707
 | 
 22  | 
 53  | 
     if( p->pNext==0 ){  | 
 
| 
126722
 | 
 2  | 
 73  | 
   if( p->selFlags & SF_UsesEphemeral ){  | 
 
| 
126732
 | 
 0  | 
 2  | 
     if( !pKeyInfo ){  | 
 
| 
126736
 | 
 2  | 
 2  | 
     for(i=0, apColl=pKeyInfo->aColl; i
 | 
 
| 
126738
 | 
 2  | 
 0  | 
       if( 0==*apColl ){  | 
 
| 
126743
 | 
 6  | 
 2  | 
     for(pLoop=p; pLoop; pLoop=pLoop->pPrior){  | 
 
| 
126744
 | 
 8  | 
 0  | 
       for(i=0; i<2; i++){  | 
 
| 
126746
 | 
 6  | 
 2  | 
         if( addr<0 ){  | 
 
| 
126774
 | 
 0  | 
 0  | 
   if( p->selFlags & SF_Values ){  | 
 
| 
126821
 | 
 0  | 
 0  | 
   if( regPrev ){  | 
 
| 
126831
 | 
 0  | 
 0  | 
   if( pParse->db->mallocFailed ) return 0;  | 
 
| 
126885
 | 
 0  | 
 0  | 
       if( pDest->iSdst==0 ){  | 
 
| 
126911
 | 
 0  | 
 0  | 
   if( p->iLimit ){  | 
 
| 
127071
 | 
 0  | 
 0  | 
   if( op!=TK_ALL ){  | 
 
| 
127072
 | 
 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++){  | 
 
| 
127074
 | 
 0  | 
 0  | 
       for(j=0, pItem=pOrderBy->a; j
 | 
 
| 
127076
 | 
 0  | 
 0  | 
         if( pItem->u.x.iOrderByCol==i ) break;  | 
 
| 
127078
 | 
 0  | 
 0  | 
       if( j==nOrderBy ){  | 
 
| 
127080
 | 
 0  | 
 0  | 
         if( pNew==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
127084
 | 
 0  | 
 0  | 
         if( pOrderBy ) pOrderBy->a[nOrderBy++].u.x.iOrderByCol = (u16)i;  | 
 
| 
127097
 | 
 0  | 
 0  | 
   if( aPermute ){  | 
 
| 
127100
 | 
 0  | 
 0  | 
     for(i=1, pItem=pOrderBy->a; i<=nOrderBy; i++, pItem++){  | 
 
| 
127119
 | 
 0  | 
 0  | 
   if( op==TK_ALL ){  | 
 
| 
127128
 | 
 0  | 
 0  | 
     if( pKeyDup ){  | 
 
| 
127130
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
127142
 | 
 0  | 
 0  | 
   if( pPrior->pPrior==0 ){  | 
 
| 
127148
 | 
 0  | 
 0  | 
   if( p->iLimit && op==TK_ALL ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->iLimit && op==TK_ALL ){  | 
 
| 
127151
 | 
 0  | 
 0  | 
     sqlite3VdbeAddOp2(v, OP_Copy, p->iOffset ? p->iOffset+1 : p->iLimit,  | 
 
| 
127208
 | 
 0  | 
 0  | 
   if( op==TK_ALL || op==TK_UNION ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( op==TK_ALL || op==TK_UNION ){  | 
 
| 
127219
 | 
 0  | 
 0  | 
   if( op==TK_EXCEPT || op==TK_INTERSECT ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( op==TK_EXCEPT || op==TK_INTERSECT ){  | 
 
| 
127233
 | 
 0  | 
 0  | 
   if( op==TK_INTERSECT ){  | 
 
| 
127235
 | 
 0  | 
 0  | 
     if( p->nSelectRow > pPrior->nSelectRow ) p->nSelectRow = pPrior->nSelectRow;  | 
 
| 
127252
 | 
 0  | 
 0  | 
   if( op==TK_ALL ){  | 
 
| 
127254
 | 
 0  | 
 0  | 
   }else if( op==TK_INTERSECT ){  | 
 
| 
127268
 | 
 0  | 
 0  | 
   if( op==TK_ALL || op==TK_UNION ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( op==TK_ALL || op==TK_UNION ){  | 
 
| 
127295
 | 
 0  | 
 0  | 
   if( p->pPrior ){  | 
 
| 
127345
 | 
 1120  | 
 734  | 
   if( pExpr==0 ) return 0;  | 
 
| 
127346
 | 
 0  | 
 734  | 
   if( ExprHasProperty(pExpr, EP_FromJoin)  | 
 
| 
127347
 | 
 0  | 
 0  | 
    && pExpr->iRightJoinTable==pSubst->iTable  | 
 
| 
127351
 | 
 325  | 
 409  | 
   if( pExpr->op==TK_COLUMN && pExpr->iTable==pSubst->iTable ){  | 
 
| 
 | 
 233  | 
 92  | 
   if( pExpr->op==TK_COLUMN && pExpr->iTable==pSubst->iTable ){  | 
 
| 
127352
 | 
 0  | 
 233  | 
     if( pExpr->iColumn<0 ){  | 
 
| 
127360
 | 
 0  | 
 233  | 
       if( sqlite3ExprIsVector(pCopy) ){  | 
 
| 
127364
 | 
 0  | 
 233  | 
         if( pSubst->isLeftJoin && pCopy->op!=TK_COLUMN ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( pSubst->isLeftJoin && pCopy->op!=TK_COLUMN ){  | 
 
| 
127372
 | 
 233  | 
 0  | 
         if( pNew && pSubst->isLeftJoin ){  | 
 
| 
 | 
 0  | 
 233  | 
         if( pNew && pSubst->isLeftJoin ){  | 
 
| 
127375
 | 
 233  | 
 0  | 
         if( pNew && ExprHasProperty(pExpr,EP_FromJoin) ){  | 
 
| 
 | 
 0  | 
 233  | 
         if( pNew && ExprHasProperty(pExpr,EP_FromJoin) ){  | 
 
| 
127384
 | 
 0  | 
 501  | 
     if( pExpr->op==TK_IF_NULL_ROW && pExpr->iTable==pSubst->iTable ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pExpr->op==TK_IF_NULL_ROW && pExpr->iTable==pSubst->iTable ){  | 
 
| 
127389
 | 
 0  | 
 501  | 
     if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
127402
 | 
 504  | 
 219  | 
   if( pList==0 ) return;  | 
 
| 
127403
 | 
 603  | 
 219  | 
   for(i=0; inExpr; i++){  | 
 
| 
127415
 | 
 35  | 
 26  | 
   if( !p ) return;  | 
 
| 
127424
 | 
 48  | 
 74  | 
     for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){  | 
 
| 
127426
 | 
 0  | 
 48  | 
       if( pItem->fg.isTabFunc ){  | 
 
| 
127430
 | 
 61  | 
 13  | 
   }while( doPrior && (p = p->pPrior)!=0 );  | 
 
| 
 | 
 48  | 
 13  | 
   }while( doPrior && (p = p->pPrior)!=0 );  | 
 
| 
127612
 | 
 0  | 
 35  | 
   if( OptimizationDisabled(db, SQLITE_QueryFlattener) ) return 0;  | 
 
| 
127621
 | 
 35  | 
 0  | 
   if( p->pWin || pSub->pWin ) return 0;                  /* Restriction (25) */  | 
 
| 
 | 
 0  | 
 35  | 
   if( p->pWin || pSub->pWin ) return 0;                  /* Restriction (25) */  | 
 
| 
127631
 | 
 0  | 
 35  | 
   if( pSub->pLimit && p->pLimit ) return 0;              /* Restriction (13) */  | 
 
| 
 | 
 0  | 
 0  | 
   if( pSub->pLimit && p->pLimit ) return 0;              /* Restriction (13) */  | 
 
| 
127632
 | 
 0  | 
 35  | 
   if( pSub->pLimit && pSub->pLimit->pRight ) return 0;   /* Restriction (14) */  | 
 
| 
 | 
 0  | 
 0  | 
   if( pSub->pLimit && pSub->pLimit->pRight ) return 0;   /* Restriction (14) */  | 
 
| 
127633
 | 
 0  | 
 35  | 
   if( (p->selFlags & SF_Compound)!=0 && pSub->pLimit ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (p->selFlags & SF_Compound)!=0 && pSub->pLimit ){  | 
 
| 
127636
 | 
 22  | 
 13  | 
   if( pSubSrc->nSrc==0 ) return 0;                       /* Restriction (7)  */  | 
 
| 
127637
 | 
 0  | 
 13  | 
   if( pSub->selFlags & SF_Distinct ) return 0;           /* Restriction (4)  */  | 
 
| 
127638
 | 
 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) ){  | 
 
| 
127641
 | 
 13  | 
 0  | 
   if( p->pOrderBy && pSub->pOrderBy ){  | 
 
| 
 | 
 0  | 
 13  | 
   if( p->pOrderBy && pSub->pOrderBy ){  | 
 
| 
127644
 | 
 0  | 
 13  | 
   if( isAgg && pSub->pOrderBy ) return 0;                /* Restriction (16) */  | 
 
| 
 | 
 0  | 
 0  | 
   if( isAgg && pSub->pOrderBy ) return 0;                /* Restriction (16) */  | 
 
| 
127645
 | 
 0  | 
 13  | 
   if( pSub->pLimit && p->pWhere ) return 0;              /* Restriction (19) */  | 
 
| 
 | 
 0  | 
 0  | 
   if( pSub->pLimit && p->pWhere ) return 0;              /* Restriction (19) */  | 
 
| 
127646
 | 
 0  | 
 13  | 
   if( pSub->pLimit && (p->selFlags & SF_Distinct)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pSub->pLimit && (p->selFlags & SF_Distinct)!=0 ){  | 
 
| 
127649
 | 
 0  | 
 13  | 
   if( pSub->selFlags & (SF_Recursive) ){  | 
 
| 
127673
 | 
 0  | 
 13  | 
   if( (pSubitem->fg.jointype & JT_OUTER)!=0 ){  | 
 
| 
127675
 | 
 0  | 
 0  | 
     if( pSubSrc->nSrc>1 || isAgg || IsVirtual(pSubSrc->a[0].pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pSubSrc->nSrc>1 || isAgg || IsVirtual(pSubSrc->a[0].pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pSubSrc->nSrc>1 || isAgg || IsVirtual(pSubSrc->a[0].pTab) ){  | 
 
| 
127695
 | 
 0  | 
 13  | 
   if( pSub->pPrior ){  | 
 
| 
127696
 | 
 0  | 
 0  | 
     if( pSub->pOrderBy ){  | 
 
| 
127699
 | 
 0  | 
 0  | 
     if( isAgg || (p->selFlags & SF_Distinct)!=0 || pSrc->nSrc!=1 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( isAgg || (p->selFlags & SF_Distinct)!=0 || pSrc->nSrc!=1 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( isAgg || (p->selFlags & SF_Distinct)!=0 || pSrc->nSrc!=1 ){  | 
 
| 
127702
 | 
 0  | 
 0  | 
     for(pSub1=pSub; pSub1; pSub1=pSub1->pPrior){  | 
 
| 
127707
 | 
 0  | 
 0  | 
       if( (pSub1->selFlags & (SF_Distinct|SF_Aggregate))!=0    /* (17b) */  | 
 
| 
127708
 | 
 0  | 
 0  | 
        || (pSub1->pPrior && pSub1->op!=TK_ALL)                 /* (17a) */  | 
 
| 
 | 
 0  | 
 0  | 
        || (pSub1->pPrior && pSub1->op!=TK_ALL)                 /* (17a) */  | 
 
| 
127709
 | 
 0  | 
 0  | 
        || pSub1->pSrc->nSrc<1                                  /* (17c) */  | 
 
| 
127717
 | 
 0  | 
 0  | 
     if( p->pOrderBy ){  | 
 
| 
127719
 | 
 0  | 
 0  | 
       for(ii=0; iipOrderBy->nExpr; ii++){  | 
 
| 
127720
 | 
 0  | 
 0  | 
         if( p->pOrderBy->a[ii].u.x.iOrderByCol==0 ) return 0;  | 
 
| 
127776
 | 
 0  | 
 13  | 
   for(pSub=pSub->pPrior; pSub; pSub=pSub->pPrior){  | 
 
| 
127790
 | 
 0  | 
 0  | 
     if( pNew==0 ){  | 
 
| 
127794
 | 
 0  | 
 0  | 
       if( pPrior ) pPrior->pNext = pNew;  | 
 
| 
127800
 | 
 0  | 
 0  | 
     if( db->mallocFailed ) return 1;  | 
 
| 
127826
 | 
 13  | 
 0  | 
   if( ALWAYS(pSubitem->pTab!=0) ){  | 
 
| 
127828
 | 
 13  | 
 0  | 
     if( pTabToDel->nTabRef==1 ){  | 
 
| 
127829
 | 
 0  | 
 13  | 
       Parse *pToplevel = sqlite3ParseToplevel(pParse);  | 
 
| 
127851
 | 
 13  | 
 13  | 
   for(pParent=p; pParent; pParent=pParent->pPrior, pSub=pSub->pPrior){  | 
 
| 
127858
 | 
 13  | 
 0  | 
     if( pSrc ){  | 
 
| 
127864
 | 
 0  | 
 0  | 
       if( pSrc==0 ){  | 
 
| 
127885
 | 
 0  | 
 13  | 
     if( nSubSrc>1 ){  | 
 
| 
127887
 | 
 0  | 
 0  | 
       if( db->mallocFailed ){  | 
 
| 
127895
 | 
 13  | 
 13  | 
     for(i=0; i
 | 
 
| 
127916
 | 
 0  | 
 13  | 
     if( pSub->pOrderBy ){  | 
 
| 
127928
 | 
 0  | 
 0  | 
       for(i=0; inExpr; i++){  | 
 
| 
127936
 | 
 0  | 
 13  | 
     if( isLeftJoin>0 ){  | 
 
| 
127940
 | 
 13  | 
 0  | 
     if( db->mallocFailed==0 ){  | 
 
| 
127961
 | 
 0  | 
 13  | 
     if( pSub->pLimit ){  | 
 
| 
128009
 | 
 0  | 
 2  | 
   for(i=0; inConst; i++){  | 
 
| 
128012
 | 
 0  | 
 0  | 
     if( pExpr->iTable==pColumn->iTable  | 
 
| 
128013
 | 
 0  | 
 0  | 
      && pExpr->iColumn==pColumn->iColumn  | 
 
| 
128022
 | 
 0  | 
 2  | 
   if( pConst->apExpr==0 ){  | 
 
| 
128025
 | 
 0  | 
 2  | 
     if( ExprHasProperty(pValue, EP_FixedCol) ) pValue = pValue->pLeft;  | 
 
| 
128039
 | 
 0  | 
 7  | 
   if( pExpr==0 ) return;  | 
 
| 
128040
 | 
 0  | 
 7  | 
   if( ExprHasProperty(pExpr, EP_FromJoin) ) return;  | 
 
| 
128041
 | 
 2  | 
 5  | 
   if( pExpr->op==TK_AND ){  | 
 
| 
128046
 | 
 0  | 
 5  | 
   if( pExpr->op!=TK_EQ ) return;  | 
 
| 
128051
 | 
 3  | 
 2  | 
   if( pRight->op==TK_COLUMN  | 
 
| 
128052
 | 
 3  | 
 0  | 
    && !ExprHasProperty(pRight, EP_FixedCol)  | 
 
| 
128053
 | 
 0  | 
 3  | 
    && sqlite3ExprIsConstant(pLeft)  | 
 
| 
128054
 | 
 0  | 
 0  | 
    && sqlite3IsBinary(sqlite3BinaryCompareCollSeq(pConst->pParse,pLeft,pRight))  | 
 
| 
128058
 | 
 5  | 
 0  | 
   if( pLeft->op==TK_COLUMN  | 
 
| 
128059
 | 
 5  | 
 0  | 
    && !ExprHasProperty(pLeft, EP_FixedCol)  | 
 
| 
128060
 | 
 2  | 
 3  | 
    && sqlite3ExprIsConstant(pRight)  | 
 
| 
128061
 | 
 2  | 
 0  | 
    && sqlite3IsBinary(sqlite3BinaryCompareCollSeq(pConst->pParse,pLeft,pRight))  | 
 
| 
128076
 | 
 8  | 
 6  | 
   if( pExpr->op!=TK_COLUMN ) return WRC_Continue;  | 
 
| 
128077
 | 
 0  | 
 6  | 
   if( ExprHasProperty(pExpr, EP_FixedCol) ) return WRC_Continue;  | 
 
| 
128079
 | 
 6  | 
 6  | 
   for(i=0; inConst; i++){  | 
 
| 
128081
 | 
 2  | 
 4  | 
     if( pColumn==pExpr ) continue;  | 
 
| 
128082
 | 
 2  | 
 2  | 
     if( pColumn->iTable!=pExpr->iTable ) continue;  | 
 
| 
128083
 | 
 2  | 
 0  | 
     if( pColumn->iColumn!=pExpr->iColumn ) continue;  | 
 
| 
128145
 | 
 2  | 
 1  | 
     if( x.nConst ){  | 
 
| 
128157
 | 
 0  | 
 3  | 
   }while( x.nChng );    | 
 
| 
128224
 | 
 3  | 
 22  | 
   if( pWhere==0 ) return 0;  | 
 
| 
128225
 | 
 0  | 
 22  | 
   if( pSubq->selFlags & SF_Recursive ) return 0;  /* restriction (2) */  | 
 
| 
128228
 | 
 0  | 
 22  | 
   if( pSubq->pWin ) return 0;    /* restriction (6) */  | 
 
| 
128244
 | 
 0  | 
 22  | 
   if( pSubq->pLimit!=0 ){  | 
 
| 
128247
 | 
 3  | 
 22  | 
   while( pWhere->op==TK_AND ){  | 
 
| 
128252
 | 
 0  | 
 22  | 
   if( isLeftJoin  | 
 
| 
128253
 | 
 0  | 
 0  | 
    && (ExprHasProperty(pWhere,EP_FromJoin)==0  | 
 
| 
128254
 | 
 0  | 
 0  | 
          || pWhere->iRightJoinTable!=iCursor)  | 
 
| 
128258
 | 
 0  | 
 22  | 
   if( ExprHasProperty(pWhere,EP_FromJoin) && pWhere->iRightJoinTable!=iCursor ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( ExprHasProperty(pWhere,EP_FromJoin) && pWhere->iRightJoinTable!=iCursor ){  | 
 
| 
128261
 | 
 22  | 
 0  | 
   if( sqlite3ExprIsTableConstant(pWhere, iCursor) ){  | 
 
| 
128263
 | 
 101  | 
 22  | 
     while( pSubq ){  | 
 
| 
128273
 | 
 0  | 
 101  | 
       if( pSubq->selFlags & SF_Aggregate ){  | 
 
| 
128310
 | 
 48  | 
 72  | 
   if( pEList==0 || pEList->nExpr!=1 ) return eRet;  | 
 
| 
 | 
 0  | 
 48  | 
   if( pEList==0 || pEList->nExpr!=1 ) return eRet;  | 
 
| 
128312
 | 
 0  | 
 48  | 
   if( sqlite3StrICmp(zFunc, "min")==0 ){  | 
 
| 
128315
 | 
 14  | 
 34  | 
   }else if( sqlite3StrICmp(zFunc, "max")==0 ){  | 
 
| 
128323
 | 
 14  | 
 0  | 
   if( pOrderBy ) pOrderBy->a[0].sortOrder = sortOrder;  | 
 
| 
128344
 | 
 98  | 
 22  | 
   if( p->pWhere || p->pEList->nExpr!=1   | 
 
| 
 | 
 98  | 
 0  | 
   if( p->pWhere || p->pEList->nExpr!=1   | 
 
| 
128345
 | 
 98  | 
 0  | 
    || p->pSrc->nSrc!=1 || p->pSrc->a[0].pSelect  | 
 
| 
 | 
 0  | 
 98  | 
    || p->pSrc->nSrc!=1 || p->pSrc->a[0].pSelect  | 
 
| 
128353
 | 
 0  | 
 98  | 
   if( IsVirtual(pTab) ) return 0;  | 
 
| 
128354
 | 
 0  | 
 98  | 
   if( pExpr->op!=TK_AGG_FUNCTION ) return 0;  | 
 
| 
128355
 | 
 0  | 
 98  | 
   if( NEVER(pAggInfo->nFunc==0) ) return 0;  | 
 
| 
128356
 | 
 89  | 
 9  | 
   if( (pAggInfo->aFunc[0].pFunc->funcFlags&SQLITE_FUNC_COUNT)==0 ) return 0;  | 
 
| 
128357
 | 
 0  | 
 9  | 
   if( pExpr->flags&EP_Distinct ) return 0;  | 
 
| 
128370
 | 
 4091  | 
 0  | 
   if( pFrom->pTab && pFrom->fg.isIndexedBy ){  | 
 
| 
 | 
 0  | 
 4091  | 
   if( pFrom->pTab && pFrom->fg.isIndexedBy ){  | 
 
| 
128374
 | 
 0  | 
 0  | 
     for(pIdx=pTab->pIndex;   | 
 
| 
128375
 | 
 0  | 
 0  | 
         pIdx && sqlite3StrICmp(pIdx->zName, zIndexedBy);   | 
 
| 
128378
 | 
 0  | 
 0  | 
     if( !pIdx ){  | 
 
| 
128418
 | 
 4  | 
 4  | 
   if( p->pPrior==0 ) return WRC_Continue;  | 
 
| 
128419
 | 
 4  | 
 0  | 
   if( p->pOrderBy==0 ) return WRC_Continue;  | 
 
| 
128420
 | 
 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){}  | 
 
| 
128421
 | 
 0  | 
 0  | 
   if( pX==0 ) return WRC_Continue;  | 
 
| 
128423
 | 
 0  | 
 0  | 
   for(i=p->pOrderBy->nExpr-1; i>=0; i--){  | 
 
| 
128424
 | 
 0  | 
 0  | 
     if( a[i].pExpr->flags & EP_Collate ) break;  | 
 
| 
128426
 | 
 0  | 
 0  | 
   if( i<0 ) return WRC_Continue;  | 
 
| 
128433
 | 
 0  | 
 0  | 
   if( pNew==0 ) return WRC_Abort;  | 
 
| 
128436
 | 
 0  | 
 0  | 
   if( pNewSrc==0 ) return WRC_Abort;  | 
 
| 
128463
 | 
 0  | 
 1065  | 
   if( pFrom->fg.isTabFunc ){  | 
 
| 
128487
 | 
 677  | 
 466  | 
   if( pItem->zDatabase==0 && (zName = pItem->zName)!=0 ){  | 
 
| 
 | 
 642  | 
 35  | 
   if( pItem->zDatabase==0 && (zName = pItem->zName)!=0 ){  | 
 
| 
128489
 | 
 0  | 
 642  | 
     for(p=pWith; p; p=p->pOuter){  | 
 
| 
128491
 | 
 0  | 
 0  | 
       for(i=0; inCte; i++){  | 
 
| 
128492
 | 
 0  | 
 0  | 
         if( sqlite3StrICmp(zName, p->a[i].zName)==0 ){  | 
 
| 
128514
 | 
 0  | 
 1574  | 
   if( pWith ){  | 
 
| 
128518
 | 
 0  | 
 0  | 
     if( bFree ) pParse->pWithToFree = pWith;  | 
 
| 
128549
 | 
 0  | 
 1143  | 
   if( pCte ){  | 
 
| 
128561
 | 
 0  | 
 0  | 
     if( pCte->zCteErr ){  | 
 
| 
128565
 | 
 0  | 
 0  | 
     if( cannotBeFunction(pParse, pFrom) ) return SQLITE_ERROR;  | 
 
| 
128569
 | 
 0  | 
 0  | 
     if( pTab==0 ) return WRC_Abort;  | 
 
| 
128576
 | 
 0  | 
 0  | 
     if( db->mallocFailed ) return SQLITE_NOMEM_BKPT;  | 
 
| 
128581
 | 
 0  | 
 0  | 
     bMayRecursive = ( pSel->op==TK_ALL || pSel->op==TK_UNION );  | 
 
| 
 | 
 0  | 
 0  | 
     bMayRecursive = ( pSel->op==TK_ALL || pSel->op==TK_UNION );  | 
 
| 
128582
 | 
 0  | 
 0  | 
     if( bMayRecursive ){  | 
 
| 
128585
 | 
 0  | 
 0  | 
       for(i=0; inSrc; i++){  | 
 
| 
128587
 | 
 0  | 
 0  | 
         if( pItem->zDatabase==0   | 
 
| 
128588
 | 
 0  | 
 0  | 
          && pItem->zName!=0   | 
 
| 
128589
 | 
 0  | 
 0  | 
          && 0==sqlite3StrICmp(pItem->zName, pCte->zName)  | 
 
| 
128600
 | 
 0  | 
 0  | 
     if( pTab->nTabRef>2 ){  | 
 
| 
128612
 | 
 0  | 
 0  | 
     if( bMayRecursive ){  | 
 
| 
128623
 | 
 0  | 
 0  | 
     for(pLeft=pSel; pLeft->pPrior; pLeft=pLeft->pPrior);  | 
 
| 
128625
 | 
 0  | 
 0  | 
     if( pCte->pCols ){  | 
 
| 
128626
 | 
 0  | 
 0  | 
       if( pEList && pEList->nExpr!=pCte->pCols->nExpr ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pEList && pEList->nExpr!=pCte->pCols->nExpr ){  | 
 
| 
128637
 | 
 0  | 
 0  | 
     if( bMayRecursive ){  | 
 
| 
128638
 | 
 0  | 
 0  | 
       if( pSel->selFlags & SF_Recursive ){  | 
 
| 
128664
 | 
 0  | 
 1574  | 
   if( OK_IF_ALWAYS_TRUE(pParse->pWith) && p->pPrior==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( OK_IF_ALWAYS_TRUE(pParse->pWith) && p->pPrior==0 ){  | 
 
| 
128666
 | 
 0  | 
 0  | 
     if( pWith!=0 ){  | 
 
| 
128689
 | 
 0  | 
 35  | 
   if( pTab==0 ) return SQLITE_NOMEM;  | 
 
| 
128691
 | 
 2  | 
 33  | 
   if( pFrom->zAlias ){  | 
 
| 
128696
 | 
 75  | 
 35  | 
   while( pSel->pPrior ){ pSel = pSel->pPrior; }  | 
 
| 
128741
 | 
 0  | 
 1609  | 
   if( db->mallocFailed  ){  | 
 
| 
128745
 | 
 35  | 
 1574  | 
   if( (selFlags & SF_Expanded)!=0 ){  | 
 
| 
128761
 | 
 1143  | 
 1574  | 
   for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){  | 
 
| 
128764
 | 
 0  | 
 1143  | 
     if( pFrom->fg.isRecursive ) continue;  | 
 
| 
128767
 | 
 0  | 
 1143  | 
     if( withExpand(pWalker, pFrom) ) return WRC_Abort;  | 
 
| 
128768
 | 
 1143  | 
 0  | 
     if( pFrom->pTab ) {} else  | 
 
| 
128770
 | 
 35  | 
 1108  | 
     if( pFrom->zName==0 ){  | 
 
| 
128776
 | 
 0  | 
 35  | 
       if( sqlite3WalkSelect(pWalker, pSel) ) return WRC_Abort;  | 
 
| 
128777
 | 
 0  | 
 35  | 
       if( sqlite3ExpandSubquery(pParse, pFrom) ) return WRC_Abort;  | 
 
| 
128783
 | 
 0  | 
 1108  | 
       if( pTab==0 ) return WRC_Abort;  | 
 
| 
128784
 | 
 0  | 
 1108  | 
       if( pTab->nTabRef>=0xffff ){  | 
 
| 
128791
 | 
 1065  | 
 43  | 
       if( !IsVirtual(pTab) && cannotBeFunction(pParse, pFrom) ){  | 
 
| 
 | 
 0  | 
 1065  | 
       if( !IsVirtual(pTab) && cannotBeFunction(pParse, pFrom) ){  | 
 
| 
128795
 | 
 1065  | 
 43  | 
       if( IsVirtual(pTab) || pTab->pSelect ){  | 
 
| 
 | 
 0  | 
 1065  | 
       if( IsVirtual(pTab) || pTab->pSelect ){  | 
 
| 
128797
 | 
 0  | 
 43  | 
         if( sqlite3ViewGetColumnNames(pParse, pTab) ) return WRC_Abort;  | 
 
| 
128809
 | 
 0  | 
 1143  | 
     if( sqlite3IndexedByLookup(pParse, pFrom) ){  | 
 
| 
128816
 | 
 1574  | 
 0  | 
   if( db->mallocFailed || sqliteProcessJoin(pParse, p) ){  | 
 
| 
 | 
 0  | 
 1574  | 
   if( db->mallocFailed || sqliteProcessJoin(pParse, p) ){  | 
 
| 
128831
 | 
 2796  | 
 1489  | 
   for(k=0; knExpr; k++){  | 
 
| 
128833
 | 
 82  | 
 2714  | 
     if( pE->op==TK_ASTERISK ) break;  | 
 
| 
128836
 | 
 18  | 
 2696  | 
     if( pE->op==TK_DOT && pE->pRight->op==TK_ASTERISK ) break;  | 
 
| 
 | 
 3  | 
 15  | 
     if( pE->op==TK_DOT && pE->pRight->op==TK_ASTERISK ) break;  | 
 
| 
128839
 | 
 85  | 
 1489  | 
   if( knExpr ){  | 
 
| 
128849
 | 
 1  | 
 84  | 
                       && (flags & SQLITE_ShortColNames)==0;  | 
 
| 
 | 
 1  | 
 0  | 
                       && (flags & SQLITE_ShortColNames)==0;  | 
 
| 
128851
 | 
 90  | 
 85  | 
     for(k=0; knExpr; k++){  | 
 
| 
128856
 | 
 8  | 
 82  | 
       if( pE->op!=TK_ASTERISK  | 
 
| 
128857
 | 
 6  | 
 2  | 
        && (pE->op!=TK_DOT || pRight->op!=TK_ASTERISK)  | 
 
| 
 | 
 3  | 
 3  | 
        && (pE->op!=TK_DOT || pRight->op!=TK_ASTERISK)  | 
 
| 
128862
 | 
 5  | 
 0  | 
         if( pNew ){  | 
 
| 
128874
 | 
 3  | 
 82  | 
         if( pE->op==TK_DOT ){  | 
 
| 
128879
 | 
 85  | 
 85  | 
         for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){  | 
 
| 
128885
 | 
 85  | 
 0  | 
           if( zTabName==0 ){  | 
 
| 
128888
 | 
 0  | 
 85  | 
           if( db->mallocFailed ) break;  | 
 
| 
128889
 | 
 13  | 
 72  | 
           if( pSub==0 || (pSub->selFlags & SF_NestedFrom)==0 ){  | 
 
| 
 | 
 13  | 
 0  | 
           if( pSub==0 || (pSub->selFlags & SF_NestedFrom)==0 ){  | 
 
| 
128891
 | 
 3  | 
 82  | 
             if( zTName && sqlite3StrICmp(zTName, zTabName)!=0 ){  | 
 
| 
 | 
 0  | 
 3  | 
             if( zTName && sqlite3StrICmp(zTName, zTabName)!=0 ){  | 
 
| 
128895
 | 
 72  | 
 13  | 
             zSchemaName = iDb>=0 ? db->aDb[iDb].zDbSName : "*";  | 
 
| 
128897
 | 
 269  | 
 85  | 
           for(j=0; jnCol; j++){  | 
 
| 
128904
 | 
 9  | 
 260  | 
             if( zTName && pSub  | 
 
| 
 | 
 0  | 
 9  | 
             if( zTName && pSub  | 
 
| 
128905
 | 
 0  | 
 0  | 
              && sqlite3MatchSpanName(pSub->pEList->a[j].zSpan, 0, zTName, 0)==0  | 
 
| 
128914
 | 
 269  | 
 0  | 
             if( (p->selFlags & SF_IncludeHidden)==0  | 
 
| 
128915
 | 
 6  | 
 263  | 
              && IsHiddenColumn(&pTab->aCol[j])   | 
 
| 
128921
 | 
 0  | 
 263  | 
             if( i>0 && zTName==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
             if( i>0 && zTName==0 ){  | 
 
| 
128922
 | 
 0  | 
 0  | 
               if( (pFrom->fg.jointype & JT_NATURAL)!=0  | 
 
| 
128923
 | 
 0  | 
 0  | 
                 && tableAndColumnIndex(pTabList, i, zName, 0, 0)  | 
 
| 
128929
 | 
 0  | 
 0  | 
               if( sqlite3IdListIndex(pFrom->pUsing, zName)>=0 ){  | 
 
| 
128938
 | 
 260  | 
 3  | 
             if( longNames || pTabList->nSrc>1 ){  | 
 
| 
 | 
 0  | 
 260  | 
             if( longNames || pTabList->nSrc>1 ){  | 
 
| 
128942
 | 
 3  | 
 0  | 
               if( zSchemaName ){  | 
 
| 
128946
 | 
 3  | 
 0  | 
               if( longNames ){  | 
 
| 
128956
 | 
 263  | 
 0  | 
             if( pNew && (p->selFlags & SF_NestedFrom)!=0 ){  | 
 
| 
 | 
 0  | 
 263  | 
             if( pNew && (p->selFlags & SF_NestedFrom)!=0 ){  | 
 
| 
128958
 | 
 0  | 
 0  | 
               if( pSub ){  | 
 
| 
128971
 | 
 0  | 
 85  | 
         if( !tableSeen ){  | 
 
| 
128972
 | 
 0  | 
 0  | 
           if( zTName ){  | 
 
| 
128983
 | 
 1574  | 
 0  | 
   if( p->pEList ){  | 
 
| 
128984
 | 
 0  | 
 1574  | 
     if( p->pEList->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){  | 
 
| 
128988
 | 
 549  | 
 1025  | 
     if( (elistFlags & (EP_HasFunc|EP_Subquery))!=0 ){  | 
 
| 
129045
 | 
 2  | 
 1438  | 
   if( OK_IF_ALWAYS_TRUE(pParse->hasCompound) ){  | 
 
| 
129077
 | 
 0  | 
 1574  | 
   if( p->selFlags & SF_HasTypeInfo ) return;  | 
 
| 
129081
 | 
 1143  | 
 1574  | 
   for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){  | 
 
| 
129084
 | 
 35  | 
 1108  | 
     if( (pTab->tabFlags & TF_Ephemeral)!=0 ){  | 
 
| 
129087
 | 
 35  | 
 0  | 
       if( pSel ){  | 
 
| 
129088
 | 
 75  | 
 35  | 
         while( pSel->pPrior ) pSel = pSel->pPrior;  | 
 
| 
129134
 | 
 0  | 
 1628  | 
   if( pParse->db->mallocFailed ) return;  | 
 
| 
129135
 | 
 188  | 
 1440  | 
   if( p->selFlags & SF_HasTypeInfo ) return;  | 
 
| 
129137
 | 
 1440  | 
 0  | 
   if( pParse->nErr || pParse->db->mallocFailed ) return;  | 
 
| 
 | 
 0  | 
 1440  | 
   if( pParse->nErr || pParse->db->mallocFailed ) return;  | 
 
| 
129139
 | 
 1440  | 
 0  | 
   if( pParse->nErr || pParse->db->mallocFailed ) return;  | 
 
| 
 | 
 0  | 
 1440  | 
   if( pParse->nErr || pParse->db->mallocFailed ) return;  | 
 
| 
129156
 | 
 0  | 
 124  | 
   if( nReg==0 ) return;  | 
 
| 
129171
 | 
 124  | 
 124  | 
   for(pFunc=pAggInfo->aFunc, i=0; inFunc; i++, pFunc++){  | 
 
| 
129172
 | 
 0  | 
 124  | 
     if( pFunc->iDistinct>=0 ){  | 
 
| 
129175
 | 
 0  | 
 0  | 
       if( pE->x.pList==0 || pE->x.pList->nExpr!=1 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pE->x.pList==0 || pE->x.pList->nExpr!=1 ){  | 
 
| 
129196
 | 
 124  | 
 124  | 
   for(i=0, pF=pAggInfo->aFunc; inFunc; i++, pF++){  | 
 
| 
129199
 | 
 50  | 
 74  | 
     sqlite3VdbeAddOp2(v, OP_AggFinal, pF->iMem, pList ? pList->nExpr : 0);  | 
 
| 
129223
 | 
 124  | 
 124  | 
   for(i=0, pF=pAggInfo->aFunc; inFunc; i++, pF++){  | 
 
| 
129229
 | 
 50  | 
 74  | 
     if( pList ){  | 
 
| 
129237
 | 
 0  | 
 124  | 
     if( pF->iDistinct>=0 ){  | 
 
| 
129243
 | 
 14  | 
 110  | 
     if( pF->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){  | 
 
| 
129248
 | 
 21  | 
 7  | 
       for(j=0, pItem=pList->a; !pColl && j
 | 
 
| 
 | 
 14  | 
 7  | 
       for(j=0, pItem=pList->a; !pColl && j
 | 
 
| 
129251
 | 
 7  | 
 7  | 
       if( !pColl ){  | 
 
| 
129254
 | 
 14  | 
 0  | 
       if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem;  | 
 
| 
 | 
 0  | 
 14  | 
       if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem;  | 
 
| 
129261
 | 
 0  | 
 124  | 
     if( addrNext ){  | 
 
| 
129265
 | 
 124  | 
 0  | 
   if( regHit==0 && pAggInfo->nAccumulator ){  | 
 
| 
 | 
 7  | 
 117  | 
   if( regHit==0 && pAggInfo->nAccumulator ){  | 
 
| 
129268
 | 
 7  | 
 117  | 
   if( regHit ){  | 
 
| 
129271
 | 
 8  | 
 124  | 
   for(i=0, pC=pAggInfo->aCol; inAccumulator; i++, pC++){  | 
 
| 
129275
 | 
 7  | 
 117  | 
   if( addrHitTest ){  | 
 
| 
129290
 | 
 0  | 
 9  | 
   if( pParse->explain==2 ){  | 
 
| 
129291
 | 
 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)));  | 
 
| 
129292
 | 
 0  | 
 0  | 
     sqlite3VdbeExplain(pParse, 0, "SCAN TABLE %s%s%s",  | 
 
| 
 | 
 0  | 
 0  | 
     sqlite3VdbeExplain(pParse, 0, "SCAN TABLE %s%s%s",  | 
 
| 
129315
 | 
 5  | 
 0  | 
   if( pExpr->op!=TK_AND ){  | 
 
| 
129317
 | 
 0  | 
 5  | 
     if( sqlite3ExprIsConstantOrGroupBy(pWalker->pParse, pExpr, pS->pGroupBy) ){  | 
 
| 
129320
 | 
 0  | 
 0  | 
       if( pNew ){  | 
 
| 
129373
 | 
 0  | 
 0  | 
   for(pItem = pTabList->a; pItem
 | 
 
| 
129374
 | 
 0  | 
 0  | 
     if( pItem->pSelect==0 ) continue;  | 
 
| 
129375
 | 
 0  | 
 0  | 
     if( pItem->fg.viaCoroutine ) continue;  | 
 
| 
129376
 | 
 0  | 
 0  | 
     if( pItem->zName==0 ) continue;  | 
 
| 
129377
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(pItem->zDatabase, pThis->zDatabase)!=0 ) continue;  | 
 
| 
129378
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(pItem->zName, pThis->zName)!=0 ) continue;  | 
 
| 
129379
 | 
 0  | 
 0  | 
     if( sqlite3ExprCompare(0,   | 
 
| 
129513
 | 
 1628  | 
 0  | 
   if( p==0 || db->mallocFailed || pParse->nErr ){  | 
 
| 
 | 
 1628  | 
 0  | 
   if( p==0 || db->mallocFailed || pParse->nErr ){  | 
 
| 
 | 
 0  | 
 1628  | 
   if( p==0 || db->mallocFailed || pParse->nErr ){  | 
 
| 
129516
 | 
 0  | 
 1628  | 
   if( sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1;  | 
 
| 
129529
 | 
 8  | 
 1620  | 
   if( IgnorableOrderby(pDest) ){  | 
 
| 
129541
 | 
 1628  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ){  | 
 
| 
 | 
 1628  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ){  | 
 
| 
129552
 | 
 1438  | 
 190  | 
   if( pDest->eDest==SRT_Output ){  | 
 
| 
129557
 | 
 0  | 
 1628  | 
   if( sqlite3WindowRewrite(pParse, p) ){  | 
 
| 
129576
 | 
 2694  | 
 77  | 
   for(i=0; !p->pPrior && inSrc; i++){  | 
 
| 
 | 
 1143  | 
 1551  | 
   for(i=0; !p->pPrior && inSrc; i++){  | 
 
| 
129584
 | 
 0  | 
 1143  | 
     if( (pItem->fg.jointype & JT_LEFT)!=0  | 
 
| 
129585
 | 
 0  | 
 0  | 
      && sqlite3ExprImpliesNonNullRow(p->pWhere, pItem->iCursor)  | 
 
| 
129586
 | 
 0  | 
 0  | 
      && OptimizationEnabled(db, SQLITE_SimplifyJoin)  | 
 
| 
129595
 | 
 1108  | 
 35  | 
     if( pSub==0 ) continue;  | 
 
| 
129599
 | 
 0  | 
 35  | 
     if( pTab->nCol!=pSub->pEList->nExpr ){  | 
 
| 
129612
 | 
 0  | 
 35  | 
     if( (pSub->selFlags & SF_Aggregate)!=0 ) continue;  | 
 
| 
129633
 | 
 0  | 
 35  | 
     if( pSub->pOrderBy!=0  | 
 
| 
129634
 | 
 0  | 
 0  | 
      && i==0  | 
 
| 
129635
 | 
 0  | 
 0  | 
      && (p->selFlags & SF_ComplexResult)!=0  | 
 
| 
129636
 | 
 0  | 
 0  | 
      && (pTabList->nSrc==1  | 
 
| 
129637
 | 
 0  | 
 0  | 
          || (pTabList->a[1].fg.jointype&(JT_LEFT|JT_CROSS))!=0)  | 
 
| 
129642
 | 
 13  | 
 22  | 
     if( flattenSubquery(pParse, p, i, isAgg) ){  | 
 
| 
129647
 | 
 0  | 
 35  | 
     if( db->mallocFailed ) goto select_end;  | 
 
| 
129648
 | 
 35  | 
 0  | 
     if( !IgnorableOrderby(pDest) ){  | 
 
| 
129658
 | 
 77  | 
 1551  | 
   if( p->pPrior ){  | 
 
| 
129666
 | 
 24  | 
 53  | 
     if( p->pNext==0 ) ExplainQueryPlanPop(pParse);  | 
 
| 
129676
 | 
 3  | 
 1548  | 
   if( pTabList->nSrc>1  | 
 
| 
129677
 | 
 3  | 
 0  | 
    && OptimizationEnabled(db, SQLITE_PropagateConst)  | 
 
| 
129704
 | 
 1130  | 
 1551  | 
   for(i=0; inSrc; i++){  | 
 
| 
129728
 | 
 80  | 
 1050  | 
     if( pItem->colUsed==0 ){  | 
 
| 
129736
 | 
 1108  | 
 22  | 
     if( pSub==0 ) continue;  | 
 
| 
129744
 | 
 0  | 
 22  | 
     if( pItem->addrFillSub ){  | 
 
| 
129745
 | 
 0  | 
 0  | 
       if( pItem->fg.viaCoroutine==0 ){  | 
 
| 
129767
 | 
 22  | 
 0  | 
     if( OptimizationEnabled(db, SQLITE_PushDown)  | 
 
| 
129794
 | 
 22  | 
 0  | 
     if( i==0  | 
 
| 
129795
 | 
 0  | 
 22  | 
      && (pTabList->nSrc==1  | 
 
| 
129796
 | 
 0  | 
 0  | 
             || (pTabList->a[1].fg.jointype&(JT_LEFT|JT_CROSS))!=0)  /* (1) */  | 
 
| 
129831
 | 
 0  | 
 0  | 
       if( pItem->fg.isCorrelated==0 ){  | 
 
| 
129841
 | 
 0  | 
 0  | 
       if( pPrior ){  | 
 
| 
129851
 | 
 0  | 
 0  | 
       if( onceAddr ) sqlite3VdbeJumpHere(v, onceAddr);  | 
 
| 
129857
 | 
 0  | 
 22  | 
     if( db->mallocFailed ) goto select_end;  | 
 
| 
129893
 | 
 2  | 
 1549  | 
   if( (p->selFlags & (SF_Distinct|SF_Aggregate))==SF_Distinct   | 
 
| 
129894
 | 
 0  | 
 2  | 
    && sqlite3ExprListCompare(sSort.pOrderBy, pEList, -1)==0  | 
 
| 
129919
 | 
 491  | 
 1060  | 
   if( sSort.pOrderBy ){  | 
 
| 
129935
 | 
 0  | 
 1551  | 
   if( pDest->eDest==SRT_EphemTab ){  | 
 
| 
129942
 | 
 1551  | 
 0  | 
   if( (p->selFlags & SF_FixedLimit)==0 ){  | 
 
| 
129946
 | 
 1533  | 
 18  | 
   if( p->iLimit==0 && sSort.addrSortIndex>=0 ){  | 
 
| 
 | 
 490  | 
 1043  | 
   if( p->iLimit==0 && sSort.addrSortIndex>=0 ){  | 
 
| 
129953
 | 
 2  | 
 1549  | 
   if( p->selFlags & SF_Distinct ){  | 
 
| 
129965
 | 
 1418  | 
 133  | 
   if( !isAgg && pGroupBy==0 ){  | 
 
| 
 | 
 1418  | 
 0  | 
   if( !isAgg && pGroupBy==0 ){  | 
 
| 
129967
 | 
 2  | 
 1416  | 
     u16 wctrlFlags = (sDistinct.isTnct ? WHERE_WANT_DISTINCT : 0)  | 
 
| 
129971
 | 
 0  | 
 1418  | 
     if( pWin ){  | 
 
| 
129982
 | 
 0  | 
 1418  | 
     if( pWInfo==0 ) goto select_end;  | 
 
| 
129983
 | 
 1417  | 
 1  | 
     if( sqlite3WhereOutputRowCount(pWInfo) < p->nSelectRow ){  | 
 
| 
129986
 | 
 2  | 
 1416  | 
     if( sDistinct.isTnct && sqlite3WhereIsDistinct(pWInfo) ){  | 
 
| 
 | 
 0  | 
 2  | 
     if( sDistinct.isTnct && sqlite3WhereIsDistinct(pWInfo) ){  | 
 
| 
129989
 | 
 489  | 
 929  | 
     if( sSort.pOrderBy ){  | 
 
| 
129992
 | 
 417  | 
 72  | 
       if( sSort.nOBSat==sSort.pOrderBy->nExpr ){  | 
 
| 
130001
 | 
 489  | 
 929  | 
     if( sSort.addrSortIndex>=0 && sSort.pOrderBy==0 ){  | 
 
| 
 | 
 417  | 
 72  | 
     if( sSort.addrSortIndex>=0 && sSort.pOrderBy==0 ){  | 
 
| 
130007
 | 
 0  | 
 1418  | 
     if( pWin ){  | 
 
| 
130055
 | 
 13  | 
 120  | 
     if( pGroupBy ){  | 
 
| 
130059
 | 
 16  | 
 13  | 
       for(k=p->pEList->nExpr, pItem=p->pEList->a; k>0; k--, pItem++){  | 
 
| 
130062
 | 
 13  | 
 13  | 
       for(k=pGroupBy->nExpr, pItem=pGroupBy->a; k>0; k--, pItem++){  | 
 
| 
130066
 | 
 12  | 
 1  | 
       if( p->nSelectRow>66 ) p->nSelectRow = 66;  | 
 
| 
130080
 | 
 120  | 
 13  | 
     if( sqlite3ExprListCompare(pGroupBy, sSort.pOrderBy, -1)==0 ){  | 
 
| 
130097
 | 
 13  | 
 120  | 
     sAggInfo.nSortingColumn = pGroupBy ? pGroupBy->nExpr : 0;  | 
 
| 
130101
 | 
 5  | 
 128  | 
     if( pHaving ){  | 
 
| 
130102
 | 
 5  | 
 0  | 
       if( pGroupBy ){  | 
 
| 
130112
 | 
 120  | 
 13  | 
     if( p->pGroupBy==0 && p->pHaving==0 && sAggInfo.nFunc==1 ){  | 
 
| 
 | 
 120  | 
 0  | 
     if( p->pGroupBy==0 && p->pHaving==0 && sAggInfo.nFunc==1 ){  | 
 
| 
 | 
 120  | 
 0  | 
     if( p->pGroupBy==0 && p->pHaving==0 && sAggInfo.nFunc==1 ){  | 
 
| 
130117
 | 
 133  | 
 133  | 
     for(i=0; i
 | 
 
| 
130124
 | 
 0  | 
 133  | 
     if( db->mallocFailed ) goto select_end;  | 
 
| 
130147
 | 
 13  | 
 120  | 
     if( pGroupBy ){  | 
 
| 
130192
 | 
 0  | 
 13  | 
       pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pGroupBy, 0,  | 
 
| 
130195
 | 
 0  | 
 13  | 
       if( pWInfo==0 ) goto select_end;  | 
 
| 
130196
 | 
 0  | 
 13  | 
       if( sqlite3WhereIsOrdered(pWInfo)==pGroupBy->nExpr ){  | 
 
| 
130213
 | 
 0  | 
 13  | 
         explainTempTable(pParse,   | 
 
| 
130214
 | 
 0  | 
 0  | 
             (sDistinct.isTnct && (p->selFlags&SF_Distinct)==0) ?  | 
 
| 
130221
 | 
 10  | 
 13  | 
         for(i=0; i
 | 
 
| 
130222
 | 
 3  | 
 7  | 
           if( sAggInfo.aCol[i].iSorterColumn>=j ){  | 
 
| 
130230
 | 
 10  | 
 13  | 
         for(i=0; i
 | 
 
| 
130232
 | 
 3  | 
 7  | 
           if( pCol->iSorterColumn>=j ){  | 
 
| 
130260
 | 
 0  | 
 13  | 
       if( orderByGrp && OptimizationEnabled(db, SQLITE_GroupByOrder)   | 
 
| 
 | 
 0  | 
 0  | 
       if( orderByGrp && OptimizationEnabled(db, SQLITE_GroupByOrder)   | 
 
| 
130261
 | 
 0  | 
 0  | 
        && (groupBySort || sqlite3WhereIsSorted(pWInfo))  | 
 
| 
 | 
 0  | 
 0  | 
        && (groupBySort || sqlite3WhereIsSorted(pWInfo))  | 
 
| 
130273
 | 
 13  | 
 0  | 
       if( groupBySort ){  | 
 
| 
130277
 | 
 13  | 
 13  | 
       for(j=0; jnExpr; j++){  | 
 
| 
130278
 | 
 13  | 
 0  | 
         if( groupBySort ){  | 
 
| 
130317
 | 
 13  | 
 0  | 
       if( groupBySort ){  | 
 
| 
130371
 | 
 9  | 
 111  | 
       if( (pTab = isSimpleCount(p, &sAggInfo))!=0 ){  | 
 
| 
130404
 | 
 0  | 
 9  | 
         if( !HasRowid(pTab) ) pBest = sqlite3PrimaryKeyIndex(pTab);  | 
 
| 
130405
 | 
 0  | 
 9  | 
         for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
130406
 | 
 0  | 
 0  | 
           if( pIdx->bUnordered==0  | 
 
| 
130407
 | 
 0  | 
 0  | 
            && pIdx->szIdxRowszTabRow  | 
 
| 
130408
 | 
 0  | 
 0  | 
            && pIdx->pPartIdxWhere==0  | 
 
| 
130409
 | 
 0  | 
 0  | 
            && (!pBest || pIdx->szIdxRowszIdxRow)  | 
 
| 
 | 
 0  | 
 0  | 
            && (!pBest || pIdx->szIdxRowszIdxRow)  | 
 
| 
130414
 | 
 0  | 
 9  | 
         if( pBest ){  | 
 
| 
130421
 | 
 0  | 
 9  | 
         if( pKeyInfo ){  | 
 
| 
130437
 | 
 0  | 
 111  | 
         if( sAggInfo.nAccumulator ){  | 
 
| 
130438
 | 
 0  | 
 0  | 
           for(i=0; i
 | 
 
| 
130439
 | 
 0  | 
 0  | 
             if( sAggInfo.aFunc[i].pFunc->funcFlags&SQLITE_FUNC_NEEDCOLL ) break;  | 
 
| 
130441
 | 
 0  | 
 0  | 
           if( i==sAggInfo.nFunc ){  | 
 
| 
130465
 | 
 0  | 
 111  | 
         if( pWInfo==0 ){  | 
 
| 
130469
 | 
 0  | 
 111  | 
         if( regAcc ) sqlite3VdbeAddOp2(v, OP_Integer, 1, regAcc);  | 
 
| 
130470
 | 
 14  | 
 97  | 
         if( sqlite3WhereIsOrdered(pWInfo)>0 ){  | 
 
| 
130488
 | 
 2  | 
 1549  | 
   if( sDistinct.eTnctType==WHERE_DISTINCT_UNORDERED ){  | 
 
| 
130495
 | 
 74  | 
 1477  | 
   if( sSort.pOrderBy ){  | 
 
| 
130496
 | 
 15  | 
 59  | 
     explainTempTable(pParse,  | 
 
| 
130579
 | 
 0  | 
 0  | 
   if( p->nRow==0 && argv!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->nRow==0 && argv!=0 ){  | 
 
| 
130584
 | 
 0  | 
 0  | 
   if( p->nData + need > p->nAlloc ){  | 
 
| 
130588
 | 
 0  | 
 0  | 
     if( azNew==0 ) goto malloc_failed;  | 
 
| 
130595
 | 
 0  | 
 0  | 
   if( p->nRow==0 ){  | 
 
| 
130597
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
130599
 | 
 0  | 
 0  | 
       if( z==0 ) goto malloc_failed;  | 
 
| 
130602
 | 
 0  | 
 0  | 
   }else if( (int)p->nColumn!=nCol ){  | 
 
| 
130613
 | 
 0  | 
 0  | 
   if( argv!=0 ){  | 
 
| 
130614
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
130615
 | 
 0  | 
 0  | 
       if( argv[i]==0 ){  | 
 
| 
130620
 | 
 0  | 
 0  | 
         if( z==0 ) goto malloc_failed;  | 
 
| 
130659
 | 
 0  | 
 0  | 
   if( pnColumn ) *pnColumn = 0;  | 
 
| 
130660
 | 
 0  | 
 0  | 
   if( pnRow ) *pnRow = 0;  | 
 
| 
130661
 | 
 0  | 
 0  | 
   if( pzErrMsg ) *pzErrMsg = 0;  | 
 
| 
130669
 | 
 0  | 
 0  | 
   if( res.azResult==0 ){  | 
 
| 
130677
 | 
 0  | 
 0  | 
   if( (rc&0xff)==SQLITE_ABORT ){  | 
 
| 
130679
 | 
 0  | 
 0  | 
     if( res.zErrMsg ){  | 
 
| 
130680
 | 
 0  | 
 0  | 
       if( pzErrMsg ){  | 
 
| 
130690
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
130694
 | 
 0  | 
 0  | 
   if( res.nAlloc>res.nData ){  | 
 
| 
130697
 | 
 0  | 
 0  | 
     if( azNew==0 ){  | 
 
| 
130705
 | 
 0  | 
 0  | 
   if( pnColumn ) *pnColumn = res.nColumn;  | 
 
| 
130706
 | 
 0  | 
 0  | 
   if( pnRow ) *pnRow = res.nRow;  | 
 
| 
130716
 | 
 0  | 
 0  | 
   if( azResult ){  | 
 
| 
130721
 | 
 0  | 
 0  | 
     for(i=1; i
 | 
 
| 
 | 
 0  | 
 0  | 
     for(i=1; i
 | 
 
| 
130749
 | 
 0  | 
 0  | 
   while( pTriggerStep ){  | 
 
| 
130782
 | 
 0  | 
 2948  | 
   if( pParse->disableTriggers ){  | 
 
| 
130786
 | 
 608  | 
 2340  | 
   if( pTmpSchema!=pTab->pSchema ){  | 
 
| 
130789
 | 
 0  | 
 608  | 
     for(p=sqliteHashFirst(&pTmpSchema->trigHash); p; p=sqliteHashNext(p)){  | 
 
| 
130791
 | 
 0  | 
 0  | 
       if( pTrig->pTabSchema==pTab->pSchema  | 
 
| 
130792
 | 
 0  | 
 0  | 
        && 0==sqlite3StrICmp(pTrig->table, pTab->zName)   | 
 
| 
130794
 | 
 0  | 
 0  | 
         pTrig->pNext = (pList ? pList : pTab->pTrigger);  | 
 
| 
130800
 | 
 2948  | 
 0  | 
   return (pList ? pList : pTab->pTrigger);  | 
 
| 
130835
 | 
 0  | 
 0  | 
   if( isTemp ){  | 
 
| 
130837
 | 
 0  | 
 0  | 
     if( pName2->n>0 ){  | 
 
| 
130846
 | 
 0  | 
 0  | 
     if( iDb<0 ){  | 
 
| 
130850
 | 
 0  | 
 0  | 
   if( !pTableName || db->mallocFailed ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !pTableName || db->mallocFailed ){  | 
 
| 
130862
 | 
 0  | 
 0  | 
   if( db->init.busy && iDb!=1 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( db->init.busy && iDb!=1 ){  | 
 
| 
130873
 | 
 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  | 
 
| 
130874
 | 
 0  | 
 0  | 
         && pTab->pSchema==db->aDb[1].pSchema ){  | 
 
| 
130879
 | 
 0  | 
 0  | 
   if( db->mallocFailed ) goto trigger_cleanup;  | 
 
| 
130882
 | 
 0  | 
 0  | 
   if( sqlite3FixSrcList(&sFix, pTableName) ){  | 
 
| 
130886
 | 
 0  | 
 0  | 
   if( !pTab ){  | 
 
| 
130888
 | 
 0  | 
 0  | 
     if( db->init.iDb==1 ){  | 
 
| 
130901
 | 
 0  | 
 0  | 
   if( IsVirtual(pTab) ){  | 
 
| 
130909
 | 
 0  | 
 0  | 
   if( !zName || SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !zName || SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){  | 
 
| 
130913
 | 
 0  | 
 0  | 
   if( !IN_RENAME_OBJECT ){  | 
 
| 
130914
 | 
 0  | 
 0  | 
     if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash),zName) ){  | 
 
| 
130915
 | 
 0  | 
 0  | 
       if( !noErr ){  | 
 
| 
130926
 | 
 0  | 
 0  | 
   if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0 ){  | 
 
| 
130934
 | 
 0  | 
 0  | 
   if( pTab->pSelect && tr_tm!=TK_INSTEAD ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab->pSelect && tr_tm!=TK_INSTEAD ){  | 
 
| 
130935
 | 
 0  | 
 0  | 
     sqlite3ErrorMsg(pParse, "cannot create %s trigger on view: %S",   | 
 
| 
130939
 | 
 0  | 
 0  | 
   if( !pTab->pSelect && tr_tm==TK_INSTEAD ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !pTab->pSelect && tr_tm==TK_INSTEAD ){  | 
 
| 
130946
 | 
 0  | 
 0  | 
   if( !IN_RENAME_OBJECT ){  | 
 
| 
130950
 | 
 0  | 
 0  | 
     const char *zDbTrig = isTemp ? db->aDb[1].zDbSName : zDb;  | 
 
| 
130951
 | 
 0  | 
 0  | 
     if( iTabDb==1 || isTemp ) code = SQLITE_CREATE_TEMP_TRIGGER;  | 
 
| 
 | 
 0  | 
 0  | 
     if( iTabDb==1 || isTemp ) code = SQLITE_CREATE_TEMP_TRIGGER;  | 
 
| 
130952
 | 
 0  | 
 0  | 
     if( sqlite3AuthCheck(pParse, code, zName, pTab->zName, zDbTrig) ){  | 
 
| 
130955
 | 
 0  | 
 0  | 
     if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iTabDb),0,zDb)){  | 
 
| 
 | 
 0  | 
 0  | 
     if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iTabDb),0,zDb)){  | 
 
| 
130966
 | 
 0  | 
 0  | 
   if (tr_tm == TK_INSTEAD){  | 
 
| 
130972
 | 
 0  | 
 0  | 
   if( pTrigger==0 ) goto trigger_cleanup;  | 
 
| 
130979
 | 
 0  | 
 0  | 
   pTrigger->tr_tm = tr_tm==TK_BEFORE ? TRIGGER_BEFORE : TRIGGER_AFTER;  | 
 
| 
130980
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
130997
 | 
 0  | 
 0  | 
   if( !pParse->pNewTrigger ){  | 
 
| 
131021
 | 
 0  | 
 0  | 
   if( NEVER(pParse->nErr) || !pTrig ) goto triggerfinish_cleanup;  | 
 
| 
 | 
 0  | 
 0  | 
   if( NEVER(pParse->nErr) || !pTrig ) goto triggerfinish_cleanup;  | 
 
| 
131025
 | 
 0  | 
 0  | 
   while( pStepList ){  | 
 
| 
131031
 | 
 0  | 
 0  | 
   if( sqlite3FixTriggerStep(&sFix, pTrig->step_list)   | 
 
| 
131032
 | 
 0  | 
 0  | 
    || sqlite3FixExpr(&sFix, pTrig->pWhen)   | 
 
| 
131038
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
131048
 | 
 0  | 
 0  | 
   if( !db->init.busy ){  | 
 
| 
131054
 | 
 0  | 
 0  | 
     if( v==0 ) goto triggerfinish_cleanup;  | 
 
| 
131068
 | 
 0  | 
 0  | 
   if( db->init.busy ){  | 
 
| 
131073
 | 
 0  | 
 0  | 
     if( pTrig ){  | 
 
| 
131075
 | 
 0  | 
 0  | 
     }else if( pLink->pSchema==pLink->pTabSchema ){  | 
 
| 
131097
 | 
 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] = ' ';  | 
 
| 
131115
 | 
 0  | 
 0  | 
   if( pTriggerStep==0 ) {  | 
 
| 
131143
 | 
 0  | 
 0  | 
   if( pTriggerStep ){  | 
 
| 
131150
 | 
 0  | 
 0  | 
     if( IN_RENAME_OBJECT ){  | 
 
| 
131180
 | 
 0  | 
 0  | 
   if( pTriggerStep ){  | 
 
| 
131181
 | 
 0  | 
 0  | 
     if( IN_RENAME_OBJECT ){  | 
 
| 
131219
 | 
 0  | 
 0  | 
   if( pTriggerStep ){  | 
 
| 
131220
 | 
 0  | 
 0  | 
     if( IN_RENAME_OBJECT ){  | 
 
| 
131252
 | 
 0  | 
 0  | 
   if( pTriggerStep ){  | 
 
| 
131253
 | 
 0  | 
 0  | 
     if( IN_RENAME_OBJECT ){  | 
 
| 
131269
 | 
 5710  | 
 0  | 
   if( pTrigger==0 ) return;  | 
 
| 
131293
 | 
 0  | 
 0  | 
   if( db->mallocFailed ) goto drop_trigger_cleanup;  | 
 
| 
131294
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){  | 
 
| 
131302
 | 
 0  | 
 0  | 
   for(i=OMIT_TEMPDB; inDb; i++){  | 
 
| 
131303
 | 
 0  | 
 0  | 
     int j = (i<2) ? i^1 : i;  /* Search TEMP before MAIN */  | 
 
| 
131304
 | 
 0  | 
 0  | 
     if( zDb && sqlite3StrICmp(db->aDb[j].zDbSName, zDb) ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
     if( zDb && sqlite3StrICmp(db->aDb[j].zDbSName, zDb) ) continue;  | 
 
| 
131307
 | 
 0  | 
 0  | 
     if( pTrigger ) break;  | 
 
| 
131309
 | 
 0  | 
 0  | 
   if( !pTrigger ){  | 
 
| 
131310
 | 
 0  | 
 0  | 
     if( !noErr ){  | 
 
| 
131351
 | 
 0  | 
 0  | 
     const char *zTab = SCHEMA_TABLE(iDb);  | 
 
| 
131352
 | 
 0  | 
 0  | 
     if( iDb==1 ) code = SQLITE_DROP_TEMP_TRIGGER;  | 
 
| 
131363
 | 
 0  | 
 0  | 
   if( (v = sqlite3GetVdbe(pParse))!=0 ){  | 
 
| 
131383
 | 
 0  | 
 0  | 
   if( ALWAYS(pTrigger) ){  | 
 
| 
131384
 | 
 0  | 
 0  | 
     if( pTrigger->pSchema==pTrigger->pTabSchema ){  | 
 
| 
131387
 | 
 0  | 
 0  | 
       for(pp=&pTab->pTrigger; *pp!=pTrigger; pp=&((*pp)->pNext));  | 
 
| 
131406
 | 
 0  | 
 0  | 
   if( pIdList==0 || NEVER(pEList==0) ) return 1;  | 
 
| 
 | 
 0  | 
 0  | 
   if( pIdList==0 || NEVER(pEList==0) ) return 1;  | 
 
| 
131407
 | 
 0  | 
 0  | 
   for(e=0; enExpr; e++){  | 
 
| 
131408
 | 
 0  | 
 0  | 
     if( sqlite3IdListIndex(pIdList, pEList->a[e].zName)>=0 ) return 1;  | 
 
| 
131430
 | 
 2943  | 
 0  | 
   if( (pParse->db->flags & SQLITE_EnableTrigger)!=0 ){  | 
 
| 
131434
 | 
 0  | 
 2943  | 
   for(p=pList; p; p=p->pNext){  | 
 
| 
131435
 | 
 0  | 
 0  | 
     if( p->op==op && checkColumnOverlap(p->pColumns, pChanges) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->op==op && checkColumnOverlap(p->pColumns, pChanges) ){  | 
 
| 
131439
 | 
 2885  | 
 58  | 
   if( pMask ){  | 
 
| 
131442
 | 
 0  | 
 2943  | 
   return (mask ? pList : 0);  | 
 
| 
131464
 | 
 0  | 
 0  | 
   if( pSrc ){  | 
 
| 
131468
 | 
 0  | 
 0  | 
     if( iDb==0 || iDb>=2 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iDb==0 || iDb>=2 ){  | 
 
| 
131494
 | 
 0  | 
 0  | 
   for(pStep=pStepList; pStep; pStep=pStep->pNext){  | 
 
| 
131508
 | 
 0  | 
 0  | 
     pParse->eOrconf = (orconf==OE_Default)?pStep->orconf:(u8)orconf;  | 
 
| 
131512
 | 
 0  | 
 0  | 
     if( pStep->zSpan ){  | 
 
| 
131555
 | 
 0  | 
 0  | 
     if( pStep->op!=TK_SELECT ){  | 
 
| 
131589
 | 
 0  | 
 0  | 
   if( pTo->nErr==0 ){  | 
 
| 
131608
 | 
 0  | 
 0  | 
   Parse *pTop = sqlite3ParseToplevel(pParse);  | 
 
| 
131625
 | 
 0  | 
 0  | 
   if( !pPrg ) return 0;  | 
 
| 
131629
 | 
 0  | 
 0  | 
   if( !pProgram ) return 0;  | 
 
| 
131639
 | 
 0  | 
 0  | 
   if( !pSubParse ) return 0;  | 
 
| 
131650
 | 
 0  | 
 0  | 
   if( v ){  | 
 
| 
131660
 | 
 0  | 
 0  | 
     if( pTrigger->zName ){  | 
 
| 
131670
 | 
 0  | 
 0  | 
     if( pTrigger->pWhen ){  | 
 
| 
131672
 | 
 0  | 
 0  | 
       if( SQLITE_OK==sqlite3ResolveExprNames(&sNC, pWhen)   | 
 
| 
131673
 | 
 0  | 
 0  | 
        && db->mallocFailed==0   | 
 
| 
131685
 | 
 0  | 
 0  | 
     if( iEndTrigger ){  | 
 
| 
131692
 | 
 0  | 
 0  | 
     if( db->mallocFailed==0 && pParse->nErr==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( db->mallocFailed==0 && pParse->nErr==0 ){  | 
 
| 
131723
 | 
 0  | 
 0  | 
   Parse *pRoot = sqlite3ParseToplevel(pParse);  | 
 
| 
131732
 | 
 0  | 
 0  | 
   for(pPrg=pRoot->pTriggerPrg;   | 
 
| 
131733
 | 
 0  | 
 0  | 
       pPrg && (pPrg->pTrigger!=pTrigger || pPrg->orconf!=orconf);   | 
 
| 
 | 
 0  | 
 0  | 
       pPrg && (pPrg->pTrigger!=pTrigger || pPrg->orconf!=orconf);   | 
 
| 
131738
 | 
 0  | 
 0  | 
   if( !pPrg ){  | 
 
| 
131766
 | 
 0  | 
 0  | 
   if( pPrg ){  | 
 
| 
131767
 | 
 0  | 
 0  | 
     int bRecursive = (p->zName && 0==(pParse->db->flags&SQLITE_RecTriggers));  | 
 
| 
 | 
 0  | 
 0  | 
     int bRecursive = (p->zName && 0==(pParse->db->flags&SQLITE_RecTriggers));  | 
 
| 
131840
 | 
 0  | 
 270  | 
   for(p=pTrigger; p; p=p->pNext){  | 
 
| 
131851
 | 
 0  | 
 0  | 
     if( p->op==op   | 
 
| 
131852
 | 
 0  | 
 0  | 
      && p->tr_tm==tr_tm   | 
 
| 
131853
 | 
 0  | 
 0  | 
      && checkColumnOverlap(p->pColumns, pChanges)  | 
 
| 
131894
 | 
 237  | 
 0  | 
   const int op = pChanges ? TK_UPDATE : TK_DELETE;  | 
 
| 
131899
 | 
 0  | 
 237  | 
   for(p=pTrigger; p; p=p->pNext){  | 
 
| 
131900
 | 
 0  | 
 0  | 
     if( p->op==op && (tr_tm&p->tr_tm)  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->op==op && (tr_tm&p->tr_tm)  | 
 
| 
131901
 | 
 0  | 
 0  | 
      && checkColumnOverlap(p->pColumns,pChanges)  | 
 
| 
131905
 | 
 0  | 
 0  | 
       if( pPrg ){  | 
 
| 
131980
 | 
 2967  | 
 0  | 
   if( !pTab->pSelect ){  | 
 
| 
131988
 | 
 0  | 
 2967  | 
     if( pValue ){  | 
 
| 
131993
 | 
 0  | 
 2967  | 
   if( pTab->aCol[i].affinity==SQLITE_AFF_REAL ){  | 
 
| 
132018
 | 
 0  | 
 0  | 
   if( iIdxCol>=0 ){  | 
 
| 
132045
 | 
 0  | 
 0  | 
   if( pIdx->pPartIdxWhere==0 ) return 0;  | 
 
| 
132122
 | 
 235  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ){  | 
 
| 
 | 
 235  | 
 0  | 
   if( pParse->nErr || db->mallocFailed ){  | 
 
| 
132130
 | 
 0  | 
 235  | 
   if( pTab==0 ) goto update_cleanup;  | 
 
| 
132160
 | 
 0  | 
 235  | 
   if( sqlite3ViewGetColumnNames(pParse, pTab) ){  | 
 
| 
132163
 | 
 0  | 
 235  | 
   if( sqlite3IsReadOnly(pParse, pTab, tmask) ){  | 
 
| 
132174
 | 
 0  | 
 235  | 
   pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab);  | 
 
| 
132176
 | 
 0  | 
 235  | 
   for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){  | 
 
| 
132177
 | 
 0  | 
 0  | 
     if( pPk==pIdx ){  | 
 
| 
132182
 | 
 0  | 
 235  | 
   if( pUpsert ){  | 
 
| 
132194
 | 
 0  | 
 235  | 
   if( aXRef==0 ) goto update_cleanup;  | 
 
| 
132199
 | 
 1162  | 
 235  | 
   for(i=0; inCol; i++) aXRef[i] = -1;  | 
 
| 
132215
 | 
 1135  | 
 235  | 
   for(i=0; inExpr; i++){  | 
 
| 
132216
 | 
 0  | 
 1135  | 
     if( sqlite3ResolveExprNames(&sNC, pChanges->a[i].pExpr) ){  | 
 
| 
132219
 | 
 3405  | 
 0  | 
     for(j=0; jnCol; j++){  | 
 
| 
132220
 | 
 1135  | 
 2270  | 
       if( sqlite3StrICmp(pTab->aCol[j].zName, pChanges->a[i].zName)==0 ){  | 
 
| 
132221
 | 
 0  | 
 1135  | 
         if( j==pTab->iPKey ){  | 
 
| 
132224
 | 
 0  | 
 1135  | 
         }else if( pPk && (pTab->aCol[j].colFlags & COLFLAG_PRIMKEY)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         }else if( pPk && (pTab->aCol[j].colFlags & COLFLAG_PRIMKEY)!=0 ){  | 
 
| 
132231
 | 
 0  | 
 1135  | 
     if( j>=pTab->nCol ){  | 
 
| 
132232
 | 
 0  | 
 0  | 
       if( pPk==0 && sqlite3IsRowid(pChanges->a[i].zName) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pPk==0 && sqlite3IsRowid(pChanges->a[i].zName) ){  | 
 
| 
132245
 | 
 1135  | 
 0  | 
       rc = sqlite3AuthCheck(pParse, SQLITE_UPDATE, pTab->zName,  | 
 
| 
132248
 | 
 0  | 
 1135  | 
       if( rc==SQLITE_DENY ){  | 
 
| 
132250
 | 
 0  | 
 1135  | 
       }else if( rc==SQLITE_IGNORE ){  | 
 
| 
132266
 | 
 0  | 
 235  | 
   pTabList->a[0].colUsed = IsVirtual(pTab) ? ALLBITS : 0;  | 
 
| 
132274
 | 
 0  | 
 235  | 
   for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){  | 
 
| 
132276
 | 
 0  | 
 0  | 
     if( chngKey || hasFK>1 || pIdx==pPk  | 
 
| 
 | 
 0  | 
 0  | 
     if( chngKey || hasFK>1 || pIdx==pPk  | 
 
| 
 | 
 0  | 
 0  | 
     if( chngKey || hasFK>1 || pIdx==pPk  | 
 
| 
132277
 | 
 0  | 
 0  | 
      || indexWhereClauseMightChange(pIdx,aXRef,chngRowid)  | 
 
| 
132283
 | 
 0  | 
 0  | 
       for(i=0; inKeyCol; i++){  | 
 
| 
132284
 | 
 0  | 
 0  | 
         if( indexColumnIsBeingUpdated(pIdx, i, aXRef, chngRowid) ){  | 
 
| 
132287
 | 
 0  | 
 0  | 
           if( (onError==OE_Replace)  | 
 
| 
132288
 | 
 0  | 
 0  | 
            || (onError==OE_Default && pIdx->onError==OE_Replace)   | 
 
| 
 | 
 0  | 
 0  | 
            || (onError==OE_Default && pIdx->onError==OE_Replace)   | 
 
| 
132296
 | 
 0  | 
 0  | 
     if( reg==0 ) aToOpen[j+1] = 0;  | 
 
| 
132299
 | 
 0  | 
 235  | 
   if( bReplace ){  | 
 
| 
132307
 | 
 0  | 
 235  | 
   if( v==0 ) goto update_cleanup;  | 
 
| 
132308
 | 
 5  | 
 230  | 
   if( pParse->nested==0 ) sqlite3VdbeCountChanges(v);  | 
 
| 
132309
 | 
 235  | 
 0  | 
   sqlite3BeginWriteOperation(pParse, pTrigger || hasFK, iDb);  | 
 
| 
 | 
 2  | 
 233  | 
   sqlite3BeginWriteOperation(pParse, pTrigger || hasFK, iDb);  | 
 
| 
132312
 | 
 235  | 
 0  | 
   if( !IsVirtual(pTab) ){  | 
 
| 
132315
 | 
 235  | 
 0  | 
     if( chngPk || pTrigger || hasFK ){  | 
 
| 
 | 
 235  | 
 0  | 
     if( chngPk || pTrigger || hasFK ){  | 
 
| 
 | 
 2  | 
 233  | 
     if( chngPk || pTrigger || hasFK ){  | 
 
| 
132319
 | 
 235  | 
 0  | 
     if( chngKey || pTrigger || hasFK ){  | 
 
| 
 | 
 235  | 
 0  | 
     if( chngKey || pTrigger || hasFK ){  | 
 
| 
 | 
 2  | 
 233  | 
     if( chngKey || pTrigger || hasFK ){  | 
 
| 
132327
 | 
 0  | 
 235  | 
   if( isView ){  | 
 
| 
132335
 | 
 0  | 
 235  | 
   if( isView ){  | 
 
| 
132347
 | 
 0  | 
 235  | 
   if( sqlite3ResolveExprNames(&sNC, pWhere) ){  | 
 
| 
132353
 | 
 0  | 
 235  | 
   if( IsVirtual(pTab) ){  | 
 
| 
132365
 | 
 0  | 
 235  | 
   if( (db->flags&SQLITE_CountRows)!=0  | 
 
| 
132366
 | 
 0  | 
 0  | 
    && !pParse->pTriggerTab  | 
 
| 
132367
 | 
 0  | 
 0  | 
    && !pParse->nested  | 
 
| 
132368
 | 
 0  | 
 0  | 
    && pUpsert==0  | 
 
| 
132374
 | 
 235  | 
 0  | 
   if( HasRowid(pTab) ){  | 
 
| 
132382
 | 
 0  | 
 0  | 
     if( pUpsert==0 ){  | 
 
| 
132390
 | 
 0  | 
 235  | 
   if( pUpsert ){  | 
 
| 
132408
 | 
 5  | 
 230  | 
     if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){  | 
 
| 
 | 
 5  | 
 0  | 
     if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){  | 
 
| 
 | 
 3  | 
 2  | 
     if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){  | 
 
| 
 | 
 3  | 
 0  | 
     if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){  | 
 
| 
 | 
 3  | 
 0  | 
     if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){  | 
 
| 
132412
 | 
 0  | 
 235  | 
     if( pWInfo==0 ) goto update_cleanup;  | 
 
| 
132425
 | 
 10  | 
 225  | 
     if( eOnePass!=ONEPASS_SINGLE ){  | 
 
| 
132427
 | 
 3  | 
 7  | 
       if( eOnePass==ONEPASS_MULTI ){  | 
 
| 
132429
 | 
 0  | 
 3  | 
         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] ){  | 
 
| 
132437
 | 
 235  | 
 0  | 
   if( HasRowid(pTab) ){  | 
 
| 
132442
 | 
 7  | 
 228  | 
     if( eOnePass==ONEPASS_OFF ){  | 
 
| 
132451
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
132455
 | 
 0  | 
 0  | 
     if( eOnePass ){  | 
 
| 
132456
 | 
 0  | 
 0  | 
       if( addrOpen ) sqlite3VdbeChangeToNoop(v, addrOpen);  | 
 
| 
132466
 | 
 235  | 
 0  | 
   if( pUpsert==0 ){  | 
 
| 
132467
 | 
 232  | 
 3  | 
     if( eOnePass!=ONEPASS_MULTI ){  | 
 
| 
132471
 | 
 235  | 
 0  | 
     if( !isView ){  | 
 
| 
132475
 | 
 228  | 
 7  | 
       if( eOnePass!=ONEPASS_OFF ){  | 
 
| 
132476
 | 
 228  | 
 0  | 
         if( aiCurOnePass[0]>=0 ) aToOpen[aiCurOnePass[0]-iBaseCur] = 0;  | 
 
| 
132477
 | 
 0  | 
 228  | 
         if( aiCurOnePass[1]>=0 ) aToOpen[aiCurOnePass[1]-iBaseCur] = 0;  | 
 
| 
132480
 | 
 3  | 
 232  | 
       if( eOnePass==ONEPASS_MULTI && (nIdx-(aiCurOnePass[1]>=0))>0 ){  | 
 
| 
 | 
 0  | 
 3  | 
       if( eOnePass==ONEPASS_MULTI && (nIdx-(aiCurOnePass[1]>=0))>0 ){  | 
 
| 
132485
 | 
 0  | 
 235  | 
       if( addrOnce ) sqlite3VdbeJumpHere(v, addrOnce);  | 
 
| 
132489
 | 
 228  | 
 7  | 
     if( eOnePass!=ONEPASS_OFF ){  | 
 
| 
132490
 | 
 228  | 
 0  | 
       if( !isView && aiCurOnePass[0]!=iDataCur && aiCurOnePass[1]!=iDataCur ){  | 
 
| 
 | 
 0  | 
 228  | 
       if( !isView && aiCurOnePass[0]!=iDataCur && aiCurOnePass[1]!=iDataCur ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( !isView && aiCurOnePass[0]!=iDataCur && aiCurOnePass[1]!=iDataCur ){  | 
 
| 
132495
 | 
 3  | 
 225  | 
       if( eOnePass!=ONEPASS_SINGLE ){  | 
 
| 
132498
 | 
 0  | 
 228  | 
       sqlite3VdbeAddOp2(v, OP_IsNull, pPk ? regKey : regOldRowid, labelBreak);  | 
 
| 
132501
 | 
 0  | 
 7  | 
     }else if( pPk ){  | 
 
| 
132521
 | 
 0  | 
 235  | 
   if( chngRowid ){  | 
 
| 
132528
 | 
 235  | 
 0  | 
   if( chngPk || hasFK || pTrigger ){  | 
 
| 
 | 
 233  | 
 2  | 
   if( chngPk || hasFK || pTrigger ){  | 
 
| 
 | 
 0  | 
 233  | 
   if( chngPk || hasFK || pTrigger ){  | 
 
| 
132529
 | 
 2  | 
 0  | 
     u32 oldmask = (hasFK ? sqlite3FkOldmask(pParse, pTab) : 0);  | 
 
| 
132533
 | 
 6  | 
 2  | 
     for(i=0; inCol; i++){  | 
 
| 
132534
 | 
 6  | 
 0  | 
       if( oldmask==0xffffffff  | 
 
| 
132535
 | 
 6  | 
 0  | 
        || (i<32 && (oldmask & MASKBIT32(i))!=0)  | 
 
| 
 | 
 4  | 
 2  | 
        || (i<32 && (oldmask & MASKBIT32(i))!=0)  | 
 
| 
132536
 | 
 2  | 
 2  | 
        || (pTab->aCol[i].colFlags & COLFLAG_PRIMKEY)!=0  | 
 
| 
132544
 | 
 2  | 
 0  | 
     if( chngRowid==0 && pPk==0 ){  | 
 
| 
 | 
 2  | 
 0  | 
     if( chngRowid==0 && pPk==0 ){  | 
 
| 
132565
 | 
 1162  | 
 235  | 
   for(i=0; inCol; i++){  | 
 
| 
132566
 | 
 2  | 
 1160  | 
     if( i==pTab->iPKey ){  | 
 
| 
132570
 | 
 1135  | 
 25  | 
       if( j>=0 ){  | 
 
| 
132572
 | 
 0  | 
 25  | 
       }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)) ){  | 
 
| 
132590
 | 
 0  | 
 235  | 
   if( tmask&TRIGGER_BEFORE ){  | 
 
| 
132601
 | 
 0  | 
 0  | 
     if( pPk ){  | 
 
| 
132618
 | 
 0  | 
 0  | 
     for(i=0; inCol; i++){  | 
 
| 
132619
 | 
 0  | 
 0  | 
       if( aXRef[i]<0 && i!=pTab->iPKey ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( aXRef[i]<0 && i!=pTab->iPKey ){  | 
 
| 
132625
 | 
 235  | 
 0  | 
   if( !isView ){  | 
 
| 
132635
 | 
 2  | 
 233  | 
     if( hasFK ){  | 
 
| 
132640
 | 
 235  | 
 0  | 
     if( bReplace || chngKey ){  | 
 
| 
 | 
 0  | 
 235  | 
     if( bReplace || chngKey ){  | 
 
| 
132641
 | 
 0  | 
 0  | 
       if( pPk ){  | 
 
| 
132673
 | 
 235  | 
 0  | 
     if( hasFK>1 || chngKey ){  | 
 
| 
 | 
 0  | 
 235  | 
     if( hasFK>1 || chngKey ){  | 
 
| 
132677
 | 
 235  | 
 0  | 
     if( bReplace || chngKey ){  | 
 
| 
 | 
 0  | 
 235  | 
     if( bReplace || chngKey ){  | 
 
| 
132681
 | 
 2  | 
 233  | 
     if( hasFK ){  | 
 
| 
132686
 | 
 3  | 
 232  | 
     sqlite3CompleteInsertion(  | 
 
| 
132695
 | 
 2  | 
 233  | 
     if( hasFK ){  | 
 
| 
132702
 | 
 0  | 
 235  | 
   if( regRowCount ){  | 
 
| 
132712
 | 
 10  | 
 225  | 
   if( eOnePass==ONEPASS_SINGLE ){  | 
 
| 
132714
 | 
 3  | 
 7  | 
   }else if( eOnePass==ONEPASS_MULTI ){  | 
 
| 
132717
 | 
 0  | 
 7  | 
   }else if( pPk ){  | 
 
| 
132729
 | 
 5  | 
 230  | 
   if( pParse->nested==0 && pParse->pTriggerTab==0 && pUpsert==0 ){  | 
 
| 
 | 
 5  | 
 0  | 
   if( pParse->nested==0 && pParse->pTriggerTab==0 && pUpsert==0 ){  | 
 
| 
 | 
 5  | 
 0  | 
   if( pParse->nested==0 && pParse->pTriggerTab==0 && pUpsert==0 ){  | 
 
| 
132737
 | 
 0  | 
 235  | 
   if( regRowCount ){  | 
 
| 
132825
 | 
 0  | 
 0  | 
   if( pWInfo==0 ) return;  | 
 
| 
132828
 | 
 0  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
132829
 | 
 0  | 
 0  | 
     if( aXRef[i]>=0 ){  | 
 
| 
132836
 | 
 0  | 
 0  | 
   if( HasRowid(pTab) ){  | 
 
| 
132838
 | 
 0  | 
 0  | 
     if( pRowid ){  | 
 
| 
132859
 | 
 0  | 
 0  | 
   if( eOnePass ){  | 
 
| 
132879
 | 
 0  | 
 0  | 
   if( eOnePass==ONEPASS_OFF ){  | 
 
| 
132888
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
132894
 | 
 0  | 
 0  | 
   sqlite3VdbeChangeP5(v, onError==OE_Default ? OE_Abort : onError);  | 
 
| 
132899
 | 
 0  | 
 0  | 
   if( eOnePass==ONEPASS_OFF ){  | 
 
| 
132932
 | 
 0  | 
 2650  | 
   if( p ){  | 
 
| 
132945
 | 
 0  | 
 0  | 
   if( p==0 ) return 0;  | 
 
| 
132966
 | 
 0  | 
 0  | 
   if( pNew==0 ){  | 
 
| 
133016
 | 
 0  | 
 0  | 
   if( rc ) return rc;  | 
 
| 
133018
 | 
 0  | 
 0  | 
   if( rc ) return rc;  | 
 
| 
133024
 | 
 0  | 
 0  | 
   if( HasRowid(pTab)   | 
 
| 
133025
 | 
 0  | 
 0  | 
    && pTarget->nExpr==1  | 
 
| 
133026
 | 
 0  | 
 0  | 
    && (pTerm = pTarget->a[0].pExpr)->op==TK_COLUMN  | 
 
| 
133027
 | 
 0  | 
 0  | 
    && pTerm->iColumn==XN_ROWID  | 
 
| 
133047
 | 
 0  | 
 0  | 
   for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
133049
 | 
 0  | 
 0  | 
     if( !IsUniqueIndex(pIdx) ) continue;  | 
 
| 
133050
 | 
 0  | 
 0  | 
     if( pTarget->nExpr!=pIdx->nKeyCol ) continue;  | 
 
| 
133051
 | 
 0  | 
 0  | 
     if( pIdx->pPartIdxWhere ){  | 
 
| 
133052
 | 
 0  | 
 0  | 
       if( pUpsert->pUpsertTargetWhere==0 ) continue;  | 
 
| 
133053
 | 
 0  | 
 0  | 
       if( sqlite3ExprCompare(pParse, pUpsert->pUpsertTargetWhere,  | 
 
| 
133059
 | 
 0  | 
 0  | 
     for(ii=0; ii
 | 
 
| 
133062
 | 
 0  | 
 0  | 
       if( pIdx->aiColumn[ii]==XN_EXPR ){  | 
 
| 
133066
 | 
 0  | 
 0  | 
         if( pExpr->op!=TK_COLLATE ){  | 
 
| 
133075
 | 
 0  | 
 0  | 
       for(jj=0; jj
 | 
 
| 
133076
 | 
 0  | 
 0  | 
         if( sqlite3ExprCompare(pParse, pTarget->a[jj].pExpr, pExpr,iCursor)<2 ){  | 
 
| 
133080
 | 
 0  | 
 0  | 
       if( jj>=nn ){  | 
 
| 
133085
 | 
 0  | 
 0  | 
     if( ii
 | 
 
| 
133123
 | 
 0  | 
 0  | 
   if( pIdx && iCur!=iDataCur ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pIdx && iCur!=iDataCur ){  | 
 
| 
133124
 | 
 0  | 
 0  | 
     if( HasRowid(pTab) ){  | 
 
| 
133136
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
133203
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
133204
 | 
 0  | 
 0  | 
   while( SQLITE_ROW==(rc = sqlite3_step(pStmt)) ){  | 
 
| 
133212
 | 
 0  | 
 0  | 
     if( zSubSql  | 
 
| 
133213
 | 
 0  | 
 0  | 
      && (strncmp(zSubSql,"CRE",3)==0 || strncmp(zSubSql,"INS",3)==0)  | 
 
| 
 | 
 0  | 
 0  | 
      && (strncmp(zSubSql,"CRE",3)==0 || strncmp(zSubSql,"INS",3)==0)  | 
 
| 
133216
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) break;  | 
 
| 
133220
 | 
 0  | 
 0  | 
   if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
133221
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
133234
 | 
 0  | 
 0  | 
   if( z==0 ) return SQLITE_NOMEM;  | 
 
| 
133273
 | 
 0  | 
 0  | 
   if( v==0 ) return;  | 
 
| 
133274
 | 
 0  | 
 0  | 
   if( pNm ){  | 
 
| 
133279
 | 
 0  | 
 0  | 
     if( iDb<0 ) return;  | 
 
| 
133290
 | 
 0  | 
 0  | 
   if( iDb!=1 ){  | 
 
| 
133315
 | 
 0  | 
 0  | 
   if( !db->autoCommit ){  | 
 
| 
133319
 | 
 0  | 
 0  | 
   if( db->nVdbeActive>1 ){  | 
 
| 
133358
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto end_of_vacuum;  | 
 
| 
133392
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto end_of_vacuum;  | 
 
| 
133394
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto end_of_vacuum;  | 
 
| 
133397
 | 
 0  | 
 0  | 
   if( sqlite3PagerGetJournalMode(sqlite3BtreePager(pMain))  | 
 
| 
133402
 | 
 0  | 
 0  | 
   if( sqlite3BtreeSetPageSize(pTemp, sqlite3BtreeGetPageSize(pMain), nRes, 0)  | 
 
| 
133403
 | 
 0  | 
 0  | 
    || (!isMemDb && sqlite3BtreeSetPageSize(pTemp, db->nextPagesize, nRes, 0))  | 
 
| 
 | 
 0  | 
 0  | 
    || (!isMemDb && sqlite3BtreeSetPageSize(pTemp, db->nextPagesize, nRes, 0))  | 
 
| 
133404
 | 
 0  | 
 0  | 
    || NEVER(db->mallocFailed)  | 
 
| 
133411
 | 
 0  | 
 0  | 
   sqlite3BtreeSetAutoVacuum(pTemp, db->nextAutovac>=0 ? db->nextAutovac :  | 
 
| 
133425
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto end_of_vacuum;  | 
 
| 
133431
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto end_of_vacuum;  | 
 
| 
133447
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto end_of_vacuum;  | 
 
| 
133461
 | 
 0  | 
 0  | 
   if( rc ) goto end_of_vacuum;  | 
 
| 
133491
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
133496
 | 
 0  | 
 0  | 
       if( NEVER(rc!=SQLITE_OK) ) goto end_of_vacuum;  | 
 
| 
133500
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto end_of_vacuum;  | 
 
| 
133502
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto end_of_vacuum;  | 
 
| 
133530
 | 
 0  | 
 0  | 
   if( pDb ){  | 
 
| 
133592
 | 
 0  | 
 2510  | 
   if( pMod==0 ){  | 
 
| 
133605
 | 
 0  | 
 2510  | 
     if( pDel ){  | 
 
| 
133629
 | 
 0  | 
 2510  | 
   if( sqlite3HashFind(&db->aModule, zName) ){  | 
 
| 
133635
 | 
 0  | 
 2510  | 
   if( rc!=SQLITE_OK && xDestroy ) xDestroy(pAux);  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK && xDestroy ) xDestroy(pAux);  | 
 
| 
133693
 | 
 215  | 
 0  | 
   for(pVtab=pTab->pVTable; pVtab && pVtab->db!=db; pVtab=pVtab->pNext);  | 
 
| 
 | 
 0  | 
 215  | 
   for(pVtab=pTab->pVTable; pVtab && pVtab->db!=db; pVtab=pVtab->pNext);  | 
 
| 
133709
 | 
 9  | 
 116  | 
   if( pVTab->nRef==0 ){  | 
 
| 
133711
 | 
 9  | 
 0  | 
     if( p ){  | 
 
| 
133738
 | 
 0  | 
 866  | 
   while( pVTable ){  | 
 
| 
133742
 | 
 0  | 
 0  | 
     if( db2==db ){  | 
 
| 
133772
 | 
 9  | 
 1  | 
   for(ppVTab=&p->pVTable; *ppVTab; ppVTab=&(*ppVTab)->pNext){  | 
 
| 
133773
 | 
 9  | 
 0  | 
     if( (*ppVTab)->db==db  ){  | 
 
| 
133810
 | 
 0  | 
 5953  | 
   if( p ){  | 
 
| 
133816
 | 
 0  | 
 0  | 
     }while( p );  | 
 
| 
133835
 | 
 271  | 
 601  | 
   if( !db || db->pnBytesFreed==0 ) vtabDisconnectAll(0, p);  | 
 
| 
 | 
 265  | 
 6  | 
   if( !db || db->pnBytesFreed==0 ) vtabDisconnectAll(0, p);  | 
 
| 
133836
 | 
 20  | 
 852  | 
   if( p->azModuleArg ){  | 
 
| 
133838
 | 
 110  | 
 20  | 
     for(i=0; inModuleArg; i++){  | 
 
| 
133839
 | 
 90  | 
 20  | 
       if( i!=1 ) sqlite3DbFree(db, p->azModuleArg[i]);  | 
 
| 
133855
 | 
 0  | 
 110  | 
   if( azModuleArg==0 ){  | 
 
| 
133882
 | 
 0  | 
 20  | 
   if( pTable==0 ) return;  | 
 
| 
133904
 | 
 20  | 
 0  | 
   if( pTable->azModuleArg ){  | 
 
| 
133919
 | 
 50  | 
 22  | 
   if( pParse->sArg.z && pParse->pNewTable ){  | 
 
| 
 | 
 50  | 
 0  | 
   if( pParse->sArg.z && pParse->pNewTable ){  | 
 
| 
133935
 | 
 0  | 
 20  | 
   if( pTab==0 ) return;  | 
 
| 
133938
 | 
 0  | 
 20  | 
   if( pTab->nModuleArg<1 ) return;  | 
 
| 
133946
 | 
 10  | 
 10  | 
   if( !db->init.busy ){  | 
 
| 
133954
 | 
 10  | 
 0  | 
     if( pEnd ){  | 
 
| 
134002
 | 
 0  | 
 10  | 
     if( pOld ){  | 
 
| 
134027
 | 
 50  | 
 38  | 
   if( pArg->z==0 ){  | 
 
| 
134059
 | 
 0  | 
 10  | 
   for(pCtx=db->pVtabCtx; pCtx; pCtx=pCtx->pPrior){  | 
 
| 
134060
 | 
 0  | 
 0  | 
     if( pCtx->pTab==pTab ){  | 
 
| 
134069
 | 
 0  | 
 10  | 
   if( !zModuleName ){  | 
 
| 
134074
 | 
 0  | 
 10  | 
   if( !pVTable ){  | 
 
| 
134095
 | 
 0  | 
 10  | 
   if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);  | 
 
| 
134098
 | 
 1  | 
 9  | 
   if( SQLITE_OK!=rc ){  | 
 
| 
134099
 | 
 0  | 
 1  | 
     if( zErr==0 ){  | 
 
| 
134106
 | 
 9  | 
 0  | 
   }else if( ALWAYS(pVTable->pVtab) ){  | 
 
| 
134112
 | 
 0  | 
 9  | 
     if( sCtx.bDeclared==0 ){  | 
 
| 
134128
 | 
 41  | 
 9  | 
       for(iCol=0; iColnCol; iCol++){  | 
 
| 
134133
 | 
 22  | 
 19  | 
         for(i=0; i
 | 
 
| 
134134
 | 
 22  | 
 0  | 
           if( 0==sqlite3StrNICmp("hidden", &zType[i], 6)  | 
 
| 
134135
 | 
 0  | 
 22  | 
            && (i==0 || zType[i-1]==' ')  | 
 
| 
 | 
 0  | 
 0  | 
            && (i==0 || zType[i-1]==' ')  | 
 
| 
134136
 | 
 0  | 
 22  | 
            && (zType[i+6]=='\0' || zType[i+6]==' ')  | 
 
| 
 | 
 0  | 
 0  | 
            && (zType[i+6]=='\0' || zType[i+6]==' ')  | 
 
| 
134141
 | 
 22  | 
 19  | 
         if( i
 | 
 
| 
134143
 | 
 0  | 
 22  | 
           int nDel = 6 + (zType[i+6] ? 1 : 0);  | 
 
| 
134144
 | 
 22  | 
 22  | 
           for(j=i; (j+nDel)<=nType; j++){  | 
 
| 
134147
 | 
 22  | 
 0  | 
           if( zType[i]=='\0' && i>0 ){  | 
 
| 
 | 
 0  | 
 22  | 
           if( zType[i]=='\0' && i>0 ){  | 
 
| 
134178
 | 
 60  | 
 2977  | 
   if( !IsVirtual(pTab) || sqlite3GetVTable(db, pTab) ){  | 
 
| 
 | 
 60  | 
 0  | 
   if( !IsVirtual(pTab) || sqlite3GetVTable(db, pTab) ){  | 
 
| 
134186
 | 
 0  | 
 0  | 
   if( !pMod ){  | 
 
| 
134193
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
134210
 | 
 39  | 
 0  | 
   if( (db->nVTrans%ARRAY_INCR)==0 ){  | 
 
| 
134214
 | 
 0  | 
 39  | 
     if( !aVTrans ){  | 
 
| 
134259
 | 
 10  | 
 0  | 
   if( pMod==0 || pMod->pModule->xCreate==0 || pMod->pModule->xDestroy==0 ){  | 
 
| 
 | 
 10  | 
 0  | 
   if( pMod==0 || pMod->pModule->xCreate==0 || pMod->pModule->xDestroy==0 ){  | 
 
| 
 | 
 0  | 
 10  | 
   if( pMod==0 || pMod->pModule->xCreate==0 || pMod->pModule->xDestroy==0 ){  | 
 
| 
134268
 | 
 9  | 
 1  | 
   if( rc==SQLITE_OK && ALWAYS(sqlite3GetVTable(db, pTab)) ){  | 
 
| 
 | 
 9  | 
 0  | 
   if( rc==SQLITE_OK && ALWAYS(sqlite3GetVTable(db, pTab)) ){  | 
 
| 
134270
 | 
 9  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
134297
 | 
 9  | 
 0  | 
   if( !pCtx || pCtx->bDeclared ){  | 
 
| 
 | 
 0  | 
 9  | 
   if( !pCtx || pCtx->bDeclared ){  | 
 
| 
134309
 | 
 9  | 
 0  | 
   if( SQLITE_OK==sqlite3RunParser(&sParse, zCreateTable, &zErr)   | 
 
| 
134310
 | 
 9  | 
 0  | 
    && sParse.pNewTable  | 
 
| 
134311
 | 
 9  | 
 0  | 
    && !db->mallocFailed  | 
 
| 
134312
 | 
 9  | 
 0  | 
    && !sParse.pNewTable->pSelect  | 
 
| 
134313
 | 
 9  | 
 0  | 
    && !IsVirtual(sParse.pNewTable)  | 
 
| 
134315
 | 
 9  | 
 0  | 
     if( !pTab->aCol ){  | 
 
| 
134325
 | 
 0  | 
 9  | 
       if( !HasRowid(pNew)  | 
 
| 
134326
 | 
 0  | 
 0  | 
        && pCtx->pVTable->pMod->pModule->xUpdate!=0  | 
 
| 
134327
 | 
 0  | 
 0  | 
        && sqlite3PrimaryKeyIndex(pNew)->nKeyCol!=1  | 
 
| 
134334
 | 
 0  | 
 9  | 
       if( pIdx ){  | 
 
| 
134343
 | 
 0  | 
 0  | 
     sqlite3ErrorWithMsg(db, SQLITE_ERROR, (zErr ? "%s" : 0), zErr);  | 
 
| 
134349
 | 
 9  | 
 0  | 
   if( sParse.pVdbe ){  | 
 
| 
134373
 | 
 0  | 
 0  | 
   if( pTab!=0 && ALWAYS(pTab->pVTable!=0) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab!=0 && ALWAYS(pTab->pVTable!=0) ){  | 
 
| 
134376
 | 
 0  | 
 0  | 
     for(p=pTab->pVTable; p; p=p->pNext){  | 
 
| 
134378
 | 
 0  | 
 0  | 
       if( p->pVtab->nRef>0 ){  | 
 
| 
134387
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
134408
 | 
 39  | 
 2400  | 
   if( db->aVTrans ){  | 
 
| 
134411
 | 
 39  | 
 39  | 
     for(i=0; inVTrans; i++){  | 
 
| 
134414
 | 
 39  | 
 0  | 
       if( p ){  | 
 
| 
134417
 | 
 38  | 
 1  | 
         if( x ) x(p);  | 
 
| 
134440
 | 
 1911  | 
 0  | 
   for(i=0; rc==SQLITE_OK && inVTrans; i++){  | 
 
| 
 | 
 39  | 
 1872  | 
   for(i=0; rc==SQLITE_OK && inVTrans; i++){  | 
 
| 
134443
 | 
 39  | 
 0  | 
     if( pVtab && (x = pVtab->pModule->xSync)!=0 ){  | 
 
| 
 | 
 38  | 
 1  | 
     if( pVtab && (x = pVtab->pModule->xSync)!=0 ){  | 
 
| 
134487
 | 
 5  | 
 40  | 
   if( sqlite3VtabInSync(db) ){  | 
 
| 
 | 
 0  | 
 5  | 
   if( sqlite3VtabInSync(db) ){  | 
 
| 
134490
 | 
 10  | 
 35  | 
   if( !pVTab ){  | 
 
| 
134495
 | 
 35  | 
 0  | 
   if( pModule->xBegin ){  | 
 
| 
134499
 | 
 5  | 
 30  | 
     for(i=0; inVTrans; i++){  | 
 
| 
134500
 | 
 5  | 
 0  | 
       if( db->aVTrans[i]==pVTab ){  | 
 
| 
134508
 | 
 30  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
134510
 | 
 30  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
134513
 | 
 0  | 
 30  | 
         if( iSvpt && pModule->xSavepoint ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( iSvpt && pModule->xSavepoint ){  | 
 
| 
134543
 | 
 0  | 
 27  | 
   if( db->aVTrans ){  | 
 
| 
134545
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inVTrans; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inVTrans; i++){  | 
 
| 
134548
 | 
 0  | 
 0  | 
       if( pVTab->pVtab && pMod->iVersion>=2 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pVTab->pVtab && pMod->iVersion>=2 ){  | 
 
| 
134562
 | 
 0  | 
 0  | 
         if( xMethod && pVTab->iSavepoint>iSavepoint ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( xMethod && pVTab->iSavepoint>iSavepoint ){  | 
 
| 
134599
 | 
 0  | 
 545  | 
   if( NEVER(pExpr==0) ) return pDef;  | 
 
| 
134600
 | 
 409  | 
 136  | 
   if( pExpr->op!=TK_COLUMN ) return pDef;  | 
 
| 
134602
 | 
 0  | 
 136  | 
   if( pTab==0 ) return pDef;  | 
 
| 
134603
 | 
 136  | 
 0  | 
   if( !IsVirtual(pTab) ) return pDef;  | 
 
| 
134608
 | 
 0  | 
 0  | 
   if( pMod->xFindFunction==0 ) return pDef;  | 
 
| 
134627
 | 
 0  | 
 0  | 
   if( rc==0 ){  | 
 
| 
134635
 | 
 0  | 
 0  | 
   if( pNew==0 ){  | 
 
| 
134654
 | 
 0  | 
 17  | 
   Parse *pToplevel = sqlite3ParseToplevel(pParse);  | 
 
| 
134659
 | 
 0  | 
 17  | 
   for(i=0; inVtabLock; i++){  | 
 
| 
134660
 | 
 0  | 
 0  | 
     if( pTab==pToplevel->apVtabLock[i] ) return;  | 
 
| 
134664
 | 
 17  | 
 0  | 
   if( apVtabLock ){  | 
 
| 
134692
 | 
 0  | 
 0  | 
   if( pMod->pEpoTab ) return 1;  | 
 
| 
134693
 | 
 0  | 
 0  | 
   if( pModule->xCreate!=0 && pModule->xCreate!=pModule->xConnect ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
   if( pModule->xCreate!=0 && pModule->xCreate!=pModule->xConnect ) return 0;  | 
 
| 
134695
 | 
 0  | 
 0  | 
   if( pTab==0 ) return 0;  | 
 
| 
134697
 | 
 0  | 
 0  | 
   if( pTab->zName==0 ){  | 
 
| 
134710
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
134725
 | 
 0  | 
 2490  | 
   if( pTab!=0 ){  | 
 
| 
134769
 | 
 8  | 
 0  | 
   switch( op ){  | 
 
| 
134772
 | 
 0  | 
 8  | 
       if( !p ){  | 
 
| 
134776
 | 
 8  | 
 0  | 
         p->pVTable->bConstraint = (u8)va_arg(ap, int);  | 
 
| 
134786
 | 
 0  | 
 8  | 
   if( rc!=SQLITE_OK ) sqlite3Error(db, rc);  | 
 
| 
135411
 | 
 0  | 
 0  | 
   if( i==XN_EXPR ) return "";  | 
 
| 
135412
 | 
 0  | 
 0  | 
   if( i==XN_ROWID ) return "rowid";  | 
 
| 
135435
 | 
 0  | 
 0  | 
   if( bAnd ) sqlite3_str_append(pStr, " AND ", 5);  | 
 
| 
135437
 | 
 0  | 
 0  | 
   if( nTerm>1 ) sqlite3_str_append(pStr, "(", 1);  | 
 
| 
135438
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
135439
 | 
 0  | 
 0  | 
     if( i ) sqlite3_str_append(pStr, ",", 1);  | 
 
| 
135442
 | 
 0  | 
 0  | 
   if( nTerm>1 ) sqlite3_str_append(pStr, ")", 1);  | 
 
| 
135446
 | 
 0  | 
 0  | 
   if( nTerm>1 ) sqlite3_str_append(pStr, "(", 1);  | 
 
| 
135447
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
135448
 | 
 0  | 
 0  | 
     if( i ) sqlite3_str_append(pStr, ",", 1);  | 
 
| 
135451
 | 
 0  | 
 0  | 
   if( nTerm>1 ) sqlite3_str_append(pStr, ")", 1);  | 
 
| 
135474
 | 
 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;  | 
 
| 
135476
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
135478
 | 
 0  | 
 0  | 
     if( i ) sqlite3_str_append(pStr, " AND ", 5);  | 
 
| 
135479
 | 
 0  | 
 0  | 
     sqlite3_str_appendf(pStr, i>=nSkip ? "%s=?" : "ANY(%s)", z);  | 
 
| 
135483
 | 
 0  | 
 0  | 
   if( pLoop->wsFlags&WHERE_BTM_LIMIT ){  | 
 
| 
135487
 | 
 0  | 
 0  | 
   if( pLoop->wsFlags&WHERE_TOP_LIMIT ){  | 
 
| 
135510
 | 
 0  | 
 1394  | 
   if( sqlite3ParseToplevel(pParse)->explain==2 )  | 
 
| 
 | 
 0  | 
 1394  | 
   if( sqlite3ParseToplevel(pParse)->explain==2 )  | 
 
| 
135525
 | 
 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;  | 
 
| 
135528
 | 
 0  | 
 0  | 
             || ((flags&WHERE_VIRTUALTABLE)==0 && (pLoop->u.btree.nEq>0))  | 
 
| 
 | 
 0  | 
 0  | 
             || ((flags&WHERE_VIRTUALTABLE)==0 && (pLoop->u.btree.nEq>0))  | 
 
| 
135529
 | 
 0  | 
 0  | 
             || (wctrlFlags&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX));  | 
 
| 
 | 
 0  | 
 0  | 
             || (wctrlFlags&(WHERE_ORDERBY_MIN|WHERE_ORDERBY_MAX));  | 
 
| 
135532
 | 
 0  | 
 0  | 
     sqlite3_str_appendall(&str, isSearch ? "SEARCH" : "SCAN");  | 
 
| 
135533
 | 
 0  | 
 0  | 
     if( pItem->pSelect ){  | 
 
| 
135539
 | 
 0  | 
 0  | 
     if( pItem->zAlias ){  | 
 
| 
135542
 | 
 0  | 
 0  | 
     if( (flags & (WHERE_IPK|WHERE_VIRTUALTABLE))==0 ){  | 
 
| 
135549
 | 
 0  | 
 0  | 
       if( !HasRowid(pItem->pTab) && IsPrimaryKeyIndex(pIdx) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( !HasRowid(pItem->pTab) && IsPrimaryKeyIndex(pIdx) ){  | 
 
| 
135550
 | 
 0  | 
 0  | 
         if( isSearch ){  | 
 
| 
135553
 | 
 0  | 
 0  | 
       }else if( flags & WHERE_PARTIALIDX ){  | 
 
| 
135555
 | 
 0  | 
 0  | 
       }else if( flags & WHERE_AUTO_INDEX ){  | 
 
| 
135557
 | 
 0  | 
 0  | 
       }else if( flags & WHERE_IDX_ONLY ){  | 
 
| 
135562
 | 
 0  | 
 0  | 
       if( zFmt ){  | 
 
| 
135567
 | 
 0  | 
 0  | 
     }else if( (flags & WHERE_IPK)!=0 && (flags & WHERE_CONSTRAINT)!=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( (flags & WHERE_IPK)!=0 && (flags & WHERE_CONSTRAINT)!=0 ){  | 
 
| 
135569
 | 
 0  | 
 0  | 
       if( flags&(WHERE_COLUMN_EQ|WHERE_COLUMN_IN) ){  | 
 
| 
135571
 | 
 0  | 
 0  | 
       }else if( (flags&WHERE_BOTH_LIMIT)==WHERE_BOTH_LIMIT ){  | 
 
| 
135573
 | 
 0  | 
 0  | 
       }else if( flags&WHERE_BTM_LIMIT ){  | 
 
| 
135583
 | 
 0  | 
 0  | 
     else if( (flags & WHERE_VIRTUALTABLE)!=0 ){  | 
 
| 
135679
 | 
 601  | 
 0  | 
   while( (pTerm->wtFlags & TERM_CODED)==0  | 
 
| 
135680
 | 
 0  | 
 601  | 
       && (pLevel->iLeftJoin==0 || ExprHasProperty(pTerm->pExpr, EP_FromJoin))  | 
 
| 
 | 
 0  | 
 0  | 
       && (pLevel->iLeftJoin==0 || ExprHasProperty(pTerm->pExpr, EP_FromJoin))  | 
 
| 
135681
 | 
 601  | 
 0  | 
       && (pLevel->notReady & pTerm->prereqAll)==0  | 
 
| 
135683
 | 
 49  | 
 552  | 
     if( nLoop && (pTerm->wtFlags & TERM_LIKE)!=0 ){  | 
 
| 
 | 
 0  | 
 49  | 
     if( nLoop && (pTerm->wtFlags & TERM_LIKE)!=0 ){  | 
 
| 
135688
 | 
 538  | 
 63  | 
     if( pTerm->iParent<0 ) break;  | 
 
| 
135692
 | 
 14  | 
 49  | 
     if( pTerm->nChild!=0 ) break;  | 
 
| 
135710
 | 
 0  | 
 54  | 
   if( zAff==0 ){  | 
 
| 
135719
 | 
 58  | 
 7  | 
   while( n>0 && zAff[0]==SQLITE_AFF_BLOB ){  | 
 
| 
 | 
 11  | 
 47  | 
   while( n>0 && zAff[0]==SQLITE_AFF_BLOB ){  | 
 
| 
135724
 | 
 2  | 
 54  | 
   while( n>1 && zAff[n-1]==SQLITE_AFF_BLOB ){  | 
 
| 
 | 
 2  | 
 0  | 
   while( n>1 && zAff[n-1]==SQLITE_AFF_BLOB ){  | 
 
| 
135729
 | 
 47  | 
 7  | 
   if( n>0 ){  | 
 
| 
135750
 | 
 31  | 
 31  | 
   for(i=0; i
 | 
 
| 
135752
 | 
 31  | 
 0  | 
     if( sqlite3CompareAffinity(p, zAff[i])==SQLITE_AFF_BLOB  | 
 
| 
135753
 | 
 2  | 
 29  | 
      || sqlite3ExprNeedsNoAffinityChange(p, zAff[i])  | 
 
| 
135798
 | 
 0  | 
 0  | 
   if( db->mallocFailed==0 ){  | 
 
| 
135806
 | 
 0  | 
 0  | 
     for(i=iEq; inLTerm; i++){  | 
 
| 
135807
 | 
 0  | 
 0  | 
       if( pLoop->aLTerm[i]->pExpr==pX ){  | 
 
| 
135809
 | 
 0  | 
 0  | 
         if( pOrigRhs->a[iField].pExpr==0 ) continue; /* Duplicate PK column */  | 
 
| 
135821
 | 
 0  | 
 0  | 
     if( pLhs && pLhs->nExpr==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pLhs && pLhs->nExpr==1 ){  | 
 
| 
135831
 | 
 0  | 
 0  | 
     if( pSelect->pOrderBy ){  | 
 
| 
135840
 | 
 0  | 
 0  | 
       for(i=0; inExpr; i++){  | 
 
| 
135885
 | 
 2  | 
 457  | 
   if( pX->op==TK_EQ || pX->op==TK_IS ){  | 
 
| 
 | 
 0  | 
 2  | 
   if( pX->op==TK_EQ || pX->op==TK_IS ){  | 
 
| 
135887
 | 
 2  | 
 0  | 
   }else if( pX->op==TK_ISNULL ){  | 
 
| 
135900
 | 
 0  | 
 0  | 
     if( (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0  | 
 
| 
135901
 | 
 0  | 
 0  | 
       && pLoop->u.btree.pIndex!=0  | 
 
| 
135902
 | 
 0  | 
 0  | 
       && pLoop->u.btree.pIndex->aSortOrder[iEq]  | 
 
| 
135911
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
135912
 | 
 0  | 
 0  | 
       if( pLoop->aLTerm[i] && pLoop->aLTerm[i]->pExpr==pX ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pLoop->aLTerm[i] && pLoop->aLTerm[i]->pExpr==pX ){  | 
 
| 
135917
 | 
 0  | 
 0  | 
     for(i=iEq;inLTerm; i++){  | 
 
| 
135919
 | 
 0  | 
 0  | 
       if( pLoop->aLTerm[i]->pExpr==pX ) nEq++;  | 
 
| 
135922
 | 
 0  | 
 0  | 
     if( (pX->flags & EP_xIsSelect)==0 || pX->x.pSelect->pEList->nExpr==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (pX->flags & EP_xIsSelect)==0 || pX->x.pSelect->pEList->nExpr==1 ){  | 
 
| 
135928
 | 
 0  | 
 0  | 
       if( !db->mallocFailed ){  | 
 
| 
135937
 | 
 0  | 
 0  | 
     if( eType==IN_INDEX_INDEX_DESC ){  | 
 
| 
135942
 | 
 0  | 
 0  | 
     sqlite3VdbeAddOp2(v, bRev ? OP_Last : OP_Rewind, iTab, 0);  | 
 
| 
135948
 | 
 0  | 
 0  | 
     if( pLevel->u.in.nIn==0 ){  | 
 
| 
135958
 | 
 0  | 
 0  | 
     if( pIn ){  | 
 
| 
135961
 | 
 0  | 
 0  | 
       for(i=iEq;inLTerm; i++){  | 
 
| 
135962
 | 
 0  | 
 0  | 
         if( pLoop->aLTerm[i]->pExpr==pX ){  | 
 
| 
135964
 | 
 0  | 
 0  | 
           if( eType==IN_INDEX_ROWID ){  | 
 
| 
135968
 | 
 0  | 
 0  | 
             int iCol = aiMap ? aiMap[iMap++] : 0;  | 
 
| 
135972
 | 
 0  | 
 0  | 
           if( i==iEq ){  | 
 
| 
135974
 | 
 0  | 
 0  | 
             pIn->eEndLoopOp = bRev ? OP_Prev : OP_Next;  | 
 
| 
135975
 | 
 0  | 
 0  | 
             if( iEq>0 && (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
             if( iEq>0 && (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0 ){  | 
 
| 
136078
 | 
 0  | 
 39  | 
   if( nSkip ){  | 
 
| 
136080
 | 
 0  | 
 0  | 
     sqlite3VdbeAddOp1(v, (bRev?OP_Last:OP_Rewind), iIdxCur);  | 
 
| 
136085
 | 
 0  | 
 0  | 
     pLevel->addrSkip = sqlite3VdbeAddOp4Int(v, (bRev?OP_SeekLT:OP_SeekGT),  | 
 
| 
136090
 | 
 0  | 
 0  | 
     for(j=0; j
 | 
 
| 
136100
 | 
 29  | 
 39  | 
   for(j=nSkip; j
 | 
 
| 
136109
 | 
 0  | 
 29  | 
     if( r1!=regBase+j ){  | 
 
| 
136110
 | 
 0  | 
 0  | 
       if( nReg==1 ){  | 
 
| 
136117
 | 
 0  | 
 29  | 
     if( pTerm->eOperator & WO_IN ){  | 
 
| 
136118
 | 
 0  | 
 0  | 
       if( pTerm->pExpr->flags & EP_xIsSelect ){  | 
 
| 
136123
 | 
 0  | 
 0  | 
         if( zAff ) zAff[j] = SQLITE_AFF_BLOB;  | 
 
| 
136125
 | 
 27  | 
 2  | 
     }else if( (pTerm->eOperator & WO_ISNULL)==0 ){  | 
 
| 
136127
 | 
 27  | 
 0  | 
       if( (pTerm->wtFlags & TERM_IS)==0 && sqlite3ExprCanBeNull(pRight) ){  | 
 
| 
 | 
 21  | 
 6  | 
       if( (pTerm->wtFlags & TERM_IS)==0 && sqlite3ExprCanBeNull(pRight) ){  | 
 
| 
136131
 | 
 27  | 
 0  | 
       if( zAff ){  | 
 
| 
136132
 | 
 5  | 
 22  | 
         if( sqlite3CompareAffinity(pRight, zAff[j])==SQLITE_AFF_BLOB ){  | 
 
| 
136135
 | 
 11  | 
 16  | 
         if( sqlite3ExprNeedsNoAffinityChange(pRight, zAff[j]) ){  | 
 
| 
136168
 | 
 0  | 
 31  | 
   if( pTerm->wtFlags & TERM_LIKEOPT ){  | 
 
| 
136428
 | 
 4  | 
 19  | 
   if( (pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE)  | 
 
| 
136429
 | 
 0  | 
 4  | 
    && DbMaskAllZero(sqlite3ParseToplevel(pParse)->writeMask)  | 
 
| 
 | 
 4  | 
 0  | 
    && DbMaskAllZero(sqlite3ParseToplevel(pParse)->writeMask)  | 
 
| 
136434
 | 
 4  | 
 0  | 
     if( ai ){  | 
 
| 
136436
 | 
 4  | 
 4  | 
       for(i=0; inColumn-1; i++){  | 
 
| 
136438
 | 
 4  | 
 0  | 
         if( pIdx->aiColumn[i]>=0 ) ai[pIdx->aiColumn[i]+1] = i+1;  | 
 
| 
136456
 | 
 91  | 
 0  | 
   if( p && sqlite3ExprIsVector(p) ){  | 
 
| 
 | 
 0  | 
 91  | 
   if( p && sqlite3ExprIsVector(p) ){  | 
 
| 
136458
 | 
 0  | 
 0  | 
     if( (p->flags & EP_xIsSelect) ){  | 
 
| 
136468
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
136497
 | 
 0  | 
 0  | 
   if( sqlite3ExprCompare(0, pExpr, pX->pIdxExpr, pX->iTabCur)==0 ){  | 
 
| 
136524
 | 
 39  | 
 0  | 
   if( aColExpr==0 ) return;  /* Not an index on expressions */  | 
 
| 
136530
 | 
 0  | 
 0  | 
   for(iIdxCol=0; iIdxColnExpr; iIdxCol++){  | 
 
| 
136531
 | 
 0  | 
 0  | 
     if( pIdx->aiColumn[iIdxCol]!=XN_EXPR ) continue;  | 
 
| 
136582
 | 
 12  | 
 1377  | 
            && (pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE)==0;  | 
 
| 
 | 
 8  | 
 4  | 
            && (pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE)==0;  | 
 
| 
136605
 | 
 3  | 
 1386  | 
   if( pLevel->iFrom>0 && (pTabItem[0].fg.jointype & JT_LEFT)!=0 ){  | 
 
| 
 | 
 0  | 
 3  | 
   if( pLevel->iFrom>0 && (pTabItem[0].fg.jointype & JT_LEFT)!=0 ){  | 
 
| 
136613
 | 
 3  | 
 1389  | 
   for(j=iLevel; j>0 && pWInfo->a[j].iLeftJoin==0; j--){}  | 
 
| 
 | 
 3  | 
 0  | 
   for(j=iLevel; j>0 && pWInfo->a[j].iLeftJoin==0; j--){}  | 
 
| 
136617
 | 
 22  | 
 1367  | 
   if( pTabItem->fg.viaCoroutine ){  | 
 
| 
136627
 | 
 43  | 
 1324  | 
   if(  (pLoop->wsFlags & WHERE_VIRTUALTABLE)!=0 ){  | 
 
| 
136638
 | 
 60  | 
 43  | 
     for(j=0; j
 | 
 
| 
136641
 | 
 0  | 
 60  | 
       if( NEVER(pTerm==0) ) continue;  | 
 
| 
136642
 | 
 0  | 
 60  | 
       if( pTerm->eOperator & WO_IN ){  | 
 
| 
136652
 | 
 6  | 
 37  | 
     sqlite3VdbeAddOp4(v, OP_VFilter, iCur, addrNotFound, iReg,  | 
 
| 
136658
 | 
 0  | 
 43  | 
     pLevel->op = pWInfo->eOnePass ? OP_Noop : OP_VNext;  | 
 
| 
136661
 | 
 60  | 
 43  | 
     for(j=nConstraint-1; j>=0; j--){  | 
 
| 
136663
 | 
 60  | 
 0  | 
       if( j<16 && (pLoop->u.vtab.omitMask>>j)&1 ){  | 
 
| 
 | 
 60  | 
 0  | 
       if( j<16 && (pLoop->u.vtab.omitMask>>j)&1 ){  | 
 
| 
136665
 | 
 0  | 
 0  | 
       }else if( (pTerm->eOperator & WO_IN)!=0 ){  | 
 
| 
136675
 | 
 0  | 
 0  | 
         if( !db->mallocFailed ){  | 
 
| 
136689
 | 
 0  | 
 0  | 
         if( pCompare ){  | 
 
| 
136692
 | 
 0  | 
 0  | 
           if( pRight ){  | 
 
| 
136711
 | 
 1283  | 
 41  | 
   if( (pLoop->wsFlags & WHERE_IPK)!=0  | 
 
| 
136712
 | 
 430  | 
 853  | 
    && (pLoop->wsFlags & (WHERE_COLUMN_IN|WHERE_COLUMN_EQ))!=0  | 
 
| 
136727
 | 
 225  | 
 205  | 
     if( iRowidReg!=iReleaseReg ) sqlite3ReleaseTempReg(pParse, iReleaseReg);  | 
 
| 
136732
 | 
 853  | 
 41  | 
   }else if( (pLoop->wsFlags & WHERE_IPK)!=0  | 
 
| 
136733
 | 
 0  | 
 853  | 
          && (pLoop->wsFlags & WHERE_COLUMN_RANGE)!=0  | 
 
| 
136745
 | 
 0  | 
 0  | 
     if( pLoop->wsFlags & WHERE_BTM_LIMIT ) pStart = pLoop->aLTerm[j++];  | 
 
| 
136746
 | 
 0  | 
 0  | 
     if( pLoop->wsFlags & WHERE_TOP_LIMIT ) pEnd = pLoop->aLTerm[j++];  | 
 
| 
136748
 | 
 0  | 
 0  | 
     if( bRev ){  | 
 
| 
136754
 | 
 0  | 
 0  | 
     if( pStart ){  | 
 
| 
136777
 | 
 0  | 
 0  | 
       if( sqlite3ExprIsVector(pX->pRight) ){  | 
 
| 
136802
 | 
 0  | 
 0  | 
       sqlite3VdbeAddOp2(v, bRev ? OP_Last : OP_Rewind, iCur, addrHalt);  | 
 
| 
136806
 | 
 0  | 
 0  | 
     if( pEnd ){  | 
 
| 
136815
 | 
 0  | 
 0  | 
       if( 0==sqlite3ExprIsVector(pX->pRight)   | 
 
| 
136816
 | 
 0  | 
 0  | 
        && (pX->op==TK_LT || pX->op==TK_GT)   | 
 
| 
 | 
 0  | 
 0  | 
        && (pX->op==TK_LT || pX->op==TK_GT)   | 
 
| 
136818
 | 
 0  | 
 0  | 
         testOp = bRev ? OP_Le : OP_Ge;  | 
 
| 
136820
 | 
 0  | 
 0  | 
         testOp = bRev ? OP_Lt : OP_Gt;  | 
 
| 
136822
 | 
 0  | 
 0  | 
       if( 0==sqlite3ExprIsVector(pX->pRight) ){  | 
 
| 
136827
 | 
 0  | 
 0  | 
     pLevel->op = bRev ? OP_Prev : OP_Next;  | 
 
| 
136831
 | 
 0  | 
 0  | 
     if( testOp!=OP_Noop ){  | 
 
| 
136841
 | 
 39  | 
 855  | 
   }else if( pLoop->wsFlags & WHERE_INDEXED ){  | 
 
| 
136922
 | 
 0  | 
 39  | 
     if( (pWInfo->wctrlFlags&WHERE_ORDERBY_MIN)!=0  | 
 
| 
136923
 | 
 0  | 
 0  | 
      && pWInfo->nOBSat>0  | 
 
| 
136924
 | 
 0  | 
 0  | 
      && (pIdx->nKeyCol>nEq)  | 
 
| 
136935
 | 
 16  | 
 23  | 
     if( pLoop->wsFlags & WHERE_BTM_LIMIT ){  | 
 
| 
136942
 | 
 15  | 
 24  | 
     if( pLoop->wsFlags & WHERE_TOP_LIMIT ){  | 
 
| 
136946
 | 
 0  | 
 15  | 
       if( (pRangeEnd->wtFlags & TERM_LIKEOPT)!=0 ){  | 
 
| 
136962
 | 
 1  | 
 14  | 
       if( pRangeStart==0 ){  | 
 
| 
136964
 | 
 1  | 
 0  | 
         if( (j>=0 && pIdx->pTable->aCol[j].notNull==0) || j==XN_EXPR ){  | 
 
| 
 | 
 0  | 
 1  | 
         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 ){  | 
 
| 
136975
 | 
 30  | 
 9  | 
     if( (nEqnKeyCol && bRev==(pIdx->aSortOrder[nEq]==SQLITE_SO_ASC))  | 
 
| 
 | 
 9  | 
 21  | 
     if( (nEqnKeyCol && bRev==(pIdx->aSortOrder[nEq]==SQLITE_SO_ASC))  | 
 
| 
136976
 | 
 0  | 
 18  | 
      || (bRev && pIdx->nKeyCol==nEq)  | 
 
| 
 | 
 0  | 
 0  | 
      || (bRev && pIdx->nKeyCol==nEq)  | 
 
| 
136990
 | 
 39  | 
 0  | 
     if( zStartAff && nTop ){  | 
 
| 
 | 
 15  | 
 24  | 
     if( zStartAff && nTop ){  | 
 
| 
136999
 | 
 16  | 
 23  | 
     startEq = !pRangeStart || pRangeStart->eOperator & (WO_LE|WO_GE);  | 
 
| 
 | 
 14  | 
 2  | 
     startEq = !pRangeStart || pRangeStart->eOperator & (WO_LE|WO_GE);  | 
 
| 
137000
 | 
 15  | 
 24  | 
     endEq =   !pRangeEnd || pRangeEnd->eOperator & (WO_LE|WO_GE);  | 
 
| 
 | 
 14  | 
 1  | 
     endEq =   !pRangeEnd || pRangeEnd->eOperator & (WO_LE|WO_GE);  | 
 
| 
137001
 | 
 23  | 
 16  | 
     start_constraints = pRangeStart || nEq>0;  | 
 
| 
 | 
 22  | 
 1  | 
     start_constraints = pRangeStart || nEq>0;  | 
 
| 
137005
 | 
 16  | 
 23  | 
     if( pRangeStart ){  | 
 
| 
137009
 | 
 14  | 
 2  | 
       if( (pRangeStart->wtFlags & TERM_VNULL)==0  | 
 
| 
137015
 | 
 16  | 
 0  | 
       if( zStartAff ){  | 
 
| 
137020
 | 
 16  | 
 0  | 
       if( sqlite3ExprIsVector(pRight)==0 ){  | 
 
| 
137026
 | 
 1  | 
 22  | 
     }else if( bSeekPastNull ){  | 
 
| 
137033
 | 
 0  | 
 39  | 
     if( pLoop->nSkip>0 && nConstraint==pLoop->nSkip ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pLoop->nSkip>0 && nConstraint==pLoop->nSkip ){  | 
 
| 
137038
 | 
 0  | 
 39  | 
       if( pLoop->wsFlags & WHERE_IN_EARLYOUT ){  | 
 
| 
137057
 | 
 15  | 
 24  | 
     if( pRangeEnd ){  | 
 
| 
137061
 | 
 15  | 
 0  | 
       if( (pRangeEnd->wtFlags & TERM_VNULL)==0  | 
 
| 
137067
 | 
 15  | 
 0  | 
       if( zEndAff ){  | 
 
| 
137076
 | 
 15  | 
 0  | 
       if( sqlite3ExprIsVector(pRight)==0 ){  | 
 
| 
137081
 | 
 0  | 
 24  | 
     }else if( bStopAtNull ){  | 
 
| 
137093
 | 
 39  | 
 0  | 
     if( nConstraint ){  | 
 
| 
137102
 | 
 0  | 
 39  | 
     if( pLoop->wsFlags & WHERE_IN_EARLYOUT ){  | 
 
| 
137107
 | 
 31  | 
 8  | 
     if( omitTable ){  | 
 
| 
137109
 | 
 31  | 
 0  | 
     }else if( HasRowid(pIdx->pTable) ){  | 
 
| 
137110
 | 
 23  | 
 8  | 
       if( (pWInfo->wctrlFlags & WHERE_SEEK_TABLE) || (  | 
 
| 
 | 
 0  | 
 23  | 
       if( (pWInfo->wctrlFlags & WHERE_SEEK_TABLE) || (  | 
 
| 
137112
 | 
 0  | 
 0  | 
        && (pWInfo->eOnePass==ONEPASS_SINGLE)  | 
 
| 
137121
 | 
 0  | 
 0  | 
     }else if( iCur!=iIdxCur ){  | 
 
| 
137124
 | 
 0  | 
 0  | 
       for(j=0; jnKeyCol; j++){  | 
 
| 
137142
 | 
 39  | 
 0  | 
     if( pLevel->iLeftJoin==0 ){  | 
 
| 
137147
 | 
 6  | 
 33  | 
     if( pLoop->wsFlags & WHERE_ONEROW ){  | 
 
| 
137149
 | 
 21  | 
 12  | 
     }else if( bRev ){  | 
 
| 
137156
 | 
 0  | 
 39  | 
     if( (pLoop->wsFlags & WHERE_CONSTRAINT)==0 ){  | 
 
| 
137161
 | 
 8  | 
 31  | 
     if( omitTable ) pIdx = 0;  | 
 
| 
137165
 | 
 2  | 
 853  | 
   if( pLoop->wsFlags & WHERE_MULTI_OR ){  | 
 
| 
137237
 | 
 0  | 
 2  | 
     if( pWInfo->nLevel>1 ){  | 
 
| 
137243
 | 
 0  | 
 0  | 
       if( pOrTab==0 ) return notReady;  | 
 
| 
137248
 | 
 0  | 
 0  | 
       for(k=1; k<=nNotReady; k++){  | 
 
| 
137267
 | 
 2  | 
 0  | 
     if( (pWInfo->wctrlFlags & WHERE_DUPLICATES_OK)==0 ){  | 
 
| 
137268
 | 
 2  | 
 0  | 
       if( HasRowid(pTab) ){  | 
 
| 
137295
 | 
 1  | 
 1  | 
     if( pWC->nTerm>1 ){  | 
 
| 
137297
 | 
 3  | 
 1  | 
       for(iTerm=0; iTermnTerm; iTerm++){  | 
 
| 
137299
 | 
 1  | 
 2  | 
         if( &pWC->a[iTerm] == pTerm ) continue;  | 
 
| 
137302
 | 
 1  | 
 1  | 
         if( (pWC->a[iTerm].wtFlags & (TERM_VIRTUAL|TERM_CODED))!=0 ) continue;  | 
 
| 
137303
 | 
 0  | 
 1  | 
         if( (pWC->a[iTerm].eOperator & WO_ALL)==0 ) continue;  | 
 
| 
137308
 | 
 1  | 
 0  | 
       if( pAndExpr ){  | 
 
| 
137319
 | 
 6  | 
 2  | 
     for(ii=0; iinTerm; ii++){  | 
 
| 
137321
 | 
 5  | 
 1  | 
       if( pOrTerm->leftCursor==iCur || (pOrTerm->eOperator & WO_AND)!=0 ){  | 
 
| 
 | 
 4  | 
 1  | 
       if( pOrTerm->leftCursor==iCur || (pOrTerm->eOperator & WO_AND)!=0 ){  | 
 
| 
137328
 | 
 2  | 
 3  | 
         if( pAndExpr ){  | 
 
| 
137337
 | 
 5  | 
 0  | 
         if( pSubWInfo ){  | 
 
| 
137349
 | 
 5  | 
 0  | 
           if( (pWInfo->wctrlFlags & WHERE_DUPLICATES_OK)==0 ){  | 
 
| 
137350
 | 
 3  | 
 2  | 
             int iSet = ((ii==pOrWc->nTerm-1)?-1:ii);  | 
 
| 
137351
 | 
 5  | 
 0  | 
             if( HasRowid(pTab) ){  | 
 
| 
137364
 | 
 0  | 
 0  | 
               for(iPk=0; iPk
 | 
 
| 
137380
 | 
 0  | 
 0  | 
               if( iSet ){  | 
 
| 
137384
 | 
 0  | 
 0  | 
               if( iSet>=0 ){  | 
 
| 
137388
 | 
 0  | 
 0  | 
                 if( iSet ) sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT);  | 
 
| 
137401
 | 
 5  | 
 0  | 
           if( jmp1 ) sqlite3VdbeJumpHere(v, jmp1);  | 
 
| 
137408
 | 
 0  | 
 5  | 
           if( pSubWInfo->untestedTerms ) untestedTerms = 1;  | 
 
| 
137424
 | 
 4  | 
 1  | 
           if( (pSubLoop->wsFlags & WHERE_INDEXED)!=0  | 
 
| 
137425
 | 
 3  | 
 1  | 
            && (ii==0 || pSubLoop->u.btree.pIndex==pCov)  | 
 
| 
 | 
 1  | 
 2  | 
            && (ii==0 || pSubLoop->u.btree.pIndex==pCov)  | 
 
| 
137426
 | 
 0  | 
 2  | 
            && (HasRowid(pTab) || !IsPrimaryKeyIndex(pSubLoop->u.btree.pIndex))  | 
 
| 
 | 
 0  | 
 0  | 
            && (HasRowid(pTab) || !IsPrimaryKeyIndex(pSubLoop->u.btree.pIndex))  | 
 
| 
137441
 | 
 0  | 
 2  | 
     if( pCov ) pLevel->iIdxCur = iCovCur;  | 
 
| 
137442
 | 
 1  | 
 1  | 
     if( pAndExpr ){  | 
 
| 
137450
 | 
 0  | 
 2  | 
     if( pWInfo->nLevel>1 ) sqlite3StackFree(db, pOrTab);  | 
 
| 
137451
 | 
 2  | 
 0  | 
     if( !untestedTerms ) disableTerm(pLevel, pTerm);  | 
 
| 
137462
 | 
 0  | 
 853  | 
     if( pTabItem->fg.isRecursive ){  | 
 
| 
137495
 | 
 31  | 
 1358  | 
   iLoop = (pIdx ? 1 : 2);  | 
 
| 
137498
 | 
 1513  | 
 1391  | 
     for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){  | 
 
| 
137503
 | 
 781  | 
 732  | 
       if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;  | 
 
| 
137504
 | 
 3  | 
 729  | 
       if( (pTerm->prereqAll & pLevel->notReady)!=0 ){  | 
 
| 
137512
 | 
 0  | 
 729  | 
       if( (pTabItem->fg.jointype&JT_LEFT) && !ExprHasProperty(pE,EP_FromJoin) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( (pTabItem->fg.jointype&JT_LEFT) && !ExprHasProperty(pE,EP_FromJoin) ){  | 
 
| 
137516
 | 
 1  | 
 728  | 
       if( iLoop==1 && !sqlite3ExprCoveredByIndex(pE, pLevel->iTabCur, pIdx) ){  | 
 
| 
 | 
 0  | 
 1  | 
       if( iLoop==1 && !sqlite3ExprCoveredByIndex(pE, pLevel->iTabCur, pIdx) ){  | 
 
| 
137520
 | 
 727  | 
 2  | 
       if( iLoop<3 && (pTerm->wtFlags & TERM_VARSELECT) ){  | 
 
| 
 | 
 2  | 
 725  | 
       if( iLoop<3 && (pTerm->wtFlags & TERM_VARSELECT) ){  | 
 
| 
137521
 | 
 2  | 
 0  | 
         if( iNext==0 ) iNext = 3;  | 
 
| 
137525
 | 
 0  | 
 727  | 
       if( (pTerm->wtFlags & TERM_LIKECOND)!=0 ){  | 
 
| 
137535
 | 
 0  | 
 0  | 
         if( x>0 ){  | 
 
| 
137536
 | 
 0  | 
 0  | 
           skipLikeAddr = sqlite3VdbeAddOp1(v, (x&1)?OP_IfNot:OP_If,(int)(x>>1));  | 
 
| 
137548
 | 
 0  | 
 727  | 
       if( skipLikeAddr ) sqlite3VdbeJumpHere(v, skipLikeAddr);  | 
 
| 
137552
 | 
 2  | 
 1389  | 
   }while( iLoop>0 );  | 
 
| 
137562
 | 
 1511  | 
 1389  | 
   for(pTerm=pWC->a, j=pWC->nTerm; j>0; j--, pTerm++){  | 
 
| 
137565
 | 
 1508  | 
 3  | 
     if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;  | 
 
| 
137566
 | 
 0  | 
 3  | 
     if( (pTerm->eOperator & (WO_EQ|WO_IS))==0 ) continue;  | 
 
| 
137567
 | 
 0  | 
 3  | 
     if( (pTerm->eOperator & WO_EQUIV)==0 ) continue;  | 
 
| 
137568
 | 
 2  | 
 1  | 
     if( pTerm->leftCursor!=iCur ) continue;  | 
 
| 
137569
 | 
 0  | 
 1  | 
     if( pLevel->iLeftJoin ) continue;  | 
 
| 
137575
 | 
 1  | 
 0  | 
     if( pAlt==0 ) continue;  | 
 
| 
137576
 | 
 0  | 
 0  | 
     if( pAlt->wtFlags & (TERM_CODED) ) continue;  | 
 
| 
137577
 | 
 0  | 
 0  | 
     if( (pAlt->eOperator & WO_IN)   | 
 
| 
137578
 | 
 0  | 
 0  | 
      && (pAlt->pExpr->flags & EP_xIsSelect)  | 
 
| 
137579
 | 
 0  | 
 0  | 
      && (pAlt->pExpr->x.pSelect->pEList->nExpr>1)  | 
 
| 
137595
 | 
 0  | 
 1389  | 
   if( pLevel->iLeftJoin ){  | 
 
| 
137599
 | 
 0  | 
 0  | 
     for(pTerm=pWC->a, j=0; jnTerm; j++, pTerm++){  | 
 
| 
137602
 | 
 0  | 
 0  | 
       if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue;  | 
 
| 
137603
 | 
 0  | 
 0  | 
       if( (pTerm->prereqAll & pLevel->notReady)!=0 ){  | 
 
| 
137681
 | 
 0  | 
 1670  | 
   if( pWC->nTerm>=pWC->nSlot ){  | 
 
| 
137685
 | 
 0  | 
 0  | 
     if( pWC->a==0 ){  | 
 
| 
137686
 | 
 0  | 
 0  | 
       if( wtFlags & TERM_DYNAMIC ){  | 
 
| 
137693
 | 
 0  | 
 0  | 
     if( pOld!=pWC->aStatic ){  | 
 
| 
137699
 | 
 1670  | 
 0  | 
   if( p && ExprHasProperty(p, EP_Unlikely) ){  | 
 
| 
 | 
 0  | 
 1670  | 
   if( p && ExprHasProperty(p, EP_Unlikely) ){  | 
 
| 
137723
 | 
 1629  | 
 16  | 
   return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;  | 
 
| 
 | 
 1340  | 
 289  | 
   return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;  | 
 
| 
 | 
 173  | 
 1167  | 
   return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;  | 
 
| 
 | 
 438  | 
 24  | 
   return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;  | 
 
| 
 | 
 0  | 
 438  | 
   return op==TK_IN || (op>=TK_EQ && op<=TK_GE) || op==TK_ISNULL || op==TK_IS;  | 
 
| 
137742
 | 
 14  | 
 1  | 
   if( expRight==expLeft ){  | 
 
| 
137744
 | 
 0  | 
 14  | 
     if( expRight ){  | 
 
| 
137748
 | 
 7  | 
 7  | 
     }else if( sqlite3ExprCollSeq(pParse, pExpr->pLeft)!=0 ){  | 
 
| 
137756
 | 
 8  | 
 7  | 
   if( pExpr->op>=TK_GT ){  | 
 
| 
137772
 | 
 16  | 
 1074  | 
   if( op==TK_IN ){  | 
 
| 
137774
 | 
 16  | 
 1058  | 
   }else if( op==TK_ISNULL ){  | 
 
| 
137776
 | 
 0  | 
 1058  | 
   }else if( op==TK_IS ){  | 
 
| 
137825
 | 
 1492  | 
 117  | 
   if( !sqlite3IsLikeFunction(db, pExpr, pnoCase, (char*)wc) ){  | 
 
| 
137836
 | 
 0  | 
 117  | 
   if( op==TK_VARIABLE && (db->flags & SQLITE_EnableQPSG)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( op==TK_VARIABLE && (db->flags & SQLITE_EnableQPSG)==0 ){  | 
 
| 
137840
 | 
 0  | 
 0  | 
     if( pVal && sqlite3_value_type(pVal)==SQLITE_TEXT ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pVal && sqlite3_value_type(pVal)==SQLITE_TEXT ){  | 
 
| 
137845
 | 
 117  | 
 0  | 
   }else if( op==TK_STRING ){  | 
 
| 
137848
 | 
 117  | 
 0  | 
   if( z ){  | 
 
| 
137852
 | 
 372  | 
 111  | 
     while( (c=z[cnt])!=0 && c!=wc[0] && c!=wc[1] && c!=wc[2] ){  | 
 
| 
 | 
 366  | 
 6  | 
     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] ){  | 
 
| 
137854
 | 
 0  | 
 366  | 
       if( c==wc[3] && z[cnt]!=0 ) cnt++;  | 
 
| 
 | 
 0  | 
 0  | 
       if( c==wc[3] && z[cnt]!=0 ) cnt++;  | 
 
| 
137865
 | 
 117  | 
 0  | 
     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]) ){  | 
 
| 
137869
 | 
 6  | 
 111  | 
       *pisComplete = c==wc[0] && z[cnt+1]==0;  | 
 
| 
 | 
 6  | 
 0  | 
       *pisComplete = c==wc[0] && z[cnt+1]==0;  | 
 
| 
137873
 | 
 117  | 
 0  | 
       if( pPrefix ){  | 
 
| 
137877
 | 
 366  | 
 117  | 
         for(iFrom=iTo=0; iFrom
 | 
 
| 
137878
 | 
 0  | 
 366  | 
           if( zNew[iFrom]==wc[3] ) iFrom++;  | 
 
| 
137895
 | 
 117  | 
 0  | 
         if( sqlite3Isdigit(zNew[0])  | 
 
| 
137896
 | 
 117  | 
 0  | 
          || zNew[0]=='-'  | 
 
| 
137897
 | 
 0  | 
 117  | 
          || (zNew[0]+1=='0' && iTo==1)  | 
 
| 
 | 
 0  | 
 0  | 
          || (zNew[0]+1=='0' && iTo==1)  | 
 
| 
137899
 | 
 0  | 
 0  | 
           if( pLeft->op!=TK_COLUMN   | 
 
| 
137900
 | 
 0  | 
 0  | 
            || sqlite3ExprAffinity(pLeft)!=SQLITE_AFF_TEXT   | 
 
| 
137901
 | 
 0  | 
 0  | 
            || IsVirtual(pLeft->y.pTab)  /* Value might be numeric */  | 
 
| 
137913
 | 
 0  | 
 117  | 
       if( op==TK_VARIABLE ){  | 
 
| 
137916
 | 
 0  | 
 0  | 
         if( *pisComplete && pRight->u.zToken[1] ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( *pisComplete && pRight->u.zToken[1] ){  | 
 
| 
137975
 | 
 167  | 
 1442  | 
   if( pExpr->op==TK_FUNCTION ){  | 
 
| 
137990
 | 
 167  | 
 0  | 
     if( pList==0 || pList->nExpr!=2 ){  | 
 
| 
 | 
 0  | 
 167  | 
     if( pList==0 || pList->nExpr!=2 ){  | 
 
| 
138002
 | 
 116  | 
 51  | 
     if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){  | 
 
| 
 | 
 34  | 
 82  | 
     if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){  | 
 
| 
138003
 | 
 34  | 
 0  | 
       for(i=0; i
 | 
 
| 
138004
 | 
 34  | 
 0  | 
         if( sqlite3StrICmp(pExpr->u.zToken, aOp[i].zOp)==0 ){  | 
 
| 
138024
 | 
 0  | 
 133  | 
     if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pCol->op==TK_COLUMN && IsVirtual(pCol->y.pTab) ){  | 
 
| 
138033
 | 
 0  | 
 0  | 
       if( pMod->xFindFunction!=0 ){  | 
 
| 
138035
 | 
 0  | 
 0  | 
         if( i>=SQLITE_INDEX_CONSTRAINT_FUNCTION ){  | 
 
| 
138043
 | 
 1234  | 
 208  | 
   }else if( pExpr->op==TK_NE || pExpr->op==TK_ISNOT || pExpr->op==TK_NOTNULL ){  | 
 
| 
 | 
 1233  | 
 1  | 
   }else if( pExpr->op==TK_NE || pExpr->op==TK_ISNOT || pExpr->op==TK_NOTNULL ){  | 
 
| 
 | 
 9  | 
 1224  | 
   }else if( pExpr->op==TK_NE || pExpr->op==TK_ISNOT || pExpr->op==TK_NOTNULL ){  | 
 
| 
138047
 | 
 218  | 
 0  | 
     if( pLeft->op==TK_COLUMN && IsVirtual(pLeft->y.pTab) ){  | 
 
| 
 | 
 0  | 
 218  | 
     if( pLeft->op==TK_COLUMN && IsVirtual(pLeft->y.pTab) ){  | 
 
| 
138050
 | 
 209  | 
 9  | 
     if( pRight && pRight->op==TK_COLUMN && IsVirtual(pRight->y.pTab) ){  | 
 
| 
 | 
 0  | 
 209  | 
     if( pRight && pRight->op==TK_COLUMN && IsVirtual(pRight->y.pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pRight && pRight->op==TK_COLUMN && IsVirtual(pRight->y.pTab) ){  | 
 
| 
138056
 | 
 208  | 
 10  | 
     if( pExpr->op==TK_NE ) *peOp2 = SQLITE_INDEX_CONSTRAINT_NE;  | 
 
| 
138057
 | 
 1  | 
 217  | 
     if( pExpr->op==TK_ISNOT ) *peOp2 = SQLITE_INDEX_CONSTRAINT_ISNOT;  | 
 
| 
138058
 | 
 9  | 
 209  | 
     if( pExpr->op==TK_NOTNULL ) *peOp2 = SQLITE_INDEX_CONSTRAINT_ISNOTNULL;  | 
 
| 
138070
 | 
 262  | 
 0  | 
   if( pDerived ){  | 
 
| 
138091
 | 
 0  | 
 0  | 
   if( pTerm->eOperator!=WO_AND ){  | 
 
| 
138092
 | 
 0  | 
 0  | 
     return N==0 ? pTerm : 0;  | 
 
| 
138094
 | 
 0  | 
 0  | 
   if( Nu.pAndInfo->wc.nTerm ){  | 
 
| 
138132
 | 
 0  | 
 0  | 
   if( (pOne->eOperator & (WO_EQ|WO_LT|WO_LE|WO_GT|WO_GE))==0 ) return;  | 
 
| 
138133
 | 
 0  | 
 0  | 
   if( (pTwo->eOperator & (WO_EQ|WO_LT|WO_LE|WO_GT|WO_GE))==0 ) return;  | 
 
| 
138134
 | 
 0  | 
 0  | 
   if( (eOp & (WO_EQ|WO_LT|WO_LE))!=eOp  | 
 
| 
138135
 | 
 0  | 
 0  | 
    && (eOp & (WO_EQ|WO_GT|WO_GE))!=eOp ) return;  | 
 
| 
138138
 | 
 0  | 
 0  | 
   if( sqlite3ExprCompare(0,pOne->pExpr->pLeft, pTwo->pExpr->pLeft, -1) ) return;  | 
 
| 
138139
 | 
 0  | 
 0  | 
   if( sqlite3ExprCompare(0,pOne->pExpr->pRight, pTwo->pExpr->pRight,-1) )return;  | 
 
| 
138141
 | 
 0  | 
 0  | 
   if( (eOp & (eOp-1))!=0 ){  | 
 
| 
138142
 | 
 0  | 
 0  | 
     if( eOp & (WO_LT|WO_LE) ){  | 
 
| 
138151
 | 
 0  | 
 0  | 
   if( pNew==0 ) return;  | 
 
| 
138152
 | 
 0  | 
 0  | 
   for(op=TK_EQ; eOp!=(WO_EQ<<(op-TK_EQ)); op++){ assert( op
 | 
 
| 
138271
 | 
 0  | 
 5  | 
   if( pOrInfo==0 ) return;  | 
 
| 
138278
 | 
 0  | 
 5  | 
   if( db->mallocFailed ) return;  | 
 
| 
138286
 | 
 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++){  | 
 
| 
138287
 | 
 9  | 
 6  | 
     if( (pOrTerm->eOperator & WO_SINGLE)==0 ){  | 
 
| 
138292
 | 
 9  | 
 0  | 
       if( pAndInfo ){  | 
 
| 
138306
 | 
 9  | 
 0  | 
         if( !db->mallocFailed ){  | 
 
| 
138307
 | 
 24  | 
 9  | 
           for(j=0, pAndTerm=pAndWC->a; jnTerm; j++, pAndTerm++){  | 
 
| 
138309
 | 
 8  | 
 16  | 
             if( allowedOp(pAndTerm->pExpr->op)   | 
 
| 
138310
 | 
 0  | 
 8  | 
              || pAndTerm->eOperator==WO_AUX  | 
 
| 
138318
 | 
 3  | 
 3  | 
     }else if( pOrTerm->wtFlags & TERM_COPIED ){  | 
 
| 
138324
 | 
 3  | 
 0  | 
       if( pOrTerm->wtFlags & TERM_VIRTUAL ){  | 
 
| 
138329
 | 
 0  | 
 3  | 
       if( (pOrTerm->eOperator & WO_EQ)==0 ){  | 
 
| 
138342
 | 
 5  | 
 0  | 
   if( indexable ){  | 
 
| 
138351
 | 
 5  | 
 0  | 
   if( indexable && pOrWc->nTerm==2 ){  | 
 
| 
 | 
 0  | 
 5  | 
   if( indexable && pOrWc->nTerm==2 ){  | 
 
| 
138354
 | 
 0  | 
 0  | 
     while( (pOne = whereNthSubterm(&pOrWc->a[0],iOne++))!=0 ){  | 
 
| 
138357
 | 
 0  | 
 0  | 
       while( (pTwo = whereNthSubterm(&pOrWc->a[1],iTwo++))!=0 ){  | 
 
| 
138384
 | 
 0  | 
 5  | 
   if( chngToIN ){  | 
 
| 
138396
 | 
 0  | 
 0  | 
     for(j=0; j<2 && !okToChngToIN; j++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(j=0; j<2 && !okToChngToIN; j++){  | 
 
| 
138398
 | 
 0  | 
 0  | 
       for(i=pOrWc->nTerm-1; i>=0; i--, pOrTerm++){  | 
 
| 
138401
 | 
 0  | 
 0  | 
         if( pOrTerm->leftCursor==iCursor ){  | 
 
| 
138407
 | 
 0  | 
 0  | 
         if( (chngToIN & sqlite3WhereGetMask(&pWInfo->sMaskSet,  | 
 
| 
138422
 | 
 0  | 
 0  | 
       if( i<0 ){  | 
 
| 
138435
 | 
 0  | 
 0  | 
       for(; i>=0 && okToChngToIN; i--, pOrTerm++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(; i>=0 && okToChngToIN; i--, pOrTerm++){  | 
 
| 
138437
 | 
 0  | 
 0  | 
         if( pOrTerm->leftCursor!=iCursor ){  | 
 
| 
138439
 | 
 0  | 
 0  | 
         }else if( pOrTerm->u.leftColumn!=iColumn ){  | 
 
| 
138449
 | 
 0  | 
 0  | 
           if( affRight!=0 && affRight!=affLeft ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( affRight!=0 && affRight!=affLeft ){  | 
 
| 
138462
 | 
 0  | 
 0  | 
     if( okToChngToIN ){  | 
 
| 
138468
 | 
 0  | 
 0  | 
       for(i=pOrWc->nTerm-1, pOrTerm=pOrWc->a; i>=0; i--, pOrTerm++){  | 
 
| 
138469
 | 
 0  | 
 0  | 
         if( (pOrTerm->wtFlags & TERM_OR_OK)==0 ) continue;  | 
 
| 
138480
 | 
 0  | 
 0  | 
       if( pNew ){  | 
 
| 
138516
 | 
 0  | 
 15  | 
   if( !OptimizationEnabled(pParse->db, SQLITE_Transitive) ) return 0;  | 
 
| 
138517
 | 
 8  | 
 7  | 
   if( pExpr->op!=TK_EQ && pExpr->op!=TK_IS ) return 0;  | 
 
| 
 | 
 8  | 
 0  | 
   if( pExpr->op!=TK_EQ && pExpr->op!=TK_IS ) return 0;  | 
 
| 
138518
 | 
 0  | 
 7  | 
   if( ExprHasProperty(pExpr, EP_FromJoin) ) return 0;  | 
 
| 
138521
 | 
 0  | 
 7  | 
   if( aff1!=aff2  | 
 
| 
138522
 | 
 0  | 
 0  | 
    && (!sqlite3IsNumericAffinity(aff1) || !sqlite3IsNumericAffinity(aff2))  | 
 
| 
 | 
 0  | 
 0  | 
    && (!sqlite3IsNumericAffinity(aff1) || !sqlite3IsNumericAffinity(aff2))  | 
 
| 
138527
 | 
 7  | 
 0  | 
   if( sqlite3IsBinary(pColl) ) return 1;  | 
 
| 
138538
 | 
 4  | 
 8  | 
   while( pS ){  | 
 
| 
138545
 | 
 4  | 
 0  | 
     if( ALWAYS(pSrc!=0) ){  | 
 
| 
138547
 | 
 4  | 
 4  | 
       for(i=0; inSrc; i++){  | 
 
| 
138550
 | 
 0  | 
 4  | 
         if( pSrc->a[i].fg.isTabFunc ){  | 
 
| 
138582
 | 
 0  | 
 11  | 
   for(i=0; mPrereq>1; i++, mPrereq>>=1){}  | 
 
| 
138584
 | 
 8  | 
 11  | 
   for(pIdx=pFrom->a[i].pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
138585
 | 
 8  | 
 0  | 
     if( pIdx->aColExpr==0 ) continue;  | 
 
| 
138586
 | 
 0  | 
 0  | 
     for(i=0; inKeyCol; i++){  | 
 
| 
138587
 | 
 0  | 
 0  | 
       if( pIdx->aiColumn[i]!=XN_EXPR ) continue;  | 
 
| 
138588
 | 
 0  | 
 0  | 
       if( sqlite3ExprCompareSkip(pExpr, pIdx->aColExpr->a[i].pExpr, iCur)==0 ){  | 
 
| 
138610
 | 
 0  | 
 2350  | 
   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)) ){  | 
 
| 
138614
 | 
 1090  | 
 1260  | 
   if( pExpr->op==TK_COLUMN ){  | 
 
| 
138619
 | 
 1249  | 
 11  | 
   if( mPrereq==0 ) return 0;                 /* No table references */  | 
 
| 
138620
 | 
 0  | 
 11  | 
   if( (mPrereq&(mPrereq-1))!=0 ) return 0;   /* Refs more than one table */  | 
 
| 
138663
 | 
 0  | 
 1621  | 
   if( db->mallocFailed ){  | 
 
| 
138672
 | 
 16  | 
 1605  | 
   if( op==TK_IN ){  | 
 
| 
138674
 | 
 0  | 
 16  | 
     if( sqlite3ExprCheckIN(pParse, pExpr) ) return;  | 
 
| 
138675
 | 
 0  | 
 16  | 
     if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
138680
 | 
 16  | 
 1589  | 
   }else if( op==TK_ISNULL ){  | 
 
| 
138687
 | 
 2  | 
 1619  | 
   if( pMaskSet->bVarSelect ) pTerm->wtFlags |= TERM_VARSELECT;  | 
 
| 
138688
 | 
 0  | 
 1621  | 
   if( ExprHasProperty(pExpr, EP_FromJoin) ){  | 
 
| 
138693
 | 
 0  | 
 0  | 
     if( (prereqAll>>1)>=x ){  | 
 
| 
138702
 | 
 1191  | 
 430  | 
   if( allowedOp(op) ){  | 
 
| 
138706
 | 
 1191  | 
 0  | 
     u16 opMask = (pTerm->prereqRight & prereqLeft)==0 ? WO_ALL : WO_EQUIV;  | 
 
| 
138708
 | 
 0  | 
 1191  | 
     if( pTerm->iField>0 ){  | 
 
| 
138714
 | 
 1075  | 
 116  | 
     if( exprMightBeIndexed(pSrc, prereqLeft, aiCurCol, pLeft, op) ){  | 
 
| 
138719
 | 
 0  | 
 1191  | 
     if( op==TK_IS ) pTerm->wtFlags |= TERM_IS;  | 
 
| 
138720
 | 
 1159  | 
 32  | 
     if( pRight   | 
 
| 
138721
 | 
 15  | 
 1144  | 
      && exprMightBeIndexed(pSrc, pTerm->prereqRight, aiCurCol, pRight, op)  | 
 
| 
138727
 | 
 15  | 
 0  | 
       if( pTerm->leftCursor>=0 ){  | 
 
| 
138730
 | 
 0  | 
 15  | 
         if( db->mallocFailed ){  | 
 
| 
138735
 | 
 0  | 
 15  | 
         if( idxNew==0 ) return;  | 
 
| 
138738
 | 
 0  | 
 15  | 
         if( op==TK_IS ) pNew->wtFlags |= TERM_IS;  | 
 
| 
138742
 | 
 7  | 
 8  | 
         if( termIsEquivalence(pParse, pDup) ){  | 
 
| 
138776
 | 
 14  | 
 416  | 
   else if( pExpr->op==TK_BETWEEN && pWC->op==TK_AND ){  | 
 
| 
 | 
 14  | 
 0  | 
   else if( pExpr->op==TK_BETWEEN && pWC->op==TK_AND ){  | 
 
| 
138782
 | 
 28  | 
 14  | 
     for(i=0; i<2; i++){  | 
 
| 
138802
 | 
 5  | 
 411  | 
   else if( pExpr->op==TK_OR ){  | 
 
| 
138823
 | 
 1609  | 
 12  | 
   if( pWC->op==TK_AND   | 
 
| 
138824
 | 
 117  | 
 1492  | 
    && isLikeOrGlob(pParse, pExpr, &pStr1, &isComplete, &noCase)  | 
 
| 
138842
 | 
 117  | 
 0  | 
     if( noCase && !pParse->db->mallocFailed ){  | 
 
| 
 | 
 117  | 
 0  | 
     if( noCase && !pParse->db->mallocFailed ){  | 
 
| 
138846
 | 
 366  | 
 117  | 
       for(i=0; (c = pStr1->u.zToken[i])!=0; i++){  | 
 
| 
138852
 | 
 117  | 
 0  | 
     if( !db->mallocFailed ){  | 
 
| 
138856
 | 
 117  | 
 0  | 
       if( noCase ){  | 
 
| 
138863
 | 
 0  | 
 117  | 
         if( c=='A'-1 ) isComplete = 0;  | 
 
| 
138868
 | 
 117  | 
 0  | 
     zCollSeqName = noCase ? "NOCASE" : sqlite3StrBINARY;  | 
 
| 
138886
 | 
 6  | 
 111  | 
     if( isComplete ){  | 
 
| 
138903
 | 
 1609  | 
 12  | 
   if( pWC->op==TK_AND ){  | 
 
| 
138906
 | 
 34  | 
 1609  | 
     while( res-- > 0 ){  | 
 
| 
138913
 | 
 34  | 
 0  | 
       if( (prereqExpr & prereqColumn)==0 ){  | 
 
| 
138917
 | 
 0  | 
 34  | 
         if( ExprHasProperty(pExpr, EP_FromJoin) && pNewExpr ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( ExprHasProperty(pExpr, EP_FromJoin) && pNewExpr ){  | 
 
| 
138945
 | 
 1609  | 
 12  | 
   if( pWC->op==TK_AND   | 
 
| 
138946
 | 
 758  | 
 851  | 
   && (pExpr->op==TK_EQ || pExpr->op==TK_IS)  | 
 
| 
 | 
 0  | 
 758  | 
   && (pExpr->op==TK_EQ || pExpr->op==TK_IS)  | 
 
| 
138947
 | 
 0  | 
 851  | 
   && (nLeft = sqlite3ExprVectorSize(pExpr->pLeft))>1  | 
 
| 
138948
 | 
 0  | 
 0  | 
   && sqlite3ExprVectorSize(pExpr->pRight)==nLeft  | 
 
| 
138949
 | 
 0  | 
 0  | 
   && ( (pExpr->pLeft->flags & EP_xIsSelect)==0   | 
 
| 
138950
 | 
 0  | 
 0  | 
     || (pExpr->pRight->flags & EP_xIsSelect)==0)  | 
 
| 
138953
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
138977
 | 
 1609  | 
 12  | 
   if( pWC->op==TK_AND && pExpr->op==TK_IN && pTerm->iField==0  | 
 
| 
 | 
 16  | 
 1593  | 
   if( pWC->op==TK_AND && pExpr->op==TK_IN && pTerm->iField==0  | 
 
| 
 | 
 16  | 
 0  | 
   if( pWC->op==TK_AND && pExpr->op==TK_IN && pTerm->iField==0  | 
 
| 
138978
 | 
 0  | 
 16  | 
    && pExpr->pLeft->op==TK_VECTOR  | 
 
| 
138979
 | 
 0  | 
 0  | 
    && pExpr->x.pSelect->pPrior==0  | 
 
| 
138982
 | 
 0  | 
 0  | 
     for(i=0; ipLeft); i++){  | 
 
| 
139063
 | 
 783  | 
 1677  | 
   if( pE2==0 ) return;  | 
 
| 
139064
 | 
 1359  | 
 318  | 
   if( pE2->op!=op ){  | 
 
| 
139096
 | 
 1670  | 
 1824  | 
   for(i=pWC->nTerm-1, a=pWC->a; i>=0; i--, a++){  | 
 
| 
139097
 | 
 311  | 
 1359  | 
     if( a->wtFlags & TERM_DYNAMIC ){  | 
 
| 
139100
 | 
 5  | 
 1665  | 
     if( a->wtFlags & TERM_ORINFO ){  | 
 
| 
139102
 | 
 9  | 
 1656  | 
     }else if( a->wtFlags & TERM_ANDINFO ){  | 
 
| 
139106
 | 
 0  | 
 1824  | 
   if( pWC->a!=pWC->aStatic ){  | 
 
| 
139119
 | 
 3022  | 
 5679  | 
   if( p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){  | 
 
| 
 | 
 3022  | 
 0  | 
   if( p->op==TK_COLUMN && !ExprHasProperty(p, EP_FixedCol) ){  | 
 
| 
139121
 | 
 2358  | 
 3321  | 
   }else if( ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){  | 
 
| 
139125
 | 
 0  | 
 3321  | 
   mask = (p->op==TK_IF_NULL_ROW) ? sqlite3WhereGetMask(pMaskSet, p->iTable) : 0;  | 
 
| 
139126
 | 
 2171  | 
 1150  | 
   if( p->pLeft ) mask |= sqlite3WhereExprUsageNN(pMaskSet, p->pLeft);  | 
 
| 
139127
 | 
 1504  | 
 1817  | 
   if( p->pRight ){  | 
 
| 
139130
 | 
 4  | 
 1813  | 
   }else if( ExprHasProperty(p, EP_xIsSelect) ){  | 
 
| 
139131
 | 
 4  | 
 0  | 
     if( ExprHasProperty(p, EP_VarSelect) ) pMaskSet->bVarSelect = 1;  | 
 
| 
139133
 | 
 239  | 
 1574  | 
   }else if( p->x.pList ){  | 
 
| 
139139
 | 
 3405  | 
 387  | 
   return p ? sqlite3WhereExprUsageNN(pMaskSet,p) : 0;  | 
 
| 
139144
 | 
 261  | 
 8  | 
   if( pList ){  | 
 
| 
139145
 | 
 500  | 
 261  | 
     for(i=0; inExpr; i++){  | 
 
| 
139166
 | 
 1359  | 
 1824  | 
   for(i=pWC->nTerm-1; i>=0; i--){  | 
 
| 
139188
 | 
 1389  | 
 0  | 
   if( pItem->fg.isTabFunc==0 ) return;  | 
 
| 
139192
 | 
 0  | 
 0  | 
   if( pArgs==0 ) return;  | 
 
| 
139193
 | 
 0  | 
 0  | 
   for(j=k=0; jnExpr; j++){  | 
 
| 
139195
 | 
 0  | 
 0  | 
     while( knCol && (pTab->aCol[k].colFlags & COLFLAG_HIDDEN)==0 ){k++;}  | 
 
| 
 | 
 0  | 
 0  | 
     while( knCol && (pTab->aCol[k].colFlags & COLFLAG_HIDDEN)==0 ){k++;}  | 
 
| 
139196
 | 
 0  | 
 0  | 
     if( k>=pTab->nCol ){  | 
 
| 
139202
 | 
 0  | 
 0  | 
     if( pColRef==0 ) return;  | 
 
| 
139308
 | 
 489  | 
 0  | 
   if( !pWInfo->bOrderedInnerLoop ){  | 
 
| 
139387
 | 
 9  | 
 11  | 
   for(i=pSet->n, p=pSet->a; i>0; i--, p++){  | 
 
| 
139388
 | 
 9  | 
 0  | 
     if( rRun<=p->rRun && (prereq & p->prereq)==prereq ){  | 
 
| 
 | 
 9  | 
 0  | 
     if( rRun<=p->rRun && (prereq & p->prereq)==prereq ){  | 
 
| 
139391
 | 
 0  | 
 0  | 
     if( p->rRun<=rRun && (p->prereq & prereq)==p->prereq ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->rRun<=rRun && (p->prereq & prereq)==p->prereq ){  | 
 
| 
139395
 | 
 11  | 
 0  | 
   if( pSet->n
 | 
 
| 
139400
 | 
 0  | 
 0  | 
     for(i=1; in; i++){  | 
 
| 
139401
 | 
 0  | 
 0  | 
       if( p->rRun>pSet->a[i].rRun ) p = pSet->a + i;  | 
 
| 
139403
 | 
 0  | 
 0  | 
     if( p->rRun<=rRun ) return 0;  | 
 
| 
139408
 | 
 9  | 
 11  | 
   if( p->nOut>nOut ) p->nOut = nOut;  | 
 
| 
139419
 | 
 5407  | 
 144  | 
   for(i=0; in; i++){  | 
 
| 
139420
 | 
 5245  | 
 162  | 
     if( pMaskSet->ix[i]==iCursor ){  | 
 
| 
139460
 | 
 4524  | 
 3306  | 
       for(pTerm=pWC->a+k; knTerm; k++, pTerm++){  | 
 
| 
139461
 | 
 2924  | 
 1600  | 
         if( pTerm->leftCursor==iCur  | 
 
| 
139462
 | 
 818  | 
 2106  | 
          && pTerm->u.leftColumn==iColumn  | 
 
| 
139463
 | 
 0  | 
 818  | 
          && (iColumn!=XN_EXPR  | 
 
| 
139464
 | 
 0  | 
 0  | 
              || sqlite3ExprCompareSkip(pTerm->pExpr->pLeft,  | 
 
| 
139466
 | 
 7  | 
 811  | 
          && (pScan->iEquiv<=1 || !ExprHasProperty(pTerm->pExpr, EP_FromJoin))  | 
 
| 
 | 
 7  | 
 0  | 
          && (pScan->iEquiv<=1 || !ExprHasProperty(pTerm->pExpr, EP_FromJoin))  | 
 
| 
139468
 | 
 16  | 
 802  | 
           if( (pTerm->eOperator & WO_EQUIV)!=0  | 
 
| 
139469
 | 
 16  | 
 0  | 
            && pScan->nEquivaiCur)  | 
 
| 
139470
 | 
 16  | 
 0  | 
            && (pX = sqlite3ExprSkipCollate(pTerm->pExpr->pRight))->op==TK_COLUMN  | 
 
| 
139473
 | 
 16  | 
 9  | 
             for(j=0; jnEquiv; j++){  | 
 
| 
139474
 | 
 7  | 
 9  | 
               if( pScan->aiCur[j]==pX->iTable  | 
 
| 
139475
 | 
 7  | 
 0  | 
                && pScan->aiColumn[j]==pX->iColumn ){  | 
 
| 
139479
 | 
 9  | 
 7  | 
             if( j==pScan->nEquiv ){  | 
 
| 
139485
 | 
 552  | 
 266  | 
           if( (pTerm->eOperator & pScan->opMask)!=0 ){  | 
 
| 
139487
 | 
 92  | 
 460  | 
             if( pScan->zCollName && (pTerm->eOperator & WO_ISNULL)==0 ){  | 
 
| 
 | 
 87  | 
 5  | 
             if( pScan->zCollName && (pTerm->eOperator & WO_ISNULL)==0 ){  | 
 
| 
139491
 | 
 0  | 
 87  | 
               if( !sqlite3IndexAffinityOk(pX, pScan->idxaff) ){  | 
 
| 
139497
 | 
 0  | 
 87  | 
               if( pColl==0 ) pColl = pParse->db->pDfltColl;  | 
 
| 
139498
 | 
 0  | 
 87  | 
               if( sqlite3StrICmp(pColl->zName, pScan->zCollName) ){  | 
 
| 
139502
 | 
 489  | 
 63  | 
             if( (pTerm->eOperator & (WO_EQ|WO_IS))!=0  | 
 
| 
139503
 | 
 16  | 
 473  | 
              && (pX = pTerm->pExpr->pRight)->op==TK_COLUMN  | 
 
| 
139504
 | 
 7  | 
 9  | 
              && pX->iTable==pScan->aiCur[0]  | 
 
| 
139505
 | 
 7  | 
 0  | 
              && pX->iColumn==pScan->aiColumn[0]  | 
 
| 
139518
 | 
 42  | 
 3264  | 
     }while( pWC!=0 );  | 
 
| 
139519
 | 
 3255  | 
 9  | 
     if( pScan->iEquiv>=pScan->nEquiv ) break;  | 
 
| 
139559
 | 
 1107  | 
 2601  | 
   if( pIdx ){  | 
 
| 
139562
 | 
 0  | 
 1107  | 
     if( iColumn==XN_EXPR ){  | 
 
| 
139565
 | 
 866  | 
 241  | 
     }else if( iColumn==pIdx->pTable->iPKey ){  | 
 
| 
139567
 | 
 163  | 
 78  | 
     }else if( iColumn>=0 ){  | 
 
| 
139571
 | 
 0  | 
 2601  | 
   }else if( iColumn==XN_EXPR ){  | 
 
| 
139622
 | 
 457  | 
 2215  | 
   while( p ){  | 
 
| 
139623
 | 
 453  | 
 4  | 
     if( (p->prereqRight & notReady)==0 ){  | 
 
| 
139624
 | 
 453  | 
 0  | 
       if( p->prereqRight==0 && (p->eOperator&op)!=0 ){  | 
 
| 
 | 
 453  | 
 0  | 
       if( p->prereqRight==0 && (p->eOperator&op)!=0 ){  | 
 
| 
139628
 | 
 0  | 
 0  | 
       if( pResult==0 ) pResult = p;  | 
 
| 
139652
 | 
 0  | 
 0  | 
   for(i=0; inExpr; i++){  | 
 
| 
139654
 | 
 0  | 
 0  | 
     if( p->op==TK_COLUMN  | 
 
| 
139655
 | 
 0  | 
 0  | 
      && p->iColumn==pIdx->aiColumn[iCol]  | 
 
| 
139656
 | 
 0  | 
 0  | 
      && p->iTable==iBase  | 
 
| 
139659
 | 
 0  | 
 0  | 
       if( 0==sqlite3StrICmp(pColl->zName, zColl) ){  | 
 
| 
139676
 | 
 5  | 
 0  | 
   if( j>=0 ){  | 
 
| 
139678
 | 
 0  | 
 0  | 
   }else if( j==(-1) ){  | 
 
| 
139708
 | 
 2  | 
 0  | 
   if( pTabList->nSrc!=1 ) return 0;  | 
 
| 
139716
 | 
 0  | 
 0  | 
   for(i=0; inExpr; i++){  | 
 
| 
139718
 | 
 0  | 
 0  | 
     if( p->op==TK_COLUMN && p->iTable==iBase && p->iColumn<0 ) return 1;  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->op==TK_COLUMN && p->iTable==iBase && p->iColumn<0 ) return 1;  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->op==TK_COLUMN && p->iTable==iBase && p->iColumn<0 ) return 1;  | 
 
| 
139734
 | 
 0  | 
 0  | 
   for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
139735
 | 
 0  | 
 0  | 
     if( !IsUniqueIndex(pIdx) ) continue;  | 
 
| 
139736
 | 
 0  | 
 0  | 
     for(i=0; inKeyCol; i++){  | 
 
| 
139737
 | 
 0  | 
 0  | 
       if( 0==sqlite3WhereFindTerm(pWC, iBase, i, ~(Bitmask)0, WO_EQ, pIdx) ){  | 
 
| 
139738
 | 
 0  | 
 0  | 
         if( findIndexCol(pParse, pDistinct, iBase, pIdx, i)<0 ) break;  | 
 
| 
139739
 | 
 0  | 
 0  | 
         if( indexColumnNotNull(pIdx, i)==0 ) break;  | 
 
| 
139742
 | 
 0  | 
 0  | 
     if( i==pIdx->nKeyCol ){  | 
 
| 
139756
 | 
 2068  | 
 2  | 
   return N<=10 ? 0 : sqlite3LogEst(N) - 33;  | 
 
| 
139781
 | 
 0  | 
 22  | 
   if( pParse->db->mallocFailed ) return;  | 
 
| 
139782
 | 
 283  | 
 22  | 
   for(; iStart
 | 
 
| 
139783
 | 
 135  | 
 148  | 
     if( pOp->p1!=iTabCur ) continue;  | 
 
| 
139784
 | 
 91  | 
 57  | 
     if( pOp->opcode==OP_Column ){  | 
 
| 
139789
 | 
 0  | 
 57  | 
     }else if( pOp->opcode==OP_Rowid ){  | 
 
| 
139790
 | 
 0  | 
 0  | 
       if( bIncrRowid ){  | 
 
| 
139861
 | 
 363  | 
 597  | 
   if( pTerm->leftCursor!=pSrc->iCursor ) return 0;  | 
 
| 
139862
 | 
 183  | 
 414  | 
   if( (pTerm->eOperator & (WO_EQ|WO_IS))==0 ) return 0;  | 
 
| 
139863
 | 
 0  | 
 414  | 
   if( (pSrc->fg.jointype & JT_LEFT)   | 
 
| 
139864
 | 
 0  | 
 0  | 
    && !ExprHasProperty(pTerm->pExpr, EP_FromJoin)  | 
 
| 
139865
 | 
 0  | 
 0  | 
    && (pTerm->eOperator & WO_IS)  | 
 
| 
139872
 | 
 0  | 
 414  | 
   if( (pTerm->prereqRight & notReady)!=0 ) return 0;  | 
 
| 
139873
 | 
 2  | 
 412  | 
   if( pTerm->u.leftColumn<0 ) return 0;  | 
 
| 
139875
 | 
 0  | 
 412  | 
   if( !sqlite3IndexAffinityOk(pTerm->pExpr, aff) ) return 0;  | 
 
| 
139932
 | 
 2  | 
 1  | 
   for(pTerm=pWC->a; pTerm
 | 
 
| 
139937
 | 
 0  | 
 2  | 
     if( pLoop->prereq==0  | 
 
| 
139938
 | 
 0  | 
 0  | 
      && (pTerm->wtFlags & TERM_VIRTUAL)==0  | 
 
| 
139939
 | 
 0  | 
 0  | 
      && !ExprHasProperty(pExpr, EP_FromJoin)  | 
 
| 
139940
 | 
 0  | 
 0  | 
      && sqlite3ExprIsTableConstant(pExpr, pSrc->iCursor) ){  | 
 
| 
139944
 | 
 1  | 
 1  | 
     if( termCanDriveIndex(pTerm, pSrc, notReady) ){  | 
 
| 
139946
 | 
 1  | 
 0  | 
       Bitmask cMask = iCol>=BMS ? MASKBIT(BMS-1) : MASKBIT(iCol);  | 
 
| 
139949
 | 
 1  | 
 0  | 
       if( !sentWarning ){  | 
 
| 
139955
 | 
 1  | 
 0  | 
       if( (idxCols & cMask)==0 ){  | 
 
| 
139956
 | 
 0  | 
 1  | 
         if( whereLoopResize(pParse->db, pLoop, nKeyCol+1) ){  | 
 
| 
139981
 | 
 2  | 
 1  | 
   for(i=0; i
 | 
 
| 
139982
 | 
 1  | 
 1  | 
     if( extraCols & MASKBIT(i) ) nKeyCol++;  | 
 
| 
139984
 | 
 0  | 
 1  | 
   if( pSrc->colUsed & MASKBIT(BMS-1) ){  | 
 
| 
139990
 | 
 0  | 
 1  | 
   if( pIdx==0 ) goto end_auto_index_create;  | 
 
| 
139996
 | 
 2  | 
 1  | 
   for(pTerm=pWC->a; pTerm
 | 
 
| 
139997
 | 
 1  | 
 1  | 
     if( termCanDriveIndex(pTerm, pSrc, notReady) ){  | 
 
| 
139999
 | 
 1  | 
 0  | 
       Bitmask cMask = iCol>=BMS ? MASKBIT(BMS-1) : MASKBIT(iCol);  | 
 
| 
140002
 | 
 1  | 
 0  | 
       if( (idxCols & cMask)==0 ){  | 
 
| 
140007
 | 
 1  | 
 0  | 
         pIdx->azColl[n] = pColl ? pColl->zName : sqlite3StrBINARY;  | 
 
| 
140016
 | 
 2  | 
 1  | 
   for(i=0; i
 | 
 
| 
140017
 | 
 1  | 
 1  | 
     if( extraCols & MASKBIT(i) ){  | 
 
| 
140023
 | 
 0  | 
 1  | 
   if( pSrc->colUsed & MASKBIT(BMS-1) ){  | 
 
| 
140024
 | 
 0  | 
 0  | 
     for(i=BMS-1; inCol; i++){  | 
 
| 
140043
 | 
 0  | 
 1  | 
   if( pTabItem->fg.viaCoroutine ){  | 
 
| 
140053
 | 
 0  | 
 1  | 
   if( pPartial ){  | 
 
| 
140064
 | 
 0  | 
 1  | 
   if( pPartial ) sqlite3VdbeResolveLabel(v, iContinue);  | 
 
| 
140065
 | 
 0  | 
 1  | 
   if( pTabItem->fg.viaCoroutine ){  | 
 
| 
140113
 | 
 95  | 
 43  | 
   for(i=nTerm=0, pTerm=pWC->a; inTerm; i++, pTerm++){  | 
 
| 
140114
 | 
 34  | 
 61  | 
     if( pTerm->leftCursor != pSrc->iCursor ) continue;  | 
 
| 
140115
 | 
 0  | 
 61  | 
     if( pTerm->prereqRight & mUnusable ) continue;  | 
 
| 
140121
 | 
 0  | 
 61  | 
     if( (pTerm->eOperator & ~(WO_EQUIV))==0 ) continue;  | 
 
| 
140132
 | 
 0  | 
 43  | 
   if( pOrderBy ){  | 
 
| 
140134
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
140136
 | 
 0  | 
 0  | 
       if( pExpr->op!=TK_COLUMN || pExpr->iTable!=pSrc->iCursor ) break;  | 
 
| 
 | 
 0  | 
 0  | 
       if( pExpr->op!=TK_COLUMN || pExpr->iTable!=pSrc->iCursor ) break;  | 
 
| 
140138
 | 
 0  | 
 0  | 
     if( i==n){  | 
 
| 
140148
 | 
 0  | 
 43  | 
   if( pIdxInfo==0 ){  | 
 
| 
140171
 | 
 95  | 
 43  | 
   for(i=j=0, pTerm=pWC->a; inTerm; i++, pTerm++){  | 
 
| 
140173
 | 
 34  | 
 61  | 
     if( pTerm->leftCursor != pSrc->iCursor ) continue;  | 
 
| 
140174
 | 
 0  | 
 61  | 
     if( pTerm->prereqRight & mUnusable ) continue;  | 
 
| 
140180
 | 
 0  | 
 61  | 
     if( (pTerm->eOperator & ~(WO_EQUIV))==0 ) continue;  | 
 
| 
140182
 | 
 0  | 
 61  | 
     if( (pSrc->fg.jointype & JT_LEFT)!=0  | 
 
| 
140183
 | 
 0  | 
 0  | 
      && !ExprHasProperty(pTerm->pExpr, EP_FromJoin)  | 
 
| 
140184
 | 
 0  | 
 0  | 
      && (pTerm->eOperator & (WO_IS|WO_ISNULL))  | 
 
| 
140200
 | 
 0  | 
 61  | 
     if( op==WO_IN ) op = WO_EQ;  | 
 
| 
140201
 | 
 34  | 
 27  | 
     if( op==WO_AUX ){  | 
 
| 
140203
 | 
 0  | 
 27  | 
     }else if( op & (WO_ISNULL|WO_IS) ){  | 
 
| 
140204
 | 
 0  | 
 0  | 
       if( op==WO_ISNULL ){  | 
 
| 
140221
 | 
 24  | 
 3  | 
       if( op & (WO_LT|WO_LE|WO_GT|WO_GE)  | 
 
| 
140222
 | 
 0  | 
 24  | 
        && sqlite3ExprIsVector(pTerm->pExpr->pRight)   | 
 
| 
140224
 | 
 0  | 
 0  | 
         if( i<16 ) mNoOmit |= (1 << i);  | 
 
| 
140225
 | 
 0  | 
 0  | 
         if( op==WO_LT ) pIdxCons[j].op = WO_LE;  | 
 
| 
140226
 | 
 0  | 
 0  | 
         if( op==WO_GT ) pIdxCons[j].op = WO_GE;  | 
 
| 
140232
 | 
 0  | 
 43  | 
   for(i=0; i
 | 
 
| 
140266
 | 
 0  | 
 43  | 
   if( rc!=SQLITE_OK && rc!=SQLITE_CONSTRAINT ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK && rc!=SQLITE_CONSTRAINT ){  | 
 
| 
140267
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOMEM ){  | 
 
| 
140269
 | 
 0  | 
 0  | 
     }else if( !pVtab->zErrMsg ){  | 
 
| 
140489
 | 
 72  | 
 44  | 
   if( pTerm ){  | 
 
| 
140490
 | 
 0  | 
 72  | 
     if( pTerm->truthProb<=0 ){  | 
 
| 
140808
 | 
 42  | 
 16  | 
   if( pLower && pLower->truthProb>0 && pUpper && pUpper->truthProb>0 ){  | 
 
| 
 | 
 42  | 
 0  | 
   if( pLower && pLower->truthProb>0 && pUpper && pUpper->truthProb>0 ){  | 
 
| 
 | 
 14  | 
 28  | 
   if( pLower && pLower->truthProb>0 && pUpper && pUpper->truthProb>0 ){  | 
 
| 
 | 
 14  | 
 0  | 
   if( pLower && pLower->truthProb>0 && pUpper && pUpper->truthProb>0 ){  | 
 
| 
140813
 | 
 0  | 
 58  | 
   if( nNew<10 ) nNew = 10;  | 
 
| 
140814
 | 
 58  | 
 0  | 
   if( nNew
 | 
 
| 
141056
 | 
 472  | 
 3696  | 
   if( p->wsFlags & (WHERE_VIRTUALTABLE|WHERE_AUTO_INDEX) ){  | 
 
| 
141057
 | 
 86  | 
 386  | 
     if( (p->wsFlags & WHERE_VIRTUALTABLE)!=0 && p->u.vtab.needFree ){  | 
 
| 
 | 
 0  | 
 86  | 
     if( (p->wsFlags & WHERE_VIRTUALTABLE)!=0 && p->u.vtab.needFree ){  | 
 
| 
141061
 | 
 386  | 
 86  | 
     }else if( (p->wsFlags & WHERE_AUTO_INDEX)!=0 && p->u.btree.pIndex!=0 ){  | 
 
| 
 | 
 1  | 
 385  | 
     }else if( (p->wsFlags & WHERE_AUTO_INDEX)!=0 && p->u.btree.pIndex!=0 ){  | 
 
| 
141073
 | 
 14  | 
 2729  | 
   if( p->aLTerm!=p->aLTermSpace ) sqlite3DbFreeNN(db, p->aLTerm);  | 
 
| 
141083
 | 
 1543  | 
 14  | 
   if( p->nLSlot>=n ) return SQLITE_OK;  | 
 
| 
141086
 | 
 0  | 
 14  | 
   if( paNew==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
141088
 | 
 0  | 
 14  | 
   if( p->aLTerm!=p->aLTermSpace ) sqlite3DbFreeNN(db, p->aLTerm);  | 
 
| 
141099
 | 
 0  | 
 1425  | 
   if( whereLoopResize(db, pTo, pFrom->nLTerm) ){  | 
 
| 
141105
 | 
 43  | 
 1382  | 
   if( pFrom->wsFlags & WHERE_VIRTUALTABLE ){  | 
 
| 
141107
 | 
 386  | 
 996  | 
   }else if( (pFrom->wsFlags & WHERE_AUTO_INDEX)!=0 ){  | 
 
| 
141127
 | 
 1389  | 
 1810  | 
   for(i=0; inLevel; i++){  | 
 
| 
141129
 | 
 1389  | 
 0  | 
     if( pLevel->pWLoop && (pLevel->pWLoop->wsFlags & WHERE_IN_ABLE) ){  | 
 
| 
 | 
 0  | 
 1389  | 
     if( pLevel->pWLoop && (pLevel->pWLoop->wsFlags & WHERE_IN_ABLE) ){  | 
 
| 
141134
 | 
 1358  | 
 1810  | 
   while( pWInfo->pLoops ){  | 
 
| 
141165
 | 
 55  | 
 56  | 
   if( pX->nLTerm-pX->nSkip >= pY->nLTerm-pY->nSkip ){  | 
 
| 
141168
 | 
 0  | 
 56  | 
   if( pY->nSkip > pX->nSkip ) return 0;  | 
 
| 
141169
 | 
 56  | 
 0  | 
   if( pX->rRun >= pY->rRun ){  | 
 
| 
141170
 | 
 55  | 
 1  | 
     if( pX->rRun > pY->rRun ) return 0;    /* X costs more than Y */  | 
 
| 
141171
 | 
 0  | 
 1  | 
     if( pX->nOut > pY->nOut ) return 0;    /* X costs more than Y */  | 
 
| 
141173
 | 
 1  | 
 1  | 
   for(i=pX->nLTerm-1; i>=0; i--){  | 
 
| 
141174
 | 
 0  | 
 1  | 
     if( pX->aLTerm[i]==0 ) continue;  | 
 
| 
141175
 | 
 2  | 
 0  | 
     for(j=pY->nLTerm-1; j>=0; j--){  | 
 
| 
141176
 | 
 1  | 
 1  | 
       if( pY->aLTerm[j]==pX->aLTerm[i] ) break;  | 
 
| 
141178
 | 
 0  | 
 1  | 
     if( j<0 ) return 0;  /* X not a subset of Y since term X[i] not used by Y */  | 
 
| 
141180
 | 
 1  | 
 0  | 
   if( (pX->wsFlags&WHERE_IDX_ONLY)!=0   | 
 
| 
141181
 | 
 0  | 
 1  | 
    && (pY->wsFlags&WHERE_IDX_ONLY)==0 ){  | 
 
| 
141202
 | 
 1373  | 
 90  | 
   if( (pTemplate->wsFlags & WHERE_INDEXED)==0 ) return;  | 
 
| 
141203
 | 
 161  | 
 90  | 
   for(; p; p=p->pNextLoop){  | 
 
| 
141204
 | 
 0  | 
 161  | 
     if( p->iTab!=pTemplate->iTab ) continue;  | 
 
| 
141205
 | 
 105  | 
 56  | 
     if( (p->wsFlags & WHERE_INDEXED)==0 ) continue;  | 
 
| 
141206
 | 
 1  | 
 55  | 
     if( whereLoopCheaperProperSubset(p, pTemplate) ){  | 
 
| 
141213
 | 
 0  | 
 55  | 
     }else if( whereLoopCheaperProperSubset(pTemplate, p) ){  | 
 
| 
141243
 | 
 590  | 
 1366  | 
   for(p=(*ppPrev); p; ppPrev=&p->pNextLoop, p=*ppPrev){  | 
 
| 
141244
 | 
 578  | 
 12  | 
     if( p->iTab!=pTemplate->iTab || p->iSortIdx!=pTemplate->iSortIdx ){  | 
 
| 
 | 
 303  | 
 275  | 
     if( p->iTab!=pTemplate->iTab || p->iSortIdx!=pTemplate->iSortIdx ){  | 
 
| 
141264
 | 
 200  | 
 75  | 
     if( (p->wsFlags & WHERE_AUTO_INDEX)!=0  | 
 
| 
141265
 | 
 200  | 
 0  | 
      && (pTemplate->nSkip)==0  | 
 
| 
141266
 | 
 8  | 
 192  | 
      && (pTemplate->wsFlags & WHERE_INDEXED)!=0  | 
 
| 
141267
 | 
 8  | 
 0  | 
      && (pTemplate->wsFlags & WHERE_COLUMN_EQ)!=0  | 
 
| 
141268
 | 
 8  | 
 0  | 
      && (p->prereq & pTemplate->prereq)==pTemplate->prereq  | 
 
| 
141278
 | 
 265  | 
 2  | 
     if( (p->prereq & pTemplate->prereq)==p->prereq    /* (1)  */  | 
 
| 
141279
 | 
 99  | 
 166  | 
      && p->rSetup<=pTemplate->rSetup                  /* (2a) */  | 
 
| 
141280
 | 
 39  | 
 60  | 
      && p->rRun<=pTemplate->rRun                      /* (2b) */  | 
 
| 
141281
 | 
 38  | 
 1  | 
      && p->nOut<=pTemplate->nOut                      /* (2c) */  | 
 
| 
141291
 | 
 227  | 
 2  | 
     if( (p->prereq & pTemplate->prereq)==pTemplate->prereq   /* (1)  */  | 
 
| 
141292
 | 
 59  | 
 168  | 
      && p->rRun>=pTemplate->rRun                             /* (2a) */  | 
 
| 
141293
 | 
 59  | 
 0  | 
      && p->nOut>=pTemplate->nOut                             /* (2b) */  | 
 
| 
141333
 | 
 0  | 
 1487  | 
   if( pBuilder->iPlanLimit==0 ){  | 
 
| 
141335
 | 
 0  | 
 0  | 
     if( pBuilder->pOrSet ) pBuilder->pOrSet->n = 0;  | 
 
| 
141343
 | 
 24  | 
 1463  | 
   if( pBuilder->pOrSet!=0 ){  | 
 
| 
141344
 | 
 16  | 
 8  | 
     if( pTemplate->nLTerm ){  | 
 
| 
141366
 | 
 38  | 
 1425  | 
   if( ppPrev==0 ){  | 
 
| 
141396
 | 
 1366  | 
 59  | 
   if( p==0 ){  | 
 
| 
141399
 | 
 0  | 
 1366  | 
     if( p==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
141408
 | 
 8  | 
 59  | 
     while( *ppTail ){  | 
 
| 
141410
 | 
 0  | 
 8  | 
       if( ppTail==0 ) break;  | 
 
| 
141412
 | 
 0  | 
 8  | 
       if( pToDel==0 ) break;  | 
 
| 
141424
 | 
 1382  | 
 43  | 
   if( (p->wsFlags & WHERE_VIRTUALTABLE)==0 ){  | 
 
| 
141426
 | 
 994  | 
 388  | 
     if( pIndex && pIndex->tnum==0 ){  | 
 
| 
 | 
 918  | 
 76  | 
     if( pIndex && pIndex->tnum==0 ){  | 
 
| 
141473
 | 
 1131  | 
 866  | 
   for(i=pWC->nTerm, pTerm=pWC->a; i>0; i--, pTerm++){  | 
 
| 
141474
 | 
 165  | 
 966  | 
     if( (pTerm->wtFlags & TERM_VIRTUAL)!=0 ) break;  | 
 
| 
141475
 | 
 40  | 
 926  | 
     if( (pTerm->prereqAll & pLoop->maskSelf)==0 ) continue;  | 
 
| 
141476
 | 
 6  | 
 920  | 
     if( (pTerm->prereqAll & notAllowed)!=0 ) continue;  | 
 
| 
141477
 | 
 181  | 
 823  | 
     for(j=pLoop->nLTerm-1; j>=0; j--){  | 
 
| 
141479
 | 
 0  | 
 181  | 
       if( pX==0 ) continue;  | 
 
| 
141480
 | 
 55  | 
 126  | 
       if( pX==pTerm ) break;  | 
 
| 
141481
 | 
 42  | 
 84  | 
       if( pX->iParent>=0 && (&pWC->a[pX->iParent])==pTerm ) break;  | 
 
| 
 | 
 42  | 
 0  | 
       if( pX->iParent>=0 && (&pWC->a[pX->iParent])==pTerm ) break;  | 
 
| 
141483
 | 
 823  | 
 97  | 
     if( j<0 ){  | 
 
| 
141484
 | 
 0  | 
 823  | 
       if( pTerm->truthProb<=0 ){  | 
 
| 
141492
 | 
 430  | 
 393  | 
         if( pTerm->eOperator&(WO_EQ|WO_IS) ){  | 
 
| 
141495
 | 
 37  | 
 393  | 
           if( sqlite3ExprIsInteger(pRight, &k) && k>=(-1) && k<=1 ){  | 
 
| 
 | 
 37  | 
 0  | 
           if( sqlite3ExprIsInteger(pRight, &k) && k>=(-1) && k<=1 ){  | 
 
| 
 | 
 31  | 
 6  | 
           if( sqlite3ExprIsInteger(pRight, &k) && k>=(-1) && k<=1 ){  | 
 
| 
141500
 | 
 398  | 
 32  | 
           if( iReduce
 | 
 
| 
141505
 | 
 392  | 
 639  | 
   if( pLoop->nOut > nRow-iReduce )  pLoop->nOut = nRow - iReduce;  | 
 
| 
141536
 | 
 0  | 
 58  | 
   for(i=1; i
 | 
 
| 
141544
 | 
 0  | 
 0  | 
     if( pRhs->flags & EP_xIsSelect ){  | 
 
| 
141554
 | 
 0  | 
 0  | 
     if( pLhs->op!=TK_COLUMN   | 
 
| 
141555
 | 
 0  | 
 0  | 
      || pLhs->iTable!=iCur   | 
 
| 
141556
 | 
 0  | 
 0  | 
      || pLhs->iColumn!=pIdx->aiColumn[i+nEq]   | 
 
| 
141557
 | 
 0  | 
 0  | 
      || pIdx->aSortOrder[i+nEq]!=pIdx->aSortOrder[nEq]  | 
 
| 
141565
 | 
 0  | 
 0  | 
     if( aff!=idxaff ) break;  | 
 
| 
141568
 | 
 0  | 
 0  | 
     if( pColl==0 ) break;  | 
 
| 
141569
 | 
 0  | 
 0  | 
     if( sqlite3StrICmp(pColl->zName, pIdx->azColl[i+nEq]) ) break;  | 
 
| 
141623
 | 
 0  | 
 1040  | 
   if( db->mallocFailed ) return SQLITE_NOMEM_BKPT;  | 
 
| 
141629
 | 
 28  | 
 1012  | 
   if( pNew->wsFlags & WHERE_BTM_LIMIT ){  | 
 
| 
141635
 | 
 0  | 
 1040  | 
   if( pProbe->bUnordered ) opMask &= ~(WO_GT|WO_GE|WO_LT|WO_LE);  | 
 
| 
141652
 | 
 1128  | 
 0  | 
   for(; rc==SQLITE_OK && pTerm!=0; pTerm = whereScanNext(&scan)){  | 
 
| 
 | 
 88  | 
 1040  | 
   for(; rc==SQLITE_OK && pTerm!=0; pTerm = whereScanNext(&scan)){  | 
 
| 
141660
 | 
 5  | 
 83  | 
     if( (eOp==WO_ISNULL || (pTerm->wtFlags&TERM_VNULL)!=0)  | 
 
| 
141661
 | 
 0  | 
 5  | 
      && indexColumnNotNull(pProbe, saved_nEq)  | 
 
| 
141665
 | 
 0  | 
 88  | 
     if( pTerm->prereqRight & pNew->maskSelf ) continue;  | 
 
| 
141669
 | 
 0  | 
 88  | 
     if( pTerm->wtFlags & TERM_LIKEOPT && pTerm->eOperator==WO_LT ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
     if( pTerm->wtFlags & TERM_LIKEOPT && pTerm->eOperator==WO_LT ) continue;  | 
 
| 
141674
 | 
 0  | 
 88  | 
     if( (pSrc->fg.jointype & JT_LEFT)!=0  | 
 
| 
141675
 | 
 0  | 
 0  | 
      && !ExprHasProperty(pTerm->pExpr, EP_FromJoin)  | 
 
| 
141680
 | 
 72  | 
 16  | 
     if( IsUniqueIndex(pProbe) && saved_nEq==pProbe->nKeyCol-1 ){  | 
 
| 
 | 
 11  | 
 61  | 
     if( IsUniqueIndex(pProbe) && saved_nEq==pProbe->nKeyCol-1 ){  | 
 
| 
141690
 | 
 0  | 
 88  | 
     if( whereLoopResize(db, pNew, pNew->nLTerm+1) ) break; /* OOM */  | 
 
| 
141700
 | 
 0  | 
 88  | 
     if( eOp & WO_IN ){  | 
 
| 
141702
 | 
 0  | 
 0  | 
       if( ExprHasProperty(pExpr, EP_xIsSelect) ){  | 
 
| 
141712
 | 
 0  | 
 0  | 
         for(i=0; inLTerm-1; i++){  | 
 
| 
141713
 | 
 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;  | 
 
| 
141715
 | 
 0  | 
 0  | 
       }else if( ALWAYS(pExpr->x.pList && pExpr->x.pList->nExpr) ){  | 
 
| 
 | 
 0  | 
 0  | 
       }else if( ALWAYS(pExpr->x.pList && pExpr->x.pList->nExpr) ){  | 
 
| 
141721
 | 
 0  | 
 0  | 
       if( pProbe->hasStat1 ){  | 
 
| 
141745
 | 
 0  | 
 0  | 
         if( M + logK + safetyMargin < nIn + rLogSize ){  | 
 
| 
141757
 | 
 25  | 
 63  | 
     }else if( eOp & (WO_EQ|WO_IS) ){  | 
 
| 
141761
 | 
 23  | 
 2  | 
       if( iCol==XN_ROWID   | 
 
| 
141762
 | 
 23  | 
 0  | 
        || (iCol>=0 && nInMul==0 && saved_nEq==pProbe->nKeyCol-1)  | 
 
| 
 | 
 23  | 
 0  | 
        || (iCol>=0 && nInMul==0 && saved_nEq==pProbe->nKeyCol-1)  | 
 
| 
 | 
 4  | 
 19  | 
        || (iCol>=0 && nInMul==0 && saved_nEq==pProbe->nKeyCol-1)  | 
 
| 
141764
 | 
 4  | 
 2  | 
         if( iCol==XN_ROWID || pProbe->uniqNotNull   | 
 
| 
 | 
 3  | 
 1  | 
         if( iCol==XN_ROWID || pProbe->uniqNotNull   | 
 
| 
141765
 | 
 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)   | 
 
| 
141772
 | 
 5  | 
 58  | 
     }else if( eOp & WO_ISNULL ){  | 
 
| 
141774
 | 
 28  | 
 30  | 
     }else if( eOp & (WO_GT|WO_GE) ){  | 
 
| 
141783
 | 
 0  | 
 28  | 
       if( pTerm->wtFlags & TERM_LIKEOPT ){  | 
 
| 
141790
 | 
 0  | 
 0  | 
         if( whereLoopResize(db, pNew, pNew->nLTerm+1) ) break; /* OOM */  | 
 
| 
141805
 | 
 14  | 
 16  | 
                      pNew->aLTerm[pNew->nLTerm-2] : 0;  | 
 
| 
141814
 | 
 58  | 
 30  | 
     if( pNew->wsFlags & WHERE_COLUMN_RANGE ){  | 
 
| 
141823
 | 
 0  | 
 30  | 
       if( pTerm->truthProb<=0 && pProbe->aiColumn[saved_nEq]>=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pTerm->truthProb<=0 && pProbe->aiColumn[saved_nEq]>=0 ){  | 
 
| 
141858
 | 
 5  | 
 25  | 
           if( eOp & WO_ISNULL ){  | 
 
| 
141874
 | 
 42  | 
 46  | 
     if( (pNew->wsFlags & (WHERE_IDX_ONLY|WHERE_IPK))==0 ){  | 
 
| 
141885
 | 
 58  | 
 30  | 
     if( pNew->wsFlags & WHERE_COLUMN_RANGE ){  | 
 
| 
141891
 | 
 58  | 
 30  | 
     if( (pNew->wsFlags & WHERE_TOP_LIMIT)==0  | 
 
| 
141892
 | 
 56  | 
 2  | 
      && pNew->u.btree.nEqnColumn  | 
 
| 
141921
 | 
 1006  | 
 34  | 
   if( saved_nEq==saved_nSkip  | 
 
| 
141922
 | 
 44  | 
 962  | 
    && saved_nEq+1nKeyCol  | 
 
| 
141923
 | 
 44  | 
 0  | 
    && pProbe->noSkipScan==0  | 
 
| 
141924
 | 
 44  | 
 0  | 
    && OptimizationEnabled(db, SQLITE_SkipScan)  | 
 
| 
141925
 | 
 0  | 
 44  | 
    && pProbe->aiRowLogEst[saved_nEq+1]>=42  /* TUNING: Minimum for skip-scan */  | 
 
| 
141926
 | 
 0  | 
 0  | 
    && (rc = whereLoopResize(db, pNew, pNew->nLTerm+1))==SQLITE_OK  | 
 
| 
141967
 | 
 0  | 
 984  | 
   if( pIndex->bUnordered ) return 0;  | 
 
| 
141968
 | 
 441  | 
 543  | 
   if( (pOB = pBuilder->pWInfo->pOrderBy)==0 ) return 0;  | 
 
| 
141969
 | 
 594  | 
 97  | 
   for(ii=0; iinExpr; ii++){  | 
 
| 
141971
 | 
 594  | 
 0  | 
     if( pExpr->op==TK_COLUMN && pExpr->iTable==iCursor ){  | 
 
| 
 | 
 589  | 
 5  | 
     if( pExpr->op==TK_COLUMN && pExpr->iTable==iCursor ){  | 
 
| 
141972
 | 
 425  | 
 164  | 
       if( pExpr->iColumn<0 ) return 1;  | 
 
| 
141973
 | 
 171  | 
 143  | 
       for(jj=0; jjnKeyCol; jj++){  | 
 
| 
141974
 | 
 21  | 
 150  | 
         if( pExpr->iColumn==pIndex->aiColumn[jj] ) return 1;  | 
 
| 
141976
 | 
 0  | 
 5  | 
     }else if( (aColExpr = pIndex->aColExpr)!=0 ){  | 
 
| 
141977
 | 
 0  | 
 0  | 
       for(jj=0; jjnKeyCol; jj++){  | 
 
| 
141978
 | 
 0  | 
 0  | 
         if( pIndex->aiColumn[jj]!=XN_EXPR ) continue;  | 
 
| 
141979
 | 
 0  | 
 0  | 
         if( sqlite3ExprCompareSkip(pExpr,aColExpr->a[jj].pExpr,iCursor)==0 ){  | 
 
| 
141995
 | 
 0  | 
 0  | 
   while( pWhere->op==TK_AND ){  | 
 
| 
141996
 | 
 0  | 
 0  | 
     if( !whereUsablePartialIndex(iTab,pWC,pWhere->pLeft) ) return 0;  | 
 
| 
141999
 | 
 0  | 
 0  | 
   if( pParse->db->flags & SQLITE_EnableQPSG ) pParse = 0;  | 
 
| 
142000
 | 
 0  | 
 0  | 
   for(i=0, pTerm=pWC->a; inTerm; i++, pTerm++){  | 
 
| 
142002
 | 
 0  | 
 0  | 
     if( (!ExprHasProperty(pExpr, EP_FromJoin) || pExpr->iRightJoinTable==iTab)  | 
 
| 
 | 
 0  | 
 0  | 
     if( (!ExprHasProperty(pExpr, EP_FromJoin) || pExpr->iRightJoinTable==iTab)  | 
 
| 
142003
 | 
 0  | 
 0  | 
      && sqlite3ExprImpliesExpr(pParse, pExpr, pWhere, iTab)   | 
 
| 
142075
 | 
 0  | 
 921  | 
   if( pSrc->pIBIndex ){  | 
 
| 
142078
 | 
 0  | 
 921  | 
   }else if( !HasRowid(pTab) ){  | 
 
| 
142097
 | 
 921  | 
 0  | 
     if( pSrc->fg.notIndexed==0 ){  | 
 
| 
142109
 | 
 913  | 
 8  | 
   if( !pBuilder->pOrSet      /* Not part of an OR optimization */  | 
 
| 
142110
 | 
 908  | 
 5  | 
    && (pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE)==0  | 
 
| 
142111
 | 
 908  | 
 0  | 
    && (pWInfo->pParse->db->flags & SQLITE_AutoIndex)!=0  | 
 
| 
142112
 | 
 908  | 
 0  | 
    && pSrc->pIBIndex==0      /* Has no INDEXED BY clause */  | 
 
| 
142113
 | 
 908  | 
 0  | 
    && !pSrc->fg.notIndexed   /* Has no NOT INDEXED clause */  | 
 
| 
142114
 | 
 908  | 
 0  | 
    && HasRowid(pTab)         /* Not WITHOUT ROWID table. (FIXME: Why not?) */  | 
 
| 
142115
 | 
 908  | 
 0  | 
    && !pSrc->fg.isCorrelated /* Not a correlated subquery */  | 
 
| 
142116
 | 
 908  | 
 0  | 
    && !pSrc->fg.isRecursive  /* Not a recursive common table expression. */  | 
 
| 
142121
 | 
 1874  | 
 0  | 
     for(pTerm=pWC->a; rc==SQLITE_OK && pTerm
 | 
 
| 
 | 
 966  | 
 908  | 
     for(pTerm=pWC->a; rc==SQLITE_OK && pTerm
 | 
 
| 
142122
 | 
 10  | 
 956  | 
       if( pTerm->prereqRight & pNew->maskSelf ) continue;  | 
 
| 
142123
 | 
 410  | 
 546  | 
       if( termCanDriveIndex(pTerm, pSrc, 0) ){  | 
 
| 
142138
 | 
 410  | 
 0  | 
         if( pTab->pSelect==0 && (pTab->tabFlags & TF_Ephemeral)==0 ){  | 
 
| 
 | 
 409  | 
 1  | 
         if( pTab->pSelect==0 && (pTab->tabFlags & TF_Ephemeral)==0 ){  | 
 
| 
142144
 | 
 0  | 
 410  | 
         if( pNew->rSetup<0 ) pNew->rSetup = 0;  | 
 
| 
142161
 | 
 1905  | 
 0  | 
   for(; rc==SQLITE_OK && pProbe;   | 
 
| 
 | 
 984  | 
 921  | 
   for(; rc==SQLITE_OK && pProbe;   | 
 
| 
142162
 | 
 984  | 
 0  | 
       pProbe=(pSrc->pIBIndex ? 0 : pProbe->pNext), iSortIdx++  | 
 
| 
142164
 | 
 0  | 
 984  | 
     if( pProbe->pPartIdxWhere!=0  | 
 
| 
142165
 | 
 0  | 
 0  | 
      && !whereUsablePartialIndex(pSrc->iCursor, pWC, pProbe->pPartIdxWhere) ){  | 
 
| 
142169
 | 
 0  | 
 984  | 
     if( pProbe->bNoQuery ) continue;  | 
 
| 
142184
 | 
 921  | 
 63  | 
     if( pProbe->tnum<=0 ){  | 
 
| 
142189
 | 
 424  | 
 497  | 
       pNew->iSortIdx = b ? iSortIdx : 0;  | 
 
| 
142196
 | 
 0  | 
 921  | 
       if( rc ) break;  | 
 
| 
142199
 | 
 14  | 
 49  | 
       if( pProbe->isCovering ){  | 
 
| 
142204
 | 
 16  | 
 33  | 
         pNew->wsFlags = (m==0) ? (WHERE_IDX_ONLY|WHERE_INDEXED) : WHERE_INDEXED;  | 
 
| 
142208
 | 
 41  | 
 22  | 
       if( b  | 
 
| 
142209
 | 
 41  | 
 0  | 
        || !HasRowid(pTab)  | 
 
| 
142210
 | 
 41  | 
 0  | 
        || pProbe->pPartIdxWhere!=0  | 
 
| 
142211
 | 
 22  | 
 19  | 
        || ( m==0  | 
 
| 
142212
 | 
 22  | 
 0  | 
          && pProbe->bUnordered==0  | 
 
| 
142213
 | 
 8  | 
 14  | 
          && (pProbe->szIdxRowszTabRow)  | 
 
| 
142214
 | 
 0  | 
 8  | 
          && (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0  | 
 
| 
142215
 | 
 0  | 
 0  | 
          && sqlite3GlobalConfig.bUseCis  | 
 
| 
142216
 | 
 0  | 
 0  | 
          && OptimizationEnabled(pWInfo->pParse->db, SQLITE_CoverIdxScan)  | 
 
| 
142219
 | 
 22  | 
 0  | 
         pNew->iSortIdx = b ? iSortIdx : 0;  | 
 
| 
142225
 | 
 14  | 
 8  | 
         if( m!=0 ){  | 
 
| 
142235
 | 
 42  | 
 14  | 
           for(ii=0; iinTerm; ii++){  | 
 
| 
142237
 | 
 0  | 
 42  | 
             if( !sqlite3ExprCoveredByIndex(pTerm->pExpr, iCur, pProbe) ){  | 
 
| 
142242
 | 
 0  | 
 42  | 
             if( pTerm->truthProb<=0 ){  | 
 
| 
142246
 | 
 0  | 
 42  | 
               if( pTerm->eOperator & (WO_EQ|WO_IS) ) nLookup -= 19;  | 
 
| 
142256
 | 
 0  | 
 22  | 
         if( rc ) break;  | 
 
| 
142262
 | 
 38  | 
 946  | 
     if( pBuilder->bldFlags==SQLITE_BLDF_INDEXED ){  | 
 
| 
142327
 | 
 61  | 
 43  | 
   for(i=0; i
 | 
 
| 
142330
 | 
 61  | 
 0  | 
     if( (pTerm->prereqRight & mUsable)==pTerm->prereqRight   | 
 
| 
142331
 | 
 61  | 
 0  | 
      && (pTerm->eOperator & mExclude)==0  | 
 
| 
142350
 | 
 0  | 
 43  | 
   if( rc ){  | 
 
| 
142351
 | 
 0  | 
 0  | 
     if( rc==SQLITE_CONSTRAINT ){  | 
 
| 
142364
 | 
 61  | 
 43  | 
   for(i=0; iaLTerm[i] = 0;  | 
 
| 
142367
 | 
 61  | 
 43  | 
   for(i=0; i
 | 
 
| 
142369
 | 
 60  | 
 1  | 
     if( (iTerm = pUsage[i].argvIndex - 1)>=0 ){  | 
 
| 
142372
 | 
 60  | 
 0  | 
       if( iTerm>=nConstraint  | 
 
| 
142373
 | 
 60  | 
 0  | 
        || j<0  | 
 
| 
142374
 | 
 60  | 
 0  | 
        || j>=pWC->nTerm  | 
 
| 
142375
 | 
 60  | 
 0  | 
        || pNew->aLTerm[iTerm]!=0  | 
 
| 
142376
 | 
 0  | 
 60  | 
        || pIdxCons->usable==0  | 
 
| 
142389
 | 
 60  | 
 0  | 
       if( iTerm>mxTerm ) mxTerm = iTerm;  | 
 
| 
142392
 | 
 60  | 
 0  | 
       if( iTerm<16 && pUsage[i].omit ) pNew->u.vtab.omitMask |= 1<
 | 
 
| 
 | 
 60  | 
 0  | 
       if( iTerm<16 && pUsage[i].omit ) pNew->u.vtab.omitMask |= 1<
 | 
 
| 
142393
 | 
 0  | 
 60  | 
       if( (pTerm->eOperator & WO_IN)!=0 ){  | 
 
| 
142408
 | 
 60  | 
 43  | 
   for(i=0; i<=mxTerm; i++){  | 
 
| 
142409
 | 
 0  | 
 60  | 
     if( pNew->aLTerm[i]==0 ){  | 
 
| 
142422
 | 
 0  | 
 43  | 
   pNew->u.vtab.isOrdered = (i8)(pIdxInfo->orderByConsumed ?  | 
 
| 
142430
 | 
 2  | 
 41  | 
   if( pIdxInfo->idxFlags & SQLITE_INDEX_SCAN_UNIQUE ){  | 
 
| 
142436
 | 
 0  | 
 43  | 
   if( pNew->u.vtab.needFree ){  | 
 
| 
142457
 | 
 0  | 
 0  | 
   if( iCons>=0 && iConsnConstraint ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( iCons>=0 && iConsnConstraint ){  | 
 
| 
142461
 | 
 0  | 
 0  | 
     if( pX->pLeft ){  | 
 
| 
142464
 | 
 0  | 
 0  | 
     zRet = (pC ? pC->zName : sqlite3StrBINARY);  | 
 
| 
142520
 | 
 0  | 
 43  | 
   if( p==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
142526
 | 
 0  | 
 43  | 
   if( whereLoopResize(pParse->db, pNew, nConstraint) ){  | 
 
| 
142541
 | 
 43  | 
 0  | 
   if( rc==SQLITE_OK && (mBest = (pNew->prereq & ~mPrereq))!=0 ){  | 
 
| 
 | 
 0  | 
 43  | 
   if( rc==SQLITE_OK && (mBest = (pNew->prereq & ~mPrereq))!=0 ){  | 
 
| 
142549
 | 
 0  | 
 0  | 
     if( bIn ){  | 
 
| 
142555
 | 
 0  | 
 0  | 
       if( mBestNoIn==0 ){  | 
 
| 
142563
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK ){  | 
 
| 
142567
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
142571
 | 
 0  | 
 0  | 
         if( mThis>mPrev && mThis
 | 
 
| 
 | 
 0  | 
 0  | 
         if( mThis>mPrev && mThis
 | 
 
| 
142574
 | 
 0  | 
 0  | 
       if( mNext==ALLBITS ) break;  | 
 
| 
142575
 | 
 0  | 
 0  | 
       if( mNext==mBest || mNext==mBestNoIn ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
       if( mNext==mBest || mNext==mBestNoIn ) continue;  | 
 
| 
142580
 | 
 0  | 
 0  | 
       if( pNew->prereq==mPrereq ){  | 
 
| 
142582
 | 
 0  | 
 0  | 
         if( bIn==0 ) seenZeroNoIN = 1;  | 
 
| 
142589
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && seenZero==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && seenZero==0 ){  | 
 
| 
142593
 | 
 0  | 
 0  | 
       if( bIn==0 ) seenZeroNoIN = 1;  | 
 
| 
142599
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && seenZeroNoIN==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && seenZeroNoIN==0 ){  | 
 
| 
142606
 | 
 0  | 
 43  | 
   if( p->needToFreeIdxStr ) sqlite3_free(p->idxStr);  | 
 
| 
142640
 | 
 22  | 
 11  | 
   for(pTerm=pWC->a; pTerm
 | 
 
| 
 | 
 22  | 
 0  | 
   for(pTerm=pWC->a; pTerm
 | 
 
| 
142641
 | 
 4  | 
 18  | 
     if( (pTerm->eOperator & WO_OR)!=0  | 
 
| 
142642
 | 
 4  | 
 0  | 
      && (pTerm->u.pOrInfo->indexable & pNew->maskSelf)!=0   | 
 
| 
142655
 | 
 10  | 
 3  | 
       for(pOrTerm=pOrWC->a; pOrTerm
 | 
 
| 
142656
 | 
 6  | 
 4  | 
         if( (pOrTerm->eOperator & WO_AND)!=0 ){  | 
 
| 
142658
 | 
 2  | 
 2  | 
         }else if( pOrTerm->leftCursor==iCur ){  | 
 
| 
142677
 | 
 0  | 
 8  | 
         if( IsVirtual(pItem->pTab) ){  | 
 
| 
142684
 | 
 8  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
142688
 | 
 1  | 
 7  | 
         if( sCur.n==0 ){  | 
 
| 
142691
 | 
 3  | 
 4  | 
         }else if( once ){  | 
 
| 
142698
 | 
 4  | 
 4  | 
           for(i=0; i
 | 
 
| 
142699
 | 
 4  | 
 4  | 
             for(j=0; j
 | 
 
| 
142713
 | 
 7  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 3  | 
 4  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
142757
 | 
 956  | 
 1377  | 
   for(iTab=0, pItem=pTabList->a; pItem
 | 
 
| 
142762
 | 
 0  | 
 956  | 
     if( ((pItem->fg.jointype|priorJointype) & (JT_LEFT|JT_CROSS))!=0 ){  | 
 
| 
142769
 | 
 43  | 
 913  | 
     if( IsVirtual(pItem->pTab) ){  | 
 
| 
142771
 | 
 0  | 
 43  | 
       for(p=&pItem[1]; p
 | 
 
| 
142772
 | 
 0  | 
 0  | 
         if( mUnusable || (p->fg.jointype & (JT_LEFT|JT_CROSS)) ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( mUnusable || (p->fg.jointype & (JT_LEFT|JT_CROSS)) ){  | 
 
| 
142782
 | 
 956  | 
 0  | 
     if( rc==SQLITE_OK && pBuilder->pWC->hasOr ){  | 
 
| 
 | 
 3  | 
 953  | 
     if( rc==SQLITE_OK && pBuilder->pWC->hasOr ){  | 
 
| 
142786
 | 
 956  | 
 0  | 
     if( rc || db->mallocFailed ){  | 
 
| 
 | 
 0  | 
 956  | 
     if( rc || db->mallocFailed ){  | 
 
| 
142787
 | 
 0  | 
 0  | 
       if( rc==SQLITE_DONE ){  | 
 
| 
142875
 | 
 2  | 
 1127  | 
   if( nLoop && OptimizationDisabled(db, SQLITE_OrderByIdxJoin) ) return 0;  | 
 
| 
 | 
 0  | 
 2  | 
   if( nLoop && OptimizationDisabled(db, SQLITE_OrderByIdxJoin) ) return 0;  | 
 
| 
142879
 | 
 0  | 
 1129  | 
   if( nOrderBy>BMS-1 ) return 0;  /* Cannot optimize overly large ORDER BYs */  | 
 
| 
142885
 | 
 586  | 
 543  | 
   if( wctrlFlags & WHERE_ORDERBY_LIMIT ) eqOpMask |= WO_IN;  | 
 
| 
142886
 | 
 1977  | 
 281  | 
   for(iLoop=0; isOrderDistinct && obSat
 | 
 
| 
 | 
 1131  | 
 846  | 
   for(iLoop=0; isOrderDistinct && obSat
 | 
 
| 
 | 
 1131  | 
 0  | 
   for(iLoop=0; isOrderDistinct && obSat
 | 
 
| 
142887
 | 
 2  | 
 1129  | 
     if( iLoop>0 ) ready |= pLoop->maskSelf;  | 
 
| 
142888
 | 
 2  | 
 1129  | 
     if( iLoop
 | 
 
| 
142890
 | 
 2  | 
 0  | 
       if( wctrlFlags & WHERE_ORDERBY_LIMIT ) continue;  | 
 
| 
142894
 | 
 0  | 
 1129  | 
     if( pLoop->wsFlags & WHERE_VIRTUALTABLE ){  | 
 
| 
142895
 | 
 0  | 
 0  | 
       if( pLoop->u.vtab.isOrdered ) obSat = obDone;  | 
 
| 
142907
 | 
 1272  | 
 1129  | 
     for(i=0; i
 | 
 
| 
142908
 | 
 0  | 
 1272  | 
       if( MASKBIT(i) & obSat ) continue;  | 
 
| 
142910
 | 
 0  | 
 1272  | 
       if( pOBExpr->op!=TK_COLUMN ) continue;  | 
 
| 
142911
 | 
 7  | 
 1265  | 
       if( pOBExpr->iTable!=iCur ) continue;  | 
 
| 
142914
 | 
 1259  | 
 6  | 
       if( pTerm==0 ) continue;  | 
 
| 
142915
 | 
 0  | 
 6  | 
       if( pTerm->eOperator==WO_IN ){  | 
 
| 
142920
 | 
 0  | 
 0  | 
         for(j=0; jnLTerm && pTerm!=pLoop->aLTerm[j]; j++){}  | 
 
| 
 | 
 0  | 
 0  | 
         for(j=0; jnLTerm && pTerm!=pLoop->aLTerm[j]; j++){}  | 
 
| 
142921
 | 
 0  | 
 0  | 
         if( j>=pLoop->nLTerm ) continue;  | 
 
| 
142923
 | 
 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 ){  | 
 
| 
142924
 | 
 0  | 
 6  | 
         if( sqlite3ExprCollSeqMatch(pWInfo->pParse,   | 
 
| 
142933
 | 
 1129  | 
 0  | 
     if( (pLoop->wsFlags & WHERE_ONEROW)==0 ){  | 
 
| 
142934
 | 
 1084  | 
 45  | 
       if( pLoop->wsFlags & WHERE_IPK ){  | 
 
| 
142938
 | 
 43  | 
 2  | 
       }else if( (pIndex = pLoop->u.btree.pIndex)==0 || pIndex->bUnordered ){  | 
 
| 
 | 
 0  | 
 43  | 
       }else if( (pIndex = pLoop->u.btree.pIndex)==0 || pIndex->bUnordered ){  | 
 
| 
142954
 | 
 1183  | 
 846  | 
       for(j=0; j
 | 
 
| 
142960
 | 
 14  | 
 1169  | 
         if( ju.btree.nEq && j>=pLoop->nSkip ){  | 
 
| 
 | 
 14  | 
 0  | 
         if( ju.btree.nEq && j>=pLoop->nSkip ){  | 
 
| 
142971
 | 
 14  | 
 0  | 
           if( (eOp & eqOpMask)!=0 ){  | 
 
| 
142972
 | 
 0  | 
 14  | 
             if( eOp & WO_ISNULL ){  | 
 
| 
142977
 | 
 0  | 
 0  | 
           }else if( ALWAYS(eOp & WO_IN) ){  | 
 
| 
142983
 | 
 0  | 
 0  | 
             for(i=j+1; iu.btree.nEq; i++){  | 
 
| 
142984
 | 
 0  | 
 0  | 
               if( pLoop->aLTerm[i]->pExpr==pX ){  | 
 
| 
142996
 | 
 85  | 
 1084  | 
         if( pIndex ){  | 
 
| 
142999
 | 
 14  | 
 71  | 
           if( iColumn==pIndex->pTable->iPKey ) iColumn = XN_ROWID;  | 
 
| 
143008
 | 
 1126  | 
 43  | 
         if( isOrderDistinct  | 
 
| 
143009
 | 
 42  | 
 1084  | 
          && iColumn>=0  | 
 
| 
143010
 | 
 42  | 
 0  | 
          && j>=pLoop->u.btree.nEq  | 
 
| 
143011
 | 
 42  | 
 0  | 
          && pIndex->pTable->aCol[iColumn].notNull==0  | 
 
| 
143020
 | 
 1237  | 
 219  | 
         for(i=0; bOnce && i
 | 
 
| 
 | 
 1203  | 
 34  | 
         for(i=0; bOnce && i
 | 
 
| 
143021
 | 
 48  | 
 1155  | 
           if( MASKBIT(i) & obSat ) continue;  | 
 
| 
143025
 | 
 1133  | 
 22  | 
           if( (wctrlFlags & (WHERE_GROUPBY|WHERE_DISTINCTBY))==0 ) bOnce = 0;  | 
 
| 
143026
 | 
 1155  | 
 0  | 
           if( iColumn>=XN_ROWID ){  | 
 
| 
143027
 | 
 0  | 
 1155  | 
             if( pOBExpr->op!=TK_COLUMN ) continue;  | 
 
| 
143028
 | 
 5  | 
 1150  | 
             if( pOBExpr->iTable!=iCur ) continue;  | 
 
| 
143029
 | 
 234  | 
 916  | 
             if( pOBExpr->iColumn!=iColumn ) continue;  | 
 
| 
143032
 | 
 0  | 
 0  | 
             if( sqlite3ExprCompareSkip(pOBExpr, pIdxExpr, iCur) ){  | 
 
| 
143036
 | 
 70  | 
 846  | 
           if( iColumn!=XN_ROWID ){  | 
 
| 
143038
 | 
 0  | 
 70  | 
             if( sqlite3StrICmp(pColl->zName, pIndex->azColl[j])!=0 ) continue;  | 
 
| 
143044
 | 
 916  | 
 253  | 
         if( isMatch && (wctrlFlags & WHERE_GROUPBY)==0 ){  | 
 
| 
 | 
 916  | 
 0  | 
         if( isMatch && (wctrlFlags & WHERE_GROUPBY)==0 ){  | 
 
| 
143047
 | 
 28  | 
 888  | 
           if( revSet ){  | 
 
| 
143048
 | 
 28  | 
 0  | 
             if( (rev ^ revIdx)!=pOrderBy->a[i].sortOrder ) isMatch = 0;  | 
 
| 
143051
 | 
 56  | 
 832  | 
             if( rev ) *pRevMask |= MASKBIT(iLoop);  | 
 
| 
143055
 | 
 888  | 
 281  | 
         if( isMatch ){  | 
 
| 
143056
 | 
 846  | 
 42  | 
           if( iColumn==XN_ROWID ){  | 
 
| 
143063
 | 
 42  | 
 239  | 
           if( j==0 || j
 | 
 
| 
 | 
 28  | 
 14  | 
           if( j==0 || j
 | 
 
| 
143070
 | 
 846  | 
 281  | 
       if( distinctColumns ){  | 
 
| 
143077
 | 
 846  | 
 281  | 
     if( isOrderDistinct ){  | 
 
| 
143079
 | 
 848  | 
 846  | 
       for(i=0; i
 | 
 
| 
143082
 | 
 846  | 
 2  | 
         if( MASKBIT(i) & obSat ) continue;  | 
 
| 
143085
 | 
 0  | 
 2  | 
         if( mTerm==0 && !sqlite3ExprIsConstant(p) ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
         if( mTerm==0 && !sqlite3ExprIsConstant(p) ) continue;  | 
 
| 
143086
 | 
 2  | 
 0  | 
         if( (mTerm&~orderDistinctMask)==0 ){  | 
 
| 
143092
 | 
 864  | 
 263  | 
   if( obSat==obDone ) return (i8)nOrderBy;  | 
 
| 
143093
 | 
 263  | 
 0  | 
   if( !isOrderDistinct ){  | 
 
| 
143094
 | 
 141  | 
 233  | 
     for(i=nOrderBy-1; i>0; i--){  | 
 
| 
143096
 | 
 30  | 
 111  | 
       if( (obSat&m)==m ) return i;  | 
 
| 
143176
 | 
 0  | 
 109  | 
   if( (pWInfo->wctrlFlags & WHERE_USE_LIMIT)!=0 && pWInfo->iLimit
 | 
 
| 
 | 
 0  | 
 0  | 
   if( (pWInfo->wctrlFlags & WHERE_USE_LIMIT)!=0 && pWInfo->iLimit
 | 
 
| 
143223
 | 
 6  | 
 1889  | 
   mxChoice = (nLoop<=1) ? 1 : (nLoop==2 ? 5 : 10);  | 
 
| 
 | 
 6  | 
 0  | 
   mxChoice = (nLoop<=1) ? 1 : (nLoop==2 ? 5 : 10);  | 
 
| 
143232
 | 
 1036  | 
 859  | 
   if( pWInfo->pOrderBy==0 || nRowEst==0 ){  | 
 
| 
 | 
 518  | 
 518  | 
   if( pWInfo->pOrderBy==0 || nRowEst==0 ){  | 
 
| 
143242
 | 
 0  | 
 1895  | 
   if( pSpace==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
143247
 | 
 3838  | 
 1895  | 
   for(ii=mxChoice*2, pFrom=aTo; ii>0; ii--, pFrom++, pX += nLoop){  | 
 
| 
143250
 | 
 518  | 
 1377  | 
   if( nOrderBy ){  | 
 
| 
143271
 | 
 518  | 
 1377  | 
   if( nOrderBy ){  | 
 
| 
143278
 | 
 0  | 
 518  | 
     aFrom[0].isOrdered = nLoop>0 ? -1 : nOrderBy;  | 
 
| 
143284
 | 
 1477  | 
 1895  | 
   for(iLoop=0; iLoop
 | 
 
| 
143286
 | 
 1483  | 
 1477  | 
     for(ii=0, pFrom=aFrom; ii
 | 
 
| 
143287
 | 
 2183  | 
 1483  | 
       for(pWLoop=pWInfo->pLoops; pWLoop; pWLoop=pWLoop->pNextLoop){  | 
 
| 
143295
 | 
 16  | 
 2167  | 
         if( (pWLoop->prereq & ~pFrom->maskLoop)!=0 ) continue;  | 
 
| 
143296
 | 
 16  | 
 2151  | 
         if( (pWLoop->maskSelf & pFrom->maskLoop)!=0 ) continue;  | 
 
| 
143297
 | 
 614  | 
 1537  | 
         if( (pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 && pFrom->nRow<3 ){  | 
 
| 
 | 
 606  | 
 8  | 
         if( (pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 && pFrom->nRow<3 ){  | 
 
| 
143312
 | 
 543  | 
 1002  | 
         if( isOrdered<0 ){  | 
 
| 
143319
 | 
 1545  | 
 0  | 
         if( isOrdered>=0 && isOrdered
 | 
 
| 
 | 
 118  | 
 1427  | 
         if( isOrdered>=0 && isOrdered
 | 
 
| 
143320
 | 
 109  | 
 9  | 
           if( aSortCost[isOrdered]==0 ){  | 
 
| 
143351
 | 
 68  | 
 1483  | 
         for(jj=0, pTo=aTo; jj
 | 
 
| 
143352
 | 
 62  | 
 6  | 
           if( pTo->maskLoop==maskNew  | 
 
| 
143353
 | 
 62  | 
 0  | 
            && ((pTo->isOrdered^isOrdered)&0x80)==0  | 
 
| 
143359
 | 
 1483  | 
 62  | 
         if( jj>=nTo ){  | 
 
| 
143361
 | 
 0  | 
 1483  | 
           if( nTo>=mxChoice  | 
 
| 
143362
 | 
 0  | 
 0  | 
            && (rCost>mxCost || (rCost==mxCost && rUnsorted>=mxUnsorted))  | 
 
| 
 | 
 0  | 
 0  | 
            && (rCost>mxCost || (rCost==mxCost && rUnsorted>=mxUnsorted))  | 
 
| 
 | 
 0  | 
 0  | 
            && (rCost>mxCost || (rCost==mxCost && rUnsorted>=mxUnsorted))  | 
 
| 
143378
 | 
 1483  | 
 0  | 
           if( nTo
 | 
 
| 
143402
 | 
 49  | 
 13  | 
           if( pTo->rCost
 | 
 
| 
143403
 | 
 3  | 
 46  | 
            || (pTo->rCost==rCost  | 
 
| 
143404
 | 
 3  | 
 0  | 
                && (pTo->nRow
 | 
 
| 
143405
 | 
 3  | 
 0  | 
                    || (pTo->nRow==nOut && pTo->rUnsorted<=rUnsorted)  | 
 
| 
 | 
 3  | 
 0  | 
                    || (pTo->nRow==nOut && pTo->rUnsorted<=rUnsorted)  | 
 
| 
143448
 | 
 1507  | 
 22  | 
         if( nTo>=mxChoice ){  | 
 
| 
143452
 | 
 0  | 
 1507  | 
           for(jj=1, pTo=&aTo[1]; jj
 | 
 
| 
143453
 | 
 0  | 
 0  | 
             if( pTo->rCost>mxCost   | 
 
| 
143454
 | 
 0  | 
 0  | 
              || (pTo->rCost==mxCost && pTo->rUnsorted>mxUnsorted)   | 
 
| 
 | 
 0  | 
 0  | 
              || (pTo->rCost==mxCost && pTo->rUnsorted>mxUnsorted)   | 
 
| 
143488
 | 
 0  | 
 1895  | 
   if( nFrom==0 ){  | 
 
| 
143496
 | 
 0  | 
 1895  | 
   for(ii=1; ii
 | 
 
| 
143497
 | 
 0  | 
 0  | 
     if( pFrom->rCost>aFrom[ii].rCost ) pFrom = &aFrom[ii];  | 
 
| 
143501
 | 
 1477  | 
 1895  | 
   for(iLoop=0; iLoop
 | 
 
| 
143507
 | 
 4  | 
 1891  | 
   if( (pWInfo->wctrlFlags & WHERE_WANT_DISTINCT)!=0  | 
 
| 
143508
 | 
 0  | 
 4  | 
    && (pWInfo->wctrlFlags & WHERE_DISTINCTBY)==0  | 
 
| 
143509
 | 
 0  | 
 0  | 
    && pWInfo->eDistinct==WHERE_DISTINCT_NOOP  | 
 
| 
143510
 | 
 0  | 
 0  | 
    && nRowEst  | 
 
| 
143515
 | 
 0  | 
 0  | 
     if( rc==pWInfo->pResultSet->nExpr ){  | 
 
| 
143520
 | 
 1036  | 
 859  | 
   if( pWInfo->pOrderBy ){  | 
 
| 
143521
 | 
 4  | 
 1032  | 
     if( pWInfo->wctrlFlags & WHERE_DISTINCTBY ){  | 
 
| 
143522
 | 
 0  | 
 4  | 
       if( pFrom->isOrdered==pWInfo->pOrderBy->nExpr ){  | 
 
| 
143528
 | 
 586  | 
 446  | 
       if( pWInfo->nOBSat<=0 ){  | 
 
| 
143530
 | 
 586  | 
 0  | 
         if( nLoop>0 ){  | 
 
| 
143532
 | 
 586  | 
 0  | 
           if( (wsFlags & WHERE_ONEROW)==0   | 
 
| 
143533
 | 
 586  | 
 0  | 
            && (wsFlags&(WHERE_IPK|WHERE_COLUMN_IN))!=(WHERE_IPK|WHERE_COLUMN_IN)  | 
 
| 
143540
 | 
 431  | 
 155  | 
             if( rc==pWInfo->pOrderBy->nExpr ){  | 
 
| 
143548
 | 
 0  | 
 1036  | 
     if( (pWInfo->wctrlFlags & WHERE_SORTBYGROUP)  | 
 
| 
143549
 | 
 0  | 
 0  | 
         && pWInfo->nOBSat==pWInfo->pOrderBy->nExpr && nLoop>0  | 
 
| 
 | 
 0  | 
 0  | 
         && pWInfo->nOBSat==pWInfo->pOrderBy->nExpr && nLoop>0  | 
 
| 
143556
 | 
 0  | 
 0  | 
       if( nOrder==pWInfo->pOrderBy->nExpr ){  | 
 
| 
143594
 | 
 5  | 
 1378  | 
   if( pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE ) return 0;  | 
 
| 
143598
 | 
 43  | 
 1335  | 
   if( IsVirtual(pTab) ) return 0;  | 
 
| 
143599
 | 
 0  | 
 1335  | 
   if( pItem->fg.isIndexedBy ) return 0;  | 
 
| 
143606
 | 
 428  | 
 907  | 
   if( pTerm ){  | 
 
| 
143615
 | 
 56  | 
 902  | 
     for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){  | 
 
| 
143618
 | 
 54  | 
 2  | 
       if( !IsUniqueIndex(pIdx)  | 
 
| 
143619
 | 
 54  | 
 0  | 
        || pIdx->pPartIdxWhere!=0   | 
 
| 
143620
 | 
 1  | 
 53  | 
        || pIdx->nKeyCol>ArraySize(pLoop->aLTermSpace)   | 
 
| 
143622
 | 
 8  | 
 45  | 
       opMask = pIdx->uniqNotNull ? (WO_EQ|WO_IS) : WO_EQ;  | 
 
| 
143623
 | 
 67  | 
 5  | 
       for(j=0; jnKeyCol; j++){  | 
 
| 
143625
 | 
 48  | 
 19  | 
         if( pTerm==0 ) break;  | 
 
| 
143629
 | 
 48  | 
 5  | 
       if( j!=pIdx->nKeyCol ) continue;  | 
 
| 
143631
 | 
 5  | 
 0  | 
       if( pIdx->isCovering || (pItem->colUsed & pIdx->colNotIdxed)==0 ){  | 
 
| 
 | 
 0  | 
 5  | 
       if( pIdx->isCovering || (pItem->colUsed & pIdx->colNotIdxed)==0 ){  | 
 
| 
143642
 | 
 433  | 
 902  | 
   if( pLoop->wsFlags ){  | 
 
| 
143649
 | 
 0  | 
 433  | 
     if( pWInfo->pOrderBy ) pWInfo->nOBSat =  pWInfo->pOrderBy->nExpr;  | 
 
| 
143650
 | 
 0  | 
 433  | 
     if( pWInfo->wctrlFlags & WHERE_WANT_DISTINCT ){  | 
 
| 
143665
 | 
 9  | 
 32  | 
   if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_ConstFunc)==0 ){  | 
 
| 
 | 
 0  | 
 9  | 
   if( pExpr->op==TK_FUNCTION && ExprHasProperty(pExpr, EP_ConstFunc)==0 ){  | 
 
| 
143814
 | 
 516  | 
 1294  | 
   if( pOrderBy && pOrderBy->nExpr>=BMS ) pOrderBy = 0;  | 
 
| 
 | 
 0  | 
 516  | 
   if( pOrderBy && pOrderBy->nExpr>=BMS ) pOrderBy = 0;  | 
 
| 
143819
 | 
 0  | 
 1810  | 
   if( OptimizationDisabled(db, SQLITE_DistinctOpt) ){  | 
 
| 
143827
 | 
 0  | 
 1810  | 
   if( pTabList->nSrc>BMS ){  | 
 
| 
143837
 | 
 1805  | 
 5  | 
   nTabList = (wctrlFlags & WHERE_OR_SUBCLAUSE) ? 1 : pTabList->nSrc;  | 
 
| 
143848
 | 
 0  | 
 1810  | 
   if( db->mallocFailed ){  | 
 
| 
143887
 | 
 424  | 
 1386  | 
   if( nTabList==0 ){  | 
 
| 
143888
 | 
 0  | 
 424  | 
     if( pOrderBy ) pWInfo->nOBSat = pOrderBy->nExpr;  | 
 
| 
143889
 | 
 0  | 
 424  | 
     if( wctrlFlags & WHERE_WANT_DISTINCT ){  | 
 
| 
143912
 | 
 3  | 
 1386  | 
     }while( (++ii)nSrc );  | 
 
| 
143927
 | 
 0  | 
 1810  | 
   if( db->mallocFailed ) goto whereBeginError;  | 
 
| 
143940
 | 
 1631  | 
 1810  | 
   for(ii=0; iinTerm; ii++){  | 
 
| 
143942
 | 
 304  | 
 1327  | 
     if( pT->wtFlags & TERM_VIRTUAL ) continue;  | 
 
| 
143943
 | 
 62  | 
 1265  | 
     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)) ){  | 
 
| 
143949
 | 
 2  | 
 1808  | 
   if( wctrlFlags & WHERE_WANT_DISTINCT ){  | 
 
| 
143950
 | 
 0  | 
 2  | 
     if( isDistinctRedundant(pParse, pTabList, &pWInfo->sWC, pResultSet) ){  | 
 
| 
143953
 | 
 2  | 
 0  | 
     }else if( pOrderBy==0 ){  | 
 
| 
143974
 | 
 1383  | 
 427  | 
   if( nTabList!=1 || whereShortCut(&sWLB)==0 ){  | 
 
| 
 | 
 950  | 
 433  | 
   if( nTabList!=1 || whereShortCut(&sWLB)==0 ){  | 
 
| 
143976
 | 
 0  | 
 1377  | 
     if( rc ) goto whereBeginError;  | 
 
| 
143992
 | 
 0  | 
 1377  | 
     if( db->mallocFailed ) goto whereBeginError;  | 
 
| 
143993
 | 
 518  | 
 859  | 
     if( pWInfo->pOrderBy ){  | 
 
| 
143995
 | 
 0  | 
 518  | 
        if( db->mallocFailed ) goto whereBeginError;  | 
 
| 
143998
 | 
 1292  | 
 518  | 
   if( pWInfo->pOrderBy==0 && (db->flags & SQLITE_ReverseOrder)!=0 ){  | 
 
| 
 | 
 0  | 
 1292  | 
   if( pWInfo->pOrderBy==0 && (db->flags & SQLITE_ReverseOrder)!=0 ){  | 
 
| 
144001
 | 
 1810  | 
 0  | 
   if( pParse->nErr || NEVER(db->mallocFailed) ){  | 
 
| 
 | 
 1810  | 
 0  | 
   if( pParse->nErr || NEVER(db->mallocFailed) ){  | 
 
| 
144061
 | 
 3  | 
 1807  | 
   if( pWInfo->nLevel>=2  | 
 
| 
144062
 | 
 2  | 
 1  | 
    && pResultSet!=0               /* guarantees condition (1) above */  | 
 
| 
144063
 | 
 2  | 
 0  | 
    && OptimizationEnabled(db, SQLITE_OmitNoopJoin)  | 
 
| 
144067
 | 
 0  | 
 2  | 
     if( sWLB.pOrderBy ){  | 
 
| 
144070
 | 
 2  | 
 2  | 
     for(i=pWInfo->nLevel-1; i>=1; i--){  | 
 
| 
144075
 | 
 2  | 
 0  | 
       if( (pItem->fg.jointype & JT_LEFT)==0 ) continue;  | 
 
| 
144076
 | 
 0  | 
 0  | 
       if( (wctrlFlags & WHERE_WANT_DISTINCT)==0  | 
 
| 
144077
 | 
 0  | 
 0  | 
        && (pLoop->wsFlags & WHERE_ONEROW)==0  | 
 
| 
144081
 | 
 0  | 
 0  | 
       if( (tabUsed & pLoop->maskSelf)!=0 ) continue;  | 
 
| 
144083
 | 
 0  | 
 0  | 
       for(pTerm=sWLB.pWC->a; pTerm
 | 
 
| 
144084
 | 
 0  | 
 0  | 
         if( (pTerm->prereqAll & pLoop->maskSelf)!=0 ){  | 
 
| 
144085
 | 
 0  | 
 0  | 
           if( !ExprHasProperty(pTerm->pExpr, EP_FromJoin)  | 
 
| 
144086
 | 
 0  | 
 0  | 
            || pTerm->pExpr->iRightJoinTable!=pItem->iCursor  | 
 
| 
144092
 | 
 0  | 
 0  | 
       if( pTerm
 | 
 
| 
144095
 | 
 0  | 
 0  | 
       for(pTerm=sWLB.pWC->a; pTerm
 | 
 
| 
144096
 | 
 0  | 
 0  | 
         if( (pTerm->prereqAll & pLoop->maskSelf)!=0 ){  | 
 
| 
144100
 | 
 0  | 
 0  | 
       if( i!=pWInfo->nLevel-1 ){  | 
 
| 
144131
 | 
 263  | 
 1547  | 
   if( (wctrlFlags & WHERE_ONEPASS_DESIRED)!=0 ){  | 
 
| 
144134
 | 
 34  | 
 229  | 
     if( bOnerow || (  | 
 
| 
 | 
 27  | 
 7  | 
     if( bOnerow || (  | 
 
| 
144136
 | 
 27  | 
 0  | 
      && 0==(wsFlags & WHERE_VIRTUALTABLE)  | 
 
| 
144137
 | 
 0  | 
 27  | 
      && (0==(wsFlags & WHERE_MULTI_OR) || (wctrlFlags & WHERE_DUPLICATES_OK))  | 
 
| 
 | 
 0  | 
 0  | 
      && (0==(wsFlags & WHERE_MULTI_OR) || (wctrlFlags & WHERE_DUPLICATES_OK))  | 
 
| 
144139
 | 
 229  | 
 27  | 
       pWInfo->eOnePass = bOnerow ? ONEPASS_SINGLE : ONEPASS_MULTI;  | 
 
| 
144140
 | 
 256  | 
 0  | 
       if( HasRowid(pTabList->a[0].pTab) && (wsFlags & WHERE_IDX_ONLY) ){  | 
 
| 
 | 
 8  | 
 248  | 
       if( HasRowid(pTabList->a[0].pTab) && (wsFlags & WHERE_IDX_ONLY) ){  | 
 
| 
144141
 | 
 8  | 
 0  | 
         if( wctrlFlags & WHERE_ONEPASS_MULTIROW ){  | 
 
| 
144152
 | 
 1389  | 
 1810  | 
   for(ii=0, pLevel=pWInfo->a; ii
 | 
 
| 
144161
 | 
 1367  | 
 22  | 
     if( (pTab->tabFlags & TF_Ephemeral)!=0 || pTab->pSelect ){  | 
 
| 
 | 
 1367  | 
 0  | 
     if( (pTab->tabFlags & TF_Ephemeral)!=0 || pTab->pSelect ){  | 
 
| 
144165
 | 
 43  | 
 1324  | 
     if( (pLoop->wsFlags & WHERE_VIRTUALTABLE)!=0 ){  | 
 
| 
144169
 | 
 1324  | 
 0  | 
     }else if( IsVirtual(pTab) ){  | 
 
| 
144173
 | 
 1313  | 
 11  | 
     if( (pLoop->wsFlags & WHERE_IDX_ONLY)==0  | 
 
| 
144174
 | 
 1312  | 
 1  | 
          && (wctrlFlags & WHERE_OR_SUBCLAUSE)==0 ){  | 
 
| 
144176
 | 
 256  | 
 1056  | 
       if( pWInfo->eOnePass!=ONEPASS_OFF ){  | 
 
| 
144184
 | 
 1056  | 
 256  | 
       if( pWInfo->eOnePass==ONEPASS_OFF && pTab->nCol
 | 
 
| 
 | 
 1056  | 
 0  | 
       if( pWInfo->eOnePass==ONEPASS_OFF && pTab->nCol
 | 
 
| 
 | 
 1056  | 
 0  | 
       if( pWInfo->eOnePass==ONEPASS_OFF && pTab->nCol
 | 
 
| 
144187
 | 
 3514  | 
 1056  | 
         for(; b; b=b>>1, n++){}  | 
 
| 
144206
 | 
 38  | 
 1351  | 
     if( pLoop->wsFlags & WHERE_INDEXED ){  | 
 
| 
144212
 | 
 0  | 
 38  | 
       if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIx)  | 
 
| 
 | 
 0  | 
 0  | 
       if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIx)  | 
 
| 
144213
 | 
 0  | 
 0  | 
        && (wctrlFlags & WHERE_OR_SUBCLAUSE)!=0  | 
 
| 
144219
 | 
 8  | 
 30  | 
       }else if( pWInfo->eOnePass!=ONEPASS_OFF ){  | 
 
| 
144223
 | 
 8  | 
 0  | 
         while( ALWAYS(pJ) && pJ!=pIx ){  | 
 
| 
 | 
 0  | 
 8  | 
         while( ALWAYS(pJ) && pJ!=pIx ){  | 
 
| 
144229
 | 
 23  | 
 7  | 
       }else if( iAuxArg && (wctrlFlags & WHERE_OR_SUBCLAUSE)!=0 ){  | 
 
| 
 | 
 4  | 
 19  | 
       }else if( iAuxArg && (wctrlFlags & WHERE_OR_SUBCLAUSE)!=0 ){  | 
 
| 
144238
 | 
 38  | 
 0  | 
       if( op ){  | 
 
| 
144241
 | 
 38  | 
 0  | 
         if( (pLoop->wsFlags & WHERE_CONSTRAINT)!=0  | 
 
| 
144242
 | 
 21  | 
 17  | 
          && (pLoop->wsFlags & (WHERE_COLUMN_RANGE|WHERE_SKIPSCAN))==0  | 
 
| 
144243
 | 
 21  | 
 0  | 
          && (pWInfo->wctrlFlags&WHERE_ORDERBY_MIN)==0  | 
 
| 
144244
 | 
 21  | 
 0  | 
          && pWInfo->eDistinct!=WHERE_DISTINCT_ORDERED  | 
 
| 
144266
 | 
 1367  | 
 22  | 
     if( iDb>=0 ) sqlite3CodeVerifySchema(pParse, iDb);  | 
 
| 
144269
 | 
 0  | 
 1810  | 
   if( db->mallocFailed ) goto whereBeginError;  | 
 
| 
144275
 | 
 1389  | 
 1810  | 
   for(ii=0; ii
 | 
 
| 
144281
 | 
 1  | 
 1388  | 
     if( (pLevel->pWLoop->wsFlags & WHERE_AUTO_INDEX)!=0 ){  | 
 
| 
144284
 | 
 0  | 
 1  | 
       if( db->mallocFailed ) goto whereBeginError;  | 
 
| 
144293
 | 
 1387  | 
 2  | 
     if( (wsFlags&WHERE_MULTI_OR)==0 && (wctrlFlags&WHERE_OR_SUBCLAUSE)==0 ){  | 
 
| 
144304
 | 
 0  | 
 0  | 
   if( pWInfo ){  | 
 
| 
144347
 | 
 1389  | 
 1810  | 
   for(i=pWInfo->nLevel-1; i>=0; i--){  | 
 
| 
144351
 | 
 953  | 
 436  | 
     if( pLevel->op!=OP_Noop ){  | 
 
| 
144356
 | 
 0  | 
 953  | 
       if( pWInfo->eDistinct==WHERE_DISTINCT_ORDERED  | 
 
| 
144357
 | 
 0  | 
 0  | 
        && i==pWInfo->nLevel-1  /* Ticket [ef9318757b152e3] 2017-10-21 */  | 
 
| 
144358
 | 
 0  | 
 0  | 
        && (pLoop->wsFlags & WHERE_INDEXED)!=0  | 
 
| 
144359
 | 
 0  | 
 0  | 
        && (pIdx = pLoop->u.btree.pIndex)->hasStat1  | 
 
| 
144360
 | 
 0  | 
 0  | 
        && (n = pLoop->u.btree.nIdxCol)>0  | 
 
| 
144361
 | 
 0  | 
 0  | 
        && pIdx->aiRowLogEst[n]>=36  | 
 
| 
144365
 | 
 0  | 
 0  | 
         for(j=0; j
 | 
 
| 
144369
 | 
 0  | 
 0  | 
         op = pLevel->op==OP_Prev ? OP_SeekLT : OP_SeekGT;  | 
 
| 
144385
 | 
 0  | 
 953  | 
       if( addrSeek ) sqlite3VdbeJumpHere(v, addrSeek);  | 
 
| 
144390
 | 
 0  | 
 1389  | 
     if( pLoop->wsFlags & WHERE_IN_ABLE && pLevel->u.in.nIn>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pLoop->wsFlags & WHERE_IN_ABLE && pLevel->u.in.nIn>0 ){  | 
 
| 
144394
 | 
 0  | 
 0  | 
       for(j=pLevel->u.in.nIn, pIn=&pLevel->u.in.aInLoop[j-1]; j>0; j--, pIn--){  | 
 
| 
144396
 | 
 0  | 
 0  | 
         if( pIn->eEndLoopOp!=OP_Noop ){  | 
 
| 
144397
 | 
 0  | 
 0  | 
           if( pIn->nPrefix ){  | 
 
| 
144413
 | 
 0  | 
 1389  | 
     if( pLevel->addrSkip ){  | 
 
| 
144420
 | 
 0  | 
 1389  | 
     if( pLevel->addrLikeRep ){  | 
 
| 
144426
 | 
 0  | 
 1389  | 
     if( pLevel->iLeftJoin ){  | 
 
| 
144430
 | 
 0  | 
 0  | 
       if( (ws & WHERE_IDX_ONLY)==0 ){  | 
 
| 
144434
 | 
 0  | 
 0  | 
       if( (ws & WHERE_INDEXED)   | 
 
| 
144435
 | 
 0  | 
 0  | 
        || ((ws & WHERE_MULTI_OR) && pLevel->u.pCovidx)   | 
 
| 
 | 
 0  | 
 0  | 
        || ((ws & WHERE_MULTI_OR) && pLevel->u.pCovidx)   | 
 
| 
144439
 | 
 0  | 
 0  | 
       if( pLevel->op==OP_Return ){  | 
 
| 
144456
 | 
 1389  | 
 1810  | 
   for(i=0, pLevel=pWInfo->a; inLevel; i++, pLevel++){  | 
 
| 
144469
 | 
 22  | 
 1367  | 
     if( pTabItem->fg.viaCoroutine ){  | 
 
| 
144487
 | 
 39  | 
 1328  | 
     if( pLoop->wsFlags & (WHERE_INDEXED|WHERE_IDX_ONLY) ){  | 
 
| 
144489
 | 
 2  | 
 1326  | 
     }else if( pLoop->wsFlags & WHERE_MULTI_OR ){  | 
 
| 
144492
 | 
 39  | 
 1328  | 
     if( pIdx  | 
 
| 
144493
 | 
 8  | 
 31  | 
      && (pWInfo->eOnePass==ONEPASS_OFF || !HasRowid(pIdx->pTable))  | 
 
| 
 | 
 0  | 
 8  | 
      && (pWInfo->eOnePass==ONEPASS_OFF || !HasRowid(pIdx->pTable))  | 
 
| 
144494
 | 
 31  | 
 0  | 
      && !db->mallocFailed  | 
 
| 
144504
 | 
 483  | 
 31  | 
       for(; k
 | 
 
| 
144505
 | 
 373  | 
 110  | 
         if( pOp->p1!=pLevel->iTabCur ) continue;  | 
 
| 
144506
 | 
 84  | 
 26  | 
         if( pOp->opcode==OP_Column  | 
 
| 
144513
 | 
 0  | 
 84  | 
           if( !HasRowid(pTab) ){  | 
 
| 
144519
 | 
 44  | 
 40  | 
           if( x>=0 ){  | 
 
| 
144526
 | 
 4  | 
 22  | 
         }else if( pOp->opcode==OP_Rowid ){  | 
 
| 
144530
 | 
 0  | 
 22  | 
         }else if( pOp->opcode==OP_IfNullRow ){  | 
 
| 
144702
 | 
 0  | 
 0  | 
   if( p ) (*p)++;  | 
 
| 
144708
 | 
 0  | 
 0  | 
   sqlite3_result_int64(pCtx, (p ? *p : 0));  | 
 
| 
144734
 | 
 0  | 
 0  | 
   if( p ) p->nStep = 1;  | 
 
| 
144741
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
144742
 | 
 0  | 
 0  | 
     if( p->nStep ){  | 
 
| 
144763
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
144765
 | 
 0  | 
 0  | 
     if( p->nValue==0 ){  | 
 
| 
144775
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
144796
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
144797
 | 
 0  | 
 0  | 
     if( p->nTotal==0 ){  | 
 
| 
144801
 | 
 0  | 
 0  | 
     if( p->nValue==0 ){  | 
 
| 
144809
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
144810
 | 
 0  | 
 0  | 
     if( p->nTotal>1 ){  | 
 
| 
144835
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
144836
 | 
 0  | 
 0  | 
     if( p->nTotal==0 ){  | 
 
| 
144845
 | 
 0  | 
 0  | 
   if( p && p->nTotal ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p && p->nTotal ){  | 
 
| 
144874
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
144875
 | 
 0  | 
 0  | 
     if( p->nTotal==0 ){  | 
 
| 
144878
 | 
 0  | 
 0  | 
       if( p->nParam<=0 ){  | 
 
| 
144890
 | 
 0  | 
 0  | 
   if( p && p->nParam>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p && p->nParam>0 ){  | 
 
| 
144892
 | 
 0  | 
 0  | 
     if( nSize==0 ){  | 
 
| 
144901
 | 
 0  | 
 0  | 
       if( iRow
 | 
 
| 
144929
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
144932
 | 
 0  | 
 0  | 
     if( p->pVal==0 ){  | 
 
| 
144948
 | 
 0  | 
 0  | 
   if( ALWAYS(p) ){  | 
 
| 
144950
 | 
 0  | 
 0  | 
     if( p->nVal==0 ){  | 
 
| 
144959
 | 
 0  | 
 0  | 
   if( p && p->pVal ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p && p->pVal ){  | 
 
| 
144966
 | 
 0  | 
 0  | 
   if( p && p->pVal ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p && p->pVal ){  | 
 
| 
145087
 | 
 0  | 
 0  | 
   if( pWin->zName && pWin->eType==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pWin->zName && pWin->eType==0 ){  | 
 
| 
145089
 | 
 0  | 
 0  | 
     for(p=pList; p; p=p->pNextWin){  | 
 
| 
145090
 | 
 0  | 
 0  | 
       if( sqlite3StrICmp(p->zName, pWin->zName)==0 ) break;  | 
 
| 
145092
 | 
 0  | 
 0  | 
     if( p==0 ){  | 
 
| 
145104
 | 
 0  | 
 0  | 
   if( pFunc->funcFlags & SQLITE_FUNC_WINDOW ){  | 
 
| 
145106
 | 
 0  | 
 0  | 
     if( pWin->pFilter ){  | 
 
| 
145111
 | 
 0  | 
 0  | 
     if( pFunc->zName==row_numberName || pFunc->zName==ntileName ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pFunc->zName==row_numberName || pFunc->zName==ntileName ){  | 
 
| 
145120
 | 
 0  | 
 0  | 
     if( pFunc->zName==dense_rankName || pFunc->zName==rankName  | 
 
| 
 | 
 0  | 
 0  | 
     if( pFunc->zName==dense_rankName || pFunc->zName==rankName  | 
 
| 
145121
 | 
 0  | 
 0  | 
      || pFunc->zName==percent_rankName || pFunc->zName==cume_distName  | 
 
| 
 | 
 0  | 
 0  | 
      || pFunc->zName==percent_rankName || pFunc->zName==cume_distName  | 
 
| 
145160
 | 
 0  | 
 0  | 
   if( p->pSubSelect ){  | 
 
| 
145161
 | 
 0  | 
 0  | 
     if( pExpr->op!=TK_COLUMN ){  | 
 
| 
145166
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
145167
 | 
 0  | 
 0  | 
         if( pExpr->iTable==p->pSrc->a[i].iCursor ) break;  | 
 
| 
145169
 | 
 0  | 
 0  | 
       if( i==nSrc ) return WRC_Continue;  | 
 
| 
145176
 | 
 0  | 
 0  | 
       if( !ExprHasProperty(pExpr, EP_WinFunc) ){  | 
 
| 
145180
 | 
 0  | 
 0  | 
         for(pWin=p->pWin; pWin; pWin=pWin->pNextWin){  | 
 
| 
145181
 | 
 0  | 
 0  | 
           if( pExpr->y.pWin==pWin ){  | 
 
| 
145193
 | 
 0  | 
 0  | 
       if( p->pSub ){  | 
 
| 
145217
 | 
 0  | 
 0  | 
   if( pSave==pSelect ){  | 
 
| 
145277
 | 
 0  | 
 0  | 
   if( pAppend ){  | 
 
| 
145279
 | 
 0  | 
 0  | 
     int nInit = pList ? pList->nExpr : 0;  | 
 
| 
145280
 | 
 0  | 
 0  | 
     for(i=0; inExpr; i++){  | 
 
| 
145283
 | 
 0  | 
 0  | 
       if( pList ) pList->a[nInit+i].sortOrder = pAppend->a[i].sortOrder;  | 
 
| 
145298
 | 
 0  | 
 1628  | 
   if( p->pWin && p->pPrior==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->pWin && p->pPrior==0 ){  | 
 
| 
145322
 | 
 0  | 
 0  | 
     if( pSort && p->pOrderBy ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pSort && p->pOrderBy ){  | 
 
| 
145323
 | 
 0  | 
 0  | 
       if( sqlite3ExprListCompare(pSort, p->pOrderBy, -1)==0 ){  | 
 
| 
145336
 | 
 0  | 
 0  | 
     pMWin->nBufferCol = (pSublist ? pSublist->nExpr : 0);  | 
 
| 
145348
 | 
 0  | 
 0  | 
     for(pWin=pMWin; pWin; pWin=pWin->pNextWin){  | 
 
| 
145349
 | 
 0  | 
 0  | 
       pWin->iArgCol = (pSublist ? pSublist->nExpr : 0);  | 
 
| 
145351
 | 
 0  | 
 0  | 
       if( pWin->pFilter ){  | 
 
| 
145366
 | 
 0  | 
 0  | 
     if( pSublist==0 ){  | 
 
| 
145377
 | 
 0  | 
 0  | 
     if( p->pSrc ){  | 
 
| 
145380
 | 
 0  | 
 0  | 
       if( sqlite3ExpandSubquery(pParse, &p->pSrc->a[0]) ){  | 
 
| 
145392
 | 
 0  | 
 0  | 
     if( db->mallocFailed ) rc = SQLITE_NOMEM;  | 
 
| 
145402
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
145417
 | 
 0  | 
 0  | 
   while( p ){  | 
 
| 
145432
 | 
 0  | 
 0  | 
   if( 0==sqlite3ExprIsConstant(pExpr) ){  | 
 
| 
145465
 | 
 0  | 
 0  | 
   if( eType==TK_RANGE && (pStart!=0 || pEnd!=0) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( eType==TK_RANGE && (pStart!=0 || pEnd!=0) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( eType==TK_RANGE && (pStart!=0 || pEnd!=0) ){  | 
 
| 
145484
 | 
 0  | 
 0  | 
   if( (eStart==TK_CURRENT && eEnd==TK_PRECEDING)  | 
 
| 
 | 
 0  | 
 0  | 
   if( (eStart==TK_CURRENT && eEnd==TK_PRECEDING)  | 
 
| 
145485
 | 
 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))  | 
 
| 
145492
 | 
 0  | 
 0  | 
   if( pWin==0 ) goto windowAllocErr;  | 
 
| 
145510
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
145515
 | 
 0  | 
 0  | 
     if( ALWAYS(pWin) ){  | 
 
| 
145519
 | 
 0  | 
 0  | 
       if( p->flags & EP_Distinct ){  | 
 
| 
145534
 | 
 0  | 
 0  | 
   if( p1->eType!=p2->eType ) return 1;  | 
 
| 
145535
 | 
 0  | 
 0  | 
   if( p1->eStart!=p2->eStart ) return 1;  | 
 
| 
145536
 | 
 0  | 
 0  | 
   if( p1->eEnd!=p2->eEnd ) return 1;  | 
 
| 
145537
 | 
 0  | 
 0  | 
   if( sqlite3ExprCompare(pParse, p1->pStart, p2->pStart, -1) ) return 1;  | 
 
| 
145538
 | 
 0  | 
 0  | 
   if( sqlite3ExprCompare(pParse, p1->pEnd, p2->pEnd, -1) ) return 1;  | 
 
| 
145539
 | 
 0  | 
 0  | 
   if( sqlite3ExprListCompare(p1->pPartition, p2->pPartition, -1) ) return 1;  | 
 
| 
145540
 | 
 0  | 
 0  | 
   if( sqlite3ExprListCompare(p1->pOrderBy, p2->pOrderBy, -1) ) return 1;  | 
 
| 
145553
 | 
 0  | 
 0  | 
   int nPart = (pMWin->pPartition ? pMWin->pPartition->nExpr : 0);  | 
 
| 
145554
 | 
 0  | 
 0  | 
   nPart += (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0);  | 
 
| 
145555
 | 
 0  | 
 0  | 
   if( nPart ){  | 
 
| 
145561
 | 
 0  | 
 0  | 
   for(pWin=pMWin; pWin; pWin=pWin->pNextWin){  | 
 
| 
145563
 | 
 0  | 
 0  | 
     if( (p->funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (p->funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){  | 
 
| 
145576
 | 
 0  | 
 0  | 
       if( pKeyInfo && pWin->pFunc->zName[1]=='i' ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pKeyInfo && pWin->pFunc->zName[1]=='i' ){  | 
 
| 
145584
 | 
 0  | 
 0  | 
     else if( p->zName==nth_valueName || p->zName==first_valueName ){  | 
 
| 
 | 
 0  | 
 0  | 
     else if( p->zName==nth_valueName || p->zName==first_valueName ){  | 
 
| 
145593
 | 
 0  | 
 0  | 
     else if( p->zName==leadName || p->zName==lagName ){  | 
 
| 
 | 
 0  | 
 0  | 
     else if( p->zName==leadName || p->zName==lagName ){  | 
 
| 
145638
 | 
 0  | 
 0  | 
   return (pList ? pList->nExpr : 0);  | 
 
| 
145670
 | 
 0  | 
 0  | 
   for(pWin=pMWin; pWin; pWin=pWin->pNextWin){  | 
 
| 
145675
 | 
 0  | 
 0  | 
     if( csr>=0 ){  | 
 
| 
145677
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
145681
 | 
 0  | 
 0  | 
       if( flags & SQLITE_FUNC_WINDOW_SIZE ){  | 
 
| 
145682
 | 
 0  | 
 0  | 
         if( nArg==0 ){  | 
 
| 
145694
 | 
 0  | 
 0  | 
     if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX)   | 
 
| 
145695
 | 
 0  | 
 0  | 
       && pWin->eStart!=TK_UNBOUNDED   | 
 
| 
145699
 | 
 0  | 
 0  | 
       if( bInverse==0 ){  | 
 
| 
145711
 | 
 0  | 
 0  | 
     }else if( pWin->regApp ){  | 
 
| 
145717
 | 
 0  | 
 0  | 
     }else if( pWin->pFunc->zName==leadName  | 
 
| 
145718
 | 
 0  | 
 0  | 
            || pWin->pFunc->zName==lagName  | 
 
| 
145723
 | 
 0  | 
 0  | 
       if( pWin->pFilter ){  | 
 
| 
145727
 | 
 0  | 
 0  | 
         if( csr>0 ){  | 
 
| 
145735
 | 
 0  | 
 0  | 
         if( csr>0 ){  | 
 
| 
145739
 | 
 0  | 
 0  | 
       if( pWin->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){  | 
 
| 
145745
 | 
 0  | 
 0  | 
       sqlite3VdbeAddOp3(v, bInverse? OP_AggInverse : OP_AggStep,   | 
 
| 
145749
 | 
 0  | 
 0  | 
       if( addrIf ) sqlite3VdbeJumpHere(v, addrIf);  | 
 
| 
145764
 | 
 0  | 
 0  | 
   for(pWin=pMWin; pWin; pWin=pWin->pNextWin){  | 
 
| 
145765
 | 
 0  | 
 0  | 
     if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX)   | 
 
| 
145766
 | 
 0  | 
 0  | 
      && pWin->eStart!=TK_UNBOUNDED   | 
 
| 
145773
 | 
 0  | 
 0  | 
       if( bFinal ){  | 
 
| 
145776
 | 
 0  | 
 0  | 
     }else if( pWin->regApp ){  | 
 
| 
145778
 | 
 0  | 
 0  | 
       if( bFinal ){  | 
 
| 
145820
 | 
 0  | 
 0  | 
   for(k=0; k
 | 
 
| 
145827
 | 
 0  | 
 0  | 
   if( pMWin->pPartition ){  | 
 
| 
145876
 | 
 0  | 
 0  | 
   for(pWin=pMWin; pWin; pWin=pWin->pNextWin){  | 
 
| 
145878
 | 
 0  | 
 0  | 
     if( pFunc->zName==nth_valueName  | 
 
| 
145879
 | 
 0  | 
 0  | 
      || pFunc->zName==first_valueName  | 
 
| 
145886
 | 
 0  | 
 0  | 
       if( pFunc->zName==nth_valueName ){  | 
 
| 
145901
 | 
 0  | 
 0  | 
     else if( pFunc->zName==leadName || pFunc->zName==lagName ){  | 
 
| 
 | 
 0  | 
 0  | 
     else if( pFunc->zName==leadName || pFunc->zName==lagName ){  | 
 
| 
145908
 | 
 0  | 
 0  | 
       if( nArg<3 ){  | 
 
| 
145914
 | 
 0  | 
 0  | 
       if( nArg<2 ){  | 
 
| 
145915
 | 
 0  | 
 0  | 
         int val = (pFunc->zName==leadName ? 1 : -1);  | 
 
| 
145918
 | 
 0  | 
 0  | 
         int op = (pFunc->zName==leadName ? OP_Add : OP_Subtract);  | 
 
| 
145966
 | 
 0  | 
 0  | 
   if( regInvArg ){  | 
 
| 
145985
 | 
 0  | 
 0  | 
   for(pWin=pMWin; pWin; pWin=pWin->pNextWin){  | 
 
| 
145988
 | 
 0  | 
 0  | 
     nArg = MAX(nArg, windowArgCount(pWin));  | 
 
| 
145989
 | 
 0  | 
 0  | 
     if( pFunc->zName==nth_valueName  | 
 
| 
145990
 | 
 0  | 
 0  | 
      || pFunc->zName==first_valueName  | 
 
| 
145996
 | 
 0  | 
 0  | 
     if( (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && pWin->csrApp ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && pWin->csrApp ){  | 
 
| 
146186
 | 
 0  | 
 0  | 
   if( pMWin->pStart ){  | 
 
| 
146190
 | 
 0  | 
 0  | 
   if( pMWin->pEnd ){  | 
 
| 
146203
 | 
 0  | 
 0  | 
   if( pMWin->pEnd && pMWin->eStart==TK_FOLLOWING ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pMWin->pEnd && pMWin->eStart==TK_FOLLOWING ){  | 
 
| 
146212
 | 
 0  | 
 0  | 
   if( pMWin->pStart && pMWin->eEnd==TK_PRECEDING ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pMWin->pStart && pMWin->eEnd==TK_PRECEDING ){  | 
 
| 
146237
 | 
 0  | 
 0  | 
   if( pMWin->eEnd==TK_PRECEDING ){  | 
 
| 
146245
 | 
 0  | 
 0  | 
   if( pMWin->eEnd==TK_UNBOUNDED ){  | 
 
| 
146251
 | 
 0  | 
 0  | 
     if( pMWin->eEnd==TK_PRECEDING ){  | 
 
| 
146256
 | 
 0  | 
 0  | 
   if( pMWin->eEnd==TK_FOLLOWING ){  | 
 
| 
146260
 | 
 0  | 
 0  | 
   if( pMWin->eStart==TK_FOLLOWING ){  | 
 
| 
146269
 | 
 0  | 
 0  | 
   if( pMWin->eStart==TK_FOLLOWING ){  | 
 
| 
146273
 | 
 0  | 
 0  | 
   if( pMWin->eStart==TK_CURRENT   | 
 
| 
146274
 | 
 0  | 
 0  | 
    || pMWin->eStart==TK_PRECEDING   | 
 
| 
146275
 | 
 0  | 
 0  | 
    || pMWin->eStart==TK_FOLLOWING   | 
 
| 
146278
 | 
 0  | 
 0  | 
     if( pMWin->eStart==TK_PRECEDING ){  | 
 
| 
146282
 | 
 0  | 
 0  | 
     if( pMWin->eStart==TK_FOLLOWING ){  | 
 
| 
146293
 | 
 0  | 
 0  | 
   if( pMWin->eEnd==TK_FOLLOWING ){  | 
 
| 
146421
 | 
 0  | 
 0  | 
   int nPeer = pOrderBy ? pOrderBy->nExpr : 0;  | 
 
| 
146433
 | 
 0  | 
 0  | 
   int bReverse = pMWin->pOrderBy && pMWin->eStart==TK_CURRENT   | 
 
| 
146434
 | 
 0  | 
 0  | 
           && pMWin->eEnd==TK_UNBOUNDED;  | 
 
| 
 | 
 0  | 
 0  | 
           && pMWin->eEnd==TK_UNBOUNDED;  | 
 
| 
146471
 | 
 0  | 
 0  | 
   if( bReverse ){  | 
 
| 
146481
 | 
 0  | 
 0  | 
   if( pOrderBy && (pMWin->eEnd==TK_CURRENT || pMWin->eStart==TK_CURRENT) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pOrderBy && (pMWin->eEnd==TK_CURRENT || pMWin->eStart==TK_CURRENT) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pOrderBy && (pMWin->eEnd==TK_CURRENT || pMWin->eStart==TK_CURRENT) ){  | 
 
| 
146484
 | 
 0  | 
 0  | 
     if( pMWin->eType==TK_RANGE ){  | 
 
| 
146485
 | 
 0  | 
 0  | 
       int iOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0);  | 
 
| 
146486
 | 
 0  | 
 0  | 
       int regPeer = pMWin->regPart + (pPart ? pPart->nExpr : 0);  | 
 
| 
146488
 | 
 0  | 
 0  | 
       for(k=0; k
 | 
 
| 
146498
 | 
 0  | 
 0  | 
     windowReturnRows(pParse, pMWin, regCtr, regGosub, addrGosub,   | 
 
| 
 | 
 0  | 
 0  | 
     windowReturnRows(pParse, pMWin, regCtr, regGosub, addrGosub,   | 
 
| 
146501
 | 
 0  | 
 0  | 
     if( addrJump ) sqlite3VdbeJumpHere(v, addrJump);  | 
 
| 
146504
 | 
 0  | 
 0  | 
   if( bReverse==0 ){  | 
 
| 
146585
 | 
 0  | 
 0  | 
   if( pMWin->eEnd==TK_UNBOUNDED ){  | 
 
| 
146593
 | 
 0  | 
 0  | 
   for(k=0; k
 | 
 
| 
146598
 | 
 0  | 
 0  | 
   if( pPart || pOrderBy ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pPart || pOrderBy ){  | 
 
| 
146599
 | 
 0  | 
 0  | 
     int nPart = (pPart ? pPart->nExpr : 0);  | 
 
| 
146602
 | 
 0  | 
 0  | 
     int nPeer = (pOrderBy ? pOrderBy->nExpr : 0);  | 
 
| 
146604
 | 
 0  | 
 0  | 
     if( pPart ){  | 
 
| 
146612
 | 
 0  | 
 0  | 
       if( pOrderBy ){  | 
 
| 
146617
 | 
 0  | 
 0  | 
     if( pOrderBy ){  | 
 
| 
146621
 | 
 0  | 
 0  | 
       if( addrJump ) sqlite3VdbeJumpHere(v, addrJump);  | 
 
| 
146622
 | 
 0  | 
 0  | 
       if( pMWin->eType==TK_RANGE ){  | 
 
| 
146632
 | 
 0  | 
 0  | 
       if( addrGoto ) sqlite3VdbeJumpHere(v, addrGoto);  | 
 
| 
146646
 | 
 0  | 
 0  | 
     if( addrJump ) sqlite3VdbeJumpHere(v, addrJump);  | 
 
| 
146653
 | 
 0  | 
 0  | 
   if( pMWin->nBufferCol>0 ){  | 
 
| 
146680
 | 
 0  | 
 0  | 
   if( ALWAYS(p) ){  | 
 
| 
146682
 | 
 0  | 
 0  | 
     if( pNew ){  | 
 
| 
146707
 | 
 0  | 
 0  | 
   for(pWin=p; pWin; pWin=pWin->pNextWin){  | 
 
| 
146709
 | 
 0  | 
 0  | 
     if( *pp==0 ) break;  | 
 
| 
146766
 | 
 0  | 
 0  | 
   if( pMWin->eType==TK_ROWS   | 
 
| 
146767
 | 
 0  | 
 0  | 
    && (pMWin->eStart!=TK_UNBOUNDED||pMWin->eEnd!=TK_CURRENT||!pMWin->pOrderBy)  | 
 
| 
 | 
 0  | 
 0  | 
    && (pMWin->eStart!=TK_UNBOUNDED||pMWin->eEnd!=TK_CURRENT||!pMWin->pOrderBy)  | 
 
| 
 | 
 0  | 
 0  | 
    && (pMWin->eStart!=TK_UNBOUNDED||pMWin->eEnd!=TK_CURRENT||!pMWin->pOrderBy)  | 
 
| 
146775
 | 
 0  | 
 0  | 
     if( pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED ){  | 
 
| 
146778
 | 
 0  | 
 0  | 
       for(pWin=pMWin; pWin; pWin=pWin->pNextWin){  | 
 
| 
146780
 | 
 0  | 
 0  | 
         if( (pFunc->funcFlags & SQLITE_FUNC_WINDOW_SIZE)  | 
 
| 
146781
 | 
 0  | 
 0  | 
          || (pFunc->zName==nth_valueName)  | 
 
| 
146782
 | 
 0  | 
 0  | 
          || (pFunc->zName==first_valueName)  | 
 
| 
146783
 | 
 0  | 
 0  | 
          || (pFunc->zName==leadName)  | 
 
| 
146784
 | 
 0  | 
 0  | 
          || (pFunc->zName==lagName)  | 
 
| 
146793
 | 
 0  | 
 0  | 
     if( bCache ){  | 
 
| 
146902
 | 
 24  | 
 4115  | 
     if( p->pPrior ){  | 
 
| 
146905
 | 
 107  | 
 24  | 
       for(pLoop=p; pLoop; pNext=pLoop, pLoop=pLoop->pPrior, cnt++){  | 
 
| 
146909
 | 
 22  | 
 2  | 
       if( (p->selFlags & SF_MultiValue)==0 &&   | 
 
| 
 | 
 22  | 
 0  | 
       if( (p->selFlags & SF_MultiValue)==0 &&   | 
 
| 
146910
 | 
 0  | 
 22  | 
         (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 &&  | 
 
| 
146925
 | 
 9254  | 
 0  | 
     if( p ){  | 
 
| 
146941
 | 
 2058  | 
 7196  | 
       if( sqlite3Isquote(p->u.zToken[0]) ){  | 
 
| 
146942
 | 
 57  | 
 2001  | 
         if( p->u.zToken[0]=='"' ) p->flags |= EP_DblQuoted;  | 
 
| 
146948
 | 
 0  | 
 9254  | 
       if( IN_RENAME_OBJECT ){  | 
 
| 
146960
 | 
 18  | 
 0  | 
     if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){  | 
 
| 
 | 
 18  | 
 0  | 
     if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){  | 
 
| 
 | 
 17  | 
 1  | 
     if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){  | 
 
| 
 | 
 17  | 
 0  | 
     if( pA && pY && pY->op==TK_NULL && !IN_RENAME_OBJECT ){  | 
 
| 
146980
 | 
 24  | 
 0  | 
     if( (hasCollate || sortOrder!=SQLITE_SO_UNDEFINED)  | 
 
| 
 | 
 0  | 
 24  | 
     if( (hasCollate || sortOrder!=SQLITE_SO_UNDEFINED)  | 
 
| 
146981
 | 
 0  | 
 0  | 
         && pParse->db->init.busy==0  | 
 
| 
148823
 | 
 10846  | 
 5710  | 
   while( pParser->yytos>pParser->yystack ) yy_pop_parser_stack(pParser);  | 
 
| 
148907
 | 
 56525  | 
 145720  | 
   if( stateno>YY_MAX_SHIFT ) return stateno;  | 
 
| 
148919
 | 
 137533  | 
 8322  | 
     if( i>=YY_NLOOKAHEAD || yy_lookahead[i]!=iLookAhead ){  | 
 
| 
 | 
 65971  | 
 71562  | 
     if( i>=YY_NLOOKAHEAD || yy_lookahead[i]!=iLookAhead ){  | 
 
| 
148922
 | 
 53911  | 
 20382  | 
       if( iLookAhead
 | 
 
| 
148923
 | 
 135  | 
 53776  | 
              && (iFallback = yyFallback[iLookAhead])!=0 ){  | 
 
| 
148938
 | 
 65836  | 
 8322  | 
         if(   | 
 
| 
148945
 | 
 88  | 
 65748  | 
           j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) &&  | 
 
| 
148946
 | 
 88  | 
 0  | 
           yy_lookahead[j]==YYWILDCARD && iLookAhead>0  | 
 
| 
149007
 | 
 0  | 
 0  | 
    while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser);  | 
 
| 
149057
 | 
 0  | 
 71208  | 
   if( yypParser->yytos>yypParser->yystackEnd ){  | 
 
| 
149071
 | 
 33440  | 
 37768  | 
   if( yyNewState > YY_MAX_SHIFT ){  | 
 
| 
149501
 | 
 42794  | 
 87955  | 
   if( yyRuleInfo[yyruleno].nrhs==0 ){  | 
 
| 
149509
 | 
 0  | 
 42794  | 
     if( yypParser->yytos>=yypParser->yystackEnd ){  | 
 
| 
149619
 | 
 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 ){  | 
 
| 
149676
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
149814
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
149826
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
149838
 | 
 4139  | 
 0  | 
   if( p ){  | 
 
| 
149848
 | 
 75  | 
 0  | 
   if( pRhs && pRhs->pPrior ){  | 
 
| 
 | 
 0  | 
 75  | 
   if( pRhs && pRhs->pPrior ){  | 
 
| 
149856
 | 
 75  | 
 0  | 
   if( pRhs ){  | 
 
| 
149859
 | 
 75  | 
 0  | 
     if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue;  | 
 
| 
149861
 | 
 4  | 
 71  | 
     if( yymsp[-1].minor.yy70!=TK_ALL ) pParse->hasCompound = 1;  | 
 
| 
149883
 | 
 0  | 
 0  | 
   if( yymsp[-9].minor.yy489 ){  | 
 
| 
149899
 | 
 8  | 
 0  | 
   if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue;  | 
 
| 
149900
 | 
 8  | 
 0  | 
   if( pRight ){  | 
 
| 
149926
 | 
 304  | 
 2387  | 
    if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy420, &yymsp[0].minor.yy0, 1);  | 
 
| 
149961
 | 
 3  | 
 0  | 
    if( ALWAYS(yymsp[-1].minor.yy135 && yymsp[-1].minor.yy135->nSrc>0) ) yymsp[-1].minor.yy135->a[yymsp[-1].minor.yy135->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy70;  | 
 
| 
 | 
 3  | 
 0  | 
    if( ALWAYS(yymsp[-1].minor.yy135 && yymsp[-1].minor.yy135->nSrc>0) ) yymsp[-1].minor.yy135->a[yymsp[-1].minor.yy135->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy70;  | 
 
| 
149986
 | 
 0  | 
 0  | 
     if( yymsp[-6].minor.yy135==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy18==0 && yymsp[0].minor.yy48==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( yymsp[-6].minor.yy135==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy18==0 && yymsp[0].minor.yy48==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( yymsp[-6].minor.yy135==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy18==0 && yymsp[0].minor.yy48==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( yymsp[-6].minor.yy135==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy18==0 && yymsp[0].minor.yy48==0 ){  | 
 
| 
149988
 | 
 0  | 
 0  | 
     }else if( yymsp[-4].minor.yy135->nSrc==1 ){  | 
 
| 
149990
 | 
 0  | 
 0  | 
       if( yymsp[-6].minor.yy135 ){  | 
 
| 
150015
 | 
 0  | 
 12  | 
   if( IN_RENAME_OBJECT && yylhsminor.yy135 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy135->a[0].zName, &yymsp[0].minor.yy0);  | 
 
| 
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT && yylhsminor.yy135 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy135->a[0].zName, &yymsp[0].minor.yy0);  | 
 
| 
150022
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT && yylhsminor.yy135 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy135->a[0].zName, &yymsp[0].minor.yy0);  | 
 
| 
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT && yylhsminor.yy135 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy135->a[0].zName, &yymsp[0].minor.yy0);  | 
 
| 
150035
 | 
 0  | 
 0  | 
    if( yymsp[-4].minor.yy135 ) yymsp[-4].minor.yy135->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);  | 
 
| 
150041
 | 
 0  | 
 0  | 
    if( yymsp[-2].minor.yy135 ) yymsp[-2].minor.yy135->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0);  | 
 
| 
150195
 | 
 0  | 
 49  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
150209
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT ){  | 
 
| 
150229
 | 
 488  | 
 1079  | 
   if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){  | 
 
| 
 | 
 0  | 
 488  | 
   if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){  | 
 
| 
150239
 | 
 0  | 
 488  | 
     if( pParse->nested==0 ){  | 
 
| 
150244
 | 
 488  | 
 0  | 
       if( yymsp[0].minor.yy18 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy18->iTable);  | 
 
| 
150296
 | 
 0  | 
 0  | 
   if( yymsp[-4].minor.yy18 ){  | 
 
| 
150324
 | 
 12  | 
 85  | 
   if( bNot ) yymsp[-2].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy18, 0);  | 
 
| 
150325
 | 
 97  | 
 0  | 
   if( yymsp[-2].minor.yy18 ) yymsp[-2].minor.yy18->flags |= EP_InfixFunc;  | 
 
| 
150337
 | 
 0  | 
 0  | 
   if( bNot ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);  | 
 
| 
150338
 | 
 0  | 
 0  | 
   if( yymsp[-4].minor.yy18 ) yymsp[-4].minor.yy18->flags |= EP_InfixFunc;  | 
 
| 
150365
 | 
 0  | 
 0  | 
   yymsp[-1].minor.yy18 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy18, 0);  | 
 
| 
150378
 | 
 14  | 
 0  | 
   if( yymsp[-4].minor.yy18 ){  | 
 
| 
150383
 | 
 0  | 
 14  | 
   if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);  | 
 
| 
150388
 | 
 0  | 
 17  | 
     if( yymsp[-1].minor.yy420==0 ){  | 
 
| 
150399
 | 
 1  | 
 16  | 
     }else if( yymsp[-1].minor.yy420->nExpr==1 ){  | 
 
| 
150421
 | 
 1  | 
 0  | 
       if( ALWAYS(pRHS) ){  | 
 
| 
150425
 | 
 0  | 
 1  | 
       yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, yymsp[-3].minor.yy70 ? TK_NE : TK_EQ, yymsp[-4].minor.yy18, pRHS);  | 
 
| 
150428
 | 
 16  | 
 0  | 
       if( yymsp[-4].minor.yy18 ){  | 
 
| 
150434
 | 
 0  | 
 16  | 
       if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);  | 
 
| 
150448
 | 
 0  | 
 0  | 
     if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);  | 
 
| 
150455
 | 
 0  | 
 0  | 
     if( yymsp[0].minor.yy420 )  sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy420);  | 
 
| 
 | 
 0  | 
 0  | 
     if( yymsp[0].minor.yy420 )  sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy420);  | 
 
| 
150458
 | 
 0  | 
 0  | 
     if( yymsp[-3].minor.yy70 ) yymsp[-4].minor.yy18 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy18, 0);  | 
 
| 
150471
 | 
 0  | 
 0  | 
   if( yymsp[-4].minor.yy18 ){  | 
 
| 
150472
 | 
 0  | 
 0  | 
     yymsp[-4].minor.yy18->x.pList = yymsp[-1].minor.yy18 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy420,yymsp[-1].minor.yy18) : yymsp[-2].minor.yy420;  | 
 
| 
150510
 | 
 0  | 
 10  | 
   if( IN_RENAME_OBJECT && pParse->pNewIndex ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( IN_RENAME_OBJECT && pParse->pNewIndex ){  | 
 
| 
150567
 | 
 0  | 
 0  | 
   yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/  | 
 
| 
150651
 | 
 0  | 
 0  | 
   if( yymsp[-3].minor.yy18 ){  | 
 
| 
150659
 | 
 0  | 
 0  | 
   if( yymsp[-5].minor.yy18 ) {  | 
 
| 
150766
 | 
 0  | 
 0  | 
   if( ALWAYS(yymsp[0].minor.yy327) ){  | 
 
| 
150776
 | 
 0  | 
 0  | 
   if( ALWAYS(yymsp[-4].minor.yy327) ){  | 
 
| 
150845
 | 
 0  | 
 0  | 
   if( yylhsminor.yy327 ){  | 
 
| 
150977
 | 
 2  | 
 0  | 
   if( TOKEN.z[0] ){  | 
 
| 
151070
 | 
 130749  | 
 71496  | 
     if( yyact >= YY_MIN_REDUCE ){  | 
 
| 
151073
 | 
 71208  | 
 288  | 
     }else if( yyact <= YY_MAX_SHIFTREDUCE ){  | 
 
| 
151079
 | 
 286  | 
 2  | 
     }else if( yyact==YY_ACCEPT_ACTION ){  | 
 
| 
151185
 | 
 130749  | 
 0  | 
   }while( yypParser->yytos>yypParser->yystack );  | 
 
| 
151207
 | 
 0  | 
 0  | 
   if( iToken<(int)(sizeof(yyFallback)/sizeof(yyFallback[0])) ){  | 
 
| 
151523
 | 
 34698  | 
 394  | 
   if( n>=2 ){  | 
 
| 
151525
 | 
 39172  | 
 17195  | 
     for(i=((int)aKWHash[i])-1; i>=0; i=((int)aKWNext[i])-1){  | 
 
| 
151526
 | 
 21425  | 
 17747  | 
       if( aKWLen[i]!=n ) continue;  | 
 
| 
151530
 | 
 90872  | 
 17503  | 
       while( j
 | 
 
| 
 | 
 90628  | 
 244  | 
       while( j
 | 
 
| 
151535
 | 
 244  | 
 17503  | 
       if( j
 | 
 
| 
151685
 | 
 0  | 
 0  | 
   if( i<0 || i>=SQLITE_N_KEYWORD ) return SQLITE_ERROR;  | 
 
| 
 | 
 0  | 
 0  | 
   if( i<0 || i>=SQLITE_N_KEYWORD ) return SQLITE_ERROR;  | 
 
| 
151750
 | 
 0  | 
 0  | 
   }while( t==TK_SPACE );  | 
 
| 
151751
 | 
 0  | 
 0  | 
   if( t==TK_ID   | 
 
| 
151752
 | 
 0  | 
 0  | 
    || t==TK_STRING   | 
 
| 
151753
 | 
 0  | 
 0  | 
    || t==TK_JOIN_KW   | 
 
| 
151754
 | 
 0  | 
 0  | 
    || t==TK_WINDOW   | 
 
| 
151755
 | 
 0  | 
 0  | 
    || t==TK_OVER   | 
 
| 
151756
 | 
 0  | 
 0  | 
    || sqlite3ParserFallback(t)==TK_ID   | 
 
| 
151797
 | 
 0  | 
 0  | 
   if( t!=TK_ID ) return TK_ID;  | 
 
| 
151799
 | 
 0  | 
 0  | 
   if( t!=TK_AS ) return TK_ID;  | 
 
| 
151803
 | 
 0  | 
 0  | 
   if( lastToken==TK_RP ){  | 
 
| 
151805
 | 
 0  | 
 0  | 
     if( t==TK_LP || t==TK_ID ) return TK_OVER;  | 
 
| 
 | 
 0  | 
 0  | 
     if( t==TK_LP || t==TK_ID ) return TK_OVER;  | 
 
| 
151810
 | 
 0  | 
 0  | 
   if( lastToken==TK_RP && getToken(&z)==TK_LP ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( lastToken==TK_RP && getToken(&z)==TK_LP ){  | 
 
| 
151832
 | 
 2360  | 
 36145  | 
       for(i=1; sqlite3Isspace(z[i]); i++){}  | 
 
| 
151837
 | 
 3  | 
 0  | 
       if( z[1]=='-' ){  | 
 
| 
151838
 | 
 51  | 
 1  | 
         for(i=2; (c=z[i])!=0 && c!='\n'; i++){}  | 
 
| 
 | 
 49  | 
 2  | 
         for(i=2; (c=z[i])!=0 && c!='\n'; i++){}  | 
 
| 
151866
 | 
 1  | 
 0  | 
       if( z[1]!='*' || z[2]==0 ){  | 
 
| 
 | 
 0  | 
 1  | 
       if( z[1]!='*' || z[2]==0 ){  | 
 
| 
151870
 | 
 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++){}  | 
 
| 
151871
 | 
 1  | 
 0  | 
       if( c ) i++;  | 
 
| 
151881
 | 
 0  | 
 2003  | 
       return 1 + (z[1]=='=');  | 
 
| 
151884
 | 
 12  | 
 2  | 
       if( (c=z[1])=='=' ){  | 
 
| 
151887
 | 
 0  | 
 2  | 
       }else if( c=='>' ){  | 
 
| 
151890
 | 
 0  | 
 2  | 
       }else if( c=='<' ){  | 
 
| 
151899
 | 
 14  | 
 16  | 
       if( (c=z[1])=='=' ){  | 
 
| 
151902
 | 
 0  | 
 16  | 
       }else if( c=='>' ){  | 
 
| 
151911
 | 
 0  | 
 208  | 
       if( z[1]!='=' ){  | 
 
| 
151920
 | 
 0  | 
 0  | 
       if( z[1]!='|' ){  | 
 
| 
151945
 | 
 37933  | 
 0  | 
       for(i=1; (c=z[i])!=0; i++){  | 
 
| 
151946
 | 
 3523  | 
 34410  | 
         if( c==delim ){  | 
 
| 
151947
 | 
 140  | 
 3383  | 
           if( z[i+1]==delim ){  | 
 
| 
151954
 | 
 2782  | 
 601  | 
       if( c=='\'' ){  | 
 
| 
151957
 | 
 601  | 
 0  | 
       }else if( c!=0 ){  | 
 
| 
151967
 | 
 967  | 
 0  | 
       if( !sqlite3Isdigit(z[1]) )  | 
 
| 
151983
 | 
 2178  | 
 591  | 
       if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){  | 
 
| 
 | 
 2178  | 
 0  | 
       if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){  | 
 
| 
 | 
 0  | 
 2178  | 
       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]) ){  | 
 
| 
151984
 | 
 0  | 
 0  | 
         for(i=3; sqlite3Isxdigit(z[i]); i++){}  | 
 
| 
151988
 | 
 3274  | 
 2769  | 
       for(i=0; sqlite3Isdigit(z[i]); i++){}  | 
 
| 
151990
 | 
 2166  | 
 603  | 
       if( z[i]=='.' ){  | 
 
| 
151992
 | 
 32431  | 
 2166  | 
         while( sqlite3Isdigit(z[i]) ){ i++; }  | 
 
| 
151995
 | 
 2768  | 
 1  | 
       if( (z[i]=='e' || z[i]=='E') &&  | 
 
| 
 | 
 0  | 
 2768  | 
       if( (z[i]=='e' || z[i]=='E') &&  | 
 
| 
 | 
 1  | 
 0  | 
       if( (z[i]=='e' || z[i]=='E') &&  | 
 
| 
151997
 | 
 1  | 
 0  | 
             || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2]))  | 
 
| 
 | 
 1  | 
 0  | 
             || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2]))  | 
 
| 
 | 
 1  | 
 0  | 
             || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2]))  | 
 
| 
152001
 | 
 2  | 
 1  | 
         while( sqlite3Isdigit(z[i]) ){ i++; }  | 
 
| 
152005
 | 
 0  | 
 2769  | 
       while( IdChar(z[i]) ){  | 
 
| 
152012
 | 
 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++){}  | 
 
| 
152013
 | 
 6  | 
 0  | 
       *tokenType = c==']' ? TK_ID : TK_ILLEGAL;  | 
 
| 
152018
 | 
 13  | 
 1071  | 
       for(i=1; sqlite3Isdigit(z[i]); i++){}  | 
 
| 
152027
 | 
 803  | 
 236  | 
       for(i=1; (c=z[i])!=0; i++){  | 
 
| 
152028
 | 
 533  | 
 270  | 
         if( IdChar(c) ){  | 
 
| 
152031
 | 
 0  | 
 270  | 
         }else if( c=='(' && n>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         }else if( c=='(' && n>0 ){  | 
 
| 
152034
 | 
 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!=')' );  | 
 
| 
152035
 | 
 0  | 
 0  | 
           if( c==')' ){  | 
 
| 
152041
 | 
 0  | 
 270  | 
         }else if( c==':' && z[i+1]==':' ){  | 
 
| 
 | 
 0  | 
 0  | 
         }else if( c==':' && z[i+1]==':' ){  | 
 
| 
152048
 | 
 0  | 
 506  | 
       if( n==0 ) *tokenType = TK_ILLEGAL;  | 
 
| 
152052
 | 
 166226  | 
 35627  | 
       for(i=1; aiClass[z[i]]<=CC_KYWD; i++){}  | 
 
| 
152053
 | 
 535  | 
 35092  | 
       if( IdChar(z[i]) ){  | 
 
| 
152066
 | 
 0  | 
 382  | 
       if( z[1]=='\'' ){  | 
 
| 
152068
 | 
 0  | 
 0  | 
         for(i=2; sqlite3Isxdigit(z[i]); i++){}  | 
 
| 
152069
 | 
 0  | 
 0  | 
         if( z[i]!='\'' || i%2 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( z[i]!='\'' || i%2 ){  | 
 
| 
152071
 | 
 0  | 
 0  | 
           while( z[i] && z[i]!='\'' ){ i++; }  | 
 
| 
 | 
 0  | 
 0  | 
           while( z[i] && z[i]!='\'' ){ i++; }  | 
 
| 
152073
 | 
 0  | 
 0  | 
         if( z[i] ) i++;  | 
 
| 
152093
 | 
 2484  | 
 921  | 
   while( IdChar(z[i]) ){ i++; }  | 
 
| 
152186
 | 
 5024  | 
 686  | 
   if( db->nVdbeActive==0 ){  | 
 
| 
152210
 | 
 0  | 
 107891  | 
     if( mxSqlLen<0 ){  | 
 
| 
152215
 | 
 42290  | 
 65601  | 
     if( tokenType>=TK_WINDOW ){  | 
 
| 
152223
 | 
 0  | 
 42290  | 
       if( db->u1.isInterrupted ){  | 
 
| 
152227
 | 
 36109  | 
 6181  | 
       if( tokenType==TK_SPACE ){  | 
 
| 
152231
 | 
 6181  | 
 0  | 
       if( zSql[0]==0 ){  | 
 
| 
152234
 | 
 286  | 
 5895  | 
         if( lastTokenParsed==TK_SEMI ){  | 
 
| 
152236
 | 
 286  | 
 5609  | 
         }else if( lastTokenParsed==0 ){  | 
 
| 
152243
 | 
 0  | 
 0  | 
       }else if( tokenType==TK_WINDOW ){  | 
 
| 
152246
 | 
 0  | 
 0  | 
       }else if( tokenType==TK_OVER ){  | 
 
| 
152249
 | 
 0  | 
 0  | 
       }else if( tokenType==TK_FILTER ){  | 
 
| 
152263
 | 
 66072  | 
 5424  | 
     if( pParse->rc!=SQLITE_OK || db->mallocFailed ) break;  | 
 
| 
 | 
 66072  | 
 0  | 
     if( pParse->rc!=SQLITE_OK || db->mallocFailed ) break;  | 
 
| 
152278
 | 
 0  | 
 5710  | 
   if( db->mallocFailed ){  | 
 
| 
152281
 | 
 5424  | 
 286  | 
   if( pParse->rc!=SQLITE_OK && pParse->rc!=SQLITE_DONE && pParse->zErrMsg==0 ){  | 
 
| 
 | 
 10  | 
 5414  | 
   if( pParse->rc!=SQLITE_OK && pParse->rc!=SQLITE_DONE && pParse->zErrMsg==0 ){  | 
 
| 
 | 
 0  | 
 10  | 
   if( pParse->rc!=SQLITE_OK && pParse->rc!=SQLITE_DONE && pParse->zErrMsg==0 ){  | 
 
| 
152285
 | 
 10  | 
 5700  | 
   if( pParse->zErrMsg ){  | 
 
| 
152293
 | 
 5692  | 
 18  | 
   if( pParse->pVdbe && pParse->nErr>0 && pParse->nested==0 ){  | 
 
| 
 | 
 0  | 
 5692  | 
   if( pParse->pVdbe && pParse->nErr>0 && pParse->nested==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pParse->pVdbe && pParse->nErr>0 && pParse->nested==0 ){  | 
 
| 
152298
 | 
 5432  | 
 278  | 
   if( pParse->nested==0 ){  | 
 
| 
152308
 | 
 5701  | 
 9  | 
   if( !IN_SPECIAL_PARSE ){  | 
 
| 
152315
 | 
 5710  | 
 0  | 
   if( !IN_RENAME_OBJECT ){  | 
 
| 
152319
 | 
 0  | 
 5710  | 
   if( pParse->pWithToFree ) sqlite3WithDelete(db, pParse->pWithToFree);  | 
 
| 
152321
 | 
 2  | 
 5710  | 
   while( pParse->pAinc ){  | 
 
| 
152326
 | 
 13  | 
 5710  | 
   while( pParse->pZombieTab ){  | 
 
| 
152480
 | 
 0  | 
 0  | 
   while( *zSql ){  | 
 
| 
152495
 | 
 0  | 
 0  | 
         if( zSql[1]!='*' ){  | 
 
| 
152500
 | 
 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++; }  | 
 
| 
152501
 | 
 0  | 
 0  | 
         if( zSql[0]==0 ) return 0;  | 
 
| 
152507
 | 
 0  | 
 0  | 
         if( zSql[1]!='-' ){  | 
 
| 
152511
 | 
 0  | 
 0  | 
         while( *zSql && *zSql!='\n' ){ zSql++; }  | 
 
| 
 | 
 0  | 
 0  | 
         while( *zSql && *zSql!='\n' ){ zSql++; }  | 
 
| 
152512
 | 
 0  | 
 0  | 
         if( *zSql==0 ) return state==1;  | 
 
| 
152518
 | 
 0  | 
 0  | 
         while( *zSql && *zSql!=']' ){ zSql++; }  | 
 
| 
 | 
 0  | 
 0  | 
         while( *zSql && *zSql!=']' ){ zSql++; }  | 
 
| 
152519
 | 
 0  | 
 0  | 
         if( *zSql==0 ) return 0;  | 
 
| 
152528
 | 
 0  | 
 0  | 
         while( *zSql && *zSql!=c ){ zSql++; }  | 
 
| 
 | 
 0  | 
 0  | 
         while( *zSql && *zSql!=c ){ zSql++; }  | 
 
| 
152529
 | 
 0  | 
 0  | 
         if( *zSql==0 ) return 0;  | 
 
| 
152537
 | 
 0  | 
 0  | 
         if( IdChar((u8)*zSql) ){  | 
 
| 
152540
 | 
 0  | 
 0  | 
           for(nId=1; IdChar(zSql[nId]); nId++){}  | 
 
| 
152546
 | 
 0  | 
 0  | 
               if( nId==6 && sqlite3StrNICmp(zSql, "create", 6)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               if( nId==6 && sqlite3StrNICmp(zSql, "create", 6)==0 ){  | 
 
| 
152554
 | 
 0  | 
 0  | 
               if( nId==7 && sqlite3StrNICmp(zSql, "trigger", 7)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               if( nId==7 && sqlite3StrNICmp(zSql, "trigger", 7)==0 ){  | 
 
| 
152556
 | 
 0  | 
 0  | 
               }else if( nId==4 && sqlite3StrNICmp(zSql, "temp", 4)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               }else if( nId==4 && sqlite3StrNICmp(zSql, "temp", 4)==0 ){  | 
 
| 
152558
 | 
 0  | 
 0  | 
               }else if( nId==9 && sqlite3StrNICmp(zSql, "temporary", 9)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               }else if( nId==9 && sqlite3StrNICmp(zSql, "temporary", 9)==0 ){  | 
 
| 
152566
 | 
 0  | 
 0  | 
               if( nId==3 && sqlite3StrNICmp(zSql, "end", 3)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               if( nId==3 && sqlite3StrNICmp(zSql, "end", 3)==0 ){  | 
 
| 
152570
 | 
 0  | 
 0  | 
               if( nId==7 && sqlite3StrNICmp(zSql, "explain", 7)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               if( nId==7 && sqlite3StrNICmp(zSql, "explain", 7)==0 ){  | 
 
| 
152612
 | 
 0  | 
 0  | 
   if( rc ) return rc;  | 
 
| 
152617
 | 
 0  | 
 0  | 
   if( zSql8 ){  | 
 
| 
152888
 | 
 20664  | 
 570  | 
   if( sqlite3GlobalConfig.isInit ) return SQLITE_OK;  | 
 
| 
152899
 | 
 0  | 
 570  | 
   if( rc ) return rc;  | 
 
| 
152910
 | 
 95  | 
 475  | 
   if( !sqlite3GlobalConfig.isMallocInit ){  | 
 
| 
152913
 | 
 570  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
152915
 | 
 95  | 
 475  | 
     if( !sqlite3GlobalConfig.pInitMutex ){  | 
 
| 
152918
 | 
 95  | 
 0  | 
       if( sqlite3GlobalConfig.bCoreMutex && !sqlite3GlobalConfig.pInitMutex ){  | 
 
| 
 | 
 0  | 
 95  | 
       if( sqlite3GlobalConfig.bCoreMutex && !sqlite3GlobalConfig.pInitMutex ){  | 
 
| 
152923
 | 
 570  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
152931
 | 
 0  | 
 570  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
152949
 | 
 570  | 
 0  | 
   if( sqlite3GlobalConfig.isInit==0 && sqlite3GlobalConfig.inProgress==0 ){  | 
 
| 
 | 
 95  | 
 475  | 
   if( sqlite3GlobalConfig.isInit==0 && sqlite3GlobalConfig.inProgress==0 ){  | 
 
| 
152959
 | 
 95  | 
 0  | 
     if( sqlite3GlobalConfig.isPCacheInit==0 ){  | 
 
| 
152962
 | 
 95  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
152971
 | 
 95  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
152988
 | 
 95  | 
 475  | 
   if( sqlite3GlobalConfig.nRefInitMutex<=0 ){  | 
 
| 
153043
 | 
 0  | 
 0  | 
   if( sqlite3GlobalConfig.isInit ){  | 
 
| 
153052
 | 
 0  | 
 0  | 
   if( sqlite3GlobalConfig.isPCacheInit ){  | 
 
| 
153056
 | 
 0  | 
 0  | 
   if( sqlite3GlobalConfig.isMallocInit ){  | 
 
| 
153072
 | 
 0  | 
 0  | 
   if( sqlite3GlobalConfig.isMutexInit ){  | 
 
| 
153095
 | 
 0  | 
 190  | 
   if( sqlite3GlobalConfig.isInit ) return SQLITE_MISUSE_BKPT;  | 
 
| 
153151
 | 
 95  | 
 0  | 
       sqlite3GlobalConfig.m = *va_arg(ap, sqlite3_mem_methods*);  | 
 
| 
153159
 | 
 0  | 
 0  | 
       if( sqlite3GlobalConfig.m.xMalloc==0 ) sqlite3MemSetDefault();  | 
 
| 
153160
 | 
 0  | 
 0  | 
       *va_arg(ap, sqlite3_mem_methods*) = sqlite3GlobalConfig.m;  | 
 
| 
153167
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.bMemstat = va_arg(ap, int);  | 
 
| 
153171
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.bSmallMalloc = va_arg(ap, int);  | 
 
| 
153179
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.pPage = va_arg(ap, void*);  | 
 
| 
153180
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.szPage = va_arg(ap, int);  | 
 
| 
153181
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.nPage = va_arg(ap, int);  | 
 
| 
153189
 | 
 0  | 
 0  | 
       *va_arg(ap, int*) =   | 
 
| 
153211
 | 
 95  | 
 0  | 
       sqlite3GlobalConfig.pcache2 = *va_arg(ap, sqlite3_pcache_methods2*);  | 
 
| 
153219
 | 
 0  | 
 0  | 
       if( sqlite3GlobalConfig.pcache2.xInit==0 ){  | 
 
| 
153222
 | 
 0  | 
 0  | 
       *va_arg(ap, sqlite3_pcache_methods2*) = sqlite3GlobalConfig.pcache2;  | 
 
| 
153272
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.szLookaside = va_arg(ap, int);  | 
 
| 
153273
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.nLookaside = va_arg(ap, int);  | 
 
| 
153287
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.xLog = va_arg(ap, LOGFUNC_t);  | 
 
| 
153288
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.pLogArg = va_arg(ap, void*);  | 
 
| 
153302
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.bOpenUri = va_arg(ap, int);  | 
 
| 
153311
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.bUseCis = va_arg(ap, int);  | 
 
| 
153329
 | 
 0  | 
 0  | 
       sqlite3_int64 szMmap = va_arg(ap, sqlite3_int64);  | 
 
| 
153330
 | 
 0  | 
 0  | 
       sqlite3_int64 mxMmap = va_arg(ap, sqlite3_int64);  | 
 
| 
153339
 | 
 0  | 
 0  | 
       if( mxMmap<0 || mxMmap>SQLITE_MAX_MMAP_SIZE ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( mxMmap<0 || mxMmap>SQLITE_MAX_MMAP_SIZE ){  | 
 
| 
153342
 | 
 0  | 
 0  | 
       if( szMmap<0 ) szMmap = SQLITE_DEFAULT_MMAP_SIZE;  | 
 
| 
153343
 | 
 0  | 
 0  | 
       if( szMmap>mxMmap) szMmap = mxMmap;  | 
 
| 
153360
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.szPma = va_arg(ap, unsigned int);  | 
 
| 
153365
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.nStmtSpill = va_arg(ap, int);  | 
 
| 
153404
 | 
 0  | 
 251  | 
   if( sqlite3LookasideUsed(db,0)>0 ){  | 
 
| 
153411
 | 
 0  | 
 251  | 
   if( db->lookaside.bMalloced ){  | 
 
| 
153418
 | 
 0  | 
 251  | 
   if( sz<=(int)sizeof(LookasideSlot*) ) sz = 0;  | 
 
| 
153419
 | 
 0  | 
 251  | 
   if( cnt<0 ) cnt = 0;  | 
 
| 
153420
 | 
 251  | 
 0  | 
   if( sz==0 || cnt==0 ){  | 
 
| 
 | 
 0  | 
 251  | 
   if( sz==0 || cnt==0 ){  | 
 
| 
153423
 | 
 251  | 
 0  | 
   }else if( pBuf==0 ){  | 
 
| 
153427
 | 
 251  | 
 0  | 
     if( pStart ) cnt = sqlite3MallocSize(pStart)/sz;  | 
 
| 
153435
 | 
 251  | 
 0  | 
   if( pStart ){  | 
 
| 
153441
 | 
 25100  | 
 251  | 
     for(i=cnt-1; i>=0; i--){  | 
 
| 
153485
 | 
 0  | 
 0  | 
   for(i=0; inDb; i++){  | 
 
| 
153487
 | 
 0  | 
 0  | 
     if( pBt ){  | 
 
| 
153511
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && inDb; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && inDb; i++){  | 
 
| 
153513
 | 
 0  | 
 0  | 
     if( pBt && sqlite3BtreeIsInTrans(pBt) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pBt && sqlite3BtreeIsInTrans(pBt) ){  | 
 
| 
153516
 | 
 0  | 
 0  | 
       if( rc==SQLITE_BUSY ){  | 
 
| 
153524
 | 
 0  | 
 0  | 
   return ((rc==SQLITE_OK && bSeenBusy) ? SQLITE_BUSY : rc);  | 
 
| 
 | 
 0  | 
 0  | 
   return ((rc==SQLITE_OK && bSeenBusy) ? SQLITE_BUSY : rc);  | 
 
| 
153538
 | 
 0  | 
 0  | 
       db->aDb[0].zDbSName = va_arg(ap,char*);  | 
 
| 
153543
 | 
 0  | 
 0  | 
       void *pBuf = va_arg(ap, void*); /* IMP: R-26835-10964 */  | 
 
| 
153544
 | 
 0  | 
 0  | 
       int sz = va_arg(ap, int);       /* IMP: R-47871-25994 */  | 
 
| 
153545
 | 
 0  | 
 0  | 
       int cnt = va_arg(ap, int);      /* IMP: R-04460-53386 */  | 
 
| 
153566
 | 
 1482  | 
 0  | 
       for(i=0; i
 | 
 
| 
153567
 | 
 494  | 
 988  | 
         if( aFlagOp[i].op==op ){  | 
 
| 
153568
 | 
 494  | 
 0  | 
           int onoff = va_arg(ap, int);  | 
 
| 
153569
 | 
 494  | 
 0  | 
           int *pRes = va_arg(ap, int*);  | 
 
| 
153571
 | 
 247  | 
 247  | 
           if( onoff>0 ){  | 
 
| 
153573
 | 
 0  | 
 247  | 
           }else if( onoff==0 ){  | 
 
| 
153576
 | 
 247  | 
 247  | 
           if( oldFlags!=db->flags ){  | 
 
| 
153579
 | 
 247  | 
 247  | 
           if( pRes ){  | 
 
| 
153598
 | 
 0  | 
 0  | 
   while( n>0 && z[n-1]==' ' ){ n--; }  | 
 
| 
 | 
 0  | 
 0  | 
   while( n>0 && z[n-1]==' ' ){ n--; }  | 
 
| 
153621
 | 
 477  | 
 548  | 
   if( rc==0 ){  | 
 
| 
153622
 | 
 0  | 
 477  | 
     if( padFlag  | 
 
| 
153623
 | 
 0  | 
 0  | 
      && allSpaces(((char*)pKey1)+n, nKey1-n)  | 
 
| 
153624
 | 
 0  | 
 0  | 
      && allSpaces(((char*)pKey2)+n, nKey2-n)  | 
 
| 
153644
 | 
 9  | 
 0  | 
   return p==0 || (p->xCmp==binCollFunc && p->pUser==0);  | 
 
| 
 | 
 9  | 
 0  | 
   return p==0 || (p->xCmp==binCollFunc && p->pUser==0);  | 
 
| 
 | 
 9  | 
 0  | 
   return p==0 || (p->xCmp==binCollFunc && p->pUser==0);  | 
 
| 
153664
 | 
 0  | 
 0  | 
   if( 0==r ){  | 
 
| 
153730
 | 
 13  | 
 473  | 
   while( db->pSavepoint ){  | 
 
| 
153748
 | 
 1992  | 
 20184  | 
   if( pDestructor ){  | 
 
| 
153750
 | 
 1992  | 
 0  | 
     if( pDestructor->nRef==0 ){  | 
 
| 
153766
 | 
 535  | 
 265  | 
   for(i=0; inDb; i++){  | 
 
| 
153768
 | 
 523  | 
 12  | 
     if( pSchema ){  | 
 
| 
153769
 | 
 617  | 
 523  | 
       for(p=sqliteHashFirst(&pSchema->tblHash); p; p=sqliteHashNext(p)){  | 
 
| 
153771
 | 
 10  | 
 607  | 
         if( IsVirtual(pTab) ) sqlite3VtabDisconnect(db, pTab);  | 
 
| 
153775
 | 
 2590  | 
 265  | 
   for(p=sqliteHashFirst(&db->aModule); p; p=sqliteHashNext(p)){  | 
 
| 
153777
 | 
 0  | 
 2590  | 
     if( pMod->pEpoTab ){  | 
 
| 
153795
 | 
 10  | 
 510  | 
   if( db->pVdbe ) return 1;  | 
 
| 
153796
 | 
 1030  | 
 510  | 
   for(j=0; jnDb; j++){  | 
 
| 
153798
 | 
 568  | 
 462  | 
     if( pBt && sqlite3BtreeIsInBackup(pBt) ) return 1;  | 
 
| 
 | 
 0  | 
 568  | 
     if( pBt && sqlite3BtreeIsInBackup(pBt) ) return 1;  | 
 
| 
153807
 | 
 0  | 
 265  | 
   if( !db ){  | 
 
| 
153812
 | 
 0  | 
 265  | 
   if( !sqlite3SafetyCheckSickOrOk(db) ){  | 
 
| 
153816
 | 
 0  | 
 265  | 
   if( db->mTrace & SQLITE_TRACE_CLOSE ){  | 
 
| 
153835
 | 
 265  | 
 0  | 
   if( !forceZombie && connectionIsBusy(db) ){  | 
 
| 
 | 
 10  | 
 255  | 
   if( !forceZombie && connectionIsBusy(db) ){  | 
 
| 
153885
 | 
 255  | 
 2068  | 
   if( db->magic!=SQLITE_MAGIC_ZOMBIE || connectionIsBusy(db) ){  | 
 
| 
 | 
 0  | 
 255  | 
   if( db->magic!=SQLITE_MAGIC_ZOMBIE || connectionIsBusy(db) ){  | 
 
| 
153906
 | 
 515  | 
 255  | 
   for(j=0; jnDb; j++){  | 
 
| 
153908
 | 
 284  | 
 231  | 
     if( pDb->pBt ){  | 
 
| 
153911
 | 
 254  | 
 30  | 
       if( j!=1 ){  | 
 
| 
153917
 | 
 249  | 
 6  | 
   if( db->aDb[1].pSchema ){  | 
 
| 
153932
 | 
 9052  | 
 255  | 
   for(i=sqliteHashFirst(&db->aFunc); i; i=sqliteHashNext(i)){  | 
 
| 
153940
 | 
 1992  | 
 9052  | 
     }while( p );  | 
 
| 
153943
 | 
 781  | 
 255  | 
   for(i=sqliteHashFirst(&db->aCollSeq); i; i=sqliteHashNext(i)){  | 
 
| 
153946
 | 
 2343  | 
 781  | 
     for(j=0; j<3; j++){  | 
 
| 
153947
 | 
 0  | 
 2343  | 
       if( pColl[j].xDel ){  | 
 
| 
153955
 | 
 2490  | 
 255  | 
   for(i=sqliteHashFirst(&db->aModule); i; i=sqliteHashNext(i)){  | 
 
| 
153957
 | 
 498  | 
 1992  | 
     if( pMod->xDestroy ){  | 
 
| 
153987
 | 
 249  | 
 6  | 
   if( db->lookaside.bMalloced ){  | 
 
| 
154014
 | 
 5  | 
 301  | 
   schemaChange = (db->mDbFlags & DBFLAG_SchemaChange)!=0 && db->init.busy==0;  | 
 
| 
 | 
 5  | 
 0  | 
   schemaChange = (db->mDbFlags & DBFLAG_SchemaChange)!=0 && db->init.busy==0;  | 
 
| 
154016
 | 
 617  | 
 306  | 
   for(i=0; inDb; i++){  | 
 
| 
154018
 | 
 339  | 
 278  | 
     if( p ){  | 
 
| 
154019
 | 
 44  | 
 295  | 
       if( sqlite3BtreeIsInTrans(p) ){  | 
 
| 
154028
 | 
 5  | 
 301  | 
   if( schemaChange ){  | 
 
| 
154040
 | 
 2  | 
 304  | 
   if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){  | 
 
| 
 | 
 0  | 
 2  | 
   if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){  | 
 
| 
154212
 | 
 23  | 
 0  | 
       if( ALWAYS(rc>=0) && rc
 | 
 
| 
 | 
 23  | 
 0  | 
       if( ALWAYS(rc>=0) && rc
 | 
 
| 
 | 
 23  | 
 0  | 
       if( ALWAYS(rc>=0) && rc
 | 
 
| 
154261
 | 
 120  | 
 59  | 
   if( count < NDELAY ){  | 
 
| 
154268
 | 
 14  | 
 165  | 
   if( prior + delay > tmout ){  | 
 
| 
154270
 | 
 7  | 
 7  | 
     if( delay<=0 ) return 0;  | 
 
| 
154299
 | 
 181  | 
 0  | 
   if( p->xBusyHandler==0 || p->nBusy<0 ) return 0;  | 
 
| 
 | 
 2  | 
 179  | 
   if( p->xBusyHandler==0 || p->nBusy<0 ) return 0;  | 
 
| 
154300
 | 
 179  | 
 0  | 
   if( p->bExtraFileArg ){  | 
 
| 
154310
 | 
 7  | 
 172  | 
   if( rc==0 ){  | 
 
| 
154359
 | 
 2  | 
 2  | 
   if( nOps>0 ){  | 
 
| 
154381
 | 
 261  | 
 2  | 
   if( ms>0 ){  | 
 
| 
154431
 | 
 11132  | 
 0  | 
   if( zFunctionName==0                /* Must have a valid name */  | 
 
| 
154432
 | 
 10594  | 
 538  | 
    || (xSFunc!=0 && xFinal!=0)        /* Not both xSFunc and xFinal */  | 
 
| 
 | 
 10594  | 
 0  | 
    || (xSFunc!=0 && xFinal!=0)        /* Not both xSFunc and xFinal */  | 
 
| 
154433
 | 
 11132  | 
 0  | 
    || ((xFinal==0)!=(xStep==0))       /* Both or neither of xFinal and xStep */  | 
 
| 
154434
 | 
 11132  | 
 0  | 
    || ((xValue==0)!=(xInverse==0))    /* Both or neither of xValue, xInverse */  | 
 
| 
154435
 | 
 11132  | 
 0  | 
    || (nArg<-1 || nArg>SQLITE_MAX_FUNCTION_ARG)  | 
 
| 
 | 
 11132  | 
 0  | 
    || (nArg<-1 || nArg>SQLITE_MAX_FUNCTION_ARG)  | 
 
| 
154436
 | 
 0  | 
 11132  | 
    || (255<(nName = sqlite3Strlen30( zFunctionName)))  | 
 
| 
154453
 | 
 0  | 
 11132  | 
   if( enc==SQLITE_UTF16 ){  | 
 
| 
154455
 | 
 502  | 
 10630  | 
   }else if( enc==SQLITE_ANY ){  | 
 
| 
154459
 | 
 502  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
154463
 | 
 0  | 
 502  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
154478
 | 
 1004  | 
 10128  | 
   if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==(u32)enc && p->nArg==nArg ){  | 
 
| 
 | 
 0  | 
 1004  | 
   if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==(u32)enc && p->nArg==nArg ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p && (p->funcFlags & SQLITE_FUNC_ENCMASK)==(u32)enc && p->nArg==nArg ){  | 
 
| 
154479
 | 
 0  | 
 0  | 
     if( db->nVdbeActive ){  | 
 
| 
154491
 | 
 0  | 
 11132  | 
   if( !p ){  | 
 
| 
154499
 | 
 2008  | 
 9124  | 
   if( pDestructor ){  | 
 
| 
154505
 | 
 10594  | 
 538  | 
   p->xSFunc = xSFunc ? xSFunc : xStep;  | 
 
| 
154543
 | 
 2008  | 
 8120  | 
   if( xDestroy ){  | 
 
| 
154545
 | 
 0  | 
 2008  | 
     if( !pArg ){  | 
 
| 
154557
 | 
 2008  | 
 8120  | 
   if( pArg && pArg->nRef==0 ){  | 
 
| 
 | 
 0  | 
 2008  | 
   if( pArg && pArg->nRef==0 ){  | 
 
| 
154694
 | 
 251  | 
 2008  | 
   if( rc ) return SQLITE_OK;  | 
 
| 
154696
 | 
 0  | 
 2008  | 
   if( zCopy==0 ) return SQLITE_NOMEM;  | 
 
| 
154722
 | 
 4  | 
 2  | 
   db->mTrace = xTrace ? SQLITE_TRACE_LEGACY : 0;  | 
 
| 
154744
 | 
 0  | 
 0  | 
   if( mTrace==0 ) xTrace = 0;  | 
 
| 
154745
 | 
 0  | 
 0  | 
   if( xTrace==0 ) mTrace = 0;  | 
 
| 
154895
 | 
 0  | 
 0  | 
   if( nFrame>=SQLITE_PTR_TO_INT(pClientData) ){  | 
 
| 
154923
 | 
 251  | 
 0  | 
   if( nFrame>0 ){  | 
 
| 
154981
 | 
 0  | 
 0  | 
   if( pnLog ) *pnLog = -1;  | 
 
| 
154982
 | 
 0  | 
 0  | 
   if( pnCkpt ) *pnCkpt = -1;  | 
 
| 
154988
 | 
 0  | 
 0  | 
   if( eModeSQLITE_CHECKPOINT_TRUNCATE ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( eModeSQLITE_CHECKPOINT_TRUNCATE ){  | 
 
| 
154995
 | 
 0  | 
 0  | 
   if( zDb && zDb[0] ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zDb && zDb[0] ){  | 
 
| 
154998
 | 
 0  | 
 0  | 
   if( iDb<0 ){  | 
 
| 
155010
 | 
 0  | 
 0  | 
   if( db->nVdbeActive==0 ){  | 
 
| 
155061
 | 
 0  | 
 0  | 
   for(i=0; inDb && rc==SQLITE_OK; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; inDb && rc==SQLITE_OK; i++){  | 
 
| 
155062
 | 
 0  | 
 0  | 
     if( i==iDb || iDb==SQLITE_MAX_ATTACHED ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( i==iDb || iDb==SQLITE_MAX_ATTACHED ){  | 
 
| 
155066
 | 
 0  | 
 0  | 
       if( rc==SQLITE_BUSY ){  | 
 
| 
155073
 | 
 0  | 
 0  | 
   return (rc==SQLITE_OK && bBusy) ? SQLITE_BUSY : rc;  | 
 
| 
 | 
 0  | 
 0  | 
   return (rc==SQLITE_OK && bBusy) ? SQLITE_BUSY : rc;  | 
 
| 
155119
 | 
 0  | 
 107  | 
   if( !db ){  | 
 
| 
155122
 | 
 0  | 
 107  | 
   if( !sqlite3SafetyCheckSickOrOk(db) ){  | 
 
| 
155126
 | 
 0  | 
 107  | 
   if( db->mallocFailed ){  | 
 
| 
155132
 | 
 17  | 
 90  | 
     if( z==0 ){  | 
 
| 
155156
 | 
 0  | 
 0  | 
   if( !db ){  | 
 
| 
155159
 | 
 0  | 
 0  | 
   if( !sqlite3SafetyCheckSickOrOk(db) ){  | 
 
| 
155163
 | 
 0  | 
 0  | 
   if( db->mallocFailed ){  | 
 
| 
155167
 | 
 0  | 
 0  | 
     if( z==0 ){  | 
 
| 
155188
 | 
 763  | 
 0  | 
   if( db && !sqlite3SafetyCheckSickOrOk(db) ){  | 
 
| 
 | 
 0  | 
 763  | 
   if( db && !sqlite3SafetyCheckSickOrOk(db) ){  | 
 
| 
155191
 | 
 763  | 
 0  | 
   if( !db || db->mallocFailed ){  | 
 
| 
 | 
 0  | 
 763  | 
   if( !db || db->mallocFailed ){  | 
 
| 
155197
 | 
 0  | 
 0  | 
   if( db && !sqlite3SafetyCheckSickOrOk(db) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( db && !sqlite3SafetyCheckSickOrOk(db) ){  | 
 
| 
155200
 | 
 0  | 
 0  | 
   if( !db || db->mallocFailed ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !db || db->mallocFailed ){  | 
 
| 
155206
 | 
 0  | 
 0  | 
   return db ? db->iSysErrno : 0;  | 
 
| 
155242
 | 
 1301  | 
 0  | 
   if( enc2==SQLITE_UTF16 || enc2==SQLITE_UTF16_ALIGNED ){  | 
 
| 
 | 
 0  | 
 1301  | 
   if( enc2==SQLITE_UTF16 || enc2==SQLITE_UTF16_ALIGNED ){  | 
 
| 
155245
 | 
 1301  | 
 0  | 
   if( enc2SQLITE_UTF16BE ){  | 
 
| 
 | 
 0  | 
 1301  | 
   if( enc2SQLITE_UTF16BE ){  | 
 
| 
155254
 | 
 514  | 
 787  | 
   if( pColl && pColl->xCmp ){  | 
 
| 
 | 
 0  | 
 514  | 
   if( pColl && pColl->xCmp ){  | 
 
| 
155255
 | 
 0  | 
 0  | 
     if( db->nVdbeActive ){  | 
 
| 
155268
 | 
 0  | 
 0  | 
     if( (pColl->enc & ~SQLITE_UTF16_ALIGNED)==enc2 ){  | 
 
| 
155271
 | 
 0  | 
 0  | 
       for(j=0; j<3; j++){  | 
 
| 
155273
 | 
 0  | 
 0  | 
         if( p->enc==pColl->enc ){  | 
 
| 
155274
 | 
 0  | 
 0  | 
           if( p->xDel ){  | 
 
| 
155284
 | 
 0  | 
 1301  | 
   if( pColl==0 ) return SQLITE_NOMEM_BKPT;  | 
 
| 
155393
 | 
 0  | 
 0  | 
   if( limitId<0 || limitId>=SQLITE_N_LIMIT ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( limitId<0 || limitId>=SQLITE_N_LIMIT ){  | 
 
| 
155397
 | 
 0  | 
 0  | 
   if( newLimit>=0 ){                   /* IMP: R-52476-28732 */  | 
 
| 
155398
 | 
 0  | 
 0  | 
     if( newLimit>aHardLimit[limitId] ){  | 
 
| 
155447
 | 
 250  | 
 12  | 
   if( ((flags & SQLITE_OPEN_URI)             /* IMP: R-48725-32206 */  | 
 
| 
155448
 | 
 0  | 
 250  | 
             || sqlite3GlobalConfig.bOpenUri) /* IMP: R-51689-46548 */  | 
 
| 
155449
 | 
 12  | 
 0  | 
    && nUri>=5 && memcmp(zUri, "file:", 5)==0 /* IMP: R-57884-37496 */  | 
 
| 
 | 
 12  | 
 0  | 
    && nUri>=5 && memcmp(zUri, "file:", 5)==0 /* IMP: R-57884-37496 */  | 
 
| 
155461
 | 
 214  | 
 12  | 
     for(iIn=0; iIn
 | 
 
| 
155463
 | 
 0  | 
 12  | 
     if( !zFile ) return SQLITE_NOMEM_BKPT;  | 
 
| 
155480
 | 
 0  | 
 12  | 
     if( zUri[5]=='/' && zUri[6]=='/' ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( zUri[5]=='/' && zUri[6]=='/' ){  | 
 
| 
155482
 | 
 0  | 
 0  | 
       while( zUri[iIn] && zUri[iIn]!='/' ) iIn++;  | 
 
| 
 | 
 0  | 
 0  | 
       while( zUri[iIn] && zUri[iIn]!='/' ) iIn++;  | 
 
| 
155483
 | 
 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)) ){  | 
 
| 
155503
 | 
 154  | 
 12  | 
     while( (c = zUri[iIn])!=0 && c!='#' ){  | 
 
| 
 | 
 154  | 
 0  | 
     while( (c = zUri[iIn])!=0 && c!='#' ){  | 
 
| 
155505
 | 
 0  | 
 154  | 
       if( c=='%'   | 
 
| 
155506
 | 
 0  | 
 0  | 
        && sqlite3Isxdigit(zUri[iIn])   | 
 
| 
155507
 | 
 0  | 
 0  | 
        && sqlite3Isxdigit(zUri[iIn+1])   | 
 
| 
155513
 | 
 0  | 
 0  | 
         if( octet==0 ){  | 
 
| 
155519
 | 
 0  | 
 0  | 
           while( (c = zUri[iIn])!=0 && c!='#'   | 
 
| 
 | 
 0  | 
 0  | 
           while( (c = zUri[iIn])!=0 && c!='#'   | 
 
| 
155520
 | 
 0  | 
 0  | 
               && (eState!=0 || c!='?')  | 
 
| 
 | 
 0  | 
 0  | 
               && (eState!=0 || c!='?')  | 
 
| 
155521
 | 
 0  | 
 0  | 
               && (eState!=1 || (c!='=' && c!='&'))  | 
 
| 
 | 
 0  | 
 0  | 
               && (eState!=1 || (c!='=' && c!='&'))  | 
 
| 
 | 
 0  | 
 0  | 
               && (eState!=1 || (c!='=' && c!='&'))  | 
 
| 
155522
 | 
 0  | 
 0  | 
               && (eState!=2 || c!='&')  | 
 
| 
 | 
 0  | 
 0  | 
               && (eState!=2 || c!='&')  | 
 
| 
155535
 | 
 50  | 
 104  | 
       }else if( eState==1 && (c=='&' || c=='=') ){  | 
 
| 
 | 
 50  | 
 0  | 
       }else if( eState==1 && (c=='&' || c=='=') ){  | 
 
| 
 | 
 10  | 
 40  | 
       }else if( eState==1 && (c=='&' || c=='=') ){  | 
 
| 
155536
 | 
 0  | 
 10  | 
         if( zFile[iOut-1]==0 ){  | 
 
| 
155538
 | 
 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++;  | 
 
| 
155541
 | 
 0  | 
 10  | 
         if( c=='&' ){  | 
 
| 
155547
 | 
 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=='&') ){  | 
 
| 
155553
 | 
 0  | 
 12  | 
     if( eState==1 ) zFile[iOut++] = '\0';  | 
 
| 
155562
 | 
 10  | 
 12  | 
     while( zOpt[0] ){  | 
 
| 
155567
 | 
 0  | 
 10  | 
       if( nOpt==3 && memcmp("vfs", zOpt, 3)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nOpt==3 && memcmp("vfs", zOpt, 3)==0 ){  | 
 
| 
155578
 | 
 0  | 
 10  | 
         if( nOpt==5 && memcmp("cache", zOpt, 5)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( nOpt==5 && memcmp("cache", zOpt, 5)==0 ){  | 
 
| 
155590
 | 
 10  | 
 0  | 
         if( nOpt==4 && memcmp("mode", zOpt, 4)==0 ){  | 
 
| 
 | 
 10  | 
 0  | 
         if( nOpt==4 && memcmp("mode", zOpt, 4)==0 ){  | 
 
| 
155606
 | 
 10  | 
 0  | 
         if( aMode ){  | 
 
| 
155609
 | 
 18  | 
 0  | 
           for(i=0; aMode[i].z; i++){  | 
 
| 
155611
 | 
 14  | 
 4  | 
             if( nVal==sqlite3Strlen30(z) && 0==memcmp(zVal, z, nVal) ){  | 
 
| 
 | 
 10  | 
 4  | 
             if( nVal==sqlite3Strlen30(z) && 0==memcmp(zVal, z, nVal) ){  | 
 
| 
155616
 | 
 0  | 
 10  | 
           if( mode==0 ){  | 
 
| 
155621
 | 
 0  | 
 10  | 
           if( (mode & ~SQLITE_OPEN_MEMORY)>limit ){  | 
 
| 
155636
 | 
 0  | 
 250  | 
     if( !zFile ) return SQLITE_NOMEM_BKPT;  | 
 
| 
155637
 | 
 247  | 
 3  | 
     if( nUri ){  | 
 
| 
155646
 | 
 0  | 
 262  | 
   if( *ppVfs==0 ){  | 
 
| 
155651
 | 
 0  | 
 262  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
155684
 | 
 0  | 
 257  | 
   if( rc ) return rc;  | 
 
| 
155687
 | 
 0  | 
 257  | 
   if( sqlite3GlobalConfig.bCoreMutex==0 ){  | 
 
| 
155689
 | 
 0  | 
 257  | 
   }else if( flags & SQLITE_OPEN_NOMUTEX ){  | 
 
| 
155691
 | 
 0  | 
 257  | 
   }else if( flags & SQLITE_OPEN_FULLMUTEX ){  | 
 
| 
155697
 | 
 0  | 
 257  | 
   if( flags & SQLITE_OPEN_PRIVATECACHE ){  | 
 
| 
155699
 | 
 0  | 
 257  | 
   }else if( sqlite3GlobalConfig.sharedCacheEnabled ){  | 
 
| 
155728
 | 
 0  | 
 257  | 
   if( db==0 ) goto opendb_out;  | 
 
| 
155729
 | 
 0  | 
 257  | 
   if( isThreadsafe   | 
 
| 
155735
 | 
 0  | 
 0  | 
     if( db->mutex==0 ){  | 
 
| 
155811
 | 
 0  | 
 257  | 
   if( db->mallocFailed ){  | 
 
| 
155839
 | 
 0  | 
 257  | 
   if( ((1<<(flags&7)) & 0x46)==0 ){  | 
 
| 
155844
 | 
 0  | 
 257  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
155845
 | 
 0  | 
 0  | 
     if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);  | 
 
| 
155846
 | 
 0  | 
 0  | 
     sqlite3ErrorWithMsg(db, rc, zErrMsg ? "%s" : 0, zErrMsg);  | 
 
| 
155854
 | 
 6  | 
 251  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
155855
 | 
 0  | 
 6  | 
     if( rc==SQLITE_IOERR_NOMEM ){  | 
 
| 
155863
 | 
 251  | 
 0  | 
   if( !db->mallocFailed ) ENC(db) = SCHEMA_ENC(db);  | 
 
| 
155876
 | 
 0  | 
 251  | 
   if( db->mallocFailed ){  | 
 
| 
155892
 | 
 251  | 
 0  | 
   if( !db->mallocFailed && rc==SQLITE_OK ){  | 
 
| 
 | 
 251  | 
 0  | 
   if( !db->mallocFailed && rc==SQLITE_OK ){  | 
 
| 
155900
 | 
 251  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
155903
 | 
 0  | 
 251  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
155923
 | 
 251  | 
 0  | 
   if( !db->mallocFailed && rc==SQLITE_OK ){  | 
 
| 
 | 
 251  | 
 0  | 
   if( !db->mallocFailed && rc==SQLITE_OK ){  | 
 
| 
155935
 | 
 251  | 
 0  | 
   if( !db->mallocFailed && rc==SQLITE_OK){  | 
 
| 
 | 
 251  | 
 0  | 
   if( !db->mallocFailed && rc==SQLITE_OK){  | 
 
| 
155953
 | 
 251  | 
 0  | 
   if( !db->mallocFailed && rc==SQLITE_OK){  | 
 
| 
 | 
 251  | 
 0  | 
   if( !db->mallocFailed && rc==SQLITE_OK){  | 
 
| 
155974
 | 
 0  | 
 251  | 
   if( rc ) sqlite3Error(db, rc);  | 
 
| 
155990
 | 
 0  | 
 257  | 
   if( rc==SQLITE_NOMEM ){  | 
 
| 
155993
 | 
 6  | 
 251  | 
   }else if( rc!=SQLITE_OK ){  | 
 
| 
156062
 | 
 0  | 
 0  | 
   if( rc ) return rc;  | 
 
| 
156064
 | 
 0  | 
 0  | 
   if( zFilename==0 ) zFilename = "\000\000";  | 
 
| 
156068
 | 
 0  | 
 0  | 
   if( zFilename8 ){  | 
 
| 
156072
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && !DbHasProperty(*ppDb, 0, DB_SchemaLoaded) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && !DbHasProperty(*ppDb, 0, DB_SchemaLoaded) ){  | 
 
| 
156141
 | 
 0  | 
 0  | 
   if( zName8 ){  | 
 
| 
156313
 | 
 0  | 
 13  | 
   if( SQLITE_OK!=rc ){  | 
 
| 
156319
 | 
 10  | 
 3  | 
   if( !pTab || pTab->pSelect ){  | 
 
| 
 | 
 0  | 
 10  | 
   if( !pTab || pTab->pSelect ){  | 
 
| 
156325
 | 
 10  | 
 0  | 
   if( zColumnName==0 ){  | 
 
| 
156328
 | 
 22  | 
 2  | 
     for(iCol=0; iColnCol; iCol++){  | 
 
| 
156330
 | 
 8  | 
 14  | 
       if( 0==sqlite3StrICmp(pCol->zName, zColumnName) ){  | 
 
| 
156334
 | 
 2  | 
 8  | 
     if( iCol==pTab->nCol ){  | 
 
| 
156335
 | 
 2  | 
 0  | 
       if( HasRowid(pTab) && sqlite3IsRowid(zColumnName) ){  | 
 
| 
 | 
 0  | 
 2  | 
       if( HasRowid(pTab) && sqlite3IsRowid(zColumnName) ){  | 
 
| 
156337
 | 
 0  | 
 0  | 
         pCol = iCol>=0 ? &pTab->aCol[iCol] : 0;  | 
 
| 
156355
 | 
 8  | 
 0  | 
   if( pCol ){  | 
 
| 
156360
 | 
 3  | 
 5  | 
     autoinc = pTab->iPKey==iCol && (pTab->tabFlags & TF_Autoincrement)!=0;  | 
 
| 
 | 
 2  | 
 1  | 
     autoinc = pTab->iPKey==iCol && (pTab->tabFlags & TF_Autoincrement)!=0;  | 
 
| 
156365
 | 
 8  | 
 0  | 
   if( !zCollSeq ){  | 
 
| 
156376
 | 
 12  | 
 1  | 
   if( pzDataType ) *pzDataType = zDataType;  | 
 
| 
156377
 | 
 12  | 
 1  | 
   if( pzCollSeq ) *pzCollSeq = zCollSeq;  | 
 
| 
156378
 | 
 12  | 
 1  | 
   if( pNotNull ) *pNotNull = notnull;  | 
 
| 
156379
 | 
 12  | 
 1  | 
   if( pPrimaryKey ) *pPrimaryKey = primarykey;  | 
 
| 
156380
 | 
 12  | 
 1  | 
   if( pAutoinc ) *pAutoinc = autoinc;  | 
 
| 
156382
 | 
 13  | 
 0  | 
   if( SQLITE_OK==rc && !pTab ){  | 
 
| 
 | 
 5  | 
 8  | 
   if( SQLITE_OK==rc && !pTab ){  | 
 
| 
156388
 | 
 5  | 
 8  | 
   sqlite3ErrorWithMsg(db, rc, (zErrMsg?"%s":0), zErrMsg);  | 
 
| 
156402
 | 
 0  | 
 0  | 
   if( pVfs==0 ) return 0;  | 
 
| 
156419
 | 
 0  | 
 0  | 
   db->errMask = onoff ? 0xffffffff : 0xff;  | 
 
| 
156436
 | 
 175  | 
 0  | 
   if( pBtree ){  | 
 
| 
156444
 | 
 0  | 
 175  | 
     if( op==SQLITE_FCNTL_FILE_POINTER ){  | 
 
| 
156447
 | 
 0  | 
 175  | 
     }else if( op==SQLITE_FCNTL_VFS_POINTER ){  | 
 
| 
156450
 | 
 0  | 
 175  | 
     }else if( op==SQLITE_FCNTL_JOURNAL_POINTER ){  | 
 
| 
156453
 | 
 0  | 
 175  | 
     }else if( op==SQLITE_FCNTL_DATA_VERSION ){  | 
 
| 
156514
 | 
 0  | 
 0  | 
       int sz = va_arg(ap, int);  | 
 
| 
156515
 | 
 0  | 
 0  | 
       int *aProg = va_arg(ap, int*);  | 
 
| 
156537
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.xTestCallback = va_arg(ap, TESTCALLBACKFUNC_t);  | 
 
| 
156552
 | 
 0  | 
 0  | 
       xBenignBegin = va_arg(ap, void_function);  | 
 
| 
156553
 | 
 0  | 
 0  | 
       xBenignEnd = va_arg(ap, void_function);  | 
 
| 
156574
 | 
 0  | 
 0  | 
         unsigned int newVal = va_arg(ap, unsigned int);  | 
 
| 
156575
 | 
 0  | 
 0  | 
         if( newVal ) sqlite3PendingByte = newVal;  | 
 
| 
156628
 | 
 0  | 
 0  | 
       int x = va_arg(ap,int);  | 
 
| 
156655
 | 
 0  | 
 0  | 
       sqlite3 *db = va_arg(ap, sqlite3*);  | 
 
| 
156656
 | 
 0  | 
 0  | 
       int x = va_arg(ap,int);  | 
 
| 
156673
 | 
 0  | 
 0  | 
       sqlite3 *db = va_arg(ap, sqlite3*);  | 
 
| 
156674
 | 
 0  | 
 0  | 
       db->dbOptFlags = (u16)(va_arg(ap, int) & 0xffff);  | 
 
| 
156684
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.bLocaltimeFault = va_arg(ap, int);  | 
 
| 
156696
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.bInternalFunctions = va_arg(ap, int);  | 
 
| 
156709
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.neverCorrupt = va_arg(ap, int);  | 
 
| 
156719
 | 
 0  | 
 0  | 
       sqlite3GlobalConfig.iOnceResetThreshold = va_arg(ap, int);  | 
 
| 
156740
 | 
 0  | 
 0  | 
       sqlite3 *db = va_arg(ap, sqlite3*);  | 
 
| 
156741
 | 
 0  | 
 0  | 
       db->nMaxSorterMmap = va_arg(ap, int);  | 
 
| 
156751
 | 
 0  | 
 0  | 
       if( sqlite3GlobalConfig.isInit==0 ) rc = SQLITE_ERROR;  | 
 
| 
156772
 | 
 0  | 
 0  | 
       sqlite3 *db = va_arg(ap, sqlite3*);  | 
 
| 
156774
 | 
 0  | 
 0  | 
       db->init.iDb = sqlite3FindDbName(db, va_arg(ap,const char*));  | 
 
| 
156775
 | 
 0  | 
 0  | 
       db->init.busy = db->init.imposterTable = va_arg(ap,int);  | 
 
| 
156776
 | 
 0  | 
 0  | 
       db->init.newTnum = va_arg(ap,int);  | 
 
| 
156777
 | 
 0  | 
 0  | 
       if( db->init.busy==0 && db->init.newTnum>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( db->init.busy==0 && db->init.newTnum>0 ){  | 
 
| 
156817
 | 
 220  | 
 166  | 
   if( zFilename==0 || zParam==0 ) return 0;  | 
 
| 
 | 
 0  | 
 220  | 
   if( zFilename==0 || zParam==0 ) return 0;  | 
 
| 
156819
 | 
 28  | 
 220  | 
   while( zFilename[0] ){  | 
 
| 
156822
 | 
 0  | 
 28  | 
     if( x==0 ) return zFilename;  | 
 
| 
156834
 | 
 0  | 
 374  | 
   return z ? sqlite3GetBoolean(z, bDflt) : bDflt;  | 
 
| 
156847
 | 
 0  | 
 0  | 
   if( z && sqlite3DecOrHexToI64(z, &v)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( z && sqlite3DecOrHexToI64(z, &v)==0 ){  | 
 
| 
156857
 | 
 112  | 
 76  | 
   int iDb = zDbName ? sqlite3FindDbName(db, zDbName) : 0;  | 
 
| 
156858
 | 
 188  | 
 0  | 
   return iDb<0 ? 0 : db->aDb[iDb].pBt;  | 
 
| 
156874
 | 
 9  | 
 0  | 
   return pBt ? sqlite3BtreeGetFilename(pBt) : 0;  | 
 
| 
156890
 | 
 4  | 
 0  | 
   return pBt ? sqlite3BtreeIsReadonly(pBt) : -1;  | 
 
| 
157048
 | 
 0  | 
 0  | 
   if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;  | 
 
| 
157053
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
157054
 | 
 0  | 
 0  | 
     if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0  | 
 
| 
157055
 | 
 0  | 
 0  | 
      && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0  | 
 
| 
157071
 | 
 117  | 
 0  | 
   if( N>=0 && N
 | 
 
| 
 | 
 104  | 
 13  | 
   if( N>=0 && N
 | 
 
| 
158652
 | 
 0  | 
 708  | 
   }while( vu!=0 );  | 
 
| 
158677
 | 
 171  | 
 0  | 
   GETVARINT_INIT(a, p, 0,  0x00,     0x80, *v, 1);  | 
 
| 
158678
 | 
 0  | 
 0  | 
   GETVARINT_STEP(a, p, 7,  0x7F,     0x4000, *v, 2);  | 
 
| 
158679
 | 
 0  | 
 0  | 
   GETVARINT_STEP(a, p, 14, 0x3FFF,   0x200000, *v, 3);  | 
 
| 
158680
 | 
 0  | 
 0  | 
   GETVARINT_STEP(a, p, 21, 0x1FFFFF, 0x10000000, *v, 4);  | 
 
| 
158683
 | 
 0  | 
 0  | 
   for(shift=28; shift<=63; shift+=7){  | 
 
| 
158686
 | 
 0  | 
 0  | 
     if( (c & 0x80)==0 ) break;  | 
 
| 
158706
 | 
 0  | 
 0  | 
   GETVARINT_STEP(a, p, 7,  0x7F,     0x4000, *pi, 2);  | 
 
| 
158707
 | 
 0  | 
 0  | 
   GETVARINT_STEP(a, p, 14, 0x3FFF,   0x200000, *pi, 3);  | 
 
| 
158708
 | 
 0  | 
 0  | 
   GETVARINT_STEP(a, p, 21, 0x1FFFFF, 0x10000000, *pi, 4);  | 
 
| 
158724
 | 
 0  | 
 336  | 
   }while( v!=0 );  | 
 
| 
158746
 | 
 24  | 
 0  | 
   if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){  | 
 
| 
 | 
 20  | 
 4  | 
   if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){  | 
 
| 
 | 
 19  | 
 1  | 
   if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){  | 
 
| 
 | 
 0  | 
 19  | 
   if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){  | 
 
| 
158751
 | 
 0  | 
 5  | 
     if( quote=='[' ) quote = ']';    | 
 
| 
158753
 | 
 93  | 
 0  | 
     while( z[iIn] ){  | 
 
| 
158754
 | 
 5  | 
 88  | 
       if( z[iIn]==quote ){  | 
 
| 
158755
 | 
 5  | 
 0  | 
         if( z[iIn+1]!=quote ) break;  | 
 
| 
158797
 | 
 0  | 
 0  | 
   for(p = (*pp)-2; p>=pStart && *p&0x80; p--);  | 
 
| 
 | 
 0  | 
 0  | 
   for(p = (*pp)-2; p>=pStart && *p&0x80; p--);  | 
 
| 
158817
 | 
 280  | 
 7  | 
   for(i=0; iaStmt); i++){  | 
 
| 
158859
 | 
 0  | 
 28  | 
   if( *pRc ) return;  | 
 
| 
158863
 | 
 0  | 
 28  | 
   if( zSql==0 ){  | 
 
| 
158881
 | 
 0  | 
 0  | 
   if( p->zContentTbl==0 ){  | 
 
| 
158893
 | 
 0  | 
 0  | 
   return (rc==SQLITE_OK ? fts3DisconnectMethod(pVtab) : rc);  | 
 
| 
158907
 | 
 7  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
158914
 | 
 0  | 
 7  | 
     zLanguageid = (p->zLanguageid ? p->zLanguageid : "__langid");  | 
 
| 
158919
 | 
 10  | 
 0  | 
     for(i=1; zCols && inColumn; i++){  | 
 
| 
 | 
 3  | 
 7  | 
     for(i=1; zCols && inColumn; i++){  | 
 
| 
158928
 | 
 7  | 
 0  | 
     if( !zCols || !zSql ){  | 
 
| 
 | 
 0  | 
 7  | 
     if( !zCols || !zSql ){  | 
 
| 
158949
 | 
 4  | 
 0  | 
   if( (*pRc)==SQLITE_OK ) p->bHasStat = 1;  | 
 
| 
158966
 | 
 6  | 
 1  | 
   if( p->zContentTbl==0 ){  | 
 
| 
158972
 | 
 14  | 
 0  | 
     for(i=0; zContentCols && inColumn; i++){  | 
 
| 
 | 
 8  | 
 6  | 
     for(i=0; zContentCols && inColumn; i++){  | 
 
| 
158976
 | 
 0  | 
 6  | 
     if( zLanguageid && zContentCols ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( zLanguageid && zContentCols ){  | 
 
| 
158979
 | 
 0  | 
 6  | 
     if( zContentCols==0 ) rc = SQLITE_NOMEM;  | 
 
| 
159006
 | 
 4  | 
 3  | 
   if( p->bHasDocsize ){  | 
 
| 
159013
 | 
 4  | 
 3  | 
   if( p->bHasStat ){  | 
 
| 
159027
 | 
 7  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
159033
 | 
 0  | 
 7  | 
     if( !zSql ){  | 
 
| 
159037
 | 
 7  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
159041
 | 
 0  | 
 0  | 
       }else if( rc==SQLITE_AUTH ){  | 
 
| 
159068
 | 
 37  | 
 1  | 
   while( *zCsr!='=' ){  | 
 
| 
159069
 | 
 6  | 
 31  | 
     if( *zCsr=='\0' ) return 0;  | 
 
| 
159075
 | 
 1  | 
 0  | 
   if( zValue ){  | 
 
| 
159091
 | 
 41  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
159097
 | 
 41  | 
 0  | 
     if( z && *pz ){  | 
 
| 
 | 
 27  | 
 14  | 
     if( z && *pz ){  | 
 
| 
159102
 | 
 0  | 
 41  | 
     if( z==0 ) *pRc = SQLITE_NOMEM;  | 
 
| 
159123
 | 
 0  | 
 0  | 
   if( zRet ){  | 
 
| 
159127
 | 
 0  | 
 0  | 
     for(i=0; zInput[i]; i++){  | 
 
| 
159128
 | 
 0  | 
 0  | 
       if( zInput[i]=='"' ) *(z++) = '"';  | 
 
| 
159166
 | 
 6  | 
 1  | 
   if( p->zContentTbl==0 ){  | 
 
| 
159167
 | 
 6  | 
 0  | 
     if( !zFunc ){  | 
 
| 
159173
 | 
 8  | 
 6  | 
     for(i=0; inColumn; i++){  | 
 
| 
159176
 | 
 0  | 
 6  | 
     if( p->zLanguageid ){  | 
 
| 
159182
 | 
 2  | 
 1  | 
     for(i=0; inColumn; i++){  | 
 
| 
159185
 | 
 0  | 
 1  | 
     if( p->zLanguageid ){  | 
 
| 
159189
 | 
 1  | 
 6  | 
   fts3Appendf(pRc, &zRet, " FROM '%q'.'%q%s' AS x",   | 
 
| 
 | 
 1  | 
 6  | 
   fts3Appendf(pRc, &zRet, " FROM '%q'.'%q%s' AS x",   | 
 
| 
159223
 | 
 7  | 
 0  | 
   if( !zFunc ){  | 
 
| 
159229
 | 
 10  | 
 7  | 
   for(i=0; inColumn; i++){  | 
 
| 
159232
 | 
 0  | 
 7  | 
   if( p->zLanguageid ){  | 
 
| 
159257
 | 
 0  | 
 0  | 
   for(p=*pp; p[0]>='0' && p[0]<='9'; p++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(p=*pp; p[0]>='0' && p[0]<='9'; p++){  | 
 
| 
159259
 | 
 0  | 
 0  | 
     if( nInt>MAX_NPREFIX ){  | 
 
| 
159264
 | 
 0  | 
 0  | 
   if( p==*pp ) return SQLITE_ERROR;  | 
 
| 
159295
 | 
 0  | 
 7  | 
   if( zParam && zParam[0] ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zParam && zParam[0] ){  | 
 
| 
159298
 | 
 0  | 
 0  | 
     for(p=zParam; *p; p++){  | 
 
| 
159299
 | 
 0  | 
 0  | 
       if( *p==',' ) nIndex++;  | 
 
| 
159305
 | 
 0  | 
 7  | 
   if( !aIndex ){  | 
 
| 
159310
 | 
 0  | 
 7  | 
   if( zParam ){  | 
 
| 
159313
 | 
 0  | 
 0  | 
     for(i=1; i
 | 
 
| 
159315
 | 
 0  | 
 0  | 
       if( fts3GobbleInt(&p, &nPrefix) ) return SQLITE_ERROR;  | 
 
| 
159317
 | 
 0  | 
 0  | 
       if( nPrefix==0 ){  | 
 
| 
159370
 | 
 0  | 
 0  | 
   if( !zSql ){  | 
 
| 
159374
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
159380
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
159390
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
159397
 | 
 0  | 
 0  | 
     if( azCol==0 ){  | 
 
| 
159401
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
159479
 | 
 8  | 
 0  | 
   if( aCol ){  | 
 
| 
159483
 | 
 8  | 
 0  | 
   if( azNotindexed ){  | 
 
| 
159486
 | 
 8  | 
 0  | 
   if( !aCol || !azNotindexed ){  | 
 
| 
 | 
 0  | 
 8  | 
   if( !aCol || !azNotindexed ){  | 
 
| 
159502
 | 
 25  | 
 1  | 
   for(i=3; rc==SQLITE_OK && i
 | 
 
| 
 | 
 18  | 
 7  | 
   for(i=3; rc==SQLITE_OK && i
 | 
 
| 
159508
 | 
 18  | 
 0  | 
     if( !pTokenizer   | 
 
| 
159509
 | 
 9  | 
 9  | 
      && strlen(z)>8  | 
 
| 
159510
 | 
 6  | 
 3  | 
      && 0==sqlite3_strnicmp(z, "tokenize", 8)   | 
 
| 
159511
 | 
 6  | 
 0  | 
      && 0==sqlite3Fts3IsIdChar(z[8])  | 
 
| 
159517
 | 
 7  | 
 5  | 
     else if( isFts4 && fts3IsSpecialColumn(z, &nKey, &zVal) ){  | 
 
| 
 | 
 1  | 
 6  | 
     else if( isFts4 && fts3IsSpecialColumn(z, &nKey, &zVal) ){  | 
 
| 
159533
 | 
 0  | 
 1  | 
       if( !zVal ){  | 
 
| 
159536
 | 
 6  | 
 0  | 
         for(iOpt=0; iOpt
 | 
 
| 
159538
 | 
 1  | 
 5  | 
           if( nKey==pOp->nOpt && !sqlite3_strnicmp(z, pOp->zOpt, pOp->nOpt) ){  | 
 
| 
 | 
 1  | 
 0  | 
           if( nKey==pOp->nOpt && !sqlite3_strnicmp(z, pOp->zOpt, pOp->nOpt) ){  | 
 
| 
159544
 | 
 0  | 
 0  | 
             if( strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "fts3", 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
             if( strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "fts3", 4) ){  | 
 
| 
159570
 | 
 0  | 
 0  | 
             if( (strlen(zVal)!=3 || sqlite3_strnicmp(zVal, "asc", 3))   | 
 
| 
 | 
 0  | 
 0  | 
             if( (strlen(zVal)!=3 || sqlite3_strnicmp(zVal, "asc", 3))   | 
 
| 
159571
 | 
 0  | 
 0  | 
              && (strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "desc", 4))   | 
 
| 
 | 
 0  | 
 0  | 
              && (strlen(zVal)!=4 || sqlite3_strnicmp(zVal, "desc", 4))   | 
 
| 
159576
 | 
 0  | 
 0  | 
             bDescIdx = (zVal[0]=='d' || zVal[0]=='D');  | 
 
| 
 | 
 0  | 
 0  | 
             bDescIdx = (zVal[0]=='d' || zVal[0]=='D');  | 
 
| 
159621
 | 
 7  | 
 1  | 
   if( rc==SQLITE_OK && zContent ){  | 
 
| 
 | 
 1  | 
 6  | 
   if( rc==SQLITE_OK && zContent ){  | 
 
| 
159626
 | 
 0  | 
 1  | 
     if( nCol==0 ){  | 
 
| 
159633
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && zLanguageid ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && zLanguageid ){  | 
 
| 
159635
 | 
 0  | 
 0  | 
         for(j=0; j
 | 
 
| 
159636
 | 
 0  | 
 0  | 
           if( sqlite3_stricmp(zLanguageid, aCol[j])==0 ){  | 
 
| 
159638
 | 
 0  | 
 0  | 
             for(k=j; k
 | 
 
| 
159646
 | 
 1  | 
 7  | 
   if( rc!=SQLITE_OK ) goto fts3_init_out;  | 
 
| 
159648
 | 
 0  | 
 7  | 
   if( nCol==0 ){  | 
 
| 
159655
 | 
 2  | 
 5  | 
   if( pTokenizer==0 ){  | 
 
| 
159657
 | 
 0  | 
 2  | 
     if( rc!=SQLITE_OK ) goto fts3_init_out;  | 
 
| 
159662
 | 
 0  | 
 7  | 
   if( rc==SQLITE_ERROR ){  | 
 
| 
159666
 | 
 0  | 
 7  | 
   if( rc!=SQLITE_OK ) goto fts3_init_out;  | 
 
| 
159677
 | 
 0  | 
 7  | 
   if( p==0 ){  | 
 
| 
159688
 | 
 4  | 
 3  | 
   p->bHasDocsize = (isFts4 && bNoDocsize==0);  | 
 
| 
 | 
 4  | 
 0  | 
   p->bHasDocsize = (isFts4 && bNoDocsize==0);  | 
 
| 
159703
 | 
 7  | 
 7  | 
   for(i=0; i
 | 
 
| 
159718
 | 
 10  | 
 7  | 
   for(iCol=0; iCol
 | 
 
| 
159722
 | 
 10  | 
 0  | 
     if( n>0 ){  | 
 
| 
159733
 | 
 10  | 
 7  | 
   for(iCol=0; iCol
 | 
 
| 
159735
 | 
 0  | 
 10  | 
     for(i=0; i
 | 
 
| 
159737
 | 
 0  | 
 0  | 
       if( zNot && n==(int)strlen(zNot)  | 
 
| 
 | 
 0  | 
 0  | 
       if( zNot && n==(int)strlen(zNot)  | 
 
| 
159738
 | 
 0  | 
 0  | 
        && 0==sqlite3_strnicmp(p->azColumn[iCol], zNot, n)   | 
 
| 
159746
 | 
 0  | 
 7  | 
   for(i=0; i
 | 
 
| 
159747
 | 
 0  | 
 0  | 
     if( azNotindexed[i] ){  | 
 
| 
159753
 | 
 7  | 
 0  | 
   if( rc==SQLITE_OK && (zCompress==0)!=(zUncompress==0) ){  | 
 
| 
 | 
 0  | 
 7  | 
   if( rc==SQLITE_OK && (zCompress==0)!=(zUncompress==0) ){  | 
 
| 
159754
 | 
 0  | 
 0  | 
     char const *zMiss = (zCompress==0 ? "compress" : "uncompress");  | 
 
| 
159760
 | 
 0  | 
 7  | 
   if( rc!=SQLITE_OK ) goto fts3_init_out;  | 
 
| 
159765
 | 
 7  | 
 0  | 
   if( isCreate ){  | 
 
| 
159772
 | 
 3  | 
 4  | 
   if( !isFts4 && !isCreate ){  | 
 
| 
 | 
 0  | 
 3  | 
   if( !isFts4 && !isCreate ){  | 
 
| 
159791
 | 
 0  | 
 8  | 
   for(i=0; i
 | 
 
| 
159794
 | 
 1  | 
 7  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
159795
 | 
 0  | 
 1  | 
     if( p ){  | 
 
| 
159797
 | 
 0  | 
 1  | 
     }else if( pTokenizer ){  | 
 
| 
159839
 | 
 0  | 
 0  | 
   if( sqlite3_libversion_number()>=3008002 ){  | 
 
| 
159852
 | 
 0  | 
 0  | 
   if( sqlite3_libversion_number()>=3008012 ){  | 
 
| 
159882
 | 
 34  | 
 34  | 
   for(i=0; inConstraint; i++){  | 
 
| 
159885
 | 
 0  | 
 34  | 
     if( pCons->usable==0 ){  | 
 
| 
159886
 | 
 0  | 
 0  | 
       if( pCons->op==SQLITE_INDEX_CONSTRAINT_MATCH ){  | 
 
| 
159900
 | 
 34  | 
 0  | 
     bDocid = (pCons->iColumn<0 || pCons->iColumn==p->nColumn+1);  | 
 
| 
 | 
 0  | 
 34  | 
     bDocid = (pCons->iColumn<0 || pCons->iColumn==p->nColumn+1);  | 
 
| 
159903
 | 
 34  | 
 0  | 
     if( iCons<0 && pCons->op==SQLITE_INDEX_CONSTRAINT_EQ && bDocid ){  | 
 
| 
 | 
 0  | 
 34  | 
     if( iCons<0 && pCons->op==SQLITE_INDEX_CONSTRAINT_EQ && bDocid ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iCons<0 && pCons->op==SQLITE_INDEX_CONSTRAINT_EQ && bDocid ){  | 
 
| 
159918
 | 
 34  | 
 0  | 
     if( pCons->op==SQLITE_INDEX_CONSTRAINT_MATCH   | 
 
| 
159919
 | 
 34  | 
 0  | 
      && pCons->iColumn>=0 && pCons->iColumn<=p->nColumn  | 
 
| 
 | 
 34  | 
 0  | 
      && pCons->iColumn>=0 && pCons->iColumn<=p->nColumn  | 
 
| 
159927
 | 
 0  | 
 34  | 
     if( pCons->op==SQLITE_INDEX_CONSTRAINT_EQ   | 
 
| 
159928
 | 
 0  | 
 0  | 
      && pCons->iColumn==p->nColumn + 2  | 
 
| 
159933
 | 
 0  | 
 34  | 
     if( bDocid ){  | 
 
| 
159949
 | 
 0  | 
 34  | 
   if( pInfo->idxNum==FTS3_DOCID_SEARCH ) fts3SetUniqueFlag(pInfo);  | 
 
| 
159952
 | 
 34  | 
 0  | 
   if( iCons>=0 ){  | 
 
| 
159956
 | 
 0  | 
 34  | 
   if( iLangidCons>=0 ){  | 
 
| 
159960
 | 
 0  | 
 34  | 
   if( iDocidGe>=0 ){  | 
 
| 
159964
 | 
 0  | 
 34  | 
   if( iDocidLe>=0 ){  | 
 
| 
159972
 | 
 0  | 
 34  | 
   if( pInfo->nOrderBy==1 ){  | 
 
| 
159974
 | 
 0  | 
 0  | 
     if( pOrder->iColumn<0 || pOrder->iColumn==p->nColumn+1 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pOrder->iColumn<0 || pOrder->iColumn==p->nColumn+1 ){  | 
 
| 
159975
 | 
 0  | 
 0  | 
       if( pOrder->desc ){  | 
 
| 
160001
 | 
 0  | 
 34  | 
   if( !pCsr ){  | 
 
| 
160016
 | 
 2  | 
 100  | 
   if( pCsr->bSeekStmt ){  | 
 
| 
160018
 | 
 2  | 
 0  | 
     if( p->pSeekStmt==0 ){  | 
 
| 
160065
 | 
 2  | 
 5  | 
   if( pCsr->pStmt==0 ){  | 
 
| 
160068
 | 
 0  | 
 2  | 
     if( p->pSeekStmt ){  | 
 
| 
160073
 | 
 0  | 
 2  | 
       if( !zSql ) return SQLITE_NOMEM;  | 
 
| 
160077
 | 
 2  | 
 0  | 
     if( rc==SQLITE_OK ) pCsr->bSeekStmt = 1;  | 
 
| 
160089
 | 
 7  | 
 7  | 
   if( pCsr->isRequireSeek ){  | 
 
| 
160091
 | 
 7  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
160094
 | 
 7  | 
 0  | 
       if( SQLITE_ROW==sqlite3_step(pCsr->pStmt) ){  | 
 
| 
160098
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && ((Fts3Table *)pCsr->base.pVtab)->zContentTbl==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && ((Fts3Table *)pCsr->base.pVtab)->zContentTbl==0 ){  | 
 
| 
160109
 | 
 0  | 
 7  | 
   if( rc!=SQLITE_OK && pContext ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK && pContext ){  | 
 
| 
160161
 | 
 0  | 
 0  | 
   if( zCsr>zEnd ){  | 
 
| 
160165
 | 
 0  | 
 0  | 
   while( zCsr
 | 
 
| 
 | 
 0  | 
 0  | 
   while( zCsr
 | 
 
| 
 | 
 0  | 
 0  | 
   while( zCsr
 | 
 
| 
160173
 | 
 0  | 
 0  | 
     if( !isFirstTerm ){  | 
 
| 
160174
 | 
 0  | 
 0  | 
       zCsr += fts3GetVarint32(zCsr, &nPrefix);  | 
 
| 
160177
 | 
 0  | 
 0  | 
     zCsr += fts3GetVarint32(zCsr, &nSuffix);  | 
 
| 
160180
 | 
 0  | 
 0  | 
     if( nPrefix>zCsr-zNode || nSuffix>zEnd-zCsr ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nPrefix>zCsr-zNode || nSuffix>zEnd-zCsr ){  | 
 
| 
160184
 | 
 0  | 
 0  | 
     if( (i64)nPrefix+nSuffix>nAlloc ){  | 
 
| 
160188
 | 
 0  | 
 0  | 
       if( !zNew ){  | 
 
| 
160209
 | 
 0  | 
 0  | 
     if( piFirst && (cmp<0 || (cmp==0 && nBuffer>nTerm)) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( piFirst && (cmp<0 || (cmp==0 && nBuffer>nTerm)) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( piFirst && (cmp<0 || (cmp==0 && nBuffer>nTerm)) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( piFirst && (cmp<0 || (cmp==0 && nBuffer>nTerm)) ){  | 
 
| 
160214
 | 
 0  | 
 0  | 
     if( piLast && cmp<0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( piLast && cmp<0 ){  | 
 
| 
160222
 | 
 0  | 
 0  | 
   if( piFirst ) *piFirst = iChild;  | 
 
| 
160223
 | 
 0  | 
 0  | 
   if( piLast ) *piLast = iChild;  | 
 
| 
160266
 | 
 0  | 
 0  | 
   fts3GetVarint32(zNode, &iHeight);  | 
 
| 
160270
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && iHeight>1 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && iHeight>1 ){  | 
 
| 
160274
 | 
 0  | 
 0  | 
     if( piLeaf && piLeaf2 && (*piLeaf!=*piLeaf2) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( piLeaf && piLeaf2 && (*piLeaf!=*piLeaf2) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( piLeaf && piLeaf2 && (*piLeaf!=*piLeaf2) ){  | 
 
| 
160276
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
160284
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
160285
 | 
 0  | 
 0  | 
       rc = sqlite3Fts3ReadBlock(p, piLeaf?*piLeaf:*piLeaf2, &zBlob, &nBlob, 0);  | 
 
| 
160287
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
160338
 | 
 20  | 
 28  | 
   while( *pEnd | c ){  | 
 
| 
160344
 | 
 8  | 
 20  | 
   if( pp ){  | 
 
| 
160378
 | 
 0  | 
 8  | 
   while( 0xFE & (*pEnd | c) ){  | 
 
| 
160382
 | 
 0  | 
 8  | 
   if( pp ){  | 
 
| 
160420
 | 
 0  | 
 0  | 
   if( (**pp)&0xFE ){  | 
 
| 
160439
 | 
 0  | 
 0  | 
   if( iCol ){  | 
 
| 
160464
 | 
 0  | 
 0  | 
   while( *p1 || *p2 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( *p1 || *p2 ){  | 
 
| 
160468
 | 
 0  | 
 0  | 
     if( *p1==POS_COLUMN ) fts3GetVarint32(&p1[1], &iCol1);  | 
 
| 
 | 
 0  | 
 0  | 
     if( *p1==POS_COLUMN ) fts3GetVarint32(&p1[1], &iCol1);  | 
 
| 
160469
 | 
 0  | 
 0  | 
     else if( *p1==POS_END ) iCol1 = POSITION_LIST_END;  | 
 
| 
160472
 | 
 0  | 
 0  | 
     if( *p2==POS_COLUMN ) fts3GetVarint32(&p2[1], &iCol2);  | 
 
| 
 | 
 0  | 
 0  | 
     if( *p2==POS_COLUMN ) fts3GetVarint32(&p2[1], &iCol2);  | 
 
| 
160473
 | 
 0  | 
 0  | 
     else if( *p2==POS_END ) iCol2 = POSITION_LIST_END;  | 
 
| 
160476
 | 
 0  | 
 0  | 
     if( iCol1==iCol2 ){  | 
 
| 
160498
 | 
 0  | 
 0  | 
         if( i1==i2 ){  | 
 
| 
160501
 | 
 0  | 
 0  | 
         }else if( i1
 | 
 
| 
160506
 | 
 0  | 
 0  | 
       }while( i1!=POSITION_LIST_END || i2!=POSITION_LIST_END );  | 
 
| 
 | 
 0  | 
 0  | 
       }while( i1!=POSITION_LIST_END || i2!=POSITION_LIST_END );  | 
 
| 
160507
 | 
 0  | 
 0  | 
     }else if( iCol1
 | 
 
| 
160563
 | 
 0  | 
 4  | 
   if( *p1==POS_COLUMN ){   | 
 
| 
160565
 | 
 0  | 
 0  | 
     p1 += fts3GetVarint32(p1, &iCol1);  | 
 
| 
160567
 | 
 0  | 
 4  | 
   if( *p2==POS_COLUMN ){   | 
 
| 
160569
 | 
 0  | 
 0  | 
     p2 += fts3GetVarint32(p2, &iCol2);  | 
 
| 
160573
 | 
 4  | 
 0  | 
     if( iCol1==iCol2 ){  | 
 
| 
160579
 | 
 0  | 
 4  | 
       if( iCol1 ){  | 
 
| 
160590
 | 
 0  | 
 4  | 
         if( iPos2==iPos1+nToken   | 
 
| 
160591
 | 
 0  | 
 0  | 
          || (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)   | 
 
| 
160594
 | 
 0  | 
 4  | 
           iSave = isSaveLeft ? iPos1 : iPos2;  | 
 
| 
160599
 | 
 4  | 
 0  | 
         if( (!isSaveLeft && iPos2<=(iPos1+nToken)) || iPos2<=iPos1 ){  | 
 
| 
 | 
 0  | 
 4  | 
         if( (!isSaveLeft && iPos2<=(iPos1+nToken)) || iPos2<=iPos1 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( (!isSaveLeft && iPos2<=(iPos1+nToken)) || iPos2<=iPos1 ){  | 
 
| 
160600
 | 
 4  | 
 0  | 
           if( (*p2&0xFE)==0 ) break;  | 
 
| 
160603
 | 
 0  | 
 0  | 
           if( (*p1&0xFE)==0 ) break;  | 
 
| 
160608
 | 
 0  | 
 4  | 
       if( pSave ){  | 
 
| 
160616
 | 
 0  | 
 4  | 
       if( 0==*p1 || 0==*p2 ) break;  | 
 
| 
 | 
 0  | 
 0  | 
       if( 0==*p1 || 0==*p2 ) break;  | 
 
| 
160619
 | 
 0  | 
 0  | 
       p1 += fts3GetVarint32(p1, &iCol1);  | 
 
| 
160621
 | 
 0  | 
 0  | 
       p2 += fts3GetVarint32(p2, &iCol2);  | 
 
| 
160629
 | 
 0  | 
 0  | 
     else if( iCol1
 | 
 
| 
160631
 | 
 0  | 
 0  | 
       if( 0==*p1 ) break;  | 
 
| 
160633
 | 
 0  | 
 0  | 
       p1 += fts3GetVarint32(p1, &iCol1);  | 
 
| 
160636
 | 
 0  | 
 0  | 
       if( 0==*p2 ) break;  | 
 
| 
160638
 | 
 0  | 
 0  | 
       p2 += fts3GetVarint32(p2, &iCol2);  | 
 
| 
160646
 | 
 0  | 
 4  | 
   if( *pp==p ){  | 
 
| 
160690
 | 
 0  | 
 0  | 
   if( pTmp1!=aTmp && pTmp2!=aTmp2 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTmp1!=aTmp && pTmp2!=aTmp2 ){  | 
 
| 
160692
 | 
 0  | 
 0  | 
   }else if( pTmp1!=aTmp ){  | 
 
| 
160694
 | 
 0  | 
 0  | 
   }else if( pTmp2!=aTmp2 ){  | 
 
| 
160733
 | 
 8  | 
 8  | 
   if( *pp>=pEnd ){  | 
 
| 
160738
 | 
 0  | 
 8  | 
     if( bDescIdx ){  | 
 
| 
160769
 | 
 0  | 
 8  | 
   if( bDescIdx==0 || *pbFirst==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( bDescIdx==0 || *pbFirst==0 ){  | 
 
| 
160857
 | 
 0  | 
 4  | 
   if( !aOut ) return SQLITE_NOMEM;  | 
 
| 
160862
 | 
 4  | 
 8  | 
   while( p1 || p2 ){  | 
 
| 
 | 
 4  | 
 4  | 
   while( p1 || p2 ){  | 
 
| 
160863
 | 
 0  | 
 8  | 
     sqlite3_int64 iDiff = DOCID_CMP(i1, i2);  | 
 
| 
160865
 | 
 8  | 
 0  | 
     if( p2 && p1 && iDiff==0 ){  | 
 
| 
 | 
 4  | 
 4  | 
     if( p2 && p1 && iDiff==0 ){  | 
 
| 
 | 
 0  | 
 4  | 
     if( p2 && p1 && iDiff==0 ){  | 
 
| 
160870
 | 
 8  | 
 0  | 
     }else if( !p2 || (p1 && iDiff<0) ){  | 
 
| 
 | 
 4  | 
 4  | 
     }else if( !p2 || (p1 && iDiff<0) ){  | 
 
| 
 | 
 4  | 
 0  | 
     }else if( !p2 || (p1 && iDiff<0) ){  | 
 
| 
160918
 | 
 0  | 
 0  | 
   if( bDescDoclist ){  | 
 
| 
160920
 | 
 0  | 
 0  | 
     if( aOut==0 ) return SQLITE_NOMEM;  | 
 
| 
160929
 | 
 0  | 
 0  | 
   while( p1 && p2 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( p1 && p2 ){  | 
 
| 
160930
 | 
 0  | 
 0  | 
     sqlite3_int64 iDiff = DOCID_CMP(i1, i2);  | 
 
| 
160931
 | 
 0  | 
 0  | 
     if( iDiff==0 ){  | 
 
| 
160937
 | 
 0  | 
 0  | 
       if( 0==fts3PoslistPhraseMerge(&p, nDist, 0, 1, &p1, &p2) ){  | 
 
| 
160944
 | 
 0  | 
 0  | 
     }else if( iDiff<0 ){  | 
 
| 
160954
 | 
 0  | 
 0  | 
   if( bDescDoclist ){  | 
 
| 
160981
 | 
 0  | 
 0  | 
   if( *p!=0x01 ){  | 
 
| 
160982
 | 
 0  | 
 0  | 
     if( *p==0x02 ){  | 
 
| 
160990
 | 
 0  | 
 0  | 
   while( p
 | 
 
| 
160994
 | 
 0  | 
 0  | 
     if( *p==0x02 ){  | 
 
| 
160995
 | 
 0  | 
 0  | 
       if( bWritten==0 ){  | 
 
| 
161005
 | 
 0  | 
 0  | 
   if( bWritten ){  | 
 
| 
161030
 | 
 128  | 
 8  | 
   for(i=0; iaaOutput); i++){  | 
 
| 
161031
 | 
 8  | 
 120  | 
     if( pTS->aaOutput[i] ){  | 
 
| 
161032
 | 
 8  | 
 0  | 
       if( !aOut ){  | 
 
| 
161043
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
161082
 | 
 8  | 
 4  | 
   if( pTS->aaOutput[0]==0 ){  | 
 
| 
161101
 | 
 8  | 
 0  | 
     if( pTS->aaOutput[0] ){  | 
 
| 
161111
 | 
 8  | 
 0  | 
     for(iOut=0; iOutaaOutput); iOut++){  | 
 
| 
161112
 | 
 4  | 
 4  | 
       if( pTS->aaOutput[iOut]==0 ){  | 
 
| 
161124
 | 
 0  | 
 4  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
161125
 | 
 0  | 
 0  | 
           if( aMerge!=aDoclist ) sqlite3_free(aMerge);  | 
 
| 
161129
 | 
 0  | 
 4  | 
         if( aMerge!=aDoclist ) sqlite3_free(aMerge);  | 
 
| 
161135
 | 
 0  | 
 4  | 
         if( (iOut+1)==SizeofArray(pTS->aaOutput) ){  | 
 
| 
161152
 | 
 83  | 
 173  | 
   if( (pCsr->nSegment%16)==0 ){  | 
 
| 
161156
 | 
 0  | 
 83  | 
     if( !apNew ){  | 
 
| 
161194
 | 
 89  | 
 0  | 
   if( iLevel<0 && p->aIndex ){  | 
 
| 
 | 
 88  | 
 1  | 
   if( iLevel<0 && p->aIndex ){  | 
 
| 
161196
 | 
 50  | 
 38  | 
     rc = sqlite3Fts3SegReaderPending(p, iIndex, zTerm, nTerm, isPrefix||isScan, &pSeg);  | 
 
| 
 | 
 0  | 
 50  | 
     rc = sqlite3Fts3SegReaderPending(p, iIndex, zTerm, nTerm, isPrefix||isScan, &pSeg);  | 
 
| 
161197
 | 
 88  | 
 0  | 
     if( rc==SQLITE_OK && pSeg ){  | 
 
| 
 | 
 25  | 
 63  | 
     if( rc==SQLITE_OK && pSeg ){  | 
 
| 
161202
 | 
 59  | 
 30  | 
   if( iLevel!=FTS3_SEGCURSOR_PENDING ){  | 
 
| 
161203
 | 
 59  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
161207
 | 
 290  | 
 0  | 
     while( rc==SQLITE_OK && SQLITE_ROW==(rc = sqlite3_step(pStmt)) ){  | 
 
| 
 | 
 231  | 
 59  | 
     while( rc==SQLITE_OK && SQLITE_ROW==(rc = sqlite3_step(pStmt)) ){  | 
 
| 
161219
 | 
 0  | 
 231  | 
       if( iStartBlock && zTerm ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( iStartBlock && zTerm ){  | 
 
| 
161220
 | 
 0  | 
 0  | 
         sqlite3_int64 *pi = (isPrefix ? &iLeavesEndBlock : 0);  | 
 
| 
161222
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ) goto finished;  | 
 
| 
161223
 | 
 0  | 
 0  | 
         if( isPrefix==0 && isScan==0 ) iLeavesEndBlock = iStartBlock;  | 
 
| 
 | 
 0  | 
 0  | 
         if( isPrefix==0 && isScan==0 ) iLeavesEndBlock = iStartBlock;  | 
 
| 
161226
 | 
 199  | 
 32  | 
       rc = sqlite3Fts3SegReaderNew(pCsr->nSegment+1,   | 
 
| 
 | 
 196  | 
 3  | 
       rc = sqlite3Fts3SegReaderNew(pCsr->nSegment+1,   | 
 
| 
161231
 | 
 0  | 
 231  | 
       if( rc!=SQLITE_OK ) goto finished;  | 
 
| 
161238
 | 
 59  | 
 30  | 
   if( rc==SQLITE_DONE ) rc = rc2;  | 
 
| 
161315
 | 
 58  | 
 0  | 
   if( pSegcsr ){  | 
 
| 
161320
 | 
 8  | 
 50  | 
     if( isPrefix ){  | 
 
| 
161321
 | 
 8  | 
 0  | 
       for(i=1; bFound==0 && inIndex; i++){  | 
 
| 
 | 
 0  | 
 8  | 
       for(i=1; bFound==0 && inIndex; i++){  | 
 
| 
161322
 | 
 0  | 
 0  | 
         if( p->aIndex[i].nPrefix==nTerm ){  | 
 
| 
161331
 | 
 8  | 
 0  | 
       for(i=1; bFound==0 && inIndex; i++){  | 
 
| 
 | 
 0  | 
 8  | 
       for(i=1; bFound==0 && inIndex; i++){  | 
 
| 
161332
 | 
 0  | 
 0  | 
         if( p->aIndex[i].nPrefix==nTerm+1 ){  | 
 
| 
161337
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
161346
 | 
 58  | 
 0  | 
     if( bFound==0 ){  | 
 
| 
161386
 | 
 8  | 
 0  | 
         | (pTok->isPrefix ? FTS3_SEGMENT_PREFIX : 0)  | 
 
| 
161387
 | 
 0  | 
 8  | 
         | (pTok->bFirst ? FTS3_SEGMENT_FIRST : 0)  | 
 
| 
161388
 | 
 8  | 
 0  | 
         | (iColumnnColumn ? FTS3_SEGMENT_COLUMN_FILTER : 0);  | 
 
| 
161394
 | 
 20  | 
 0  | 
   while( SQLITE_OK==rc  | 
 
| 
161395
 | 
 12  | 
 8  | 
       && SQLITE_ROW==(rc = sqlite3Fts3SegReaderStep(p, pSegcsr))   | 
 
| 
161400
 | 
 8  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
161403
 | 
 8  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
161408
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
161429
 | 
 0  | 
 0  | 
   if( aList ){  | 
 
| 
161432
 | 
 0  | 
 0  | 
     while( p
 | 
 
| 
161434
 | 
 0  | 
 0  | 
       while( (*p++)&0x80 );     /* Skip docid varint */  | 
 
| 
161456
 | 
 77  | 
 0  | 
   if( pCsr->eSearch==FTS3_DOCID_SEARCH || pCsr->eSearch==FTS3_FULLSCAN_SEARCH ){  | 
 
| 
 | 
 0  | 
 77  | 
   if( pCsr->eSearch==FTS3_DOCID_SEARCH || pCsr->eSearch==FTS3_FULLSCAN_SEARCH ){  | 
 
| 
161457
 | 
 0  | 
 0  | 
     if( SQLITE_ROW!=sqlite3_step(pCsr->pStmt) ){  | 
 
| 
161489
 | 
 0  | 
 68  | 
   if( pVal ){  | 
 
| 
161491
 | 
 0  | 
 0  | 
     if( eType==SQLITE_INTEGER ){  | 
 
| 
161542
 | 
 34  | 
 0  | 
   if( eSearch!=FTS3_FULLSCAN_SEARCH ) pCons = apVal[iIdx++];  | 
 
| 
161543
 | 
 0  | 
 34  | 
   if( idxNum & FTS3_HAVE_LANGID ) pLangid = apVal[iIdx++];  | 
 
| 
161544
 | 
 0  | 
 34  | 
   if( idxNum & FTS3_HAVE_DOCID_GE ) pDocidGe = apVal[iIdx++];  | 
 
| 
161545
 | 
 0  | 
 34  | 
   if( idxNum & FTS3_HAVE_DOCID_LE ) pDocidLe = apVal[iIdx++];  | 
 
| 
161555
 | 
 0  | 
 34  | 
   if( idxStr ){  | 
 
| 
161562
 | 
 34  | 
 0  | 
   if( eSearch!=FTS3_DOCID_SEARCH && eSearch!=FTS3_FULLSCAN_SEARCH ){  | 
 
| 
 | 
 34  | 
 0  | 
   if( eSearch!=FTS3_DOCID_SEARCH && eSearch!=FTS3_FULLSCAN_SEARCH ){  | 
 
| 
161566
 | 
 0  | 
 34  | 
     if( zQuery==0 && sqlite3_value_type(pCons)!=SQLITE_NULL ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( zQuery==0 && sqlite3_value_type(pCons)!=SQLITE_NULL ){  | 
 
| 
161571
 | 
 0  | 
 34  | 
     if( pLangid ) pCsr->iLangid = sqlite3_value_int(pLangid);  | 
 
| 
161578
 | 
 0  | 
 34  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
161584
 | 
 0  | 
 34  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
161594
 | 
 0  | 
 34  | 
   if( eSearch==FTS3_FULLSCAN_SEARCH ){  | 
 
| 
161595
 | 
 0  | 
 0  | 
     if( pDocidGe || pDocidLe ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pDocidGe || pDocidLe ){  | 
 
| 
161596
 | 
 0  | 
 0  | 
       zSql = sqlite3_mprintf(  | 
 
| 
161602
 | 
 0  | 
 0  | 
       zSql = sqlite3_mprintf("SELECT %s ORDER BY rowid %s",   | 
 
| 
161606
 | 
 0  | 
 0  | 
     if( zSql ){  | 
 
| 
161612
 | 
 0  | 
 34  | 
   }else if( eSearch==FTS3_DOCID_SEARCH ){  | 
 
| 
161614
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
161618
 | 
 0  | 
 34  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
161629
 | 
 34  | 
 43  | 
   if( pCsr->isEof ){  | 
 
| 
161683
 | 
 0  | 
 0  | 
       if( pCsr->pExpr ){  | 
 
| 
161686
 | 
 0  | 
 0  | 
       }else if( p->zLanguageid==0 ){  | 
 
| 
161698
 | 
 14  | 
 0  | 
       if( rc==SQLITE_OK && sqlite3_data_count(pCsr->pStmt)-1>iCol ){  | 
 
| 
 | 
 14  | 
 0  | 
       if( rc==SQLITE_OK && sqlite3_data_count(pCsr->pStmt)-1>iCol ){  | 
 
| 
161754
 | 
 30  | 
 0  | 
   if( rc==SQLITE_OK   | 
 
| 
161755
 | 
 0  | 
 30  | 
    && p->nLeafAdd>(nMinMerge/16)   | 
 
| 
161756
 | 
 0  | 
 0  | 
    && p->nAutoincrmerge && p->nAutoincrmerge!=0xff  | 
 
| 
 | 
 0  | 
 0  | 
    && p->nAutoincrmerge && p->nAutoincrmerge!=0xff  | 
 
| 
161765
 | 
 0  | 
 0  | 
     if( A>(int)nMinMerge ) rc = sqlite3Fts3Incrmerge(p, A, p->nAutoincrmerge);  | 
 
| 
161780
 | 
 0  | 
 23  | 
   if( p->bHasStat==2 ){  | 
 
| 
161782
 | 
 0  | 
 0  | 
     if( zTbl ){  | 
 
| 
161848
 | 
 0  | 
 0  | 
   while( p>pStart && (c=*p--)==0 );  | 
 
| 
 | 
 0  | 
 0  | 
   while( p>pStart && (c=*p--)==0 );  | 
 
| 
161853
 | 
 0  | 
 0  | 
   while( p>pStart && (*p & 0x80) | c ){   | 
 
| 
 | 
 0  | 
 0  | 
   while( p>pStart && (*p & 0x80) | c ){   | 
 
| 
161871
 | 
 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]; }  | 
 
| 
161872
 | 
 0  | 
 0  | 
   while( *p++&0x80 );  | 
 
| 
161894
 | 
 0  | 
 0  | 
   if( (*ppCsr)!=0 ){  | 
 
| 
161925
 | 
 0  | 
 0  | 
   if( nVal>6 ){  | 
 
| 
161930
 | 
 0  | 
 0  | 
   if( fts3FunctionArg(pContext, "snippet", apVal[0], &pCsr) ) return;  | 
 
| 
161939
 | 
 0  | 
 0  | 
   if( !zEllipsis || !zEnd || !zStart ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !zEllipsis || !zEnd || !zStart ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !zEllipsis || !zEnd || !zStart ){  | 
 
| 
161941
 | 
 0  | 
 0  | 
   }else if( nToken==0 ){  | 
 
| 
161943
 | 
 0  | 
 0  | 
   }else if( SQLITE_OK==fts3CursorSeek(pContext, pCsr) ){  | 
 
| 
161961
 | 
 0  | 
 0  | 
   if( fts3FunctionArg(pContext, "offsets", apVal[0], &pCsr) ) return;  | 
 
| 
161963
 | 
 0  | 
 0  | 
   if( SQLITE_OK==fts3CursorSeek(pContext, pCsr) ){  | 
 
| 
161989
 | 
 0  | 
 0  | 
   if( fts3FunctionArg(pContext, "optimize", apVal[0], &pCursor) ) return;  | 
 
| 
162018
 | 
 0  | 
 0  | 
   if( SQLITE_OK==fts3FunctionArg(pContext, "matchinfo", apVal[0], &pCsr) ){  | 
 
| 
162020
 | 
 0  | 
 0  | 
     if( nVal>1 ){  | 
 
| 
162053
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
162054
 | 
 0  | 
 0  | 
     if( strcmp(zName, aOverload[i].zName)==0 ){  | 
 
| 
162086
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
162090
 | 
 0  | 
 0  | 
   if( p->zContentTbl==0 ){  | 
 
| 
162097
 | 
 0  | 
 0  | 
   if( p->bHasDocsize ){  | 
 
| 
162103
 | 
 0  | 
 0  | 
   if( p->bHasStat ){  | 
 
| 
162131
 | 
 0  | 
 0  | 
   if( ((Fts3Table *)pVtab)->bIgnoreSavepoint==0 ){  | 
 
| 
162176
 | 
 166  | 
 0  | 
   for(i=0; i
 | 
 
| 
162177
 | 
 56  | 
 110  | 
     if( sqlite3_stricmp(zName, azName[i])==0 ) return 1;  | 
 
| 
162269
 | 
 0  | 
 251  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
162276
 | 
 0  | 
 251  | 
   if( !pHash ){  | 
 
| 
162283
 | 
 251  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
162284
 | 
 251  | 
 0  | 
     if( sqlite3Fts3HashInsert(pHash, "simple", 7, (void *)pSimple)  | 
 
| 
162285
 | 
 251  | 
 0  | 
      || sqlite3Fts3HashInsert(pHash, "porter", 7, (void *)pPorter)   | 
 
| 
162288
 | 
 0  | 
 251  | 
      || sqlite3Fts3HashInsert(pHash, "unicode61", 10, (void *)pUnicode)   | 
 
| 
162308
 | 
 251  | 
 0  | 
   if( SQLITE_OK==rc   | 
 
| 
162309
 | 
 251  | 
 0  | 
    && SQLITE_OK==(rc = sqlite3Fts3InitHashTable(db, pHash, "fts3_tokenizer"))  | 
 
| 
162310
 | 
 251  | 
 0  | 
    && SQLITE_OK==(rc = sqlite3_overload_function(db, "snippet", -1))  | 
 
| 
162311
 | 
 251  | 
 0  | 
    && SQLITE_OK==(rc = sqlite3_overload_function(db, "offsets", 1))  | 
 
| 
162312
 | 
 251  | 
 0  | 
    && SQLITE_OK==(rc = sqlite3_overload_function(db, "matchinfo", 1))  | 
 
| 
162313
 | 
 251  | 
 0  | 
    && SQLITE_OK==(rc = sqlite3_overload_function(db, "matchinfo", 2))  | 
 
| 
162314
 | 
 251  | 
 0  | 
    && SQLITE_OK==(rc = sqlite3_overload_function(db, "optimize", 1))  | 
 
| 
162319
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
162324
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
162333
 | 
 0  | 
 0  | 
   if( pHash ){  | 
 
| 
162362
 | 
 74  | 
 0  | 
   if( pExpr && SQLITE_OK==*pRc ){  | 
 
| 
 | 
 74  | 
 0  | 
   if( pExpr && SQLITE_OK==*pRc ){  | 
 
| 
162363
 | 
 54  | 
 20  | 
     if( pExpr->eType==FTSQUERY_PHRASE ){  | 
 
| 
162367
 | 
 58  | 
 54  | 
       for(i=0; i
 | 
 
| 
162372
 | 
 0  | 
 58  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
162407
 | 
 0  | 
 8  | 
   if( pList==0 ){  | 
 
| 
162413
 | 
 8  | 
 0  | 
   else if( p->iDoclistToken<0 ){  | 
 
| 
162418
 | 
 0  | 
 0  | 
   else if( p->doclist.aAll==0 ){  | 
 
| 
162429
 | 
 0  | 
 0  | 
     if( p->iDoclistToken
 | 
 
| 
162451
 | 
 8  | 
 0  | 
   if( iToken>p->iDoclistToken ) p->iDoclistToken = iToken;  | 
 
| 
162469
 | 
 16  | 
 0  | 
   for(iToken=0; rc==SQLITE_OK && iTokennToken; iToken++){  | 
 
| 
 | 
 8  | 
 8  | 
   for(iToken=0; rc==SQLITE_OK && iTokennToken; iToken++){  | 
 
| 
162473
 | 
 8  | 
 0  | 
     if( pToken->pSegcsr ){  | 
 
| 
162477
 | 
 8  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
162506
 | 
 0  | 
 0  | 
   for(iToken=0; iTokennToken; iToken++){  | 
 
| 
162510
 | 
 0  | 
 0  | 
     if( pDeferred ){  | 
 
| 
162514
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
162516
 | 
 0  | 
 0  | 
       if( pList==0 ){  | 
 
| 
162522
 | 
 0  | 
 0  | 
       }else if( aPoslist==0 ){  | 
 
| 
162536
 | 
 0  | 
 0  | 
         if( nPoslist==0 ){  | 
 
| 
162547
 | 
 0  | 
 0  | 
   if( iPrev>=0 ){  | 
 
| 
162549
 | 
 0  | 
 0  | 
     if( nMaxUndeferred<0 ){  | 
 
| 
162560
 | 
 0  | 
 0  | 
       if( nMaxUndeferred>iPrev ){  | 
 
| 
162571
 | 
 0  | 
 0  | 
       if( !aOut ){  | 
 
| 
162577
 | 
 0  | 
 0  | 
       if( fts3PoslistPhraseMerge(&aOut, nDistance, 0, 1, &p1, &p2) ){  | 
 
| 
162623
 | 
 54  | 
 0  | 
    && pCsr->bDesc==pTab->bDescIdx   | 
 
| 
162624
 | 
 54  | 
 0  | 
    && p->nToken<=MAX_INCR_PHRASE_TOKENS && p->nToken>0  | 
 
| 
 | 
 54  | 
 0  | 
    && p->nToken<=MAX_INCR_PHRASE_TOKENS && p->nToken>0  | 
 
| 
 | 
 54  | 
 0  | 
    && p->nToken<=MAX_INCR_PHRASE_TOKENS && p->nToken>0  | 
 
| 
162629
 | 
 104  | 
 8  | 
   for(i=0; bIncrOk==1 && inToken; i++){  | 
 
| 
 | 
 58  | 
 46  | 
   for(i=0; bIncrOk==1 && inToken; i++){  | 
 
| 
162631
 | 
 58  | 
 0  | 
     if( pToken->bFirst || (pToken->pSegcsr!=0 && !pToken->pSegcsr->bLookup) ){  | 
 
| 
 | 
 58  | 
 0  | 
     if( pToken->bFirst || (pToken->pSegcsr!=0 && !pToken->pSegcsr->bLookup) ){  | 
 
| 
 | 
 8  | 
 50  | 
     if( pToken->bFirst || (pToken->pSegcsr!=0 && !pToken->pSegcsr->bLookup) ){  | 
 
| 
162634
 | 
 58  | 
 0  | 
     if( pToken->pSegcsr ) bHaveIncr = 1;  | 
 
| 
162637
 | 
 46  | 
 8  | 
   if( bIncrOk && bHaveIncr ){  | 
 
| 
 | 
 46  | 
 0  | 
   if( bIncrOk && bHaveIncr ){  | 
 
| 
162639
 | 
 46  | 
 0  | 
     int iCol = (p->iColumn >= pTab->nColumn ? -1 : p->iColumn);  | 
 
| 
162640
 | 
 96  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inToken; i++){  | 
 
| 
 | 
 50  | 
 46  | 
     for(i=0; rc==SQLITE_OK && inToken; i++){  | 
 
| 
162643
 | 
 50  | 
 0  | 
       if( pSegcsr ){  | 
 
| 
162684
 | 
 0  | 
 0  | 
   if( p==0 ){  | 
 
| 
162691
 | 
 0  | 
 0  | 
     while( pDocid
 | 
 
| 
162697
 | 
 0  | 
 0  | 
       while( pDocid
 | 
 
| 
 | 
 0  | 
 0  | 
       while( pDocid
 | 
 
| 
162698
 | 
 0  | 
 0  | 
       iMul = (bDescIdx ? -1 : 1);  | 
 
| 
162705
 | 
 0  | 
 0  | 
     int iMul = (bDescIdx ? -1 : 1);  | 
 
| 
162710
 | 
 0  | 
 0  | 
     if( p==aDoclist ){  | 
 
| 
162739
 | 
 0  | 
 0  | 
   if( p==0 ){  | 
 
| 
162744
 | 
 0  | 
 0  | 
     while( p<&aDoclist[nDoclist] && *p==0 ) p++;   | 
 
| 
 | 
 0  | 
 0  | 
     while( p<&aDoclist[nDoclist] && *p==0 ) p++;   | 
 
| 
162745
 | 
 0  | 
 0  | 
     if( p>=&aDoclist[nDoclist] ){  | 
 
| 
162750
 | 
 0  | 
 0  | 
       *piDocid += ((bDescIdx ? -1 : 1) * iVar);  | 
 
| 
162769
 | 
 12  | 
 8  | 
   if( pDL->pNextDocid ){  | 
 
| 
162775
 | 
 8  | 
 12  | 
   if( pIter>=pEnd ){  | 
 
| 
162781
 | 
 0  | 
 12  | 
     if( pTab->bDescIdx==0 || pDL->pNextDocid==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pTab->bDescIdx==0 || pDL->pNextDocid==0 ){  | 
 
| 
162796
 | 
 4  | 
 8  | 
     while( pIter
 | 
 
| 
 | 
 0  | 
 4  | 
     while( pIter
 | 
 
| 
162833
 | 
 0  | 
 12  | 
   if( pPhrase->iDoclistToken==iToken ){  | 
 
| 
162844
 | 
 12  | 
 0  | 
     if( pToken->pSegcsr ){  | 
 
| 
162849
 | 
 4  | 
 8  | 
       if( p->pList==0 ) *pbEof = 1;  | 
 
| 
162890
 | 
 89  | 
 8  | 
   if( p->nToken==1 ){  | 
 
| 
162894
 | 
 38  | 
 51  | 
     if( pDL->pList==0 ) bEof = 1;  | 
 
| 
162903
 | 
 8  | 
 4  | 
     while( bEof==0 ){  | 
 
| 
162909
 | 
 20  | 
 0  | 
       for(i=0; rc==SQLITE_OK && inToken && bEof==0; i++){  | 
 
| 
 | 
 16  | 
 4  | 
       for(i=0; rc==SQLITE_OK && inToken && bEof==0; i++){  | 
 
| 
 | 
 12  | 
 4  | 
       for(i=0; rc==SQLITE_OK && inToken && bEof==0; i++){  | 
 
| 
162911
 | 
 12  | 
 0  | 
         if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){  | 
 
| 
 | 
 4  | 
 8  | 
         if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){  | 
 
| 
 | 
 0  | 
 4  | 
         if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){  | 
 
| 
 | 
 0  | 
 4  | 
         if( a[i].bIgnore==0 && (bMaxSet==0 || DOCID_CMP(iMax, a[i].iDocid)<0) ){  | 
 
| 
162920
 | 
 16  | 
 8  | 
       for(i=0; inToken; i++){  | 
 
| 
162921
 | 
 16  | 
 0  | 
         while( rc==SQLITE_OK && bEof==0   | 
 
| 
 | 
 8  | 
 8  | 
         while( rc==SQLITE_OK && bEof==0   | 
 
| 
162922
 | 
 8  | 
 0  | 
             && a[i].bIgnore==0 && DOCID_CMP(a[i].iDocid, iMax)<0   | 
 
| 
 | 
 0  | 
 8  | 
             && a[i].bIgnore==0 && DOCID_CMP(a[i].iDocid, iMax)<0   | 
 
| 
 | 
 0  | 
 8  | 
             && a[i].bIgnore==0 && DOCID_CMP(a[i].iDocid, iMax)<0   | 
 
| 
162925
 | 
 0  | 
 0  | 
           if( DOCID_CMP(a[i].iDocid, iMax)>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( DOCID_CMP(a[i].iDocid, iMax)>0 ){  | 
 
| 
162933
 | 
 4  | 
 4  | 
       if( bEof==0 ){  | 
 
| 
162937
 | 
 0  | 
 4  | 
         if( !aDoclist ) return SQLITE_NOMEM;  | 
 
| 
162940
 | 
 4  | 
 4  | 
         for(i=0; i<(p->nToken-1); i++){  | 
 
| 
162941
 | 
 4  | 
 0  | 
           if( a[i].bIgnore==0 ){  | 
 
| 
162947
 | 
 0  | 
 4  | 
             if( res==0 ) break;  | 
 
| 
162951
 | 
 4  | 
 0  | 
         if( i==(p->nToken-1) ){  | 
 
| 
162985
 | 
 97  | 
 20  | 
   if( p->bIncr ){  | 
 
| 
162987
 | 
 0  | 
 20  | 
   }else if( pCsr->bDesc!=pTab->bDescIdx && pDL->nAll ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( pCsr->bDesc!=pTab->bDescIdx && pDL->nAll ){  | 
 
| 
163020
 | 
 74  | 
 0  | 
   if( pExpr && SQLITE_OK==*pRc ){  | 
 
| 
 | 
 74  | 
 0  | 
   if( pExpr && SQLITE_OK==*pRc ){  | 
 
| 
163021
 | 
 54  | 
 20  | 
     if( pExpr->eType==FTSQUERY_PHRASE ){  | 
 
| 
163023
 | 
 54  | 
 0  | 
       if( nToken ){  | 
 
| 
163025
 | 
 54  | 
 0  | 
         for(i=0; i
 | 
 
| 
163026
 | 
 54  | 
 0  | 
           if( pExpr->pPhrase->aToken[i].pDeferred==0 ) break;  | 
 
| 
163034
 | 
 0  | 
 20  | 
       pExpr->bDeferred = (pExpr->pLeft->bDeferred && pExpr->pRight->bDeferred);  | 
 
| 
 | 
 0  | 
 0  | 
       pExpr->bDeferred = (pExpr->pLeft->bDeferred && pExpr->pRight->bDeferred);  | 
 
| 
163076
 | 
 26  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
163077
 | 
 16  | 
 10  | 
     if( pExpr->eType==FTSQUERY_PHRASE ){  | 
 
| 
163080
 | 
 34  | 
 0  | 
       for(i=0; *pRc==SQLITE_OK && inToken; i++){  | 
 
| 
 | 
 18  | 
 16  | 
       for(i=0; *pRc==SQLITE_OK && inToken; i++){  | 
 
| 
163089
 | 
 8  | 
 2  | 
     }else if( pExpr->eType!=FTSQUERY_NOT ){  | 
 
| 
163095
 | 
 2  | 
 6  | 
       if( pExpr->eType==FTSQUERY_OR ){  | 
 
| 
163101
 | 
 2  | 
 6  | 
       if( pExpr->eType==FTSQUERY_OR ){  | 
 
| 
163124
 | 
 0  | 
 0  | 
   if( pCsr->nRowAvg==0 ){  | 
 
| 
163144
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
163150
 | 
 0  | 
 0  | 
     while( a
 | 
 
| 
163153
 | 
 0  | 
 0  | 
     if( nDoc==0 || nByte==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nDoc==0 || nByte==0 ){  | 
 
| 
163203
 | 
 0  | 
 14  | 
   if( pTab->zContentTbl ){  | 
 
| 
163210
 | 
 30  | 
 14  | 
   for(ii=0; ii
 | 
 
| 
163211
 | 
 18  | 
 12  | 
     if( aTC[ii].pRoot==pRoot ){  | 
 
| 
163216
 | 
 0  | 
 14  | 
   if( nOvfl==0 || nToken<2 ) return SQLITE_OK;  | 
 
| 
 | 
 0  | 
 0  | 
   if( nOvfl==0 || nToken<2 ) return SQLITE_OK;  | 
 
| 
163245
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
163250
 | 
 0  | 
 0  | 
     for(iTC=0; iTC
 | 
 
| 
163251
 | 
 0  | 
 0  | 
       if( aTC[iTC].pToken && aTC[iTC].pRoot==pRoot   | 
 
| 
 | 
 0  | 
 0  | 
       if( aTC[iTC].pToken && aTC[iTC].pRoot==pRoot   | 
 
| 
163252
 | 
 0  | 
 0  | 
        && (!pTC || aTC[iTC].nOvflnOvfl)   | 
 
| 
 | 
 0  | 
 0  | 
        && (!pTC || aTC[iTC].nOvflnOvfl)   | 
 
| 
163259
 | 
 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 ){  | 
 
| 
163272
 | 
 0  | 
 0  | 
       if( ii<12 ) nLoad4 = nLoad4*4;  | 
 
| 
163274
 | 
 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) ){  | 
 
| 
163283
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
163288
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
163293
 | 
 0  | 
 0  | 
           if( ii==0 || nCount
 | 
 
| 
 | 
 0  | 
 0  | 
           if( ii==0 || nCount
 | 
 
| 
163326
 | 
 34  | 
 0  | 
   if( rc==SQLITE_OK && nToken>1 && pTab->bFts4 ){  | 
 
| 
 | 
 20  | 
 14  | 
   if( rc==SQLITE_OK && nToken>1 && pTab->bFts4 ){  | 
 
| 
 | 
 10  | 
 10  | 
   if( rc==SQLITE_OK && nToken>1 && pTab->bFts4 ){  | 
 
| 
163335
 | 
 0  | 
 10  | 
     if( !aTC ){  | 
 
| 
163346
 | 
 10  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
163348
 | 
 14  | 
 0  | 
         for(ii=0; rc==SQLITE_OK && ii
 | 
 
| 
 | 
 4  | 
 10  | 
         for(ii=0; rc==SQLITE_OK && ii
 | 
 
| 
163366
 | 
 4  | 
 167  | 
   if( pPhrase->doclist.bFreeList ){  | 
 
| 
163416
 | 
 0  | 
 0  | 
   if( res ){  | 
 
| 
163475
 | 
 169  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
163487
 | 
 0  | 
 28  | 
         if( pLeft->bDeferred ){  | 
 
| 
163493
 | 
 0  | 
 28  | 
         }else if( pRight->bDeferred ){  | 
 
| 
163503
 | 
 16  | 
 12  | 
           while( !pLeft->bEof && !pRight->bEof && *pRc==SQLITE_OK ){  | 
 
| 
 | 
 16  | 
 0  | 
           while( !pLeft->bEof && !pRight->bEof && *pRc==SQLITE_OK ){  | 
 
| 
 | 
 16  | 
 0  | 
           while( !pLeft->bEof && !pRight->bEof && *pRc==SQLITE_OK ){  | 
 
| 
163504
 | 
 0  | 
 16  | 
             sqlite3_int64 iDiff = DOCID_CMP(pLeft->iDocid, pRight->iDocid);  | 
 
| 
163505
 | 
 16  | 
 0  | 
             if( iDiff==0 ) break;  | 
 
| 
163506
 | 
 0  | 
 0  | 
             if( iDiff<0 ){  | 
 
| 
163513
 | 
 16  | 
 12  | 
           pExpr->bEof = (pLeft->bEof || pRight->bEof);  | 
 
| 
 | 
 0  | 
 16  | 
           pExpr->bEof = (pLeft->bEof || pRight->bEof);  | 
 
| 
163514
 | 
 0  | 
 28  | 
           if( pExpr->eType==FTSQUERY_NEAR && pExpr->bEof ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( pExpr->eType==FTSQUERY_NEAR && pExpr->bEof ){  | 
 
| 
163516
 | 
 0  | 
 0  | 
             if( pRight->pPhrase->doclist.aAll ){  | 
 
| 
163518
 | 
 0  | 
 0  | 
               while( *pRc==SQLITE_OK && pRight->bEof==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               while( *pRc==SQLITE_OK && pRight->bEof==0 ){  | 
 
| 
163523
 | 
 0  | 
 0  | 
             if( pLeft->pPhrase && pLeft->pPhrase->doclist.aAll ){  | 
 
| 
 | 
 0  | 
 0  | 
             if( pLeft->pPhrase && pLeft->pPhrase->doclist.aAll ){  | 
 
| 
163525
 | 
 0  | 
 0  | 
               while( *pRc==SQLITE_OK && pLeft->bEof==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
               while( *pRc==SQLITE_OK && pLeft->bEof==0 ){  | 
 
| 
163538
 | 
 0  | 
 12  | 
         sqlite3_int64 iCmp = DOCID_CMP(pLeft->iDocid, pRight->iDocid);  | 
 
| 
163543
 | 
 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) ){  | 
 
| 
163545
 | 
 4  | 
 4  | 
         }else if( pLeft->bEof || iCmp>0 ){  | 
 
| 
 | 
 0  | 
 4  | 
         }else if( pLeft->bEof || iCmp>0 ){  | 
 
| 
163552
 | 
 8  | 
 4  | 
         pExpr->bEof = (pLeft->bEof && pRight->bEof);  | 
 
| 
 | 
 4  | 
 4  | 
         pExpr->bEof = (pLeft->bEof && pRight->bEof);  | 
 
| 
163553
 | 
 0  | 
 12  | 
         iCmp = DOCID_CMP(pLeft->iDocid, pRight->iDocid);  | 
 
| 
163554
 | 
 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) ){  | 
 
| 
163567
 | 
 4  | 
 8  | 
         if( pRight->bStart==0 ){  | 
 
| 
163573
 | 
 8  | 
 4  | 
         if( pLeft->bEof==0 ){  | 
 
| 
163574
 | 
 8  | 
 0  | 
           while( !*pRc   | 
 
| 
163575
 | 
 8  | 
 0  | 
               && !pRight->bEof   | 
 
| 
163576
 | 
 0  | 
 8  | 
               && DOCID_CMP(pLeft->iDocid, pRight->iDocid)>0   | 
 
| 
 | 
 0  | 
 8  | 
               && DOCID_CMP(pLeft->iDocid, pRight->iDocid)>0   | 
 
| 
163635
 | 
 16  | 
 0  | 
   if( *pRc==SQLITE_OK   | 
 
| 
163636
 | 
 0  | 
 16  | 
    && pExpr->eType==FTSQUERY_NEAR   | 
 
| 
163637
 | 
 0  | 
 0  | 
    && (pExpr->pParent==0 || pExpr->pParent->eType!=FTSQUERY_NEAR)  | 
 
| 
 | 
 0  | 
 0  | 
    && (pExpr->pParent==0 || pExpr->pParent->eType!=FTSQUERY_NEAR)  | 
 
| 
163644
 | 
 0  | 
 0  | 
     for(p=pExpr; p->pLeft; p=p->pLeft){  | 
 
| 
163650
 | 
 0  | 
 0  | 
     if( !aTmp ){  | 
 
| 
163657
 | 
 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){  | 
 
| 
163665
 | 
 0  | 
 0  | 
       for(p=pExpr->pLeft; p && res; p=p->pLeft){  | 
 
| 
 | 
 0  | 
 0  | 
       for(p=pExpr->pLeft; p && res; p=p->pLeft){  | 
 
| 
163671
 | 
 0  | 
 0  | 
             p->eType==FTSQUERY_NEAR ? p->pRight->pPhrase : p->pPhrase  | 
 
| 
163700
 | 
 111  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
163706
 | 
 16  | 
 0  | 
          && fts3EvalTestExpr(pCsr, pExpr->pRight, pRc)  | 
 
| 
163707
 | 
 16  | 
 0  | 
          && fts3EvalNearTest(pExpr, pRc)  | 
 
| 
 | 
 16  | 
 0  | 
          && fts3EvalNearTest(pExpr, pRc)  | 
 
| 
163725
 | 
 0  | 
 16  | 
         if( bHit==0   | 
 
| 
163726
 | 
 0  | 
 0  | 
          && pExpr->eType==FTSQUERY_NEAR   | 
 
| 
163727
 | 
 0  | 
 0  | 
          && (pExpr->pParent==0 || pExpr->pParent->eType!=FTSQUERY_NEAR)  | 
 
| 
 | 
 0  | 
 0  | 
          && (pExpr->pParent==0 || pExpr->pParent->eType!=FTSQUERY_NEAR)  | 
 
| 
163730
 | 
 0  | 
 0  | 
           for(p=pExpr; p->pPhrase==0; p=p->pLeft){  | 
 
| 
163731
 | 
 0  | 
 0  | 
             if( p->pRight->iDocid==pCsr->iPrevId ){  | 
 
| 
163735
 | 
 0  | 
 0  | 
           if( p->iDocid==pCsr->iPrevId ){  | 
 
| 
163745
 | 
 4  | 
 4  | 
         bHit = bHit1 || bHit2;  | 
 
| 
 | 
 4  | 
 0  | 
         bHit = bHit1 || bHit2;  | 
 
| 
163752
 | 
 8  | 
 0  | 
          && !fts3EvalTestExpr(pCsr, pExpr->pRight, pRc)  | 
 
| 
 | 
 4  | 
 4  | 
          && !fts3EvalTestExpr(pCsr, pExpr->pRight, pRc)  | 
 
| 
163758
 | 
 0  | 
 79  | 
         if( pCsr->pDeferred   | 
 
| 
163759
 | 
 0  | 
 0  | 
          && (pExpr->iDocid==pCsr->iPrevId || pExpr->bDeferred)  | 
 
| 
 | 
 0  | 
 0  | 
          && (pExpr->iDocid==pCsr->iPrevId || pExpr->bDeferred)  | 
 
| 
163763
 | 
 0  | 
 0  | 
           if( pExpr->bDeferred ){  | 
 
| 
163772
 | 
 75  | 
 4  | 
           bHit = (pExpr->bEof==0 && pExpr->iDocid==pCsr->iPrevId);  | 
 
| 
 | 
 67  | 
 8  | 
           bHit = (pExpr->bEof==0 && pExpr->iDocid==pCsr->iPrevId);  | 
 
| 
163808
 | 
 47  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
163816
 | 
 0  | 
 47  | 
     if( pCsr->pDeferred ){  | 
 
| 
163818
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
163828
 | 
 47  | 
 0  | 
   return (rc==SQLITE_OK && bMiss);  | 
 
| 
 | 
 4  | 
 43  | 
   return (rc==SQLITE_OK && bMiss);  | 
 
| 
163839
 | 
 0  | 
 77  | 
   if( pExpr==0 ){  | 
 
| 
163843
 | 
 41  | 
 40  | 
       if( pCsr->isRequireSeek==0 ){  | 
 
| 
163852
 | 
 47  | 
 34  | 
     }while( pCsr->isEof==0 && sqlite3Fts3EvalTestDeferred(pCsr, &rc) );  | 
 
| 
 | 
 4  | 
 43  | 
     }while( pCsr->isEof==0 && sqlite3Fts3EvalTestDeferred(pCsr, &rc) );  | 
 
| 
163857
 | 
 77  | 
 0  | 
   if( rc==SQLITE_OK && (  | 
 
| 
 | 
 77  | 
 0  | 
   if( rc==SQLITE_OK && (  | 
 
| 
163858
 | 
 77  | 
 0  | 
         (pCsr->bDesc==0 && pCsr->iPrevId>pCsr->iMaxDocid)  | 
 
| 
163859
 | 
 0  | 
 77  | 
      || (pCsr->bDesc!=0 && pCsr->iPrevIdiMinDocid)  | 
 
| 
 | 
 0  | 
 0  | 
      || (pCsr->bDesc!=0 && pCsr->iPrevIdiMinDocid)  | 
 
| 
163881
 | 
 0  | 
 0  | 
   if( pExpr && *pRc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pExpr && *pRc==SQLITE_OK ){  | 
 
| 
163884
 | 
 0  | 
 0  | 
     if( pPhrase ){  | 
 
| 
163886
 | 
 0  | 
 0  | 
       if( pPhrase->bIncr ){  | 
 
| 
163888
 | 
 0  | 
 0  | 
         for(i=0; inToken; i++){  | 
 
| 
163891
 | 
 0  | 
 0  | 
           if( pToken->pSegcsr ){  | 
 
| 
163920
 | 
 0  | 
 0  | 
   if( pExpr ){  | 
 
| 
163922
 | 
 0  | 
 0  | 
     if( pPhrase && pPhrase->doclist.pList ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pPhrase && pPhrase->doclist.pList ){  | 
 
| 
163930
 | 
 0  | 
 0  | 
         while( 0xFE & (*p | c) ){  | 
 
| 
163931
 | 
 0  | 
 0  | 
           if( (c&0x80)==0 ) iCnt++;  | 
 
| 
163940
 | 
 0  | 
 0  | 
         if( *p==0x00 ) break;  | 
 
| 
163942
 | 
 0  | 
 0  | 
         p += fts3GetVarint32(p, &iCol);  | 
 
| 
163969
 | 
 0  | 
 0  | 
   if( pExpr->aMI==0 ){  | 
 
| 
163980
 | 
 0  | 
 0  | 
     while( pRoot->pParent && pRoot->pParent->eType==FTSQUERY_NEAR ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( pRoot->pParent && pRoot->pParent->eType==FTSQUERY_NEAR ){  | 
 
| 
163988
 | 
 0  | 
 0  | 
     for(p=pRoot; p; p=p->pLeft){  | 
 
| 
163989
 | 
 0  | 
 0  | 
       Fts3Expr *pE = (p->eType==FTSQUERY_PHRASE?p:p->pRight);  | 
 
| 
163992
 | 
 0  | 
 0  | 
       if( !pE->aMI ) return SQLITE_NOMEM;  | 
 
| 
163998
 | 
 0  | 
 0  | 
     while( pCsr->isEof==0 && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( pCsr->isEof==0 && rc==SQLITE_OK ){  | 
 
| 
164002
 | 
 0  | 
 0  | 
         if( pCsr->isRequireSeek==0 ) sqlite3_reset(pCsr->pStmt);  | 
 
| 
164012
 | 
 0  | 
 0  | 
            && pRoot->eType==FTSQUERY_NEAR   | 
 
| 
164013
 | 
 0  | 
 0  | 
            && sqlite3Fts3EvalTestDeferred(pCsr, &rc)   | 
 
| 
164014
 | 
 0  | 
 0  | 
       );  | 
 
| 
164016
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && pCsr->isEof==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && pCsr->isEof==0 ){  | 
 
| 
164024
 | 
 0  | 
 0  | 
     if( bEof ){  | 
 
| 
164037
 | 
 0  | 
 0  | 
       }while( pRoot->iDocid!=iDocid && rc==SQLITE_OK );  | 
 
| 
 | 
 0  | 
 0  | 
       }while( pRoot->iDocid!=iDocid && rc==SQLITE_OK );  | 
 
| 
164082
 | 
 0  | 
 0  | 
   if( pExpr->bDeferred && pExpr->pParent->eType!=FTSQUERY_NEAR ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pExpr->bDeferred && pExpr->pParent->eType!=FTSQUERY_NEAR ){  | 
 
| 
164084
 | 
 0  | 
 0  | 
     for(iCol=0; iColnColumn; iCol++){  | 
 
| 
164090
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
164092
 | 
 0  | 
 0  | 
       for(iCol=0; iColnColumn; iCol++){  | 
 
| 
164137
 | 
 0  | 
 0  | 
   if( (pPhrase->iColumnnColumn && pPhrase->iColumn!=iCol) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (pPhrase->iColumnnColumn && pPhrase->iColumn!=iCol) ){  | 
 
| 
164143
 | 
 0  | 
 0  | 
   if( iDocid!=pCsr->iPrevId || pExpr->bEof ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( iDocid!=pCsr->iPrevId || pExpr->bEof ){  | 
 
| 
164158
 | 
 0  | 
 0  | 
     for(p=pExpr->pParent; p; p=p->pParent){  | 
 
| 
164159
 | 
 0  | 
 0  | 
       if( p->eType==FTSQUERY_OR ) bOr = 1;  | 
 
| 
164160
 | 
 0  | 
 0  | 
       if( p->eType==FTSQUERY_NEAR ) pNear = p;  | 
 
| 
164161
 | 
 0  | 
 0  | 
       if( p->bEof ) bTreeEof = 1;  | 
 
| 
164163
 | 
 0  | 
 0  | 
     if( bOr==0 ) return SQLITE_OK;  | 
 
| 
164168
 | 
 0  | 
 0  | 
     if( pPhrase->bIncr ){  | 
 
| 
164171
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK && !pNear->bEof ){  | 
 
| 
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK && !pNear->bEof ){  | 
 
| 
164173
 | 
 0  | 
 0  | 
         if( bEofSave==0 && pNear->iDocid==iDocid ) break;  | 
 
| 
 | 
 0  | 
 0  | 
         if( bEofSave==0 && pNear->iDocid==iDocid ) break;  | 
 
| 
164177
 | 
 0  | 
 0  | 
     if( bTreeEof ){  | 
 
| 
164178
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK && !pNear->bEof ){  | 
 
| 
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK && !pNear->bEof ){  | 
 
| 
164182
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
164185
 | 
 0  | 
 0  | 
     for(p=pNear; p; p=p->pLeft){  | 
 
| 
164190
 | 
 0  | 
 0  | 
       if( pTest->eType==FTSQUERY_NEAR ) pTest = pTest->pRight;  | 
 
| 
164196
 | 
 0  | 
 0  | 
       if( pCsr->bDesc==bDescDoclist ){  | 
 
| 
164197
 | 
 0  | 
 0  | 
         bEof = !pPh->doclist.nAll ||  | 
 
| 
 | 
 0  | 
 0  | 
         bEof = !pPh->doclist.nAll ||  | 
 
| 
164199
 | 
 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 ){  | 
 
| 
164206
 | 
 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);  | 
 
| 
164207
 | 
 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 ){  | 
 
| 
164217
 | 
 0  | 
 0  | 
       if( bEof || iDocid!=pCsr->iPrevId ) bMatch = 0;  | 
 
| 
 | 
 0  | 
 0  | 
       if( bEof || iDocid!=pCsr->iPrevId ) bMatch = 0;  | 
 
| 
164220
 | 
 0  | 
 0  | 
     if( bMatch ){  | 
 
| 
164226
 | 
 0  | 
 0  | 
   if( pIter==0 ) return SQLITE_OK;  | 
 
| 
164228
 | 
 0  | 
 0  | 
   if( *pIter==0x01 ){  | 
 
| 
164230
 | 
 0  | 
 0  | 
     pIter += fts3GetVarint32(pIter, &iThis);  | 
 
| 
164234
 | 
 0  | 
 0  | 
   while( iThis
 | 
 
| 
164236
 | 
 0  | 
 0  | 
     if( *pIter==0x00 ) return SQLITE_OK;  | 
 
| 
164238
 | 
 0  | 
 0  | 
     pIter += fts3GetVarint32(pIter, &iThis);  | 
 
| 
164240
 | 
 0  | 
 0  | 
   if( *pIter==0x00 ){  | 
 
| 
164244
 | 
 0  | 
 0  | 
   *ppOut = ((iCol==iThis)?pIter:0);  | 
 
| 
164256
 | 
 54  | 
 20  | 
   if( pPhrase ){  | 
 
| 
164261
 | 
 58  | 
 54  | 
     for(i=0; inToken; i++){  | 
 
| 
164378
 | 
 0  | 
 1  | 
   if( argc!=4 && argc!=5 ) goto bad_args;  | 
 
| 
 | 
 0  | 
 0  | 
   if( argc!=4 && argc!=5 ) goto bad_args;  | 
 
| 
164382
 | 
 0  | 
 1  | 
   if( argc==5 ){  | 
 
| 
164383
 | 
 0  | 
 0  | 
     if( nDb==4 && 0==sqlite3_strnicmp("temp", zDb, 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nDb==4 && 0==sqlite3_strnicmp("temp", zDb, 4) ){  | 
 
| 
164396
 | 
 0  | 
 1  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
164400
 | 
 0  | 
 1  | 
   if( !p ) return SQLITE_NOMEM;  | 
 
| 
164432
 | 
 40  | 
 1  | 
   for(i=0; iaStmt); i++){  | 
 
| 
164461
 | 
 0  | 
 1  | 
   if( pInfo->nOrderBy==1   | 
 
| 
164462
 | 
 0  | 
 0  | 
    && pInfo->aOrderBy[0].iColumn==0   | 
 
| 
164463
 | 
 0  | 
 0  | 
    && pInfo->aOrderBy[0].desc==0  | 
 
| 
164470
 | 
 1  | 
 1  | 
   for(i=0; inConstraint; i++){  | 
 
| 
164471
 | 
 1  | 
 0  | 
     if( pInfo->aConstraint[i].usable ){  | 
 
| 
164475
 | 
 0  | 
 1  | 
       if( iCol==0 ){  | 
 
| 
164476
 | 
 0  | 
 0  | 
         if( op==SQLITE_INDEX_CONSTRAINT_EQ ) iEq = i;  | 
 
| 
164477
 | 
 0  | 
 0  | 
         if( op==SQLITE_INDEX_CONSTRAINT_LT ) iLe = i;  | 
 
| 
164478
 | 
 0  | 
 0  | 
         if( op==SQLITE_INDEX_CONSTRAINT_LE ) iLe = i;  | 
 
| 
164479
 | 
 0  | 
 0  | 
         if( op==SQLITE_INDEX_CONSTRAINT_GT ) iGe = i;  | 
 
| 
164480
 | 
 0  | 
 0  | 
         if( op==SQLITE_INDEX_CONSTRAINT_GE ) iGe = i;  | 
 
| 
164482
 | 
 0  | 
 1  | 
       if( iCol==4 ){  | 
 
| 
164483
 | 
 0  | 
 0  | 
         if( op==SQLITE_INDEX_CONSTRAINT_EQ ) iLangid = i;  | 
 
| 
164488
 | 
 0  | 
 1  | 
   if( iEq>=0 ){  | 
 
| 
164495
 | 
 0  | 
 1  | 
     if( iGe>=0 ){  | 
 
| 
164500
 | 
 0  | 
 1  | 
     if( iLe>=0 ){  | 
 
| 
164506
 | 
 0  | 
 1  | 
   if( iLangid>=0 ){  | 
 
| 
164523
 | 
 0  | 
 1  | 
   if( !pCsr ) return SQLITE_NOMEM;  | 
 
| 
164547
 | 
 2  | 
 7  | 
   if( nSize>pCsr->nStat ){  | 
 
| 
164552
 | 
 0  | 
 2  | 
     if( aNew==0 ) return SQLITE_NOMEM;  | 
 
| 
164573
 | 
 9  | 
 7  | 
   for(pCsr->iCol++; pCsr->iColnStat; pCsr->iCol++){  | 
 
| 
164574
 | 
 6  | 
 3  | 
     if( pCsr->aStat[pCsr->iCol].nDoc>0 ) return SQLITE_OK;  | 
 
| 
164578
 | 
 6  | 
 1  | 
   if( rc==SQLITE_ROW ){  | 
 
| 
164586
 | 
 0  | 
 6  | 
     if( pCsr->zStop ){  | 
 
| 
164589
 | 
 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) ){  | 
 
| 
164595
 | 
 0  | 
 6  | 
     if( fts3auxGrowStatArray(pCsr, 2) ) return SQLITE_NOMEM;  | 
 
| 
164599
 | 
 24  | 
 6  | 
     while( i
 | 
 
| 
164621
 | 
 3  | 
 3  | 
           if( v>1 ){  | 
 
| 
164628
 | 
 6  | 
 9  | 
           if( v==0 ){       /* 0x00. Next integer will be a docid. */  | 
 
| 
164630
 | 
 3  | 
 6  | 
           }else if( v==1 ){ /* 0x01. Next integer will be a column number. */  | 
 
| 
164641
 | 
 0  | 
 3  | 
           if( fts3auxGrowStatArray(pCsr, iCol+2) ) return SQLITE_NOMEM;  | 
 
| 
164687
 | 
 0  | 
 1  | 
   if( idxNum==FTS4AUX_EQ_CONSTRAINT ){  | 
 
| 
164691
 | 
 0  | 
 1  | 
     if( idxNum & FTS4AUX_GE_CONSTRAINT ){  | 
 
| 
164694
 | 
 0  | 
 1  | 
     if( idxNum & FTS4AUX_LE_CONSTRAINT ){  | 
 
| 
164698
 | 
 0  | 
 1  | 
   if( iNext
 | 
 
| 
164710
 | 
 1  | 
 0  | 
   if( isScan ) pCsr->filter.flags |= FTS3_SEGMENT_SCAN;  | 
 
| 
164712
 | 
 1  | 
 0  | 
   if( iEq>=0 || iGe>=0 ){  | 
 
| 
 | 
 0  | 
 1  | 
   if( iEq>=0 || iGe>=0 ){  | 
 
| 
164715
 | 
 0  | 
 0  | 
     if( zStr ){  | 
 
| 
164718
 | 
 0  | 
 0  | 
       if( pCsr->filter.zTerm==0 ) return SQLITE_NOMEM;  | 
 
| 
164722
 | 
 0  | 
 1  | 
   if( iLe>=0 ){  | 
 
| 
164725
 | 
 0  | 
 0  | 
     if( pCsr->zStop==0 ) return SQLITE_NOMEM;  | 
 
| 
164728
 | 
 0  | 
 1  | 
   if( iLangid>=0 ){  | 
 
| 
164736
 | 
 0  | 
 0  | 
     if( iLangVal<0 ) iLangVal = 0;  | 
 
| 
164743
 | 
 1  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
164747
 | 
 1  | 
 0  | 
   if( rc==SQLITE_OK ) rc = fts3auxNextMethod(pCursor);  | 
 
| 
164776
 | 
 6  | 
 6  | 
       if( p->iCol ){  | 
 
| 
164969
 | 
 74  | 
 40  | 
   return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';  | 
 
| 
 | 
 74  | 
 0  | 
   return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';  | 
 
| 
 | 
 74  | 
 0  | 
   return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';  | 
 
| 
 | 
 74  | 
 0  | 
   return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';  | 
 
| 
 | 
 74  | 
 0  | 
   return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';  | 
 
| 
 | 
 0  | 
 74  | 
   return c==' ' || c=='\t' || c=='\n' || c=='\r' || c=='\v' || c=='\f';  | 
 
| 
164979
 | 
 70  | 
 0  | 
   if( pRet ) memset(pRet, 0, nByte);  | 
 
| 
164996
 | 
 94  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
164998
 | 
 0  | 
 94  | 
     if( pModule->iVersion>=1 ){  | 
 
| 
165000
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
165043
 | 
 398  | 
 42  | 
   for(i=0; i
 | 
 
| 
165044
 | 
 398  | 
 0  | 
     if( sqlite3_fts3_enable_parentheses && (z[i]=='(' || z[i]==')') ) break;  | 
 
| 
 | 
 390  | 
 8  | 
     if( sqlite3_fts3_enable_parentheses && (z[i]=='(' || z[i]==')') ) break;  | 
 
| 
165045
 | 
 0  | 
 390  | 
     if( z[i]=='"' ) break;  | 
 
| 
165050
 | 
 50  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
165056
 | 
 50  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
165059
 | 
 0  | 
 50  | 
       if( !pRet ){  | 
 
| 
165070
 | 
 28  | 
 22  | 
         if( iEnd
 | 
 
| 
 | 
 8  | 
 20  | 
         if( iEnd
 | 
 
| 
165081
 | 
 25  | 
 25  | 
           }else if( pParse->bFts4 && iStart>0 && z[iStart-1]=='^' ){  | 
 
| 
 | 
 10  | 
 15  | 
           }else if( pParse->bFts4 && iStart>0 && z[iStart-1]=='^' ){  | 
 
| 
 | 
 0  | 
 10  | 
           }else if( pParse->bFts4 && iStart>0 && z[iStart-1]=='^' ){  | 
 
| 
165091
 | 
 0  | 
 0  | 
     }else if( i && rc==SQLITE_DONE ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( i && rc==SQLITE_DONE ){  | 
 
| 
165109
 | 
 0  | 
 20  | 
   if( !pRet ){  | 
 
| 
165164
 | 
 4  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
165166
 | 
 12  | 
 4  | 
     for(ii=0; rc==SQLITE_OK; ii++){  | 
 
| 
165170
 | 
 8  | 
 4  | 
       if( rc==SQLITE_OK ){  | 
 
| 
165174
 | 
 0  | 
 8  | 
         if( !p ) goto no_mem;  | 
 
| 
165177
 | 
 0  | 
 8  | 
         if( !zTemp ) goto no_mem;  | 
 
| 
165187
 | 
 4  | 
 4  | 
         pToken->isPrefix = (iEnd
 | 
 
| 
 | 
 0  | 
 4  | 
         pToken->isPrefix = (iEnd
 | 
 
| 
165188
 | 
 4  | 
 4  | 
         pToken->bFirst = (iBegin>0 && zInput[iBegin-1]=='^');  | 
 
| 
 | 
 0  | 
 4  | 
         pToken->bFirst = (iBegin>0 && zInput[iBegin-1]=='^');  | 
 
| 
165197
 | 
 4  | 
 0  | 
   if( rc==SQLITE_DONE ){  | 
 
| 
165202
 | 
 0  | 
 4  | 
     if( !p ) goto no_mem;  | 
 
| 
165210
 | 
 4  | 
 0  | 
     if( zTemp ){  | 
 
| 
165217
 | 
 8  | 
 4  | 
     for(jj=0; jjpPhrase->nToken; jj++){  | 
 
| 
165228
 | 
 0  | 
 0  | 
   if( pCursor ){  | 
 
| 
165276
 | 
 102  | 
 34  | 
   while( nInput>0 && fts3isspace(*zInput) ){  | 
 
| 
 | 
 28  | 
 74  | 
   while( nInput>0 && fts3isspace(*zInput) ){  | 
 
| 
165280
 | 
 34  | 
 74  | 
   if( nInput==0 ){  | 
 
| 
165285
 | 
 272  | 
 62  | 
   for(ii=0; ii<(int)(sizeof(aKeyword)/sizeof(struct Fts3Keyword)); ii++){  | 
 
| 
165288
 | 
 0  | 
 272  | 
     if( (pKey->parenOnly & ~sqlite3_fts3_enable_parentheses)!=0 ){  | 
 
| 
165292
 | 
 266  | 
 6  | 
     if( nInput>=pKey->n && 0==memcmp(zInput, pKey->z, pKey->n) ){  | 
 
| 
 | 
 12  | 
 254  | 
     if( nInput>=pKey->n && 0==memcmp(zInput, pKey->z, pKey->n) ){  | 
 
| 
165298
 | 
 0  | 
 12  | 
       if( pKey->eType==FTSQUERY_NEAR ){  | 
 
| 
165300
 | 
 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' ){  | 
 
| 
165302
 | 
 0  | 
 0  | 
           for(nKey=5; zInput[nKey]>='0' && zInput[nKey]<='9'; nKey++){  | 
 
| 
 | 
 0  | 
 0  | 
           for(nKey=5; zInput[nKey]>='0' && zInput[nKey]<='9'; nKey++){  | 
 
| 
165313
 | 
 0  | 
 12  | 
       if( fts3isspace(cNext)   | 
 
| 
165314
 | 
 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  | 
 
| 
165317
 | 
 0  | 
 12  | 
         if( !pRet ){  | 
 
| 
165338
 | 
 4  | 
 58  | 
   if( *zInput=='"' ){  | 
 
| 
165339
 | 
 48  | 
 0  | 
     for(ii=1; ii
 | 
 
| 
 | 
 44  | 
 4  | 
     for(ii=1; ii
 | 
 
| 
165341
 | 
 0  | 
 4  | 
     if( ii==nInput ){  | 
 
| 
165348
 | 
 4  | 
 54  | 
     if( *zInput=='(' ){  | 
 
| 
165352
 | 
 4  | 
 0  | 
       if( rc==SQLITE_OK && !*ppExpr ){ rc = SQLITE_DONE; }  | 
 
| 
 | 
 0  | 
 4  | 
       if( rc==SQLITE_OK && !*ppExpr ){ rc = SQLITE_DONE; }  | 
 
| 
165355
 | 
 4  | 
 50  | 
     }else if( *zInput==')' ){  | 
 
| 
165376
 | 
 52  | 
 50  | 
   for(ii=0; iinCol; ii++){  | 
 
| 
165379
 | 
 24  | 
 28  | 
     if( nInput>nStr && zInput[nStr]==':'   | 
 
| 
 | 
 0  | 
 24  | 
     if( nInput>nStr && zInput[nStr]==':'   | 
 
| 
165380
 | 
 0  | 
 0  | 
      && sqlite3_strnicmp(zStr, zInput, nStr)==0   | 
 
| 
165438
 | 
 0  | 
 20  | 
   while( pSplit->pParent && opPrecedence(pSplit->pParent)<=opPrecedence(pNew) ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( pSplit->pParent && opPrecedence(pSplit->pParent)<=opPrecedence(pNew) ){  | 
 
| 
165442
 | 
 0  | 
 20  | 
   if( pSplit->pParent ){  | 
 
| 
165477
 | 
 108  | 
 38  | 
   while( rc==SQLITE_OK ){  | 
 
| 
165483
 | 
 70  | 
 38  | 
     if( rc==SQLITE_OK ){  | 
 
| 
165484
 | 
 70  | 
 0  | 
       if( p ){  | 
 
| 
165508
 | 
 16  | 
 54  | 
           isPhrase = (eType==FTSQUERY_PHRASE || p->pLeft);  | 
 
| 
 | 
 4  | 
 12  | 
           isPhrase = (eType==FTSQUERY_PHRASE || p->pLeft);  | 
 
| 
165515
 | 
 12  | 
 58  | 
           if( !isPhrase && isRequirePhrase ){  | 
 
| 
 | 
 0  | 
 12  | 
           if( !isPhrase && isRequirePhrase ){  | 
 
| 
165521
 | 
 58  | 
 12  | 
           if( isPhrase && !isRequirePhrase ){  | 
 
| 
 | 
 8  | 
 50  | 
           if( isPhrase && !isRequirePhrase ){  | 
 
| 
165526
 | 
 0  | 
 8  | 
             if( !pAnd ){  | 
 
| 
165545
 | 
 32  | 
 38  | 
           if( pPrev && (  | 
 
| 
 | 
 0  | 
 32  | 
           if( pPrev && (  | 
 
| 
165546
 | 
 0  | 
 0  | 
             (eType==FTSQUERY_NEAR && !isPhrase && pPrev->eType!=FTSQUERY_PHRASE)  | 
 
| 
 | 
 0  | 
 0  | 
             (eType==FTSQUERY_NEAR && !isPhrase && pPrev->eType!=FTSQUERY_PHRASE)  | 
 
| 
165547
 | 
 12  | 
 20  | 
          || (eType!=FTSQUERY_PHRASE && isPhrase && pPrev->eType==FTSQUERY_NEAR)  | 
 
| 
 | 
 0  | 
 12  | 
          || (eType!=FTSQUERY_PHRASE && isPhrase && pPrev->eType==FTSQUERY_NEAR)  | 
 
| 
 | 
 0  | 
 0  | 
          || (eType!=FTSQUERY_PHRASE && isPhrase && pPrev->eType==FTSQUERY_NEAR)  | 
 
| 
165554
 | 
 58  | 
 12  | 
           if( isPhrase ){  | 
 
| 
165555
 | 
 20  | 
 38  | 
             if( pRet ){  | 
 
| 
165576
 | 
 38  | 
 0  | 
   if( rc==SQLITE_DONE && pRet && isRequirePhrase ){  | 
 
| 
 | 
 38  | 
 0  | 
   if( rc==SQLITE_DONE && pRet && isRequirePhrase ){  | 
 
| 
 | 
 0  | 
 38  | 
   if( rc==SQLITE_DONE && pRet && isRequirePhrase ){  | 
 
| 
165580
 | 
 38  | 
 0  | 
   if( rc==SQLITE_DONE ){  | 
 
| 
165599
 | 
 0  | 
 38  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
165614
 | 
 74  | 
 108  | 
   if( p ){  | 
 
| 
165615
 | 
 0  | 
 74  | 
     if( nMaxDepth<0 ){   | 
 
| 
165619
 | 
 74  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
165644
 | 
 0  | 
 74  | 
   if( nMaxDepth==0 ){  | 
 
| 
165648
 | 
 74  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
165649
 | 
 62  | 
 12  | 
     if( (eType==FTSQUERY_AND || eType==FTSQUERY_OR) ){  | 
 
| 
 | 
 4  | 
 58  | 
     if( (eType==FTSQUERY_AND || eType==FTSQUERY_OR) ){  | 
 
| 
165652
 | 
 0  | 
 16  | 
       if( 0==apLeaf ){  | 
 
| 
165658
 | 
 16  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
165663
 | 
 16  | 
 16  | 
         for(p=pRoot; p->eType==eType; p=p->pLeft){  | 
 
| 
165675
 | 
 16  | 
 16  | 
           if( pParent ){  | 
 
| 
165681
 | 
 0  | 
 32  | 
           if( rc!=SQLITE_OK ) break;  | 
 
| 
165683
 | 
 48  | 
 32  | 
           for(iLvl=0; p && iLvl
 | 
 
| 
 | 
 48  | 
 0  | 
           for(iLvl=0; p && iLvl
 | 
 
| 
165684
 | 
 32  | 
 16  | 
             if( apLeaf[iLvl]==0 ){  | 
 
| 
165700
 | 
 0  | 
 32  | 
           if( p ){  | 
 
| 
165707
 | 
 16  | 
 16  | 
           if( pParent==0 ) break;  | 
 
| 
165710
 | 
 0  | 
 16  | 
           for(p=pParent->pRight; p->eType==eType; p=p->pLeft);  | 
 
| 
165715
 | 
 0  | 
 16  | 
           if( pParent->pParent ){  | 
 
| 
165728
 | 
 16  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
165730
 | 
 188  | 
 16  | 
           for(i=0; i
 | 
 
| 
165731
 | 
 16  | 
 172  | 
             if( apLeaf[i] ){  | 
 
| 
165732
 | 
 16  | 
 0  | 
               if( p==0 ){  | 
 
| 
165754
 | 
 0  | 
 0  | 
           for(i=0; i
 | 
 
| 
165757
 | 
 0  | 
 0  | 
           while( (pDel=pFree)!=0 ){  | 
 
| 
165766
 | 
 4  | 
 54  | 
     }else if( eType==FTSQUERY_NOT ){  | 
 
| 
165776
 | 
 4  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
165780
 | 
 0  | 
 4  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
165793
 | 
 0  | 
 74  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
165833
 | 
 0  | 
 34  | 
   if( z==0 ){  | 
 
| 
165837
 | 
 34  | 
 0  | 
   if( n<0 ){  | 
 
| 
165844
 | 
 34  | 
 0  | 
   if( rc==SQLITE_OK && sParse.nNest ){  | 
 
| 
 | 
 0  | 
 34  | 
   if( rc==SQLITE_OK && sParse.nNest ){  | 
 
| 
165892
 | 
 34  | 
 0  | 
   if( rc==SQLITE_OK && *ppExpr ){  | 
 
| 
 | 
 34  | 
 0  | 
   if( rc==SQLITE_OK && *ppExpr ){  | 
 
| 
165894
 | 
 34  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
165899
 | 
 0  | 
 34  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
165902
 | 
 0  | 
 0  | 
     if( rc==SQLITE_TOOBIG ){  | 
 
| 
165908
 | 
 0  | 
 0  | 
     }else if( rc==SQLITE_ERROR ){  | 
 
| 
165936
 | 
 20  | 
 0  | 
   for(p=pDel; p && (p->pLeft||p->pRight); p=(p->pLeft ? p->pLeft : p->pRight)){  | 
 
| 
 | 
 54  | 
 68  | 
   for(p=pDel; p && (p->pLeft||p->pRight); p=(p->pLeft ? p->pLeft : p->pRight)){  | 
 
| 
 | 
 20  | 
 34  | 
   for(p=pDel; p && (p->pLeft||p->pRight); p=(p->pLeft ? p->pLeft : p->pRight)){  | 
 
| 
 | 
 0  | 
 34  | 
   for(p=pDel; p && (p->pLeft||p->pRight); p=(p->pLeft ? p->pLeft : p->pRight)){  | 
 
| 
165939
 | 
 74  | 
 102  | 
   while( p ){  | 
 
| 
165942
 | 
 40  | 
 34  | 
     if( pParent && p==pParent->pLeft && pParent->pRight ){  | 
 
| 
 | 
 20  | 
 20  | 
     if( pParent && p==pParent->pLeft && pParent->pRight ){  | 
 
| 
 | 
 20  | 
 0  | 
     if( pParent && p==pParent->pLeft && pParent->pRight ){  | 
 
| 
165944
 | 
 20  | 
 0  | 
       while( p && (p->pLeft || p->pRight) ){  | 
 
| 
 | 
 0  | 
 20  | 
       while( p && (p->pLeft || p->pRight) ){  | 
 
| 
 | 
 0  | 
 20  | 
       while( p && (p->pLeft || p->pRight) ){  | 
 
| 
165946
 | 
 0  | 
 0  | 
         p = (p->pLeft ? p->pLeft : p->pRight);  | 
 
| 
166187
 | 
 2487  | 
 0  | 
   if( p ){  | 
 
| 
166230
 | 
 1098  | 
 279  | 
   while( elem ){  | 
 
| 
166232
 | 
 1098  | 
 0  | 
     if( pH->copyKey && elem->pKey ){  | 
 
| 
 | 
 1098  | 
 0  | 
     if( pH->copyKey && elem->pKey ){  | 
 
| 
166247
 | 
 0  | 
 1203  | 
   if( nKey<=0 ) nKey = (int) strlen(z);  | 
 
| 
166248
 | 
 8037  | 
 1203  | 
   while( nKey > 0  ){  | 
 
| 
166255
 | 
 32  | 
 318  | 
   if( n1!=n2 ) return 1;  | 
 
| 
166265
 | 
 0  | 
 0  | 
   while( nKey-- > 0 ){  | 
 
| 
166271
 | 
 0  | 
 0  | 
   if( n1!=n2 ) return 1;  | 
 
| 
166288
 | 
 1478  | 
 0  | 
   if( keyClass==FTS3_HASH_STRING ){  | 
 
| 
166303
 | 
 928  | 
 0  | 
   if( keyClass==FTS3_HASH_STRING ){  | 
 
| 
166320
 | 
 282  | 
 824  | 
   if( pHead ){  | 
 
| 
166323
 | 
 24  | 
 258  | 
     if( pHead->prev ){ pHead->prev->next = pNew; }  | 
 
| 
166328
 | 
 549  | 
 275  | 
     if( pH->first ){ pH->first->prev = pNew; }  | 
 
| 
166350
 | 
 0  | 
 275  | 
   if( new_ht==0 ) return 1;  | 
 
| 
166355
 | 
 0  | 
 275  | 
   for(elem=pH->first, pH->first=0; elem; elem = next_elem){  | 
 
| 
166377
 | 
 928  | 
 275  | 
   if( pH->ht ){  | 
 
| 
166382
 | 
 350  | 
 913  | 
     while( count-- && elem ){  | 
 
| 
 | 
 350  | 
 0  | 
     while( count-- && elem ){  | 
 
| 
166383
 | 
 15  | 
 335  | 
       if( (*xCompare)(elem->pKey,elem->nKey,pKey,nKey)==0 ){   | 
 
| 
166401
 | 
 0  | 
 0  | 
   if( elem->prev ){  | 
 
| 
166406
 | 
 0  | 
 0  | 
   if( elem->next ){  | 
 
| 
166410
 | 
 0  | 
 0  | 
   if( pEntry->chain==elem ){  | 
 
| 
166414
 | 
 0  | 
 0  | 
   if( pEntry->count<=0 ){  | 
 
| 
166417
 | 
 0  | 
 0  | 
   if( pH->copyKey && elem->pKey ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pH->copyKey && elem->pKey ){  | 
 
| 
166422
 | 
 0  | 
 0  | 
   if( pH->count<=0 ){  | 
 
| 
166437
 | 
 170  | 
 0  | 
   if( pH==0 || pH->ht==0 ) return 0;  | 
 
| 
 | 
 73  | 
 97  | 
   if( pH==0 || pH->ht==0 ) return 0;  | 
 
| 
166454
 | 
 14  | 
 106  | 
   return pElem ? pElem->data : 0;  | 
 
| 
166491
 | 
 0  | 
 1106  | 
   if( elem ){  | 
 
| 
166493
 | 
 0  | 
 0  | 
     if( data==0 ){  | 
 
| 
166500
 | 
 0  | 
 1106  | 
   if( data==0 ) return 0;  | 
 
| 
166501
 | 
 275  | 
 831  | 
   if( (pH->htsize==0 && fts3Rehash(pH,8))  | 
 
| 
 | 
 275  | 
 0  | 
   if( (pH->htsize==0 && fts3Rehash(pH,8))  | 
 
| 
166502
 | 
 0  | 
 1106  | 
    || (pH->count>=pH->htsize && fts3Rehash(pH, pH->htsize*2))  | 
 
| 
 | 
 0  | 
 0  | 
    || (pH->count>=pH->htsize && fts3Rehash(pH, pH->htsize*2))  | 
 
| 
166509
 | 
 0  | 
 1106  | 
   if( new_elem==0 ) return data;  | 
 
| 
166510
 | 
 1106  | 
 0  | 
   if( pH->copyKey && pKey!=0 ){  | 
 
| 
 | 
 1106  | 
 0  | 
   if( pH->copyKey && pKey!=0 ){  | 
 
| 
166512
 | 
 0  | 
 1106  | 
     if( new_elem->pKey==0 ){  | 
 
| 
166602
 | 
 0  | 
 0  | 
   if( t==NULL ) return SQLITE_NOMEM;  | 
 
| 
166632
 | 
 0  | 
 0  | 
   if( c==NULL ) return SQLITE_NOMEM;  | 
 
| 
166635
 | 
 0  | 
 0  | 
   if( zInput==0 ){  | 
 
| 
166637
 | 
 0  | 
 0  | 
   }else if( nInput<0 ){  | 
 
| 
166686
 | 
 0  | 
 0  | 
   if( x==0 ) return 0;  | 
 
| 
166689
 | 
 0  | 
 0  | 
   if( j<2 ) return j;  | 
 
| 
166690
 | 
 0  | 
 0  | 
   return z[1]==0 || isVowel(z + 1);  | 
 
| 
 | 
 0  | 
 0  | 
   return z[1]==0 || isVowel(z + 1);  | 
 
| 
166695
 | 
 0  | 
 0  | 
   if( x==0 ) return 0;  | 
 
| 
166698
 | 
 0  | 
 0  | 
   if( j<2 ) return 1-j;  | 
 
| 
166722
 | 
 0  | 
 0  | 
   while( isVowel(z) ){ z++; }  | 
 
| 
166723
 | 
 0  | 
 0  | 
   if( *z==0 ) return 0;  | 
 
| 
166724
 | 
 0  | 
 0  | 
   while( isConsonant(z) ){ z++; }  | 
 
| 
166732
 | 
 0  | 
 0  | 
   while( isVowel(z) ){ z++; }  | 
 
| 
166733
 | 
 0  | 
 0  | 
   if( *z==0 ) return 0;  | 
 
| 
166734
 | 
 0  | 
 0  | 
   while( isConsonant(z) ){ z++; }  | 
 
| 
166735
 | 
 0  | 
 0  | 
   if( *z==0 ) return 0;  | 
 
| 
166736
 | 
 0  | 
 0  | 
   while( isVowel(z) ){ z++; }  | 
 
| 
166737
 | 
 0  | 
 0  | 
   if( *z==0 ) return 1;  | 
 
| 
166738
 | 
 0  | 
 0  | 
   while( isConsonant(z) ){ z++; }  | 
 
| 
166746
 | 
 0  | 
 0  | 
   while( isVowel(z) ){ z++; }  | 
 
| 
166747
 | 
 0  | 
 0  | 
   if( *z==0 ) return 0;  | 
 
| 
166748
 | 
 0  | 
 0  | 
   while( isConsonant(z) ){ z++; }  | 
 
| 
166749
 | 
 0  | 
 0  | 
   if( *z==0 ) return 0;  | 
 
| 
166750
 | 
 0  | 
 0  | 
   while( isVowel(z) ){ z++; }  | 
 
| 
166751
 | 
 0  | 
 0  | 
   if( *z==0 ) return 0;  | 
 
| 
166752
 | 
 0  | 
 0  | 
   while( isConsonant(z) ){ z++; }  | 
 
| 
166760
 | 
 0  | 
 0  | 
   while( isConsonant(z) ){ z++; }  | 
 
| 
166771
 | 
 0  | 
 0  | 
   return isConsonant(z) && z[0]==z[1];  | 
 
| 
 | 
 0  | 
 0  | 
   return isConsonant(z) && z[0]==z[1];  | 
 
| 
166784
 | 
 0  | 
 0  | 
     isConsonant(z) &&  | 
 
| 
166785
 | 
 0  | 
 0  | 
     z[0]!='w' && z[0]!='x' && z[0]!='y' &&  | 
 
| 
166786
 | 
 0  | 
 0  | 
     isVowel(z+1) &&  | 
 
| 
 | 
 0  | 
 0  | 
     isVowel(z+1) &&  | 
 
| 
166809
 | 
 0  | 
 0  | 
   while( *zFrom && *zFrom==*z ){ z++; zFrom++; }  | 
 
| 
 | 
 0  | 
 0  | 
   while( *zFrom && *zFrom==*z ){ z++; zFrom++; }  | 
 
| 
166810
 | 
 0  | 
 0  | 
   if( *zFrom!=0 ) return 0;  | 
 
| 
166811
 | 
 0  | 
 0  | 
   if( xCond && !xCond(z) ) return 1;  | 
 
| 
 | 
 0  | 
 0  | 
   if( xCond && !xCond(z) ) return 1;  | 
 
| 
166812
 | 
 0  | 
 0  | 
   while( *zTo ){  | 
 
| 
166830
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
166832
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ){  | 
 
| 
166835
 | 
 0  | 
 0  | 
       if( c>='0' && c<='9' ) hasDigit = 1;  | 
 
| 
 | 
 0  | 
 0  | 
       if( c>='0' && c<='9' ) hasDigit = 1;  | 
 
| 
166839
 | 
 0  | 
 0  | 
   mx = hasDigit ? 3 : 10;  | 
 
| 
166840
 | 
 0  | 
 0  | 
   if( nIn>mx*2 ){  | 
 
| 
166841
 | 
 0  | 
 0  | 
     for(j=mx, i=nIn-mx; i
 | 
 
| 
166878
 | 
 0  | 
 0  | 
   if( nIn<3 || nIn>=(int)sizeof(zReverse)-7 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( nIn<3 || nIn>=(int)sizeof(zReverse)-7 ){  | 
 
| 
166884
 | 
 0  | 
 0  | 
   for(i=0, j=sizeof(zReverse)-6; i
 | 
 
| 
166886
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ){  | 
 
| 
166888
 | 
 0  | 
 0  | 
     }else if( c>='a' && c<='z' ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( c>='a' && c<='z' ){  | 
 
| 
166902
 | 
 0  | 
 0  | 
   if( z[0]=='s' ){  | 
 
| 
166903
 | 
 0  | 
 0  | 
     if(  | 
 
| 
166904
 | 
 0  | 
 0  | 
      !stem(&z, "sess", "ss", 0) &&  | 
 
| 
166905
 | 
 0  | 
 0  | 
      !stem(&z, "sei", "i", 0)  &&  | 
 
| 
166914
 | 
 0  | 
 0  | 
   if( stem(&z, "dee", "ee", m_gt_0) ){  | 
 
| 
166916
 | 
 0  | 
 0  | 
   }else if(   | 
 
| 
166917
 | 
 0  | 
 0  | 
      (stem(&z, "gni", "", hasVowel) || stem(&z, "de", "", hasVowel))  | 
 
| 
166918
 | 
 0  | 
 0  | 
       && z!=z2  | 
 
| 
166921
 | 
 0  | 
 0  | 
          stem(&z, "lb", "ble", 0) ||  | 
 
| 
166924
 | 
 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') ){  | 
 
| 
166926
 | 
 0  | 
 0  | 
      }else if( m_eq_1(z) && star_oh(z) ){  | 
 
| 
 | 
 0  | 
 0  | 
      }else if( m_eq_1(z) && star_oh(z) ){  | 
 
| 
166932
 | 
 0  | 
 0  | 
   if( z[0]=='y' && hasVowel(z+1) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( z[0]=='y' && hasVowel(z+1) ){  | 
 
| 
166939
 | 
 0  | 
 0  | 
      if( !stem(&z, "lanoita", "ate", m_gt_0) ){  | 
 
| 
166944
 | 
 0  | 
 0  | 
      if( !stem(&z, "icne", "ence", m_gt_0) ){  | 
 
| 
166955
 | 
 0  | 
 0  | 
      if( !stem(&z, "ilb", "ble", m_gt_0)   | 
 
| 
166956
 | 
 0  | 
 0  | 
       && !stem(&z, "illa", "al", m_gt_0)  | 
 
| 
166957
 | 
 0  | 
 0  | 
       && !stem(&z, "iltne", "ent", m_gt_0)  | 
 
| 
166958
 | 
 0  | 
 0  | 
       && !stem(&z, "ile", "e", m_gt_0)  | 
 
| 
166964
 | 
 0  | 
 0  | 
      if( !stem(&z, "noitazi", "ize", m_gt_0)  | 
 
| 
166965
 | 
 0  | 
 0  | 
       && !stem(&z, "noita", "ate", m_gt_0)  | 
 
| 
166971
 | 
 0  | 
 0  | 
      if( !stem(&z, "msila", "al", m_gt_0)  | 
 
| 
166972
 | 
 0  | 
 0  | 
       && !stem(&z, "ssenevi", "ive", m_gt_0)  | 
 
| 
166973
 | 
 0  | 
 0  | 
       && !stem(&z, "ssenluf", "ful", m_gt_0)  | 
 
| 
166979
 | 
 0  | 
 0  | 
      if( !stem(&z, "itila", "al", m_gt_0)  | 
 
| 
166980
 | 
 0  | 
 0  | 
       && !stem(&z, "itivi", "ive", m_gt_0)  | 
 
| 
166990
 | 
 0  | 
 0  | 
      if( !stem(&z, "etaci", "ic", m_gt_0)  | 
 
| 
166991
 | 
 0  | 
 0  | 
       && !stem(&z, "evita", "", m_gt_0)  | 
 
| 
167000
 | 
 0  | 
 0  | 
      if( !stem(&z, "laci", "ic", m_gt_0) ){  | 
 
| 
167012
 | 
 0  | 
 0  | 
      if( z[0]=='l' && m_gt_1(z+2) ){  | 
 
| 
 | 
 0  | 
 0  | 
      if( z[0]=='l' && m_gt_1(z+2) ){  | 
 
| 
167017
 | 
 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)  ){  | 
 
| 
167022
 | 
 0  | 
 0  | 
      if( z[0]=='r' && m_gt_1(z+2) ){  | 
 
| 
 | 
 0  | 
 0  | 
      if( z[0]=='r' && m_gt_1(z+2) ){  | 
 
| 
167027
 | 
 0  | 
 0  | 
      if( z[0]=='c' && m_gt_1(z+2) ){  | 
 
| 
 | 
 0  | 
 0  | 
      if( z[0]=='c' && m_gt_1(z+2) ){  | 
 
| 
167032
 | 
 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) ){  | 
 
| 
167037
 | 
 0  | 
 0  | 
      if( z[0]=='t' ){  | 
 
| 
167038
 | 
 0  | 
 0  | 
        if( z[2]=='a' ){  | 
 
| 
167039
 | 
 0  | 
 0  | 
          if( m_gt_1(z+3) ){  | 
 
| 
167042
 | 
 0  | 
 0  | 
        }else if( z[2]=='e' ){  | 
 
| 
167043
 | 
 0  | 
 0  | 
          if( !stem(&z, "tneme", "", m_gt_1)  | 
 
| 
167044
 | 
 0  | 
 0  | 
           && !stem(&z, "tnem", "", m_gt_1)  | 
 
| 
167052
 | 
 0  | 
 0  | 
      if( z[0]=='u' ){  | 
 
| 
167053
 | 
 0  | 
 0  | 
        if( m_gt_1(z+2) ){  | 
 
| 
167056
 | 
 0  | 
 0  | 
      }else if( z[3]=='s' || z[3]=='t' ){  | 
 
| 
 | 
 0  | 
 0  | 
      }else if( z[3]=='s' || z[3]=='t' ){  | 
 
| 
167061
 | 
 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) ){  | 
 
| 
167066
 | 
 0  | 
 0  | 
      if( !stem(&z, "eta", "", m_gt_1) ){  | 
 
| 
167071
 | 
 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) ){  | 
 
| 
167077
 | 
 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) ){  | 
 
| 
167084
 | 
 0  | 
 0  | 
   if( z[0]=='e' ){  | 
 
| 
167085
 | 
 0  | 
 0  | 
     if( m_gt_1(z+1) ){  | 
 
| 
167087
 | 
 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) ){  | 
 
| 
167093
 | 
 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' ){  | 
 
| 
167102
 | 
 0  | 
 0  | 
   while( *z ){  | 
 
| 
167138
 | 
 0  | 
 0  | 
   while( c->iOffsetnInput ){  | 
 
| 
167142
 | 
 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]) ){  | 
 
| 
167148
 | 
 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]) ){  | 
 
| 
167152
 | 
 0  | 
 0  | 
     if( c->iOffset>iStartOffset ){  | 
 
| 
167154
 | 
 0  | 
 0  | 
       if( n>c->nAllocated ){  | 
 
| 
167158
 | 
 0  | 
 0  | 
         if( !pNew ) return SQLITE_NOMEM;  | 
 
| 
167279
 | 
 247  | 
 0  | 
   if( argc==2 ){  | 
 
| 
167280
 | 
 247  | 
 0  | 
     if( fts3TokenizerEnabled(context) ){  | 
 
| 
167283
 | 
 247  | 
 0  | 
       if( zName==0 || n!=sizeof(pPtr) ){  | 
 
| 
 | 
 0  | 
 247  | 
       if( zName==0 || n!=sizeof(pPtr) ){  | 
 
| 
167289
 | 
 0  | 
 247  | 
       if( pOld==pPtr ){  | 
 
| 
167297
 | 
 0  | 
 0  | 
     if( zName ){  | 
 
| 
167300
 | 
 0  | 
 0  | 
     if( !pPtr ){  | 
 
| 
167321
 | 
 119  | 
 0  | 
   return (c&0x80 || isFtsIdChar[(int)(c)]);  | 
 
| 
 | 
 95  | 
 24  | 
   return (c&0x80 || isFtsIdChar[(int)(c)]);  | 
 
| 
167330
 | 
 22  | 
 22  | 
   while( z2==0 ){  | 
 
| 
167338
 | 
 92  | 
 0  | 
         while( *++z2 && (*z2!=c || *++z2==c) );  | 
 
| 
 | 
 88  | 
 4  | 
         while( *++z2 && (*z2!=c || *++z2==c) );  | 
 
| 
 | 
 0  | 
 4  | 
         while( *++z2 && (*z2!=c || *++z2==c) );  | 
 
| 
167343
 | 
 0  | 
 0  | 
         while( *z2 && z2[0]!=']' ) z2++;  | 
 
| 
 | 
 0  | 
 0  | 
         while( *z2 && z2[0]!=']' ) z2++;  | 
 
| 
167344
 | 
 0  | 
 0  | 
         if( *z2 ) z2++;  | 
 
| 
167348
 | 
 18  | 
 0  | 
         if( sqlite3Fts3IsIdChar(*z1) ){  | 
 
| 
167350
 | 
 77  | 
 18  | 
           while( sqlite3Fts3IsIdChar(*z2) ) z2++;  | 
 
| 
167375
 | 
 0  | 
 8  | 
   if( !zCopy ) return SQLITE_NOMEM;  | 
 
| 
167379
 | 
 0  | 
 8  | 
   if( z==0 ){  | 
 
| 
167387
 | 
 0  | 
 8  | 
   if( !m ){  | 
 
| 
167394
 | 
 4  | 
 8  | 
     while( z
 | 
 
| 
 | 
 4  | 
 0  | 
     while( z
 | 
 
| 
167397
 | 
 0  | 
 4  | 
       if( !aNew ){  | 
 
| 
167410
 | 
 1  | 
 7  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
167691
 | 
 251  | 
 0  | 
   if( SQLITE_OK==rc ){  | 
 
| 
167694
 | 
 251  | 
 0  | 
   if( SQLITE_OK==rc ){  | 
 
| 
167769
 | 
 210  | 
 0  | 
   return c<0x80 && t->delim[c];  | 
 
| 
 | 
 32  | 
 178  | 
   return c<0x80 && t->delim[c];  | 
 
| 
167772
 | 
 240  | 
 141  | 
   return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');  | 
 
| 
 | 
 210  | 
 30  | 
   return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');  | 
 
| 
 | 
 189  | 
 162  | 
   return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');  | 
 
| 
 | 
 111  | 
 78  | 
   return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');  | 
 
| 
 | 
 93  | 
 180  | 
   return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');  | 
 
| 
 | 
 78  | 
 15  | 
   return (x>='0' && x<='9') || (x>='A' && x<='Z') || (x>='a' && x<='z');  | 
 
| 
167785
 | 
 0  | 
 3  | 
   if( t==NULL ) return SQLITE_NOMEM;  | 
 
| 
167793
 | 
 0  | 
 3  | 
   if( argc>1 ){  | 
 
| 
167795
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
167798
 | 
 0  | 
 0  | 
       if( ch>=0x80 ){  | 
 
| 
167807
 | 
 381  | 
 3  | 
     for(i=1; i<0x80; i++){  | 
 
| 
167808
 | 
 195  | 
 186  | 
       t->delim[i] = !fts3_isalnum(i) ? -1 : 0;  | 
 
| 
167840
 | 
 0  | 
 26  | 
   if( c==NULL ) return SQLITE_NOMEM;  | 
 
| 
167843
 | 
 0  | 
 26  | 
   if( pInput==0 ){  | 
 
| 
167845
 | 
 24  | 
 2  | 
   }else if( nBytes<0 ){  | 
 
| 
167886
 | 
 42  | 
 24  | 
   while( c->iOffsetnBytes ){  | 
 
| 
167890
 | 
 58  | 
 0  | 
     while( c->iOffsetnBytes && simpleDelim(t, p[c->iOffset]) ){  | 
 
| 
 | 
 16  | 
 42  | 
     while( c->iOffsetnBytes && simpleDelim(t, p[c->iOffset]) ){  | 
 
| 
167896
 | 
 152  | 
 26  | 
     while( c->iOffsetnBytes && !simpleDelim(t, p[c->iOffset]) ){  | 
 
| 
 | 
 136  | 
 16  | 
     while( c->iOffsetnBytes && !simpleDelim(t, p[c->iOffset]) ){  | 
 
| 
167900
 | 
 42  | 
 0  | 
     if( c->iOffset>iStartOffset ){  | 
 
| 
167902
 | 
 26  | 
 16  | 
       if( n>c->nTokenAllocated ){  | 
 
| 
167906
 | 
 0  | 
 26  | 
         if( !pNew ) return SQLITE_NOMEM;  | 
 
| 
167909
 | 
 136  | 
 42  | 
       for(i=0; i
 | 
 
| 
167914
 | 
 106  | 
 30  | 
         c->pToken[i] = (char)((ch>='A' && ch<='Z') ? ch-'A'+'a' : ch);  | 
 
| 
 | 
 0  | 
 106  | 
         c->pToken[i] = (char)((ch>='A' && ch<='Z') ? ch-'A'+'a' : ch);  | 
 
| 
168041
 | 
 0  | 
 0  | 
   if( !p ){  | 
 
| 
168068
 | 
 0  | 
 0  | 
   if( argc==0 ){  | 
 
| 
168075
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
168080
 | 
 0  | 
 0  | 
     if( azDequote==0 ){  | 
 
| 
168084
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
168128
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
168133
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
168135
 | 
 0  | 
 0  | 
     if( nDequote<1 ){  | 
 
| 
168144
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
168146
 | 
 0  | 
 0  | 
     rc = pMod->xCreate((nDequote>1 ? nDequote-1 : 0), azArg, &pTok);  | 
 
| 
168149
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
168151
 | 
 0  | 
 0  | 
     if( pTab==0 ){  | 
 
| 
168156
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
168162
 | 
 0  | 
 0  | 
     if( pTok ){  | 
 
| 
168194
 | 
 0  | 
 0  | 
   for(i=0; inConstraint; i++){  | 
 
| 
168195
 | 
 0  | 
 0  | 
     if( pInfo->aConstraint[i].usable   | 
 
| 
168196
 | 
 0  | 
 0  | 
      && pInfo->aConstraint[i].iColumn==0   | 
 
| 
168197
 | 
 0  | 
 0  | 
      && pInfo->aConstraint[i].op==SQLITE_INDEX_CONSTRAINT_EQ   | 
 
| 
168221
 | 
 0  | 
 0  | 
   if( pCsr==0 ){  | 
 
| 
168235
 | 
 0  | 
 0  | 
   if( pCsr->pCsr ){  | 
 
| 
168275
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
168277
 | 
 0  | 
 0  | 
     if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
168300
 | 
 0  | 
 0  | 
   if( idxNum==1 ){  | 
 
| 
168304
 | 
 0  | 
 0  | 
     if( pCsr->zInput==0 ){  | 
 
| 
168310
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
168316
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
168810
 | 
 60  | 
 196  | 
   if( !pStmt ){  | 
 
| 
168812
 | 
 6  | 
 54  | 
     if( eStmt==SQL_CONTENT_INSERT ){  | 
 
| 
168814
 | 
 0  | 
 54  | 
     }else if( eStmt==SQL_SELECT_CONTENT_BY_ROWID ){  | 
 
| 
168819
 | 
 0  | 
 60  | 
     if( !zSql ){  | 
 
| 
168829
 | 
 25  | 
 231  | 
   if( apVal ){  | 
 
| 
168832
 | 
 84  | 
 0  | 
     for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 59  | 
 25  | 
     for(i=0; rc==SQLITE_OK && i
 | 
 
| 
168850
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
168853
 | 
 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 ){  | 
 
| 
168855
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ) rc = FTS_CORRUPT_VTAB;  | 
 
| 
168873
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
168875
 | 
 0  | 
 0  | 
     if( sqlite3_step(pStmt)!=SQLITE_ROW  | 
 
| 
168876
 | 
 0  | 
 0  | 
      || sqlite3_column_type(pStmt, 0)!=SQLITE_BLOB  | 
 
| 
168879
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ) rc = FTS_CORRUPT_VTAB;  | 
 
| 
168911
 | 
 0  | 
 0  | 
   if( *pRC ) return;  | 
 
| 
168913
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
168938
 | 
 24  | 
 4  | 
   if( p->nPendingData==0 ){  | 
 
| 
168941
 | 
 24  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
169020
 | 
 59  | 
 0  | 
   if( iLevel<0 ){  | 
 
| 
169023
 | 
 59  | 
 0  | 
     if( rc==SQLITE_OK ){   | 
 
| 
169032
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){   | 
 
| 
169060
 | 
 106  | 
 174  | 
   if( !p ){  | 
 
| 
169062
 | 
 0  | 
 106  | 
     if( !p ){  | 
 
| 
169069
 | 
 0  | 
 174  | 
   else if( p->nData+FTS3_VARINT_MAX+1>p->nSpace ){  | 
 
| 
169072
 | 
 0  | 
 0  | 
     if( !p ){  | 
 
| 
169109
 | 
 6  | 
 106  | 
   if( !p || p->iLastDocid!=iDocid ){  | 
 
| 
 | 
 6  | 
 0  | 
   if( !p || p->iLastDocid!=iDocid ){  | 
 
| 
169110
 | 
 6  | 
 106  | 
     sqlite3_int64 iDelta = iDocid - (p ? p->iLastDocid : 0);  | 
 
| 
169111
 | 
 6  | 
 106  | 
     if( p ){  | 
 
| 
169116
 | 
 0  | 
 112  | 
     if( SQLITE_OK!=(rc = fts3PendingListAppendVarint(&p, iDelta)) ){  | 
 
| 
169123
 | 
 28  | 
 84  | 
   if( iCol>0 && p->iLastCol!=iCol ){  | 
 
| 
 | 
 28  | 
 0  | 
   if( iCol>0 && p->iLastCol!=iCol ){  | 
 
| 
169124
 | 
 28  | 
 0  | 
     if( SQLITE_OK!=(rc = fts3PendingListAppendVarint(&p, 1))  | 
 
| 
169125
 | 
 28  | 
 0  | 
      || SQLITE_OK!=(rc = fts3PendingListAppendVarint(&p, iCol))  | 
 
| 
169132
 | 
 112  | 
 0  | 
   if( iCol>=0 ){  | 
 
| 
169135
 | 
 112  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
169142
 | 
 106  | 
 6  | 
   if( p!=*pp ){  | 
 
| 
169171
 | 
 6  | 
 106  | 
   if( pList ){  | 
 
| 
169174
 | 
 106  | 
 6  | 
   if( fts3PendingListAppend(&pList, p->iPrevDocid, iCol, iPos, &rc) ){  | 
 
| 
169175
 | 
 0  | 
 106  | 
     if( pList==fts3HashInsert(pHash, zToken, nToken, pList) ){  | 
 
| 
169184
 | 
 112  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
169224
 | 
 0  | 
 40  | 
   if( zText==0 ){  | 
 
| 
169230
 | 
 0  | 
 40  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
169235
 | 
 152  | 
 0  | 
   while( SQLITE_OK==rc  | 
 
| 
169236
 | 
 112  | 
 40  | 
       && SQLITE_OK==(rc = xNext(pCsr, &zToken, &nToken, &iStart, &iEnd, &iPos))  | 
 
| 
169239
 | 
 112  | 
 0  | 
     if( iPos>=nWord ) nWord = iPos+1;  | 
 
| 
169244
 | 
 112  | 
 0  | 
     if( iPos<0 || !zToken || nToken<=0 ){  | 
 
| 
 | 
 112  | 
 0  | 
     if( iPos<0 || !zToken || nToken<=0 ){  | 
 
| 
 | 
 0  | 
 112  | 
     if( iPos<0 || !zToken || nToken<=0 ){  | 
 
| 
169256
 | 
 112  | 
 0  | 
     for(i=1; rc==SQLITE_OK && inIndex; i++){  | 
 
| 
 | 
 0  | 
 112  | 
     for(i=1; rc==SQLITE_OK && inIndex; i++){  | 
 
| 
169258
 | 
 0  | 
 0  | 
       if( nTokennPrefix ) continue;  | 
 
| 
169267
 | 
 0  | 
 40  | 
   return (rc==SQLITE_DONE ? SQLITE_OK : rc);  | 
 
| 
169290
 | 
 28  | 
 0  | 
   if( iDocidiPrevDocid   | 
 
| 
169291
 | 
 0  | 
 28  | 
    || (iDocid==p->iPrevDocid && p->bPrevDelete==0)  | 
 
| 
 | 
 0  | 
 0  | 
    || (iDocid==p->iPrevDocid && p->bPrevDelete==0)  | 
 
| 
169292
 | 
 28  | 
 0  | 
    || p->iPrevLangid!=iLangid  | 
 
| 
169293
 | 
 0  | 
 28  | 
    || p->nPendingData>p->nMaxPendingData   | 
 
| 
169296
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
169309
 | 
 30  | 
 30  | 
   for(i=0; inIndex; i++){  | 
 
| 
169312
 | 
 106  | 
 30  | 
     for(pElem=fts3HashFirst(pHash); pElem; pElem=fts3HashNext(pElem)){  | 
 
| 
169336
 | 
 40  | 
 28  | 
   for(i=2; inColumn+2; i++){  | 
 
| 
169338
 | 
 40  | 
 0  | 
     if( p->abNotindexed[iCol]==0 ){  | 
 
| 
169341
 | 
 0  | 
 40  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
169372
 | 
 3  | 
 25  | 
   if( p->zContentTbl ){  | 
 
| 
169374
 | 
 0  | 
 3  | 
     if( sqlite3_value_type(pRowid)==SQLITE_NULL ){  | 
 
| 
169377
 | 
 0  | 
 3  | 
     if( sqlite3_value_type(pRowid)!=SQLITE_INTEGER ){  | 
 
| 
169393
 | 
 25  | 
 0  | 
   if( rc==SQLITE_OK && p->zLanguageid ){  | 
 
| 
 | 
 0  | 
 25  | 
   if( rc==SQLITE_OK && p->zLanguageid ){  | 
 
| 
169399
 | 
 0  | 
 25  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
169411
 | 
 0  | 
 25  | 
   if( SQLITE_NULL!=sqlite3_value_type(apVal[3+p->nColumn]) ){  | 
 
| 
169412
 | 
 0  | 
 0  | 
     if( SQLITE_NULL==sqlite3_value_type(apVal[0])  | 
 
| 
169413
 | 
 0  | 
 0  | 
      && SQLITE_NULL!=sqlite3_value_type(apVal[1])  | 
 
| 
169419
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
169447
 | 
 0  | 
 0  | 
   if( bContent ) fts3SqlExec(&rc, p, SQL_DELETE_ALL_CONTENT, 0);  | 
 
| 
169450
 | 
 0  | 
 0  | 
   if( p->bHasDocsize ){  | 
 
| 
169453
 | 
 0  | 
 0  | 
   if( p->bHasStat ){  | 
 
| 
169464
 | 
 0  | 
 0  | 
   if( p->zLanguageid ) iLangid = sqlite3_column_int(pSelect, p->nColumn+1);  | 
 
| 
169484
 | 
 0  | 
 0  | 
   if( *pRC ) return;  | 
 
| 
169486
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
169487
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pSelect) ){  | 
 
| 
169492
 | 
 0  | 
 0  | 
       for(i=1; rc==SQLITE_OK && i<=p->nColumn; i++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=1; rc==SQLITE_OK && i<=p->nColumn; i++){  | 
 
| 
169494
 | 
 0  | 
 0  | 
         if( p->abNotindexed[iCol]==0 ){  | 
 
| 
169500
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
169551
 | 
 24  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
169555
 | 
 24  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pNextIdx) ){  | 
 
| 
169561
 | 
 24  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
169567
 | 
 0  | 
 24  | 
     if( iNext>=FTS3_MERGE_COUNT ){  | 
 
| 
169618
 | 
 0  | 
 0  | 
   if( p->pSegments ){  | 
 
| 
169621
 | 
 0  | 
 0  | 
     if( 0==p->zSegmentsTbl ){  | 
 
| 
169623
 | 
 0  | 
 0  | 
       if( 0==p->zSegmentsTbl ) return SQLITE_NOMEM;  | 
 
| 
169630
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
169633
 | 
 0  | 
 0  | 
     if( paBlob ){  | 
 
| 
169635
 | 
 0  | 
 0  | 
       if( !aByte ){  | 
 
| 
169638
 | 
 0  | 
 0  | 
         if( pnLoad && nByte>(FTS3_NODE_CHUNK_THRESHOLD) ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( pnLoad && nByte>(FTS3_NODE_CHUNK_THRESHOLD) ){  | 
 
| 
169644
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
169677
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
169680
 | 
 0  | 
 0  | 
     if( pReader->nPopulate==pReader->nNode ){  | 
 
| 
169694
 | 
 0  | 
 1393  | 
   while( pReader->pBlob && rc==SQLITE_OK   | 
 
| 
 | 
 0  | 
 0  | 
   while( pReader->pBlob && rc==SQLITE_OK   | 
 
| 
169695
 | 
 0  | 
 0  | 
      &&  (pFrom - pReader->aNode + nByte)>pReader->nPopulate  | 
 
| 
169706
 | 
 0  | 
 159  | 
   if( !fts3SegReaderIsRootOnly(pSeg) ){  | 
 
| 
169729
 | 
 256  | 
 560  | 
   if( !pReader->aDoclist ){  | 
 
| 
169735
 | 
 791  | 
 25  | 
   if( !pNext || pNext>=&pReader->aNode[pReader->nNode] ){  | 
 
| 
 | 
 133  | 
 658  | 
   if( !pNext || pNext>=&pReader->aNode[pReader->nNode] ){  | 
 
| 
169737
 | 
 131  | 
 27  | 
     if( fts3SegReaderIsPending(pReader) ){  | 
 
| 
169741
 | 
 107  | 
 24  | 
       if( pElem ){  | 
 
| 
169748
 | 
 0  | 
 107  | 
         if( !aCopy ) return SQLITE_NOMEM;  | 
 
| 
169763
 | 
 27  | 
 0  | 
     if( pReader->iCurrentBlock>=pReader->iLeafEndBlock ){  | 
 
| 
169767
 | 
 0  | 
 0  | 
     rc = sqlite3Fts3ReadBlock(  | 
 
| 
169771
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
169773
 | 
 0  | 
 0  | 
     if( bIncr && pReader->nPopulatenNode ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( bIncr && pReader->nPopulatenNode ){  | 
 
| 
169783
 | 
 0  | 
 658  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
169787
 | 
 0  | 
 658  | 
   pNext += fts3GetVarint32(pNext, &nPrefix);  | 
 
| 
169788
 | 
 0  | 
 658  | 
   pNext += fts3GetVarint32(pNext, &nSuffix);  | 
 
| 
169789
 | 
 658  | 
 0  | 
   if( nSuffix<=0   | 
 
| 
169790
 | 
 658  | 
 0  | 
    || (&pReader->aNode[pReader->nNode] - pNext)
 | 
 
| 
169791
 | 
 0  | 
 658  | 
    || nPrefix>pReader->nTermAlloc  | 
 
| 
169799
 | 
 255  | 
 403  | 
   if( (i64)nPrefix+nSuffix>(i64)pReader->nTermAlloc ){  | 
 
| 
169802
 | 
 0  | 
 255  | 
     if( !zNew ){  | 
 
| 
169810
 | 
 0  | 
 658  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
169815
 | 
 0  | 
 658  | 
   pNext += fts3GetVarint32(pNext, &pReader->nDoclist);  | 
 
| 
169823
 | 
 658  | 
 0  | 
   if( (&pReader->aNode[pReader->nNode] - pReader->aDoclist)nDoclist  | 
 
| 
169824
 | 
 658  | 
 0  | 
    || (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1])  | 
 
| 
 | 
 0  | 
 658  | 
    || (pReader->nPopulate==0 && pReader->aDoclist[pReader->nDoclist-1])  | 
 
| 
169839
 | 
 0  | 
 75  | 
   if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){  | 
 
| 
169849
 | 
 75  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
169879
 | 
 0  | 
 77  | 
   if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab->bDescIdx && fts3SegReaderIsPending(pReader) ){  | 
 
| 
169884
 | 
 0  | 
 0  | 
     if( ppOffsetList ){  | 
 
| 
169892
 | 
 0  | 
 0  | 
     if( bEof ){  | 
 
| 
169911
 | 
 97  | 
 77  | 
       while( *p | c ) c = *p++ & 0x80;  | 
 
| 
169914
 | 
 0  | 
 77  | 
       if( pReader->pBlob==0 || p<&pReader->aNode[pReader->nPopulate] ) break;  | 
 
| 
 | 
 0  | 
 0  | 
       if( pReader->pBlob==0 || p<&pReader->aNode[pReader->nPopulate] ) break;  | 
 
| 
169916
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
169923
 | 
 77  | 
 0  | 
     if( ppOffsetList ){  | 
 
| 
169929
 | 
 2  | 
 75  | 
     while( p
 | 
 
| 
 | 
 0  | 
 2  | 
     while( p
 | 
 
| 
169936
 | 
 75  | 
 2  | 
     if( p>=pEnd ){  | 
 
| 
169940
 | 
 2  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
169943
 | 
 0  | 
 2  | 
         if( pTab->bDescIdx ){  | 
 
| 
169970
 | 
 90  | 
 0  | 
   for(ii=0; rc==SQLITE_OK && iinSegment; ii++){  | 
 
| 
 | 
 72  | 
 18  | 
   for(ii=0; rc==SQLITE_OK && iinSegment; ii++){  | 
 
| 
169972
 | 
 72  | 
 0  | 
     if( !fts3SegReaderIsPending(pReader)   | 
 
| 
169973
 | 
 0  | 
 72  | 
      && !fts3SegReaderIsRootOnly(pReader)   | 
 
| 
169976
 | 
 0  | 
 0  | 
       for(jj=pReader->iStartBlock; jj<=pReader->iLeafEndBlock; jj++){  | 
 
| 
169979
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ) break;  | 
 
| 
169980
 | 
 0  | 
 0  | 
         if( (nBlob+35)>pgsz ){  | 
 
| 
169995
 | 
 256  | 
 0  | 
   if( pReader ){  | 
 
| 
169996
 | 
 231  | 
 25  | 
     if( !fts3SegReaderIsPending(pReader) ){  | 
 
| 
169999
 | 
 25  | 
 231  | 
     if( !fts3SegReaderIsRootOnly(pReader) ){  | 
 
| 
170024
 | 
 231  | 
 0  | 
   if( iStartLeaf==0 ){  | 
 
| 
170029
 | 
 0  | 
 231  | 
   if( !pReader ){  | 
 
| 
170039
 | 
 231  | 
 0  | 
   if( nExtra ){  | 
 
| 
170069
 | 
 0  | 
 136  | 
   if( c==0 ){  | 
 
| 
170110
 | 
 38  | 
 50  | 
   if( bPrefix ){  | 
 
| 
170113
 | 
 106  | 
 38  | 
     for(pE=fts3HashFirst(pHash); pE; pE=fts3HashNext(pE)){  | 
 
| 
170116
 | 
 0  | 
 106  | 
       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)) ){  | 
 
| 
170117
 | 
 24  | 
 82  | 
         if( nElem==nAlloc ){  | 
 
| 
170123
 | 
 0  | 
 24  | 
           if( !aElem2 ){  | 
 
| 
170139
 | 
 24  | 
 14  | 
     if( nElem>1 ){  | 
 
| 
170152
 | 
 1  | 
 49  | 
     if( pE ){  | 
 
| 
170158
 | 
 25  | 
 63  | 
   if( nElem>0 ){  | 
 
| 
170161
 | 
 0  | 
 25  | 
     if( !pReader ){  | 
 
| 
170171
 | 
 38  | 
 50  | 
   if( bPrefix ){  | 
 
| 
170192
 | 
 102  | 
 229  | 
   if( pLhs->aNode && pRhs->aNode ){  | 
 
| 
 | 
 54  | 
 48  | 
   if( pLhs->aNode && pRhs->aNode ){  | 
 
| 
170194
 | 
 13  | 
 41  | 
     if( rc2<0 ){  | 
 
| 
170199
 | 
 23  | 
 31  | 
     if( rc==0 ){  | 
 
| 
170205
 | 
 180  | 
 151  | 
   if( rc==0 ){  | 
 
| 
170225
 | 
 28  | 
 14  | 
   if( rc==0 ){  | 
 
| 
170226
 | 
 0  | 
 28  | 
     if( pLhs->iDocid==pRhs->iDocid ){  | 
 
| 
170229
 | 
 28  | 
 0  | 
       rc = (pLhs->iDocid > pRhs->iDocid) ? 1 : -1;  | 
 
| 
170237
 | 
 0  | 
 0  | 
   if( rc==0 ){  | 
 
| 
170238
 | 
 0  | 
 0  | 
     if( pLhs->iDocid==pRhs->iDocid ){  | 
 
| 
170241
 | 
 0  | 
 0  | 
       rc = (pLhs->iDocid < pRhs->iDocid) ? 1 : -1;  | 
 
| 
170262
 | 
 706  | 
 16  | 
   if( pSeg->aNode ){  | 
 
| 
170263
 | 
 228  | 
 478  | 
     if( pSeg->nTerm>nTerm ){  | 
 
| 
170268
 | 
 126  | 
 580  | 
     if( res==0 ){  | 
 
| 
170291
 | 
 314  | 
 71  | 
   if( nSuspect==nSegment ) nSuspect--;  | 
 
| 
170292
 | 
 222  | 
 385  | 
   for(i=nSuspect-1; i>=0; i--){  | 
 
| 
170294
 | 
 373  | 
 162  | 
     for(j=i; j<(nSegment-1); j++){  | 
 
| 
170296
 | 
 60  | 
 313  | 
       if( xCmp(apSegment[j], apSegment[j+1])<0 ) break;  | 
 
| 
170322
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
170343
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
170344
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
170369
 | 
 24  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
170374
 | 
 0  | 
 24  | 
     if( nLeafData==0 ){  | 
 
| 
170378
 | 
 0  | 
 24  | 
       if( !zEnd ) return SQLITE_NOMEM;  | 
 
| 
170405
 | 
 98  | 
 24  | 
   for(n=0; n
 | 
 
| 
 | 
 16  | 
 82  | 
   for(n=0; n
 | 
 
| 
170427
 | 
 0  | 
 0  | 
   if( pTree ){  | 
 
| 
170437
 | 
 0  | 
 0  | 
     if( nReq<=p->nNodeSize || !pTree->zTerm ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nReq<=p->nNodeSize || !pTree->zTerm ){  | 
 
| 
170439
 | 
 0  | 
 0  | 
       if( nReq>p->nNodeSize ){  | 
 
| 
170449
 | 
 0  | 
 0  | 
         if( !pTree->aData ){  | 
 
| 
170454
 | 
 0  | 
 0  | 
       if( pTree->zTerm ){  | 
 
| 
170464
 | 
 0  | 
 0  | 
       if( isCopyTerm ){  | 
 
| 
170465
 | 
 0  | 
 0  | 
         if( pTree->nMalloc
 | 
 
| 
170467
 | 
 0  | 
 0  | 
           if( !zNew ){  | 
 
| 
170493
 | 
 0  | 
 0  | 
   if( !pNew ){  | 
 
| 
170500
 | 
 0  | 
 0  | 
   if( pTree ){  | 
 
| 
170503
 | 
 0  | 
 0  | 
     if( pTree->pParent==0 ){  | 
 
| 
170562
 | 
 0  | 
 0  | 
   if( !pTree->pParent ){  | 
 
| 
170572
 | 
 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){  | 
 
| 
170580
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
170595
 | 
 0  | 
 24  | 
   if( pTree ){  | 
 
| 
170598
 | 
 0  | 
 0  | 
     while( p ){  | 
 
| 
170600
 | 
 0  | 
 0  | 
       if( p->aData!=(char *)&p[1] ){  | 
 
| 
170634
 | 
 24  | 
 82  | 
   if( !pWriter ){  | 
 
| 
170640
 | 
 0  | 
 24  | 
     if( !pWriter ) return SQLITE_NOMEM;  | 
 
| 
170646
 | 
 0  | 
 24  | 
     if( !pWriter->aData ) return SQLITE_NOMEM;  | 
 
| 
170651
 | 
 0  | 
 24  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
170652
 | 
 24  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
170657
 | 
 0  | 
 24  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
170671
 | 
 82  | 
 24  | 
   if( nData>0 && nData+nReq>p->nNodeSize ){  | 
 
| 
 | 
 0  | 
 82  | 
   if( nData>0 && nData+nReq>p->nNodeSize ){  | 
 
| 
170676
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
170693
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
170713
 | 
 0  | 
 106  | 
   if( nReq>pWriter->nSize ){  | 
 
| 
170715
 | 
 0  | 
 0  | 
     if( !aNew ) return SQLITE_NOMEM;  | 
 
| 
170735
 | 
 106  | 
 0  | 
   if( isCopyTerm ){  | 
 
| 
170736
 | 
 28  | 
 78  | 
     if( nTerm>pWriter->nMalloc ){  | 
 
| 
170738
 | 
 0  | 
 28  | 
       if( !zNew ){  | 
 
| 
170768
 | 
 0  | 
 24  | 
   if( pWriter->pTree ){  | 
 
| 
170776
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
170780
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
170798
 | 
 24  | 
 6  | 
   if( pWriter ){  | 
 
| 
170819
 | 
 0  | 
 0  | 
   if( p->zContentTbl ){  | 
 
| 
170825
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
170826
 | 
 0  | 
 0  | 
       if( SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
170860
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
170865
 | 
 0  | 
 0  | 
   if( SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
170889
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
170896
 | 
 0  | 
 0  | 
   if( SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
170912
 | 
 0  | 
 0  | 
   if( pSeg->iStartBlock ){  | 
 
| 
170915
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
170951
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
170954
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
170959
 | 
 0  | 
 0  | 
   if( iLevel==FTS3_SEGCURSOR_ALL ){  | 
 
| 
170961
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
170969
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
170976
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
171011
 | 
 78  | 
 71  | 
     while( p
 | 
 
| 
 | 
 71  | 
 7  | 
     while( p
 | 
 
| 
171013
 | 
 71  | 
 7  | 
     if( iCol==iCurrent ){  | 
 
| 
171020
 | 
 0  | 
 7  | 
     if( nList==0 ){  | 
 
| 
171024
 | 
 0  | 
 7  | 
     p += fts3GetVarint32(p, &iCurrent);  | 
 
| 
171027
 | 
 59  | 
 12  | 
   if( bZero && &pList[nList]!=pEnd ){  | 
 
| 
 | 
 0  | 
 59  | 
   if( bZero && &pList[nList]!=pEnd ){  | 
 
| 
171046
 | 
 25  | 
 84  | 
   if( nList>pMsr->nBuffer ){  | 
 
| 
171050
 | 
 0  | 
 25  | 
     if( !pNew ) return SQLITE_NOMEM;  | 
 
| 
171068
 | 
 0  | 
 101  | 
     p->bDescIdx ? fts3SegReaderDoclistCmpRev : fts3SegReaderDoclistCmp  | 
 
| 
171071
 | 
 4  | 
 97  | 
   if( nMerge==0 ){  | 
 
| 
171080
 | 
 38  | 
 59  | 
     if( pSeg->pOffsetList==0 ){  | 
 
| 
171092
 | 
 59  | 
 0  | 
       while( rc==SQLITE_OK   | 
 
| 
171093
 | 
 20  | 
 39  | 
         && j
 | 
 
| 
171094
 | 
 11  | 
 9  | 
         && apSegment[j]->pOffsetList  | 
 
| 
171095
 | 
 0  | 
 11  | 
         && apSegment[j]->iDocid==iDocid  | 
 
| 
171100
 | 
 0  | 
 59  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
171103
 | 
 59  | 
 0  | 
       if( nList>0 && fts3SegReaderIsPending(apSegment[0]) ){  | 
 
| 
 | 
 3  | 
 56  | 
       if( nList>0 && fts3SegReaderIsPending(apSegment[0]) ){  | 
 
| 
171105
 | 
 0  | 
 3  | 
         if( rc!=SQLITE_OK ) return rc;  | 
 
| 
171110
 | 
 59  | 
 0  | 
       if( pMsr->iColFilter>=0 ){  | 
 
| 
171114
 | 
 59  | 
 0  | 
       if( nList>0 ){  | 
 
| 
171141
 | 
 339  | 
 0  | 
   for(i=0; pCsr->bRestart==0 && inSegment; i++){  | 
 
| 
 | 
 256  | 
 83  | 
   for(i=0; pCsr->bRestart==0 && inSegment; i++){  | 
 
| 
171146
 | 
 0  | 
 692  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
171147
 | 
 665  | 
 27  | 
     }while( zTerm && (res = fts3SegReaderTermCmp(pSeg, zTerm, nTerm))<0 );  | 
 
| 
 | 
 436  | 
 229  | 
     }while( zTerm && (res = fts3SegReaderTermCmp(pSeg, zTerm, nTerm))<0 );  | 
 
| 
171149
 | 
 196  | 
 60  | 
     if( pSeg->bLookup && res!=0 ){  | 
 
| 
 | 
 132  | 
 64  | 
     if( pSeg->bLookup && res!=0 ){  | 
 
| 
171178
 | 
 0  | 
 50  | 
     p->bDescIdx ? fts3SegReaderDoclistCmpRev : fts3SegReaderDoclistCmp  | 
 
| 
171186
 | 
 0  | 
 50  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
171189
 | 
 105  | 
 2  | 
   for(i=0; i
 | 
 
| 
171191
 | 
 57  | 
 48  | 
     if( !pSeg->aNode || fts3SegReaderTermCmp(pSeg, zTerm, nTerm) ){  | 
 
| 
 | 
 57  | 
 0  | 
     if( !pSeg->aNode || fts3SegReaderTermCmp(pSeg, zTerm, nTerm) ){  | 
 
| 
171198
 | 
 57  | 
 50  | 
   for(i=0; inAdvance; i++){  | 
 
| 
171200
 | 
 0  | 
 57  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
171232
 | 
 0  | 
 0  | 
   for(i=0; inSegment; i++){  | 
 
| 
171259
 | 
 0  | 
 157  | 
     p->bDescIdx ? fts3SegReaderDoclistCmpRev : fts3SegReaderDoclistCmp  | 
 
| 
171262
 | 
 0  | 
 157  | 
   if( pCsr->nSegment==0 ) return SQLITE_OK;  | 
 
| 
171271
 | 
 124  | 
 157  | 
     for(i=0; inAdvance; i++){  | 
 
| 
171273
 | 
 0  | 
 124  | 
       if( pSeg->bLookup ){  | 
 
| 
171278
 | 
 0  | 
 124  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
171285
 | 
 29  | 
 128  | 
     if( apSegment[0]->aNode==0 ) break;  | 
 
| 
171297
 | 
 16  | 
 112  | 
     if( pFilter->zTerm && !isScan ){  | 
 
| 
 | 
 16  | 
 0  | 
     if( pFilter->zTerm && !isScan ){  | 
 
| 
171298
 | 
 12  | 
 4  | 
       if( pCsr->nTermnTerm   | 
 
| 
171299
 | 
 0  | 
 12  | 
        || (!isPrefix && pCsr->nTerm>pFilter->nTerm)  | 
 
| 
 | 
 0  | 
 0  | 
        || (!isPrefix && pCsr->nTerm>pFilter->nTerm)  | 
 
| 
171300
 | 
 12  | 
 0  | 
        || memcmp(pCsr->zTerm, pFilter->zTerm, pFilter->nTerm)   | 
 
| 
171307
 | 
 18  | 
 106  | 
     while( nMerge
 | 
 
| 
171308
 | 
 13  | 
 5  | 
         && apSegment[nMerge]->aNode  | 
 
| 
171309
 | 
 0  | 
 13  | 
         && apSegment[nMerge]->nTerm==pCsr->nTerm   | 
 
| 
171310
 | 
 0  | 
 0  | 
         && 0==memcmp(pCsr->zTerm, apSegment[nMerge]->zTerm, pCsr->nTerm)  | 
 
| 
171316
 | 
 124  | 
 0  | 
     if( nMerge==1   | 
 
| 
171317
 | 
 106  | 
 18  | 
      && !isIgnoreEmpty   | 
 
| 
171318
 | 
 106  | 
 0  | 
      && !isFirst   | 
 
| 
171319
 | 
 0  | 
 106  | 
      && (p->bDescIdx==0 || fts3SegReaderIsPending(apSegment[0])==0)  | 
 
| 
 | 
 0  | 
 0  | 
      && (p->bDescIdx==0 || fts3SegReaderIsPending(apSegment[0])==0)  | 
 
| 
171322
 | 
 106  | 
 0  | 
       if( fts3SegReaderIsPending(apSegment[0]) ){  | 
 
| 
171328
 | 
 106  | 
 0  | 
       if( rc==SQLITE_OK ) rc = SQLITE_ROW;  | 
 
| 
171337
 | 
 18  | 
 18  | 
       for(i=0; i
 | 
 
| 
171341
 | 
 18  | 
 18  | 
       while( apSegment[0]->pOffsetList ){  | 
 
| 
171349
 | 
 0  | 
 18  | 
         while( j
 | 
 
| 
171350
 | 
 0  | 
 0  | 
             && apSegment[j]->pOffsetList  | 
 
| 
171351
 | 
 0  | 
 0  | 
             && apSegment[j]->iDocid==iDocid  | 
 
| 
171357
 | 
 12  | 
 6  | 
         if( isColFilter ){  | 
 
| 
171361
 | 
 18  | 
 0  | 
         if( !isIgnoreEmpty || nList>0 ){  | 
 
| 
 | 
 18  | 
 0  | 
         if( !isIgnoreEmpty || nList>0 ){  | 
 
| 
171366
 | 
 0  | 
 18  | 
           if( p->bDescIdx && nDoclist>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( p->bDescIdx && nDoclist>0 ){  | 
 
| 
171374
 | 
 18  | 
 0  | 
           nByte = sqlite3Fts3VarintLen(iDelta) + (isRequirePos?nList+1:0);  | 
 
| 
171375
 | 
 9  | 
 9  | 
           if( nDoclist+nByte>pCsr->nBuffer ){  | 
 
| 
171379
 | 
 0  | 
 9  | 
             if( !aNew ){  | 
 
| 
171385
 | 
 0  | 
 18  | 
           if( isFirst ){  | 
 
| 
171390
 | 
 0  | 
 0  | 
             if( nWrite ){  | 
 
| 
171397
 | 
 18  | 
 0  | 
             if( isRequirePos ){  | 
 
| 
171407
 | 
 18  | 
 0  | 
       if( nDoclist>0 ){  | 
 
| 
171414
 | 
 0  | 
 124  | 
   }while( rc==SQLITE_OK );  | 
 
| 
171423
 | 
 90  | 
 8  | 
   if( pCsr ){  | 
 
| 
171425
 | 
 256  | 
 90  | 
     for(i=0; inSegment; i++){  | 
 
| 
171454
 | 
 0  | 
 0  | 
   if( zText ){  | 
 
| 
171458
 | 
 0  | 
 0  | 
     for(i=0; zText[i]>='0' && zText[i]<='9'; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; zText[i]>='0' && zText[i]<='9'; i++){  | 
 
| 
171462
 | 
 0  | 
 0  | 
     while( zText[i]==' ' ) i++;  | 
 
| 
171464
 | 
 0  | 
 0  | 
     if( zText[i]=='-' ){  | 
 
| 
171468
 | 
 0  | 
 0  | 
     for(/* no-op */; zText[i]>='0' && zText[i]<='9'; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(/* no-op */; zText[i]>='0' && zText[i]<='9'; i++){  | 
 
| 
171490
 | 
 24  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
171502
 | 
 0  | 
 24  | 
     while( SQLITE_ROW==sqlite3_step(pRange) ){  | 
 
| 
171505
 | 
 0  | 
 0  | 
       if( nSize<=0 || nSize>nLimit ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nSize<=0 || nSize>nLimit ){  | 
 
| 
171518
 | 
 0  | 
 24  | 
     if( bOk ){  | 
 
| 
171523
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
171526
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
171530
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
171542
 | 
 0  | 
 0  | 
         while( SQLITE_ROW==sqlite3_step(pRange) ){  | 
 
| 
171548
 | 
 0  | 
 0  | 
           if( rc!=SQLITE_OK ){  | 
 
| 
171554
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
171559
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
171605
 | 
 30  | 
 0  | 
   if( rc!=SQLITE_OK || csr.nSegment==0 ) goto finished;  | 
 
| 
 | 
 24  | 
 6  | 
   if( rc!=SQLITE_OK || csr.nSegment==0 ) goto finished;  | 
 
| 
171607
 | 
 0  | 
 24  | 
   if( iLevel!=FTS3_SEGCURSOR_PENDING ){  | 
 
| 
171609
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto finished;  | 
 
| 
171612
 | 
 0  | 
 24  | 
   if( iLevel==FTS3_SEGCURSOR_ALL ){  | 
 
| 
171617
 | 
 0  | 
 0  | 
     if( csr.nSegment==1 && 0==fts3SegReaderIsPending(csr.apSegment[0]) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( csr.nSegment==1 && 0==fts3SegReaderIsPending(csr.apSegment[0]) ){  | 
 
| 
171632
 | 
 0  | 
 24  | 
     bIgnoreEmpty = (iLevel!=FTS3_SEGCURSOR_PENDING) && (iNewLevel>iMaxLevel);  | 
 
| 
 | 
 0  | 
 0  | 
     bIgnoreEmpty = (iLevel!=FTS3_SEGCURSOR_PENDING) && (iNewLevel>iMaxLevel);  | 
 
| 
171634
 | 
 0  | 
 24  | 
   if( rc!=SQLITE_OK ) goto finished;  | 
 
| 
171642
 | 
 0  | 
 24  | 
   filter.flags |= (bIgnoreEmpty ? FTS3_SEGMENT_IGNORE_EMPTY : 0);  | 
 
| 
171645
 | 
 130  | 
 0  | 
   while( SQLITE_OK==rc ){  | 
 
| 
171647
 | 
 24  | 
 106  | 
     if( rc!=SQLITE_ROW ) break;  | 
 
| 
171651
 | 
 0  | 
 24  | 
   if( rc!=SQLITE_OK ) goto finished;  | 
 
| 
171654
 | 
 0  | 
 24  | 
   if( iLevel!=FTS3_SEGCURSOR_PENDING ){  | 
 
| 
171658
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto finished;  | 
 
| 
171660
 | 
 24  | 
 0  | 
   if( pWriter ){  | 
 
| 
171662
 | 
 24  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
171663
 | 
 0  | 
 24  | 
       if( iLevel==FTS3_SEGCURSOR_PENDING || iNewLevel
 | 
 
| 
 | 
 0  | 
 0  | 
       if( iLevel==FTS3_SEGCURSOR_PENDING || iNewLevel
 | 
 
| 
171683
 | 
 60  | 
 0  | 
   for(i=0; rc==SQLITE_OK && inIndex; i++){  | 
 
| 
 | 
 30  | 
 30  | 
   for(i=0; rc==SQLITE_OK && inIndex; i++){  | 
 
| 
171685
 | 
 0  | 
 30  | 
     if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
171692
 | 
 30  | 
 0  | 
   if( rc==SQLITE_OK && p->bHasStat  | 
 
| 
 | 
 15  | 
 15  | 
   if( rc==SQLITE_OK && p->bHasStat  | 
 
| 
171693
 | 
 7  | 
 8  | 
    && p->nAutoincrmerge==0xff && p->nLeafAdd>0  | 
 
| 
 | 
 4  | 
 3  | 
    && p->nAutoincrmerge==0xff && p->nLeafAdd>0  | 
 
| 
171697
 | 
 4  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
171700
 | 
 0  | 
 4  | 
       if( rc==SQLITE_ROW ){  | 
 
| 
171702
 | 
 0  | 
 0  | 
         if( p->nAutoincrmerge==1 ) p->nAutoincrmerge = 8;  | 
 
| 
171703
 | 
 4  | 
 0  | 
       }else if( rc==SQLITE_DONE ){  | 
 
| 
171722
 | 
 80  | 
 32  | 
   for(i=j=0; i
 | 
 
| 
171739
 | 
 42  | 
 12  | 
   for(i=j=0; i
 | 
 
| 
171762
 | 
 0  | 
 16  | 
   if( *pRC ) return;  | 
 
| 
171764
 | 
 0  | 
 16  | 
   if( pBlob==0 ){  | 
 
| 
171770
 | 
 0  | 
 16  | 
   if( rc ){  | 
 
| 
171812
 | 
 0  | 
 16  | 
   if( *pRC ) return;  | 
 
| 
171814
 | 
 0  | 
 16  | 
   if( a==0 ){  | 
 
| 
171820
 | 
 0  | 
 16  | 
   if( rc ){  | 
 
| 
171826
 | 
 12  | 
 4  | 
   if( sqlite3_step(pStmt)==SQLITE_ROW ){  | 
 
| 
171834
 | 
 0  | 
 16  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
171839
 | 
 0  | 
 16  | 
   if( nChng<0 && a[0]<(u32)(-nChng) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( nChng<0 && a[0]<(u32)(-nChng) ){  | 
 
| 
171844
 | 
 40  | 
 16  | 
   for(i=0; inColumn+1; i++){  | 
 
| 
171846
 | 
 0  | 
 40  | 
     if( x+aSzIns[i] < aSzDel[i] ){  | 
 
| 
171855
 | 
 0  | 
 16  | 
   if( rc ){  | 
 
| 
171878
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
171882
 | 
 0  | 
 0  | 
     while( sqlite3_step(pAllLangid)==SQLITE_ROW ){  | 
 
| 
171885
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && inIndex; i++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && inIndex; i++){  | 
 
| 
171887
 | 
 0  | 
 0  | 
         if( rc==SQLITE_DONE ){  | 
 
| 
171894
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
171900
 | 
 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;  | 
 
| 
171917
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
171926
 | 
 0  | 
 0  | 
     if( !zSql ){  | 
 
| 
171933
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
171936
 | 
 0  | 
 0  | 
       if( aSz==0 ){  | 
 
| 
171945
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
171950
 | 
 0  | 
 0  | 
       for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){  | 
 
| 
171951
 | 
 0  | 
 0  | 
         if( p->abNotindexed[iCol]==0 ){  | 
 
| 
171957
 | 
 0  | 
 0  | 
       if( p->bHasDocsize ){  | 
 
| 
171960
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
171965
 | 
 0  | 
 0  | 
         for(iCol=0; iCol<=p->nColumn; iCol++){  | 
 
| 
171970
 | 
 0  | 
 0  | 
     if( p->bFts4 ){  | 
 
| 
171975
 | 
 0  | 
 0  | 
     if( pStmt ){  | 
 
| 
171977
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
172008
 | 
 0  | 
 0  | 
   if( pCsr->apSegment==0 ){  | 
 
| 
172014
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172019
 | 
 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
 | 
 
| 
172031
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
172110
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK && nMin>pBlob->nAlloc ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK && nMin>pBlob->nAlloc ){  | 
 
| 
172113
 | 
 0  | 
 0  | 
     if( a ){  | 
 
| 
172139
 | 
 0  | 
 0  | 
   if( p->iChild && bFirst==0 ) p->iChild++;  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->iChild && bFirst==0 ) p->iChild++;  | 
 
| 
172140
 | 
 0  | 
 0  | 
   if( p->iOff>=p->nNode ){  | 
 
| 
172144
 | 
 0  | 
 0  | 
     if( bFirst==0 ){  | 
 
| 
172145
 | 
 0  | 
 0  | 
       p->iOff += fts3GetVarint32(&p->aNode[p->iOff], &nPrefix);  | 
 
| 
172147
 | 
 0  | 
 0  | 
     p->iOff += fts3GetVarint32(&p->aNode[p->iOff], &nSuffix);  | 
 
| 
172149
 | 
 0  | 
 0  | 
     if( nPrefix>p->iOff || nSuffix>p->nNode-p->iOff ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nPrefix>p->iOff || nSuffix>p->nNode-p->iOff ){  | 
 
| 
172153
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
172157
 | 
 0  | 
 0  | 
       if( p->iChild==0 ){  | 
 
| 
172158
 | 
 0  | 
 0  | 
         p->iOff += fts3GetVarint32(&p->aNode[p->iOff], &p->nDoclist);  | 
 
| 
172159
 | 
 0  | 
 0  | 
         if( (p->nNode-p->iOff)nDoclist ){  | 
 
| 
172192
 | 
 0  | 
 0  | 
   if( p->aNode[0] ){  | 
 
| 
172222
 | 
 0  | 
 0  | 
   for(iLayer=1; ALWAYS(iLayer
 | 
 
| 
172239
 | 
 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 ){   | 
 
| 
172245
 | 
 0  | 
 0  | 
       if( pBlk->n==0 ){  | 
 
| 
172247
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
172255
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
172256
 | 
 0  | 
 0  | 
         if( pNode->key.n ){  | 
 
| 
172281
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK || iNextPtr==0 ) return rc;  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK || iNextPtr==0 ) return rc;  | 
 
| 
172332
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
172339
 | 
 0  | 
 0  | 
   if( bFirst==0 ){  | 
 
| 
172346
 | 
 0  | 
 0  | 
   if( aDoclist ){  | 
 
| 
172389
 | 
 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 ){  | 
 
| 
172405
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
172422
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172423
 | 
 0  | 
 0  | 
     if( pLeaf->block.n==0 ){  | 
 
| 
172462
 | 
 0  | 
 0  | 
   for(iRoot=FTS_MAX_APPENDABLE_HEIGHT-1; iRoot>=0; iRoot--){  | 
 
| 
172464
 | 
 0  | 
 0  | 
     if( pNode->block.n>0 ) break;  | 
 
| 
172472
 | 
 0  | 
 0  | 
   if( iRoot<0 ) return;  | 
 
| 
172489
 | 
 0  | 
 0  | 
   if( iRoot==0 ){  | 
 
| 
172492
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
172503
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
172505
 | 
 0  | 
 0  | 
     if( pNode->block.n>0 && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pNode->block.n>0 && rc==SQLITE_OK ){  | 
 
| 
172513
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172514
 | 
 0  | 
 0  | 
     rc = fts3WriteSegdir(p,   | 
 
| 
172546
 | 
 0  | 
 0  | 
   if( res==0 ) res = nLhs - nRhs;  | 
 
| 
172570
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172572
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pCheck) ) bRes = 1;  | 
 
| 
172607
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172619
 | 
 0  | 
 0  | 
     if( sqlite3_step(pSelect)==SQLITE_ROW ){  | 
 
| 
172623
 | 
 0  | 
 0  | 
       if( pWriter->nLeafData<0 ){  | 
 
| 
172637
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && bAppendable ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && bAppendable ){  | 
 
| 
172642
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
172644
 | 
 0  | 
 0  | 
         for(rc = nodeReaderInit(&reader, aLeaf, nLeaf);  | 
 
| 
172645
 | 
 0  | 
 0  | 
             rc==SQLITE_OK && reader.aNode;  | 
 
| 
172650
 | 
 0  | 
 0  | 
         if( fts3TermCmp(zKey, nKey, reader.term.a, reader.term.n)<=0 ){  | 
 
| 
172658
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && bAppendable ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && bAppendable ){  | 
 
| 
172671
 | 
 0  | 
 0  | 
       for(i=nHeight+1; i
 | 
 
| 
172678
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
172683
 | 
 0  | 
 0  | 
       for(i=nHeight; i>=0 && rc==SQLITE_OK; i--){  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=nHeight; i>=0 && rc==SQLITE_OK; i--){  | 
 
| 
172688
 | 
 0  | 
 0  | 
         while( reader.aNode && rc==SQLITE_OK ) rc = nodeReaderNext(&reader);  | 
 
| 
 | 
 0  | 
 0  | 
         while( reader.aNode && rc==SQLITE_OK ) rc = nodeReaderNext(&reader);  | 
 
| 
172690
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
172693
 | 
 0  | 
 0  | 
           if( i>0 ){  | 
 
| 
172700
 | 
 0  | 
 0  | 
             if( rc==SQLITE_OK ){  | 
 
| 
172712
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
172736
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172787
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172790
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pLeafEst) ){  | 
 
| 
172795
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
172799
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172800
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pFirstBlock) ){  | 
 
| 
172807
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
172813
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
172820
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
172846
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172874
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172877
 | 
 0  | 
 0  | 
     while( SQLITE_ROW==sqlite3_step(pSelect) ){  | 
 
| 
172878
 | 
 0  | 
 0  | 
       if( nIdx>=nAlloc ){  | 
 
| 
172882
 | 
 0  | 
 0  | 
         if( !aNew ){  | 
 
| 
172891
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
172894
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172897
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
172903
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
172904
 | 
 0  | 
 0  | 
     if( aIdx[i]!=i ){  | 
 
| 
172919
 | 
 0  | 
 0  | 
   if( iChild ){  | 
 
| 
172951
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) return rc;  | 
 
| 
172955
 | 
 0  | 
 0  | 
   for(rc = nodeReaderInit(&reader, aNode, nNode);   | 
 
| 
172956
 | 
 0  | 
 0  | 
       rc==SQLITE_OK && reader.aNode;   | 
 
| 
172959
 | 
 0  | 
 0  | 
     if( pNew->n==0 ){  | 
 
| 
172961
 | 
 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;  | 
 
| 
172969
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) break;  | 
 
| 
172971
 | 
 0  | 
 0  | 
   if( pNew->n==0 ){  | 
 
| 
173007
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
173011
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pFetch) ){  | 
 
| 
173018
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
173021
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && iBlock ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && iBlock ){  | 
 
| 
173027
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
173030
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
173037
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && iNewStart ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && iNewStart ){  | 
 
| 
173040
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
173048
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
173051
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
173087
 | 
 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--){  | 
 
| 
173093
 | 
 0  | 
 0  | 
     for(j=0; ALWAYS(jnSegment); j++){  | 
 
| 
173095
 | 
 0  | 
 0  | 
       if( pSeg->iIdx==i ) break;  | 
 
| 
173099
 | 
 0  | 
 0  | 
     if( pSeg->aNode==0 ){  | 
 
| 
173102
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
173117
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && nRem!=pCsr->nSegment ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && nRem!=pCsr->nSegment ){  | 
 
| 
173133
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
173158
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
173161
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pSelect) ){  | 
 
| 
173164
 | 
 0  | 
 0  | 
       if( aHint ){  | 
 
| 
173166
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
173173
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
173195
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
173214
 | 
 0  | 
 0  | 
   while( i>0 && (pHint->a[i-1] & 0x80) ) i--;  | 
 
| 
 | 
 0  | 
 0  | 
   while( i>0 && (pHint->a[i-1] & 0x80) ) i--;  | 
 
| 
173215
 | 
 0  | 
 0  | 
   while( i>0 && (pHint->a[i-1] & 0x80) ) i--;  | 
 
| 
 | 
 0  | 
 0  | 
   while( i>0 && (pHint->a[i-1] & 0x80) ) i--;  | 
 
| 
173219
 | 
 0  | 
 0  | 
   i += fts3GetVarint32(&pHint->a[i], pnInput);  | 
 
| 
173220
 | 
 0  | 
 0  | 
   if( i!=nHint ) return FTS_CORRUPT_VTAB;  | 
 
| 
173249
 | 
 0  | 
 0  | 
   if( !pWriter ) return SQLITE_NOMEM;  | 
 
| 
173254
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && nRem>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && nRem>0 ){  | 
 
| 
173268
 | 
 0  | 
 0  | 
     if( sqlite3_step(pFindLevel)==SQLITE_ROW ){  | 
 
| 
173282
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && hint.n ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && hint.n ){  | 
 
| 
173288
 | 
 0  | 
 0  | 
       if( nSeg<0 || (iAbsLevel % nMod) >= (iHintAbsLevel % nMod) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nSeg<0 || (iAbsLevel % nMod) >= (iHintAbsLevel % nMod) ){  | 
 
| 
173303
 | 
 0  | 
 0  | 
     if( nSeg<0 ) break;  | 
 
| 
173314
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
173317
 | 
 0  | 
 0  | 
       if( iIdx==0 || (bUseHint && iIdx==1) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( iIdx==0 || (bUseHint && iIdx==1) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( iIdx==0 || (bUseHint && iIdx==1) ){  | 
 
| 
173320
 | 
 0  | 
 0  | 
         if( bIgnore ){  | 
 
| 
173326
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
173329
 | 
 0  | 
 0  | 
     if( SQLITE_OK==rc && pCsr->nSegment==nSeg  | 
 
| 
 | 
 0  | 
 0  | 
     if( SQLITE_OK==rc && pCsr->nSegment==nSeg  | 
 
| 
173330
 | 
 0  | 
 0  | 
      && SQLITE_OK==(rc = sqlite3Fts3SegReaderStart(p, pCsr, pFilter))  | 
 
| 
173331
 | 
 0  | 
 0  | 
      && SQLITE_ROW==(rc = sqlite3Fts3SegReaderStep(p, pCsr))  | 
 
| 
173333
 | 
 0  | 
 0  | 
       if( bUseHint && iIdx>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( bUseHint && iIdx>0 ){  | 
 
| 
173341
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && pWriter->nLeafEst ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && pWriter->nLeafEst ){  | 
 
| 
173345
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ) rc = sqlite3Fts3SegReaderStep(p, pCsr);  | 
 
| 
173346
 | 
 0  | 
 0  | 
           if( pWriter->nWork>=nRem && rc==SQLITE_ROW ) rc = SQLITE_OK;  | 
 
| 
 | 
 0  | 
 0  | 
           if( pWriter->nWork>=nRem && rc==SQLITE_ROW ) rc = SQLITE_OK;  | 
 
| 
173347
 | 
 0  | 
 0  | 
         }while( rc==SQLITE_ROW );  | 
 
| 
173350
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
173353
 | 
 0  | 
 0  | 
           if( nSeg!=0 ){  | 
 
| 
173360
 | 
 0  | 
 0  | 
       if( nSeg!=0 ){  | 
 
| 
173364
 | 
 0  | 
 0  | 
       if( nSeg==0 && pWriter->bNoLeafData==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nSeg==0 && pWriter->bNoLeafData==0 ){  | 
 
| 
173373
 | 
 0  | 
 0  | 
   if( bDirtyHint && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( bDirtyHint && rc==SQLITE_OK ){  | 
 
| 
173393
 | 
 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';  | 
 
| 
173421
 | 
 0  | 
 0  | 
   if( z[0]==',' && z[1]!='\0' ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( z[0]==',' && z[1]!='\0' ){  | 
 
| 
173426
 | 
 0  | 
 0  | 
   if( z[0]!='\0' || nMin<2 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( z[0]!='\0' || nMin<2 ){  | 
 
| 
173430
 | 
 0  | 
 0  | 
     if( !p->bHasStat ){  | 
 
| 
173434
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
173457
 | 
 0  | 
 0  | 
   if( p->nAutoincrmerge==1 || p->nAutoincrmerge>FTS3_MERGE_COUNT ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->nAutoincrmerge==1 || p->nAutoincrmerge>FTS3_MERGE_COUNT ){  | 
 
| 
173460
 | 
 0  | 
 0  | 
   if( !p->bHasStat ){  | 
 
| 
173463
 | 
 0  | 
 0  | 
     if( rc ) return rc;  | 
 
| 
173466
 | 
 0  | 
 0  | 
   if( rc ) return rc;  | 
 
| 
173494
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
173529
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
173533
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
173534
 | 
 0  | 
 0  | 
     while( SQLITE_ROW==(rc = sqlite3Fts3SegReaderStep(p, &csr)) ){  | 
 
| 
173543
 | 
 0  | 
 0  | 
       while( pCsr
 | 
 
| 
173546
 | 
 0  | 
 0  | 
         if( pCsr
 | 
 
| 
173547
 | 
 0  | 
 0  | 
           if( iVal==0 || iVal==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( iVal==0 || iVal==1 ){  | 
 
| 
173550
 | 
 0  | 
 0  | 
             if( iVal ){  | 
 
| 
173590
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
173594
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK && sqlite3_step(pAllLangid)==SQLITE_ROW ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK && sqlite3_step(pAllLangid)==SQLITE_ROW ){  | 
 
| 
173597
 | 
 0  | 
 0  | 
       for(i=0; inIndex; i++){  | 
 
| 
173602
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
173606
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
173612
 | 
 0  | 
 0  | 
     if( !zSql ){  | 
 
| 
173619
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
173624
 | 
 0  | 
 0  | 
       for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){  | 
 
| 
173625
 | 
 0  | 
 0  | 
         if( p->abNotindexed[iCol]==0 ){  | 
 
| 
173631
 | 
 0  | 
 0  | 
           while( rc==SQLITE_OK ){  | 
 
| 
173638
 | 
 0  | 
 0  | 
             if( rc==SQLITE_OK ){  | 
 
| 
173643
 | 
 0  | 
 0  | 
               for(i=1; inIndex; i++){  | 
 
| 
173644
 | 
 0  | 
 0  | 
                 if( p->aIndex[i].nPrefix<=nToken ){  | 
 
| 
173652
 | 
 0  | 
 0  | 
           if( pT ) pModule->xClose(pT);  | 
 
| 
173653
 | 
 0  | 
 0  | 
           if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
173702
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && bOk==0 ) rc = FTS_CORRUPT_VTAB;  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && bOk==0 ) rc = FTS_CORRUPT_VTAB;  | 
 
| 
173719
 | 
 0  | 
 0  | 
   if( !zVal ){  | 
 
| 
173721
 | 
 0  | 
 0  | 
   }else if( nVal==8 && 0==sqlite3_strnicmp(zVal, "optimize", 8) ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( nVal==8 && 0==sqlite3_strnicmp(zVal, "optimize", 8) ){  | 
 
| 
173723
 | 
 0  | 
 0  | 
   }else if( nVal==7 && 0==sqlite3_strnicmp(zVal, "rebuild", 7) ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( nVal==7 && 0==sqlite3_strnicmp(zVal, "rebuild", 7) ){  | 
 
| 
173725
 | 
 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) ){  | 
 
| 
173727
 | 
 0  | 
 0  | 
   }else if( nVal>6 && 0==sqlite3_strnicmp(zVal, "merge=", 6) ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( nVal>6 && 0==sqlite3_strnicmp(zVal, "merge=", 6) ){  | 
 
| 
173729
 | 
 0  | 
 0  | 
   }else if( nVal>10 && 0==sqlite3_strnicmp(zVal, "automerge=", 10) ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( nVal>10 && 0==sqlite3_strnicmp(zVal, "automerge=", 10) ){  | 
 
| 
173756
 | 
 0  | 
 47  | 
   for(pDef=pCsr->pDeferred; pDef; pDef=pDef->pNext){  | 
 
| 
173769
 | 
 0  | 
 102  | 
   for(pDef=pCsr->pDeferred; pDef; pDef=pNext){  | 
 
| 
173787
 | 
 0  | 
 0  | 
   if( pCsr->pDeferred ){  | 
 
| 
173799
 | 
 0  | 
 0  | 
     for(i=0; inColumn && rc==SQLITE_OK; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; inColumn && rc==SQLITE_OK; i++){  | 
 
| 
173800
 | 
 0  | 
 0  | 
       if( p->abNotindexed[i]==0 ){  | 
 
| 
173805
 | 
 0  | 
 0  | 
         while( rc==SQLITE_OK ){  | 
 
| 
173812
 | 
 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){  | 
 
| 
173814
 | 
 0  | 
 0  | 
             if( (pDef->iCol>=p->nColumn || pDef->iCol==i)  | 
 
| 
 | 
 0  | 
 0  | 
             if( (pDef->iCol>=p->nColumn || pDef->iCol==i)  | 
 
| 
173815
 | 
 0  | 
 0  | 
                 && (pPT->bFirst==0 || iPos==0)  | 
 
| 
 | 
 0  | 
 0  | 
                 && (pPT->bFirst==0 || iPos==0)  | 
 
| 
173816
 | 
 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
 | 
 
| 
173817
 | 
 0  | 
 0  | 
                 && (0==memcmp(zToken, pPT->z, pPT->n))  | 
 
| 
173823
 | 
 0  | 
 0  | 
         if( pTC ) pModule->xClose(pTC);  | 
 
| 
173824
 | 
 0  | 
 0  | 
         if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
173828
 | 
 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){  | 
 
| 
173829
 | 
 0  | 
 0  | 
       if( pDef->pList ){  | 
 
| 
173850
 | 
 0  | 
 0  | 
   if( p->pList==0 ){  | 
 
| 
173855
 | 
 0  | 
 0  | 
   if( !pRet ) return SQLITE_NOMEM;  | 
 
| 
173875
 | 
 0  | 
 0  | 
   if( !pDeferred ){  | 
 
| 
173906
 | 
 0  | 
 0  | 
   if( bFound && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( bFound && rc==SQLITE_OK ){  | 
 
| 
173909
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
173910
 | 
 0  | 
 0  | 
       if( isEmpty ){  | 
 
| 
173919
 | 
 0  | 
 0  | 
         if( p->zContentTbl==0 ){  | 
 
| 
173922
 | 
 0  | 
 0  | 
         if( p->bHasDocsize ){  | 
 
| 
173972
 | 
 28  | 
 0  | 
   if( nArg>1   | 
 
| 
173973
 | 
 28  | 
 0  | 
    && sqlite3_value_type(apVal[0])==SQLITE_NULL   | 
 
| 
173974
 | 
 0  | 
 28  | 
    && sqlite3_value_type(apVal[p->nColumn+2])!=SQLITE_NULL   | 
 
| 
173980
 | 
 28  | 
 0  | 
   if( nArg>1 && sqlite3_value_int(apVal[2 + p->nColumn + 2])<0 ){  | 
 
| 
 | 
 0  | 
 28  | 
   if( nArg>1 && sqlite3_value_int(apVal[2 + p->nColumn + 2])<0 ){  | 
 
| 
173987
 | 
 0  | 
 28  | 
   if( aSzDel==0 ){  | 
 
| 
173995
 | 
 0  | 
 28  | 
   if( rc!=SQLITE_OK ) goto update_out;  | 
 
| 
174006
 | 
 28  | 
 0  | 
   if( nArg>1 && p->zContentTbl==0 ){  | 
 
| 
 | 
 25  | 
 3  | 
   if( nArg>1 && p->zContentTbl==0 ){  | 
 
| 
174009
 | 
 25  | 
 0  | 
     if( sqlite3_value_type(pNewRowid)==SQLITE_NULL ){  | 
 
| 
174015
 | 
 0  | 
 0  | 
      || sqlite3_value_int64(apVal[0])!=sqlite3_value_int64(pNewRowid)  | 
 
| 
174034
 | 
 0  | 
 0  | 
       if( sqlite3_vtab_on_conflict(p->db)==SQLITE_REPLACE ){  | 
 
| 
174042
 | 
 0  | 
 28  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
174047
 | 
 0  | 
 28  | 
   if( sqlite3_value_type(apVal[0])!=SQLITE_NULL ){  | 
 
| 
174053
 | 
 28  | 
 0  | 
   if( nArg>1 && rc==SQLITE_OK ){  | 
 
| 
 | 
 28  | 
 0  | 
   if( nArg>1 && rc==SQLITE_OK ){  | 
 
| 
174055
 | 
 28  | 
 0  | 
     if( bInsertDone==0 ){  | 
 
| 
174057
 | 
 0  | 
 28  | 
       if( rc==SQLITE_CONSTRAINT && p->zContentTbl==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_CONSTRAINT && p->zContentTbl==0 ){  | 
 
| 
174061
 | 
 28  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
174064
 | 
 28  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
174068
 | 
 16  | 
 12  | 
     if( p->bHasDocsize ){  | 
 
| 
174074
 | 
 16  | 
 12  | 
   if( p->bFts4 ){  | 
 
| 
174092
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
174094
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK || rc==SQLITE_DONE ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK || rc==SQLITE_DONE ){  | 
 
| 
174096
 | 
 0  | 
 0  | 
       if( rc2!=SQLITE_OK ) rc = rc2;  | 
 
| 
174246
 | 
 0  | 
 0  | 
   if( pRet ){  | 
 
| 
174265
 | 
 0  | 
 0  | 
   if( (u32*)p==&pBuf->aMatchinfo[1] ){  | 
 
| 
174271
 | 
 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 ){  | 
 
| 
174280
 | 
 0  | 
 0  | 
   if( p->aRef[1]==0 ){  | 
 
| 
174285
 | 
 0  | 
 0  | 
   else if( p->aRef[2]==0 ){  | 
 
| 
174291
 | 
 0  | 
 0  | 
     if( aOut ){  | 
 
| 
174293
 | 
 0  | 
 0  | 
       if( p->bGlobal ) memcpy(aOut, &p->aMatchinfo[1], p->nElem*sizeof(u32));  | 
 
| 
174310
 | 
 0  | 
 102  | 
   if( p ){  | 
 
| 
174313
 | 
 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 ){  | 
 
| 
174346
 | 
 0  | 
 0  | 
   *pp += fts3GetVarint32(*pp, &iVal);  | 
 
| 
174362
 | 
 0  | 
 0  | 
   if( eType!=FTSQUERY_PHRASE ){  | 
 
| 
174365
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && eType!=FTSQUERY_NOT ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && eType!=FTSQUERY_NOT ){  | 
 
| 
174432
 | 
 0  | 
 0  | 
   if( pnPhrase ) *pnPhrase = sCtx.nPhrase;  | 
 
| 
174433
 | 
 0  | 
 0  | 
   if( pnToken ) *pnToken = sCtx.nToken;  | 
 
| 
174455
 | 
 0  | 
 0  | 
   if( pIter ){  | 
 
| 
174458
 | 
 0  | 
 0  | 
     while( iIter
 | 
 
| 
174459
 | 
 0  | 
 0  | 
       if( 0==(*pIter & 0xFE) ){  | 
 
| 
174478
 | 
 0  | 
 0  | 
   if( pIter->iCurrent<0 ){  | 
 
| 
174488
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
174496
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
174498
 | 
 0  | 
 0  | 
       if( pPhrase->pHead && pPhrase->iHead
 | 
 
| 
 | 
 0  | 
 0  | 
       if( pPhrase->pHead && pPhrase->iHead
 | 
 
| 
174502
 | 
 0  | 
 0  | 
     if( iEnd==0x7FFFFFFF ){  | 
 
| 
174507
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
174535
 | 
 0  | 
 0  | 
   for(i=0; inPhrase; i++){  | 
 
| 
174537
 | 
 0  | 
 0  | 
     if( pPhrase->pTail ){  | 
 
| 
174541
 | 
 0  | 
 0  | 
       while( iCsr<(iStart+pIter->nSnippet) ){  | 
 
| 
174546
 | 
 0  | 
 0  | 
         if( (mCover|mCovered)&mPhrase ){  | 
 
| 
174553
 | 
 0  | 
 0  | 
         for(j=0; jnToken; j++){  | 
 
| 
174557
 | 
 0  | 
 0  | 
         if( 0==(*pCsr & 0x0FE) ) break;  | 
 
| 
174583
 | 
 0  | 
 0  | 
   if( pCsr ){  | 
 
| 
174638
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
174647
 | 
 0  | 
 0  | 
   if( !sIter.aPhrase ){  | 
 
| 
174661
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
174664
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
174665
 | 
 0  | 
 0  | 
       if( sIter.aPhrase[i].pHead ){  | 
 
| 
174674
 | 
 0  | 
 0  | 
     while( !fts3SnippetNextCandidate(&sIter) ){  | 
 
| 
174681
 | 
 0  | 
 0  | 
       if( iScore>iBestScore ){  | 
 
| 
174707
 | 
 0  | 
 0  | 
   if( nAppend<0 ){  | 
 
| 
174715
 | 
 0  | 
 0  | 
   if( pStr->n+nAppend+1>=pStr->nAlloc ){  | 
 
| 
174718
 | 
 0  | 
 0  | 
     if( !zNew ){  | 
 
| 
174765
 | 
 0  | 
 0  | 
   if( hlmask ){  | 
 
| 
174770
 | 
 0  | 
 0  | 
     for(nLeft=0; !(hlmask & ((u64)1 << nLeft)); nLeft++);  | 
 
| 
174771
 | 
 0  | 
 0  | 
     for(nRight=0; !(hlmask & ((u64)1 << (nSnippet-1-nRight))); nRight++);  | 
 
| 
174781
 | 
 0  | 
 0  | 
     if( nDesired>0 ){  | 
 
| 
174793
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
174796
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK && iCurrent<(nSnippet+nDesired) ){  | 
 
| 
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK && iCurrent<(nSnippet+nDesired) ){  | 
 
| 
174801
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK && rc!=SQLITE_DONE ){ return rc; }  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK && rc!=SQLITE_DONE ){ return rc; }  | 
 
| 
174805
 | 
 0  | 
 0  | 
       if( nShift>0 ){  | 
 
| 
174843
 | 
 0  | 
 0  | 
   if( zDoc==0 ){  | 
 
| 
174844
 | 
 0  | 
 0  | 
     if( sqlite3_column_type(pCsr->pStmt, iCol)!=SQLITE_NULL ){  | 
 
| 
174854
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
174858
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK ){  | 
 
| 
174877
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
174878
 | 
 0  | 
 0  | 
       if( rc==SQLITE_DONE ){  | 
 
| 
174887
 | 
 0  | 
 0  | 
     if( iCurrent
 | 
 
| 
174889
 | 
 0  | 
 0  | 
     if( !isShiftDone ){  | 
 
| 
174900
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
174901
 | 
 0  | 
 0  | 
         if( iPos>0 || iFragment>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( iPos>0 || iFragment>0 ){  | 
 
| 
174903
 | 
 0  | 
 0  | 
         }else if( iBegin ){  | 
 
| 
174907
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK || iCurrent
 | 
 
| 
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK || iCurrent
 | 
 
| 
174910
 | 
 0  | 
 0  | 
     if( iCurrent>=(iPos+nSnippet) ){  | 
 
| 
174911
 | 
 0  | 
 0  | 
       if( isLast ){  | 
 
| 
174920
 | 
 0  | 
 0  | 
     if( iCurrent>iPos ) rc = fts3StringAppend(pOut, &zDoc[iEnd], iBegin-iEnd);  | 
 
| 
174921
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && isHighlight ) rc = fts3StringAppend(pOut, zOpen, -1);  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && isHighlight ) rc = fts3StringAppend(pOut, zOpen, -1);  | 
 
| 
174922
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = fts3StringAppend(pOut, &zDoc[iBegin], iFin-iBegin);  | 
 
| 
174923
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && isHighlight ) rc = fts3StringAppend(pOut, zClose, -1);  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && isHighlight ) rc = fts3StringAppend(pOut, zClose, -1);  | 
 
| 
174952
 | 
 0  | 
 0  | 
   while( 0xFE & (*pEnd | c) ){  | 
 
| 
174954
 | 
 0  | 
 0  | 
     if( !c ) nEntry++;  | 
 
| 
174975
 | 
 0  | 
 0  | 
   if( p->flag==FTS3_MATCHINFO_LHITS ){  | 
 
| 
174983
 | 
 0  | 
 0  | 
     if( (pPhrase->iColumn>=pTab->nColumn || pPhrase->iColumn==iCol) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( (pPhrase->iColumn>=pTab->nColumn || pPhrase->iColumn==iCol) ){  | 
 
| 
174984
 | 
 0  | 
 0  | 
       if( p->flag==FTS3_MATCHINFO_LHITS ){  | 
 
| 
174986
 | 
 0  | 
 0  | 
       }else if( nHit ){  | 
 
| 
174991
 | 
 0  | 
 0  | 
     if( *pIter!=0x01 ) break;  | 
 
| 
174993
 | 
 0  | 
 0  | 
     pIter += fts3GetVarint32(pIter, &iCol);  | 
 
| 
175005
 | 
 0  | 
 0  | 
   if( pExpr->bEof==0 && pExpr->iDocid==p->pCursor->iPrevId ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pExpr->bEof==0 && pExpr->iDocid==p->pCursor->iPrevId ){  | 
 
| 
175006
 | 
 0  | 
 0  | 
     if( pExpr->pLeft ){  | 
 
| 
175068
 | 
 0  | 
 0  | 
   for(i=0; inCol && rc==SQLITE_OK; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; inCol && rc==SQLITE_OK; i++){  | 
 
| 
175071
 | 
 0  | 
 0  | 
     if( pCsr ){  | 
 
| 
175086
 | 
 0  | 
 0  | 
   if( (cArg==FTS3_MATCHINFO_NPHRASE)  | 
 
| 
175087
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_NCOL)  | 
 
| 
175088
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_NDOC && pTab->bFts4)  | 
 
| 
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_NDOC && pTab->bFts4)  | 
 
| 
175089
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_AVGLENGTH && pTab->bFts4)  | 
 
| 
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_AVGLENGTH && pTab->bFts4)  | 
 
| 
175090
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_LENGTH && pTab->bHasDocsize)  | 
 
| 
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_LENGTH && pTab->bHasDocsize)  | 
 
| 
175091
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_LCS)  | 
 
| 
175092
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_HITS)  | 
 
| 
175093
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_LHITS)  | 
 
| 
175094
 | 
 0  | 
 0  | 
    || (cArg==FTS3_MATCHINFO_LHITS_BM)  | 
 
| 
175145
 | 
 0  | 
 0  | 
   if( !*ppStmt ){  | 
 
| 
175147
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
175154
 | 
 0  | 
 0  | 
   if( nDoc==0 ) return FTS_CORRUPT_VTAB;  | 
 
| 
175157
 | 
 0  | 
 0  | 
   if( paLen ) *paLen = a;  | 
 
| 
175202
 | 
 0  | 
 0  | 
   if( iRead==0 || iRead==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( iRead==0 || iRead==1 ){  | 
 
| 
175234
 | 
 0  | 
 0  | 
   if( !aIter ) return SQLITE_NOMEM;  | 
 
| 
175238
 | 
 0  | 
 0  | 
   for(i=0; inPhrase; i++){  | 
 
| 
175244
 | 
 0  | 
 0  | 
   for(iCol=0; iColnCol; iCol++){  | 
 
| 
175248
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
175252
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
175253
 | 
 0  | 
 0  | 
       if( pIt->pRead ){  | 
 
| 
175260
 | 
 0  | 
 0  | 
     while( nLive>0 ){  | 
 
| 
175264
 | 
 0  | 
 0  | 
       for(i=0; inPhrase; i++){  | 
 
| 
175266
 | 
 0  | 
 0  | 
         if( pIter->pRead==0 ){  | 
 
| 
175270
 | 
 0  | 
 0  | 
           if( pAdv==0 || pIter->iPosiPos ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( pAdv==0 || pIter->iPosiPos ){  | 
 
| 
175273
 | 
 0  | 
 0  | 
           if( nThisLcs==0 || pIter->iPos==pIter[-1].iPos ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( nThisLcs==0 || pIter->iPos==pIter[-1].iPos ){  | 
 
| 
175278
 | 
 0  | 
 0  | 
           if( nThisLcs>nLcs ) nLcs = nThisLcs;  | 
 
| 
175281
 | 
 0  | 
 0  | 
       if( fts3LcsIteratorAdvance(pAdv) ) nLive--;  | 
 
| 
175319
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && zArg[i]; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && zArg[i]; i++){  | 
 
| 
175323
 | 
 0  | 
 0  | 
         if( bGlobal ) pInfo->aMatchinfo[0] = pInfo->nPhrase;  | 
 
| 
175327
 | 
 0  | 
 0  | 
         if( bGlobal ) pInfo->aMatchinfo[0] = pInfo->nCol;  | 
 
| 
175331
 | 
 0  | 
 0  | 
         if( bGlobal ){  | 
 
| 
175339
 | 
 0  | 
 0  | 
         if( bGlobal ){  | 
 
| 
175344
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
175346
 | 
 0  | 
 0  | 
             for(iCol=0; iColnCol; iCol++){  | 
 
| 
175360
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
175363
 | 
 0  | 
 0  | 
           for(iCol=0; iColnCol; iCol++){  | 
 
| 
175375
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
175393
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ) break;  | 
 
| 
175394
 | 
 0  | 
 0  | 
         if( bGlobal ){  | 
 
| 
175395
 | 
 0  | 
 0  | 
           if( pCsr->pDeferred ){  | 
 
| 
175397
 | 
 0  | 
 0  | 
             if( rc!=SQLITE_OK ) break;  | 
 
| 
175401
 | 
 0  | 
 0  | 
           if( rc!=SQLITE_OK ) break;  | 
 
| 
175440
 | 
 0  | 
 0  | 
   if( pCsr->pMIBuffer && strcmp(pCsr->pMIBuffer->zMatchinfo, zArg) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pCsr->pMIBuffer && strcmp(pCsr->pMIBuffer->zMatchinfo, zArg) ){  | 
 
| 
175450
 | 
 0  | 
 0  | 
   if( pCsr->pMIBuffer==0 ){  | 
 
| 
175459
 | 
 0  | 
 0  | 
     for(i=0; zArg[i]; i++){  | 
 
| 
175461
 | 
 0  | 
 0  | 
       if( fts3MatchinfoCheck(pTab, zArg[i], &zErr) ){  | 
 
| 
175471
 | 
 0  | 
 0  | 
     if( !pCsr->pMIBuffer ) rc = SQLITE_NOMEM;  | 
 
| 
175477
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
175479
 | 
 0  | 
 0  | 
     if( xDestroyOut==0 ){  | 
 
| 
175484
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
175488
 | 
 0  | 
 0  | 
     if( bGlobal ){  | 
 
| 
175493
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
175495
 | 
 0  | 
 0  | 
     if( xDestroyOut ) xDestroyOut(aOut);  | 
 
| 
175531
 | 
 0  | 
 0  | 
   if( !pCsr->pExpr ){  | 
 
| 
175542
 | 
 0  | 
 0  | 
     if( nToken>=0 ){  | 
 
| 
175548
 | 
 0  | 
 0  | 
     for(iSnip=0; iSnip
 | 
 
| 
175559
 | 
 0  | 
 0  | 
       for(iRead=0; iReadnColumn; iRead++){  | 
 
| 
175562
 | 
 0  | 
 0  | 
         if( iCol>=0 && iRead!=iCol ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
         if( iCol>=0 && iRead!=iCol ) continue;  | 
 
| 
175566
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
175569
 | 
 0  | 
 0  | 
         if( iS>iBestScore ){  | 
 
| 
175582
 | 
 0  | 
 0  | 
     if( mSeen==mCovered || nSnippet==SizeofArray(aSnippet) ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( mSeen==mCovered || nSnippet==SizeofArray(aSnippet) ) break;  | 
 
| 
175587
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
175595
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
175635
 | 
 0  | 
 0  | 
   if( pList ){  | 
 
| 
175640
 | 
 0  | 
 0  | 
   for(iTerm=0; iTerm
 | 
 
| 
175665
 | 
 0  | 
 0  | 
   if( !pCsr->pExpr ){  | 
 
| 
175675
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ) goto offsets_out;  | 
 
| 
175679
 | 
 0  | 
 0  | 
   if( 0==sCtx.aTerm ){  | 
 
| 
175689
 | 
 0  | 
 0  | 
   for(iCol=0; iColnColumn; iCol++){  | 
 
| 
175715
 | 
 0  | 
 0  | 
     if( zDoc==0 ){  | 
 
| 
175716
 | 
 0  | 
 0  | 
       if( sqlite3_column_type(pCsr->pStmt, iCol+1)==SQLITE_NULL ){  | 
 
| 
175727
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto offsets_out;  | 
 
| 
175730
 | 
 0  | 
 0  | 
     while( rc==SQLITE_OK ){  | 
 
| 
175735
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
175737
 | 
 0  | 
 0  | 
         if( pT->pList && (pT->iPos-pT->iOff)
 | 
 
| 
 | 
 0  | 
 0  | 
         if( pT->pList && (pT->iPos-pT->iOff)
 | 
 
| 
175743
 | 
 0  | 
 0  | 
       if( !pTerm ){  | 
 
| 
175748
 | 
 0  | 
 0  | 
         if( 0==(0xFE&*pTerm->pList) ){  | 
 
| 
175753
 | 
 0  | 
 0  | 
         while( rc==SQLITE_OK && iCurrent
 | 
 
| 
 | 
 0  | 
 0  | 
         while( rc==SQLITE_OK && iCurrent
 | 
 
| 
175756
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
175762
 | 
 0  | 
 0  | 
         }else if( rc==SQLITE_DONE && pTab->zContentTbl==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         }else if( rc==SQLITE_DONE && pTab->zContentTbl==0 ){  | 
 
| 
175767
 | 
 0  | 
 0  | 
     if( rc==SQLITE_DONE ){  | 
 
| 
175772
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) goto offsets_out;  | 
 
| 
175779
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
175799
 | 
 0  | 
 0  | 
   if( zArg ){  | 
 
| 
175805
 | 
 0  | 
 0  | 
   if( !pCsr->pExpr ){  | 
 
| 
175923
 | 
 0  | 
 0  | 
   if( pTokenizer ){  | 
 
| 
175962
 | 
 0  | 
 0  | 
   while( z
 | 
 
| 
175963
 | 
 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);  | 
 
| 
175965
 | 
 0  | 
 0  | 
     if( sqlite3FtsUnicodeIsalnum((int)iCode)!=bAlnum   | 
 
| 
175966
 | 
 0  | 
 0  | 
      && sqlite3FtsUnicodeIsdiacritic((int)iCode)==0   | 
 
| 
175972
 | 
 0  | 
 0  | 
   if( nEntry ){  | 
 
| 
175977
 | 
 0  | 
 0  | 
     if( aNew==0 ) return SQLITE_NOMEM;  | 
 
| 
175981
 | 
 0  | 
 0  | 
     while( z
 | 
 
| 
175982
 | 
 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);  | 
 
| 
175983
 | 
 0  | 
 0  | 
       if( sqlite3FtsUnicodeIsalnum((int)iCode)!=bAlnum   | 
 
| 
175984
 | 
 0  | 
 0  | 
        && sqlite3FtsUnicodeIsdiacritic((int)iCode)==0  | 
 
| 
175987
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
175988
 | 
 0  | 
 0  | 
         for(j=nNew; j>i; j--) aNew[j] = aNew[j-1];  | 
 
| 
176004
 | 
 0  | 
 0  | 
   if( p->nException>0 ){  | 
 
| 
176009
 | 
 0  | 
 0  | 
     while( iHi>=iLo ){  | 
 
| 
176011
 | 
 0  | 
 0  | 
       if( iCode==a[iTest] ){  | 
 
| 
176013
 | 
 0  | 
 0  | 
       }else if( iCode>a[iTest] ){  | 
 
| 
176046
 | 
 0  | 
 0  | 
   if( pNew==NULL ) return SQLITE_NOMEM;  | 
 
| 
176050
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
176054
 | 
 0  | 
 0  | 
     if( n==19 && memcmp("remove_diacritics=1", z, 19)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( n==19 && memcmp("remove_diacritics=1", z, 19)==0 ){  | 
 
| 
176057
 | 
 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 ){  | 
 
| 
176060
 | 
 0  | 
 0  | 
     else if( n>=11 && memcmp("tokenchars=", z, 11)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     else if( n>=11 && memcmp("tokenchars=", z, 11)==0 ){  | 
 
| 
176063
 | 
 0  | 
 0  | 
     else if( n>=11 && memcmp("separators=", z, 11)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     else if( n>=11 && memcmp("separators=", z, 11)==0 ){  | 
 
| 
176072
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
176095
 | 
 0  | 
 0  | 
   if( pCsr==0 ){  | 
 
| 
176101
 | 
 0  | 
 0  | 
   if( aInput==0 ){  | 
 
| 
176103
 | 
 0  | 
 0  | 
   }else if( nInput<0 ){  | 
 
| 
176149
 | 
 0  | 
 0  | 
   while( z
 | 
 
| 
176150
 | 
 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);  | 
 
| 
176151
 | 
 0  | 
 0  | 
     if( unicodeIsAlnum(p, (int)iCode) ) break;  | 
 
| 
176154
 | 
 0  | 
 0  | 
   if( zStart>=zTerm ) return SQLITE_DONE;  | 
 
| 
176161
 | 
 0  | 
 0  | 
     if( (zOut-pCsr->zToken)>=(pCsr->nAlloc-4) ){  | 
 
| 
176163
 | 
 0  | 
 0  | 
       if( !zNew ) return SQLITE_NOMEM;  | 
 
| 
176172
 | 
 0  | 
 0  | 
     if( iOut ){  | 
 
| 
176173
 | 
 0  | 
 0  | 
       WRITE_UTF8(zOut, iOut);  | 
 
| 
 | 
 0  | 
 0  | 
       WRITE_UTF8(zOut, iOut);  | 
 
| 
 | 
 0  | 
 0  | 
       WRITE_UTF8(zOut, iOut);  | 
 
| 
176177
 | 
 0  | 
 0  | 
     if( z>=zTerm ) break;  | 
 
| 
176178
 | 
 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);  | 
 
| 
176180
 | 
 0  | 
 0  | 
        || sqlite3FtsUnicodeIsdiacritic((int)iCode)  | 
 
| 
176181
 | 
 0  | 
 0  | 
   );  | 
 
| 
176344
 | 
 0  | 
 0  | 
   if( (unsigned int)c<128 ){  | 
 
| 
176346
 | 
 0  | 
 0  | 
   }else if( (unsigned int)c<(1<<22) ){  | 
 
| 
176351
 | 
 0  | 
 0  | 
     while( iHi>=iLo ){  | 
 
| 
176353
 | 
 0  | 
 0  | 
       if( key >= aEntry[iTest] ){  | 
 
| 
176408
 | 
 0  | 
 0  | 
   while( iHi>=iLo ){  | 
 
| 
176410
 | 
 0  | 
 0  | 
     if( key >= aDia[iTest] ){  | 
 
| 
176418
 | 
 0  | 
 0  | 
   return ((c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c : (int)aChar[iRes]);  | 
 
| 
176429
 | 
 0  | 
 0  | 
   if( c<768 || c>817 ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
   if( c<768 || c>817 ) return 0;  | 
 
| 
176430
 | 
 0  | 
 0  | 
   return (c < 768+32) ?  | 
 
| 
176541
 | 
 0  | 
 0  | 
   if( c<128 ){  | 
 
| 
176542
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ) ret = c + ('a' - 'A');  | 
 
| 
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ) ret = c + ('a' - 'A');  | 
 
| 
176543
 | 
 0  | 
 0  | 
   }else if( c<65536 ){  | 
 
| 
176550
 | 
 0  | 
 0  | 
     while( iHi>=iLo ){  | 
 
| 
176553
 | 
 0  | 
 0  | 
       if( cmp>=0 ){  | 
 
| 
176563
 | 
 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)) ){  | 
 
| 
176568
 | 
 0  | 
 0  | 
     if( bRemoveDiacritic ) ret = remove_diacritic(ret);  | 
 
| 
176571
 | 
 0  | 
 0  | 
   else if( c>=66560 && c<66600 ){  | 
 
| 
 | 
 0  | 
 0  | 
   else if( c>=66560 && c<66600 ){  | 
 
| 
176794
 | 
 0  | 
 0  | 
   if( !p->bStatic ) sqlite3_free(p->zBuf);  | 
 
| 
176811
 | 
 0  | 
 0  | 
   u64 nTotal = NnAlloc ? p->nAlloc*2 : p->nAlloc+N+10;  | 
 
| 
176813
 | 
 0  | 
 0  | 
   if( p->bStatic ){  | 
 
| 
176814
 | 
 0  | 
 0  | 
     if( p->bErr ) return 1;  | 
 
| 
176816
 | 
 0  | 
 0  | 
     if( zNew==0 ){  | 
 
| 
176825
 | 
 0  | 
 0  | 
     if( zNew==0 ){  | 
 
| 
176838
 | 
 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;  | 
 
| 
176847
 | 
 0  | 
 0  | 
   if( (p->nUsed + N >= p->nAlloc) && jsonGrow(p, N) ) return;  | 
 
| 
 | 
 0  | 
 0  | 
   if( (p->nUsed + N >= p->nAlloc) && jsonGrow(p, N) ) return;  | 
 
| 
176857
 | 
 0  | 
 0  | 
   if( p->nUsed>=p->nAlloc && jsonGrow(p,1)!=0 ) return;  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->nUsed>=p->nAlloc && jsonGrow(p,1)!=0 ) return;  | 
 
| 
176866
 | 
 0  | 
 0  | 
   if( p->nUsed==0 ) return;  | 
 
| 
176868
 | 
 0  | 
 0  | 
   if( c!='[' && c!='{' ) jsonAppendChar(p, ',');  | 
 
| 
 | 
 0  | 
 0  | 
   if( c!='[' && c!='{' ) jsonAppendChar(p, ',');  | 
 
| 
176878
 | 
 0  | 
 0  | 
   if( (N+p->nUsed+2 >= p->nAlloc) && jsonGrow(p,N+2)!=0 ) return;  | 
 
| 
 | 
 0  | 
 0  | 
   if( (N+p->nUsed+2 >= p->nAlloc) && jsonGrow(p,N+2)!=0 ) return;  | 
 
| 
176880
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
176882
 | 
 0  | 
 0  | 
     if( c=='"' || c=='\\' ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( c=='"' || c=='\\' ){  | 
 
| 
176884
 | 
 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;  | 
 
| 
176886
 | 
 0  | 
 0  | 
     }else if( c<=0x1f ){  | 
 
| 
176897
 | 
 0  | 
 0  | 
       if( aSpecial[c] ){  | 
 
| 
176901
 | 
 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;  | 
 
| 
176938
 | 
 0  | 
 0  | 
       if( sqlite3_value_subtype(pValue)==JSON_SUBTYPE ){  | 
 
| 
176946
 | 
 0  | 
 0  | 
       if( p->bErr==0 ){  | 
 
| 
176960
 | 
 0  | 
 0  | 
   if( p->bErr==0 ){  | 
 
| 
176961
 | 
 0  | 
 0  | 
     sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed,   | 
 
| 
176983
 | 
 0  | 
 0  | 
   return pNode->eType>=JSON_ARRAY ? pNode->n+1 : 1;  | 
 
| 
177017
 | 
 0  | 
 0  | 
   if( pNode->jnFlags & (JNODE_REPLACE|JNODE_PATCH) ){  | 
 
| 
177018
 | 
 0  | 
 0  | 
     if( pNode->jnFlags & JNODE_REPLACE ){  | 
 
| 
177039
 | 
 0  | 
 0  | 
       if( pNode->jnFlags & JNODE_RAW ){  | 
 
| 
177054
 | 
 0  | 
 0  | 
         while( j<=pNode->n ){  | 
 
| 
177055
 | 
 0  | 
 0  | 
           if( (pNode[j].jnFlags & JNODE_REMOVE)==0 ){  | 
 
| 
177061
 | 
 0  | 
 0  | 
         if( (pNode->jnFlags & JNODE_APPEND)==0 ) break;  | 
 
| 
177072
 | 
 0  | 
 0  | 
         while( j<=pNode->n ){  | 
 
| 
177073
 | 
 0  | 
 0  | 
           if( (pNode[j+1].jnFlags & JNODE_REMOVE)==0 ){  | 
 
| 
177081
 | 
 0  | 
 0  | 
         if( (pNode->jnFlags & JNODE_APPEND)==0 ) break;  | 
 
| 
177131
 | 
 0  | 
 0  | 
       if( z[0]=='-' ){ z++; }  | 
 
| 
177132
 | 
 0  | 
 0  | 
       while( z[0]>='0' && z[0]<='9' ){  | 
 
| 
 | 
 0  | 
 0  | 
       while( z[0]>='0' && z[0]<='9' ){  | 
 
| 
177134
 | 
 0  | 
 0  | 
         if( i>=LARGEST_INT64/10 ){  | 
 
| 
177135
 | 
 0  | 
 0  | 
           if( i>LARGEST_INT64/10 ) goto int_as_real;  | 
 
| 
177136
 | 
 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;  | 
 
| 
177137
 | 
 0  | 
 0  | 
           if( v==9 ) goto int_as_real;  | 
 
| 
177138
 | 
 0  | 
 0  | 
           if( v==8 ){  | 
 
| 
177139
 | 
 0  | 
 0  | 
             if( pNode->u.zJContent[0]=='-' ){  | 
 
| 
177149
 | 
 0  | 
 0  | 
       if( pNode->u.zJContent[0]=='-' ){ i = -i; }  | 
 
| 
177176
 | 
 0  | 
 0  | 
       if( (pNode->jnFlags & JNODE_ESCAPE)==0 ){  | 
 
| 
177188
 | 
 0  | 
 0  | 
         if( zOut==0 ){  | 
 
| 
177192
 | 
 0  | 
 0  | 
         for(i=1, j=0; i
 | 
 
| 
177194
 | 
 0  | 
 0  | 
           if( c!='\\' ){  | 
 
| 
177198
 | 
 0  | 
 0  | 
             if( c=='u' ){  | 
 
| 
177200
 | 
 0  | 
 0  | 
               for(k=0; k<4; i++, k++){  | 
 
| 
177204
 | 
 0  | 
 0  | 
                 if( c<='9' ) v = v*16 + c - '0';  | 
 
| 
177205
 | 
 0  | 
 0  | 
                 else if( c<='F' ) v = v*16 + c - 'A' + 10;  | 
 
| 
177208
 | 
 0  | 
 0  | 
               if( v==0 ) break;  | 
 
| 
177209
 | 
 0  | 
 0  | 
               if( v<=0x7f ){  | 
 
| 
177211
 | 
 0  | 
 0  | 
               }else if( v<=0x7ff ){  | 
 
| 
177220
 | 
 0  | 
 0  | 
               if( c=='b' ){  | 
 
| 
177222
 | 
 0  | 
 0  | 
               }else if( c=='f' ){  | 
 
| 
177224
 | 
 0  | 
 0  | 
               }else if( c=='n' ){  | 
 
| 
177226
 | 
 0  | 
 0  | 
               }else if( c=='r' ){  | 
 
| 
177228
 | 
 0  | 
 0  | 
               }else if( c=='t' ){  | 
 
| 
177273
 | 
 0  | 
 0  | 
   if( pParse->oom ) return -1;  | 
 
| 
177276
 | 
 0  | 
 0  | 
   if( pNew==0 ){  | 
 
| 
177298
 | 
 0  | 
 0  | 
   if( pParse->nNode>=pParse->nAlloc ){  | 
 
| 
177314
 | 
 0  | 
 0  | 
   for(i=0; i<4; i++) if( !safe_isxdigit(z[i]) ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; i<4; i++) if( !safe_isxdigit(z[i]) ) return 0;  | 
 
| 
177333
 | 
 0  | 
 0  | 
   while( safe_isspace(z[i]) ){ i++; }  | 
 
| 
177334
 | 
 0  | 
 0  | 
   if( (c = z[i])=='{' ){  | 
 
| 
177337
 | 
 0  | 
 0  | 
     if( iThis<0 ) return -1;  | 
 
| 
177339
 | 
 0  | 
 0  | 
       while( safe_isspace(z[j]) ){ j++; }  | 
 
| 
177340
 | 
 0  | 
 0  | 
       if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1;  | 
 
| 
177342
 | 
 0  | 
 0  | 
       if( x<0 ){  | 
 
| 
177344
 | 
 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;  | 
 
| 
177347
 | 
 0  | 
 0  | 
       if( pParse->oom ) return -1;  | 
 
| 
177349
 | 
 0  | 
 0  | 
       if( pNode->eType!=JSON_STRING ) return -1;  | 
 
| 
177352
 | 
 0  | 
 0  | 
       while( safe_isspace(z[j]) ){ j++; }  | 
 
| 
177353
 | 
 0  | 
 0  | 
       if( z[j]!=':' ) return -1;  | 
 
| 
177357
 | 
 0  | 
 0  | 
       if( x<0 ) return -1;  | 
 
| 
177359
 | 
 0  | 
 0  | 
       while( safe_isspace(z[j]) ){ j++; }  | 
 
| 
177361
 | 
 0  | 
 0  | 
       if( c==',' ) continue;  | 
 
| 
177362
 | 
 0  | 
 0  | 
       if( c!='}' ) return -1;  | 
 
| 
177367
 | 
 0  | 
 0  | 
   }else if( c=='[' ){  | 
 
| 
177370
 | 
 0  | 
 0  | 
     if( iThis<0 ) return -1;  | 
 
| 
177372
 | 
 0  | 
 0  | 
       while( safe_isspace(z[j]) ){ j++; }  | 
 
| 
177373
 | 
 0  | 
 0  | 
       if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1;  | 
 
| 
177376
 | 
 0  | 
 0  | 
       if( x<0 ){  | 
 
| 
177377
 | 
 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;  | 
 
| 
177381
 | 
 0  | 
 0  | 
       while( safe_isspace(z[j]) ){ j++; }  | 
 
| 
177383
 | 
 0  | 
 0  | 
       if( c==',' ) continue;  | 
 
| 
177384
 | 
 0  | 
 0  | 
       if( c!=']' ) return -1;  | 
 
| 
177389
 | 
 0  | 
 0  | 
   }else if( c=='"' ){  | 
 
| 
177395
 | 
 0  | 
 0  | 
       if( (c & ~0x1f)==0 ){  | 
 
| 
177399
 | 
 0  | 
 0  | 
       if( c=='\\' ){  | 
 
| 
177401
 | 
 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'  | 
 
| 
177402
 | 
 0  | 
 0  | 
            || c=='n' || c=='r' || c=='t'  | 
 
| 
 | 
 0  | 
 0  | 
            || c=='n' || c=='r' || c=='t'  | 
 
| 
 | 
 0  | 
 0  | 
            || c=='n' || c=='r' || c=='t'  | 
 
| 
177403
 | 
 0  | 
 0  | 
            || (c=='u' && jsonIs4Hex(z+j+1)) ){  | 
 
| 
 | 
 0  | 
 0  | 
            || (c=='u' && jsonIs4Hex(z+j+1)) ){  | 
 
| 
177408
 | 
 0  | 
 0  | 
       }else if( c=='"' ){  | 
 
| 
177414
 | 
 0  | 
 0  | 
     if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags;  | 
 
| 
177416
 | 
 0  | 
 0  | 
   }else if( c=='n'  | 
 
| 
177417
 | 
 0  | 
 0  | 
          && strncmp(z+i,"null",4)==0  | 
 
| 
177418
 | 
 0  | 
 0  | 
          && !safe_isalnum(z[i+4]) ){  | 
 
| 
177421
 | 
 0  | 
 0  | 
   }else if( c=='t'  | 
 
| 
177422
 | 
 0  | 
 0  | 
          && strncmp(z+i,"true",4)==0  | 
 
| 
177423
 | 
 0  | 
 0  | 
          && !safe_isalnum(z[i+4]) ){  | 
 
| 
177426
 | 
 0  | 
 0  | 
   }else if( c=='f'  | 
 
| 
177427
 | 
 0  | 
 0  | 
          && strncmp(z+i,"false",5)==0  | 
 
| 
177428
 | 
 0  | 
 0  | 
          && !safe_isalnum(z[i+5]) ){  | 
 
| 
177431
 | 
 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') ){  | 
 
| 
177436
 | 
 0  | 
 0  | 
     if( c<='0' ){  | 
 
| 
177437
 | 
 0  | 
 0  | 
       j = c=='-' ? i+1 : i;  | 
 
| 
177438
 | 
 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;  | 
 
| 
177443
 | 
 0  | 
 0  | 
       if( c>='0' && c<='9' ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
       if( c>='0' && c<='9' ) continue;  | 
 
| 
177444
 | 
 0  | 
 0  | 
       if( c=='.' ){  | 
 
| 
177445
 | 
 0  | 
 0  | 
         if( z[j-1]=='-' ) return -1;  | 
 
| 
177446
 | 
 0  | 
 0  | 
         if( seenDP ) return -1;  | 
 
| 
177450
 | 
 0  | 
 0  | 
       if( c=='e' || c=='E' ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( c=='e' || c=='E' ){  | 
 
| 
177451
 | 
 0  | 
 0  | 
         if( z[j-1]<'0' ) return -1;  | 
 
| 
177452
 | 
 0  | 
 0  | 
         if( seenE ) return -1;  | 
 
| 
177455
 | 
 0  | 
 0  | 
         if( c=='+' || c=='-' ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( c=='+' || c=='-' ){  | 
 
| 
177459
 | 
 0  | 
 0  | 
         if( c<'0' || c>'9' ) return -1;  | 
 
| 
 | 
 0  | 
 0  | 
         if( c<'0' || c>'9' ) return -1;  | 
 
| 
177464
 | 
 0  | 
 0  | 
     if( z[j-1]<'0' ) return -1;  | 
 
| 
177465
 | 
 0  | 
 0  | 
     jsonParseAddNode(pParse, seenDP ? JSON_REAL : JSON_INT,  | 
 
| 
177468
 | 
 0  | 
 0  | 
   }else if( c=='}' ){  | 
 
| 
177470
 | 
 0  | 
 0  | 
   }else if( c==']' ){  | 
 
| 
177472
 | 
 0  | 
 0  | 
   }else if( c==0 ){  | 
 
| 
177493
 | 
 0  | 
 0  | 
   if( zJson==0 ) return 1;  | 
 
| 
177496
 | 
 0  | 
 0  | 
   if( pParse->oom ) i = -1;  | 
 
| 
177497
 | 
 0  | 
 0  | 
   if( i>0 ){  | 
 
| 
177499
 | 
 0  | 
 0  | 
     while( safe_isspace(zJson[i]) ) i++;  | 
 
| 
177500
 | 
 0  | 
 0  | 
     if( zJson[i] ) i = -1;  | 
 
| 
177502
 | 
 0  | 
 0  | 
   if( i<=0 ){  | 
 
| 
177503
 | 
 0  | 
 0  | 
     if( pCtx!=0 ){  | 
 
| 
177504
 | 
 0  | 
 0  | 
       if( pParse->oom ){  | 
 
| 
177525
 | 
 0  | 
 0  | 
       for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j)){  | 
 
| 
177531
 | 
 0  | 
 0  | 
       for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j+1)+1){  | 
 
| 
177550
 | 
 0  | 
 0  | 
   if( aUp==0 ){  | 
 
| 
177585
 | 
 0  | 
 0  | 
   if( zJson==0 ) return 0;  | 
 
| 
177586
 | 
 0  | 
 0  | 
   for(iKey=0; iKey
 | 
 
| 
177588
 | 
 0  | 
 0  | 
     if( p==0 ){  | 
 
| 
177592
 | 
 0  | 
 0  | 
     if( pMatch==0  | 
 
| 
177593
 | 
 0  | 
 0  | 
      && p->nJson==nJson  | 
 
| 
177594
 | 
 0  | 
 0  | 
      && memcmp(p->zJson,zJson,nJson)==0  | 
 
| 
177598
 | 
 0  | 
 0  | 
     }else if( p->iHold
 | 
 
| 
177602
 | 
 0  | 
 0  | 
     if( p->iHold>iMaxHold ){  | 
 
| 
177606
 | 
 0  | 
 0  | 
   if( pMatch ){  | 
 
| 
177612
 | 
 0  | 
 0  | 
   if( p==0 ){  | 
 
| 
177619
 | 
 0  | 
 0  | 
   if( jsonParse(p, pErrCtx, p->zJson) ){  | 
 
| 
177635
 | 
 0  | 
 0  | 
   if( pNode->jnFlags & JNODE_RAW ){  | 
 
| 
177636
 | 
 0  | 
 0  | 
     if( pNode->n!=nKey ) return 0;  | 
 
| 
177639
 | 
 0  | 
 0  | 
     if( pNode->n!=nKey+2 ) return 0;  | 
 
| 
177666
 | 
 0  | 
 0  | 
   if( zPath[0]==0 ) return pRoot;  | 
 
| 
177667
 | 
 0  | 
 0  | 
   if( zPath[0]=='.' ){  | 
 
| 
177668
 | 
 0  | 
 0  | 
     if( pRoot->eType!=JSON_OBJECT ) return 0;  | 
 
| 
177670
 | 
 0  | 
 0  | 
     if( zPath[0]=='"' ){  | 
 
| 
177672
 | 
 0  | 
 0  | 
       for(i=1; zPath[i] && zPath[i]!='"'; i++){}  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=1; zPath[i] && zPath[i]!='"'; i++){}  | 
 
| 
177674
 | 
 0  | 
 0  | 
       if( zPath[i] ){  | 
 
| 
177682
 | 
 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++){}  | 
 
| 
177685
 | 
 0  | 
 0  | 
     if( nKey==0 ){  | 
 
| 
177691
 | 
 0  | 
 0  | 
       while( j<=pRoot->n ){  | 
 
| 
177692
 | 
 0  | 
 0  | 
         if( jsonLabelCompare(pRoot+j, zKey, nKey) ){  | 
 
| 
177698
 | 
 0  | 
 0  | 
       if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break;  | 
 
| 
177703
 | 
 0  | 
 0  | 
     if( pApnd ){  | 
 
| 
177710
 | 
 0  | 
 0  | 
       if( pParse->oom ) return 0;  | 
 
| 
177711
 | 
 0  | 
 0  | 
       if( pNode ){  | 
 
| 
177719
 | 
 0  | 
 0  | 
   }else if( zPath[0]=='[' && safe_isdigit(zPath[1]) ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( zPath[0]=='[' && safe_isdigit(zPath[1]) ){  | 
 
| 
177720
 | 
 0  | 
 0  | 
     if( pRoot->eType!=JSON_ARRAY ) return 0;  | 
 
| 
177723
 | 
 0  | 
 0  | 
     while( safe_isdigit(zPath[j]) ){  | 
 
| 
177727
 | 
 0  | 
 0  | 
     if( zPath[j]!=']' ){  | 
 
| 
177734
 | 
 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) ){  | 
 
| 
177735
 | 
 0  | 
 0  | 
         if( (pRoot[j].jnFlags & JNODE_REMOVE)==0 ) i--;  | 
 
| 
177738
 | 
 0  | 
 0  | 
       if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break;  | 
 
| 
177743
 | 
 0  | 
 0  | 
     if( j<=pRoot->n ){  | 
 
| 
177746
 | 
 0  | 
 0  | 
     if( i==0 && pApnd ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( i==0 && pApnd ){  | 
 
| 
177751
 | 
 0  | 
 0  | 
       if( pParse->oom ) return 0;  | 
 
| 
177752
 | 
 0  | 
 0  | 
       if( pNode ){  | 
 
| 
177776
 | 
 0  | 
 0  | 
   if( zPath[0]==0 ){  | 
 
| 
177778
 | 
 0  | 
 0  | 
     return pParse->oom ? 0 : &pParse->aNode[pParse->nNode-1];  | 
 
| 
177780
 | 
 0  | 
 0  | 
   if( zPath[0]=='.' ){  | 
 
| 
177782
 | 
 0  | 
 0  | 
   }else if( strncmp(zPath,"[0]",3)==0 ){  | 
 
| 
177787
 | 
 0  | 
 0  | 
   if( pParse->oom ) return 0;  | 
 
| 
177819
 | 
 0  | 
 0  | 
   if( zPath==0 ) return 0;  | 
 
| 
177820
 | 
 0  | 
 0  | 
   if( zPath[0]!='$' ){  | 
 
| 
177826
 | 
 0  | 
 0  | 
   if( zErr==0 ) return pNode;  | 
 
| 
177832
 | 
 0  | 
 0  | 
   if( zMsg ){  | 
 
| 
177863
 | 
 0  | 
 0  | 
   for(i=2; i<=n; i += jsonNodeSize(&pNode[i])+1){  | 
 
| 
177973
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
178001
 | 
 0  | 
 0  | 
   if( p==0 ) return;  | 
 
| 
178003
 | 
 0  | 
 0  | 
   if( argc==2 ){  | 
 
| 
178009
 | 
 0  | 
 0  | 
   if( pNode==0 ){  | 
 
| 
178012
 | 
 0  | 
 0  | 
   if( pNode->eType==JSON_ARRAY ){  | 
 
| 
178014
 | 
 0  | 
 0  | 
     for(i=1; i<=pNode->n; n++){  | 
 
| 
178040
 | 
 0  | 
 0  | 
   if( argc<2 ) return;  | 
 
| 
178042
 | 
 0  | 
 0  | 
   if( p==0 ) return;  | 
 
| 
178045
 | 
 0  | 
 0  | 
   for(i=1; i
 | 
 
| 
178048
 | 
 0  | 
 0  | 
     if( p->nErr ) break;  | 
 
| 
178049
 | 
 0  | 
 0  | 
     if( argc>2 ){  | 
 
| 
178051
 | 
 0  | 
 0  | 
       if( pNode ){  | 
 
| 
178056
 | 
 0  | 
 0  | 
     }else if( pNode ){  | 
 
| 
178060
 | 
 0  | 
 0  | 
   if( argc>2 && i==argc ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( argc>2 && i==argc ){  | 
 
| 
178078
 | 
 0  | 
 0  | 
   if( pPatch->eType!=JSON_OBJECT ){  | 
 
| 
178084
 | 
 0  | 
 0  | 
   if( pTarget->eType!=JSON_OBJECT ){  | 
 
| 
178089
 | 
 0  | 
 0  | 
   for(i=1; in; i += jsonNodeSize(&pPatch[i+1])+1){  | 
 
| 
178097
 | 
 0  | 
 0  | 
     for(j=1; jn; j += jsonNodeSize(&pTarget[j+1])+1 ){  | 
 
| 
178101
 | 
 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 ){  | 
 
| 
178102
 | 
 0  | 
 0  | 
         if( pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_PATCH) ) break;  | 
 
| 
178103
 | 
 0  | 
 0  | 
         if( pPatch[i+1].eType==JSON_NULL ){  | 
 
| 
178107
 | 
 0  | 
 0  | 
           if( pNew==0 ) return 0;  | 
 
| 
178109
 | 
 0  | 
 0  | 
           if( pNew!=&pTarget[j+1] ){  | 
 
| 
178117
 | 
 0  | 
 0  | 
     if( j>=pTarget->n && pPatch[i+1].eType!=JSON_NULL ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( j>=pTarget->n && pPatch[i+1].eType!=JSON_NULL ){  | 
 
| 
178122
 | 
 0  | 
 0  | 
       if( pParse->oom ) return 0;  | 
 
| 
178150
 | 
 0  | 
 0  | 
   if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return;  | 
 
| 
178151
 | 
 0  | 
 0  | 
   if( jsonParse(&y, ctx, (const char*)sqlite3_value_text(argv[1])) ){  | 
 
| 
178157
 | 
 0  | 
 0  | 
   if( pResult ){  | 
 
| 
178182
 | 
 0  | 
 0  | 
   if( argc&1 ){  | 
 
| 
178189
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
178190
 | 
 0  | 
 0  | 
     if( sqlite3_value_type(argv[i])!=SQLITE_TEXT ){  | 
 
| 
178224
 | 
 0  | 
 0  | 
   if( argc<1 ) return;  | 
 
| 
178225
 | 
 0  | 
 0  | 
   if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return;  | 
 
| 
178227
 | 
 0  | 
 0  | 
   for(i=1; i<(u32)argc; i++){  | 
 
| 
178229
 | 
 0  | 
 0  | 
     if( zPath==0 ) goto remove_done;  | 
 
| 
178231
 | 
 0  | 
 0  | 
     if( x.nErr ) goto remove_done;  | 
 
| 
178232
 | 
 0  | 
 0  | 
     if( pNode ) pNode->jnFlags |= JNODE_REMOVE;  | 
 
| 
178234
 | 
 0  | 
 0  | 
   if( (x.aNode[0].jnFlags & JNODE_REMOVE)==0 ){  | 
 
| 
178257
 | 
 0  | 
 0  | 
   if( argc<1 ) return;  | 
 
| 
178258
 | 
 0  | 
 0  | 
   if( (argc&1)==0 ) {  | 
 
| 
178262
 | 
 0  | 
 0  | 
   if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return;  | 
 
| 
178264
 | 
 0  | 
 0  | 
   for(i=1; i<(u32)argc; i+=2){  | 
 
| 
178267
 | 
 0  | 
 0  | 
     if( x.nErr ) goto replace_err;  | 
 
| 
178268
 | 
 0  | 
 0  | 
     if( pNode ){  | 
 
| 
178273
 | 
 0  | 
 0  | 
   if( x.aNode[0].jnFlags & JNODE_REPLACE ){  | 
 
| 
178306
 | 
 0  | 
 0  | 
   if( argc<1 ) return;  | 
 
| 
178307
 | 
 0  | 
 0  | 
   if( (argc&1)==0 ) {  | 
 
| 
178308
 | 
 0  | 
 0  | 
     jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert");  | 
 
| 
178311
 | 
 0  | 
 0  | 
   if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return;  | 
 
| 
178313
 | 
 0  | 
 0  | 
   for(i=1; i<(u32)argc; i+=2){  | 
 
| 
178317
 | 
 0  | 
 0  | 
     if( x.oom ){  | 
 
| 
178320
 | 
 0  | 
 0  | 
     }else if( x.nErr ){  | 
 
| 
178322
 | 
 0  | 
 0  | 
     }else if( pNode && (bApnd || bIsSet) ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( pNode && (bApnd || bIsSet) ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( pNode && (bApnd || bIsSet) ){  | 
 
| 
178327
 | 
 0  | 
 0  | 
   if( x.aNode[0].jnFlags & JNODE_REPLACE ){  | 
 
| 
178353
 | 
 0  | 
 0  | 
   if( p==0 ) return;  | 
 
| 
178354
 | 
 0  | 
 0  | 
   if( argc==2 ){  | 
 
| 
178360
 | 
 0  | 
 0  | 
   if( pNode ){  | 
 
| 
178399
 | 
 0  | 
 0  | 
   if( pStr ){  | 
 
| 
178400
 | 
 0  | 
 0  | 
     if( pStr->zBuf==0 ){  | 
 
| 
178413
 | 
 0  | 
 0  | 
   if( pStr ){  | 
 
| 
178416
 | 
 0  | 
 0  | 
     if( pStr->bErr ){  | 
 
| 
178417
 | 
 0  | 
 0  | 
       if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx);  | 
 
| 
178419
 | 
 0  | 
 0  | 
     }else if( isFinal ){  | 
 
| 
178420
 | 
 0  | 
 0  | 
       sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed,  | 
 
| 
178461
 | 
 0  | 
 0  | 
   if( NEVER(!pStr) ) return;  | 
 
| 
178464
 | 
 0  | 
 0  | 
   for(i=1; z[i]!=',' || inStr; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=1; z[i]!=',' || inStr; i++){  | 
 
| 
178466
 | 
 0  | 
 0  | 
     if( z[i]=='"' ){  | 
 
| 
178468
 | 
 0  | 
 0  | 
     }else if( z[i]=='\\' ){  | 
 
| 
178495
 | 
 0  | 
 0  | 
   if( pStr ){  | 
 
| 
178496
 | 
 0  | 
 0  | 
     if( pStr->zBuf==0 ){  | 
 
| 
178513
 | 
 0  | 
 0  | 
   if( pStr ){  | 
 
| 
178515
 | 
 0  | 
 0  | 
     if( pStr->bErr ){  | 
 
| 
178516
 | 
 0  | 
 0  | 
       if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx);  | 
 
| 
178518
 | 
 0  | 
 0  | 
     }else if( isFinal ){  | 
 
| 
178519
 | 
 0  | 
 0  | 
       sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed,  | 
 
| 
178591
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
178593
 | 
 0  | 
 0  | 
     if( pNew==0 ) return SQLITE_NOMEM;  | 
 
| 
178611
 | 
 0  | 
 0  | 
   if( pCur==0 ) return SQLITE_NOMEM;  | 
 
| 
178620
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
178659
 | 
 0  | 
 0  | 
   if( p->bRecursive ){  | 
 
| 
178660
 | 
 0  | 
 0  | 
     if( p->sParse.aNode[p->i].jnFlags & JNODE_LABEL ) p->i++;  | 
 
| 
178663
 | 
 0  | 
 0  | 
     if( p->iiEnd ){  | 
 
| 
178667
 | 
 0  | 
 0  | 
       if( pUp->eType==JSON_ARRAY ){  | 
 
| 
178668
 | 
 0  | 
 0  | 
         if( iUp==p->i-1 ){  | 
 
| 
178705
 | 
 0  | 
 0  | 
   if( i==0 ){  | 
 
| 
178713
 | 
 0  | 
 0  | 
   if( pUp->eType==JSON_ARRAY ){  | 
 
| 
178717
 | 
 0  | 
 0  | 
     if( (pNode->jnFlags & JNODE_LABEL)==0 ) pNode--;  | 
 
| 
178734
 | 
 0  | 
 0  | 
       if( p->i==0 ) break;  | 
 
| 
178735
 | 
 0  | 
 0  | 
       if( p->eType==JSON_OBJECT ){  | 
 
| 
178737
 | 
 0  | 
 0  | 
       }else if( p->eType==JSON_ARRAY ){  | 
 
| 
178739
 | 
 0  | 
 0  | 
         if( p->bRecursive ){  | 
 
| 
178740
 | 
 0  | 
 0  | 
           if( p->iRowid==0 ) break;  | 
 
| 
178750
 | 
 0  | 
 0  | 
       if( pThis->jnFlags & JNODE_LABEL ) pThis++;  | 
 
| 
178755
 | 
 0  | 
 0  | 
       if( pThis->jnFlags & JNODE_LABEL ) pThis++;  | 
 
| 
178760
 | 
 0  | 
 0  | 
       if( pThis->jnFlags & JNODE_LABEL ) pThis++;  | 
 
| 
178761
 | 
 0  | 
 0  | 
       if( pThis->eType>=JSON_ARRAY ) break;  | 
 
| 
178771
 | 
 0  | 
 0  | 
       if( p->i>p->iBegin && p->bRecursive ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( p->i>p->iBegin && p->bRecursive ){  | 
 
| 
178779
 | 
 0  | 
 0  | 
       if( p->bRecursive ){  | 
 
| 
178782
 | 
 0  | 
 0  | 
         if( p->zRoot ){  | 
 
| 
178787
 | 
 0  | 
 0  | 
         if( p->eType==JSON_ARRAY ){  | 
 
| 
178789
 | 
 0  | 
 0  | 
         }else if( p->eType==JSON_OBJECT ){  | 
 
| 
178797
 | 
 0  | 
 0  | 
       if( p->bRecursive ){  | 
 
| 
178809
 | 
 0  | 
 0  | 
       if( zRoot==0 ) zRoot = "$";  | 
 
| 
178850
 | 
 0  | 
 0  | 
   for(i=0; inConstraint; i++, pConstraint++){  | 
 
| 
178853
 | 
 0  | 
 0  | 
     if( pConstraint->iColumn < JEACH_JSON ) continue;  | 
 
| 
178857
 | 
 0  | 
 0  | 
     if( pConstraint->usable==0 ){  | 
 
| 
178859
 | 
 0  | 
 0  | 
     }else if( pConstraint->op==SQLITE_INDEX_CONSTRAINT_EQ ){  | 
 
| 
178864
 | 
 0  | 
 0  | 
   if( (unusableMask & ~idxMask)!=0 ){  | 
 
| 
178869
 | 
 0  | 
 0  | 
   if( aIdx[0]<0 ){  | 
 
| 
178879
 | 
 0  | 
 0  | 
     if( aIdx[1]<0 ){  | 
 
| 
178905
 | 
 0  | 
 0  | 
   if( idxNum==0 ) return SQLITE_OK;  | 
 
| 
178907
 | 
 0  | 
 0  | 
   if( z==0 ) return SQLITE_OK;  | 
 
| 
178910
 | 
 0  | 
 0  | 
   if( p->zJson==0 ) return SQLITE_NOMEM;  | 
 
| 
178912
 | 
 0  | 
 0  | 
   if( jsonParse(&p->sParse, 0, p->zJson) ){  | 
 
| 
178914
 | 
 0  | 
 0  | 
     if( p->sParse.oom==0 ){  | 
 
| 
178917
 | 
 0  | 
 0  | 
       if( cur->pVtab->zErrMsg ) rc = SQLITE_ERROR;  | 
 
| 
178921
 | 
 0  | 
 0  | 
   }else if( p->bRecursive && jsonParseFindParents(&p->sParse) ){  | 
 
| 
 | 
 0  | 
 0  | 
   }else if( p->bRecursive && jsonParseFindParents(&p->sParse) ){  | 
 
| 
178926
 | 
 0  | 
 0  | 
     if( idxNum==3 ){  | 
 
| 
178929
 | 
 0  | 
 0  | 
       if( zRoot==0 ) return SQLITE_OK;  | 
 
| 
178932
 | 
 0  | 
 0  | 
       if( p->zRoot==0 ) return SQLITE_NOMEM;  | 
 
| 
178934
 | 
 0  | 
 0  | 
       if( zRoot[0]!='$' ){  | 
 
| 
178939
 | 
 0  | 
 0  | 
       if( zErr ){  | 
 
| 
178943
 | 
 0  | 
 0  | 
         return cur->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM;  | 
 
| 
178944
 | 
 0  | 
 0  | 
       }else if( pNode==0 ){  | 
 
| 
178952
 | 
 0  | 
 0  | 
     if( p->eType>=JSON_ARRAY ){  | 
 
| 
178955
 | 
 0  | 
 0  | 
       if( p->bRecursive ){  | 
 
| 
178957
 | 
 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 ){  | 
 
| 
179085
 | 
 3765  | 
 251  | 
   for(i=0; i
 | 
 
| 
 | 
 3765  | 
 0  | 
   for(i=0; i
 | 
 
| 
179092
 | 
 502  | 
 251  | 
   for(i=0; i
 | 
 
| 
 | 
 502  | 
 0  | 
   for(i=0; i
 | 
 
| 
179100
 | 
 502  | 
 251  | 
   for(i=0; i
 | 
 
| 
 | 
 502  | 
 0  | 
   for(i=0; i
 | 
 
| 
179663
 | 
 0  | 
 15  | 
   if( p ){  | 
 
| 
179691
 | 
 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);  | 
 
| 
179711
 | 
 15  | 
 0  | 
   if( pNode->iNode!=0 ){  | 
 
| 
179713
 | 
 0  | 
 15  | 
     for( ; (*pp)!=pNode; pp = &(*pp)->pNext){ assert(*pp); }  | 
 
| 
179728
 | 
 0  | 
 0  | 
   if( pNode ){  | 
 
| 
179744
 | 
 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 ){  | 
 
| 
179766
 | 
 18  | 
 15  | 
   if( (pNode = nodeHashLookup(pRtree, iNode))!=0 ){  | 
 
| 
179768
 | 
 0  | 
 18  | 
     if( pParent && !pNode->pParent ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pParent && !pNode->pParent ){  | 
 
| 
179777
 | 
 0  | 
 15  | 
   if( pRtree->pNodeBlob ){  | 
 
| 
179782
 | 
 0  | 
 0  | 
     if( rc ){  | 
 
| 
179784
 | 
 0  | 
 0  | 
       if( rc==SQLITE_NOMEM ) return SQLITE_NOMEM;  | 
 
| 
179787
 | 
 15  | 
 0  | 
   if( pRtree->pNodeBlob==0 ){  | 
 
| 
179789
 | 
 0  | 
 15  | 
     if( zTab==0 ) return SQLITE_NOMEM;  | 
 
| 
179794
 | 
 0  | 
 15  | 
   if( rc ){  | 
 
| 
179799
 | 
 0  | 
 0  | 
     if( rc==SQLITE_ERROR ) rc = SQLITE_CORRUPT_VTAB;  | 
 
| 
179800
 | 
 15  | 
 0  | 
   }else if( pRtree->iNodeSize==sqlite3_blob_bytes(pRtree->pNodeBlob) ){  | 
 
| 
179802
 | 
 0  | 
 15  | 
     if( !pNode ){  | 
 
| 
179824
 | 
 15  | 
 0  | 
   if( pNode && iNode==1 ){  | 
 
| 
 | 
 15  | 
 0  | 
   if( pNode && iNode==1 ){  | 
 
| 
179826
 | 
 0  | 
 15  | 
     if( pRtree->iDepth>RTREE_MAX_DEPTH ){  | 
 
| 
179835
 | 
 15  | 
 0  | 
   if( pNode && rc==SQLITE_OK ){  | 
 
| 
 | 
 15  | 
 0  | 
   if( pNode && rc==SQLITE_OK ){  | 
 
| 
179836
 | 
 0  | 
 15  | 
     if( NCELL(pNode)>((pRtree->iNodeSize-4)/pRtree->nBytesPerCell) ){  | 
 
| 
179841
 | 
 15  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
179842
 | 
 15  | 
 0  | 
     if( pNode!=0 ){  | 
 
| 
179849
 | 
 0  | 
 0  | 
     if( pNode ){  | 
 
| 
179871
 | 
 28  | 
 7  | 
   for(ii=0; iinDim2; ii++){  | 
 
| 
179907
 | 
 7  | 
 0  | 
   if( nCell
 | 
 
| 
179921
 | 
 7  | 
 8  | 
   if( pNode->isDirty ){  | 
 
| 
179923
 | 
 7  | 
 0  | 
     if( pNode->iNode ){  | 
 
| 
179933
 | 
 0  | 
 7  | 
     if( pNode->iNode==0 && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pNode->iNode==0 && rc==SQLITE_OK ){  | 
 
| 
179947
 | 
 33  | 
 48  | 
   if( pNode ){  | 
 
| 
179951
 | 
 15  | 
 18  | 
     if( pNode->nRef==0 ){  | 
 
| 
179953
 | 
 15  | 
 0  | 
       if( pNode->iNode==1 ){  | 
 
| 
179956
 | 
 0  | 
 15  | 
       if( pNode->pParent ){  | 
 
| 
179959
 | 
 15  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
180017
 | 
 0  | 
 0  | 
   }while( iinDim2 );  | 
 
| 
180067
 | 
 1  | 
 15  | 
   if( pRtree->nBusy==0 ){  | 
 
| 
180108
 | 
 0  | 
 0  | 
   if( !zCreate ){  | 
 
| 
180115
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
180131
 | 
 8  | 
 0  | 
   if( pCsr ){  | 
 
| 
180147
 | 
 6  | 
 10  | 
   if( pCsr->aConstraint ){  | 
 
| 
180149
 | 
 24  | 
 6  | 
     for(i=0; inConstraint; i++){  | 
 
| 
180151
 | 
 0  | 
 24  | 
       if( pInfo ){  | 
 
| 
180152
 | 
 0  | 
 0  | 
         if( pInfo->xDelUser ) pInfo->xDelUser(pInfo->pUser);  | 
 
| 
180172
 | 
 40  | 
 8  | 
   for(ii=0; iiaNode[ii]);  | 
 
| 
180257
 | 
 0  | 
 0  | 
   if( pConstraint->op==RTREE_QUERY && pSearch->iLevel==1 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pConstraint->op==RTREE_QUERY && pSearch->iLevel==1 ){  | 
 
| 
180262
 | 
 0  | 
 0  | 
   if( eInt==0 ){  | 
 
| 
180291
 | 
 0  | 
 0  | 
   if( pConstraint->op==RTREE_MATCH ){  | 
 
| 
180295
 | 
 0  | 
 0  | 
     if( eWithin==0 ) *peWithin = NOT_WITHIN;  | 
 
| 
180303
 | 
 0  | 
 0  | 
     if( pInfo->eWithin<*peWithin ) *peWithin = pInfo->eWithin;  | 
 
| 
180304
 | 
 0  | 
 0  | 
     if( pInfo->rScore<*prScore || *prScore
 | 
 
| 
 | 
 0  | 
 0  | 
     if( pInfo->rScore<*prScore || *prScore
 | 
 
| 
180332
 | 
 0  | 
 0  | 
   switch( p->op ){  | 
 
| 
180336
 | 
 0  | 
 0  | 
       RTREE_DECODE_COORD(eInt, pCellData, val);  | 
 
| 
180338
 | 
 0  | 
 0  | 
       if( p->u.rValue>=val ) return;  | 
 
| 
180339
 | 
 0  | 
 0  | 
       if( p->op!=RTREE_EQ ) break;  /* RTREE_LE and RTREE_LT end here */  | 
 
| 
180344
 | 
 0  | 
 0  | 
       RTREE_DECODE_COORD(eInt, pCellData, val);  | 
 
| 
180346
 | 
 0  | 
 0  | 
       if( p->u.rValue<=val ) return;  | 
 
| 
180373
 | 
 119  | 
 0  | 
   RTREE_DECODE_COORD(eInt, pCellData, xN);  | 
 
| 
180375
 | 
 40  | 
 15  | 
     case RTREE_LE: if( xN <= p->u.rValue ) return;  break;  | 
 
| 
180376
 | 
 0  | 
 0  | 
     case RTREE_LT: if( xN <  p->u.rValue ) return;  break;  | 
 
| 
180377
 | 
 55  | 
 9  | 
     case RTREE_GE: if( xN >= p->u.rValue ) return;  break;  | 
 
| 
180378
 | 
 0  | 
 0  | 
     case RTREE_GT: if( xN >  p->u.rValue ) return;  break;  | 
 
| 
180379
 | 
 0  | 
 0  | 
     default:       if( xN == p->u.rValue ) return;  break;  | 
 
| 
180397
 | 
 3  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
180398
 | 
 2  | 
 1  | 
     if( nodeGetRowid(pRtree, pNode, ii)==iRowid ){  | 
 
| 
180412
 | 
 0  | 
 0  | 
   if( pParent ){  | 
 
| 
180433
 | 
 0  | 
 0  | 
   if( pA->rScorerScore ) return -1;  | 
 
| 
180434
 | 
 0  | 
 0  | 
   if( pA->rScore>pB->rScore ) return +1;  | 
 
| 
180435
 | 
 0  | 
 0  | 
   if( pA->iLeveliLevel ) return -1;  | 
 
| 
180436
 | 
 0  | 
 0  | 
   if( pA->iLevel>pB->iLevel ) return +1;  | 
 
| 
180449
 | 
 0  | 
 0  | 
   if( i
 | 
 
| 
180450
 | 
 0  | 
 0  | 
     if( j>=RTREE_CACHE_SZ ){  | 
 
| 
180465
 | 
 57  | 
 47  | 
   return pCur->bPoint ? &pCur->sPoint : pCur->nPoint ? pCur->aPoint : 0;  | 
 
| 
 | 
 31  | 
 16  | 
   return pCur->bPoint ? &pCur->sPoint : pCur->nPoint ? pCur->aPoint : 0;  | 
 
| 
180476
 | 
 18  | 
 34  | 
   if( pCur->aNode[ii]==0 ){  | 
 
| 
180478
 | 
 0  | 
 18  | 
     id = ii ? pCur->aPoint[0].id : pCur->sPoint.id;  | 
 
| 
180494
 | 
 5  | 
 0  | 
   if( pCur->nPoint>=pCur->nPointAlloc ){  | 
 
| 
180497
 | 
 0  | 
 5  | 
     if( pNew==0 ) return 0;  | 
 
| 
180506
 | 
 0  | 
 5  | 
   while( i>0 ){  | 
 
| 
180510
 | 
 0  | 
 0  | 
     if( rtreeSearchPointCompare(pNew, pParent)>=0 ) break;  | 
 
| 
180530
 | 
 18  | 
 8  | 
   if( pFirst==0  | 
 
| 
180531
 | 
 18  | 
 0  | 
    || pFirst->rScore>rScore   | 
 
| 
180532
 | 
 18  | 
 0  | 
    || (pFirst->rScore==rScore && pFirst->iLevel>iLevel)  | 
 
| 
 | 
 18  | 
 0  | 
    || (pFirst->rScore==rScore && pFirst->iLevel>iLevel)  | 
 
| 
180534
 | 
 5  | 
 21  | 
     if( pCur->bPoint ){  | 
 
| 
180537
 | 
 0  | 
 5  | 
       if( pNew==0 ) return 0;  | 
 
| 
180539
 | 
 5  | 
 0  | 
       if( ii
 | 
 
| 
180593
 | 
 26  | 
 0  | 
   if( p->aNode[i] ){  | 
 
| 
180597
 | 
 21  | 
 5  | 
   if( p->bPoint ){  | 
 
| 
180600
 | 
 5  | 
 0  | 
   }else if( p->nPoint ){  | 
 
| 
180604
 | 
 5  | 
 0  | 
     if( n
 | 
 
| 
180609
 | 
 0  | 
 5  | 
     while( (j = i*2+1)
 | 
 
| 
180611
 | 
 0  | 
 0  | 
       if( kaPoint[k], &p->aPoint[j])<0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( kaPoint[k], &p->aPoint[j])<0 ){  | 
 
| 
180612
 | 
 0  | 
 0  | 
         if( rtreeSearchPointCompare(&p->aPoint[k], &p->aPoint[i])<0 ){  | 
 
| 
180619
 | 
 0  | 
 0  | 
         if( rtreeSearchPointCompare(&p->aPoint[j], &p->aPoint[i])<0 ){  | 
 
| 
180650
 | 
 42  | 
 8  | 
   while( (p = rtreeSearchPointFirst(pCur))!=0 && p->iLevel>0 ){  | 
 
| 
 | 
 24  | 
 18  | 
   while( (p = rtreeSearchPointFirst(pCur))!=0 && p->iLevel>0 ){  | 
 
| 
180652
 | 
 0  | 
 24  | 
     if( rc ) return rc;  | 
 
| 
180655
 | 
 42  | 
 6  | 
     while( p->iCell
 | 
 
| 
180659
 | 
 119  | 
 18  | 
       for(ii=0; ii
 | 
 
| 
180661
 | 
 0  | 
 119  | 
         if( pConstraint->op>=RTREE_MATCH ){  | 
 
| 
180664
 | 
 0  | 
 0  | 
           if( rc ) return rc;  | 
 
| 
180665
 | 
 119  | 
 0  | 
         }else if( p->iLevel==1 ){  | 
 
| 
180670
 | 
 24  | 
 95  | 
         if( eWithin==NOT_WITHIN ) break;  | 
 
| 
180673
 | 
 24  | 
 18  | 
       if( eWithin==NOT_WITHIN ) continue;  | 
 
| 
180675
 | 
 0  | 
 18  | 
       if( x.iLevel ){  | 
 
| 
180682
 | 
 0  | 
 18  | 
       if( p->iCell>=nCell ){  | 
 
| 
180686
 | 
 18  | 
 0  | 
       if( rScore
 | 
 
| 
180688
 | 
 0  | 
 18  | 
       if( p==0 ) return SQLITE_NOMEM;  | 
 
| 
180695
 | 
 6  | 
 18  | 
     if( p->iCell>=nCell ){  | 
 
| 
180713
 | 
 0  | 
 20  | 
   if( pCsr->bAuxValid ){  | 
 
| 
180730
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && p ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && p ){  | 
 
| 
180747
 | 
 0  | 
 28  | 
   if( rc ) return rc;  | 
 
| 
180748
 | 
 0  | 
 28  | 
   if( p==0 ) return SQLITE_OK;  | 
 
| 
180749
 | 
 20  | 
 8  | 
   if( i==0 ){  | 
 
| 
180751
 | 
 8  | 
 0  | 
   }else if( i<=pRtree->nDim2 ){  | 
 
| 
180754
 | 
 0  | 
 8  | 
     if( pRtree->eCoordType==RTREE_COORD_REAL32 ){  | 
 
| 
180763
 | 
 0  | 
 0  | 
     if( !pCsr->bAuxValid ){  | 
 
| 
180764
 | 
 0  | 
 0  | 
       if( pCsr->pReadAux==0 ){  | 
 
| 
180767
 | 
 0  | 
 0  | 
         if( rc ) return rc;  | 
 
| 
180772
 | 
 0  | 
 0  | 
       if( rc==SQLITE_ROW ){  | 
 
| 
180776
 | 
 0  | 
 0  | 
         if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
180802
 | 
 2  | 
 0  | 
   if( sqlite3_step(pRtree->pReadRowid)==SQLITE_ROW ){  | 
 
| 
180804
 | 
 2  | 
 0  | 
     if( piNode ) *piNode = iNode;  | 
 
| 
180824
 | 
 0  | 
 0  | 
   if( pSrc==0 ) return SQLITE_ERROR;  | 
 
| 
180827
 | 
 0  | 
 0  | 
   if( !pInfo ) return SQLITE_NOMEM;  | 
 
| 
180836
 | 
 0  | 
 0  | 
   if( pBlob->cb.xGeom ){  | 
 
| 
180873
 | 
 2  | 
 6  | 
   if( idxNum==1 ){  | 
 
| 
180880
 | 
 2  | 
 0  | 
     if( rc==SQLITE_OK && pLeaf!=0 ){  | 
 
| 
 | 
 2  | 
 0  | 
     if( rc==SQLITE_OK && pLeaf!=0 ){  | 
 
| 
180897
 | 
 6  | 
 0  | 
     if( rc==SQLITE_OK && argc>0 ){  | 
 
| 
 | 
 6  | 
 0  | 
     if( rc==SQLITE_OK && argc>0 ){  | 
 
| 
180900
 | 
 0  | 
 6  | 
       if( !pCsr->aConstraint ){  | 
 
| 
180907
 | 
 24  | 
 6  | 
         for(ii=0; ii
 | 
 
| 
180911
 | 
 0  | 
 24  | 
           if( p->op>=RTREE_MATCH ){  | 
 
| 
180917
 | 
 0  | 
 0  | 
             if( rc!=SQLITE_OK ){  | 
 
| 
180933
 | 
 6  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
180936
 | 
 0  | 
 6  | 
       if( pNew==0 ) return SQLITE_NOMEM;  | 
 
| 
181002
 | 
 26  | 
 8  | 
   for(ii=0; iinConstraint; ii++){  | 
 
| 
181003
 | 
 0  | 
 26  | 
     if( pIdxInfo->aConstraint[ii].op==SQLITE_INDEX_CONSTRAINT_MATCH ){  | 
 
| 
181009
 | 
 26  | 
 6  | 
   for(ii=0; iinConstraint && iIdx<(int)(sizeof(zIdxStr)-1); ii++){  | 
 
| 
 | 
 26  | 
 0  | 
   for(ii=0; iinConstraint && iIdx<(int)(sizeof(zIdxStr)-1); ii++){  | 
 
| 
181012
 | 
 26  | 
 0  | 
     if( bMatch==0 && p->usable   | 
 
| 
 | 
 26  | 
 0  | 
     if( bMatch==0 && p->usable   | 
 
| 
181013
 | 
 2  | 
 24  | 
      && p->iColumn==0 && p->op==SQLITE_INDEX_CONSTRAINT_EQ   | 
 
| 
 | 
 2  | 
 0  | 
      && p->iColumn==0 && p->op==SQLITE_INDEX_CONSTRAINT_EQ   | 
 
| 
181017
 | 
 0  | 
 2  | 
       for(jj=0; jj
 | 
 
| 
181037
 | 
 24  | 
 0  | 
     if( p->usable  | 
 
| 
181038
 | 
 24  | 
 0  | 
     && ((p->iColumn>0 && p->iColumn<=pRtree->nDim2)  | 
 
| 
 | 
 0  | 
 24  | 
     && ((p->iColumn>0 && p->iColumn<=pRtree->nDim2)  | 
 
| 
181039
 | 
 0  | 
 0  | 
         || p->op==SQLITE_INDEX_CONSTRAINT_MATCH)  | 
 
| 
181062
 | 
 6  | 
 0  | 
   if( iIdx>0 && 0==(pIdxInfo->idxStr = sqlite3_mprintf("%s", zIdxStr)) ){  | 
 
| 
 | 
 0  | 
 6  | 
   if( iIdx>0 && 0==(pIdxInfo->idxStr = sqlite3_mprintf("%s", zIdxStr)) ){  | 
 
| 
181080
 | 
 0  | 
 0  | 
   if( pRtree->eCoordType==RTREE_COORD_REAL32 ){  | 
 
| 
181110
 | 
 0  | 
 0  | 
     margin += (DCOORD(p->aCoord[ii+1]) - DCOORD(p->aCoord[ii]));  | 
 
| 
 | 
 0  | 
 0  | 
     margin += (DCOORD(p->aCoord[ii+1]) - DCOORD(p->aCoord[ii]));  | 
 
| 
181112
 | 
 0  | 
 0  | 
   }while( ii>=0 );  | 
 
| 
181121
 | 
 0  | 
 0  | 
   if( pRtree->eCoordType==RTREE_COORD_REAL32 ){  | 
 
| 
181123
 | 
 0  | 
 0  | 
       p1->aCoord[ii].f = MIN(p1->aCoord[ii].f, p2->aCoord[ii].f);  | 
 
| 
181124
 | 
 0  | 
 0  | 
       p1->aCoord[ii+1].f = MAX(p1->aCoord[ii+1].f, p2->aCoord[ii+1].f);  | 
 
| 
181126
 | 
 0  | 
 0  | 
     }while( iinDim2 );  | 
 
| 
181132
 | 
 0  | 
 0  | 
     }while( iinDim2 );  | 
 
| 
181143
 | 
 0  | 
 0  | 
   for(ii=0; iinDim2; ii+=2){  | 
 
| 
181146
 | 
 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))   | 
 
| 
181147
 | 
 0  | 
 0  | 
      || ( isInt && (a2[0].ia1[1].i))   | 
 
| 
 | 
 0  | 
 0  | 
      || ( isInt && (a2[0].ia1[1].i))   | 
 
| 
 | 
 0  | 
 0  | 
      || ( isInt && (a2[0].ia1[1].i))   | 
 
| 
181175
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
181178
 | 
 0  | 
 0  | 
     for(jj=0; jjnDim2; jj+=2){  | 
 
| 
181180
 | 
 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]));  | 
 
| 
181181
 | 
 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]));  | 
 
| 
181182
 | 
 0  | 
 0  | 
       if( x2
 | 
 
| 
181210
 | 
 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++){  | 
 
| 
181227
 | 
 0  | 
 0  | 
     for(iCell=0; iCell
 | 
 
| 
181234
 | 
 0  | 
 0  | 
       if( iCell==0||growth
 | 
 
| 
 | 
 0  | 
 0  | 
       if( iCell==0||growth
 | 
 
| 
 | 
 0  | 
 0  | 
       if( iCell==0||growth
 | 
 
| 
 | 
 0  | 
 0  | 
       if( iCell==0||growth
 | 
 
| 
181237
 | 
 0  | 
 0  | 
       if( bBest ){  | 
 
| 
181265
 | 
 0  | 
 7  | 
   while( p->pParent ){  | 
 
| 
181270
 | 
 0  | 
 0  | 
     if( nodeParentIndex(pRtree, p, &iCell) ){  | 
 
| 
181275
 | 
 0  | 
 0  | 
     if( !cellContains(pRtree, &cell, pCell) ){  | 
 
| 
181331
 | 
 0  | 
 0  | 
   if( nIdx>1 ){  | 
 
| 
181346
 | 
 0  | 
 0  | 
     while( iLeft
 | 
 
| 
 | 
 0  | 
 0  | 
     while( iLeft
 | 
 
| 
181347
 | 
 0  | 
 0  | 
       if( iLeft==nLeft ){  | 
 
| 
181350
 | 
 0  | 
 0  | 
       }else if( iRight==nRight ){  | 
 
| 
181356
 | 
 0  | 
 0  | 
         if( fLeft
 | 
 
| 
181399
 | 
 0  | 
 0  | 
   if( nIdx>1 ){  | 
 
| 
181414
 | 
 0  | 
 0  | 
     while( iLeft
 | 
 
| 
 | 
 0  | 
 0  | 
     while( iLeft
 | 
 
| 
181415
 | 
 0  | 
 0  | 
       RtreeDValue xleft1 = DCOORD(aCell[aLeft[iLeft]].aCoord[iDim*2]);  | 
 
| 
181416
 | 
 0  | 
 0  | 
       RtreeDValue xleft2 = DCOORD(aCell[aLeft[iLeft]].aCoord[iDim*2+1]);  | 
 
| 
181417
 | 
 0  | 
 0  | 
       RtreeDValue xright1 = DCOORD(aCell[aRight[iRight]].aCoord[iDim*2]);  | 
 
| 
181418
 | 
 0  | 
 0  | 
       RtreeDValue xright2 = DCOORD(aCell[aRight[iRight]].aCoord[iDim*2+1]);  | 
 
| 
181419
 | 
 0  | 
 0  | 
       if( (iLeft!=nLeft) && ((iRight==nRight)  | 
 
| 
 | 
 0  | 
 0  | 
       if( (iLeft!=nLeft) && ((iRight==nRight)  | 
 
| 
181420
 | 
 0  | 
 0  | 
        || (xleft1
 | 
 
| 
181421
 | 
 0  | 
 0  | 
        || (xleft1==xright1 && xleft2
 | 
 
| 
 | 
 0  | 
 0  | 
        || (xleft1==xright1 && xleft2
 | 
 
| 
181470
 | 
 0  | 
 0  | 
   if( !aaSorted ){  | 
 
| 
181476
 | 
 0  | 
 0  | 
   for(ii=0; iinDim; ii++){  | 
 
| 
181479
 | 
 0  | 
 0  | 
     for(jj=0; jj
 | 
 
| 
181485
 | 
 0  | 
 0  | 
   for(ii=0; iinDim; ii++){  | 
 
| 
181492
 | 
 0  | 
 0  | 
     for(  | 
 
| 
181505
 | 
 0  | 
 0  | 
       for(kk=1; kk<(nCell-1); kk++){  | 
 
| 
181506
 | 
 0  | 
 0  | 
         if( kk
 | 
 
| 
181516
 | 
 0  | 
 0  | 
       if( (nLeft==RTREE_MINCELLS(pRtree))  | 
 
| 
181517
 | 
 0  | 
 0  | 
        || (overlap
 | 
 
| 
181518
 | 
 0  | 
 0  | 
        || (overlap==fBestOverlap && area
 | 
 
| 
 | 
 0  | 
 0  | 
        || (overlap==fBestOverlap && area
 | 
 
| 
181526
 | 
 0  | 
 0  | 
     if( ii==0 || margin
 | 
 
| 
 | 
 0  | 
 0  | 
     if( ii==0 || margin
 | 
 
| 
181535
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
181536
 | 
 0  | 
 0  | 
     RtreeNode *pTarget = (ii
 | 
 
| 
181537
 | 
 0  | 
 0  | 
     RtreeCell *pBbox = (ii
 | 
 
| 
181555
 | 
 0  | 
 0  | 
   xSetMapping = ((iHeight==0)?rowidWrite:parentWrite);  | 
 
| 
181556
 | 
 0  | 
 0  | 
   if( iHeight>0 ){  | 
 
| 
181558
 | 
 0  | 
 0  | 
     if( pChild ){  | 
 
| 
181591
 | 
 0  | 
 0  | 
   if( !aCell ){  | 
 
| 
181597
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
181604
 | 
 0  | 
 0  | 
   if( pNode->iNode==1 ){  | 
 
| 
181616
 | 
 0  | 
 0  | 
   if( !pLeft || !pRight ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( !pLeft || !pRight ){  | 
 
| 
181626
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
181635
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=(rc = nodeWrite(pRtree, pRight))  | 
 
| 
181636
 | 
 0  | 
 0  | 
    || (0==pLeft->iNode && SQLITE_OK!=(rc = nodeWrite(pRtree, pLeft)))  | 
 
| 
 | 
 0  | 
 0  | 
    || (0==pLeft->iNode && SQLITE_OK!=(rc = nodeWrite(pRtree, pLeft)))  | 
 
| 
181644
 | 
 0  | 
 0  | 
   if( pNode->iNode==1 ){  | 
 
| 
181646
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
181653
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
181657
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
181661
 | 
 0  | 
 0  | 
   if( (rc = rtreeInsertCell(pRtree, pRight->pParent, &rightbbox, iHeight+1)) ){  | 
 
| 
181665
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
181668
 | 
 0  | 
 0  | 
     if( iRowid==pCell->iRowid ){  | 
 
| 
181671
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
181675
 | 
 0  | 
 0  | 
   if( pNode->iNode==1 ){  | 
 
| 
181676
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
181679
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
181683
 | 
 0  | 
 0  | 
   }else if( newCellIsRight==0 ){  | 
 
| 
181687
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
181691
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
181717
 | 
 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 ){  | 
 
| 
181721
 | 
 0  | 
 0  | 
     if( rc==SQLITE_ROW ){  | 
 
| 
181731
 | 
 0  | 
 0  | 
       for(pTest=pLeaf; pTest && pTest->iNode!=iNode; pTest=pTest->pParent);  | 
 
| 
 | 
 0  | 
 0  | 
       for(pTest=pLeaf; pTest && pTest->iNode!=iNode; pTest=pTest->pParent);  | 
 
| 
181732
 | 
 0  | 
 0  | 
       if( !pTest ){  | 
 
| 
181737
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
181738
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && !pChild->pParent ) rc = SQLITE_CORRUPT_VTAB;  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && !pChild->pParent ) rc = SQLITE_CORRUPT_VTAB;  | 
 
| 
181756
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
181762
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
181765
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
181772
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=(rc = sqlite3_reset(pRtree->pDeleteNode)) ){  | 
 
| 
181779
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=(rc = sqlite3_reset(pRtree->pDeleteParent)) ){  | 
 
| 
181798
 | 
 0  | 
 0  | 
   if( pParent ){  | 
 
| 
181803
 | 
 0  | 
 0  | 
     for(ii=1; ii
 | 
 
| 
181810
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
181826
 | 
 0  | 
 0  | 
   if( SQLITE_OK!=(rc = fixLeafParent(pRtree, pNode)) ){  | 
 
| 
181842
 | 
 0  | 
 0  | 
   if( pParent ){  | 
 
| 
181843
 | 
 0  | 
 0  | 
     if( NCELL(pNode)
 | 
 
| 
181884
 | 
 0  | 
 0  | 
   if( !aCell ){  | 
 
| 
181891
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
181892
 | 
 0  | 
 0  | 
     if( ii==(nCell-1) ){  | 
 
| 
181898
 | 
 0  | 
 0  | 
     for(iDim=0; iDimnDim; iDim++){  | 
 
| 
181899
 | 
 0  | 
 0  | 
       aCenterCoord[iDim] += DCOORD(aCell[ii].aCoord[iDim*2]);  | 
 
| 
181900
 | 
 0  | 
 0  | 
       aCenterCoord[iDim] += DCOORD(aCell[ii].aCoord[iDim*2+1]);  | 
 
| 
181903
 | 
 0  | 
 0  | 
   for(iDim=0; iDimnDim; iDim++){  | 
 
| 
181907
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
181909
 | 
 0  | 
 0  | 
     for(iDim=0; iDimnDim; iDim++){  | 
 
| 
181910
 | 
 0  | 
 0  | 
       RtreeDValue coord = (DCOORD(aCell[ii].aCoord[iDim*2+1]) -   | 
 
| 
181911
 | 
 0  | 
 0  | 
                                DCOORD(aCell[ii].aCoord[iDim*2]));  | 
 
| 
181919
 | 
 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++){  | 
 
| 
181922
 | 
 0  | 
 0  | 
     if( p->iRowid==pCell->iRowid ){  | 
 
| 
181923
 | 
 0  | 
 0  | 
       if( iHeight==0 ){  | 
 
| 
181930
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
181933
 | 
 0  | 
 0  | 
   for(; rc==SQLITE_OK && ii
 | 
 
| 
 | 
 0  | 
 0  | 
   for(; rc==SQLITE_OK && ii
 | 
 
| 
181940
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
181944
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
181965
 | 
 0  | 
 7  | 
   if( iHeight>0 ){  | 
 
| 
181967
 | 
 0  | 
 0  | 
     if( pChild ){  | 
 
| 
181973
 | 
 0  | 
 7  | 
   if( nodeInsertCell(pRtree, pNode, pCell) ){  | 
 
| 
181974
 | 
 0  | 
 0  | 
     if( iHeight<=pRtree->iReinsertHeight || pNode->iNode==1){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iHeight<=pRtree->iReinsertHeight || pNode->iNode==1){  | 
 
| 
181982
 | 
 7  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
181983
 | 
 7  | 
 0  | 
       if( iHeight==0 ){  | 
 
| 
181998
 | 
 0  | 
 0  | 
   for(ii=0; rc==SQLITE_OK && ii
 | 
 
| 
 | 
 0  | 
 0  | 
   for(ii=0; rc==SQLITE_OK && ii
 | 
 
| 
182007
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182011
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
182048
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
182053
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
182056
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182060
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182066
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
182080
 | 
 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 ){  | 
 
| 
182085
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182089
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
182090
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182098
 | 
 0  | 
 0  | 
   for(pLeaf=pRtree->pDeleted; pLeaf; pLeaf=pRtree->pDeleted){  | 
 
| 
182099
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182108
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
182131
 | 
 0  | 
 0  | 
   if( f>d ){  | 
 
| 
182132
 | 
 0  | 
 0  | 
     f = (float)(d*(d<0 ? RNDAWAY : RNDTOWARDS));  | 
 
| 
182139
 | 
 0  | 
 0  | 
   if( f
 | 
 
| 
182140
 | 
 0  | 
 0  | 
     f = (float)(d*(d<0 ? RNDTOWARDS : RNDAWAY));  | 
 
| 
182166
 | 
 0  | 
 0  | 
   if( zSql ){  | 
 
| 
182173
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
182174
 | 
 0  | 
 0  | 
     if( iCol==0 ){  | 
 
| 
182189
 | 
 0  | 
 0  | 
   return (rc==SQLITE_OK ? SQLITE_CONSTRAINT : rc);  | 
 
| 
182208
 | 
 0  | 
 7  | 
   if( pRtree->nNodeRef ){  | 
 
| 
182230
 | 
 7  | 
 0  | 
   if( nData>1 ){  | 
 
| 
182234
 | 
 0  | 
 7  | 
     if( nn > pRtree->nDim2 ) nn = pRtree->nDim2;  | 
 
| 
182245
 | 
 0  | 
 7  | 
     if( pRtree->eCoordType==RTREE_COORD_REAL32 ){  | 
 
| 
182246
 | 
 0  | 
 0  | 
       for(ii=0; ii
 | 
 
| 
182249
 | 
 0  | 
 0  | 
         if( cell.aCoord[ii].f>cell.aCoord[ii+1].f ){  | 
 
| 
182257
 | 
 14  | 
 7  | 
       for(ii=0; ii
 | 
 
| 
182260
 | 
 0  | 
 14  | 
         if( cell.aCoord[ii].i>cell.aCoord[ii+1].i ){  | 
 
| 
182269
 | 
 7  | 
 0  | 
     if( sqlite3_value_type(aData[2])!=SQLITE_NULL ){  | 
 
| 
182271
 | 
 0  | 
 7  | 
       if( sqlite3_value_type(aData[0])==SQLITE_NULL  | 
 
| 
182272
 | 
 0  | 
 0  | 
        || sqlite3_value_int64(aData[0])!=cell.iRowid  | 
 
| 
182278
 | 
 0  | 
 7  | 
         if( SQLITE_ROW==steprc ){  | 
 
| 
182279
 | 
 0  | 
 0  | 
           if( sqlite3_vtab_on_conflict(pRtree->db)==SQLITE_REPLACE ){  | 
 
| 
182295
 | 
 0  | 
 7  | 
   if( sqlite3_value_type(aData[0])!=SQLITE_NULL ){  | 
 
| 
182303
 | 
 7  | 
 0  | 
   if( rc==SQLITE_OK && nData>1 ){  | 
 
| 
 | 
 7  | 
 0  | 
   if( rc==SQLITE_OK && nData>1 ){  | 
 
| 
182308
 | 
 0  | 
 7  | 
     if( bHaveRowid==0 ){  | 
 
| 
182313
 | 
 7  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182316
 | 
 7  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182321
 | 
 7  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
182325
 | 
 0  | 
 7  | 
     if( pRtree->nAux ){  | 
 
| 
182329
 | 
 0  | 
 0  | 
       for(jj=0; jjnAux; jj++){  | 
 
| 
182377
 | 
 0  | 
 0  | 
   if( zSql ){  | 
 
| 
182424
 | 
 1  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
182426
 | 
 0  | 
 1  | 
     return rc==SQLITE_ERROR ? SQLITE_OK : rc;  | 
 
| 
182429
 | 
 0  | 
 0  | 
   if( zSql==0 ){  | 
 
| 
182433
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182434
 | 
 0  | 
 0  | 
       if( sqlite3_step(p)==SQLITE_ROW ) nRow = sqlite3_column_int64(p, 0);  | 
 
| 
182436
 | 
 0  | 
 0  | 
     }else if( rc!=SQLITE_NOMEM ){  | 
 
| 
182440
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182441
 | 
 0  | 
 0  | 
       if( nRow==0 ){  | 
 
| 
182463
 | 
 12  | 
 0  | 
   for(i=0; i
 | 
 
| 
182464
 | 
 6  | 
 6  | 
     if( sqlite3_stricmp(zName, azName[i])==0 ) return 1;  | 
 
| 
182526
 | 
 1  | 
 0  | 
   if( isCreate ){  | 
 
| 
182533
 | 
 0  | 
 1  | 
     for(ii=0; iinAux; ii++){  | 
 
| 
182546
 | 
 0  | 
 1  | 
     if( !zCreate ){  | 
 
| 
182551
 | 
 0  | 
 1  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
182566
 | 
 8  | 
 1  | 
   for(i=0; i
 | 
 
| 
 | 
 8  | 
 0  | 
   for(i=0; i
 | 
 
| 
182569
 | 
 1  | 
 7  | 
     if( i!=3 || pRtree->nAux==0 ){  | 
 
| 
 | 
 1  | 
 0  | 
     if( i!=3 || pRtree->nAux==0 ){  | 
 
| 
182578
 | 
 8  | 
 0  | 
     if( zSql ){  | 
 
| 
182586
 | 
 0  | 
 1  | 
   if( pRtree->nAux ){  | 
 
| 
182590
 | 
 0  | 
 0  | 
     if( pRtree->zReadAuxSql==0 ){  | 
 
| 
182597
 | 
 0  | 
 0  | 
       for(ii=0; iinAux; ii++){  | 
 
| 
182598
 | 
 0  | 
 0  | 
         if( ii ) sqlite3_str_append(p, ",", 1);  | 
 
| 
182599
 | 
 0  | 
 0  | 
         if( iinAuxNotNull ){  | 
 
| 
182607
 | 
 0  | 
 0  | 
       if( zSql==0 ){  | 
 
| 
182629
 | 
 1  | 
 0  | 
   if( zSql ){  | 
 
| 
182632
 | 
 1  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182633
 | 
 1  | 
 0  | 
       if( SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
182665
 | 
 1  | 
 0  | 
   if( isCreate ){  | 
 
| 
182669
 | 
 1  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
182671
 | 
 1  | 
 0  | 
       if( (4+pRtree->nBytesPerCell*RTREE_MAXCELLS)iNodeSize ){  | 
 
| 
182683
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
182685
 | 
 0  | 
 0  | 
     }else if( pRtree->iNodeSize<(512-64) ){  | 
 
| 
182732
 | 
 0  | 
 1  | 
   if( argc>RTREE_MAX_AUX_COLUMN+3 ){  | 
 
| 
182743
 | 
 0  | 
 1  | 
   if( !pRtree ){  | 
 
| 
182762
 | 
 4  | 
 1  | 
   for(ii=4; ii
 | 
 
| 
182763
 | 
 0  | 
 4  | 
     if( argv[ii][0]=='+' ){  | 
 
| 
182766
 | 
 0  | 
 4  | 
     }else if( pRtree->nAux>0 ){  | 
 
| 
182775
 | 
 0  | 
 1  | 
   if( !zSql ){  | 
 
| 
182777
 | 
 0  | 
 1  | 
   }else if( ii
 | 
 
| 
182780
 | 
 0  | 
 1  | 
   }else if( SQLITE_OK!=(rc = sqlite3_declare_vtab(db, zSql)) ){  | 
 
| 
182784
 | 
 0  | 
 1  | 
   if( rc ) goto rtreeInit_fail;  | 
 
| 
182786
 | 
 0  | 
 1  | 
   if( pRtree->nDim<1 ){  | 
 
| 
182788
 | 
 0  | 
 1  | 
   }else if( pRtree->nDim2>RTREE_MAX_DIMENSIONS*2 ){  | 
 
| 
182790
 | 
 0  | 
 1  | 
   }else if( pRtree->nDim2 % 2 ){  | 
 
| 
182795
 | 
 0  | 
 1  | 
   if( iErr ){  | 
 
| 
182803
 | 
 0  | 
 1  | 
   if( rc ) goto rtreeInit_fail;  | 
 
| 
182805
 | 
 0  | 
 1  | 
   if( rc ){  | 
 
| 
182814
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ) rc = SQLITE_ERROR;  | 
 
| 
182852
 | 
 0  | 
 0  | 
   for(ii=0; ii
 | 
 
| 
182861
 | 
 0  | 
 0  | 
     for(jj=0; jj
 | 
 
| 
182872
 | 
 0  | 
 0  | 
     if( zText ){  | 
 
| 
182895
 | 
 0  | 
 0  | 
   if( sqlite3_value_type(apArg[0])!=SQLITE_BLOB   | 
 
| 
182896
 | 
 0  | 
 0  | 
    || sqlite3_value_bytes(apArg[0])<2  | 
 
| 
182933
 | 
 0  | 
 0  | 
   if( pCheck->rc==SQLITE_OK ) pCheck->rc = rc;  | 
 
| 
182955
 | 
 0  | 
 0  | 
   if( pCheck->rc==SQLITE_OK ){  | 
 
| 
182956
 | 
 0  | 
 0  | 
     if( z==0 ){  | 
 
| 
182976
 | 
 0  | 
 0  | 
   if( pCheck->rc==SQLITE_OK && pCheck->nErr
 | 
 
| 
 | 
 0  | 
 0  | 
   if( pCheck->rc==SQLITE_OK && pCheck->nErr
 | 
 
| 
182978
 | 
 0  | 
 0  | 
     if( z==0 ){  | 
 
| 
182981
 | 
 0  | 
 0  | 
       pCheck->zReport = sqlite3_mprintf("%z%s%z",   | 
 
| 
182984
 | 
 0  | 
 0  | 
       if( pCheck->zReport==0 ){  | 
 
| 
183011
 | 
 0  | 
 0  | 
   if( pCheck->pGetNode==0 ){  | 
 
| 
183018
 | 
 0  | 
 0  | 
   if( pCheck->rc==SQLITE_OK ){  | 
 
| 
183020
 | 
 0  | 
 0  | 
     if( sqlite3_step(pCheck->pGetNode)==SQLITE_ROW ){  | 
 
| 
183024
 | 
 0  | 
 0  | 
       if( pRet==0 ){  | 
 
| 
183032
 | 
 0  | 
 0  | 
     if( pCheck->rc==SQLITE_OK && pRet==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pCheck->rc==SQLITE_OK && pRet==0 ){  | 
 
| 
183066
 | 
 0  | 
 0  | 
   if( pCheck->aCheckMapping[bLeaf]==0 ){  | 
 
| 
183071
 | 
 0  | 
 0  | 
   if( pCheck->rc!=SQLITE_OK ) return;  | 
 
| 
183076
 | 
 0  | 
 0  | 
   if( rc==SQLITE_DONE ){  | 
 
| 
183077
 | 
 0  | 
 0  | 
     rtreeCheckAppendMsg(pCheck, "Mapping (%lld -> %lld) missing from %s table",  | 
 
| 
183080
 | 
 0  | 
 0  | 
   }else if( rc==SQLITE_ROW ){  | 
 
| 
183082
 | 
 0  | 
 0  | 
     if( ii!=iVal ){  | 
 
| 
183083
 | 
 0  | 
 0  | 
       rtreeCheckAppendMsg(pCheck,   | 
 
| 
183115
 | 
 0  | 
 0  | 
   for(i=0; inDim; i++){  | 
 
| 
183120
 | 
 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 ){  | 
 
| 
183126
 | 
 0  | 
 0  | 
     if( pParent ){  | 
 
| 
183130
 | 
 0  | 
 0  | 
       if( (pCheck->bInt ? c1.i
 | 
 
| 
 | 
 0  | 
 0  | 
       if( (pCheck->bInt ? c1.i
 | 
 
| 
 | 
 0  | 
 0  | 
       if( (pCheck->bInt ? c1.i
 | 
 
| 
183131
 | 
 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)  | 
 
| 
183163
 | 
 0  | 
 0  | 
   if( aNode ){  | 
 
| 
183164
 | 
 0  | 
 0  | 
     if( nNode<4 ){  | 
 
| 
183171
 | 
 0  | 
 0  | 
       if( aParent==0 ){  | 
 
| 
183173
 | 
 0  | 
 0  | 
         if( iDepth>RTREE_MAX_DEPTH ){  | 
 
| 
183180
 | 
 0  | 
 0  | 
       if( (4 + nCell*(8 + pCheck->nDim*2*4))>nNode ){  | 
 
| 
183186
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
183191
 | 
 0  | 
 0  | 
           if( iDepth>0 ){  | 
 
| 
183214
 | 
 0  | 
 0  | 
   if( pCheck->rc==SQLITE_OK ){  | 
 
| 
183219
 | 
 0  | 
 0  | 
     if( pCount ){  | 
 
| 
183220
 | 
 0  | 
 0  | 
       if( sqlite3_step(pCount)==SQLITE_ROW ){  | 
 
| 
183222
 | 
 0  | 
 0  | 
         if( nActual!=nExpect ){  | 
 
| 
183257
 | 
 0  | 
 0  | 
   if( sqlite3_get_autocommit(db) ){  | 
 
| 
183263
 | 
 0  | 
 0  | 
   if( check.rc==SQLITE_OK ){  | 
 
| 
183265
 | 
 0  | 
 0  | 
     if( pStmt ){  | 
 
| 
183274
 | 
 0  | 
 0  | 
   if( pStmt ){  | 
 
| 
183277
 | 
 0  | 
 0  | 
     if( check.nDim<1 ){  | 
 
| 
183279
 | 
 0  | 
 0  | 
     }else if( SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
183283
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_CORRUPT ) check.rc = rc;  | 
 
| 
183287
 | 
 0  | 
 0  | 
   if( check.nDim>=1 ){  | 
 
| 
183288
 | 
 0  | 
 0  | 
     if( check.rc==SQLITE_OK ){  | 
 
| 
183301
 | 
 0  | 
 0  | 
   if( bEnd ){  | 
 
| 
183303
 | 
 0  | 
 0  | 
     if( check.rc==SQLITE_OK ) check.rc = rc;  | 
 
| 
183347
 | 
 0  | 
 0  | 
   if( nArg!=1 && nArg!=2 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( nArg!=1 && nArg!=2 ){  | 
 
| 
183356
 | 
 0  | 
 0  | 
     if( nArg==1 ){  | 
 
| 
183363
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
183364
 | 
 0  | 
 0  | 
       sqlite3_result_text(ctx, zReport ? zReport : "ok", -1, SQLITE_TRANSIENT);  | 
 
| 
185188
 | 
 251  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
185191
 | 
 251  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
185194
 | 
 251  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
185202
 | 
 251  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
185224
 | 
 0  | 
 0  | 
   if( pInfo->xDestructor ) pInfo->xDestructor(pInfo->pContext);  | 
 
| 
185234
 | 
 0  | 
 0  | 
   for(i=0; inParam; i++){  | 
 
| 
185263
 | 
 0  | 
 0  | 
   if( !pBlob ){  | 
 
| 
185271
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
185273
 | 
 0  | 
 0  | 
       if( pBlob->apSqlParam[i]==0 ) memErr = 1;  | 
 
| 
185280
 | 
 0  | 
 0  | 
     if( memErr ){  | 
 
| 
185302
 | 
 0  | 
 0  | 
   if( !pGeomCtx ) return SQLITE_NOMEM;  | 
 
| 
185327
 | 
 0  | 
 0  | 
   if( !pGeomCtx ) return SQLITE_NOMEM;  | 
 
| 
200272
 | 
 0  | 
 0  | 
   if( fts5yypParser ){  | 
 
| 
200367
 | 
 0  | 
 0  | 
   while( pParser->fts5yytos>pParser->fts5yystack ) fts5yy_pop_parser_stack(pParser);  | 
 
| 
200387
 | 
 0  | 
 0  | 
   if( p==0 ) return;  | 
 
| 
200451
 | 
 0  | 
 0  | 
   if( stateno>fts5YY_MAX_SHIFT ) return stateno;  | 
 
| 
200463
 | 
 0  | 
 0  | 
     if( i>=fts5YY_NLOOKAHEAD || fts5yy_lookahead[i]!=iLookAhead ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( i>=fts5YY_NLOOKAHEAD || fts5yy_lookahead[i]!=iLookAhead ){  | 
 
| 
200551
 | 
 0  | 
 0  | 
    while( fts5yypParser->fts5yytos>fts5yypParser->fts5yystack ) fts5yy_pop_parser_stack(fts5yypParser);  | 
 
| 
200601
 | 
 0  | 
 0  | 
   if( fts5yypParser->fts5yytos>fts5yypParser->fts5yystackEnd ){  | 
 
| 
200615
 | 
 0  | 
 0  | 
   if( fts5yyNewState > fts5YY_MAX_SHIFT ){  | 
 
| 
200706
 | 
 0  | 
 0  | 
   if( fts5yyRuleInfo[fts5yyruleno].nrhs==0 ){  | 
 
| 
200714
 | 
 0  | 
 0  | 
     if( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystackEnd ){  | 
 
| 
201039
 | 
 0  | 
 0  | 
     if( fts5yyact >= fts5YY_MIN_REDUCE ){  | 
 
| 
201042
 | 
 0  | 
 0  | 
     }else if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){  | 
 
| 
201048
 | 
 0  | 
 0  | 
     }else if( fts5yyact==fts5YY_ACCEPT_ACTION ){  | 
 
| 
201154
 | 
 0  | 
 0  | 
   }while( fts5yypParser->fts5yytos>fts5yypParser->fts5yystack );  | 
 
| 
201243
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && pIter->iInstnInst ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && pIter->iInstnInst ){  | 
 
| 
201246
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
201247
 | 
 0  | 
 0  | 
       if( ic==pIter->iCol ){  | 
 
| 
201249
 | 
 0  | 
 0  | 
         if( pIter->iStart<0 ){  | 
 
| 
201252
 | 
 0  | 
 0  | 
         }else if( io<=pIter->iEnd ){  | 
 
| 
201253
 | 
 0  | 
 0  | 
           if( iEnd>pIter->iEnd ) pIter->iEnd = iEnd;  | 
 
| 
201283
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
201323
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
201324
 | 
 0  | 
 0  | 
     if( n<0 ) n = (int)strlen(z);  | 
 
| 
201326
 | 
 0  | 
 0  | 
     if( p->zOut==0 ) *pRc = SQLITE_NOMEM;  | 
 
| 
201347
 | 
 0  | 
 0  | 
   if( tflags & FTS5_TOKEN_COLOCATED ) return SQLITE_OK;  | 
 
| 
201350
 | 
 0  | 
 0  | 
   if( p->iRangeEnd>0 ){  | 
 
| 
201351
 | 
 0  | 
 0  | 
     if( iPosiRangeStart || iPos>p->iRangeEnd ) return SQLITE_OK;  | 
 
| 
 | 
 0  | 
 0  | 
     if( iPosiRangeStart || iPos>p->iRangeEnd ) return SQLITE_OK;  | 
 
| 
201352
 | 
 0  | 
 0  | 
     if( p->iRangeStart && iPos==p->iRangeStart ) p->iOff = iStartOff;  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->iRangeStart && iPos==p->iRangeStart ) p->iOff = iStartOff;  | 
 
| 
201355
 | 
 0  | 
 0  | 
   if( iPos==p->iter.iStart ){  | 
 
| 
201361
 | 
 0  | 
 0  | 
   if( iPos==p->iter.iEnd ){  | 
 
| 
201362
 | 
 0  | 
 0  | 
     if( p->iRangeEnd && p->iter.iStartiRangeStart ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->iRangeEnd && p->iter.iStartiRangeStart ){  | 
 
| 
201368
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
201373
 | 
 0  | 
 0  | 
   if( p->iRangeEnd>0 && iPos==p->iRangeEnd ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->iRangeEnd>0 && iPos==p->iRangeEnd ){  | 
 
| 
201376
 | 
 0  | 
 0  | 
     if( iPos>=p->iter.iStart && iPositer.iEnd ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iPos>=p->iter.iStart && iPositer.iEnd ){  | 
 
| 
201398
 | 
 0  | 
 0  | 
   if( nVal!=3 ){  | 
 
| 
201410
 | 
 0  | 
 0  | 
   if( ctx.zIn ){  | 
 
| 
201411
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
201415
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
201420
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
201425
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
201451
 | 
 0  | 
 0  | 
   if( p->nFirstAlloc==p->nFirst ){  | 
 
| 
201452
 | 
 0  | 
 0  | 
     int nNew = p->nFirstAlloc ? p->nFirstAlloc*2 : 64;  | 
 
| 
201456
 | 
 0  | 
 0  | 
     if( aNew==0 ) return SQLITE_NOMEM;  | 
 
| 
201482
 | 
 0  | 
 0  | 
   if( (tflags & FTS5_TOKEN_COLOCATED)==0 ){  | 
 
| 
201484
 | 
 0  | 
 0  | 
     if( p->iPos>0 ){  | 
 
| 
201487
 | 
 0  | 
 0  | 
       for(i=iStartOff-1; i>=0; i--){  | 
 
| 
201489
 | 
 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;  | 
 
| 
201491
 | 
 0  | 
 0  | 
       if( i!=iStartOff-1 && (c=='.' || c==':') ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( i!=iStartOff-1 && (c=='.' || c==':') ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( i!=iStartOff-1 && (c=='.' || c==':') ){  | 
 
| 
201524
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
201526
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && ic==iCol && iOff>=iPos && iOff<(iPos+nToken) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && ic==iCol && iOff>=iPos && iOff<(iPos+nToken) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && ic==iCol && iOff>=iPos && iOff<(iPos+nToken) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && ic==iCol && iOff>=iPos && iOff<(iPos+nToken) ){  | 
 
| 
201527
 | 
 0  | 
 0  | 
       nScore += (aSeen[ip] ? 1 : 1000);  | 
 
| 
201529
 | 
 0  | 
 0  | 
       if( iFirst<0 ) iFirst = iOff;  | 
 
| 
201535
 | 
 0  | 
 0  | 
   if( piPos ){  | 
 
| 
201537
 | 
 0  | 
 0  | 
     if( (iAdj+nToken)>nDocsize ) iAdj = nDocsize - nToken;  | 
 
| 
201538
 | 
 0  | 
 0  | 
     if( iAdj<0 ) iAdj = 0;  | 
 
| 
201552
 | 
 0  | 
 0  | 
   return zRet ? zRet : "";  | 
 
| 
201581
 | 
 0  | 
 0  | 
   if( nVal!=5 ){  | 
 
| 
201598
 | 
 0  | 
 0  | 
   if( aSeen==0 ){  | 
 
| 
201601
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
201606
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
201607
 | 
 0  | 
 0  | 
     if( iCol<0 || iCol==i ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iCol<0 || iCol==i ){  | 
 
| 
201614
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) break;  | 
 
| 
201618
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) break;  | 
 
| 
201620
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) break;  | 
 
| 
201622
 | 
 0  | 
 0  | 
       for(ii=0; rc==SQLITE_OK && ii
 | 
 
| 
 | 
 0  | 
 0  | 
       for(ii=0; rc==SQLITE_OK && ii
 | 
 
| 
201629
 | 
 0  | 
 0  | 
         if( ic!=i || rc!=SQLITE_OK ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
         if( ic!=i || rc!=SQLITE_OK ) continue;  | 
 
| 
201634
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && nScore>nBestScore ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK && nScore>nBestScore ){  | 
 
| 
201641
 | 
 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 ){  | 
 
| 
201642
 | 
 0  | 
 0  | 
           for(jj=0; jj<(sFinder.nFirst-1); jj++){  | 
 
| 
201643
 | 
 0  | 
 0  | 
             if( sFinder.aFirst[jj+1]>io ) break;  | 
 
| 
201646
 | 
 0  | 
 0  | 
           if( sFinder.aFirst[jj]
 | 
 
| 
201652
 | 
 0  | 
 0  | 
             nScore += (sFinder.aFirst[jj]==0 ? 120 : 100);  | 
 
| 
201653
 | 
 0  | 
 0  | 
             if( rc==SQLITE_OK && nScore>nBestScore ){  | 
 
| 
 | 
 0  | 
 0  | 
             if( rc==SQLITE_OK && nScore>nBestScore ){  | 
 
| 
201665
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
201668
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && nColSize==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && nColSize==0 ){  | 
 
| 
201671
 | 
 0  | 
 0  | 
   if( ctx.zIn ){  | 
 
| 
201672
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
201679
 | 
 0  | 
 0  | 
     if( iBestStart>0 ){  | 
 
| 
201685
 | 
 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
 | 
 
| 
201689
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
201692
 | 
 0  | 
 0  | 
     if( ctx.iRangeEnd>=(nColSize-1) ){  | 
 
| 
201698
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
201751
 | 
 0  | 
 0  | 
   if( p==0 ){  | 
 
| 
201762
 | 
 0  | 
 0  | 
     if( p==0 ){  | 
 
| 
201772
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = pApi->xRowCount(pFts, &nRow);  | 
 
| 
201773
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = pApi->xColumnTotalSize(pFts, -1, &nToken);  | 
 
| 
201774
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) p->avgdl = (double)nToken  / (double)nRow;  | 
 
| 
201777
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && i
 | 
 
| 
201780
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
201795
 | 
 0  | 
 0  | 
         if( idf<=0.0 ) idf = 1e-6;  | 
 
| 
201800
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
201805
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) p = 0;  | 
 
| 
201834
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
201839
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
201842
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
201843
 | 
 0  | 
 0  | 
       double w = (nVal > ic) ? sqlite3_value_double(apVal[ic]) : 1.0;  | 
 
| 
201849
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
201856
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && inPhrase; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; rc==SQLITE_OK && inPhrase; i++){  | 
 
| 
201865
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
201886
 | 
 1004  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 753  | 
 251  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
201918
 | 
 0  | 
 0  | 
   if( (u32)pBuf->nSpace
 | 
 
| 
201919
 | 
 0  | 
 0  | 
     u32 nNew = pBuf->nSpace ? pBuf->nSpace : 64;  | 
 
| 
201921
 | 
 0  | 
 0  | 
     while( nNew
 | 
 
| 
201925
 | 
 0  | 
 0  | 
     if( pNew==0 ){  | 
 
| 
201942
 | 
 0  | 
 0  | 
   if( fts5BufferGrow(pRc, pBuf, 9) ) return;  | 
 
| 
 | 
 0  | 
 0  | 
   if( fts5BufferGrow(pRc, pBuf, 9) ) return;  | 
 
| 
201969
 | 
 0  | 
 0  | 
   if( nData ){  | 
 
| 
201970
 | 
 0  | 
 0  | 
     if( fts5BufferGrow(pRc, pBuf, nData) ) return;  | 
 
| 
 | 
 0  | 
 0  | 
     if( fts5BufferGrow(pRc, pBuf, nData) ) return;  | 
 
| 
202004
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
202011
 | 
 0  | 
 0  | 
     if( zTmp==0 ){  | 
 
| 
202022
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
202027
 | 
 0  | 
 0  | 
     if( zRet==0 ){  | 
 
| 
202072
 | 
 0  | 
 0  | 
   if( i>=n ){  | 
 
| 
202079
 | 
 0  | 
 0  | 
     fts5FastGetVarint32(a, i, iVal);  | 
 
| 
202080
 | 
 0  | 
 0  | 
     if( iVal==1 ){  | 
 
| 
202081
 | 
 0  | 
 0  | 
       fts5FastGetVarint32(a, i, iVal);  | 
 
| 
202083
 | 
 0  | 
 0  | 
       fts5FastGetVarint32(a, i, iVal);  | 
 
| 
202097
 | 
 0  | 
 0  | 
   if( sqlite3Fts5PoslistNext64(pIter->a, pIter->n, &pIter->i, &pIter->iPos) ){  | 
 
| 
202126
 | 
 0  | 
 0  | 
   if( (iPos & colmask) != (*piPrev & colmask) ){  | 
 
| 
202141
 | 
 0  | 
 0  | 
   if( fts5BufferGrow(&rc, pBuf, 5+5+5) ) return rc;  | 
 
| 
 | 
 0  | 
 0  | 
   if( fts5BufferGrow(&rc, pBuf, 5+5+5) ) return rc;  | 
 
| 
202148
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
202150
 | 
 0  | 
 0  | 
     if( pRet==0 ){  | 
 
| 
202151
 | 
 0  | 
 0  | 
       if( nByte>0 ) *pRc = SQLITE_NOMEM;  | 
 
| 
202169
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
202170
 | 
 0  | 
 0  | 
     if( nIn<0 ){  | 
 
| 
202174
 | 
 0  | 
 0  | 
     if( zRet ){  | 
 
| 
202207
 | 
 0  | 
 0  | 
   return (t & 0x80) || aBareword[(int)t];  | 
 
| 
 | 
 0  | 
 0  | 
   return (t & 0x80) || aBareword[(int)t];  | 
 
| 
202239
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
202248
 | 
 0  | 
 0  | 
     for(i=nTerm-1; i>=0; i--){  | 
 
| 
202254
 | 
 0  | 
 0  | 
     for(pEntry=p->apHash[hash]; pEntry; pEntry=pEntry->pNext){  | 
 
| 
202255
 | 
 0  | 
 0  | 
       if( pEntry->iIdx==iIdx   | 
 
| 
202256
 | 
 0  | 
 0  | 
           && pEntry->nTerm==nTerm   | 
 
| 
202257
 | 
 0  | 
 0  | 
           && memcmp(pEntry->pTerm, pTerm, nTerm)==0   | 
 
| 
202264
 | 
 0  | 
 0  | 
     if( pEntry==0 ){  | 
 
| 
202266
 | 
 0  | 
 0  | 
       if( pEntry ){  | 
 
| 
202281
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
202283
 | 
 0  | 
 0  | 
     for(i=0; iapHash); i++){  | 
 
| 
202285
 | 
 0  | 
 0  | 
       while( pEntry ){  | 
 
| 
202327
 | 
 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=='`');  | 
 
| 
202337
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
202338
 | 
 0  | 
 0  | 
     while( fts5_iswhitespace(*p) ){ p++; }  | 
 
| 
202350
 | 
 0  | 
 0  | 
   while ( sqlite3Fts5IsBareword(*p) ) p++;  | 
 
| 
202351
 | 
 0  | 
 0  | 
   if( p==pIn ) p = 0;  | 
 
| 
202356
 | 
 0  | 
 0  | 
   return (a>='0' && a<='9');  | 
 
| 
 | 
 0  | 
 0  | 
   return (a>='0' && a<='9');  | 
 
| 
202365
 | 
 0  | 
 0  | 
       if( sqlite3_strnicmp("null", p, 4)==0 ){  | 
 
| 
202374
 | 
 0  | 
 0  | 
       if( *p=='\'' ){  | 
 
| 
202376
 | 
 0  | 
 0  | 
         while( (*p>='a' && *p<='f')   | 
 
| 
 | 
 0  | 
 0  | 
         while( (*p>='a' && *p<='f')   | 
 
| 
202377
 | 
 0  | 
 0  | 
             || (*p>='A' && *p<='F')   | 
 
| 
 | 
 0  | 
 0  | 
             || (*p>='A' && *p<='F')   | 
 
| 
202378
 | 
 0  | 
 0  | 
             || (*p>='0' && *p<='9')   | 
 
| 
 | 
 0  | 
 0  | 
             || (*p>='0' && *p<='9')   | 
 
| 
202382
 | 
 0  | 
 0  | 
         if( *p=='\'' && 0==((p-pIn)%2) ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( *p=='\'' && 0==((p-pIn)%2) ){  | 
 
| 
202394
 | 
 0  | 
 0  | 
       while( p ){  | 
 
| 
202395
 | 
 0  | 
 0  | 
         if( *p=='\'' ){  | 
 
| 
202397
 | 
 0  | 
 0  | 
           if( *p!='\'' ) break;  | 
 
| 
202400
 | 
 0  | 
 0  | 
         if( *p==0 ) p = 0;  | 
 
| 
202406
 | 
 0  | 
 0  | 
       if( *p=='+' || *p=='-' ) p++;  | 
 
| 
 | 
 0  | 
 0  | 
       if( *p=='+' || *p=='-' ) p++;  | 
 
| 
202407
 | 
 0  | 
 0  | 
       while( fts5_isdigit(*p) ) p++;  | 
 
| 
202412
 | 
 0  | 
 0  | 
       if( *p=='.' && fts5_isdigit(p[1]) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( *p=='.' && fts5_isdigit(p[1]) ){  | 
 
| 
202414
 | 
 0  | 
 0  | 
         while( fts5_isdigit(*p) ) p++;  | 
 
| 
202416
 | 
 0  | 
 0  | 
       if( p==pIn ) p = 0;  | 
 
| 
202445
 | 
 0  | 
 0  | 
   if( q=='[' ) q = ']';    | 
 
| 
202447
 | 
 0  | 
 0  | 
   while( ALWAYS(z[iIn]) ){  | 
 
| 
202448
 | 
 0  | 
 0  | 
     if( z[iIn]==q ){  | 
 
| 
202449
 | 
 0  | 
 0  | 
       if( z[iIn+1]!=q ){  | 
 
| 
202487
 | 
 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=='`' ){  | 
 
| 
202508
 | 
 0  | 
 0  | 
   for(i=0; aEnum[i].zName; i++){  | 
 
| 
202509
 | 
 0  | 
 0  | 
     if( sqlite3_strnicmp(aEnum[i].zName, zEnum, nEnum)==0 ){  | 
 
| 
202510
 | 
 0  | 
 0  | 
       if( iVal>=0 ) return SQLITE_ERROR;  | 
 
| 
202537
 | 
 0  | 
 0  | 
   if( sqlite3_strnicmp("prefix", zCmd, nCmd)==0 ){  | 
 
| 
202541
 | 
 0  | 
 0  | 
     if( pConfig->aPrefix==0 ){  | 
 
| 
202543
 | 
 0  | 
 0  | 
       if( rc ) return rc;  | 
 
| 
202550
 | 
 0  | 
 0  | 
       while( p[0]==' ' ) p++;  | 
 
| 
202551
 | 
 0  | 
 0  | 
       if( bFirst==0 && p[0]==',' ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( bFirst==0 && p[0]==',' ){  | 
 
| 
202553
 | 
 0  | 
 0  | 
         while( p[0]==' ' ) p++;  | 
 
| 
202554
 | 
 0  | 
 0  | 
       }else if( p[0]=='\0' ){  | 
 
| 
202557
 | 
 0  | 
 0  | 
       if( p[0]<'0' || p[0]>'9' ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( p[0]<'0' || p[0]>'9' ){  | 
 
| 
202563
 | 
 0  | 
 0  | 
       if( pConfig->nPrefix==FTS5_MAX_PREFIX_INDEXES ){  | 
 
| 
202571
 | 
 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 ){  | 
 
| 
202576
 | 
 0  | 
 0  | 
       if( nPre<=0 || nPre>=1000 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nPre<=0 || nPre>=1000 ){  | 
 
| 
202590
 | 
 0  | 
 0  | 
   if( sqlite3_strnicmp("tokenize", zCmd, nCmd)==0 ){  | 
 
| 
202597
 | 
 0  | 
 0  | 
     if( azArg && pSpace ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( azArg && pSpace ){  | 
 
| 
202598
 | 
 0  | 
 0  | 
       if( pConfig->pTok ){  | 
 
| 
202602
 | 
 0  | 
 0  | 
         for(nArg=0; p && *p; nArg++){  | 
 
| 
 | 
 0  | 
 0  | 
         for(nArg=0; p && *p; nArg++){  | 
 
| 
202604
 | 
 0  | 
 0  | 
           if( *p2=='\'' ){  | 
 
| 
202609
 | 
 0  | 
 0  | 
           if( p ){  | 
 
| 
202617
 | 
 0  | 
 0  | 
         if( p==0 ){  | 
 
| 
202634
 | 
 0  | 
 0  | 
   if( sqlite3_strnicmp("content", zCmd, nCmd)==0 ){  | 
 
| 
202635
 | 
 0  | 
 0  | 
     if( pConfig->eContent!=FTS5_CONTENT_NORMAL ){  | 
 
| 
202639
 | 
 0  | 
 0  | 
       if( zArg[0] ){  | 
 
| 
202649
 | 
 0  | 
 0  | 
   if( sqlite3_strnicmp("content_rowid", zCmd, nCmd)==0 ){  | 
 
| 
202650
 | 
 0  | 
 0  | 
     if( pConfig->zContentRowid ){  | 
 
| 
202659
 | 
 0  | 
 0  | 
   if( sqlite3_strnicmp("columnsize", zCmd, nCmd)==0 ){  | 
 
| 
202660
 | 
 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' ){  | 
 
| 
202669
 | 
 0  | 
 0  | 
   if( sqlite3_strnicmp("detail", zCmd, nCmd)==0 ){  | 
 
| 
202677
 | 
 0  | 
 0  | 
     if( (rc = fts5ConfigSetEnum(aDetail, zArg, &pConfig->eDetail)) ){  | 
 
| 
202729
 | 
 0  | 
 0  | 
   if( zOut==0 ){  | 
 
| 
202733
 | 
 0  | 
 0  | 
     if( fts5_isopenquote(zOut[0]) ){  | 
 
| 
202739
 | 
 0  | 
 0  | 
       if( zRet ){  | 
 
| 
202745
 | 
 0  | 
 0  | 
   if( zRet==0 ){  | 
 
| 
202761
 | 
 0  | 
 0  | 
   if( 0==sqlite3_stricmp(zCol, FTS5_RANK_NAME)   | 
 
| 
202762
 | 
 0  | 
 0  | 
    || 0==sqlite3_stricmp(zCol, FTS5_ROWID_NAME)   | 
 
| 
202766
 | 
 0  | 
 0  | 
   }else if( zArg ){  | 
 
| 
202767
 | 
 0  | 
 0  | 
     if( 0==sqlite3_stricmp(zArg, "unindexed") ){  | 
 
| 
202788
 | 
 0  | 
 0  | 
   if( p->eContent!=FTS5_CONTENT_NONE ){  | 
 
| 
202789
 | 
 0  | 
 0  | 
     for(i=0; inCol; i++){  | 
 
| 
202790
 | 
 0  | 
 0  | 
       if( p->eContent==FTS5_CONTENT_EXTERNAL ){  | 
 
| 
202829
 | 
 0  | 
 0  | 
   if( pRet==0 ) return SQLITE_NOMEM;  | 
 
| 
202844
 | 
 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 ){  | 
 
| 
202849
 | 
 0  | 
 0  | 
   for(i=3; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
   for(i=3; rc==SQLITE_OK && i
 | 
 
| 
202859
 | 
 0  | 
 0  | 
     if( z && *z=='=' ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( z && *z=='=' ){  | 
 
| 
202862
 | 
 0  | 
 0  | 
       if( bMustBeCol ) z = 0;  | 
 
| 
202865
 | 
 0  | 
 0  | 
     if( z && z[0] ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( z && z[0] ){  | 
 
| 
202868
 | 
 0  | 
 0  | 
       if( z && z[0] ) z = 0;  | 
 
| 
 | 
 0  | 
 0  | 
       if( z && z[0] ) z = 0;  | 
 
| 
202871
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
202872
 | 
 0  | 
 0  | 
       if( z==0 ){  | 
 
| 
202876
 | 
 0  | 
 0  | 
         if( bOption ){  | 
 
| 
202877
 | 
 0  | 
 0  | 
           rc = fts5ConfigParseSpecial(pGlobal, pRet, zOne, zTwo?zTwo:"", pzErr);  | 
 
| 
202892
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pRet->pTok==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pRet->pTok==0 ){  | 
 
| 
202897
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pRet->zContent==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pRet->zContent==0 ){  | 
 
| 
202902
 | 
 0  | 
 0  | 
     if( pRet->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
202904
 | 
 0  | 
 0  | 
     }else if( pRet->bColumnsize ){  | 
 
| 
202908
 | 
 0  | 
 0  | 
     if( zTail ){  | 
 
| 
202915
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pRet->zContentRowid==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pRet->zContentRowid==0 ){  | 
 
| 
202920
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
202924
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
202935
 | 
 0  | 
 0  | 
   if( pConfig ){  | 
 
| 
202937
 | 
 0  | 
 0  | 
     if( pConfig->pTok ){  | 
 
| 
202942
 | 
 0  | 
 0  | 
     for(i=0; inCol; i++){  | 
 
| 
202967
 | 
 0  | 
 0  | 
   for(i=0; zSql && inCol; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; zSql && inCol; i++){  | 
 
| 
202968
 | 
 0  | 
 0  | 
     const char *zSep = (i==0?"":", ");  | 
 
| 
202976
 | 
 0  | 
 0  | 
   if( zSql ){  | 
 
| 
203014
 | 
 0  | 
 0  | 
   if( pText==0 ) return SQLITE_OK;  | 
 
| 
203033
 | 
 0  | 
 0  | 
     if( p==0 || *p==')' ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( p==0 || *p==')' ) break;  | 
 
| 
203034
 | 
 0  | 
 0  | 
     if( *p!=',' ){  | 
 
| 
203067
 | 
 0  | 
 0  | 
   if( p==0 ){  | 
 
| 
203074
 | 
 0  | 
 0  | 
     if( p ){  | 
 
| 
203076
 | 
 0  | 
 0  | 
       if( zRank ) memcpy(zRank, pRank, p-pRank);  | 
 
| 
203081
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
203083
 | 
 0  | 
 0  | 
       if( *p!='(' ) rc = SQLITE_ERROR;  | 
 
| 
203086
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
203090
 | 
 0  | 
 0  | 
       if( *p!=')' ){  | 
 
| 
203092
 | 
 0  | 
 0  | 
         if( p==0 ){  | 
 
| 
203096
 | 
 0  | 
 0  | 
           if( zRankArgs ) memcpy(zRankArgs, pArgs, p-pArgs);  | 
 
| 
203102
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
203120
 | 
 0  | 
 0  | 
   if( 0==sqlite3_stricmp(zKey, "pgsz") ){  | 
 
| 
203122
 | 
 0  | 
 0  | 
     if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){  | 
 
| 
203125
 | 
 0  | 
 0  | 
     if( pgsz<=0 || pgsz>FTS5_MAX_PAGE_SIZE ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pgsz<=0 || pgsz>FTS5_MAX_PAGE_SIZE ){  | 
 
| 
203132
 | 
 0  | 
 0  | 
   else if( 0==sqlite3_stricmp(zKey, "hashsize") ){  | 
 
| 
203134
 | 
 0  | 
 0  | 
     if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){  | 
 
| 
203137
 | 
 0  | 
 0  | 
     if( nHashSize<=0 ){  | 
 
| 
203144
 | 
 0  | 
 0  | 
   else if( 0==sqlite3_stricmp(zKey, "automerge") ){  | 
 
| 
203146
 | 
 0  | 
 0  | 
     if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){  | 
 
| 
203149
 | 
 0  | 
 0  | 
     if( nAutomerge<0 || nAutomerge>64 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nAutomerge<0 || nAutomerge>64 ){  | 
 
| 
203152
 | 
 0  | 
 0  | 
       if( nAutomerge==1 ) nAutomerge = FTS5_DEFAULT_AUTOMERGE;  | 
 
| 
203157
 | 
 0  | 
 0  | 
   else if( 0==sqlite3_stricmp(zKey, "usermerge") ){  | 
 
| 
203159
 | 
 0  | 
 0  | 
     if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){  | 
 
| 
203162
 | 
 0  | 
 0  | 
     if( nUsermerge<2 || nUsermerge>16 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nUsermerge<2 || nUsermerge>16 ){  | 
 
| 
203169
 | 
 0  | 
 0  | 
   else if( 0==sqlite3_stricmp(zKey, "crisismerge") ){  | 
 
| 
203171
 | 
 0  | 
 0  | 
     if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){  | 
 
| 
203174
 | 
 0  | 
 0  | 
     if( nCrisisMerge<0 ){  | 
 
| 
203177
 | 
 0  | 
 0  | 
       if( nCrisisMerge<=1 ) nCrisisMerge = FTS5_DEFAULT_CRISISMERGE;  | 
 
| 
203182
 | 
 0  | 
 0  | 
   else if( 0==sqlite3_stricmp(zKey, "rank") ){  | 
 
| 
203187
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
203192
 | 
 0  | 
 0  | 
     }else if( rc==SQLITE_ERROR ){  | 
 
| 
203220
 | 
 0  | 
 0  | 
   if( zSql ){  | 
 
| 
203226
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
203227
 | 
 0  | 
 0  | 
     while( SQLITE_ROW==sqlite3_step(p) ){  | 
 
| 
203230
 | 
 0  | 
 0  | 
       if( 0==sqlite3_stricmp(zK, "version") ){  | 
 
| 
203240
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && iVersion!=FTS5_CURRENT_VERSION ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && iVersion!=FTS5_CURRENT_VERSION ){  | 
 
| 
203242
 | 
 0  | 
 0  | 
     if( pConfig->pzErrmsg ){  | 
 
| 
203251
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
203392
 | 
 0  | 
 0  | 
   if( pParse->rc==SQLITE_OK ){  | 
 
| 
203400
 | 
 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';  | 
 
| 
203415
 | 
 0  | 
 0  | 
   while( fts5ExprIsspace(*z) ) z++;  | 
 
| 
203437
 | 
 0  | 
 0  | 
         if( z2[0]=='"' ){  | 
 
| 
203439
 | 
 0  | 
 0  | 
           if( z2[0]!='"' ) break;  | 
 
| 
203441
 | 
 0  | 
 0  | 
         if( z2[0]=='\0' ){  | 
 
| 
203452
 | 
 0  | 
 0  | 
       if( sqlite3Fts5IsBareword(z[0])==0 ){  | 
 
| 
203457
 | 
 0  | 
 0  | 
       for(z2=&z[1]; sqlite3Fts5IsBareword(*z2); z2++);  | 
 
| 
203459
 | 
 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;  | 
 
| 
203460
 | 
 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;  | 
 
| 
203461
 | 
 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;  | 
 
| 
203491
 | 
 0  | 
 0  | 
   if( pEngine==0 ){ return SQLITE_NOMEM; }  | 
 
| 
203497
 | 
 0  | 
 0  | 
   }while( sParse.rc==SQLITE_OK && t!=FTS5_EOF );  | 
 
| 
 | 
 0  | 
 0  | 
   }while( sParse.rc==SQLITE_OK && t!=FTS5_EOF );  | 
 
| 
203502
 | 
 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 ){  | 
 
| 
203505
 | 
 0  | 
 0  | 
     if( pColset ){  | 
 
| 
203513
 | 
 0  | 
 0  | 
   if( sParse.rc==SQLITE_OK ){  | 
 
| 
203515
 | 
 0  | 
 0  | 
     if( pNew==0 ){  | 
 
| 
203519
 | 
 0  | 
 0  | 
       if( !sParse.pExpr ){  | 
 
| 
203522
 | 
 0  | 
 0  | 
         if( pNew->pRoot ){  | 
 
| 
203547
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
203549
 | 
 0  | 
 0  | 
     for(i=0; inChild; i++){  | 
 
| 
203561
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
203579
 | 
 0  | 
 0  | 
   for(p=pTerm; p; p=p->pSynonym){  | 
 
| 
203580
 | 
 0  | 
 0  | 
     if( 0==sqlite3Fts5IterEof(p->pIter) ){  | 
 
| 
203582
 | 
 0  | 
 0  | 
       if( bRetValid==0 || (bDesc!=(iRowid
 | 
 
| 
 | 
 0  | 
 0  | 
       if( bRetValid==0 || (bDesc!=(iRowid
 | 
 
| 
203589
 | 
 0  | 
 0  | 
   if( pbEof && bRetValid==0 ) *pbEof = 1;  | 
 
| 
 | 
 0  | 
 0  | 
   if( pbEof && bRetValid==0 ) *pbEof = 1;  | 
 
| 
203610
 | 
 0  | 
 0  | 
   for(p=pTerm; p; p=p->pSynonym){  | 
 
| 
203612
 | 
 0  | 
 0  | 
     if( sqlite3Fts5IterEof(pIter)==0 && pIter->iRowid==iRowid ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( sqlite3Fts5IterEof(pIter)==0 && pIter->iRowid==iRowid ){  | 
 
| 
203613
 | 
 0  | 
 0  | 
       if( pIter->nData==0 ) continue;  | 
 
| 
203614
 | 
 0  | 
 0  | 
       if( nIter==nAlloc ){  | 
 
| 
203617
 | 
 0  | 
 0  | 
         if( aNew==0 ){  | 
 
| 
203623
 | 
 0  | 
 0  | 
         if( aIter!=aStatic ) sqlite3_free(aIter);  | 
 
| 
203632
 | 
 0  | 
 0  | 
   if( nIter==1 ){  | 
 
| 
203642
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
203643
 | 
 0  | 
 0  | 
         if( aIter[i].bEof==0 ){  | 
 
| 
203644
 | 
 0  | 
 0  | 
           if( aIter[i].iPos==iPrev ){  | 
 
| 
203645
 | 
 0  | 
 0  | 
             if( sqlite3Fts5PoslistReaderNext(&aIter[i]) ) continue;  | 
 
| 
203647
 | 
 0  | 
 0  | 
           if( aIter[i].iPos
 | 
 
| 
203652
 | 
 0  | 
 0  | 
       if( iMin==FTS5_LARGEST_INT64 || rc!=SQLITE_OK ) break;  | 
 
| 
 | 
 0  | 
 0  | 
       if( iMin==FTS5_LARGEST_INT64 || rc!=SQLITE_OK ) break;  | 
 
| 
203656
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
203663
 | 
 0  | 
 0  | 
   if( aIter!=aStatic ) sqlite3_free(aIter);  | 
 
| 
203695
 | 
 0  | 
 0  | 
   if( pPhrase->nTerm>ArraySize(aStatic) ){  | 
 
| 
203698
 | 
 0  | 
 0  | 
     if( !aIter ) return SQLITE_NOMEM;  | 
 
| 
203703
 | 
 0  | 
 0  | 
   for(i=0; inTerm; i++){  | 
 
| 
203708
 | 
 0  | 
 0  | 
     if( pTerm->pSynonym ){  | 
 
| 
203711
 | 
 0  | 
 0  | 
       if( rc ){  | 
 
| 
203715
 | 
 0  | 
 0  | 
       if( a==buf.p ) bFlag = 1;  | 
 
| 
203722
 | 
 0  | 
 0  | 
     if( aIter[i].bEof ) goto ismatch_out;  | 
 
| 
203730
 | 
 0  | 
 0  | 
       for(i=0; inTerm; i++){  | 
 
| 
203733
 | 
 0  | 
 0  | 
         if( pPos->iPos!=iAdj ){  | 
 
| 
203735
 | 
 0  | 
 0  | 
           while( pPos->iPos
 | 
 
| 
203736
 | 
 0  | 
 0  | 
             if( sqlite3Fts5PoslistReaderNext(pPos) ) goto ismatch_out;  | 
 
| 
203738
 | 
 0  | 
 0  | 
           if( pPos->iPos>iAdj ) iPos = pPos->iPos-i;  | 
 
| 
203741
 | 
 0  | 
 0  | 
     }while( bMatch==0 );  | 
 
| 
203744
 | 
 0  | 
 0  | 
     if( bFirst==0 || FTS5_POS2OFFSET(iPos)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( bFirst==0 || FTS5_POS2OFFSET(iPos)==0 ){  | 
 
| 
203746
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) goto ismatch_out;  | 
 
| 
203749
 | 
 0  | 
 0  | 
     for(i=0; inTerm; i++){  | 
 
| 
203750
 | 
 0  | 
 0  | 
       if( sqlite3Fts5PoslistReaderNext(&aIter[i]) ) goto ismatch_out;  | 
 
| 
203756
 | 
 0  | 
 0  | 
   for(i=0; inTerm; i++){  | 
 
| 
203757
 | 
 0  | 
 0  | 
     if( aIter[i].bFlag ) sqlite3_free((u8*)aIter[i].a);  | 
 
| 
203759
 | 
 0  | 
 0  | 
   if( aIter!=aStatic ) sqlite3_free(aIter);  | 
 
| 
203776
 | 
 0  | 
 0  | 
   if( sqlite3Fts5PoslistNext64(p->a, p->n, &p->i, &p->iLookahead) ){  | 
 
| 
203830
 | 
 0  | 
 0  | 
   if( pNear->nPhrase>ArraySize(aStatic) ){  | 
 
| 
203836
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
203849
 | 
 0  | 
 0  | 
   for(i=0; inPhrase; i++){  | 
 
| 
203866
 | 
 0  | 
 0  | 
       for(i=0; inPhrase; i++){  | 
 
| 
203869
 | 
 0  | 
 0  | 
         if( pPos->iPosiPos>iMax ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( pPos->iPosiPos>iMax ){  | 
 
| 
203871
 | 
 0  | 
 0  | 
           while( pPos->iPos
 | 
 
| 
203872
 | 
 0  | 
 0  | 
             if( fts5LookaheadReaderNext(pPos) ) goto ismatch_out;  | 
 
| 
203874
 | 
 0  | 
 0  | 
           if( pPos->iPos>iMax ) iMax = pPos->iPos;  | 
 
| 
203877
 | 
 0  | 
 0  | 
     }while( bMatch==0 );  | 
 
| 
203880
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
203883
 | 
 0  | 
 0  | 
       if( a[i].pOut->n==0 || iPos!=pWriter->iPrev ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( a[i].pOut->n==0 || iPos!=pWriter->iPrev ){  | 
 
| 
203890
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
203891
 | 
 0  | 
 0  | 
       if( a[i].reader.iLookahead < iMin ){  | 
 
| 
203896
 | 
 0  | 
 0  | 
     if( fts5LookaheadReaderNext(&a[iAdv].reader) ) goto ismatch_out;  | 
 
| 
203902
 | 
 0  | 
 0  | 
     if( a!=aStatic ) sqlite3_free(a);  | 
 
| 
203927
 | 
 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
 | 
 
| 
203929
 | 
 0  | 
 0  | 
     if( rc || sqlite3Fts5IterEof(pIter) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc || sqlite3Fts5IterEof(pIter) ){  | 
 
| 
203953
 | 
 0  | 
 0  | 
   for(p=pTerm; rc==SQLITE_OK && p; p=p->pSynonym){  | 
 
| 
 | 
 0  | 
 0  | 
   for(p=pTerm; rc==SQLITE_OK && p; p=p->pSynonym){  | 
 
| 
203954
 | 
 0  | 
 0  | 
     if( sqlite3Fts5IterEof(p->pIter)==0 ){  | 
 
| 
203956
 | 
 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
 | 
 
| 
203962
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
203980
 | 
 0  | 
 0  | 
   if( pExpr->pConfig->eDetail!=FTS5_DETAIL_FULL ){  | 
 
| 
203984
 | 
 0  | 
 0  | 
     for(pTerm=&pPhrase->aTerm[0]; pTerm; pTerm=pTerm->pSynonym){  | 
 
| 
203986
 | 
 0  | 
 0  | 
       if( sqlite3Fts5IterEof(pIter)==0 ){  | 
 
| 
203987
 | 
 0  | 
 0  | 
         if( pIter->iRowid==pNode->iRowid && pIter->nData>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( pIter->iRowid==pNode->iRowid && pIter->nData>0 ){  | 
 
| 
203999
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inPhrase; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inPhrase; i++){  | 
 
| 
204001
 | 
 0  | 
 0  | 
       if( pPhrase->nTerm>1 || pPhrase->aTerm[0].pSynonym   | 
 
| 
 | 
 0  | 
 0  | 
       if( pPhrase->nTerm>1 || pPhrase->aTerm[0].pSynonym   | 
 
| 
204002
 | 
 0  | 
 0  | 
        || pNear->pColset || pPhrase->aTerm[0].bFirst  | 
 
| 
 | 
 0  | 
 0  | 
        || pNear->pColset || pPhrase->aTerm[0].bFirst  | 
 
| 
204006
 | 
 0  | 
 0  | 
         if( bMatch==0 ) break;  | 
 
| 
204014
 | 
 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)) ){  | 
 
| 
204039
 | 
 0  | 
 0  | 
   for(i=0; inPhrase; i++){  | 
 
| 
204041
 | 
 0  | 
 0  | 
     if( pPhrase->nTerm==0 ){  | 
 
| 
204046
 | 
 0  | 
 0  | 
       for(j=0; jnTerm; j++){  | 
 
| 
204051
 | 
 0  | 
 0  | 
         for(p=pTerm; p; p=p->pSynonym){  | 
 
| 
204053
 | 
 0  | 
 0  | 
           if( p->pIter ){  | 
 
| 
204060
 | 
 0  | 
 0  | 
               (pExpr->bDesc ? FTS5INDEX_QUERY_DESC : 0),  | 
 
| 
204065
 | 
 0  | 
 0  | 
           if( rc!=SQLITE_OK ) return rc;  | 
 
| 
204066
 | 
 0  | 
 0  | 
           if( 0==sqlite3Fts5IterEof(p->pIter) ){  | 
 
| 
204071
 | 
 0  | 
 0  | 
         if( bHit==0 ){  | 
 
| 
204099
 | 
 0  | 
 0  | 
   if( pExpr->bDesc==0 ){  | 
 
| 
204100
 | 
 0  | 
 0  | 
     if( iLhs
 | 
 
| 
204103
 | 
 0  | 
 0  | 
     if( iLhs>iRhs ) return -1;  | 
 
| 
204112
 | 
 0  | 
 0  | 
   for(i=0; inChild; i++){  | 
 
| 
204118
 | 
 0  | 
 0  | 
   if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){  | 
 
| 
204121
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
204127
 | 
 0  | 
 0  | 
     for(i=0; inChild; i++){  | 
 
| 
204152
 | 
 0  | 
 0  | 
   if( p2->bEof ) return -1;  | 
 
| 
204153
 | 
 0  | 
 0  | 
   if( p1->bEof ) return +1;  | 
 
| 
204191
 | 
 0  | 
 0  | 
   if( pLeft->aTerm[0].pSynonym ){  | 
 
| 
204199
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
204201
 | 
 0  | 
 0  | 
       for(j=0; jnTerm; j++){  | 
 
| 
204203
 | 
 0  | 
 0  | 
         if( pTerm->pSynonym ){  | 
 
| 
204205
 | 
 0  | 
 0  | 
           if( iRowid==iLast ) continue;  | 
 
| 
204207
 | 
 0  | 
 0  | 
           if( fts5ExprSynonymAdvanceto(pTerm, bDesc, &iLast, &rc) ){  | 
 
| 
204214
 | 
 0  | 
 0  | 
           if( pIter->iRowid==iLast || pIter->bEof ) continue;  | 
 
| 
 | 
 0  | 
 0  | 
           if( pIter->iRowid==iLast || pIter->bEof ) continue;  | 
 
| 
204216
 | 
 0  | 
 0  | 
           if( fts5ExprAdvanceto(pIter, bDesc, &iLast, &rc, &pNode->bEof) ){  | 
 
| 
204222
 | 
 0  | 
 0  | 
   }while( bMatch==0 );  | 
 
| 
204225
 | 
 0  | 
 0  | 
   pNode->bNomatch = ((0==fts5ExprNearTest(&rc, pExpr, pNode)) && rc==SQLITE_OK);  | 
 
| 
 | 
 0  | 
 0  | 
   pNode->bNomatch = ((0==fts5ExprNearTest(&rc, pExpr, pNode)) && rc==SQLITE_OK);  | 
 
| 
204248
 | 
 0  | 
 0  | 
   if( pTerm->pSynonym ){  | 
 
| 
204257
 | 
 0  | 
 0  | 
     for(p=pTerm; p; p=p->pSynonym){  | 
 
| 
204258
 | 
 0  | 
 0  | 
       if( sqlite3Fts5IterEof(p->pIter)==0 ){  | 
 
| 
204260
 | 
 0  | 
 0  | 
         if( ii==iRowid   | 
 
| 
204261
 | 
 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)   | 
 
| 
204263
 | 
 0  | 
 0  | 
           if( bFromValid ){  | 
 
| 
204268
 | 
 0  | 
 0  | 
           if( rc!=SQLITE_OK ) break;  | 
 
| 
204269
 | 
 0  | 
 0  | 
           if( sqlite3Fts5IterEof(p->pIter)==0 ){  | 
 
| 
204280
 | 
 0  | 
 0  | 
     pNode->bEof = (rc || bEof);  | 
 
| 
 | 
 0  | 
 0  | 
     pNode->bEof = (rc || bEof);  | 
 
| 
204285
 | 
 0  | 
 0  | 
     if( bFromValid ){  | 
 
| 
204291
 | 
 0  | 
 0  | 
     pNode->bEof = (rc || sqlite3Fts5IterEof(pIter));  | 
 
| 
 | 
 0  | 
 0  | 
     pNode->bEof = (rc || sqlite3Fts5IterEof(pIter));  | 
 
| 
204294
 | 
 0  | 
 0  | 
   if( pNode->bEof==0 ){  | 
 
| 
204320
 | 
 0  | 
 0  | 
   if( pExpr->pConfig->eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
204341
 | 
 0  | 
 0  | 
   if( bFromValid ){  | 
 
| 
204346
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && sqlite3Fts5IterEof(pIter)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && sqlite3Fts5IterEof(pIter)==0 ){  | 
 
| 
204362
 | 
 0  | 
 0  | 
   for(i=1; inChild; i++){  | 
 
| 
204365
 | 
 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) ){  | 
 
| 
204383
 | 
 0  | 
 0  | 
   for(i=0; inChild; i++){  | 
 
| 
204386
 | 
 0  | 
 0  | 
     if( p1->bEof==0 ){  | 
 
| 
204387
 | 
 0  | 
 0  | 
       if( (p1->iRowid==iLast)   | 
 
| 
204388
 | 
 0  | 
 0  | 
        || (bFromValid && fts5RowidCmp(pExpr, p1->iRowid, iFrom)<0)  | 
 
| 
 | 
 0  | 
 0  | 
        || (bFromValid && fts5RowidCmp(pExpr, p1->iRowid, iFrom)<0)  | 
 
| 
204391
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
204419
 | 
 0  | 
 0  | 
     for(iChild=0; iChildnChild; iChild++){  | 
 
| 
204422
 | 
 0  | 
 0  | 
       if( cmp>0 ){  | 
 
| 
204425
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_OK ){  | 
 
| 
204436
 | 
 0  | 
 0  | 
       if( pChild->bEof ){  | 
 
| 
204440
 | 
 0  | 
 0  | 
       }else if( iLast!=pChild->iRowid ){  | 
 
| 
204445
 | 
 0  | 
 0  | 
       if( pChild->bNomatch ){  | 
 
| 
204449
 | 
 0  | 
 0  | 
   }while( bMatch==0 );  | 
 
| 
204451
 | 
 0  | 
 0  | 
   if( pAnd->bNomatch && pAnd!=pExpr->pRoot ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pAnd->bNomatch && pAnd!=pExpr->pRoot ){  | 
 
| 
204465
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
204482
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && p1->bEof==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && p1->bEof==0 ){  | 
 
| 
204484
 | 
 0  | 
 0  | 
     if( cmp>0 ){  | 
 
| 
204489
 | 
 0  | 
 0  | 
     if( cmp || p2->bNomatch ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( cmp || p2->bNomatch ) break;  | 
 
| 
204495
 | 
 0  | 
 0  | 
   if( p1->bEof ){  | 
 
| 
204508
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
204511
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
204527
 | 
 0  | 
 0  | 
   if( pNode->bEof==0 ){  | 
 
| 
204572
 | 
 0  | 
 0  | 
   if( Fts5NodeIsString(pNode) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( Fts5NodeIsString(pNode) ){  | 
 
| 
204575
 | 
 0  | 
 0  | 
   }else if( pNode->xNext==0 ){  | 
 
| 
204580
 | 
 0  | 
 0  | 
     for(i=0; inChild && rc==SQLITE_OK; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; inChild && rc==SQLITE_OK; i++){  | 
 
| 
204590
 | 
 0  | 
 0  | 
         if( nEof>0 ) fts5ExprSetEof(pNode);  | 
 
| 
204594
 | 
 0  | 
 0  | 
         if( pNode->nChild==nEof ) fts5ExprSetEof(pNode);  | 
 
| 
204604
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
204636
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK   | 
 
| 
204637
 | 
 0  | 
 0  | 
    && 0==pRoot->bEof   | 
 
| 
204638
 | 
 0  | 
 0  | 
    && fts5RowidCmp(p, pRoot->iRowid, iFirst)<0   | 
 
| 
204644
 | 
 0  | 
 0  | 
   while( pRoot->bNomatch ){  | 
 
| 
204664
 | 
 0  | 
 0  | 
   }while( pRoot->bNomatch );  | 
 
| 
204665
 | 
 0  | 
 0  | 
   if( fts5RowidCmp(p, pRoot->iRowid, iLast)>0 ){  | 
 
| 
204689
 | 
 0  | 
 0  | 
   if( pPhrase ){  | 
 
| 
204691
 | 
 0  | 
 0  | 
     for(i=0; inTerm; i++){  | 
 
| 
204697
 | 
 0  | 
 0  | 
       for(pSyn=pTerm->pSynonym; pSyn; pSyn=pNext){  | 
 
| 
204704
 | 
 0  | 
 0  | 
     if( pPhrase->poslist.nSpace>0 ) fts5BufferFree(&pPhrase->poslist);  | 
 
| 
204714
 | 
 0  | 
 0  | 
   if( pPhrase && pPhrase->nTerm ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pPhrase && pPhrase->nTerm ){  | 
 
| 
204735
 | 
 0  | 
 0  | 
   if( pParse->rc==SQLITE_OK ){  | 
 
| 
204736
 | 
 0  | 
 0  | 
     if( pPhrase==0 ){  | 
 
| 
204739
 | 
 0  | 
 0  | 
     if( pNear==0 ){  | 
 
| 
204742
 | 
 0  | 
 0  | 
       if( pRet==0 ){  | 
 
| 
204747
 | 
 0  | 
 0  | 
     }else if( (pNear->nPhrase % SZALLOC)==0 ){  | 
 
| 
204752
 | 
 0  | 
 0  | 
       if( pRet==0 ){  | 
 
| 
204760
 | 
 0  | 
 0  | 
   if( pRet==0 ){  | 
 
| 
204765
 | 
 0  | 
 0  | 
     if( pRet->nPhrase>0 ){  | 
 
| 
204768
 | 
 0  | 
 0  | 
       if( pPhrase->nTerm==0 ){  | 
 
| 
204773
 | 
 0  | 
 0  | 
       }else if( pLast->nTerm==0 ){  | 
 
| 
204810
 | 
 0  | 
 0  | 
   if( pCtx->rc!=SQLITE_OK ) return pCtx->rc;  | 
 
| 
204811
 | 
 0  | 
 0  | 
   if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE;  | 
 
| 
204813
 | 
 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) ){  | 
 
| 
204817
 | 
 0  | 
 0  | 
     if( pSyn==0 ){  | 
 
| 
204828
 | 
 0  | 
 0  | 
     if( pPhrase==0 || (pPhrase->nTerm % SZALLOC)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pPhrase==0 || (pPhrase->nTerm % SZALLOC)==0 ){  | 
 
| 
204830
 | 
 0  | 
 0  | 
       int nNew = SZALLOC + (pPhrase ? pPhrase->nTerm : 0);  | 
 
| 
204835
 | 
 0  | 
 0  | 
       if( pNew==0 ){  | 
 
| 
204838
 | 
 0  | 
 0  | 
         if( pPhrase==0 ) memset(pNew, 0, sizeof(Fts5ExprPhrase));  | 
 
| 
204844
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
204867
 | 
 0  | 
 0  | 
   if( pNear ){  | 
 
| 
204869
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
204902
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
204903
 | 
 0  | 
 0  | 
     int flags = FTS5_TOKENIZE_QUERY | (bPrefix ? FTS5_TOKENIZE_PREFIX : 0);  | 
 
| 
204910
 | 
 0  | 
 0  | 
   if( rc || (rc = sCtx.rc) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc || (rc = sCtx.rc) ){  | 
 
| 
204916
 | 
 0  | 
 0  | 
     if( pAppend==0 ){  | 
 
| 
204917
 | 
 0  | 
 0  | 
       if( (pParse->nPhrase % 8)==0 ){  | 
 
| 
204921
 | 
 0  | 
 0  | 
         if( apNew==0 ){  | 
 
| 
204931
 | 
 0  | 
 0  | 
     if( sCtx.pPhrase==0 ){  | 
 
| 
204935
 | 
 0  | 
 0  | 
     }else if( sCtx.pPhrase->nTerm ){  | 
 
| 
204960
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
204964
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
204968
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
204972
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
204974
 | 
 0  | 
 0  | 
     if( pColsetOrig ){  | 
 
| 
204977
 | 
 0  | 
 0  | 
       if( pColset ){   | 
 
| 
204984
 | 
 0  | 
 0  | 
   if( pOrig->nTerm ){  | 
 
| 
204986
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inTerm; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inTerm; i++){  | 
 
| 
204989
 | 
 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){  | 
 
| 
204995
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
205006
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
205016
 | 
 0  | 
 0  | 
     if( pOrig->nTerm==1   | 
 
| 
205017
 | 
 0  | 
 0  | 
      && pOrig->aTerm[0].pSynonym==0   | 
 
| 
205018
 | 
 0  | 
 0  | 
      && pOrig->aTerm[0].bFirst==0   | 
 
| 
205043
 | 
 0  | 
 0  | 
   if( pTok->n!=4 || memcmp("NEAR", pTok->p, 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTok->n!=4 || memcmp("NEAR", pTok->p, 4) ){  | 
 
| 
205055
 | 
 0  | 
 0  | 
   if( pNear ){  | 
 
| 
205058
 | 
 0  | 
 0  | 
     if( p->n ){  | 
 
| 
205059
 | 
 0  | 
 0  | 
       for(i=0; in; i++){  | 
 
| 
205061
 | 
 0  | 
 0  | 
         if( c<'0' || c>'9' ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( c<'0' || c>'9' ){  | 
 
| 
205090
 | 
 0  | 
 0  | 
   int nCol = p ? p->nCol : 0;     /* Num. columns already in colset object */  | 
 
| 
205097
 | 
 0  | 
 0  | 
   if( pNew==0 ){  | 
 
| 
205102
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
205103
 | 
 0  | 
 0  | 
       if( aiCol[i]==iCol ) return pNew;  | 
 
| 
205104
 | 
 0  | 
 0  | 
       if( aiCol[i]>iCol ) break;  | 
 
| 
205106
 | 
 0  | 
 0  | 
     for(j=nCol; j>i; j--){  | 
 
| 
205133
 | 
 0  | 
 0  | 
   if( pRet ){  | 
 
| 
205136
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
205137
 | 
 0  | 
 0  | 
       if( iOld>=p->nCol || p->aiCol[iOld]!=i ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( iOld>=p->nCol || p->aiCol[iOld]!=i ){  | 
 
| 
205159
 | 
 0  | 
 0  | 
   if( pParse->rc==SQLITE_OK ){  | 
 
| 
205162
 | 
 0  | 
 0  | 
     for(iCol=0; iColnCol; iCol++){  | 
 
| 
205163
 | 
 0  | 
 0  | 
       if( 0==sqlite3_stricmp(pConfig->azCol[iCol], z) ) break;  | 
 
| 
205165
 | 
 0  | 
 0  | 
     if( iCol==pConfig->nCol ){  | 
 
| 
205173
 | 
 0  | 
 0  | 
   if( pRet==0 ){  | 
 
| 
205191
 | 
 0  | 
 0  | 
   if( pOrig ){  | 
 
| 
205194
 | 
 0  | 
 0  | 
     if( pRet ){   | 
 
| 
205211
 | 
 0  | 
 0  | 
   while( iInnCol && iMergenCol ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( iInnCol && iMergenCol ){  | 
 
| 
205213
 | 
 0  | 
 0  | 
     if( iDiff==0 ){  | 
 
| 
205217
 | 
 0  | 
 0  | 
     }else if( iDiff>0 ){  | 
 
| 
205238
 | 
 0  | 
 0  | 
   if( pParse->rc==SQLITE_OK ){  | 
 
| 
205243
 | 
 0  | 
 0  | 
     if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){  | 
 
| 
205245
 | 
 0  | 
 0  | 
       if( pNear->pColset ){  | 
 
| 
205247
 | 
 0  | 
 0  | 
         if( pNear->pColset->nCol==0 ){  | 
 
| 
205251
 | 
 0  | 
 0  | 
       }else if( *ppFree ){  | 
 
| 
205260
 | 
 0  | 
 0  | 
       for(i=0; inChild; i++){  | 
 
| 
205276
 | 
 0  | 
 0  | 
   if( pParse->pConfig->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
205291
 | 
 0  | 
 0  | 
       if( pNear->nPhrase==1 && pNear->apPhrase[0]->nTerm==1   | 
 
| 
 | 
 0  | 
 0  | 
       if( pNear->nPhrase==1 && pNear->apPhrase[0]->nTerm==1   | 
 
| 
205292
 | 
 0  | 
 0  | 
        && pNear->apPhrase[0]->aTerm[0].pSynonym==0  | 
 
| 
205293
 | 
 0  | 
 0  | 
        && pNear->apPhrase[0]->aTerm[0].bFirst==0  | 
 
| 
205321
 | 
 0  | 
 0  | 
   if( p->eType!=FTS5_NOT && pSub->eType==p->eType ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->eType!=FTS5_NOT && pSub->eType==p->eType ){  | 
 
| 
205344
 | 
 0  | 
 0  | 
   if( pParse->rc==SQLITE_OK ){  | 
 
| 
205351
 | 
 0  | 
 0  | 
     if( eType==FTS5_STRING && pNear==0 ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
     if( eType==FTS5_STRING && pNear==0 ) return 0;  | 
 
| 
205352
 | 
 0  | 
 0  | 
     if( eType!=FTS5_STRING && pLeft==0 ) return pRight;  | 
 
| 
 | 
 0  | 
 0  | 
     if( eType!=FTS5_STRING && pLeft==0 ) return pRight;  | 
 
| 
205353
 | 
 0  | 
 0  | 
     if( eType!=FTS5_STRING && pRight==0 ) return pLeft;  | 
 
| 
 | 
 0  | 
 0  | 
     if( eType!=FTS5_STRING && pRight==0 ) return pLeft;  | 
 
| 
205355
 | 
 0  | 
 0  | 
     if( eType==FTS5_NOT ){  | 
 
| 
205357
 | 
 0  | 
 0  | 
     }else if( eType==FTS5_AND || eType==FTS5_OR ){  | 
 
| 
 | 
 0  | 
 0  | 
     }else if( eType==FTS5_AND || eType==FTS5_OR ){  | 
 
| 
205359
 | 
 0  | 
 0  | 
       if( pLeft->eType==eType ) nChild += pLeft->nChild-1;  | 
 
| 
205360
 | 
 0  | 
 0  | 
       if( pRight->eType==eType ) nChild += pRight->nChild-1;  | 
 
| 
205366
 | 
 0  | 
 0  | 
     if( pRet ){  | 
 
| 
205370
 | 
 0  | 
 0  | 
       if( eType==FTS5_STRING ){  | 
 
| 
205372
 | 
 0  | 
 0  | 
         for(iPhrase=0; iPhrasenPhrase; iPhrase++){  | 
 
| 
205374
 | 
 0  | 
 0  | 
           if( pNear->apPhrase[iPhrase]->nTerm==0 ){  | 
 
| 
205380
 | 
 0  | 
 0  | 
         if( pParse->pConfig->eDetail!=FTS5_DETAIL_FULL ){  | 
 
| 
205382
 | 
 0  | 
 0  | 
           if( pNear->nPhrase!=1   | 
 
| 
205383
 | 
 0  | 
 0  | 
            || pPhrase->nTerm>1  | 
 
| 
205384
 | 
 0  | 
 0  | 
            || (pPhrase->nTerm>0 && pPhrase->aTerm[0].bFirst)  | 
 
| 
 | 
 0  | 
 0  | 
            || (pPhrase->nTerm>0 && pPhrase->aTerm[0].bFirst)  | 
 
| 
205389
 | 
 0  | 
 0  | 
             pParse->zErr = sqlite3_mprintf(  | 
 
| 
205404
 | 
 0  | 
 0  | 
   if( pRet==0 ){  | 
 
| 
205421
 | 
 0  | 
 0  | 
   if( pParse->rc ){  | 
 
| 
205436
 | 
 0  | 
 0  | 
     if( pLeft->eType==FTS5_AND ){  | 
 
| 
205446
 | 
 0  | 
 0  | 
     if( pRight->eType==FTS5_EOF ){  | 
 
| 
205452
 | 
 0  | 
 0  | 
     else if( pPrev->eType==FTS5_EOF ){  | 
 
| 
205455
 | 
 0  | 
 0  | 
       if( pPrev==pLeft ){  | 
 
| 
205483
 | 
 0  | 
 0  | 
   for(p=pTerm; p; p=p->pSynonym){  | 
 
| 
205488
 | 
 0  | 
 0  | 
   if( zQuoted ){  | 
 
| 
205490
 | 
 0  | 
 0  | 
     for(p=pTerm; p; p=p->pSynonym){  | 
 
| 
205493
 | 
 0  | 
 0  | 
       while( *zIn ){  | 
 
| 
205494
 | 
 0  | 
 0  | 
         if( *zIn=='"' ) zQuoted[i++] = '"';  | 
 
| 
205498
 | 
 0  | 
 0  | 
       if( p->pSynonym ) zQuoted[i++] = '|';  | 
 
| 
205500
 | 
 0  | 
 0  | 
     if( pTerm->bPrefix ){  | 
 
| 
205515
 | 
 0  | 
 0  | 
   if( zApp && zNew ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( zApp && zNew ){  | 
 
| 
205536
 | 
 0  | 
 0  | 
   if( pExpr->eType==FTS5_STRING || pExpr->eType==FTS5_TERM ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pExpr->eType==FTS5_STRING || pExpr->eType==FTS5_TERM ){  | 
 
| 
205542
 | 
 0  | 
 0  | 
     if( zRet==0 ) return 0;  | 
 
| 
205543
 | 
 0  | 
 0  | 
     if( pNear->pColset ){  | 
 
| 
205546
 | 
 0  | 
 0  | 
       if( nCol==1 ){  | 
 
| 
205550
 | 
 0  | 
 0  | 
         for(i=1; ipColset->nCol; i++){  | 
 
| 
205555
 | 
 0  | 
 0  | 
       if( zRet==0 ) return 0;  | 
 
| 
205558
 | 
 0  | 
 0  | 
     if( pNear->nPhrase>1 ){  | 
 
| 
205560
 | 
 0  | 
 0  | 
       if( zRet==0 ) return 0;  | 
 
| 
205564
 | 
 0  | 
 0  | 
     if( zRet==0 ) return 0;  | 
 
| 
205566
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
205570
 | 
 0  | 
 0  | 
       for(iTerm=0; zRet && iTermnTerm; iTerm++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(iTerm=0; zRet && iTermnTerm; iTerm++){  | 
 
| 
205572
 | 
 0  | 
 0  | 
         zRet = fts5PrintfAppend(zRet, "%s%s", iTerm==0?"":" ", zTerm);  | 
 
| 
205573
 | 
 0  | 
 0  | 
         if( pPhrase->aTerm[iTerm].bPrefix ){  | 
 
| 
205578
 | 
 0  | 
 0  | 
       if( zRet ) zRet = fts5PrintfAppend(zRet, "}");  | 
 
| 
205579
 | 
 0  | 
 0  | 
       if( zRet==0 ) return 0;  | 
 
| 
205595
 | 
 0  | 
 0  | 
     for(i=0; zRet && inChild; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; zRet && inChild; i++){  | 
 
| 
205597
 | 
 0  | 
 0  | 
       if( !z ){  | 
 
| 
205611
 | 
 0  | 
 0  | 
   if( pExpr->eType==0 ){  | 
 
| 
205614
 | 
 0  | 
 0  | 
   if( pExpr->eType==FTS5_STRING || pExpr->eType==FTS5_TERM ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pExpr->eType==FTS5_STRING || pExpr->eType==FTS5_TERM ){  | 
 
| 
205619
 | 
 0  | 
 0  | 
     if( pNear->pColset ){  | 
 
| 
205622
 | 
 0  | 
 0  | 
       if( zRet==0 ) return 0;  | 
 
| 
205625
 | 
 0  | 
 0  | 
     if( pNear->nPhrase>1 ){  | 
 
| 
205627
 | 
 0  | 
 0  | 
       if( zRet==0 ) return 0;  | 
 
| 
205630
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
205632
 | 
 0  | 
 0  | 
       if( i!=0 ){  | 
 
| 
205634
 | 
 0  | 
 0  | 
         if( zRet==0 ) return 0;  | 
 
| 
205636
 | 
 0  | 
 0  | 
       for(iTerm=0; iTermnTerm; iTerm++){  | 
 
| 
205638
 | 
 0  | 
 0  | 
         if( zTerm ){  | 
 
| 
205639
 | 
 0  | 
 0  | 
           zRet = fts5PrintfAppend(zRet, "%s%s", iTerm==0?"":" + ", zTerm);  | 
 
| 
205642
 | 
 0  | 
 0  | 
         if( zTerm==0 || zRet==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( zTerm==0 || zRet==0 ){  | 
 
| 
205649
 | 
 0  | 
 0  | 
     if( pNear->nPhrase>1 ){  | 
 
| 
205651
 | 
 0  | 
 0  | 
       if( zRet==0 ) return 0;  | 
 
| 
205667
 | 
 0  | 
 0  | 
     for(i=0; inChild; i++){  | 
 
| 
205669
 | 
 0  | 
 0  | 
       if( z==0 ){  | 
 
| 
205674
 | 
 0  | 
 0  | 
         int b = (e!=FTS5_STRING && e!=FTS5_TERM && e!=FTS5_EOF);  | 
 
| 
 | 
 0  | 
 0  | 
         int b = (e!=FTS5_STRING && e!=FTS5_TERM && e!=FTS5_EOF);  | 
 
| 
 | 
 0  | 
 0  | 
         int b = (e!=FTS5_STRING && e!=FTS5_TERM && e!=FTS5_EOF);  | 
 
| 
205675
 | 
 0  | 
 0  | 
         zRet = fts5PrintfAppend(zRet, "%s%s%z%s",   | 
 
| 
 | 
 0  | 
 0  | 
         zRet = fts5PrintfAppend(zRet, "%s%s%z%s",   | 
 
| 
 | 
 0  | 
 0  | 
         zRet = fts5PrintfAppend(zRet, "%s%s%z%s",   | 
 
| 
205680
 | 
 0  | 
 0  | 
       if( zRet==0 ) break;  | 
 
| 
205711
 | 
 0  | 
 0  | 
   if( nArg<1 ){  | 
 
| 
205712
 | 
 0  | 
 0  | 
     zErr = sqlite3_mprintf("wrong number of arguments to function %s",  | 
 
| 
205720
 | 
 0  | 
 0  | 
   if( bTcl && nArg>1 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( bTcl && nArg>1 ){  | 
 
| 
205727
 | 
 0  | 
 0  | 
   if( azConfig==0 ){  | 
 
| 
205734
 | 
 0  | 
 0  | 
   for(i=3; iArg
 | 
 
| 
205741
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
205744
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
205746
 | 
 0  | 
 0  | 
     if( pExpr->pRoot->xNext==0 ){  | 
 
| 
205748
 | 
 0  | 
 0  | 
     }else if( bTcl ){  | 
 
| 
205753
 | 
 0  | 
 0  | 
     if( zText==0 ){  | 
 
| 
205761
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
205762
 | 
 0  | 
 0  | 
     if( zErr ){  | 
 
| 
205801
 | 
 0  | 
 0  | 
   if( nArg!=1 ){  | 
 
| 
205820
 | 
 0  | 
 0  | 
   if( nArg!=1 && nArg!=2 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( nArg!=1 && nArg!=2 ){  | 
 
| 
205828
 | 
 0  | 
 0  | 
     if( nArg==2 ) bRemoveDiacritics = sqlite3_value_int(apVal[1]);  | 
 
| 
205851
 | 
 1255  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 1004  | 
 251  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
205870
 | 
 0  | 
 0  | 
   return (pExpr ? pExpr->nPhrase : 0);  | 
 
| 
205877
 | 
 0  | 
 0  | 
   if( iPhrase<0 || iPhrase>=pExpr->nPhrase ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
   if( iPhrase<0 || iPhrase>=pExpr->nPhrase ) return 0;  | 
 
| 
205889
 | 
 0  | 
 0  | 
   if( pNode->bEof==0 && pNode->iRowid==pExpr->pRoot->iRowid ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pNode->bEof==0 && pNode->iRowid==pExpr->pRoot->iRowid ){  | 
 
| 
205908
 | 
 0  | 
 0  | 
   if( pRet ){  | 
 
| 
205911
 | 
 0  | 
 0  | 
     for(i=0; inPhrase; i++){  | 
 
| 
205915
 | 
 0  | 
 0  | 
       if( bLive &&   | 
 
| 
 | 
 0  | 
 0  | 
       if( bLive &&   | 
 
| 
205916
 | 
 0  | 
 0  | 
           (pBuf->n==0 || pNode->iRowid!=pExpr->pRoot->iRowid || pNode->bEof)  | 
 
| 
 | 
 0  | 
 0  | 
           (pBuf->n==0 || pNode->iRowid!=pExpr->pRoot->iRowid || pNode->bEof)  | 
 
| 
205939
 | 
 0  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
205940
 | 
 0  | 
 0  | 
     if( pColset->aiCol[i]==iCol ) return 1;  | 
 
| 
205959
 | 
 0  | 
 0  | 
   if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE;  | 
 
| 
205960
 | 
 0  | 
 0  | 
   if( (tflags & FTS5_TOKEN_COLOCATED)==0 ) p->iOff++;  | 
 
| 
205961
 | 
 0  | 
 0  | 
   for(i=0; inPhrase; i++){  | 
 
| 
205963
 | 
 0  | 
 0  | 
     if( p->aPopulator[i].bOk==0 ) continue;  | 
 
| 
205964
 | 
 0  | 
 0  | 
     for(pTerm=&pExpr->apExprPhrase[i]->aTerm[0]; pTerm; pTerm=pTerm->pSynonym){  | 
 
| 
205966
 | 
 0  | 
 0  | 
       if( (nTerm==nToken || (nTermbPrefix))  | 
 
| 
 | 
 0  | 
 0  | 
       if( (nTerm==nToken || (nTermbPrefix))  | 
 
| 
 | 
 0  | 
 0  | 
       if( (nTerm==nToken || (nTermbPrefix))  | 
 
| 
205967
 | 
 0  | 
 0  | 
        && memcmp(pTerm->zTerm, pToken, nTerm)==0  | 
 
| 
205972
 | 
 0  | 
 0  | 
         if( rc ) return rc;  | 
 
| 
205993
 | 
 0  | 
 0  | 
   for(i=0; inPhrase; i++){  | 
 
| 
205996
 | 
 0  | 
 0  | 
     if( (pColset && 0==fts5ExprColsetTest(pColset, iCol))   | 
 
| 
 | 
 0  | 
 0  | 
     if( (pColset && 0==fts5ExprColsetTest(pColset, iCol))   | 
 
| 
205997
 | 
 0  | 
 0  | 
      || aPopulator[i].bMiss  | 
 
| 
206011
 | 
 0  | 
 0  | 
   if( pNode->eType==FTS5_TERM || pNode->eType==FTS5_STRING ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pNode->eType==FTS5_TERM || pNode->eType==FTS5_STRING ){  | 
 
| 
206015
 | 
 0  | 
 0  | 
     for(i=0; inChild; i++){  | 
 
| 
206031
 | 
 0  | 
 0  | 
       for(i=0; inChild; i++){  | 
 
| 
206032
 | 
 0  | 
 0  | 
         if( fts5ExprCheckPoslists(pNode->apChild[i], iRowid)==0 ){  | 
 
| 
206043
 | 
 0  | 
 0  | 
       for(i=0; inChild; i++){  | 
 
| 
206044
 | 
 0  | 
 0  | 
         if( fts5ExprCheckPoslists(pNode->apChild[i], iRowid) ){  | 
 
| 
206053
 | 
 0  | 
 0  | 
       if( 0==fts5ExprCheckPoslists(pNode->apChild[0], iRowid)  | 
 
| 
206054
 | 
 0  | 
 0  | 
           || 0!=fts5ExprCheckPoslists(pNode->apChild[1], iRowid)  | 
 
| 
206085
 | 
 0  | 
 0  | 
   if( pNode->bEof==0   | 
 
| 
206086
 | 
 0  | 
 0  | 
    && pNode->iRowid==pExpr->pRoot->iRowid   | 
 
| 
206087
 | 
 0  | 
 0  | 
    && pPhrase->poslist.n>0  | 
 
| 
206090
 | 
 0  | 
 0  | 
     if( pTerm->pSynonym ){  | 
 
| 
206197
 | 
 0  | 
 0  | 
   if( pNew==0 ){  | 
 
| 
206208
 | 
 0  | 
 0  | 
     if( pNew->aSlot==0 ){  | 
 
| 
206223
 | 
 0  | 
 0  | 
   if( pHash ){  | 
 
| 
206235
 | 
 0  | 
 0  | 
   for(i=0; inSlot; i++){  | 
 
| 
206238
 | 
 0  | 
 0  | 
     for(pSlot=pHash->aSlot[i]; pSlot; pSlot=pNext){  | 
 
| 
206250
 | 
 0  | 
 0  | 
   for(i=n-1; i>=0; i--){  | 
 
| 
206259
 | 
 0  | 
 0  | 
   for(i=n-1; i>=0; i--){  | 
 
| 
206276
 | 
 0  | 
 0  | 
   if( !apNew ) return SQLITE_NOMEM;  | 
 
| 
206279
 | 
 0  | 
 0  | 
   for(i=0; inSlot; i++){  | 
 
| 
206280
 | 
 0  | 
 0  | 
     while( apOld[i] ){  | 
 
| 
206298
 | 
 0  | 
 0  | 
   if( p->iSzPoslist ){  | 
 
| 
206300
 | 
 0  | 
 0  | 
     if( pHash->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
206302
 | 
 0  | 
 0  | 
       if( p->bDel ){  | 
 
| 
206304
 | 
 0  | 
 0  | 
         if( p->bContent ){  | 
 
| 
206313
 | 
 0  | 
 0  | 
       if( nPos<=127 ){  | 
 
| 
206355
 | 
 0  | 
 0  | 
   for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){  | 
 
| 
206357
 | 
 0  | 
 0  | 
     if( zKey[0]==bByte   | 
 
| 
206358
 | 
 0  | 
 0  | 
      && p->nKey==nToken  | 
 
| 
206359
 | 
 0  | 
 0  | 
      && memcmp(&zKey[1], pToken, nToken)==0   | 
 
| 
206366
 | 
 0  | 
 0  | 
   if( p==0 ){  | 
 
| 
206370
 | 
 0  | 
 0  | 
     if( nByte<128 ) nByte = 128;  | 
 
| 
206373
 | 
 0  | 
 0  | 
     if( (pHash->nEntry*2)>=pHash->nSlot ){  | 
 
| 
206375
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) return rc;  | 
 
| 
206381
 | 
 0  | 
 0  | 
     if( !p ) return SQLITE_NOMEM;  | 
 
| 
206400
 | 
 0  | 
 0  | 
     if( pHash->eDetail!=FTS5_DETAIL_NONE ){  | 
 
| 
206402
 | 
 0  | 
 0  | 
       p->iCol = (pHash->eDetail==FTS5_DETAIL_FULL ? 0 : -1);  | 
 
| 
206418
 | 
 0  | 
 0  | 
     if( (p->nAlloc - p->nData) < (9 + 4 + 1 + 3 + 5) ){  | 
 
| 
206423
 | 
 0  | 
 0  | 
       if( pNew==0 ) return SQLITE_NOMEM;  | 
 
| 
206425
 | 
 0  | 
 0  | 
       for(pp=&pHash->aSlot[iHash]; *pp!=p; pp=&(*pp)->pHashNext);  | 
 
| 
206437
 | 
 0  | 
 0  | 
   if( iRowid!=p->iRowid ){  | 
 
| 
206443
 | 
 0  | 
 0  | 
     if( pHash->eDetail!=FTS5_DETAIL_NONE ){  | 
 
| 
206445
 | 
 0  | 
 0  | 
       p->iCol = (pHash->eDetail==FTS5_DETAIL_FULL ? 0 : -1);  | 
 
| 
206450
 | 
 0  | 
 0  | 
   if( iCol>=0 ){  | 
 
| 
206451
 | 
 0  | 
 0  | 
     if( pHash->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
206456
 | 
 0  | 
 0  | 
       if( iCol!=p->iCol ){  | 
 
| 
206457
 | 
 0  | 
 0  | 
         if( pHash->eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
206469
 | 
 0  | 
 0  | 
       if( bNew ){  | 
 
| 
206499
 | 
 0  | 
 0  | 
   while( p1 || p2 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( p1 || p2 ){  | 
 
| 
206500
 | 
 0  | 
 0  | 
     if( p1==0 ){  | 
 
| 
206503
 | 
 0  | 
 0  | 
     }else if( p2==0 ){  | 
 
| 
206510
 | 
 0  | 
 0  | 
       while( zKey1[i]==zKey2[i] ) i++;  | 
 
| 
206512
 | 
 0  | 
 0  | 
       if( ((u8)zKey1[i])>((u8)zKey2[i]) ){  | 
 
| 
206549
 | 
 0  | 
 0  | 
   if( !ap ) return SQLITE_NOMEM;  | 
 
| 
206552
 | 
 0  | 
 0  | 
   for(iSlot=0; iSlotnSlot; iSlot++){  | 
 
| 
206554
 | 
 0  | 
 0  | 
     for(pIter=pHash->aSlot[iSlot]; pIter; pIter=pIter->pHashNext){  | 
 
| 
206555
 | 
 0  | 
 0  | 
       if( pTerm==0 || 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pTerm==0 || 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm) ){  | 
 
| 
206558
 | 
 0  | 
 0  | 
         for(i=0; ap[i]; i++){  | 
 
| 
206568
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
206591
 | 
 0  | 
 0  | 
   for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){  | 
 
| 
206593
 | 
 0  | 
 0  | 
     if( memcmp(zKey, pTerm, nTerm)==0 && zKey[nTerm]==0 ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( memcmp(zKey, pTerm, nTerm)==0 && zKey[nTerm]==0 ) break;  | 
 
| 
206596
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
206631
 | 
 0  | 
 0  | 
   if( (p = pHash->pScan) ){  | 
 
| 
207256
 | 
 0  | 
 0  | 
   return (res==0 ? (pLeft->n - pRight->n) : res);  | 
 
| 
207269
 | 
 0  | 
 0  | 
   if( p->pReader ){  | 
 
| 
207284
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
207287
 | 
 0  | 
 0  | 
     if( p->pReader ){  | 
 
| 
207296
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
207299
 | 
 0  | 
 0  | 
       if( rc==SQLITE_ABORT ) rc = SQLITE_OK;  | 
 
| 
207304
 | 
 0  | 
 0  | 
     if( p->pReader==0 && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->pReader==0 && rc==SQLITE_OK ){  | 
 
| 
207316
 | 
 0  | 
 0  | 
     if( rc==SQLITE_ERROR ) rc = FTS5_CORRUPT;  | 
 
| 
207318
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
207323
 | 
 0  | 
 0  | 
       if( pRet ){  | 
 
| 
207330
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
207333
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
207359
 | 
 0  | 
 0  | 
   if( pRet ){  | 
 
| 
207360
 | 
 0  | 
 0  | 
     if( pRet->szLeaf>pRet->nn ){  | 
 
| 
207374
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
207375
 | 
 0  | 
 0  | 
     if( zSql ){  | 
 
| 
207391
 | 
 0  | 
 0  | 
   if( p->rc!=SQLITE_OK ) return;  | 
 
| 
207393
 | 
 0  | 
 0  | 
   if( p->pWriter==0 ){  | 
 
| 
207399
 | 
 0  | 
 0  | 
     if( p->rc ) return;  | 
 
| 
207415
 | 
 0  | 
 0  | 
   if( p->rc!=SQLITE_OK ) return;  | 
 
| 
207417
 | 
 0  | 
 0  | 
   if( p->pDeleter==0 ){  | 
 
| 
207424
 | 
 0  | 
 0  | 
     if( zSql==0 ){  | 
 
| 
207431
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
207450
 | 
 0  | 
 0  | 
   if( p->pIdxDeleter==0 ){  | 
 
| 
207457
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
207469
 | 
 0  | 
 0  | 
   if( pStruct && 0>=(--pStruct->nRef) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pStruct && 0>=(--pStruct->nRef) ){  | 
 
| 
207472
 | 
 0  | 
 0  | 
     for(i=0; inLevel; i++){  | 
 
| 
207510
 | 
 0  | 
 0  | 
   if( piCookie ) *piCookie = sqlite3Fts5Get32(pData);  | 
 
| 
207523
 | 
 0  | 
 0  | 
   if( pRet ){  | 
 
| 
207529
 | 
 0  | 
 0  | 
     for(iLvl=0; rc==SQLITE_OK && iLvl
 | 
 
| 
 | 
 0  | 
 0  | 
     for(iLvl=0; rc==SQLITE_OK && iLvl
 | 
 
| 
207534
 | 
 0  | 
 0  | 
       if( i>=nData ){  | 
 
| 
207545
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
207547
 | 
 0  | 
 0  | 
         for(iSeg=0; iSeg
 | 
 
| 
207548
 | 
 0  | 
 0  | 
           if( i>=nData ){  | 
 
| 
207558
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
207572
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
207581
 | 
 0  | 
 0  | 
     if( pStruct ){  | 
 
| 
207602
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
207609
 | 
 0  | 
 0  | 
     if( aNew ){  | 
 
| 
207610
 | 
 0  | 
 0  | 
       if( bInsert==0 ){  | 
 
| 
207631
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
207635
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK && pConfig->iCookie!=iCookie ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK && pConfig->iCookie!=iCookie ){  | 
 
| 
207639
 | 
 0  | 
 0  | 
     if( p->rc!=SQLITE_OK ){  | 
 
| 
207651
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
207652
 | 
 0  | 
 0  | 
     if( p->pDataVersion==0 ){  | 
 
| 
207656
 | 
 0  | 
 0  | 
       if( p->rc ) return 0;  | 
 
| 
207659
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(p->pDataVersion) ){  | 
 
| 
207681
 | 
 0  | 
 0  | 
   if( p->pStruct==0 ){  | 
 
| 
207683
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK ){  | 
 
| 
207711
 | 
 0  | 
 0  | 
   if( p->rc!=SQLITE_OK ) return 0;  | 
 
| 
207719
 | 
 0  | 
 0  | 
   if( p->pStruct ){  | 
 
| 
207762
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
207772
 | 
 0  | 
 0  | 
     if( iCookie<0 ) iCookie = 0;  | 
 
| 
207774
 | 
 0  | 
 0  | 
     if( 0==sqlite3Fts5BufferSize(&p->rc, &buf, 4+9+9+9) ){  | 
 
| 
207782
 | 
 0  | 
 0  | 
     for(iLvl=0; iLvlnLevel; iLvl++){  | 
 
| 
207789
 | 
 0  | 
 0  | 
       for(iSeg=0; iSegnSeg; iSeg++){  | 
 
| 
207834
 | 
 0  | 
 0  | 
   if( pOut->nMerge==0 ){  | 
 
| 
207835
 | 
 0  | 
 0  | 
     for(il=iPromote+1; ilnLevel; il++){  | 
 
| 
207837
 | 
 0  | 
 0  | 
       if( pLvl->nMerge ) return;  | 
 
| 
207838
 | 
 0  | 
 0  | 
       for(is=pLvl->nSeg-1; is>=0; is--){  | 
 
| 
207840
 | 
 0  | 
 0  | 
         if( sz>szPromote ) return;  | 
 
| 
207842
 | 
 0  | 
 0  | 
         if( p->rc ) return;  | 
 
| 
207873
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
207881
 | 
 0  | 
 0  | 
     if( nSeg==0 ) return;  | 
 
| 
207886
 | 
 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--);  | 
 
| 
207887
 | 
 0  | 
 0  | 
     if( iTst>=0 ){  | 
 
| 
207892
 | 
 0  | 
 0  | 
       for(i=0; inSeg; i++){  | 
 
| 
207894
 | 
 0  | 
 0  | 
         if( sz>szMax ) szMax = sz;  | 
 
| 
207896
 | 
 0  | 
 0  | 
       if( szMax>=szSeg ){  | 
 
| 
207906
 | 
 0  | 
 0  | 
     if( iPromote<0 ){  | 
 
| 
207922
 | 
 0  | 
 0  | 
   if( pLvl->iOff==0 ){  | 
 
| 
207930
 | 
 0  | 
 0  | 
     for(iOff=pLvl->iOff; iOffnn; iOff++){  | 
 
| 
207931
 | 
 0  | 
 0  | 
       if( pData->p[iOff] ) break;   | 
 
| 
207934
 | 
 0  | 
 0  | 
     if( iOffnn ){  | 
 
| 
207955
 | 
 0  | 
 0  | 
   if( fts5DlidxLvlNext(pLvl) ){  | 
 
| 
207956
 | 
 0  | 
 0  | 
     if( (iLvl+1) < pIter->nLvl ){  | 
 
| 
207958
 | 
 0  | 
 0  | 
       if( pLvl[1].bEof==0 ){  | 
 
| 
207964
 | 
 0  | 
 0  | 
         if( pLvl->pData ) fts5DlidxLvlNext(pLvl);  | 
 
| 
207988
 | 
 0  | 
 0  | 
   for(i=0; inLvl; i++){  | 
 
| 
207996
 | 
 0  | 
 0  | 
   return p->rc!=SQLITE_OK || pIter->aLvl[0].bEof;  | 
 
| 
 | 
 0  | 
 0  | 
   return p->rc!=SQLITE_OK || pIter->aLvl[0].bEof;  | 
 
| 
208003
 | 
 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--){  | 
 
| 
208005
 | 
 0  | 
 0  | 
     while( fts5DlidxLvlNext(pLvl)==0 );  | 
 
| 
208008
 | 
 0  | 
 0  | 
     if( i>0 ){  | 
 
| 
208026
 | 
 0  | 
 0  | 
   if( iOff<=pLvl->iFirstOff ){  | 
 
| 
208039
 | 
 0  | 
 0  | 
     iLimit = (iOff>9 ? iOff-9 : 0);  | 
 
| 
208040
 | 
 0  | 
 0  | 
     for(iOff--; iOff>iLimit; iOff--){  | 
 
| 
208041
 | 
 0  | 
 0  | 
       if( (a[iOff-1] & 0x80)==0 ) break;  | 
 
| 
208049
 | 
 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--){  | 
 
| 
208052
 | 
 0  | 
 0  | 
     if( ii>=pLvl->iFirstOff && (a[ii] & 0x80) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( ii>=pLvl->iFirstOff && (a[ii] & 0x80) ){  | 
 
| 
208057
 | 
 0  | 
 0  | 
       if( (ii-8)>=pLvl->iFirstOff ){  | 
 
| 
208059
 | 
 0  | 
 0  | 
         for(j=1; j<=8 && (a[ii-j] & 0x80); j++);  | 
 
| 
 | 
 0  | 
 0  | 
         for(j=1; j<=8 && (a[ii-j] & 0x80); j++);  | 
 
| 
208062
 | 
 0  | 
 0  | 
       if( bZero==0 ) nZero--;  | 
 
| 
208075
 | 
 0  | 
 0  | 
   if( fts5DlidxLvlPrev(pLvl) ){  | 
 
| 
208076
 | 
 0  | 
 0  | 
     if( (iLvl+1) < pIter->nLvl ){  | 
 
| 
208078
 | 
 0  | 
 0  | 
       if( pLvl[1].bEof==0 ){  | 
 
| 
208084
 | 
 0  | 
 0  | 
         if( pLvl->pData ){  | 
 
| 
208085
 | 
 0  | 
 0  | 
           while( fts5DlidxLvlNext(pLvl)==0 );  | 
 
| 
208102
 | 
 0  | 
 0  | 
   if( pIter ){  | 
 
| 
208104
 | 
 0  | 
 0  | 
     for(i=0; inLvl; i++){  | 
 
| 
208121
 | 
 0  | 
 0  | 
   for(i=0; p->rc==SQLITE_OK && bDone==0; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; p->rc==SQLITE_OK && bDone==0; i++){  | 
 
| 
208126
 | 
 0  | 
 0  | 
     if( pNew==0 ){  | 
 
| 
208134
 | 
 0  | 
 0  | 
       if( pLvl->pData && (pLvl->pData->p[0] & 0x0001)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pLvl->pData && (pLvl->pData->p[0] & 0x0001)==0 ){  | 
 
| 
208141
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
208143
 | 
 0  | 
 0  | 
     if( bRev==0 ){  | 
 
| 
208150
 | 
 0  | 
 0  | 
   if( p->rc!=SQLITE_OK ){  | 
 
| 
208176
 | 
 0  | 
 0  | 
   if( pIter->pNextLeaf ){  | 
 
| 
208179
 | 
 0  | 
 0  | 
   }else if( pIter->iLeafPgno<=pSeg->pgnoLast ){  | 
 
| 
208188
 | 
 0  | 
 0  | 
   if( pLeaf ){  | 
 
| 
208190
 | 
 0  | 
 0  | 
     if( fts5LeafIsTermless(pLeaf) ){  | 
 
| 
208209
 | 
 0  | 
 0  | 
   fts5FastGetVarint32(p, n, nSz);  | 
 
| 
208228
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
208231
 | 
 0  | 
 0  | 
     if( p->pConfig->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
208235
 | 
 0  | 
 0  | 
       if( iOffpLeaf->p[iOff]==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( iOffpLeaf->p[iOff]==0 ){  | 
 
| 
208238
 | 
 0  | 
 0  | 
         if( iOffpLeaf->p[iOff]==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( iOffpLeaf->p[iOff]==0 ){  | 
 
| 
208247
 | 
 0  | 
 0  | 
       fts5FastGetVarint32(pIter->pLeaf->p, iOff, nSz);  | 
 
| 
208261
 | 
 0  | 
 0  | 
   if( iOff>=pIter->pLeaf->szLeaf ){  | 
 
| 
208263
 | 
 0  | 
 0  | 
     if( pIter->pLeaf==0 ){  | 
 
| 
208264
 | 
 0  | 
 0  | 
       if( p->rc==SQLITE_OK ) p->rc = FTS5_CORRUPT;  | 
 
| 
208295
 | 
 0  | 
 0  | 
   if( iOff+nNew>pIter->pLeaf->nn ){  | 
 
| 
208306
 | 
 0  | 
 0  | 
   if( pIter->iPgidxOff>=pIter->pLeaf->nn ){  | 
 
| 
208322
 | 
 0  | 
 0  | 
   if( pIter->flags & FTS5_SEGITER_REVERSE ){  | 
 
| 
208324
 | 
 0  | 
 0  | 
   }else if( p->pConfig->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
208344
 | 
 0  | 
 0  | 
   if( pSeg->pgnoFirst==0 ){  | 
 
| 
208354
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
208362
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
208394
 | 
 0  | 
 0  | 
   if( n>pIter->iEndofDoclist ){  | 
 
| 
208402
 | 
 0  | 
 0  | 
     if( eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
208404
 | 
 0  | 
 0  | 
       if( i
 | 
 
| 
 | 
 0  | 
 0  | 
       if( i
 | 
 
| 
208406
 | 
 0  | 
 0  | 
         if( i
 | 
 
| 
 | 
 0  | 
 0  | 
         if( i
 | 
 
| 
208414
 | 
 0  | 
 0  | 
     if( i>=n ) break;  | 
 
| 
208419
 | 
 0  | 
 0  | 
     if( iRowidOffset>=pIter->nRowidOffset ){  | 
 
| 
208422
 | 
 0  | 
 0  | 
       if( aNew==0 ){  | 
 
| 
208446
 | 
 0  | 
 0  | 
   while( p->rc==SQLITE_OK && pIter->iLeafPgno>pIter->iTermLeafPgno ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( p->rc==SQLITE_OK && pIter->iLeafPgno>pIter->iTermLeafPgno ){  | 
 
| 
208452
 | 
 0  | 
 0  | 
     if( pNew ){  | 
 
| 
208456
 | 
 0  | 
 0  | 
       if( pIter->iLeafPgno==pIter->iTermLeafPgno ){  | 
 
| 
208458
 | 
 0  | 
 0  | 
         if( pIter->iTermLeafOffsetszLeaf ){  | 
 
| 
208465
 | 
 0  | 
 0  | 
         if( iRowidOff ){  | 
 
| 
208471
 | 
 0  | 
 0  | 
       if( pIter->pLeaf ){  | 
 
| 
208481
 | 
 0  | 
 0  | 
   if( pIter->pLeaf ){  | 
 
| 
208494
 | 
 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);  | 
 
| 
208511
 | 
 0  | 
 0  | 
   if( pIter->iRowidOffset>0 ){  | 
 
| 
208520
 | 
 0  | 
 0  | 
     if( p->pConfig->eDetail!=FTS5_DETAIL_NONE ){  | 
 
| 
208551
 | 
 0  | 
 0  | 
   if( pIter->pSeg && iOff>=pIter->pLeaf->szLeaf ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pIter->pSeg && iOff>=pIter->pLeaf->szLeaf ){  | 
 
| 
208553
 | 
 0  | 
 0  | 
     if( p->rc || pIter->pLeaf==0 ) return;  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->rc || pIter->pLeaf==0 ) return;  | 
 
| 
208558
 | 
 0  | 
 0  | 
   if( iOffiEndofDoclist ){  | 
 
| 
208564
 | 
 0  | 
 0  | 
   }else if( (pIter->flags & FTS5_SEGITER_ONETERM)==0 ){  | 
 
| 
208565
 | 
 0  | 
 0  | 
     if( pIter->pSeg ){  | 
 
| 
208567
 | 
 0  | 
 0  | 
       if( iOff!=fts5LeafFirstTermOff(pIter->pLeaf) ){  | 
 
| 
208578
 | 
 0  | 
 0  | 
       if( pList==0 ) goto next_none_eof;  | 
 
| 
208587
 | 
 0  | 
 0  | 
     if( pbNewTerm ) *pbNewTerm = 1;  | 
 
| 
208630
 | 
 0  | 
 0  | 
   if( iOff
 | 
 
| 
208633
 | 
 0  | 
 0  | 
     if( iOff>=pIter->iEndofDoclist ){  | 
 
| 
208635
 | 
 0  | 
 0  | 
       if( iOff!=fts5LeafFirstTermOff(pLeaf) ){  | 
 
| 
208646
 | 
 0  | 
 0  | 
   }else if( pIter->pSeg==0 ){  | 
 
| 
208651
 | 
 0  | 
 0  | 
     if( 0==(pIter->flags & FTS5_SEGITER_ONETERM) ){  | 
 
| 
208655
 | 
 0  | 
 0  | 
     if( pList==0 ){  | 
 
| 
208671
 | 
 0  | 
 0  | 
     while( iOff==0 ){  | 
 
| 
208674
 | 
 0  | 
 0  | 
       if( pLeaf==0 ) break;  | 
 
| 
208676
 | 
 0  | 
 0  | 
       if( (iOff = fts5LeafFirstRowidOff(pLeaf)) && iOffszLeaf ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( (iOff = fts5LeafFirstRowidOff(pLeaf)) && iOffszLeaf ){  | 
 
| 
208680
 | 
 0  | 
 0  | 
         if( pLeaf->nn>pLeaf->szLeaf ){  | 
 
| 
208686
 | 
 0  | 
 0  | 
       else if( pLeaf->nn>pLeaf->szLeaf ){  | 
 
| 
208695
 | 
 0  | 
 0  | 
       if( iOff>pLeaf->szLeaf ){  | 
 
| 
208703
 | 
 0  | 
 0  | 
   if( pIter->pLeaf ){  | 
 
| 
208704
 | 
 0  | 
 0  | 
     if( bNewTerm ){  | 
 
| 
208705
 | 
 0  | 
 0  | 
       if( pIter->flags & FTS5_SEGITER_ONETERM ){  | 
 
| 
208711
 | 
 0  | 
 0  | 
         if( pbNewTerm ) *pbNewTerm = 1;  | 
 
| 
208724
 | 
 0  | 
 0  | 
       fts5FastGetVarint32(pIter->pLeaf->p, pIter->iLeafOffset, nSz);  | 
 
| 
208749
 | 
 0  | 
 0  | 
   if( pDlidx ){  | 
 
| 
208760
 | 
 0  | 
 0  | 
     if( pIter->iTermLeafPgno==pIter->iLeafPgno ){  | 
 
| 
208765
 | 
 0  | 
 0  | 
     fts5IndexSkipVarint(pLeaf->p, iPoslist);  | 
 
| 
 | 
 0  | 
 0  | 
     fts5IndexSkipVarint(pLeaf->p, iPoslist);  | 
 
| 
208771
 | 
 0  | 
 0  | 
     if( pIter->iEndofDoclist>=pLeaf->szLeaf ){  | 
 
| 
208777
 | 
 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++){  | 
 
| 
208780
 | 
 0  | 
 0  | 
         if( pNew ){  | 
 
| 
208784
 | 
 0  | 
 0  | 
           if( iRowid ){  | 
 
| 
208789
 | 
 0  | 
 0  | 
           if( bTermless==0 ) break;  | 
 
| 
208804
 | 
 0  | 
 0  | 
   if( pLast ){  | 
 
| 
208813
 | 
 0  | 
 0  | 
     if( fts5LeafIsTermless(pLast) ){  | 
 
| 
208841
 | 
 0  | 
 0  | 
   if( pIter->iTermLeafPgno==pIter->iLeafPgno   | 
 
| 
208842
 | 
 0  | 
 0  | 
    && pIter->iEndofDoclistszLeaf   | 
 
| 
208887
 | 
 0  | 
 0  | 
   if( iOff>n ){  | 
 
| 
208895
 | 
 0  | 
 0  | 
     fts5FastGetVarint32(a, iOff, nNew);  | 
 
| 
208896
 | 
 0  | 
 0  | 
     if( nKeep
 | 
 
| 
208901
 | 
 0  | 
 0  | 
     if( nKeep==nMatch ){  | 
 
| 
208905
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
208906
 | 
 0  | 
 0  | 
         if( a[iOff+i]!=pTerm[nMatch+i] ) break;  | 
 
| 
208910
 | 
 0  | 
 0  | 
       if( nTerm==nMatch ){  | 
 
| 
208911
 | 
 0  | 
 0  | 
         if( i==nNew ){  | 
 
| 
208916
 | 
 0  | 
 0  | 
       }else if( ipTerm[nMatch] ){  | 
 
| 
 | 
 0  | 
 0  | 
       }else if( ipTerm[nMatch] ){  | 
 
| 
208921
 | 
 0  | 
 0  | 
     if( iPgidx>=n ){  | 
 
| 
208930
 | 
 0  | 
 0  | 
     if( iOff>=n ){  | 
 
| 
208936
 | 
 0  | 
 0  | 
     fts5FastGetVarint32(a, iOff, nKeep);  | 
 
| 
208940
 | 
 0  | 
 0  | 
   if( bGe==0 ){  | 
 
| 
208944
 | 
 0  | 
 0  | 
   }else if( bEndOfPage ){  | 
 
| 
208947
 | 
 0  | 
 0  | 
       if( pIter->pLeaf==0 ) return;  | 
 
| 
208949
 | 
 0  | 
 0  | 
       if( fts5LeafIsTermless(pIter->pLeaf)==0 ){  | 
 
| 
208952
 | 
 0  | 
 0  | 
         if( iOff<4 || iOff>=pIter->pLeaf->szLeaf ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( iOff<4 || iOff>=pIter->pLeaf->szLeaf ){  | 
 
| 
208974
 | 
 0  | 
 0  | 
   if( iPgidx>=n ){  | 
 
| 
208988
 | 
 0  | 
 0  | 
   if( p->pIdxSelect==0 ){  | 
 
| 
209026
 | 
 0  | 
 0  | 
   if( p->rc ) return;  | 
 
| 
209029
 | 
 0  | 
 0  | 
   if( SQLITE_ROW==sqlite3_step(pIdxSelect) ){  | 
 
| 
209037
 | 
 0  | 
 0  | 
   if( iPgpgnoFirst ){  | 
 
| 
209045
 | 
 0  | 
 0  | 
   if( pIter->pLeaf ){  | 
 
| 
209049
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && bGe==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && bGe==0 ){  | 
 
| 
209051
 | 
 0  | 
 0  | 
     if( pIter->pLeaf ){  | 
 
| 
209052
 | 
 0  | 
 0  | 
       if( flags & FTS5INDEX_QUERY_DESC ){  | 
 
| 
209055
 | 
 0  | 
 0  | 
       if( bDlidx ){  | 
 
| 
209058
 | 
 0  | 
 0  | 
       if( flags & FTS5INDEX_QUERY_DESC ){  | 
 
| 
209103
 | 
 0  | 
 0  | 
   if( pTerm==0 || (flags & FTS5INDEX_QUERY_SCAN) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTerm==0 || (flags & FTS5INDEX_QUERY_SCAN) ){  | 
 
| 
209106
 | 
 0  | 
 0  | 
     n = (z ? (int)strlen((const char*)z) : 0);  | 
 
| 
209114
 | 
 0  | 
 0  | 
   if( pList ){  | 
 
| 
209118
 | 
 0  | 
 0  | 
     if( pLeaf==0 ) return;  | 
 
| 
209125
 | 
 0  | 
 0  | 
     if( flags & FTS5INDEX_QUERY_DESC ){  | 
 
| 
209254
 | 
 0  | 
 0  | 
   if( iOut>=(pIter->nSeg/2) ){  | 
 
| 
209265
 | 
 0  | 
 0  | 
   if( p1->pLeaf==0 ){           /* If p1 is at EOF */  | 
 
| 
209267
 | 
 0  | 
 0  | 
   }else if( p2->pLeaf==0 ){     /* If p2 is at EOF */  | 
 
| 
209271
 | 
 0  | 
 0  | 
     if( res==0 ){  | 
 
| 
209275
 | 
 0  | 
 0  | 
       if( p1->iRowid==p2->iRowid ){  | 
 
| 
209279
 | 
 0  | 
 0  | 
       res = ((p1->iRowid > p2->iRowid)==pIter->bRev) ? -1 : +1;  | 
 
| 
209282
 | 
 0  | 
 0  | 
     if( res<0 ){  | 
 
| 
209304
 | 
 0  | 
 0  | 
   if( iLeafPgno>pIter->pSeg->pgnoLast ){  | 
 
| 
209313
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK ){  | 
 
| 
209319
 | 
 0  | 
 0  | 
       if( iOff<4 || iOff>=n ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( iOff<4 || iOff>=n ){  | 
 
| 
209349
 | 
 0  | 
 0  | 
   if( bRev==0 ){  | 
 
| 
209350
 | 
 0  | 
 0  | 
     while( !fts5DlidxIterEof(p, pDlidx) && iMatch>fts5DlidxIterRowid(pDlidx) ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( !fts5DlidxIterEof(p, pDlidx) && iMatch>fts5DlidxIterRowid(pDlidx) ){  | 
 
| 
209355
 | 
 0  | 
 0  | 
     if( iLeafPgno>pIter->iLeafPgno ){  | 
 
| 
209362
 | 
 0  | 
 0  | 
     while( !fts5DlidxIterEof(p, pDlidx) && iMatch
 | 
 
| 
 | 
 0  | 
 0  | 
     while( !fts5DlidxIterEof(p, pDlidx) && iMatch
 | 
 
| 
209369
 | 
 0  | 
 0  | 
     if( iLeafPgnoiLeafPgno ){  | 
 
| 
209377
 | 
 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);  | 
 
| 
209378
 | 
 0  | 
 0  | 
     if( pIter->pLeaf==0 ) break;  | 
 
| 
209379
 | 
 0  | 
 0  | 
     if( bRev==0 && pIter->iRowid>=iMatch ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( bRev==0 && pIter->iRowid>=iMatch ) break;  | 
 
| 
209380
 | 
 0  | 
 0  | 
     if( bRev!=0 && pIter->iRowid<=iMatch ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( bRev!=0 && pIter->iRowid<=iMatch ) break;  | 
 
| 
209382
 | 
 0  | 
 0  | 
   }while( p->rc==SQLITE_OK );  | 
 
| 
209390
 | 
 0  | 
 0  | 
   if( pIter ){  | 
 
| 
209392
 | 
 0  | 
 0  | 
     for(i=0; inSeg; i++){  | 
 
| 
209408
 | 
 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){  | 
 
| 
209410
 | 
 0  | 
 0  | 
     if( (iEq = fts5MultiIterDoCompare(pIter, i)) ){  | 
 
| 
209436
 | 
 0  | 
 0  | 
   if( pNew->iRowid==pIter->iSwitchRowid  | 
 
| 
209437
 | 
 0  | 
 0  | 
    || (pNew->iRowidiSwitchRowid)==pIter->bRev  | 
 
| 
209441
 | 
 0  | 
 0  | 
     pIter->iSwitchRowid = pIter->bRev ? SMALLEST_INT64 : LARGEST_INT64;  | 
 
| 
209448
 | 
 0  | 
 0  | 
       if( pRes->bTermEq ){  | 
 
| 
209449
 | 
 0  | 
 0  | 
         if( pNew->iRowid==pOther->iRowid ){  | 
 
| 
209451
 | 
 0  | 
 0  | 
         }else if( (pOther->iRowid>pNew->iRowid)==pIter->bRev ){  | 
 
| 
209454
 | 
 0  | 
 0  | 
         }else if( (pOther->iRowid>pIter->iSwitchRowid)==pIter->bRev ){  | 
 
| 
209459
 | 
 0  | 
 0  | 
       if( i==1 ) break;  | 
 
| 
209493
 | 
 0  | 
 0  | 
   while( p->rc==SQLITE_OK ){  | 
 
| 
209498
 | 
 0  | 
 0  | 
     if( bUseFrom && pSeg->pDlidx ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( bUseFrom && pSeg->pDlidx ){  | 
 
| 
209504
 | 
 0  | 
 0  | 
     if( pSeg->pLeaf==0 || bNewTerm   | 
 
| 
 | 
 0  | 
 0  | 
     if( pSeg->pLeaf==0 || bNewTerm   | 
 
| 
209505
 | 
 0  | 
 0  | 
      || fts5MultiIterAdvanceRowid(pIter, iFirst, &pSeg)  | 
 
| 
209510
 | 
 0  | 
 0  | 
       if( pSeg->pLeaf==0 ) return;  | 
 
| 
209515
 | 
 0  | 
 0  | 
     if( pIter->bSkipEmpty==0 || pSeg->nPos ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pIter->bSkipEmpty==0 || pSeg->nPos ){  | 
 
| 
209529
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
209538
 | 
 0  | 
 0  | 
       if( pSeg->pLeaf==0 || bNewTerm   | 
 
| 
 | 
 0  | 
 0  | 
       if( pSeg->pLeaf==0 || bNewTerm   | 
 
| 
209539
 | 
 0  | 
 0  | 
        || fts5MultiIterAdvanceRowid(pIter, iFirst, &pSeg)  | 
 
| 
209547
 | 
 0  | 
 0  | 
     }while( fts5MultiIterIsEmpty(p, pIter) );  | 
 
| 
209562
 | 
 0  | 
 0  | 
   for(nSlot=2; nSlot
 | 
 
| 
209568
 | 
 0  | 
 0  | 
   if( pNew ){  | 
 
| 
209584
 | 
 0  | 
 0  | 
   if( nChunk>0 ){  | 
 
| 
209609
 | 
 0  | 
 0  | 
   for(i=0; inCol; i++){  | 
 
| 
209610
 | 
 0  | 
 0  | 
     if( pColset->aiCol[i]==iCol ) return 1;  | 
 
| 
209623
 | 
 0  | 
 0  | 
   if( nChunk>0 ){  | 
 
| 
209625
 | 
 0  | 
 0  | 
     while( i
 | 
 
| 
209630
 | 
 0  | 
 0  | 
       if( fts5IndexColsetTest(pCtx->pColset, iVal) ){  | 
 
| 
209646
 | 
 0  | 
 0  | 
   if( nChunk>0 ){  | 
 
| 
209652
 | 
 0  | 
 0  | 
     if( pCtx->eState==2 ){  | 
 
| 
209654
 | 
 0  | 
 0  | 
       fts5FastGetVarint32(pChunk, i, iCol);  | 
 
| 
209655
 | 
 0  | 
 0  | 
       if( fts5IndexColsetTest(pCtx->pColset, iCol) ){  | 
 
| 
209664
 | 
 0  | 
 0  | 
       while( i
 | 
 
| 
 | 
 0  | 
 0  | 
       while( i
 | 
 
| 
209665
 | 
 0  | 
 0  | 
         while( pChunk[i] & 0x80 ) i++;  | 
 
| 
209668
 | 
 0  | 
 0  | 
       if( pCtx->eState ){  | 
 
| 
209671
 | 
 0  | 
 0  | 
       if( i
 | 
 
| 
209675
 | 
 0  | 
 0  | 
         if( i>=nChunk ){  | 
 
| 
209678
 | 
 0  | 
 0  | 
           fts5FastGetVarint32(pChunk, i, iCol);  | 
 
| 
209680
 | 
 0  | 
 0  | 
           if( pCtx->eState ){  | 
 
| 
209686
 | 
 0  | 
 0  | 
     }while( i
 | 
 
| 
209706
 | 
 0  | 
 0  | 
   if( (pSeg->flags & FTS5_SEGITER_REVERSE)==0 ){  | 
 
| 
209714
 | 
 0  | 
 0  | 
     if( nRem<=0 ){  | 
 
| 
209719
 | 
 0  | 
 0  | 
       if( pData==0 ) break;  | 
 
| 
209722
 | 
 0  | 
 0  | 
       if( pgno==pgnoSave ){  | 
 
| 
209743
 | 
 0  | 
 0  | 
   if( 0==fts5BufferGrow(&p->rc, pBuf, pSeg->nPos) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( 0==fts5BufferGrow(&p->rc, pBuf, pSeg->nPos) ){  | 
 
| 
209744
 | 
 0  | 
 0  | 
     if( pColset==0 ){  | 
 
| 
209747
 | 
 0  | 
 0  | 
       if( p->pConfig->eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
209781
 | 
 0  | 
 0  | 
   while( iCol>iCurrent ){  | 
 
| 
209787
 | 
 0  | 
 0  | 
     while( *p!=0x01 ){  | 
 
| 
209788
 | 
 0  | 
 0  | 
       while( *p++ & 0x80 );  | 
 
| 
209789
 | 
 0  | 
 0  | 
       if( p>=pEnd ) return 0;  | 
 
| 
209793
 | 
 0  | 
 0  | 
     if( iCurrent & 0x80 ){  | 
 
| 
209798
 | 
 0  | 
 0  | 
   if( iCol!=iCurrent ) return 0;  | 
 
| 
209802
 | 
 0  | 
 0  | 
   while( p
 | 
 
| 
 | 
 0  | 
 0  | 
   while( p
 | 
 
| 
209803
 | 
 0  | 
 0  | 
     while( *p++ & 0x80 );  | 
 
| 
209815
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
209818
 | 
 0  | 
 0  | 
     for(i=0; inCol; i++){  | 
 
| 
209821
 | 
 0  | 
 0  | 
       if( nSub ){  | 
 
| 
209848
 | 
 0  | 
 0  | 
   if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf ){  | 
 
| 
209899
 | 
 0  | 
 0  | 
   if( pSeg->iLeafOffset+pSeg->nPos>pSeg->pLeaf->szLeaf ){  | 
 
| 
209913
 | 
 0  | 
 0  | 
     while( a
 | 
 
| 
209915
 | 
 0  | 
 0  | 
       while( *aiCol
 | 
 
| 
209917
 | 
 0  | 
 0  | 
         if( aiCol==aiColEnd ) goto setoutputs_col_out;  | 
 
| 
209919
 | 
 0  | 
 0  | 
       if( *aiCol==iPrev ){  | 
 
| 
209941
 | 
 0  | 
 0  | 
   if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf ){  | 
 
| 
209945
 | 
 0  | 
 0  | 
     if( pColset->nCol==1 ){  | 
 
| 
209967
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
209969
 | 
 0  | 
 0  | 
     if( pConfig->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
209973
 | 
 0  | 
 0  | 
     else if( pIter->pColset==0 ){  | 
 
| 
209977
 | 
 0  | 
 0  | 
     else if( pIter->pColset->nCol==0 ){  | 
 
| 
209981
 | 
 0  | 
 0  | 
     else if( pConfig->eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
209987
 | 
 0  | 
 0  | 
       if( pConfig->nCol<=100 ){  | 
 
| 
210028
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
210029
 | 
 0  | 
 0  | 
     if( iLevel<0 ){  | 
 
| 
210038
 | 
 0  | 
 0  | 
   if( pNew==0 ) return;  | 
 
| 
210044
 | 
 0  | 
 0  | 
   if( (flags & FTS5INDEX_QUERY_NOOUTPUT)==0 ){  | 
 
| 
210049
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
210050
 | 
 0  | 
 0  | 
     if( iLevel<0 ){  | 
 
| 
210052
 | 
 0  | 
 0  | 
       if( p->pHash ){  | 
 
| 
210057
 | 
 0  | 
 0  | 
       for(pLvl=&pStruct->aLevel[0]; pLvl
 | 
 
| 
210058
 | 
 0  | 
 0  | 
         for(iSeg=pLvl->nSeg-1; iSeg>=0; iSeg--){  | 
 
| 
210061
 | 
 0  | 
 0  | 
           if( pTerm==0 ){  | 
 
| 
210070
 | 
 0  | 
 0  | 
       for(iSeg=nSeg-1; iSeg>=0; iSeg--){  | 
 
| 
210081
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
210082
 | 
 0  | 
 0  | 
     for(iIter=pNew->nSeg-1; iIter>0; iIter--){  | 
 
| 
210084
 | 
 0  | 
 0  | 
       if( (iEq = fts5MultiIterDoCompare(pNew, iIter)) ){  | 
 
| 
210086
 | 
 0  | 
 0  | 
         if( p->rc==SQLITE_OK ) pSeg->xNext(p, pSeg, 0);  | 
 
| 
210093
 | 
 0  | 
 0  | 
     if( pNew->bSkipEmpty && fts5MultiIterIsEmpty(p, pNew) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pNew->bSkipEmpty && fts5MultiIterIsEmpty(p, pNew) ){  | 
 
| 
210095
 | 
 0  | 
 0  | 
     }else if( pNew->base.bEof==0 ){  | 
 
| 
210118
 | 
 0  | 
 0  | 
   if( pNew ){  | 
 
| 
210122
 | 
 0  | 
 0  | 
     if( pData->szLeaf>0 ){  | 
 
| 
210127
 | 
 0  | 
 0  | 
       if( bDesc ){  | 
 
| 
210154
 | 
 0  | 
 0  | 
   return (p->rc || pIter->base.bEof);  | 
 
| 
 | 
 0  | 
 0  | 
   return (p->rc || pIter->base.bEof);  | 
 
| 
210178
 | 
 0  | 
 0  | 
     if( fts5MultiIterEof(p, pIter) ) break;  | 
 
| 
210180
 | 
 0  | 
 0  | 
     if( pIter->bRev==0 && iRowid>=iMatch ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( pIter->bRev==0 && iRowid>=iMatch ) break;  | 
 
| 
210181
 | 
 0  | 
 0  | 
     if( pIter->bRev!=0 && iRowid<=iMatch ) break;  | 
 
| 
 | 
 0  | 
 0  | 
     if( pIter->bRev!=0 && iRowid<=iMatch ) break;  | 
 
| 
210207
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
210208
 | 
 0  | 
 0  | 
     if( pStruct->nSegment>=FTS5_MAX_SEGMENT ){  | 
 
| 
210218
 | 
 0  | 
 0  | 
       for(iLvl=0; iLvlnLevel; iLvl++){  | 
 
| 
210219
 | 
 0  | 
 0  | 
         for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){  | 
 
| 
210221
 | 
 0  | 
 0  | 
           if( iId<=FTS5_MAX_SEGMENT ){  | 
 
| 
210227
 | 
 0  | 
 0  | 
       for(i=0; aUsed[i]==0xFFFFFFFF; i++);  | 
 
| 
210229
 | 
 0  | 
 0  | 
       for(iSegid=0; mask & (1 << iSegid); iSegid++);  | 
 
| 
210263
 | 
 0  | 
 0  | 
   if( p->pHash ){  | 
 
| 
210278
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
210279
 | 
 0  | 
 0  | 
     if( pOld[i]!=pNew[i] ) break;  | 
 
| 
210291
 | 
 0  | 
 0  | 
   for(i=0; inDlidx; i++){  | 
 
| 
210293
 | 
 0  | 
 0  | 
     if( pDlidx->buf.n==0 ) break;  | 
 
| 
210294
 | 
 0  | 
 0  | 
     if( bFlush ){  | 
 
| 
210315
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && nLvl>=pWriter->nDlidx ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && nLvl>=pWriter->nDlidx ){  | 
 
| 
210319
 | 
 0  | 
 0  | 
     if( aDlidx==0 ){  | 
 
| 
210341
 | 
 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 ){  | 
 
| 
210364
 | 
 0  | 
 0  | 
   if( pWriter->iBtPage==0 ) return;  | 
 
| 
210367
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
210368
 | 
 0  | 
 0  | 
     const char *z = (pWriter->btterm.n>0?(const char*)pWriter->btterm.p:"");  | 
 
| 
210409
 | 
 0  | 
 0  | 
   if( pWriter->bFirstRowidInPage && pWriter->aDlidx[0].buf.n>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pWriter->bFirstRowidInPage && pWriter->aDlidx[0].buf.n>0 ){  | 
 
| 
210441
 | 
 0  | 
 0  | 
   for(i=0; p->rc==SQLITE_OK && bDone==0; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; p->rc==SQLITE_OK && bDone==0; i++){  | 
 
| 
210445
 | 
 0  | 
 0  | 
     if( pDlidx->buf.n>=p->pConfig->pgsz ){  | 
 
| 
210458
 | 
 0  | 
 0  | 
       if( p->rc==SQLITE_OK && pDlidx[1].buf.n==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( p->rc==SQLITE_OK && pDlidx[1].buf.n==0 ){  | 
 
| 
210477
 | 
 0  | 
 0  | 
     if( pDlidx->bPrevValid ){  | 
 
| 
210480
 | 
 0  | 
 0  | 
       i64 iPgno = (i==0 ? pWriter->writer.pgno : pDlidx[-1].pgno);  | 
 
| 
210504
 | 
 0  | 
 0  | 
   if( pWriter->bFirstTermInPage ){  | 
 
| 
210553
 | 
 0  | 
 0  | 
   if( (pPage->buf.n + pPgidx->n + nTerm + 2)>=p->pConfig->pgsz ){  | 
 
| 
210554
 | 
 0  | 
 0  | 
     if( pPage->buf.n>4 ){  | 
 
| 
210557
 | 
 0  | 
 0  | 
     fts5BufferGrow(&p->rc, &pPage->buf, nTerm+FTS5_DATA_PADDING);  | 
 
| 
210570
 | 
 0  | 
 0  | 
   if( pWriter->bFirstTermInPage ){  | 
 
| 
210572
 | 
 0  | 
 0  | 
     if( pPage->pgno!=1 ){  | 
 
| 
210587
 | 
 0  | 
 0  | 
       if( pPage->term.n ){  | 
 
| 
210622
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
210625
 | 
 0  | 
 0  | 
     if( (pPage->buf.n + pPage->pgidx.n)>=p->pConfig->pgsz ){  | 
 
| 
210632
 | 
 0  | 
 0  | 
     if( pWriter->bFirstRowidInPage ){  | 
 
| 
210638
 | 
 0  | 
 0  | 
     if( pWriter->bFirstRowidInDoclist || pWriter->bFirstRowidInPage ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pWriter->bFirstRowidInDoclist || pWriter->bFirstRowidInPage ){  | 
 
| 
210661
 | 
 0  | 
 0  | 
   while( p->rc==SQLITE_OK   | 
 
| 
210662
 | 
 0  | 
 0  | 
      && (pPage->buf.n + pPage->pgidx.n + n)>=p->pConfig->pgsz   | 
 
| 
210666
 | 
 0  | 
 0  | 
     while( nCopy
 | 
 
| 
210675
 | 
 0  | 
 0  | 
   if( n>0 ){  | 
 
| 
210691
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
210693
 | 
 0  | 
 0  | 
     if( pLeaf->buf.n>4 ){  | 
 
| 
210697
 | 
 0  | 
 0  | 
     if( pLeaf->pgno>1 ){  | 
 
| 
210706
 | 
 0  | 
 0  | 
   for(i=0; inDlidx; i++){  | 
 
| 
210734
 | 
 0  | 
 0  | 
   if( p->pIdxWriter==0 ){  | 
 
| 
210742
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
210763
 | 
 0  | 
 0  | 
   for(i=0; inSeg; i++){  | 
 
| 
210765
 | 
 0  | 
 0  | 
     if( pSeg->pSeg==0 ){  | 
 
| 
210767
 | 
 0  | 
 0  | 
     }else if( pSeg->pLeaf==0 ){  | 
 
| 
210782
 | 
 0  | 
 0  | 
       if( pData ){  | 
 
| 
210784
 | 
 0  | 
 0  | 
         fts5BufferGrow(&p->rc, &buf, pData->nn);  | 
 
| 
210789
 | 
 0  | 
 0  | 
         if( p->rc==SQLITE_OK ){  | 
 
| 
210796
 | 
 0  | 
 0  | 
         if( pSeg->iLeafPgno==pSeg->iTermLeafPgno   | 
 
| 
210797
 | 
 0  | 
 0  | 
          && pSeg->iEndofDoclistszLeaf   | 
 
| 
210838
 | 
 0  | 
 0  | 
   int nRem = pnRem ? *pnRem : 0;  /* Output leaf pages left to write */  | 
 
| 
210853
 | 
 0  | 
 0  | 
   if( pLvl->nMerge ){  | 
 
| 
210867
 | 
 0  | 
 0  | 
     if( iLvl==pStruct->nLevel-1 ){  | 
 
| 
210872
 | 
 0  | 
 0  | 
     if( p->rc ) return;  | 
 
| 
210888
 | 
 0  | 
 0  | 
   bOldest = (pLvlOut->nSeg==1 && pStruct->nLevel==iLvl+2);  | 
 
| 
 | 
 0  | 
 0  | 
   bOldest = (pLvlOut->nSeg==1 && pStruct->nLevel==iLvl+2);  | 
 
| 
210891
 | 
 0  | 
 0  | 
   for(fts5MultiIterNew(p, pStruct, flags, 0, 0, 0, iLvl, nInput, &pIter);  | 
 
| 
210901
 | 
 0  | 
 0  | 
     if( nTerm!=term.n || memcmp(pTerm, term.p, nTerm) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nTerm!=term.n || memcmp(pTerm, term.p, nTerm) ){  | 
 
| 
210902
 | 
 0  | 
 0  | 
       if( pnRem && writer.nLeafWritten>nRem ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pnRem && writer.nLeafWritten>nRem ){  | 
 
| 
210910
 | 
 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;  | 
 
| 
210912
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK && bTermWritten==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK && bTermWritten==0 ){  | 
 
| 
210922
 | 
 0  | 
 0  | 
     if( eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
210923
 | 
 0  | 
 0  | 
       if( pSegIter->bDel ){  | 
 
| 
210925
 | 
 0  | 
 0  | 
         if( pSegIter->nPos>0 ){  | 
 
| 
210941
 | 
 0  | 
 0  | 
   if( fts5MultiIterEof(p, pIter) ){  | 
 
| 
210945
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
210950
 | 
 0  | 
 0  | 
     if( pLvl->nSeg!=nInput ){  | 
 
| 
210957
 | 
 0  | 
 0  | 
     if( pSeg->pgnoLast==0 ){  | 
 
| 
210969
 | 
 0  | 
 0  | 
   if( pnRem ) *pnRem -= writer.nLeafWritten;  | 
 
| 
210986
 | 
 0  | 
 0  | 
   while( nRem>0 && p->rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( nRem>0 && p->rc==SQLITE_OK ){  | 
 
| 
210993
 | 
 0  | 
 0  | 
     for(iLvl=0; iLvlnLevel; iLvl++){  | 
 
| 
210995
 | 
 0  | 
 0  | 
       if( pLvl->nMerge ){  | 
 
| 
210996
 | 
 0  | 
 0  | 
         if( pLvl->nMerge>nBest ){  | 
 
| 
211002
 | 
 0  | 
 0  | 
       if( pLvl->nSeg>nBest ){  | 
 
| 
211015
 | 
 0  | 
 0  | 
     if( nBestaLevel[iBestLvl].nMerge==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( nBestaLevel[iBestLvl].nMerge==0 ){  | 
 
| 
211020
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK && pStruct->aLevel[iBestLvl].nMerge==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK && pStruct->aLevel[iBestLvl].nMerge==0 ){  | 
 
| 
211041
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && p->pConfig->nAutomerge>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && p->pConfig->nAutomerge>0 ){  | 
 
| 
211066
 | 
 0  | 
 0  | 
   while( p->rc==SQLITE_OK && pStruct->aLevel[iLvl].nSeg>=nCrisis ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( p->rc==SQLITE_OK && pStruct->aLevel[iLvl].nSeg>=nCrisis ){  | 
 
| 
211096
 | 
 0  | 
 0  | 
   if( ret
 | 
 
| 
211099
 | 
 0  | 
 0  | 
       if( (ret + i) > nMax ) break;  | 
 
| 
211125
 | 
 0  | 
 0  | 
   if( iSegid ){  | 
 
| 
211145
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK ){  | 
 
| 
211148
 | 
 0  | 
 0  | 
     while( p->rc==SQLITE_OK && 0==sqlite3Fts5HashScanEof(pHash) ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( p->rc==SQLITE_OK && 0==sqlite3Fts5HashScanEof(pHash) ){  | 
 
| 
211158
 | 
 0  | 
 0  | 
       if( pgsz>=(pBuf->n + pPgidx->n + nDoclist + 1) ){  | 
 
| 
211169
 | 
 0  | 
 0  | 
         while( p->rc==SQLITE_OK && iOff
 | 
 
| 
 | 
 0  | 
 0  | 
         while( p->rc==SQLITE_OK && iOff
 | 
 
| 
211173
 | 
 0  | 
 0  | 
           if( writer.bFirstRowidInPage ){  | 
 
| 
211183
 | 
 0  | 
 0  | 
           if( eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
211184
 | 
 0  | 
 0  | 
             if( iOff
 | 
 
| 
 | 
 0  | 
 0  | 
             if( iOff
 | 
 
| 
211187
 | 
 0  | 
 0  | 
               if( iOff
 | 
 
| 
 | 
 0  | 
 0  | 
               if( iOff
 | 
 
| 
211192
 | 
 0  | 
 0  | 
             if( (pBuf->n + pPgidx->n)>=pgsz ){  | 
 
| 
211200
 | 
 0  | 
 0  | 
             if( (pBuf->n + pPgidx->n + nCopy) <= pgsz ){  | 
 
| 
211210
 | 
 0  | 
 0  | 
               while( p->rc==SQLITE_OK ){  | 
 
| 
211213
 | 
 0  | 
 0  | 
                 if( (nCopy - iPos)<=nSpace ){  | 
 
| 
211221
 | 
 0  | 
 0  | 
                 if( (pBuf->n + pPgidx->n)>=pgsz ){  | 
 
| 
211224
 | 
 0  | 
 0  | 
                 if( iPos>=nCopy ) break;  | 
 
| 
211242
 | 
 0  | 
 0  | 
     if( pStruct->nLevel==0 ){  | 
 
| 
211246
 | 
 0  | 
 0  | 
     if( p->rc==SQLITE_OK ){  | 
 
| 
211267
 | 
 0  | 
 0  | 
   if( p->nPendingData ){  | 
 
| 
211293
 | 
 0  | 
 0  | 
   if( nSeg<2 ) return 0;  | 
 
| 
211294
 | 
 0  | 
 0  | 
   for(i=0; inLevel; i++){  | 
 
| 
211296
 | 
 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) ){  | 
 
| 
211306
 | 
 0  | 
 0  | 
   if( pNew ){  | 
 
| 
211314
 | 
 0  | 
 0  | 
     if( pLvl->aSeg ){  | 
 
| 
211320
 | 
 0  | 
 0  | 
       for(iLvl=pStruct->nLevel-1; iLvl>=0; iLvl--){  | 
 
| 
211321
 | 
 0  | 
 0  | 
         for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){  | 
 
| 
211345
 | 
 0  | 
 0  | 
   if( pStruct ){  | 
 
| 
211351
 | 
 0  | 
 0  | 
   if( pNew ){  | 
 
| 
211353
 | 
 0  | 
 0  | 
     for(iLvl=0; pNew->aLevel[iLvl].nSeg==0; iLvl++){}  | 
 
| 
211354
 | 
 0  | 
 0  | 
     while( p->rc==SQLITE_OK && pNew->aLevel[iLvl].nSeg>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
     while( p->rc==SQLITE_OK && pNew->aLevel[iLvl].nSeg>0 ){  | 
 
| 
211372
 | 
 0  | 
 0  | 
   if( pStruct ){  | 
 
| 
211375
 | 
 0  | 
 0  | 
     if( nMerge<0 ){  | 
 
| 
211382
 | 
 0  | 
 0  | 
     if( pStruct && pStruct->nLevel ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pStruct && pStruct->nLevel ){  | 
 
| 
211383
 | 
 0  | 
 0  | 
       if( fts5IndexMerge(p, &pStruct, nMerge, nMin) ){  | 
 
| 
211410
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && 0==fts5BufferGrow(&p->rc, pBuf, nData+9+9) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && 0==fts5BufferGrow(&p->rc, pBuf, nData+9+9) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && 0==fts5BufferGrow(&p->rc, pBuf, nData+9+9) ){  | 
 
| 
211422
 | 
 0  | 
 0  | 
   if( p>=pIter->aEof ){  | 
 
| 
211431
 | 
 0  | 
 0  | 
     if( p[0] & 0x80 ){  | 
 
| 
211489
 | 
 0  | 
 0  | 
   if( i>=pBuf->n ){  | 
 
| 
211516
 | 
 0  | 
 0  | 
   if( p->rc ) return;  | 
 
| 
211520
 | 
 0  | 
 0  | 
   while( i1>=0 || i2>=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( i1>=0 || i2>=0 ){  | 
 
| 
211521
 | 
 0  | 
 0  | 
     if( i1>=0 && (i2<0 || iRowid1
 | 
 
| 
 | 
 0  | 
 0  | 
     if( i1>=0 && (i2<0 || iRowid1
 | 
 
| 
 | 
 0  | 
 0  | 
     if( i1>=0 && (i2<0 || iRowid1
 | 
 
| 
211530
 | 
 0  | 
 0  | 
       if( i1>=0 && iRowid1==iRowid2 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( i1>=0 && iRowid1==iRowid2 ){  | 
 
| 
211554
 | 
 0  | 
 0  | 
   if( p2->n ){  | 
 
| 
211567
 | 
 0  | 
 0  | 
     if( sqlite3Fts5BufferSize(&p->rc, &out, p1->n + p2->n + 9) ) return;  | 
 
| 
211572
 | 
 0  | 
 0  | 
       if( i1.iRowid
 | 
 
| 
211577
 | 
 0  | 
 0  | 
         if( i1.aPoslist==0 ) break;  | 
 
| 
211579
 | 
 0  | 
 0  | 
       else if( i2.iRowid!=i1.iRowid ){  | 
 
| 
211584
 | 
 0  | 
 0  | 
         if( i2.aPoslist==0 ) break;  | 
 
| 
211602
 | 
 0  | 
 0  | 
         if( p->rc ) break;  | 
 
| 
211608
 | 
 0  | 
 0  | 
         if( iPos1
 | 
 
| 
211616
 | 
 0  | 
 0  | 
         if( iPos1>=0 && iPos2>=0 ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( iPos1>=0 && iPos2>=0 ){  | 
 
| 
211618
 | 
 0  | 
 0  | 
             if( iPos1
 | 
 
| 
211619
 | 
 0  | 
 0  | 
               if( iPos1!=iPrev ){  | 
 
| 
211623
 | 
 0  | 
 0  | 
               if( iPos1<0 ) break;  | 
 
| 
211628
 | 
 0  | 
 0  | 
               if( iPos2<0 ) break;  | 
 
| 
211633
 | 
 0  | 
 0  | 
         if( iPos1>=0 ){  | 
 
| 
211634
 | 
 0  | 
 0  | 
           if( iPos1!=iPrev ){  | 
 
| 
211649
 | 
 0  | 
 0  | 
         if( i1.aPoslist==0 || i2.aPoslist==0 ) break;  | 
 
| 
 | 
 0  | 
 0  | 
         if( i1.aPoslist==0 || i2.aPoslist==0 ) break;  | 
 
| 
211653
 | 
 0  | 
 0  | 
     if( i1.aPoslist ){  | 
 
| 
211657
 | 
 0  | 
 0  | 
     else if( i2.aPoslist ){  | 
 
| 
211683
 | 
 0  | 
 0  | 
   if( p->pConfig->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
211694
 | 
 0  | 
 0  | 
   if( aBuf && pStruct ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( aBuf && pStruct ){  | 
 
| 
211708
 | 
 0  | 
 0  | 
     for( /* no-op */ ;  | 
 
| 
211718
 | 
 0  | 
 0  | 
       if( bNewTerm ){  | 
 
| 
211719
 | 
 0  | 
 0  | 
         if( nTerm
 | 
 
| 
 | 
 0  | 
 0  | 
         if( nTerm
 | 
 
| 
211722
 | 
 0  | 
 0  | 
       if( p1->base.nData==0 ) continue;  | 
 
| 
211724
 | 
 0  | 
 0  | 
       if( p1->base.iRowid<=iLastRowid && doclist.n>0 ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( p1->base.iRowid<=iLastRowid && doclist.n>0 ){  | 
 
| 
211725
 | 
 0  | 
 0  | 
         for(i=0; p->rc==SQLITE_OK && doclist.n; i++){  | 
 
| 
 | 
 0  | 
 0  | 
         for(i=0; p->rc==SQLITE_OK && doclist.n; i++){  | 
 
| 
211727
 | 
 0  | 
 0  | 
           if( aBuf[i].n==0 ){  | 
 
| 
211742
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
211743
 | 
 0  | 
 0  | 
       if( p->rc==SQLITE_OK ){  | 
 
| 
211751
 | 
 0  | 
 0  | 
     if( pData ){  | 
 
| 
211754
 | 
 0  | 
 0  | 
       if( doclist.n ) memcpy(pData->p, doclist.p, doclist.n);  | 
 
| 
211773
 | 
 0  | 
 0  | 
   if( p->pHash==0 ){  | 
 
| 
211778
 | 
 0  | 
 0  | 
   if( iRowidiWriteRowid   | 
 
| 
211779
 | 
 0  | 
 0  | 
    || (iRowid==p->iWriteRowid && p->bDelete==0)  | 
 
| 
 | 
 0  | 
 0  | 
    || (iRowid==p->iWriteRowid && p->bDelete==0)  | 
 
| 
211780
 | 
 0  | 
 0  | 
    || (p->nPendingData > p->pConfig->nHashSize)   | 
 
| 
211845
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
211849
 | 
 0  | 
 0  | 
     if( p->zDataTbl && bCreate ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( p->zDataTbl && bCreate ){  | 
 
| 
211853
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
211859
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
211866
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
211878
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
211906
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
211907
 | 
 0  | 
 0  | 
     if( n>=nByte ) return 0;      /* Input contains fewer than nChar chars */  | 
 
| 
211908
 | 
 0  | 
 0  | 
     if( (unsigned char)p[n++]>=0xc0 ){  | 
 
| 
211909
 | 
 0  | 
 0  | 
       while( (p[n] & 0xc0)==0x80 ){  | 
 
| 
211911
 | 
 0  | 
 0  | 
         if( n>=nByte ) break;  | 
 
| 
211925
 | 
 0  | 
 0  | 
   while( i
 | 
 
| 
211926
 | 
 0  | 
 0  | 
     if( (unsigned char)pIn[i++]>=0xc0 ){  | 
 
| 
211927
 | 
 0  | 
 0  | 
       while( i
 | 
 
| 
 | 
 0  | 
 0  | 
       while( i
 | 
 
| 
211962
 | 
 0  | 
 0  | 
   for(i=0; inPrefix && rc==SQLITE_OK; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=0; inPrefix && rc==SQLITE_OK; i++){  | 
 
| 
211965
 | 
 0  | 
 0  | 
     if( nByte ){  | 
 
| 
211994
 | 
 0  | 
 0  | 
   if( sqlite3Fts5BufferSize(&p->rc, &buf, nToken+1)==0 ){  | 
 
| 
211996
 | 
 0  | 
 0  | 
     if( nToken ) memcpy(&buf.p[1], pToken, nToken);  | 
 
| 
212014
 | 
 0  | 
 0  | 
     if( flags & FTS5INDEX_QUERY_PREFIX ){  | 
 
| 
212016
 | 
 0  | 
 0  | 
       for(iIdx=1; iIdx<=pConfig->nPrefix; iIdx++){  | 
 
| 
212017
 | 
 0  | 
 0  | 
         if( pConfig->aPrefix[iIdx-1]==nChar ) break;  | 
 
| 
212021
 | 
 0  | 
 0  | 
     if( iIdx<=pConfig->nPrefix ){  | 
 
| 
212025
 | 
 0  | 
 0  | 
       if( pStruct ){  | 
 
| 
212038
 | 
 0  | 
 0  | 
       if( p->rc==SQLITE_OK ){  | 
 
| 
212040
 | 
 0  | 
 0  | 
         if( pSeg->pLeaf ) pRet->xSetOutputs(pRet, pSeg);  | 
 
| 
212044
 | 
 0  | 
 0  | 
     if( p->rc ){  | 
 
| 
212079
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ){  | 
 
| 
212081
 | 
 0  | 
 0  | 
     if( pSeg->pLeaf && pSeg->term.p[0]!=FTS5_MAIN_PREFIX ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( pSeg->pLeaf && pSeg->term.p[0]!=FTS5_MAIN_PREFIX ){  | 
 
| 
212116
 | 
 0  | 
 0  | 
   if( pIndexIter ){  | 
 
| 
212137
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && pData->nn ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && pData->nn ){  | 
 
| 
212141
 | 
 0  | 
 0  | 
     for(iCol=0; inn && iCol
 | 
 
| 
 | 
 0  | 
 0  | 
     for(iCol=0; inn && iCol
 | 
 
| 
212187
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
212224
 | 
 0  | 
 0  | 
   if( iIdx>=0 ) ret += (ret<<3) + (FTS5_MAIN_PREFIX + iIdx);  | 
 
| 
212225
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
212404
 | 
 0  | 
 0  | 
   for(i=iFirst; p->rc==SQLITE_OK && i<=iLast; i++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(i=iFirst; p->rc==SQLITE_OK && i<=iLast; i++){  | 
 
| 
212406
 | 
 0  | 
 0  | 
     if( pLeaf ){  | 
 
| 
212407
 | 
 0  | 
 0  | 
       if( !fts5LeafIsTermless(pLeaf) ) p->rc = FTS5_CORRUPT;  | 
 
| 
212408
 | 
 0  | 
 0  | 
       if( i>=iNoRowid && 0!=fts5LeafFirstRowidOff(pLeaf) ) p->rc = FTS5_CORRUPT;  | 
 
| 
 | 
 0  | 
 0  | 
       if( i>=iNoRowid && 0!=fts5LeafFirstRowidOff(pLeaf) ) p->rc = FTS5_CORRUPT;  | 
 
| 
212422
 | 
 0  | 
 0  | 
   while( iinn && p->rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( iinn && p->rc==SQLITE_OK ){  | 
 
| 
212431
 | 
 0  | 
 0  | 
     if( iOff>=pLeaf->szLeaf ){  | 
 
| 
212433
 | 
 0  | 
 0  | 
     }else if( iTermOff==nIncr ){  | 
 
| 
212436
 | 
 0  | 
 0  | 
       if( (iOff+nByte)>pLeaf->szLeaf ){  | 
 
| 
212445
 | 
 0  | 
 0  | 
       if( nKeep>buf1.n || (iOff+nByte)>pLeaf->szLeaf ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nKeep>buf1.n || (iOff+nByte)>pLeaf->szLeaf ){  | 
 
| 
212452
 | 
 0  | 
 0  | 
       if( p->rc==SQLITE_OK ){  | 
 
| 
212454
 | 
 0  | 
 0  | 
         if( res<=0 ) p->rc = FTS5_CORRUPT;  | 
 
| 
212474
 | 
 0  | 
 0  | 
   if( pSeg->pgnoFirst==0 ) return;  | 
 
| 
212482
 | 
 0  | 
 0  | 
   while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
212493
 | 
 0  | 
 0  | 
     if( iIdxLeafpgnoFirst ) continue;  | 
 
| 
212496
 | 
 0  | 
 0  | 
     if( pLeaf==0 ) break;  | 
 
| 
212502
 | 
 0  | 
 0  | 
     if( pLeaf->nn<=pLeaf->szLeaf ){  | 
 
| 
212512
 | 
 0  | 
 0  | 
       if( iRowidOff>=iOff ){  | 
 
| 
212517
 | 
 0  | 
 0  | 
         if( res==0 ) res = nTerm - nIdxTerm;  | 
 
| 
212518
 | 
 0  | 
 0  | 
         if( res<0 ) p->rc = FTS5_CORRUPT;  | 
 
| 
212524
 | 
 0  | 
 0  | 
     if( p->rc ) break;  | 
 
| 
212531
 | 
 0  | 
 0  | 
     if( p->rc ) break;  | 
 
| 
212534
 | 
 0  | 
 0  | 
     if( bIdxDlidx ){  | 
 
| 
212541
 | 
 0  | 
 0  | 
       for(pDlidx=fts5DlidxIterInit(p, 0, iSegid, iIdxLeaf);  | 
 
| 
212547
 | 
 0  | 
 0  | 
         for(iPg=iPrevLeaf+1; iPg
 | 
 
| 
212550
 | 
 0  | 
 0  | 
           if( pLeaf ){  | 
 
| 
212551
 | 
 0  | 
 0  | 
             if( fts5LeafFirstRowidOff(pLeaf)!=0 ) p->rc = FTS5_CORRUPT;  | 
 
| 
212561
 | 
 0  | 
 0  | 
         if( pLeaf ){  | 
 
| 
212565
 | 
 0  | 
 0  | 
           if( iRowidOff>=pLeaf->szLeaf ){  | 
 
| 
212569
 | 
 0  | 
 0  | 
             if( iRowid!=fts5DlidxIterRowid(pDlidx) ) p->rc = FTS5_CORRUPT;  | 
 
| 
212587
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK ) p->rc = rc2;  | 
 
| 
212626
 | 
 0  | 
 0  | 
   if( pStruct ){  | 
 
| 
212628
 | 
 0  | 
 0  | 
     for(iLvl=0; iLvlnLevel; iLvl++){  | 
 
| 
212629
 | 
 0  | 
 0  | 
       for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){  | 
 
| 
212649
 | 
 0  | 
 0  | 
   for(fts5MultiIterNew(p, pStruct, flags, 0, 0, 0, -1, 0, &pIter);  | 
 
| 
212662
 | 
 0  | 
 0  | 
     if( eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
212663
 | 
 0  | 
 0  | 
       if( 0==fts5MultiIterIsEmpty(p, pIter) ){  | 
 
| 
212669
 | 
 0  | 
 0  | 
       while( 0==sqlite3Fts5PoslistNext64(poslist.p, poslist.n, &iOff, &iPos) ){  | 
 
| 
212679
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && cksum!=cksum2 ) p->rc = FTS5_CORRUPT;  | 
 
| 
 | 
 0  | 
 0  | 
   if( p->rc==SQLITE_OK && cksum!=cksum2 ) p->rc = FTS5_CORRUPT;  | 
 
| 
212722
 | 
 0  | 
 0  | 
   if( iSegid==0 ){  | 
 
| 
212723
 | 
 0  | 
 0  | 
     if( iKey==FTS5_AVERAGES_ROWID ){  | 
 
| 
212730
 | 
 0  | 
 0  | 
     sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "{%ssegid=%d h=%d pgno=%d}",  | 
 
| 
212743
 | 
 0  | 
 0  | 
   for(iLvl=0; iLvlnLevel; iLvl++){  | 
 
| 
212748
 | 
 0  | 
 0  | 
     for(iSeg=0; iSegnSeg; iSeg++){  | 
 
| 
212774
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
212798
 | 
 0  | 
 0  | 
   while( i
 | 
 
| 
212815
 | 
 0  | 
 0  | 
   while( iOff
 | 
 
| 
212835
 | 
 0  | 
 0  | 
   if( n>0 ){  | 
 
| 
212839
 | 
 0  | 
 0  | 
   while( iOff
 | 
 
| 
212843
 | 
 0  | 
 0  | 
     sqlite3Fts5BufferAppendPrintf(pRc, pBuf, " nPos=%d%s", nPos, bDel?"*":"");  | 
 
| 
212845
 | 
 0  | 
 0  | 
     if( iOff
 | 
 
| 
212877
 | 
 0  | 
 0  | 
   while( i
 | 
 
| 
212883
 | 
 0  | 
 0  | 
     if( i
 | 
 
| 
 | 
 0  | 
 0  | 
     if( i
 | 
 
| 
212885
 | 
 0  | 
 0  | 
       if( i
 | 
 
| 
 | 
 0  | 
 0  | 
       if( i
 | 
 
| 
212926
 | 
 0  | 
 0  | 
   if( a==0 ) goto decode_out;  | 
 
| 
212933
 | 
 0  | 
 0  | 
   if( bDlidx ){  | 
 
| 
212944
 | 
 0  | 
 0  | 
     for(fts5DlidxLvlNext(&lvl); lvl.bEof==0; fts5DlidxLvlNext(&lvl)){  | 
 
| 
212949
 | 
 0  | 
 0  | 
   }else if( iSegid==0 ){  | 
 
| 
212950
 | 
 0  | 
 0  | 
     if( iRowid==FTS5_AVERAGES_ROWID ){  | 
 
| 
212955
 | 
 0  | 
 0  | 
   }else if( eDetailNone ){  | 
 
| 
212966
 | 
 0  | 
 0  | 
     if( szLeaf
 | 
 
| 
212974
 | 
 0  | 
 0  | 
     while( iOff
 | 
 
| 
212987
 | 
 0  | 
 0  | 
       if( iPgidxOff
 | 
 
| 
212997
 | 
 0  | 
 0  | 
       if( iOff
 | 
 
| 
213015
 | 
 0  | 
 0  | 
     if( n<4 ){  | 
 
| 
213021
 | 
 0  | 
 0  | 
       if( iPgidxOff
 | 
 
| 
213027
 | 
 0  | 
 0  | 
     if( iRowidOff!=0 ){  | 
 
| 
213029
 | 
 0  | 
 0  | 
     }else if( iTermOff!=0 ){  | 
 
| 
213038
 | 
 0  | 
 0  | 
     nDoclist = (iTermOff ? iTermOff : szLeaf) - iOff;  | 
 
| 
213041
 | 
 0  | 
 0  | 
     while( iPgidxOff
 | 
 
| 
213050
 | 
 0  | 
 0  | 
       if( iPgidxOff
 | 
 
| 
213057
 | 
 0  | 
 0  | 
       if( bFirst==0 ){  | 
 
| 
213076
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213093
 | 
 0  | 
 0  | 
   if( nArg==0 ){  | 
 
| 
213097
 | 
 0  | 
 0  | 
     if( 0==sqlite3_stricmp(zArg, "segment") ){  | 
 
| 
213100
 | 
 0  | 
 0  | 
       if( nArg!=3 ){  | 
 
| 
213131
 | 
 251  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213138
 | 
 251  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213149
 | 
 0  | 
 0  | 
   if( fts5IndexDataVersion(p)!=p->iStructVersion ){  | 
 
| 
213471
 | 
 0  | 
 0  | 
   if( pTab ){  | 
 
| 
213493
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213527
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213531
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213537
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213542
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213549
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213554
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213562
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
213699
 | 
 0  | 
 0  | 
   for(i=0; inConstraint; i++){  | 
 
| 
213703
 | 
 0  | 
 0  | 
     if( (p->op==SQLITE_INDEX_CONSTRAINT_MATCH && iCol>=0 && iCol<=nCol)  | 
 
| 
 | 
 0  | 
 0  | 
     if( (p->op==SQLITE_INDEX_CONSTRAINT_MATCH && iCol>=0 && iCol<=nCol)  | 
 
| 
 | 
 0  | 
 0  | 
     if( (p->op==SQLITE_INDEX_CONSTRAINT_MATCH && iCol>=0 && iCol<=nCol)  | 
 
| 
213704
 | 
 0  | 
 0  | 
      || (p->op==SQLITE_INDEX_CONSTRAINT_EQ && iCol==nCol)  | 
 
| 
 | 
 0  | 
 0  | 
      || (p->op==SQLITE_INDEX_CONSTRAINT_EQ && iCol==nCol)  | 
 
| 
213707
 | 
 0  | 
 0  | 
       if( p->usable ){  | 
 
| 
213716
 | 
 0  | 
 0  | 
     }else if( p->op<=SQLITE_INDEX_CONSTRAINT_MATCH ){  | 
 
| 
213718
 | 
 0  | 
 0  | 
       for(j=1; j
 | 
 
| 
213720
 | 
 0  | 
 0  | 
         if( iCol==aColMap[pC->iCol] && (p->op & pC->op) && p->usable ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( iCol==aColMap[pC->iCol] && (p->op & pC->op) && p->usable ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( iCol==aColMap[pC->iCol] && (p->op & pC->op) && p->usable ){  | 
 
| 
213729
 | 
 0  | 
 0  | 
   if( pInfo->nOrderBy==1 ){  | 
 
| 
213731
 | 
 0  | 
 0  | 
     if( iSort==(pConfig->nCol+1) && BitFlagTest(idxFlags, FTS5_BI_MATCH) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iSort==(pConfig->nCol+1) && BitFlagTest(idxFlags, FTS5_BI_MATCH) ){  | 
 
| 
213733
 | 
 0  | 
 0  | 
     }else if( iSort==-1 ){  | 
 
| 
213736
 | 
 0  | 
 0  | 
     if( BitFlagTest(idxFlags, FTS5_BI_ORDER_RANK|FTS5_BI_ORDER_ROWID) ){  | 
 
| 
213738
 | 
 0  | 
 0  | 
       if( pInfo->aOrderBy[0].desc ){  | 
 
| 
213746
 | 
 0  | 
 0  | 
   if( BitFlagTest(idxFlags, FTS5_BI_ROWID_EQ) ){  | 
 
| 
213747
 | 
 0  | 
 0  | 
     pInfo->estimatedCost = bHasMatch ? 100.0 : 10.0;  | 
 
| 
213748
 | 
 0  | 
 0  | 
     if( bHasMatch==0 ) fts5SetUniqueFlag(pInfo);  | 
 
| 
213749
 | 
 0  | 
 0  | 
   }else if( BitFlagAllTest(idxFlags, FTS5_BI_ROWID_LE|FTS5_BI_ROWID_GE) ){  | 
 
| 
213750
 | 
 0  | 
 0  | 
     pInfo->estimatedCost = bHasMatch ? 500.0 : 250000.0;  | 
 
| 
213751
 | 
 0  | 
 0  | 
   }else if( BitFlagTest(idxFlags, FTS5_BI_ROWID_LE|FTS5_BI_ROWID_GE) ){  | 
 
| 
213752
 | 
 0  | 
 0  | 
     pInfo->estimatedCost = bHasMatch ? 750.0 : 750000.0;  | 
 
| 
213754
 | 
 0  | 
 0  | 
     pInfo->estimatedCost = bHasMatch ? 1000.0 : 1000000.0;  | 
 
| 
213759
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
213761
 | 
 0  | 
 0  | 
     if( pC->iConsIndex>=0 ){  | 
 
| 
213773
 | 
 0  | 
 0  | 
   for(pCsr=pTab->pGlobal->pCsr; pCsr; pCsr=pCsr->pNext){  | 
 
| 
213774
 | 
 0  | 
 0  | 
     if( pCsr->base.pVtab==(sqlite3_vtab*)pTab ) return SQLITE_OK;  | 
 
| 
213790
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
213793
 | 
 0  | 
 0  | 
     if( pCsr ){  | 
 
| 
213809
 | 
 0  | 
 0  | 
   if( pCsr->ePlan==FTS5_PLAN_SCAN ){  | 
 
| 
213836
 | 
 0  | 
 0  | 
   if( pCsr->pStmt ){  | 
 
| 
213840
 | 
 0  | 
 0  | 
   if( pCsr->pSorter ){  | 
 
| 
213846
 | 
 0  | 
 0  | 
   if( pCsr->ePlan!=FTS5_PLAN_SOURCE ){  | 
 
| 
213850
 | 
 0  | 
 0  | 
   for(pData=pCsr->pAuxdata; pData; pData=pNext){  | 
 
| 
213852
 | 
 0  | 
 0  | 
     if( pData->xDelete ) pData->xDelete(pData->pPtr);  | 
 
| 
213859
 | 
 0  | 
 0  | 
   if( CsrFlagTest(pCsr, FTS5CSR_FREE_ZRANK) ){  | 
 
| 
213873
 | 
 0  | 
 0  | 
   if( pCursor ){  | 
 
| 
213880
 | 
 0  | 
 0  | 
     for(pp=&pTab->pGlobal->pCsr; (*pp)!=pCsr; pp=&(*pp)->pNext);  | 
 
| 
213893
 | 
 0  | 
 0  | 
   if( rc==SQLITE_DONE ){  | 
 
| 
213896
 | 
 0  | 
 0  | 
   }else if( rc==SQLITE_ROW ){  | 
 
| 
213909
 | 
 0  | 
 0  | 
     if( nBlob>0 ){  | 
 
| 
213910
 | 
 0  | 
 0  | 
       for(i=0; i<(pSorter->nIdx-1); i++){  | 
 
| 
213933
 | 
 0  | 
 0  | 
   for(pCsr=pTab->pGlobal->pCsr; pCsr; pCsr=pCsr->pNext){  | 
 
| 
213934
 | 
 0  | 
 0  | 
     if( pCsr->ePlan==FTS5_PLAN_MATCH  | 
 
| 
213935
 | 
 0  | 
 0  | 
      && pCsr->base.pVtab==(sqlite3_vtab*)pTab   | 
 
| 
213957
 | 
 0  | 
 0  | 
   if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_RESEEK) ){  | 
 
| 
213963
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK &&  iRowid!=sqlite3Fts5ExprRowid(pCsr->pExpr) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK &&  iRowid!=sqlite3Fts5ExprRowid(pCsr->pExpr) ){  | 
 
| 
213969
 | 
 0  | 
 0  | 
     if( sqlite3Fts5ExprEof(pCsr->pExpr) ){  | 
 
| 
213995
 | 
 0  | 
 0  | 
   if( pCsr->ePlan<3 ){  | 
 
| 
213997
 | 
 0  | 
 0  | 
     if( (rc = fts5CursorReseek(pCsr, &bSkip)) || bSkip ) return rc;  | 
 
| 
 | 
 0  | 
 0  | 
     if( (rc = fts5CursorReseek(pCsr, &bSkip)) || bSkip ) return rc;  | 
 
| 
214016
 | 
 0  | 
 0  | 
         if( rc!=SQLITE_ROW ){  | 
 
| 
214043
 | 
 0  | 
 0  | 
   if( zSql==0 ){  | 
 
| 
214048
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
214071
 | 
 0  | 
 0  | 
   if( pSorter==0 ) return SQLITE_NOMEM;  | 
 
| 
214082
 | 
 0  | 
 0  | 
   rc = fts5PrepareStatement(&pSorter->pStmt, pConfig,  | 
 
| 
 | 
 0  | 
 0  | 
   rc = fts5PrepareStatement(&pSorter->pStmt, pConfig,  | 
 
| 
 | 
 0  | 
 0  | 
   rc = fts5PrepareStatement(&pSorter->pStmt, pConfig,  | 
 
| 
214091
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
214098
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
214111
 | 
 0  | 
 0  | 
   if( sqlite3Fts5ExprEof(pExpr) ){  | 
 
| 
214133
 | 
 0  | 
 0  | 
   while( z[0]==' ' ) z++;  | 
 
| 
214134
 | 
 0  | 
 0  | 
   for(n=0; z[n] && z[n]!=' '; n++);  | 
 
| 
 | 
 0  | 
 0  | 
   for(n=0; z[n] && z[n]!=' '; n++);  | 
 
| 
214139
 | 
 0  | 
 0  | 
   if( 0==sqlite3_strnicmp("reads", z, n) ){  | 
 
| 
214142
 | 
 0  | 
 0  | 
   else if( 0==sqlite3_strnicmp("id", z, n) ){  | 
 
| 
214162
 | 
 0  | 
 0  | 
   for(pAux=pTab->pGlobal->pAux; pAux; pAux=pAux->pNext){  | 
 
| 
214163
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(zName, pAux->zFunc)==0 ) return pAux;  | 
 
| 
214179
 | 
 0  | 
 0  | 
   if( zRankArgs ){  | 
 
| 
214181
 | 
 0  | 
 0  | 
     if( zSql ){  | 
 
| 
214187
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
214188
 | 
 0  | 
 0  | 
         if( SQLITE_ROW==sqlite3_step(pStmt) ){  | 
 
| 
214193
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
214195
 | 
 0  | 
 0  | 
             for(i=0; inRankArg; i++){  | 
 
| 
214208
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
214210
 | 
 0  | 
 0  | 
     if( pAux==0 ){  | 
 
| 
214228
 | 
 0  | 
 0  | 
   if( pRank ){  | 
 
| 
214233
 | 
 0  | 
 0  | 
     if( z==0 ){  | 
 
| 
214234
 | 
 0  | 
 0  | 
       if( sqlite3_value_type(pRank)==SQLITE_NULL ) rc = SQLITE_ERROR;  | 
 
| 
214238
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
214242
 | 
 0  | 
 0  | 
     }else if( rc==SQLITE_ERROR ){  | 
 
| 
214248
 | 
 0  | 
 0  | 
     if( pConfig->zRank ){  | 
 
| 
214260
 | 
 0  | 
 0  | 
   if( pVal ){  | 
 
| 
214262
 | 
 0  | 
 0  | 
     if( eType==SQLITE_INTEGER ){  | 
 
| 
214305
 | 
 0  | 
 0  | 
   if( pCsr->ePlan ){  | 
 
| 
214325
 | 
 0  | 
 0  | 
   if( BitFlagTest(idxNum, FTS5_BI_MATCH) ) pMatch = apVal[iVal++];  | 
 
| 
214326
 | 
 0  | 
 0  | 
   if( BitFlagTest(idxNum, FTS5_BI_RANK) ) pRank = apVal[iVal++];  | 
 
| 
214327
 | 
 0  | 
 0  | 
   if( BitFlagTest(idxNum, FTS5_BI_ROWID_EQ) ) pRowidEq = apVal[iVal++];  | 
 
| 
214328
 | 
 0  | 
 0  | 
   if( BitFlagTest(idxNum, FTS5_BI_ROWID_LE) ) pRowidLe = apVal[iVal++];  | 
 
| 
214329
 | 
 0  | 
 0  | 
   if( BitFlagTest(idxNum, FTS5_BI_ROWID_GE) ) pRowidGe = apVal[iVal++];  | 
 
| 
214340
 | 
 0  | 
 0  | 
   if( pRowidEq ){  | 
 
| 
214343
 | 
 0  | 
 0  | 
   if( bDesc ){  | 
 
| 
214351
 | 
 0  | 
 0  | 
   if( pTab->pSortCsr ){  | 
 
| 
214362
 | 
 0  | 
 0  | 
     if( pTab->pSortCsr->bDesc ){  | 
 
| 
214372
 | 
 0  | 
 0  | 
   }else if( pMatch ){  | 
 
| 
214374
 | 
 0  | 
 0  | 
     if( zExpr==0 ) zExpr = "";  | 
 
| 
214377
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
214378
 | 
 0  | 
 0  | 
       if( zExpr[0]=='*' ){  | 
 
| 
214386
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
214387
 | 
 0  | 
 0  | 
           if( bOrderByRank ){  | 
 
| 
214397
 | 
 0  | 
 0  | 
   }else if( pConfig->zContent==0 ){  | 
 
| 
214405
 | 
 0  | 
 0  | 
     pCsr->ePlan = (pRowidEq ? FTS5_PLAN_ROWID : FTS5_PLAN_SCAN);  | 
 
| 
214409
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
214410
 | 
 0  | 
 0  | 
       if( pCsr->ePlan==FTS5_PLAN_ROWID ){  | 
 
| 
214441
 | 
 0  | 
 0  | 
   if( pCsr->pSorter ){  | 
 
| 
214489
 | 
 0  | 
 0  | 
   if( pCsr->pStmt==0 ){  | 
 
| 
214492
 | 
 0  | 
 0  | 
     rc = sqlite3Fts5StorageStmt(  | 
 
| 
214499
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && CsrFlagTest(pCsr, FTS5CSR_REQUIRE_CONTENT) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && CsrFlagTest(pCsr, FTS5CSR_REQUIRE_CONTENT) ){  | 
 
| 
214504
 | 
 0  | 
 0  | 
     if( rc==SQLITE_ROW ){  | 
 
| 
214509
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
214549
 | 
 0  | 
 0  | 
   if( 0==sqlite3_stricmp("delete-all", zCmd) ){  | 
 
| 
214550
 | 
 0  | 
 0  | 
     if( pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
214559
 | 
 0  | 
 0  | 
   }else if( 0==sqlite3_stricmp("rebuild", zCmd) ){  | 
 
| 
214560
 | 
 0  | 
 0  | 
     if( pConfig->eContent==FTS5_CONTENT_NONE ){  | 
 
| 
214568
 | 
 0  | 
 0  | 
   }else if( 0==sqlite3_stricmp("optimize", zCmd) ){  | 
 
| 
214570
 | 
 0  | 
 0  | 
   }else if( 0==sqlite3_stricmp("merge", zCmd) ){  | 
 
| 
214573
 | 
 0  | 
 0  | 
   }else if( 0==sqlite3_stricmp("integrity-check", zCmd) ){  | 
 
| 
214581
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
214584
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
214585
 | 
 0  | 
 0  | 
       if( bError ){  | 
 
| 
214601
 | 
 0  | 
 0  | 
   if( eType1==SQLITE_INTEGER ){  | 
 
| 
214615
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
214618
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
214665
 | 
 0  | 
 0  | 
   if( eType0==SQLITE_NULL   | 
 
| 
214666
 | 
 0  | 
 0  | 
    && sqlite3_value_type(apVal[2+pConfig->nCol])!=SQLITE_NULL   | 
 
| 
214670
 | 
 0  | 
 0  | 
     if( pConfig->eContent!=FTS5_CONTENT_NORMAL   | 
 
| 
214671
 | 
 0  | 
 0  | 
       && 0==sqlite3_stricmp("delete", z)   | 
 
| 
214690
 | 
 0  | 
 0  | 
     if( pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
214699
 | 
 0  | 
 0  | 
     if( eType0==SQLITE_INTEGER && fts5IsContentless(pTab) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( eType0==SQLITE_INTEGER && fts5IsContentless(pTab) ){  | 
 
| 
214700
 | 
 0  | 
 0  | 
       pTab->base.zErrMsg = sqlite3_mprintf(  | 
 
| 
214708
 | 
 0  | 
 0  | 
     else if( nArg==1 ){  | 
 
| 
214714
 | 
 0  | 
 0  | 
     else if( eType0!=SQLITE_INTEGER ){       | 
 
| 
214716
 | 
 0  | 
 0  | 
       if( eConflict==SQLITE_REPLACE   | 
 
| 
214717
 | 
 0  | 
 0  | 
        && sqlite3_value_type(apVal[1])==SQLITE_INTEGER   | 
 
| 
214729
 | 
 0  | 
 0  | 
       if( iOld!=iNew ){  | 
 
| 
214730
 | 
 0  | 
 0  | 
         if( eConflict==SQLITE_REPLACE ){  | 
 
| 
214732
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
214738
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
214741
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
214861
 | 
 0  | 
 0  | 
   if( fts5IsContentless((Fts5Table*)(pCsr->base.pVtab)) ){  | 
 
| 
214866
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
214884
 | 
 0  | 
 0  | 
   if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_POSLIST) ){  | 
 
| 
214886
 | 
 0  | 
 0  | 
     if( pConfig->eDetail!=FTS5_DETAIL_FULL ){  | 
 
| 
214890
 | 
 0  | 
 0  | 
       if( aPopulator==0 ) rc = SQLITE_NOMEM;  | 
 
| 
214891
 | 
 0  | 
 0  | 
       for(i=0; inCol && rc==SQLITE_OK; i++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; inCol && rc==SQLITE_OK; i++){  | 
 
| 
214894
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
214902
 | 
 0  | 
 0  | 
       if( pCsr->pSorter ){  | 
 
| 
214909
 | 
 0  | 
 0  | 
   if( pCsr->pSorter && pConfig->eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pCsr->pSorter && pConfig->eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
214911
 | 
 0  | 
 0  | 
     int i1 = (iPhrase==0 ? 0 : pSorter->aIdx[iPhrase-1]);  | 
 
| 
214932
 | 
 0  | 
 0  | 
   if( pCsr->aInstIter==0 ){  | 
 
| 
214938
 | 
 0  | 
 0  | 
   if( aIter ){  | 
 
| 
214943
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
214947
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
214952
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
214956
 | 
 0  | 
 0  | 
         for(i=0; i
 | 
 
| 
214957
 | 
 0  | 
 0  | 
           if( (aIter[i].bEof==0)   | 
 
| 
214958
 | 
 0  | 
 0  | 
               && (iBest<0 || aIter[i].iPos
 | 
 
| 
 | 
 0  | 
 0  | 
               && (iBest<0 || aIter[i].iPos
 | 
 
| 
214963
 | 
 0  | 
 0  | 
         if( iBest<0 ) break;  | 
 
| 
214966
 | 
 0  | 
 0  | 
         if( nInst>=pCsr->nInstAlloc ){  | 
 
| 
214967
 | 
 0  | 
 0  | 
           pCsr->nInstAlloc = pCsr->nInstAlloc ? pCsr->nInstAlloc*2 : 32;  | 
 
| 
214971
 | 
 0  | 
 0  | 
           if( aInst ){  | 
 
| 
214996
 | 
 0  | 
 0  | 
   if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_INST)==0   | 
 
| 
214997
 | 
 0  | 
 0  | 
    || SQLITE_OK==(rc = fts5CacheInstArray(pCsr)) ){  | 
 
| 
215012
 | 
 0  | 
 0  | 
   if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_INST)==0   | 
 
| 
215013
 | 
 0  | 
 0  | 
    || SQLITE_OK==(rc = fts5CacheInstArray(pCsr))   | 
 
| 
215015
 | 
 0  | 
 0  | 
     if( iIdx<0 || iIdx>=pCsr->nInstCount ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( iIdx<0 || iIdx>=pCsr->nInstCount ){  | 
 
| 
215047
 | 
 0  | 
 0  | 
   if( (tflags & FTS5_TOKEN_COLOCATED)==0 ){  | 
 
| 
215059
 | 
 0  | 
 0  | 
   if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_DOCSIZE) ){  | 
 
| 
215060
 | 
 0  | 
 0  | 
     if( pConfig->bColumnsize ){  | 
 
| 
215063
 | 
 0  | 
 0  | 
     }else if( pConfig->zContent==0 ){  | 
 
| 
215065
 | 
 0  | 
 0  | 
       for(i=0; inCol; i++){  | 
 
| 
215066
 | 
 0  | 
 0  | 
         if( pConfig->abUnindexed[i]==0 ){  | 
 
| 
215072
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && inCol; i++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && inCol; i++){  | 
 
| 
215073
 | 
 0  | 
 0  | 
         if( pConfig->abUnindexed[i]==0 ){  | 
 
| 
215078
 | 
 0  | 
 0  | 
           if( rc==SQLITE_OK ){  | 
 
| 
215088
 | 
 0  | 
 0  | 
   if( iCol<0 ){  | 
 
| 
215091
 | 
 0  | 
 0  | 
     for(i=0; inCol; i++){  | 
 
| 
215094
 | 
 0  | 
 0  | 
   }else if( iColnCol ){  | 
 
| 
215116
 | 
 0  | 
 0  | 
   for(pData=pCsr->pAuxdata; pData; pData=pData->pNext){  | 
 
| 
215117
 | 
 0  | 
 0  | 
     if( pData->pAux==pCsr->pAux ) break;  | 
 
| 
215120
 | 
 0  | 
 0  | 
   if( pData ){  | 
 
| 
215121
 | 
 0  | 
 0  | 
     if( pData->xDelete ){  | 
 
| 
215127
 | 
 0  | 
 0  | 
     if( pData==0 ){  | 
 
| 
215128
 | 
 0  | 
 0  | 
       if( xDelete ) xDelete(pPtr);  | 
 
| 
215146
 | 
 0  | 
 0  | 
   for(pData=pCsr->pAuxdata; pData; pData=pData->pNext){  | 
 
| 
215147
 | 
 0  | 
 0  | 
     if( pData->pAux==pCsr->pAux ) break;  | 
 
| 
215150
 | 
 0  | 
 0  | 
   if( pData ){  | 
 
| 
215152
 | 
 0  | 
 0  | 
     if( bClear ){  | 
 
| 
215167
 | 
 0  | 
 0  | 
   if( pIter->a>=pIter->b ){  | 
 
| 
215173
 | 
 0  | 
 0  | 
     if( iVal==1 ){  | 
 
| 
215192
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
215209
 | 
 0  | 
 0  | 
   if( pConfig->eDetail==FTS5_DETAIL_COLUMNS ){  | 
 
| 
215210
 | 
 0  | 
 0  | 
     if( pIter->a>=pIter->b ){  | 
 
| 
215220
 | 
 0  | 
 0  | 
       if( pIter->a>=pIter->b ){  | 
 
| 
215224
 | 
 0  | 
 0  | 
       if( pIter->a[0]==0x01 ) break;  | 
 
| 
215241
 | 
 0  | 
 0  | 
   if( pConfig->eDetail==FTS5_DETAIL_COLUMNS ){  | 
 
| 
215244
 | 
 0  | 
 0  | 
     if( pSorter ){  | 
 
| 
215245
 | 
 0  | 
 0  | 
       int i1 = (iPhrase==0 ? 0 : pSorter->aIdx[iPhrase-1]);  | 
 
| 
215251
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
215259
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
215261
 | 
 0  | 
 0  | 
       if( n<=0 ){  | 
 
| 
215263
 | 
 0  | 
 0  | 
       }else if( pIter->a[0]==0x01 ){  | 
 
| 
215317
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
215325
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
215326
 | 
 0  | 
 0  | 
     for(rc = fts5CursorFirst(pTab, pNew, 0);  | 
 
| 
215327
 | 
 0  | 
 0  | 
         rc==SQLITE_OK && CsrFlagTest(pNew, FTS5CSR_EOF)==0;  | 
 
| 
215331
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
215332
 | 
 0  | 
 0  | 
         if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
215357
 | 
 0  | 
 0  | 
   for(pCsr=pGlobal->pCsr; pCsr; pCsr=pCsr->pNext){  | 
 
| 
215358
 | 
 0  | 
 0  | 
     if( pCsr->iCsrId==iCsrId ) break;  | 
 
| 
215378
 | 
 0  | 
 0  | 
   if( pCsr==0 ){  | 
 
| 
215436
 | 
 0  | 
 0  | 
       for(i=0; i<(nPhrase-1); i++){  | 
 
| 
215443
 | 
 0  | 
 0  | 
       for(i=0; i
 | 
 
| 
215454
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i<(nPhrase-1); i++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i<(nPhrase-1); i++){  | 
 
| 
215462
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
215494
 | 
 0  | 
 0  | 
   if( pCsr->ePlan==FTS5_PLAN_SPECIAL ){  | 
 
| 
215495
 | 
 0  | 
 0  | 
     if( iCol==pConfig->nCol ){  | 
 
| 
215500
 | 
 0  | 
 0  | 
   if( iCol==pConfig->nCol ){  | 
 
| 
215506
 | 
 0  | 
 0  | 
   }else if( iCol==pConfig->nCol+1 ){  | 
 
| 
215509
 | 
 0  | 
 0  | 
     if( pCsr->ePlan==FTS5_PLAN_SOURCE ){  | 
 
| 
215511
 | 
 0  | 
 0  | 
     }else if(   | 
 
| 
215513
 | 
 0  | 
 0  | 
      || pCsr->ePlan==FTS5_PLAN_SORTED_MATCH  | 
 
| 
215515
 | 
 0  | 
 0  | 
       if( pCsr->pRank || SQLITE_OK==(rc = fts5FindRankFunction(pCsr)) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( pCsr->pRank || SQLITE_OK==(rc = fts5FindRankFunction(pCsr)) ){  | 
 
| 
215519
 | 
 0  | 
 0  | 
   }else if( !fts5IsContentless(pTab) ){  | 
 
| 
215521
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
215545
 | 
 0  | 
 0  | 
   if( pAux ){  | 
 
| 
215617
 | 
 753  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
215625
 | 
 753  | 
 0  | 
     if( pAux ){  | 
 
| 
215663
 | 
 753  | 
 0  | 
   if( pNew ){  | 
 
| 
215672
 | 
 251  | 
 502  | 
     if( pNew->pNext==0 ){  | 
 
| 
215688
 | 
 0  | 
 0  | 
   if( zName==0 ){  | 
 
| 
215691
 | 
 0  | 
 0  | 
     for(pMod=pGlobal->pTok; pMod; pMod=pMod->pNext){  | 
 
| 
215692
 | 
 0  | 
 0  | 
       if( sqlite3_stricmp(zName, pMod->zName)==0 ) break;  | 
 
| 
215713
 | 
 0  | 
 0  | 
   if( pMod ){  | 
 
| 
215735
 | 
 0  | 
 0  | 
   pMod = fts5LocateTokenizer(pGlobal, nArg==0 ? 0 : azArg[0]);  | 
 
| 
215736
 | 
 0  | 
 0  | 
   if( pMod==0 ){  | 
 
| 
215741
 | 
 0  | 
 0  | 
     rc = pMod->x.xCreate(pMod->pUserData, &azArg[1], (nArg?nArg-1:0), ppTok);  | 
 
| 
215743
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK && pzErr ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK && pzErr ){  | 
 
| 
215748
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
215761
 | 
 747  | 
 249  | 
   for(pAux=pGlobal->pAux; pAux; pAux=pNextAux){  | 
 
| 
215763
 | 
 0  | 
 747  | 
     if( pAux->xDestroy ) pAux->xDestroy(pAux->pUserData);  | 
 
| 
215767
 | 
 747  | 
 249  | 
   for(pTok=pGlobal->pTok; pTok; pTok=pNextTok){  | 
 
| 
215769
 | 
 0  | 
 747  | 
     if( pTok->xDestroy ) pTok->xDestroy(pTok->pUserData);  | 
 
| 
215786
 | 
 0  | 
 0  | 
   if( ppApi ) *ppApi = &pGlobal->api;  | 
 
| 
215811
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
215812
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(zName, azName[i])==0 ) return 1;  | 
 
| 
215849
 | 
 0  | 
 251  | 
   if( pGlobal==0 ){  | 
 
| 
215860
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ) rc = sqlite3Fts5IndexInit(db);  | 
 
| 
215861
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ) rc = sqlite3Fts5ExprInit(pGlobal, db);  | 
 
| 
215862
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ) rc = sqlite3Fts5AuxInit(&pGlobal->api);  | 
 
| 
215863
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ) rc = sqlite3Fts5TokenizerInit(&pGlobal->api);  | 
 
| 
215864
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ) rc = sqlite3Fts5VocabInit(pGlobal, db);  | 
 
| 
215865
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
215870
 | 
 251  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216001
 | 
 0  | 
 0  | 
   if( p->aStmt[eStmt]==0 ){  | 
 
| 
216049
 | 
 0  | 
 0  | 
         if( zBind ){  | 
 
| 
216050
 | 
 0  | 
 0  | 
           for(i=0; i
 | 
 
| 
216066
 | 
 0  | 
 0  | 
     if( zSql==0 ){  | 
 
| 
216072
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK && pzErrMsg ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK && pzErrMsg ){  | 
 
| 
216097
 | 
 0  | 
 0  | 
   if( zSql==0 ){  | 
 
| 
216121
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
216127
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
216142
 | 
 0  | 
 0  | 
   if( *pRc==SQLITE_OK ){  | 
 
| 
216157
 | 
 0  | 
 0  | 
   if( pConfig->bColumnsize ){  | 
 
| 
216160
 | 
 0  | 
 0  | 
   if( pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
216180
 | 
 0  | 
 0  | 
   rc = fts5ExecPrintf(pConfig->db, &zErr, "CREATE TABLE %Q.'%q_%q'(%s)%s",  | 
 
| 
216187
 | 
 0  | 
 0  | 
   if( zErr ){  | 
 
| 
216219
 | 
 0  | 
 0  | 
   if( !p ) return SQLITE_NOMEM;  | 
 
| 
216226
 | 
 0  | 
 0  | 
   if( bCreate ){  | 
 
| 
216227
 | 
 0  | 
 0  | 
     if( pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
216230
 | 
 0  | 
 0  | 
       if( zDefn==0 ){  | 
 
| 
216237
 | 
 0  | 
 0  | 
         for(i=0; inCol; i++){  | 
 
| 
216246
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
216251
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216256
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216261
 | 
 0  | 
 0  | 
   if( rc ){  | 
 
| 
216273
 | 
 0  | 
 0  | 
   if( p ){  | 
 
| 
216277
 | 
 0  | 
 0  | 
     for(i=0; iaStmt); i++){  | 
 
| 
216307
 | 
 0  | 
 0  | 
   if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE;  | 
 
| 
216308
 | 
 0  | 
 0  | 
   if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){  | 
 
| 
216331
 | 
 0  | 
 0  | 
   if( apVal==0 ){  | 
 
| 
216333
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ) return rc;  | 
 
| 
216335
 | 
 0  | 
 0  | 
     if( sqlite3_step(pSeek)!=SQLITE_ROW ){  | 
 
| 
216343
 | 
 0  | 
 0  | 
   for(iCol=1; rc==SQLITE_OK && iCol<=pConfig->nCol; iCol++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(iCol=1; rc==SQLITE_OK && iCol<=pConfig->nCol; iCol++){  | 
 
| 
216344
 | 
 0  | 
 0  | 
     if( pConfig->abUnindexed[iCol-1]==0 ){  | 
 
| 
216347
 | 
 0  | 
 0  | 
       if( pSeek ){  | 
 
| 
216364
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
216383
 | 
 0  | 
 0  | 
   if( p->pConfig->bColumnsize ){  | 
 
| 
216386
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216409
 | 
 0  | 
 0  | 
   if( p->bTotalsValid==0 ){  | 
 
| 
216431
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
216434
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216454
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216459
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
216461
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216469
 | 
 0  | 
 0  | 
   if( pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
216470
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216473
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216497
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
216506
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216509
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216525
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216529
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216533
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pScan) ){  | 
 
| 
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pScan) ){  | 
 
| 
216538
 | 
 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++){  | 
 
| 
216540
 | 
 0  | 
 0  | 
       if( pConfig->abUnindexed[ctx.iCol]==0 ){  | 
 
| 
216554
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216561
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216590
 | 
 0  | 
 0  | 
   if( p->pConfig->bColumnsize ){  | 
 
| 
216593
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216599
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216618
 | 
 0  | 
 0  | 
   if( pConfig->eContent!=FTS5_CONTENT_NORMAL ){  | 
 
| 
216619
 | 
 0  | 
 0  | 
     if( sqlite3_value_type(apVal[1])==SQLITE_INTEGER ){  | 
 
| 
216628
 | 
 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++){  | 
 
| 
216631
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216658
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216661
 | 
 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++){  | 
 
| 
216663
 | 
 0  | 
 0  | 
     if( pConfig->abUnindexed[ctx.iCol]==0 ){  | 
 
| 
216678
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216694
 | 
 0  | 
 0  | 
   if( zSql==0 ){  | 
 
| 
216699
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
216700
 | 
 0  | 
 0  | 
       if( SQLITE_ROW==sqlite3_step(pCnt) ){  | 
 
| 
216745
 | 
 0  | 
 0  | 
   if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE;  | 
 
| 
216747
 | 
 0  | 
 0  | 
   if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){  | 
 
| 
216770
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && bPresent==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && bPresent==0 ){  | 
 
| 
216776
 | 
 0  | 
 0  | 
   for(ii=0; rc==SQLITE_OK && iipConfig->nPrefix; ii++){  | 
 
| 
 | 
 0  | 
 0  | 
   for(ii=0; rc==SQLITE_OK && iipConfig->nPrefix; ii++){  | 
 
| 
216779
 | 
 0  | 
 0  | 
     if( nByte ){  | 
 
| 
216781
 | 
 0  | 
 0  | 
       if( bPresent==0 ){  | 
 
| 
216809
 | 
 0  | 
 0  | 
   if( !aTotalSize ) return SQLITE_NOMEM;  | 
 
| 
216816
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216818
 | 
 0  | 
 0  | 
     while( SQLITE_ROW==sqlite3_step(pScan) ){  | 
 
| 
216822
 | 
 0  | 
 0  | 
       if( pConfig->bColumnsize ){  | 
 
| 
216825
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && pConfig->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK && pConfig->eDetail==FTS5_DETAIL_NONE ){  | 
 
| 
216828
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && inCol; i++){  | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && inCol; i++){  | 
 
| 
216829
 | 
 0  | 
 0  | 
         if( pConfig->abUnindexed[i] ) continue;  | 
 
| 
216832
 | 
 0  | 
 0  | 
         if( pConfig->eDetail==FTS5_DETAIL_COLUMNS ){  | 
 
| 
216835
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
216844
 | 
 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] ){  | 
 
| 
216848
 | 
 0  | 
 0  | 
         if( pConfig->eDetail==FTS5_DETAIL_COLUMNS ){  | 
 
| 
216856
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ) break;  | 
 
| 
216859
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ) rc = rc2;  | 
 
| 
216863
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216866
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inCol; i++){  | 
 
| 
 | 
 0  | 
 0  | 
     for(i=0; rc==SQLITE_OK && inCol; i++){  | 
 
| 
216867
 | 
 0  | 
 0  | 
       if( p->aTotalSize[i]!=aTotalSize[i] ) rc = FTS5_CORRUPT;  | 
 
| 
216873
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){  | 
 
| 
216876
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT;  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT;  | 
 
| 
216878
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pConfig->bColumnsize ){  | 
 
| 
216881
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT;  | 
 
| 
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT;  | 
 
| 
216887
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216911
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216932
 | 
 0  | 
 0  | 
   if( p->aStmt[eStmt]==0 ){  | 
 
| 
216946
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
216947
 | 
 0  | 
 0  | 
     if( iOff>=nBlob ) return 1;  | 
 
| 
216968
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216971
 | 
 0  | 
 0  | 
     if( SQLITE_ROW==sqlite3_step(pLookup) ){  | 
 
| 
216974
 | 
 0  | 
 0  | 
       if( 0==fts5StorageDecodeSizeArray(aCol, nCol, aBlob, nBlob) ){  | 
 
| 
216979
 | 
 0  | 
 0  | 
     if( bCorrupt && rc==SQLITE_OK ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( bCorrupt && rc==SQLITE_OK ){  | 
 
| 
216989
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
216991
 | 
 0  | 
 0  | 
     if( iCol<0 ){  | 
 
| 
216993
 | 
 0  | 
 0  | 
       for(i=0; ipConfig->nCol; i++){  | 
 
| 
216996
 | 
 0  | 
 0  | 
     }else if( iColpConfig->nCol ){  | 
 
| 
217007
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
217019
 | 
 0  | 
 0  | 
   if( p->bTotalsValid ){  | 
 
| 
217023
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
217043
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
217045
 | 
 0  | 
 0  | 
     if( pVal ){  | 
 
| 
217054
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pVal ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pVal ){  | 
 
| 
217057
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
217110
 | 
 0  | 
 0  | 
   for(i=0; zArg[i]; i++){  | 
 
| 
217111
 | 
 0  | 
 0  | 
     if( (zArg[i] & 0x80)==0 ){  | 
 
| 
217135
 | 
 0  | 
 0  | 
   if( nArg%2 ){  | 
 
| 
217139
 | 
 0  | 
 0  | 
     if( p==0 ){  | 
 
| 
217145
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
217147
 | 
 0  | 
 0  | 
         if( 0==sqlite3_stricmp(azArg[i], "tokenchars") ){  | 
 
| 
217150
 | 
 0  | 
 0  | 
         if( 0==sqlite3_stricmp(azArg[i], "separators") ){  | 
 
| 
217156
 | 
 0  | 
 0  | 
       if( rc!=SQLITE_OK ){  | 
 
| 
217170
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
217172
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ) c += 32;  | 
 
| 
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ) c += 32;  | 
 
| 
217199
 | 
 0  | 
 0  | 
   while( is
 | 
 
| 
 | 
 0  | 
 0  | 
   while( is
 | 
 
| 
217203
 | 
 0  | 
 0  | 
     while( is
 | 
 
| 
 | 
 0  | 
 0  | 
     while( is
 | 
 
| 
 | 
 0  | 
 0  | 
     while( is
 | 
 
| 
217206
 | 
 0  | 
 0  | 
     if( is==nText ) break;  | 
 
| 
217210
 | 
 0  | 
 0  | 
     while( ie
 | 
 
| 
 | 
 0  | 
 0  | 
     while( ie
 | 
 
| 
 | 
 0  | 
 0  | 
     while( ie
 | 
 
| 
217216
 | 
 0  | 
 0  | 
     if( nByte>nFold ){  | 
 
| 
217217
 | 
 0  | 
 0  | 
       if( pFold!=aFold ) sqlite3_free(pFold);  | 
 
| 
217219
 | 
 0  | 
 0  | 
       if( pFold==0 ){  | 
 
| 
217232
 | 
 0  | 
 0  | 
   if( pFold!=aFold ) sqlite3_free(pFold);  | 
 
| 
217233
 | 
 0  | 
 0  | 
   if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
217316
 | 
 0  | 
 0  | 
   if( n>0 ){  | 
 
| 
217318
 | 
 0  | 
 0  | 
     if( aNew ){  | 
 
| 
217322
 | 
 0  | 
 0  | 
       while( zCsr
 | 
 
| 
217325
 | 
 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);  | 
 
| 
217326
 | 
 0  | 
 0  | 
         if( iCode<128 ){  | 
 
| 
217332
 | 
 0  | 
 0  | 
           if( bToken!=bTokenChars && sqlite3Fts5UnicodeIsdiacritic(iCode)==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( bToken!=bTokenChars && sqlite3Fts5UnicodeIsdiacritic(iCode)==0 ){  | 
 
| 
217334
 | 
 0  | 
 0  | 
             for(i=0; i
 | 
 
| 
217335
 | 
 0  | 
 0  | 
               if( aNew[i]>iCode ) break;  | 
 
| 
217357
 | 
 0  | 
 0  | 
   if( p->nException>0 ){  | 
 
| 
217362
 | 
 0  | 
 0  | 
     while( iHi>=iLo ){  | 
 
| 
217364
 | 
 0  | 
 0  | 
       if( iCode==a[iTest] ){  | 
 
| 
217366
 | 
 0  | 
 0  | 
       }else if( iCode>a[iTest] ){  | 
 
| 
217381
 | 
 0  | 
 0  | 
   if( pTok ){  | 
 
| 
217393
 | 
 0  | 
 0  | 
   while( *z ){  | 
 
| 
217394
 | 
 0  | 
 0  | 
     while( *z==' ' || *z=='\t' ) z++;  | 
 
| 
 | 
 0  | 
 0  | 
     while( *z==' ' || *z=='\t' ) z++;  | 
 
| 
217395
 | 
 0  | 
 0  | 
     if( *z && sqlite3Fts5UnicodeCatParse(z, p->aCategory) ){  | 
 
| 
 | 
 0  | 
 0  | 
     if( *z && sqlite3Fts5UnicodeCatParse(z, p->aCategory) ){  | 
 
| 
217398
 | 
 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++;  | 
 
| 
217418
 | 
 0  | 
 0  | 
   if( nArg%2 ){  | 
 
| 
217422
 | 
 0  | 
 0  | 
     if( p ){  | 
 
| 
217430
 | 
 0  | 
 0  | 
       if( p->aFold==0 ){  | 
 
| 
217435
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
217436
 | 
 0  | 
 0  | 
         if( 0==sqlite3_stricmp(azArg[i], "categories") ){  | 
 
| 
217441
 | 
 0  | 
 0  | 
       if( rc==SQLITE_OK ){  | 
 
| 
217445
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 0  | 
 0  | 
       for(i=0; rc==SQLITE_OK && i
 | 
 
| 
217447
 | 
 0  | 
 0  | 
         if( 0==sqlite3_stricmp(azArg[i], "remove_diacritics") ){  | 
 
| 
217448
 | 
 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] ){  | 
 
| 
217453
 | 
 0  | 
 0  | 
         if( 0==sqlite3_stricmp(azArg[i], "tokenchars") ){  | 
 
| 
217456
 | 
 0  | 
 0  | 
         if( 0==sqlite3_stricmp(azArg[i], "separators") ){  | 
 
| 
217459
 | 
 0  | 
 0  | 
         if( 0==sqlite3_stricmp(azArg[i], "categories") ){  | 
 
| 
217469
 | 
 0  | 
 0  | 
     if( rc!=SQLITE_OK ){  | 
 
| 
217513
 | 
 0  | 
 0  | 
   while( rc==SQLITE_OK ){  | 
 
| 
217521
 | 
 0  | 
 0  | 
       if( zCsr>=zTerm ) goto tokenize_done;  | 
 
| 
217522
 | 
 0  | 
 0  | 
       if( *zCsr & 0x80 ) {  | 
 
| 
217526
 | 
 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);  | 
 
| 
217527
 | 
 0  | 
 0  | 
         if( fts5UnicodeIsAlnum(p, iCode) ){  | 
 
| 
217531
 | 
 0  | 
 0  | 
         if( a[*zCsr] ){  | 
 
| 
217541
 | 
 0  | 
 0  | 
     while( zCsr
 | 
 
| 
217545
 | 
 0  | 
 0  | 
       if( zOut>pEnd ){  | 
 
| 
217547
 | 
 0  | 
 0  | 
         if( aFold==0 ){  | 
 
| 
217559
 | 
 0  | 
 0  | 
       if( *zCsr & 0x80 ){  | 
 
| 
217562
 | 
 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);  | 
 
| 
217563
 | 
 0  | 
 0  | 
         if( fts5UnicodeIsAlnum(p,iCode)||sqlite3Fts5UnicodeIsdiacritic(iCode) ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( fts5UnicodeIsAlnum(p,iCode)||sqlite3Fts5UnicodeIsdiacritic(iCode) ){  | 
 
| 
217566
 | 
 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);  | 
 
| 
217570
 | 
 0  | 
 0  | 
       }else if( a[*zCsr]==0 ){  | 
 
| 
217575
 | 
 0  | 
 0  | 
         if( *zCsr>='A' && *zCsr<='Z' ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( *zCsr>='A' && *zCsr<='Z' ){  | 
 
| 
217590
 | 
 0  | 
 0  | 
   if( rc==SQLITE_DONE ) rc = SQLITE_OK;  | 
 
| 
217613
 | 
 0  | 
 0  | 
   if( pTok ){  | 
 
| 
217615
 | 
 0  | 
 0  | 
     if( p->pTokenizer ){  | 
 
| 
217636
 | 
 0  | 
 0  | 
   if( nArg>0 ){  | 
 
| 
217641
 | 
 0  | 
 0  | 
   if( pRet ){  | 
 
| 
217647
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
217648
 | 
 0  | 
 0  | 
     int nArg2 = (nArg>0 ? nArg-1 : 0);  | 
 
| 
217649
 | 
 0  | 
 0  | 
     const char **azArg2 = (nArg2 ? &azArg[1] : 0);  | 
 
| 
217653
 | 
 0  | 
 0  | 
   if( rc!=SQLITE_OK ){  | 
 
| 
217705
 | 
 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')  | 
 
| 
217714
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
217715
 | 
 0  | 
 0  | 
     if( 0==(bCons = !fts5PorterIsVowel(zStem[i], bCons)) ) break;  | 
 
| 
217719
 | 
 0  | 
 0  | 
   for(i++; i
 | 
 
| 
217720
 | 
 0  | 
 0  | 
     if( (bCons = !fts5PorterIsVowel(zStem[i], bCons)) ) return i+1;  | 
 
| 
217734
 | 
 0  | 
 0  | 
   if( n && fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( n && fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){  | 
 
| 
217744
 | 
 0  | 
 0  | 
   if( n && 0==fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( n && 0==fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){  | 
 
| 
217752
 | 
 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' ){  | 
 
| 
217758
 | 
 0  | 
 0  | 
     for(i=0; i
 | 
 
| 
217770
 | 
 0  | 
 0  | 
   return (zStem[nStem-1]=='s' || zStem[nStem-1]=='t')   | 
 
| 
217771
 | 
 0  | 
 0  | 
       && fts5Porter_MGt1(zStem, nStem);  | 
 
| 
 | 
 0  | 
 0  | 
       && fts5Porter_MGt1(zStem, nStem);  | 
 
| 
217777
 | 
 0  | 
 0  | 
   for(i=0; i
 | 
 
| 
217778
 | 
 0  | 
 0  | 
     if( fts5PorterIsVowel(zStem[i], i>0) ){  | 
 
| 
217797
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("al", &aBuf[nBuf-2], 2) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("al", &aBuf[nBuf-2], 2) ){  | 
 
| 
217798
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-2) ){  | 
 
| 
217805
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("ance", &aBuf[nBuf-4], 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("ance", &aBuf[nBuf-4], 4) ){  | 
 
| 
217806
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-4) ){  | 
 
| 
217809
 | 
 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) ){  | 
 
| 
217810
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-4) ){  | 
 
| 
217817
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("er", &aBuf[nBuf-2], 2) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("er", &aBuf[nBuf-2], 2) ){  | 
 
| 
217818
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-2) ){  | 
 
| 
217825
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("ic", &aBuf[nBuf-2], 2) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("ic", &aBuf[nBuf-2], 2) ){  | 
 
| 
217826
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-2) ){  | 
 
| 
217833
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("able", &aBuf[nBuf-4], 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("able", &aBuf[nBuf-4], 4) ){  | 
 
| 
217834
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-4) ){  | 
 
| 
217837
 | 
 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) ){  | 
 
| 
217838
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-4) ){  | 
 
| 
217845
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ant", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ant", &aBuf[nBuf-3], 3) ){  | 
 
| 
217846
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-3) ){  | 
 
| 
217849
 | 
 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) ){  | 
 
| 
217850
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-5) ){  | 
 
| 
217853
 | 
 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) ){  | 
 
| 
217854
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-4) ){  | 
 
| 
217857
 | 
 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) ){  | 
 
| 
217858
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-3) ){  | 
 
| 
217865
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ion", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ion", &aBuf[nBuf-3], 3) ){  | 
 
| 
217866
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1_and_S_or_T(aBuf, nBuf-3) ){  | 
 
| 
217869
 | 
 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) ){  | 
 
| 
217870
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-2) ){  | 
 
| 
217877
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ism", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ism", &aBuf[nBuf-3], 3) ){  | 
 
| 
217878
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-3) ){  | 
 
| 
217885
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ate", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ate", &aBuf[nBuf-3], 3) ){  | 
 
| 
217886
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-3) ){  | 
 
| 
217889
 | 
 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) ){  | 
 
| 
217890
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-3) ){  | 
 
| 
217897
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ous", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ous", &aBuf[nBuf-3], 3) ){  | 
 
| 
217898
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-3) ){  | 
 
| 
217905
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ive", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ive", &aBuf[nBuf-3], 3) ){  | 
 
| 
217906
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-3) ){  | 
 
| 
217913
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ize", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ize", &aBuf[nBuf-3], 3) ){  | 
 
| 
217914
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt1(aBuf, nBuf-3) ){  | 
 
| 
217931
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("at", &aBuf[nBuf-2], 2) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("at", &aBuf[nBuf-2], 2) ){  | 
 
| 
217939
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("bl", &aBuf[nBuf-2], 2) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("bl", &aBuf[nBuf-2], 2) ){  | 
 
| 
217947
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("iz", &aBuf[nBuf-2], 2) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>2 && 0==memcmp("iz", &aBuf[nBuf-2], 2) ){  | 
 
| 
217965
 | 
 0  | 
 0  | 
       if( nBuf>7 && 0==memcmp("ational", &aBuf[nBuf-7], 7) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>7 && 0==memcmp("ational", &aBuf[nBuf-7], 7) ){  | 
 
| 
217966
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-7) ){  | 
 
| 
217970
 | 
 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) ){  | 
 
| 
217971
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-6) ){  | 
 
| 
217979
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("enci", &aBuf[nBuf-4], 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("enci", &aBuf[nBuf-4], 4) ){  | 
 
| 
217980
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-4) ){  | 
 
| 
217984
 | 
 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) ){  | 
 
| 
217985
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-4) ){  | 
 
| 
217993
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("izer", &aBuf[nBuf-4], 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("izer", &aBuf[nBuf-4], 4) ){  | 
 
| 
217994
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-4) ){  | 
 
| 
218002
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("logi", &aBuf[nBuf-4], 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("logi", &aBuf[nBuf-4], 4) ){  | 
 
| 
218003
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-4) ){  | 
 
| 
218011
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("bli", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("bli", &aBuf[nBuf-3], 3) ){  | 
 
| 
218012
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-3) ){  | 
 
| 
218016
 | 
 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) ){  | 
 
| 
218017
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-4) ){  | 
 
| 
218021
 | 
 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) ){  | 
 
| 
218022
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218026
 | 
 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) ){  | 
 
| 
218027
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-3) ){  | 
 
| 
218031
 | 
 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) ){  | 
 
| 
218032
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218040
 | 
 0  | 
 0  | 
       if( nBuf>7 && 0==memcmp("ization", &aBuf[nBuf-7], 7) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>7 && 0==memcmp("ization", &aBuf[nBuf-7], 7) ){  | 
 
| 
218041
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-7) ){  | 
 
| 
218045
 | 
 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) ){  | 
 
| 
218046
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218050
 | 
 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) ){  | 
 
| 
218051
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-4) ){  | 
 
| 
218059
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("alism", &aBuf[nBuf-5], 5) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("alism", &aBuf[nBuf-5], 5) ){  | 
 
| 
218060
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218064
 | 
 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) ){  | 
 
| 
218065
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-7) ){  | 
 
| 
218069
 | 
 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) ){  | 
 
| 
218070
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-7) ){  | 
 
| 
218074
 | 
 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) ){  | 
 
| 
218075
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-7) ){  | 
 
| 
218083
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("aliti", &aBuf[nBuf-5], 5) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("aliti", &aBuf[nBuf-5], 5) ){  | 
 
| 
218084
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218088
 | 
 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) ){  | 
 
| 
218089
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218093
 | 
 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) ){  | 
 
| 
218094
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-6) ){  | 
 
| 
218112
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("ical", &aBuf[nBuf-4], 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("ical", &aBuf[nBuf-4], 4) ){  | 
 
| 
218113
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-4) ){  | 
 
| 
218121
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("ness", &aBuf[nBuf-4], 4) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>4 && 0==memcmp("ness", &aBuf[nBuf-4], 4) ){  | 
 
| 
218122
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-4) ){  | 
 
| 
218129
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("icate", &aBuf[nBuf-5], 5) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("icate", &aBuf[nBuf-5], 5) ){  | 
 
| 
218130
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218134
 | 
 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) ){  | 
 
| 
218135
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218143
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ful", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ful", &aBuf[nBuf-3], 3) ){  | 
 
| 
218144
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-3) ){  | 
 
| 
218151
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("ative", &aBuf[nBuf-5], 5) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("ative", &aBuf[nBuf-5], 5) ){  | 
 
| 
218152
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218159
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("alize", &aBuf[nBuf-5], 5) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>5 && 0==memcmp("alize", &aBuf[nBuf-5], 5) ){  | 
 
| 
218160
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-5) ){  | 
 
| 
218178
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("eed", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("eed", &aBuf[nBuf-3], 3) ){  | 
 
| 
218179
 | 
 0  | 
 0  | 
         if( fts5Porter_MGt0(aBuf, nBuf-3) ){  | 
 
| 
218183
 | 
 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) ){  | 
 
| 
218184
 | 
 0  | 
 0  | 
         if( fts5Porter_Vowel(aBuf, nBuf-2) ){  | 
 
| 
218192
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ing", &aBuf[nBuf-3], 3) ){  | 
 
| 
 | 
 0  | 
 0  | 
       if( nBuf>3 && 0==memcmp("ing", &aBuf[nBuf-3], 3) ){  | 
 
| 
218193
 | 
 0  | 
 0  | 
         if( fts5Porter_Vowel(aBuf, nBuf-3) ){  | 
 
| 
218211
 | 
 0  | 
 0  | 
   if( aBuf[nBuf-1]=='s' ){  | 
 
| 
218212
 | 
 0  | 
 0  | 
     if( aBuf[nBuf-2]=='e' ){  | 
 
| 
218213
 | 
 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')   | 
 
| 
218214
 | 
 0  | 
 0  | 
        || (nBuf>3 && aBuf[nBuf-3]=='i' )  | 
 
| 
 | 
 0  | 
 0  | 
        || (nBuf>3 && aBuf[nBuf-3]=='i' )  | 
 
| 
218221
 | 
 0  | 
 0  | 
     else if( aBuf[nBuf-2]!='s' ){  | 
 
| 
218240
 | 
 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;  | 
 
| 
218247
 | 
 0  | 
 0  | 
   if( fts5PorterStep1B(aBuf, &nBuf) ){  | 
 
| 
218248
 | 
 0  | 
 0  | 
     if( fts5PorterStep1B2(aBuf, &nBuf)==0 ){  | 
 
| 
218250
 | 
 0  | 
 0  | 
       if( fts5PorterIsVowel(c, 0)==0   | 
 
| 
218251
 | 
 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]   | 
 
| 
218254
 | 
 0  | 
 0  | 
       }else if( fts5Porter_MEq1(aBuf, nBuf) && fts5Porter_Ostar(aBuf, nBuf) ){  | 
 
| 
 | 
 0  | 
 0  | 
       }else if( fts5Porter_MEq1(aBuf, nBuf) && fts5Porter_Ostar(aBuf, nBuf) ){  | 
 
| 
218261
 | 
 0  | 
 0  | 
   if( aBuf[nBuf-1]=='y' && fts5Porter_Vowel(aBuf, nBuf-1) ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( aBuf[nBuf-1]=='y' && fts5Porter_Vowel(aBuf, nBuf-1) ){  | 
 
| 
218272
 | 
 0  | 
 0  | 
   if( aBuf[nBuf-1]=='e' ){  | 
 
| 
218273
 | 
 0  | 
 0  | 
     if( fts5Porter_MGt1(aBuf, nBuf-1)   | 
 
| 
218274
 | 
 0  | 
 0  | 
      || (fts5Porter_MEq1(aBuf, nBuf-1) && !fts5Porter_Ostar(aBuf, nBuf-1))  | 
 
| 
 | 
 0  | 
 0  | 
      || (fts5Porter_MEq1(aBuf, nBuf-1) && !fts5Porter_Ostar(aBuf, nBuf-1))  | 
 
| 
218281
 | 
 0  | 
 0  | 
   if( nBuf>1 && aBuf[nBuf-1]=='l'   | 
 
| 
 | 
 0  | 
 0  | 
   if( nBuf>1 && aBuf[nBuf-1]=='l'   | 
 
| 
218282
 | 
 0  | 
 0  | 
    && aBuf[nBuf-2]=='l' && fts5Porter_MGt1(aBuf, nBuf-1)   | 
 
| 
 | 
 0  | 
 0  | 
    && aBuf[nBuf-2]=='l' && fts5Porter_MGt1(aBuf, nBuf-1)   | 
 
| 
218329
 | 
 1004  | 
 0  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
 | 
 753  | 
 251  | 
   for(i=0; rc==SQLITE_OK && i
 | 
 
| 
218405
 | 
 0  | 
 0  | 
   while( iHi>=iLo ){  | 
 
| 
218407
 | 
 0  | 
 0  | 
     if( key >= aDia[iTest] ){  | 
 
| 
218415
 | 
 0  | 
 0  | 
   return ((c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c : (int)aChar[iRes]);  | 
 
| 
218426
 | 
 0  | 
 0  | 
   if( c<768 || c>817 ) return 0;  | 
 
| 
 | 
 0  | 
 0  | 
   if( c<768 || c>817 ) return 0;  | 
 
| 
218427
 | 
 0  | 
 0  | 
   return (c < 768+32) ?  | 
 
| 
218538
 | 
 0  | 
 0  | 
   if( c<128 ){  | 
 
| 
218539
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ) ret = c + ('a' - 'A');  | 
 
| 
 | 
 0  | 
 0  | 
     if( c>='A' && c<='Z' ) ret = c + ('a' - 'A');  | 
 
| 
218540
 | 
 0  | 
 0  | 
   }else if( c<65536 ){  | 
 
| 
218547
 | 
 0  | 
 0  | 
     while( iHi>=iLo ){  | 
 
| 
218550
 | 
 0  | 
 0  | 
       if( cmp>=0 ){  | 
 
| 
218560
 | 
 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)) ){  | 
 
| 
218565
 | 
 0  | 
 0  | 
     if( bRemoveDiacritic ) ret = fts5_remove_diacritic(ret);  | 
 
| 
218568
 | 
 0  | 
 0  | 
   else if( c>=66560 && c<66600 ){  | 
 
| 
 | 
 0  | 
 0  | 
   else if( c>=66560 && c<66600 ){  | 
 
| 
219070
 | 
 0  | 
 0  | 
   if( iCode>=(1<<20) ){  | 
 
| 
219076
 | 
 0  | 
 0  | 
   while( iHi>iLo ){  | 
 
| 
219079
 | 
 0  | 
 0  | 
     if( iKey>=aFts5UnicodeMap[iTest] ){  | 
 
| 
219087
 | 
 0  | 
 0  | 
   if( iRes<0 ) return 0;  | 
 
| 
219088
 | 
 0  | 
 0  | 
   if( iKey>=(aFts5UnicodeMap[iRes]+(aFts5UnicodeData[iRes]>>5)) ) return 0;  | 
 
| 
219090
 | 
 0  | 
 0  | 
   if( ret!=30 ) return ret;  | 
 
| 
219091
 | 
 0  | 
 0  | 
   return ((iKey - aFts5UnicodeMap[iRes]) & 0x01) ? 5 : 9;  | 
 
| 
219097
 | 
 0  | 
 0  | 
   while( i<128 ){  | 
 
| 
219100
 | 
 0  | 
 0  | 
     for(; i<128 && i
 | 
 
| 
 | 
 0  | 
 0  | 
     for(; i<128 && i
 | 
 
| 
219137
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
219148
 | 
 0  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
219162
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
219214
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
219223
 | 
 0  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
219240
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
219256
 | 
 0  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
219280
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
219301
 | 
 0  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
219317
 | 
 0  | 
 0  | 
   if (!(a&0x80))  | 
 
| 
219334
 | 
 0  | 
 0  | 
   if (!(b&0x80))  | 
 
| 
219406
 | 
 0  | 
 0  | 
   if( v & (((u64)0xff000000)<<32) ){  | 
 
| 
219409
 | 
 0  | 
 0  | 
     for(i=7; i>=0; i--){  | 
 
| 
219419
 | 
 0  | 
 0  | 
   }while( v!=0 );  | 
 
| 
219422
 | 
 0  | 
 0  | 
   for(i=0, j=n-1; j>=0; j--, i++){  | 
 
| 
219429
 | 
 0  | 
 0  | 
   if( v<=0x7f ){  | 
 
| 
219433
 | 
 0  | 
 0  | 
   if( v<=0x3fff ){  | 
 
| 
219447
 | 
 0  | 
 0  | 
   if( iVal<(1 << 14) ) return 2;  | 
 
| 
219448
 | 
 0  | 
 0  | 
   if( iVal<(1 << 21) ) return 3;  | 
 
| 
219449
 | 
 0  | 
 0  | 
   if( iVal<(1 << 28) ) return 4;  | 
 
| 
219559
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
219561
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(zCopy, "col")==0 ){  | 
 
| 
219565
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(zCopy, "row")==0 ){  | 
 
| 
219568
 | 
 0  | 
 0  | 
     if( sqlite3_stricmp(zCopy, "instance")==0 ){  | 
 
| 
219639
 | 
 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);  | 
 
| 
219641
 | 
 0  | 
 0  | 
   if( argc!=5 && bDb==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( argc!=5 && bDb==0 ){  | 
 
| 
219646
 | 
 0  | 
 0  | 
     const char *zDb = bDb ? argv[3] : argv[1];  | 
 
| 
219647
 | 
 0  | 
 0  | 
     const char *zTab = bDb ? argv[4] : argv[3];  | 
 
| 
219648
 | 
 0  | 
 0  | 
     const char *zType = bDb ? argv[5] : argv[4];  | 
 
| 
219654
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
219661
 | 
 0  | 
 0  | 
     if( pRet ){  | 
 
| 
219729
 | 
 0  | 
 0  | 
   for(i=0; inConstraint; i++){  | 
 
| 
219731
 | 
 0  | 
 0  | 
     if( p->usable==0 ) continue;  | 
 
| 
219732
 | 
 0  | 
 0  | 
     if( p->iColumn==0 ){          /* term column */  | 
 
| 
219733
 | 
 0  | 
 0  | 
       if( p->op==SQLITE_INDEX_CONSTRAINT_EQ ) iTermEq = i;  | 
 
| 
219734
 | 
 0  | 
 0  | 
       if( p->op==SQLITE_INDEX_CONSTRAINT_LE ) iTermLe = i;  | 
 
| 
219735
 | 
 0  | 
 0  | 
       if( p->op==SQLITE_INDEX_CONSTRAINT_LT ) iTermLe = i;  | 
 
| 
219736
 | 
 0  | 
 0  | 
       if( p->op==SQLITE_INDEX_CONSTRAINT_GE ) iTermGe = i;  | 
 
| 
219737
 | 
 0  | 
 0  | 
       if( p->op==SQLITE_INDEX_CONSTRAINT_GT ) iTermGe = i;  | 
 
| 
219741
 | 
 0  | 
 0  | 
   if( iTermEq>=0 ){  | 
 
| 
219747
 | 
 0  | 
 0  | 
     if( iTermGe>=0 ){  | 
 
| 
219752
 | 
 0  | 
 0  | 
     if( iTermLe>=0 ){  | 
 
| 
219764
 | 
 0  | 
 0  | 
   if( pInfo->nOrderBy==1   | 
 
| 
219765
 | 
 0  | 
 0  | 
    && pInfo->aOrderBy[0].iColumn==0   | 
 
| 
219766
 | 
 0  | 
 0  | 
    && pInfo->aOrderBy[0].desc==0  | 
 
| 
219794
 | 
 0  | 
 0  | 
   if( zSql ){  | 
 
| 
219799
 | 
 0  | 
 0  | 
   if( rc==SQLITE_ERROR ) rc = SQLITE_OK;  | 
 
| 
219801
 | 
 0  | 
 0  | 
   if( pStmt && sqlite3_step(pStmt)==SQLITE_ROW ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pStmt && sqlite3_step(pStmt)==SQLITE_ROW ){  | 
 
| 
219806
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pIndex==0 ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && pIndex==0 ){  | 
 
| 
219809
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
219817
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
219822
 | 
 0  | 
 0  | 
   if( pCsr ){  | 
 
| 
219861
 | 
 0  | 
 0  | 
   if( sqlite3Fts5IterEof(pCsr->pIter) ){  | 
 
| 
219867
 | 
 0  | 
 0  | 
     if( pCsr->nLeTerm>=0 ){  | 
 
| 
219870
 | 
 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
 | 
 
| 
219889
 | 
 0  | 
 0  | 
   while( eDetail==FTS5_DETAIL_NONE  | 
 
| 
219890
 | 
 0  | 
 0  | 
       || sqlite3Fts5PoslistNext64(pIter->pData, pIter->nData, po, pp)   | 
 
| 
219896
 | 
 0  | 
 0  | 
     if( rc==SQLITE_OK ){  | 
 
| 
219898
 | 
 0  | 
 0  | 
       if( pCsr->bEof || eDetail==FTS5_DETAIL_NONE ) break;  | 
 
| 
 | 
 0  | 
 0  | 
       if( pCsr->bEof || eDetail==FTS5_DETAIL_NONE ) break;  | 
 
| 
219900
 | 
 0  | 
 0  | 
     if( rc ){  | 
 
| 
219920
 | 
 0  | 
 0  | 
   if( pTab->eType==FTS5_VOCAB_INSTANCE ){  | 
 
| 
219924
 | 
 0  | 
 0  | 
   if( pTab->eType==FTS5_VOCAB_COL ){  | 
 
| 
219925
 | 
 0  | 
 0  | 
     for(pCsr->iCol++; pCsr->iColiCol++){  | 
 
| 
219926
 | 
 0  | 
 0  | 
       if( pCsr->aDoc[pCsr->iCol] ) break;  | 
 
| 
219930
 | 
 0  | 
 0  | 
   if( pTab->eType!=FTS5_VOCAB_COL || pCsr->iCol>=nCol ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( pTab->eType!=FTS5_VOCAB_COL || pCsr->iCol>=nCol ){  | 
 
| 
219931
 | 
 0  | 
 0  | 
     if( sqlite3Fts5IterEof(pCsr->pIter) ){  | 
 
| 
219938
 | 
 0  | 
 0  | 
       if( pCsr->nLeTerm>=0 ){  | 
 
| 
219941
 | 
 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
 | 
 
| 
219953
 | 
 0  | 
 0  | 
       while( rc==SQLITE_OK ){  | 
 
| 
219964
 | 
 0  | 
 0  | 
             if( eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
219965
 | 
 0  | 
 0  | 
               while( 0==sqlite3Fts5PoslistNext64(pPos, nPos, &iOff, &iPos) ){  | 
 
| 
219973
 | 
 0  | 
 0  | 
             if( eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
219975
 | 
 0  | 
 0  | 
               while( 0==sqlite3Fts5PoslistNext64(pPos, nPos, &iOff, &iPos) ){  | 
 
| 
219978
 | 
 0  | 
 0  | 
                 if( iCol!=ii ){  | 
 
| 
219979
 | 
 0  | 
 0  | 
                   if( ii>=nCol ){  | 
 
| 
219987
 | 
 0  | 
 0  | 
             }else if( eDetail==FTS5_DETAIL_COLUMNS ){  | 
 
| 
219988
 | 
 0  | 
 0  | 
               while( 0==sqlite3Fts5PoslistNext64(pPos, nPos, &iOff,&iPos) ){  | 
 
| 
219990
 | 
 0  | 
 0  | 
                 if( iPos>=nCol ){  | 
 
| 
220007
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
220010
 | 
 0  | 
 0  | 
         if( pTab->eType==FTS5_VOCAB_INSTANCE ) break;  | 
 
| 
220012
 | 
 0  | 
 0  | 
         if( rc==SQLITE_OK ){  | 
 
| 
220014
 | 
 0  | 
 0  | 
           if( nTerm!=pCsr->term.n || memcmp(zTerm, pCsr->term.p, nTerm) ){  | 
 
| 
 | 
 0  | 
 0  | 
           if( nTerm!=pCsr->term.n || memcmp(zTerm, pCsr->term.p, nTerm) ){  | 
 
| 
220017
 | 
 0  | 
 0  | 
           if( sqlite3Fts5IterEof(pCsr->pIter) ) break;  | 
 
| 
220023
 | 
 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 ){  | 
 
| 
220024
 | 
 0  | 
 0  | 
     while( pCsr->aDoc[pCsr->iCol]==0 ) pCsr->iCol++;  | 
 
| 
220057
 | 
 0  | 
 0  | 
   if( idxNum & FTS5_VOCAB_TERM_EQ ) pEq = apVal[iVal++];  | 
 
| 
220058
 | 
 0  | 
 0  | 
   if( idxNum & FTS5_VOCAB_TERM_GE ) pGe = apVal[iVal++];  | 
 
| 
220059
 | 
 0  | 
 0  | 
   if( idxNum & FTS5_VOCAB_TERM_LE ) pLe = apVal[iVal++];  | 
 
| 
220061
 | 
 0  | 
 0  | 
   if( pEq ){  | 
 
| 
220066
 | 
 0  | 
 0  | 
     if( pGe ){  | 
 
| 
220070
 | 
 0  | 
 0  | 
     if( pLe ){  | 
 
| 
220074
 | 
 0  | 
 0  | 
       if( pCsr->zLeTerm==0 ){  | 
 
| 
220082
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK ){  | 
 
| 
220085
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && eType==FTS5_VOCAB_INSTANCE ){  | 
 
| 
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK && eType==FTS5_VOCAB_INSTANCE ){  | 
 
| 
220088
 | 
 0  | 
 0  | 
   if( rc==SQLITE_OK   | 
 
| 
220089
 | 
 0  | 
 0  | 
    && !pCsr->bEof   | 
 
| 
220090
 | 
 0  | 
 0  | 
    && (eType!=FTS5_VOCAB_INSTANCE || pCsr->pConfig->eDetail!=FTS5_DETAIL_NONE)  | 
 
| 
 | 
 0  | 
 0  | 
    && (eType!=FTS5_VOCAB_INSTANCE || pCsr->pConfig->eDetail!=FTS5_DETAIL_NONE)  | 
 
| 
220117
 | 
 0  | 
 0  | 
   if( iCol==0 ){  | 
 
| 
220121
 | 
 0  | 
 0  | 
   }else if( eType==FTS5_VOCAB_COL ){  | 
 
| 
220123
 | 
 0  | 
 0  | 
     if( iCol==1 ){  | 
 
| 
220124
 | 
 0  | 
 0  | 
       if( eDetail!=FTS5_DETAIL_NONE ){  | 
 
| 
220128
 | 
 0  | 
 0  | 
     }else if( iCol==2 ){  | 
 
| 
220133
 | 
 0  | 
 0  | 
   }else if( eType==FTS5_VOCAB_ROW ){  | 
 
| 
220135
 | 
 0  | 
 0  | 
     if( iCol==1 ){  | 
 
| 
220148
 | 
 0  | 
 0  | 
         if( eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
220150
 | 
 0  | 
 0  | 
         }else if( eDetail==FTS5_DETAIL_COLUMNS ){  | 
 
| 
220153
 | 
 0  | 
 0  | 
         if( ii>=0 && iipConfig->nCol ){  | 
 
| 
 | 
 0  | 
 0  | 
         if( ii>=0 && iipConfig->nCol ){  | 
 
| 
220161
 | 
 0  | 
 0  | 
         if( eDetail==FTS5_DETAIL_FULL ){  | 
 
| 
220170
 | 
 0  | 
 0  | 
   if( iVal>0 ) sqlite3_result_int64(pCtx, iVal);  |