| 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); |