pIdx 53227 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = (Index *)sqliteHashData(p); pIdx 53228 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->tnum==(int)iRoot ){ pIdx 53235 ext/sqlite3/libsqlite/sqlite3.c iTab = pIdx->pTable->tnum; pIdx 54373 ext/sqlite3/libsqlite/sqlite3.c static int allocateSpace(MemPage *pPage, int nByte, int *pIdx){ pIdx 54413 ext/sqlite3/libsqlite/sqlite3.c *pIdx = (int)(pSpace - data); pIdx 54441 ext/sqlite3/libsqlite/sqlite3.c *pIdx = top; pIdx 64167 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 64189 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = p->pIdx; /* Index being probed */ pIdx 64192 ext/sqlite3/libsqlite/sqlite3.c int nCol = pIdx->nColumn; /* Number of index columns including rowid */ pIdx 64197 ext/sqlite3/libsqlite/sqlite3.c pRec->pKeyInfo = sqlite3KeyInfoOfIndex(p->pParse, pIdx); pIdx 64636 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx, /* Index being probed */ pIdx 64648 ext/sqlite3/libsqlite/sqlite3.c alloc.pIdx = pIdx; pIdx 65650 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3VdbeSetP4KeyInfo(Parse *pParse, Index *pIdx){ pIdx 65653 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx!=0 ); pIdx 65654 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeChangeP4(v, -1, (char*)sqlite3KeyInfoOfIndex(pParse, pIdx), pIdx 77651 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 77669 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 77671 ext/sqlite3/libsqlite/sqlite3.c for(j=0; j<pIdx->nKeyCol; j++){ pIdx 77672 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->aiColumn[j]==iCol ){ pIdx 84532 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* Iterator variable */ pIdx 84545 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx && eType==0 && affinity_ok; pIdx=pIdx->pNext){ pIdx 84546 ext/sqlite3/libsqlite/sqlite3.c if( (pIdx->aiColumn[0]==iCol) pIdx 84547 ext/sqlite3/libsqlite/sqlite3.c && sqlite3FindCollSeq(db, ENC(db), pIdx->azColl[0], 0)==pReq pIdx 84548 ext/sqlite3/libsqlite/sqlite3.c && (!mustBeUnique || (pIdx->nKeyCol==1 && IsUniqueIndex(pIdx))) pIdx 84551 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp3(v, OP_OpenRead, iTab, pIdx->tnum, iDb); pIdx 84552 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeSetP4KeyInfo(pParse, pIdx); pIdx 84553 ext/sqlite3/libsqlite/sqlite3.c VdbeComment((v, "%s", pIdx->zName)); pIdx 84555 ext/sqlite3/libsqlite/sqlite3.c eType = IN_INDEX_INDEX_ASC + pIdx->aSortOrder[0]; pIdx 89025 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* An index to being analyzed */ pIdx 89080 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 89087 ext/sqlite3/libsqlite/sqlite3.c if( pOnlyIdx && pOnlyIdx!=pIdx ) continue; pIdx 89088 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->pPartIdxWhere==0 ) needTableCnt = 0; pIdx 89089 ext/sqlite3/libsqlite/sqlite3.c if( !HasRowid(pTab) && IsPrimaryKeyIndex(pIdx) ){ pIdx 89090 ext/sqlite3/libsqlite/sqlite3.c nCol = pIdx->nKeyCol; pIdx 89094 ext/sqlite3/libsqlite/sqlite3.c nCol = pIdx->nColumn; pIdx 89095 ext/sqlite3/libsqlite/sqlite3.c zIdxName = pIdx->zName; pIdx 89096 ext/sqlite3/libsqlite/sqlite3.c nColTest = pIdx->uniqNotNull ? pIdx->nKeyCol-1 : nCol-1; pIdx 89142 ext/sqlite3/libsqlite/sqlite3.c assert( iDb==sqlite3SchemaToIndex(db, pIdx->pSchema) ); pIdx 89143 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp3(v, OP_OpenRead, iIdxCur, pIdx->tnum, iDb); pIdx 89144 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeSetP4KeyInfo(pParse, pIdx); pIdx 89145 ext/sqlite3/libsqlite/sqlite3.c VdbeComment((v, "%s", pIdx->zName)); pIdx 89161 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Integer, pIdx->nKeyCol, regStat4+2); pIdx 89197 ext/sqlite3/libsqlite/sqlite3.c if( nColTest==1 && pIdx->nKeyCol==1 && IsUniqueIndex(pIdx) ){ pIdx 89205 ext/sqlite3/libsqlite/sqlite3.c char *pColl = (char*)sqlite3LocateCollSeq(pParse, pIdx->azColl[i]); pIdx 89245 ext/sqlite3/libsqlite/sqlite3.c Index *pPk = sqlite3PrimaryKeyIndex(pIdx->pTable); pIdx 89249 ext/sqlite3/libsqlite/sqlite3.c k = sqlite3ColumnOfIndex(pIdx, pPk->aiColumn[j]); pIdx 89300 ext/sqlite3/libsqlite/sqlite3.c pIdx->aiColumn[0], regSample); pIdx 89303 ext/sqlite3/libsqlite/sqlite3.c i16 iCol = pIdx->aiColumn[i]; pIdx 89417 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 89443 ext/sqlite3/libsqlite/sqlite3.c if( (pIdx = sqlite3FindIndex(db, z, 0))!=0 ){ pIdx 89444 ext/sqlite3/libsqlite/sqlite3.c analyzeTable(pParse, pIdx->pTable, pIdx); pIdx 89458 ext/sqlite3/libsqlite/sqlite3.c if( (pIdx = sqlite3FindIndex(db, z, zDb))!=0 ){ pIdx 89459 ext/sqlite3/libsqlite/sqlite3.c analyzeTable(pParse, pIdx->pTable, pIdx); pIdx 89615 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3DeleteIndexSamples(sqlite3 *db, Index *pIdx){ pIdx 89617 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->aSample ){ pIdx 89619 ext/sqlite3/libsqlite/sqlite3.c for(j=0; j<pIdx->nSample; j++){ pIdx 89620 ext/sqlite3/libsqlite/sqlite3.c IndexSample *p = &pIdx->aSample[j]; pIdx 89623 ext/sqlite3/libsqlite/sqlite3.c sqlite3DbFree(db, pIdx->aSample); pIdx 89626 ext/sqlite3/libsqlite/sqlite3.c pIdx->nSample = 0; pIdx 89627 ext/sqlite3/libsqlite/sqlite3.c pIdx->aSample = 0; pIdx 89631 ext/sqlite3/libsqlite/sqlite3.c UNUSED_PARAMETER(pIdx); pIdx 89640 ext/sqlite3/libsqlite/sqlite3.c static void initAvgEq(Index *pIdx){ pIdx 89641 ext/sqlite3/libsqlite/sqlite3.c if( pIdx ){ pIdx 89642 ext/sqlite3/libsqlite/sqlite3.c IndexSample *aSample = pIdx->aSample; pIdx 89643 ext/sqlite3/libsqlite/sqlite3.c IndexSample *pFinal = &aSample[pIdx->nSample-1]; pIdx 89646 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->nSampleCol>1 ){ pIdx 89651 ext/sqlite3/libsqlite/sqlite3.c nCol = pIdx->nSampleCol-1; pIdx 89652 ext/sqlite3/libsqlite/sqlite3.c pIdx->aAvgEq[nCol] = 1; pIdx 89655 ext/sqlite3/libsqlite/sqlite3.c int nSample = pIdx->nSample; pIdx 89663 ext/sqlite3/libsqlite/sqlite3.c if( !pIdx->aiRowEst || iCol>=pIdx->nKeyCol || pIdx->aiRowEst[iCol+1]==0 ){ pIdx 89668 ext/sqlite3/libsqlite/sqlite3.c nRow = pIdx->aiRowEst[0]; pIdx 89669 ext/sqlite3/libsqlite/sqlite3.c nDist100 = ((i64)100 * pIdx->aiRowEst[0]) / pIdx->aiRowEst[iCol+1]; pIdx 89671 ext/sqlite3/libsqlite/sqlite3.c pIdx->nRowEst0 = nRow; pIdx 89678 ext/sqlite3/libsqlite/sqlite3.c if( i==(pIdx->nSample-1) pIdx 89690 ext/sqlite3/libsqlite/sqlite3.c pIdx->aAvgEq[iCol] = avgEq; pIdx 89704 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = sqlite3FindIndex(db, zName, zDb); pIdx 89705 ext/sqlite3/libsqlite/sqlite3.c if( pIdx==0 ){ pIdx 89707 ext/sqlite3/libsqlite/sqlite3.c if( pTab && !HasRowid(pTab) ) pIdx = sqlite3PrimaryKeyIndex(pTab); pIdx 89709 ext/sqlite3/libsqlite/sqlite3.c return pIdx; pIdx 89751 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* Pointer to the index object */ pIdx 89760 ext/sqlite3/libsqlite/sqlite3.c pIdx = findIndexOrPrimaryKey(db, zIndex, zDb); pIdx 89761 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx==0 || bStat3 || pIdx->nSample==0 ); pIdx 89764 ext/sqlite3/libsqlite/sqlite3.c if( pIdx==0 || pIdx->nSample ) continue; pIdx 89766 ext/sqlite3/libsqlite/sqlite3.c assert( !HasRowid(pIdx->pTable) || pIdx->nColumn==pIdx->nKeyCol+1 ); pIdx 89767 ext/sqlite3/libsqlite/sqlite3.c if( !HasRowid(pIdx->pTable) && IsPrimaryKeyIndex(pIdx) ){ pIdx 89768 ext/sqlite3/libsqlite/sqlite3.c nIdxCol = pIdx->nKeyCol; pIdx 89770 ext/sqlite3/libsqlite/sqlite3.c nIdxCol = pIdx->nColumn; pIdx 89773 ext/sqlite3/libsqlite/sqlite3.c pIdx->nSampleCol = nIdxCol; pIdx 89778 ext/sqlite3/libsqlite/sqlite3.c pIdx->aSample = sqlite3DbMallocZero(db, nByte); pIdx 89779 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->aSample==0 ){ pIdx 89783 ext/sqlite3/libsqlite/sqlite3.c pSpace = (tRowcnt*)&pIdx->aSample[nSample]; pIdx 89784 ext/sqlite3/libsqlite/sqlite3.c pIdx->aAvgEq = pSpace; pSpace += nIdxCol; pIdx 89786 ext/sqlite3/libsqlite/sqlite3.c pIdx->aSample[i].anEq = pSpace; pSpace += nIdxCol; pIdx 89787 ext/sqlite3/libsqlite/sqlite3.c pIdx->aSample[i].anLt = pSpace; pSpace += nIdxCol; pIdx 89788 ext/sqlite3/libsqlite/sqlite3.c pIdx->aSample[i].anDLt = pSpace; pSpace += nIdxCol; pIdx 89790 ext/sqlite3/libsqlite/sqlite3.c assert( ((u8*)pSpace)-nByte==(u8*)(pIdx->aSample) ); pIdx 89805 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* Pointer to the index object */ pIdx 89810 ext/sqlite3/libsqlite/sqlite3.c pIdx = findIndexOrPrimaryKey(db, zIndex, zDb); pIdx 89811 ext/sqlite3/libsqlite/sqlite3.c if( pIdx==0 ) continue; pIdx 89814 ext/sqlite3/libsqlite/sqlite3.c nCol = pIdx->nSampleCol; pIdx 89816 ext/sqlite3/libsqlite/sqlite3.c if( pIdx!=pPrevIdx ){ pIdx 89818 ext/sqlite3/libsqlite/sqlite3.c pPrevIdx = pIdx; pIdx 89820 ext/sqlite3/libsqlite/sqlite3.c pSample = &pIdx->aSample[pIdx->nSample]; pIdx 89838 ext/sqlite3/libsqlite/sqlite3.c pIdx->nSample++; pIdx 89905 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = sqliteHashData(i); pIdx 89906 ext/sqlite3/libsqlite/sqlite3.c sqlite3DefaultRowEst(pIdx); pIdx 89908 ext/sqlite3/libsqlite/sqlite3.c sqlite3DeleteIndexSamples(db, pIdx); pIdx 89909 ext/sqlite3/libsqlite/sqlite3.c pIdx->aSample = 0; pIdx 89940 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = sqliteHashData(i); pIdx 89941 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pIdx->aiRowEst); pIdx 89942 ext/sqlite3/libsqlite/sqlite3.c pIdx->aiRowEst = 0; pIdx 91615 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE i16 sqlite3ColumnOfIndex(Index *pIdx, i16 iCol){ pIdx 91617 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pIdx->nColumn; i++){ pIdx 91618 ext/sqlite3/libsqlite/sqlite3.c if( iCol==pIdx->aiColumn[i] ) return i; pIdx 92189 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 92197 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 92198 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->nKeyCol==1 ); pIdx 92199 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->aiColumn[0]==i ){ pIdx 92200 ext/sqlite3/libsqlite/sqlite3.c pIdx->azColl[0] = p->aCol[i].zColl; pIdx 92298 ext/sqlite3/libsqlite/sqlite3.c static void identPut(char *z, int *pIdx, char *zSignedIdent){ pIdx 92301 ext/sqlite3/libsqlite/sqlite3.c i = *pIdx; pIdx 92318 ext/sqlite3/libsqlite/sqlite3.c *pIdx = i; pIdx 92394 ext/sqlite3/libsqlite/sqlite3.c static int resizeIndexObject(sqlite3 *db, Index *pIdx, int N){ pIdx 92397 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->nColumn>=N ) return SQLITE_OK; pIdx 92398 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->isResized==0 ); pIdx 92402 ext/sqlite3/libsqlite/sqlite3.c memcpy(zExtra, pIdx->azColl, sizeof(char*)*pIdx->nColumn); pIdx 92403 ext/sqlite3/libsqlite/sqlite3.c pIdx->azColl = (char**)zExtra; pIdx 92405 ext/sqlite3/libsqlite/sqlite3.c memcpy(zExtra, pIdx->aiColumn, sizeof(i16)*pIdx->nColumn); pIdx 92406 ext/sqlite3/libsqlite/sqlite3.c pIdx->aiColumn = (i16*)zExtra; pIdx 92408 ext/sqlite3/libsqlite/sqlite3.c memcpy(zExtra, pIdx->aSortOrder, pIdx->nColumn); pIdx 92409 ext/sqlite3/libsqlite/sqlite3.c pIdx->aSortOrder = (u8*)zExtra; pIdx 92410 ext/sqlite3/libsqlite/sqlite3.c pIdx->nColumn = N; pIdx 92411 ext/sqlite3/libsqlite/sqlite3.c pIdx->isResized = 1; pIdx 92432 ext/sqlite3/libsqlite/sqlite3.c static void estimateIndexWidth(Index *pIdx){ pIdx 92435 ext/sqlite3/libsqlite/sqlite3.c const Column *aCol = pIdx->pTable->aCol; pIdx 92436 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pIdx->nColumn; i++){ pIdx 92437 ext/sqlite3/libsqlite/sqlite3.c i16 x = pIdx->aiColumn[i]; pIdx 92438 ext/sqlite3/libsqlite/sqlite3.c assert( x<pIdx->pTable->nCol ); pIdx 92439 ext/sqlite3/libsqlite/sqlite3.c wIndex += x<0 ? 1 : aCol[pIdx->aiColumn[i]].szEst; pIdx 92441 ext/sqlite3/libsqlite/sqlite3.c pIdx->szIdxRow = sqlite3LogEst(wIndex*4); pIdx 92475 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 92549 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 92551 ext/sqlite3/libsqlite/sqlite3.c if( IsPrimaryKeyIndex(pIdx) ) continue; pIdx 92553 ext/sqlite3/libsqlite/sqlite3.c if( !hasColumn(pIdx->aiColumn, pIdx->nKeyCol, pPk->aiColumn[i]) ) n++; pIdx 92557 ext/sqlite3/libsqlite/sqlite3.c pIdx->nColumn = pIdx->nKeyCol; pIdx 92560 ext/sqlite3/libsqlite/sqlite3.c if( resizeIndexObject(db, pIdx, pIdx->nKeyCol+n) ) return; pIdx 92561 ext/sqlite3/libsqlite/sqlite3.c for(i=0, j=pIdx->nKeyCol; i<nPk; i++){ pIdx 92562 ext/sqlite3/libsqlite/sqlite3.c if( !hasColumn(pIdx->aiColumn, pIdx->nKeyCol, pPk->aiColumn[i]) ){ pIdx 92563 ext/sqlite3/libsqlite/sqlite3.c pIdx->aiColumn[j] = pPk->aiColumn[i]; pIdx 92564 ext/sqlite3/libsqlite/sqlite3.c pIdx->azColl[j] = pPk->azColl[i]; pIdx 92568 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->nColumn>=pIdx->nKeyCol+n ); pIdx 92569 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->nColumn>=j ); pIdx 92621 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* An implied index of the table */ pIdx 92668 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 92669 ext/sqlite3/libsqlite/sqlite3.c estimateIndexWidth(pIdx); pIdx 93052 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = sqliteHashData(pElem); pIdx 93053 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->tnum==iFrom ){ pIdx 93054 ext/sqlite3/libsqlite/sqlite3.c pIdx->tnum = iTo; pIdx 93096 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 93099 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 93100 ext/sqlite3/libsqlite/sqlite3.c destroyRootPage(pParse, pIdx->tnum, iDb); pIdx 93123 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 93129 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 93130 ext/sqlite3/libsqlite/sqlite3.c int iIdx = pIdx->tnum; pIdx 93131 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->pSchema==pTab->pSchema ); pIdx 93958 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 93959 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 93961 ext/sqlite3/libsqlite/sqlite3.c assert( IsUniqueIndex(pIdx) ); pIdx 93962 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->idxType!=SQLITE_IDXTYPE_APPDEF ); pIdx 93965 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->nKeyCol!=pIndex->nKeyCol ) continue; pIdx 93966 ext/sqlite3/libsqlite/sqlite3.c for(k=0; k<pIdx->nKeyCol; k++){ pIdx 93969 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->aiColumn[k]!=pIndex->aiColumn[k] ) break; pIdx 93970 ext/sqlite3/libsqlite/sqlite3.c z1 = pIdx->azColl[k]; pIdx 93974 ext/sqlite3/libsqlite/sqlite3.c if( k==pIdx->nKeyCol ){ pIdx 93975 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->onError!=pIndex->onError ){ pIdx 93983 ext/sqlite3/libsqlite/sqlite3.c if( !(pIdx->onError==OE_Default || pIndex->onError==OE_Default) ){ pIdx 93987 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->onError==OE_Default ){ pIdx 93988 ext/sqlite3/libsqlite/sqlite3.c pIdx->onError = pIndex->onError; pIdx 93991 ext/sqlite3/libsqlite/sqlite3.c pRet = pIdx; pIdx 94133 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3DefaultRowEst(Index *pIdx){ pIdx 94136 ext/sqlite3/libsqlite/sqlite3.c LogEst *a = pIdx->aiRowLogEst; pIdx 94137 ext/sqlite3/libsqlite/sqlite3.c int nCopy = MIN(ArraySize(aVal), pIdx->nKeyCol); pIdx 94143 ext/sqlite3/libsqlite/sqlite3.c a[0] = pIdx->pTable->nRowLogEst; pIdx 94149 ext/sqlite3/libsqlite/sqlite3.c for(i=nCopy+1; i<=pIdx->nKeyCol; i++){ pIdx 94154 ext/sqlite3/libsqlite/sqlite3.c if( IsUniqueIndex(pIdx) ) a[pIdx->nKeyCol] = 0; pIdx 94247 ext/sqlite3/libsqlite/sqlite3.c int *pIdx /* Write the index of a new slot here */ pIdx 94255 ext/sqlite3/libsqlite/sqlite3.c *pIdx = -1; pIdx 94262 ext/sqlite3/libsqlite/sqlite3.c *pIdx = n; pIdx 94823 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx /* The index that triggers the constraint */ pIdx 94828 ext/sqlite3/libsqlite/sqlite3.c Table *pTab = pIdx->pTable; pIdx 94831 ext/sqlite3/libsqlite/sqlite3.c for(j=0; j<pIdx->nKeyCol; j++){ pIdx 94832 ext/sqlite3/libsqlite/sqlite3.c char *zCol = pTab->aCol[pIdx->aiColumn[j]].zName; pIdx 94840 ext/sqlite3/libsqlite/sqlite3.c IsPrimaryKeyIndex(pIdx) ? SQLITE_CONSTRAINT_PRIMARYKEY pIdx 95007 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoOfIndex(Parse *pParse, Index *pIdx){ pIdx 95009 ext/sqlite3/libsqlite/sqlite3.c int nCol = pIdx->nColumn; pIdx 95010 ext/sqlite3/libsqlite/sqlite3.c int nKey = pIdx->nKeyCol; pIdx 95013 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->uniqNotNull ){ pIdx 95021 ext/sqlite3/libsqlite/sqlite3.c char *zColl = pIdx->azColl[i]; pIdx 95025 ext/sqlite3/libsqlite/sqlite3.c pKey->aSortOrder[i] = pIdx->aSortOrder[i]; pIdx 95811 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* For looping over indices of the table */ pIdx 95895 ext/sqlite3/libsqlite/sqlite3.c for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){ pIdx 95955 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 95956 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->pSchema==pTab->pSchema ); pIdx 95957 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Clear, pIdx->tnum, iDb); pIdx 96112 ext/sqlite3/libsqlite/sqlite3.c for(i=0, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){ pIdx 96312 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* Current index */ pIdx 96319 ext/sqlite3/libsqlite/sqlite3.c for(i=0, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){ pIdx 96320 ext/sqlite3/libsqlite/sqlite3.c assert( iIdxCur+i!=iDataCur || pPk==pIdx ); pIdx 96322 ext/sqlite3/libsqlite/sqlite3.c if( pIdx==pPk ) continue; pIdx 96323 ext/sqlite3/libsqlite/sqlite3.c VdbeModuleComment((v, "GenRowIdxDel for %s", pIdx->zName)); pIdx 96324 ext/sqlite3/libsqlite/sqlite3.c r1 = sqlite3GenerateIndexKey(pParse, pIdx, iDataCur, 0, 1, pIdx 96327 ext/sqlite3/libsqlite/sqlite3.c pIdx->uniqNotNull ? pIdx->nKeyCol : pIdx->nColumn); pIdx 96329 ext/sqlite3/libsqlite/sqlite3.c pPrior = pIdx; pIdx 96366 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx, /* The index for which to generate a key */ pIdx 96376 ext/sqlite3/libsqlite/sqlite3.c Table *pTab = pIdx->pTable; pIdx 96381 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->pPartIdxWhere ){ pIdx 96385 ext/sqlite3/libsqlite/sqlite3.c sqlite3ExprIfFalse(pParse, pIdx->pPartIdxWhere, *piPartIdxLabel, pIdx 96391 ext/sqlite3/libsqlite/sqlite3.c nCol = (prefixOnly && pIdx->uniqNotNull) ? pIdx->nKeyCol : pIdx->nColumn; pIdx 96395 ext/sqlite3/libsqlite/sqlite3.c if( pPrior && pPrior->aiColumn[j]==pIdx->aiColumn[j] ) continue; pIdx 96396 ext/sqlite3/libsqlite/sqlite3.c sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, pIdx->aiColumn[j], pIdx 98417 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = 0; /* Value to return via *ppIdx */ pIdx 98454 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pParent->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 98455 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->nKeyCol==nCol && IsUniqueIndex(pIdx) ){ pIdx 98464 ext/sqlite3/libsqlite/sqlite3.c if( IsPrimaryKeyIndex(pIdx) ){ pIdx 98478 ext/sqlite3/libsqlite/sqlite3.c i16 iCol = pIdx->aiColumn[i]; /* Index of column in parent tbl */ pIdx 98489 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3StrICmp(pIdx->azColl[i], zDfltColl) ) break; pIdx 98505 ext/sqlite3/libsqlite/sqlite3.c if( !pIdx ){ pIdx 98515 ext/sqlite3/libsqlite/sqlite3.c *ppIdx = pIdx; pIdx 98549 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx, /* Unique index on parent key columns in pTab */ pIdx 98578 ext/sqlite3/libsqlite/sqlite3.c if( pIdx==0 ){ pIdx 98613 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp3(v, OP_OpenRead, iCur, pIdx->tnum, iDb); pIdx 98614 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeSetP4KeyInfo(pParse, pIdx); pIdx 98633 ext/sqlite3/libsqlite/sqlite3.c int iParent = pIdx->aiColumn[i]+1+regData; pIdx 98635 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->aiColumn[i]==pTab->iPKey ){ pIdx 98646 ext/sqlite3/libsqlite/sqlite3.c sqlite3IndexAffinityStr(v,pIdx), nCol); pIdx 98768 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx, /* Index on parent covering the foreign key */ pIdx 98782 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx==0 || pIdx->pTable==pTab ); pIdx 98783 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx==0 || pIdx->nKeyCol==pFKey->nCol ); pIdx 98784 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx!=0 || pFKey->nCol==1 ); pIdx 98785 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx!=0 || HasRowid(pTab) ); pIdx 98807 ext/sqlite3/libsqlite/sqlite3.c iCol = pIdx ? pIdx->aiColumn[i] : -1; pIdx 98839 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx!=0 ); pIdx 98841 ext/sqlite3/libsqlite/sqlite3.c i16 iCol = pIdx->aiColumn[i]; pIdx 99105 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = 0; /* Index on key columns in pTo */ pIdx 99128 ext/sqlite3/libsqlite/sqlite3.c if( !pTo || sqlite3FkLocateIndex(pParse, pTo, pFKey, &pIdx, &aiFree) ){ pIdx 99149 ext/sqlite3/libsqlite/sqlite3.c assert( pFKey->nCol==1 || (aiFree && pIdx) ); pIdx 99167 ext/sqlite3/libsqlite/sqlite3.c char *zCol = pTo->aCol[pIdx ? pIdx->aiColumn[i] : pTo->iPKey].zName; pIdx 99184 ext/sqlite3/libsqlite/sqlite3.c fkLookupParent(pParse, iDb, pTo, pIdx, pFKey, aiCol, regOld, -1, bIgnore); pIdx 99195 ext/sqlite3/libsqlite/sqlite3.c fkLookupParent(pParse, iDb, pTo, pIdx, pFKey, aiCol, regNew, +1, bIgnore); pIdx 99204 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = 0; /* Foreign key index for pFKey */ pIdx 99221 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ){ pIdx 99238 ext/sqlite3/libsqlite/sqlite3.c fkScanChildren(pParse, pSrc, pTab, pIdx, pFKey, aiCol, regNew, -1); pIdx 99242 ext/sqlite3/libsqlite/sqlite3.c fkScanChildren(pParse, pSrc, pTab, pIdx, pFKey, aiCol, regOld, 1); pIdx 99289 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = 0; pIdx 99290 ext/sqlite3/libsqlite/sqlite3.c sqlite3FkLocateIndex(pParse, pTab, p, &pIdx, 0); pIdx 99291 ext/sqlite3/libsqlite/sqlite3.c if( pIdx ){ pIdx 99292 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pIdx->nKeyCol; i++) mask |= COLUMN_MASK(pIdx->aiColumn[i]); pIdx 99392 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = 0; /* Parent key index for this FK */ pIdx 99401 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3FkLocateIndex(pParse, pTab, pFKey, &pIdx, &aiCol) ) return 0; pIdx 99414 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx!=0 || (pTab->iPKey>=0 && pTab->iPKey<pTab->nCol) ); pIdx 99415 ext/sqlite3/libsqlite/sqlite3.c tToCol.z = pTab->aCol[pIdx ? pIdx->aiColumn[i] : pTab->iPKey].zName; pIdx 99702 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(Vdbe *v, Index *pIdx){ pIdx 99703 ext/sqlite3/libsqlite/sqlite3.c if( !pIdx->zColAff ){ pIdx 99713 ext/sqlite3/libsqlite/sqlite3.c Table *pTab = pIdx->pTable; pIdx 99715 ext/sqlite3/libsqlite/sqlite3.c pIdx->zColAff = (char *)sqlite3DbMallocRaw(0, pIdx->nColumn+1); pIdx 99716 ext/sqlite3/libsqlite/sqlite3.c if( !pIdx->zColAff ){ pIdx 99720 ext/sqlite3/libsqlite/sqlite3.c for(n=0; n<pIdx->nColumn; n++){ pIdx 99721 ext/sqlite3/libsqlite/sqlite3.c i16 x = pIdx->aiColumn[n]; pIdx 99722 ext/sqlite3/libsqlite/sqlite3.c pIdx->zColAff[n] = x<0 ? SQLITE_AFF_INTEGER : pTab->aCol[x].affinity; pIdx 99724 ext/sqlite3/libsqlite/sqlite3.c pIdx->zColAff[n] = 0; pIdx 99727 ext/sqlite3/libsqlite/sqlite3.c return pIdx->zColAff; pIdx 100082 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* For looping over indices of the table */ pIdx 100630 ext/sqlite3/libsqlite/sqlite3.c for(idx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, idx++){ pIdx 100773 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* Pointer to one of the indices */ pIdx 100913 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 100914 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->onError==OE_Ignore || pIdx->onError==OE_Fail ){ pIdx 100996 ext/sqlite3/libsqlite/sqlite3.c for(ix=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, ix++){ pIdx 101011 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->pPartIdxWhere ){ pIdx 101014 ext/sqlite3/libsqlite/sqlite3.c sqlite3ExprIfFalse(pParse, pIdx->pPartIdxWhere, addrUniqueOk, pIdx 101022 ext/sqlite3/libsqlite/sqlite3.c regIdx = sqlite3GetTempRange(pParse, pIdx->nColumn); pIdx 101023 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pIdx->nColumn; i++){ pIdx 101024 ext/sqlite3/libsqlite/sqlite3.c int iField = pIdx->aiColumn[i]; pIdx 101029 ext/sqlite3/libsqlite/sqlite3.c regRowid = pIdx->pPartIdxWhere ? -1 : regIdx+i; pIdx 101036 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp3(v, OP_MakeRecord, regIdx, pIdx->nColumn, aRegIdx[ix]); pIdx 101037 ext/sqlite3/libsqlite/sqlite3.c VdbeComment((v, "for %s", pIdx->zName)); pIdx 101038 ext/sqlite3/libsqlite/sqlite3.c sqlite3ExprCacheAffinityChange(pParse, regIdx, pIdx->nColumn); pIdx 101044 ext/sqlite3/libsqlite/sqlite3.c if( isUpdate && pPk==pIdx && pkChng==0 ){ pIdx 101050 ext/sqlite3/libsqlite/sqlite3.c onError = pIdx->onError; pIdx 101052 ext/sqlite3/libsqlite/sqlite3.c sqlite3ReleaseTempRange(pParse, regIdx, pIdx->nColumn); pIdx 101064 ext/sqlite3/libsqlite/sqlite3.c regIdx, pIdx->nKeyCol); VdbeCoverage(v); pIdx 101067 ext/sqlite3/libsqlite/sqlite3.c regR = (pIdx==pPk) ? regIdx : sqlite3GetTempRange(pParse, nPkField); pIdx 101082 ext/sqlite3/libsqlite/sqlite3.c if( pIdx!=pPk ){ pIdx 101084 ext/sqlite3/libsqlite/sqlite3.c x = sqlite3ColumnOfIndex(pIdx, pPk->aiColumn[i]); pIdx 101100 ext/sqlite3/libsqlite/sqlite3.c int regCmp = (IsPrimaryKeyIndex(pIdx) ? regIdx : regR); pIdx 101127 ext/sqlite3/libsqlite/sqlite3.c sqlite3UniqueConstraint(pParse, onError, pIdx); pIdx 101142 ext/sqlite3/libsqlite/sqlite3.c regR, nPkField, 0, OE_Replace, pIdx==pPk); pIdx 101148 ext/sqlite3/libsqlite/sqlite3.c sqlite3ReleaseTempRange(pParse, regIdx, pIdx->nColumn); pIdx 101181 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* An index being inserted or updated */ pIdx 101191 ext/sqlite3/libsqlite/sqlite3.c for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){ pIdx 101194 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->pPartIdxWhere ){ pIdx 101201 ext/sqlite3/libsqlite/sqlite3.c if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){ pIdx 101265 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 101287 ext/sqlite3/libsqlite/sqlite3.c for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){ pIdx 101289 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->pSchema==pTab->pSchema ); pIdx 101290 ext/sqlite3/libsqlite/sqlite3.c if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) && piDataCur ){ pIdx 101294 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp3(v, op, iIdxCur, pIdx->tnum, iDb); pIdx 101295 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeSetP4KeyInfo(pParse, pIdx); pIdx 101296 ext/sqlite3/libsqlite/sqlite3.c VdbeComment((v, "%s", pIdx->zName)); pIdx 104646 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 104665 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 104666 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, pIdx->zName, 0); pIdx 104668 ext/sqlite3/libsqlite/sqlite3.c (int)sqlite3LogEstToInt(pIdx->szIdxRow), 3); pIdx 104670 ext/sqlite3/libsqlite/sqlite3.c (int)sqlite3LogEstToInt(pIdx->aiRowLogEst[0]), 4); pIdx 104678 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 104680 ext/sqlite3/libsqlite/sqlite3.c pIdx = sqlite3FindIndex(db, zRight, zDb); pIdx 104681 ext/sqlite3/libsqlite/sqlite3.c if( pIdx ){ pIdx 104686 ext/sqlite3/libsqlite/sqlite3.c mx = pIdx->nColumn; pIdx 104690 ext/sqlite3/libsqlite/sqlite3.c mx = pIdx->nKeyCol; pIdx 104693 ext/sqlite3/libsqlite/sqlite3.c pTab = pIdx->pTable; pIdx 104705 ext/sqlite3/libsqlite/sqlite3.c i16 cnum = pIdx->aiColumn[i]; pIdx 104714 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Integer, pIdx->aSortOrder[i], 4); pIdx 104715 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp4(v, OP_String8, 0, 5, 0, pIdx->azColl[i], 0); pIdx 104716 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Integer, i<pIdx->nKeyCol, 6); pIdx 104725 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 104739 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex, i=0; pIdx; pIdx=pIdx->pNext, i++){ pIdx 104742 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, pIdx->zName, 0); pIdx 104743 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Integer, IsUniqueIndex(pIdx), 3); pIdx 104744 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp4(v, OP_String8, 0, 4, 0, azOrigin[pIdx->idxType], 0); pIdx 104745 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Integer, pIdx->pPartIdxWhere!=0, 5); pIdx 104841 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* Index in the parent table */ pIdx 104882 ext/sqlite3/libsqlite/sqlite3.c pIdx = 0; pIdx 104884 ext/sqlite3/libsqlite/sqlite3.c x = sqlite3FkLocateIndex(pParse, pParent, pFK, &pIdx, 0); pIdx 104886 ext/sqlite3/libsqlite/sqlite3.c if( pIdx==0 ){ pIdx 104889 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp3(v, OP_OpenRead, i, pIdx->tnum, iDb); pIdx 104890 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeSetP4KeyInfo(pParse, pIdx); pIdx 104903 ext/sqlite3/libsqlite/sqlite3.c pIdx = 0; pIdx 104906 ext/sqlite3/libsqlite/sqlite3.c x = sqlite3FkLocateIndex(pParse, pParent, pFK, &pIdx, &aiCols); pIdx 104910 ext/sqlite3/libsqlite/sqlite3.c if( pParent && pIdx==0 ){ pIdx 104933 ext/sqlite3/libsqlite/sqlite3.c sqlite3IndexAffinityStr(v,pIdx), pFK->nCol); pIdx 105054 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 105060 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 105061 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp2(v, OP_Integer, pIdx->tnum, 2+cnt); pIdx 105062 ext/sqlite3/libsqlite/sqlite3.c VdbeComment((v, "%s", pIdx->zName)); pIdx 105086 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx, *pPk; pIdx 105102 ext/sqlite3/libsqlite/sqlite3.c for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ pIdx 105128 ext/sqlite3/libsqlite/sqlite3.c for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ pIdx 105131 ext/sqlite3/libsqlite/sqlite3.c if( pPk==pIdx ) continue; pIdx 105132 ext/sqlite3/libsqlite/sqlite3.c r1 = sqlite3GenerateIndexKey(pParse, pIdx, iDataCur, 0, 0, &jmp3, pIdx 105134 ext/sqlite3/libsqlite/sqlite3.c pPrior = pIdx; pIdx 105138 ext/sqlite3/libsqlite/sqlite3.c pIdx->nColumn); VdbeCoverage(v); pIdx 105146 ext/sqlite3/libsqlite/sqlite3.c pIdx->zName, P4_TRANSIENT); pIdx 105155 ext/sqlite3/libsqlite/sqlite3.c if( IsUniqueIndex(pIdx) ){ pIdx 105159 ext/sqlite3/libsqlite/sqlite3.c for(kk=0; kk<pIdx->nKeyCol; kk++){ pIdx 105160 ext/sqlite3/libsqlite/sqlite3.c int iCol = pIdx->aiColumn[kk]; pIdx 105170 ext/sqlite3/libsqlite/sqlite3.c pIdx->nKeyCol); VdbeCoverage(v); pIdx 105185 ext/sqlite3/libsqlite/sqlite3.c for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ pIdx 105186 ext/sqlite3/libsqlite/sqlite3.c if( pPk==pIdx ) continue; pIdx 105194 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, pIdx->zName, P4_TRANSIENT); pIdx 110281 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 110282 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx 110283 ext/sqlite3/libsqlite/sqlite3.c pIdx && sqlite3StrICmp(pIdx->zName, zIndex); pIdx 110284 ext/sqlite3/libsqlite/sqlite3.c pIdx=pIdx->pNext pIdx 110286 ext/sqlite3/libsqlite/sqlite3.c if( !pIdx ){ pIdx 110291 ext/sqlite3/libsqlite/sqlite3.c pFrom->pIndex = pIdx; pIdx 111141 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx /* Index used to optimize scan, or NULL */ pIdx 111144 ext/sqlite3/libsqlite/sqlite3.c int bCover = (pIdx!=0 && (HasRowid(pTab) || !IsPrimaryKeyIndex(pIdx))); pIdx 111148 ext/sqlite3/libsqlite/sqlite3.c bCover ? pIdx->zName : "" pIdx 111822 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* Iterator variable */ pIdx 111840 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 111841 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->bUnordered==0 pIdx 111842 ext/sqlite3/libsqlite/sqlite3.c && pIdx->szIdxRow<pTab->szTabRow pIdx 111843 ext/sqlite3/libsqlite/sqlite3.c && pIdx->pPartIdxWhere==0 pIdx 111844 ext/sqlite3/libsqlite/sqlite3.c && (!pBest || pIdx->szIdxRow<pBest->szIdxRow) pIdx 111846 ext/sqlite3/libsqlite/sqlite3.c pBest = pIdx; pIdx 113499 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* For looping over indices */ pIdx 113587 ext/sqlite3/libsqlite/sqlite3.c for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){ pIdx 113588 ext/sqlite3/libsqlite/sqlite3.c if( IsPrimaryKeyIndex(pIdx) && pPk!=0 ){ pIdx 113675 ext/sqlite3/libsqlite/sqlite3.c for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ pIdx 113677 ext/sqlite3/libsqlite/sqlite3.c if( chngKey || hasFK || pIdx->pPartIdxWhere || pIdx==pPk ){ pIdx 113681 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pIdx->nKeyCol; i++){ pIdx 113682 ext/sqlite3/libsqlite/sqlite3.c if( aXRef[pIdx->aiColumn[i]]>=0 ){ pIdx 113815 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 113816 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->onError==OE_Replace ){ pIdx 114033 ext/sqlite3/libsqlite/sqlite3.c for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){ pIdx 116708 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx /* Must be compatible with this index */ pIdx 116715 ext/sqlite3/libsqlite/sqlite3.c if( pIdx && iColumn>=0 ){ pIdx 116716 ext/sqlite3/libsqlite/sqlite3.c pScan->idxaff = pIdx->pTable->aCol[iColumn].affinity; pIdx 116717 ext/sqlite3/libsqlite/sqlite3.c for(j=0; pIdx->aiColumn[j]!=iColumn; j++){ pIdx 116718 ext/sqlite3/libsqlite/sqlite3.c if( NEVER(j>pIdx->nColumn) ) return 0; pIdx 116720 ext/sqlite3/libsqlite/sqlite3.c pScan->zCollName = pIdx->azColl[j]; pIdx 116763 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx /* Must be compatible with this index, if not NULL */ pIdx 116769 ext/sqlite3/libsqlite/sqlite3.c p = whereScanInit(&scan, pWC, iCur, iColumn, op, pIdx); pIdx 117697 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx, /* Index to match column of */ pIdx 117701 ext/sqlite3/libsqlite/sqlite3.c const char *zColl = pIdx->azColl[iCol]; pIdx 117706 ext/sqlite3/libsqlite/sqlite3.c && p->iColumn==pIdx->aiColumn[iCol] pIdx 117733 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 117766 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 117767 ext/sqlite3/libsqlite/sqlite3.c if( !IsUniqueIndex(pIdx) ) continue; pIdx 117768 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pIdx->nKeyCol; i++){ pIdx 117769 ext/sqlite3/libsqlite/sqlite3.c i16 iCol = pIdx->aiColumn[i]; pIdx 117770 ext/sqlite3/libsqlite/sqlite3.c if( 0==findTerm(pWC, iBase, iCol, ~(Bitmask)0, WO_EQ, pIdx) ){ pIdx 117771 ext/sqlite3/libsqlite/sqlite3.c int iIdxCol = findIndexCol(pParse, pDistinct, iBase, pIdx, i); pIdx 117777 ext/sqlite3/libsqlite/sqlite3.c if( i==pIdx->nKeyCol ){ pIdx 117878 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* Object describing the transient index */ pIdx 117966 ext/sqlite3/libsqlite/sqlite3.c pIdx = sqlite3AllocateIndexObject(pParse->db, nKeyCol+1, 0, &zNotUsed); pIdx 117967 ext/sqlite3/libsqlite/sqlite3.c if( pIdx==0 ) goto end_auto_index_create; pIdx 117968 ext/sqlite3/libsqlite/sqlite3.c pLoop->u.btree.pIndex = pIdx; pIdx 117969 ext/sqlite3/libsqlite/sqlite3.c pIdx->zName = "auto-index"; pIdx 117970 ext/sqlite3/libsqlite/sqlite3.c pIdx->pTable = pTable; pIdx 117982 ext/sqlite3/libsqlite/sqlite3.c pIdx->aiColumn[n] = pTerm->u.leftColumn; pIdx 117984 ext/sqlite3/libsqlite/sqlite3.c pIdx->azColl[n] = pColl ? pColl->zName : "BINARY"; pIdx 117995 ext/sqlite3/libsqlite/sqlite3.c pIdx->aiColumn[n] = i; pIdx 117996 ext/sqlite3/libsqlite/sqlite3.c pIdx->azColl[n] = "BINARY"; pIdx 118002 ext/sqlite3/libsqlite/sqlite3.c pIdx->aiColumn[n] = i; pIdx 118003 ext/sqlite3/libsqlite/sqlite3.c pIdx->azColl[n] = "BINARY"; pIdx 118008 ext/sqlite3/libsqlite/sqlite3.c pIdx->aiColumn[n] = -1; pIdx 118009 ext/sqlite3/libsqlite/sqlite3.c pIdx->azColl[n] = "BINARY"; pIdx 118015 ext/sqlite3/libsqlite/sqlite3.c sqlite3VdbeSetP4KeyInfo(pParse, pIdx); pIdx 118027 ext/sqlite3/libsqlite/sqlite3.c sqlite3GenerateIndexKey(pParse, pIdx, pLevel->iTabCur, regRecord, 0, 0, 0, 0); pIdx 118217 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx, /* Index to consider domain of */ pIdx 118222 ext/sqlite3/libsqlite/sqlite3.c IndexSample *aSample = pIdx->aSample; pIdx 118236 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->nSample>0 ); pIdx 118237 ext/sqlite3/libsqlite/sqlite3.c assert( pRec->nField>0 && pRec->nField<=pIdx->nSampleCol ); pIdx 118285 ext/sqlite3/libsqlite/sqlite3.c iSample = pIdx->nSample * nField; pIdx 118326 ext/sqlite3/libsqlite/sqlite3.c assert( i<pIdx->nSample ); pIdx 118336 ext/sqlite3/libsqlite/sqlite3.c assert( i<=pIdx->nSample && i>=0 ); pIdx 118338 ext/sqlite3/libsqlite/sqlite3.c assert( i==pIdx->nSample pIdx 118370 ext/sqlite3/libsqlite/sqlite3.c if( i>=pIdx->nSample ){ pIdx 118371 ext/sqlite3/libsqlite/sqlite3.c iUpper = sqlite3LogEstToInt(pIdx->aiRowLogEst[0]); pIdx 118387 ext/sqlite3/libsqlite/sqlite3.c aStat[1] = pIdx->aAvgEq[iCol]; pIdx 119084 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* The index being used for this loop */ pIdx 119097 ext/sqlite3/libsqlite/sqlite3.c pIdx = pLoop->u.btree.pIndex; pIdx 119098 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx!=0 ); pIdx 119106 ext/sqlite3/libsqlite/sqlite3.c zAff = sqlite3DbStrDup(pParse->db, sqlite3IndexAffinityStr(v, pIdx)); pIdx 119116 ext/sqlite3/libsqlite/sqlite3.c VdbeComment((v, "begin skip-scan on %s", pIdx->zName)); pIdx 119125 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->aiColumn[j]>=0 ); pIdx 119126 ext/sqlite3/libsqlite/sqlite3.c VdbeComment((v, "%s", pIdx->pTable->aCol[pIdx->aiColumn[j]].zName)); pIdx 119293 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 119296 ext/sqlite3/libsqlite/sqlite3.c pIdx = pLoop->u.btree.pIndex; pIdx 119298 ext/sqlite3/libsqlite/sqlite3.c if( !HasRowid(pItem->pTab) && IsPrimaryKeyIndex(pIdx) ){ pIdx 119313 ext/sqlite3/libsqlite/sqlite3.c sqlite3XPrintf(&str, 0, zFmt, pIdx->zName); pIdx 119701 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; /* The index we will be using */ pIdx 119710 ext/sqlite3/libsqlite/sqlite3.c pIdx = pLoop->u.btree.pIndex; pIdx 119727 ext/sqlite3/libsqlite/sqlite3.c && (pIdx->nKeyCol>nEq) pIdx 119753 ext/sqlite3/libsqlite/sqlite3.c testcase( pIdx->aSortOrder[nEq]==SQLITE_SO_DESC ); pIdx 119755 ext/sqlite3/libsqlite/sqlite3.c bRev ^ (pIdx->aSortOrder[nEq]==SQLITE_SO_DESC), pIdx 119761 ext/sqlite3/libsqlite/sqlite3.c && (j = pIdx->aiColumn[nEq])>=0 pIdx 119762 ext/sqlite3/libsqlite/sqlite3.c && pIdx->pTable->aCol[j].notNull==0 pIdx 119782 ext/sqlite3/libsqlite/sqlite3.c if( (nEq<pIdx->nKeyCol && bRev==(pIdx->aSortOrder[nEq]==SQLITE_SO_ASC)) pIdx 119783 ext/sqlite3/libsqlite/sqlite3.c || (bRev && pIdx->nKeyCol==nEq) pIdx 119887 ext/sqlite3/libsqlite/sqlite3.c }else if( HasRowid(pIdx->pTable) ){ pIdx 119893 ext/sqlite3/libsqlite/sqlite3.c Index *pPk = sqlite3PrimaryKeyIndex(pIdx->pTable); pIdx 119896 ext/sqlite3/libsqlite/sqlite3.c k = sqlite3ColumnOfIndex(pIdx, pPk->aiColumn[j]); pIdx 121170 ext/sqlite3/libsqlite/sqlite3.c static Bitmask columnsInIndex(Index *pIdx){ pIdx 121173 ext/sqlite3/libsqlite/sqlite3.c for(j=pIdx->nColumn-1; j>=0; j--){ pIdx 121174 ext/sqlite3/libsqlite/sqlite3.c int x = pIdx->aiColumn[j]; pIdx 122467 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx; pIdx 122490 ext/sqlite3/libsqlite/sqlite3.c for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ pIdx 122492 ext/sqlite3/libsqlite/sqlite3.c if( !IsUniqueIndex(pIdx) pIdx 122493 ext/sqlite3/libsqlite/sqlite3.c || pIdx->pPartIdxWhere!=0 pIdx 122494 ext/sqlite3/libsqlite/sqlite3.c || pIdx->nKeyCol>ArraySize(pLoop->aLTermSpace) pIdx 122496 ext/sqlite3/libsqlite/sqlite3.c for(j=0; j<pIdx->nKeyCol; j++){ pIdx 122497 ext/sqlite3/libsqlite/sqlite3.c pTerm = findTerm(pWC, iCur, pIdx->aiColumn[j], 0, WO_EQ, pIdx); pIdx 122501 ext/sqlite3/libsqlite/sqlite3.c if( j!=pIdx->nKeyCol ) continue; pIdx 122503 ext/sqlite3/libsqlite/sqlite3.c if( pIdx->isCovering || (pItem->colUsed & ~columnsInIndex(pIdx))==0 ){ pIdx 122508 ext/sqlite3/libsqlite/sqlite3.c pLoop->u.btree.pIndex = pIdx; pIdx 123130 ext/sqlite3/libsqlite/sqlite3.c Index *pIdx = 0; pIdx 123193 ext/sqlite3/libsqlite/sqlite3.c pIdx = pLoop->u.btree.pIndex; pIdx 123195 ext/sqlite3/libsqlite/sqlite3.c pIdx = pLevel->u.pCovidx; pIdx 123197 ext/sqlite3/libsqlite/sqlite3.c if( pIdx && !db->mallocFailed ){ pIdx 123205 ext/sqlite3/libsqlite/sqlite3.c assert( pIdx->pTable==pTab ); pIdx 123210 ext/sqlite3/libsqlite/sqlite3.c x = sqlite3ColumnOfIndex(pIdx, x);