Lines Matching refs:pIndex

10941   Index *pIndex;       /* List of SQL indexes on this table. */
11586 Index *pIndex; /* Index structure corresponding to zIndex, if any */
74789 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
79259 pNewItem->pIndex = pOldItem->pIndex;
79894 for(pIdx=pTab->pIndex; pIdx && eType==0 && affinity_ok; pIdx=pIdx->pNext){
83273 if( pNew->pIndex ){
84445 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
84854 Index *pIndex /* Handle extra flags for this index, if not NULL */
84886 assert( pIndex!=0 );
84888 if( pIndex )
84892 pIndex->bUnordered = 1;
84894 pIndex->szIdxRow = sqlite3LogEst(sqlite3Atoi(z+3));
84898 pIndex->pTable->costMult = sqlite3LogEst(sqlite3Atoi(z+9));
84919 Index *pIndex;
84934 pIndex = 0;
84936 pIndex = sqlite3PrimaryKeyIndex(pTable);
84938 pIndex = sqlite3FindIndex(pInfo->db, argv[1], pInfo->zDatabase);
84942 if( pIndex ){
84943 pIndex->bUnordered = 0;
84944 decodeIntArray((char*)z, pIndex->nKeyCol+1, 0, pIndex->aiRowLogEst, pIndex);
84945 if( pIndex->pPartIdxWhere==0 ) pTable->nRowLogEst = pIndex->aiRowLogEst[0];
86528 Index *pIndex;
86535 pIndex = sqlite3HashInsert(pHash, zIdxName, len, 0);
86536 if( ALWAYS(pIndex) ){
86537 if( pIndex->pTable->pIndex==pIndex ){
86538 pIndex->pTable->pIndex = pIndex->pNext;
86543 p = pIndex->pTable->pIndex;
86544 while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; }
86545 if( ALWAYS(p && p->pNext==pIndex) ){
86546 p->pNext = pIndex->pNext;
86549 freeIndex(db, pIndex);
86673 Index *pIndex, *pNext;
86689 for(pIndex = pTable->pIndex; pIndex; pIndex=pNext){
86690 pNext = pIndex->pNext;
86691 assert( pIndex->pSchema==pTable->pSchema );
86693 char *zName = pIndex->zName;
86695 &pIndex->pSchema->idxHash, zName, sqlite3Strlen30(zName), 0
86697 assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) );
86698 assert( pOld==pIndex || pOld==0 );
86700 freeIndex(db, pIndex);
86885 for(p=pTab->pIndex; p && !IsPrimaryKeyIndex(p); p=p->pNext){}
87474 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){
87810 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
87929 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){
88361 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
88391 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
88762 ** the root page number of the index is taken from pIndex->tnum.
88764 static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage){
88765 Table *pTab = pIndex->pTable; /* The table that is indexed */
88767 int iIdx = pParse->nTab++; /* Btree cursor used for pIndex */
88777 int iDb = sqlite3SchemaToIndex(db, pIndex->pSchema);
88780 if( sqlite3AuthCheck(pParse, SQLITE_REINDEX, pIndex->zName, 0,
88794 tnum = pIndex->tnum;
88796 pKey = sqlite3KeyInfoOfIndex(pParse, pIndex);
88809 sqlite3GenerateIndexKey(pParse,pIndex,iTab,regRecord,0,&iPartIdxLabel,0,0);
88821 if( IsUniqueIndex(pIndex) && pKey!=0 ){
88826 pIndex->nKeyCol); VdbeCoverage(v);
88827 sqlite3UniqueConstraint(pParse, OE_Abort, pIndex);
88882 ** UNIQUE constraint. If pTable and pIndex are NULL, use pParse->pNewTable
88908 Index *pIndex = 0; /* The index to be created */
89043 for(pLoop=pTab->pIndex, n=1; pLoop; pLoop=pLoop->pNext, n++){}
89094 pIndex = sqlite3AllocateIndexObject(db, pList->nExpr + nExtraCol,
89099 assert( EIGHT_BYTE_ALIGNMENT(pIndex->aiRowLogEst) );
89100 assert( EIGHT_BYTE_ALIGNMENT(pIndex->azColl) );
89101 pIndex->zName = zExtra;
89103 memcpy(pIndex->zName, zName, nName+1);
89104 pIndex->pTable = pTab;
89105 pIndex->onError = (u8)onError;
89106 pIndex->uniqNotNull = onError!=OE_None;
89107 pIndex->idxType = pName ? SQLITE_IDXTYPE_APPDEF : SQLITE_IDXTYPE_UNIQUE;
89108 pIndex->pSchema = db->aDb[iDb].pSchema;
89109 pIndex->nKeyCol = pList->nExpr;
89112 pIndex->pPartIdxWhere = pPIWhere;
89150 pIndex->aiColumn[i] = (i16)j;
89168 pIndex->azColl[i] = zColl;
89170 pIndex->aSortOrder[i] = (u8)requestedSortOrder;
89171 if( pTab->aCol[j].notNull==0 ) pIndex->uniqNotNull = 0;
89176 if( hasColumn(pIndex->aiColumn, pIndex->nKeyCol, x) ){
89177 pIndex->nColumn--;
89179 pIndex->aiColumn[i] = x;
89180 pIndex->azColl[i] = pPk->azColl[j];
89181 pIndex->aSortOrder[i] = pPk->aSortOrder[j];
89185 assert( i==pIndex->nColumn );
89187 pIndex->aiColumn[i] = -1;
89188 pIndex->azColl[i] = "BINARY";
89190 sqlite3DefaultRowEst(pIndex);
89191 if( pParse->pNewTable==0 ) estimateIndexWidth(pIndex);
89216 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
89220 assert( IsUniqueIndex(pIndex) );
89222 if( pIdx->nKeyCol!=pIndex->nKeyCol ) continue;
89226 if( pIdx->aiColumn[k]!=pIndex->aiColumn[k] ) break;
89228 z2 = pIndex->azColl[k];
89232 if( pIdx->onError!=pIndex->onError ){
89240 if( !(pIdx->onError==OE_Default || pIndex->onError==OE_Default) ){
89245 pIdx->onError = pIndex->onError;
89258 assert( sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) );
89259 p = sqlite3HashInsert(&pIndex->pSchema->idxHash,
89260 pIndex->zName, sqlite3Strlen30(pIndex->zName),
89261 pIndex);
89263 assert( p==pIndex ); /* Malloc must have failed */
89269 pIndex->tnum = db->init.newTnum;
89320 pIndex->zName,
89331 sqlite3RefillIndex(pParse, pIndex, iMem);
89334 sqlite3MPrintf(db, "name='%q' AND type='index'", pIndex->zName));
89346 if( onError!=OE_Replace || pTab->pIndex==0
89347 || pTab->pIndex->onError==OE_Replace){
89348 pIndex->pNext = pTab->pIndex;
89349 pTab->pIndex = pIndex;
89351 Index *pOther = pTab->pIndex;
89355 pIndex->pNext = pOther->pNext;
89356 pOther->pNext = pIndex;
89358 pRet = pIndex;
89359 pIndex = 0;
89364 if( pIndex ) freeIndex(db, pIndex);
89419 Index *pIndex;
89432 pIndex = sqlite3FindIndex(db, pName->a[0].zName, pName->a[0].zDatabase);
89433 if( pIndex==0 ){
89442 if( pIndex->idxType!=SQLITE_IDXTYPE_APPDEF ){
89447 iDb = sqlite3SchemaToIndex(db, pIndex->pSchema);
89451 Table *pTab = pIndex->pTable;
89458 if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){
89470 db->aDb[iDb].zName, SCHEMA_TABLE(iDb), pIndex->zName
89472 sqlite3ClearStatTables(pParse, iDb, "idx", pIndex->zName);
89474 destroyRootPage(pParse, pIndex->tnum, iDb);
89475 sqlite3VdbeAddOp4(v, OP_DropIndex, iDb, 0, 0, pIndex->zName, 0);
90128 ** Check to see if pIndex uses the collating sequence pColl. Return
90132 static int collationMatch(const char *zColl, Index *pIndex){
90135 for(i=0; i<pIndex->nColumn; i++){
90136 const char *z = pIndex->azColl[i];
90137 assert( z!=0 || pIndex->aiColumn[i]<0 );
90138 if( pIndex->aiColumn[i]>=0 && 0==sqlite3StrICmp(z, zColl) ){
90152 Index *pIndex; /* An index associated with pTab */
90154 for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){
90155 if( zColl==0 || collationMatch(zColl, pIndex) ){
90158 sqlite3RefillIndex(pParse, pIndex, -1);
90207 Index *pIndex; /* An index associated with pTab */
90245 pIndex = sqlite3FindIndex(db, z, zDb);
90247 if( pIndex ){
90249 sqlite3RefillIndex(pParse, pIndex, -1);
90880 ** pSrc->a[0].pIndex Pointer to the INDEXED BY index, if there is one
91163 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){
91223 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
91378 for(i=0, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){
91562 ** cursor number iIdxCur+i for the i-th index. (The pTab->pIndex
91585 for(i=0, pIdx=pTab->pIndex; pIdx; i++, pIdx=pIdx->pNext){
93667 for(pIdx=pParent->pIndex; pIdx; pIdx=pIdx->pNext){
94972 Index *pIndex;
94977 for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){
94978 if( tnum==pIndex->tnum ){
95801 for(idx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, idx++){
95880 ** at pTab->pIndex.
95887 ** for the first index in the pTab->pIndex list. Cursors for other indices
95888 ** are at iIdxCur+N for the N-th element of the pTab->pIndex list.
96084 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
96140 }else if( pTab->pIndex ){
96167 for(ix=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, ix++){
96362 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
96419 ** pTab->pIndex list.
96455 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
96693 for(pDestIdx=pDest->pIndex; pDestIdx; pDestIdx=pDestIdx->pNext){
96697 for(pSrcIdx=pSrc->pIndex; pSrcIdx; pSrcIdx=pSrcIdx->pNext){
96742 if( (pDest->iPKey<0 && pDest->pIndex!=0) /* (1) */
96774 }else if( pDest->pIndex==0 ){
96791 for(pDestIdx=pDest->pIndex; pDestIdx; pDestIdx=pDestIdx->pNext){
96792 for(pSrcIdx=pSrc->pIndex; ALWAYS(pSrcIdx); pSrcIdx=pSrcIdx->pNext){
99715 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
99765 for(pIdx=pTab->pIndex, i=0; pIdx; pIdx=pIdx->pNext, i++){
100083 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
100115 if( pTab->pIndex==0 ) continue;
100125 for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
100151 for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
100208 for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
100692 Index *pIndex;
100693 pIndex = sqlite3FindIndex(db, argv[0], db->aDb[iDb].zName);
100694 if( pIndex==0 ){
100701 }else if( sqlite3GetInt32(argv[1], &pIndex->tnum)==0 ){
105106 ** pFrom->pIndex and return SQLITE_OK.
105113 for(pIdx=pTab->pIndex;
105122 pFrom->pIndex = pIdx;
106646 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
108393 for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){
108481 for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
108621 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
108839 for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
109668 assert( 0==pTable->pIndex );
110589 Index *pIndex; /* Index used, or NULL */
110924 #define WHERE_INDEXED 0x00000200 /* WhereLoop.u.btree.pIndex is valid */
112386 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
112574 pLoop->u.btree.pIndex = pIdx;
112958 Index *p = pLoop->u.btree.pIndex;
113076 Index *p = pLoop->u.btree.pIndex;
113223 Index *p = pBuilder->pNew->u.btree.pIndex;
113288 Index *p = pBuilder->pNew->u.btree.pIndex;
113430 && pLoop->u.btree.pIndex!=0
113431 && pLoop->u.btree.pIndex->aSortOrder[iEq]
113545 pIdx = pLoop->u.btree.pIndex;
113661 Index *pIndex = pLoop->u.btree.pIndex;
113666 i16 *aiColumn = pIndex->aiColumn;
113746 && ALWAYS(pLoop->u.btree.pIndex!=0)
113749 Index *pIdx = pLoop->u.btree.pIndex;
114088 pIdx = pLoop->u.btree.pIndex;
114536 && (ii==0 || pSubLoop->u.btree.pIndex==pCov)
114537 && (HasRowid(pTab) || !IsPrimaryKeyIndex(pSubLoop->u.btree.pIndex))
114540 pCov = pSubLoop->u.btree.pIndex;
114699 if( p->u.btree.pIndex && (zName = p->u.btree.pIndex->zName)!=0 ){
114766 }else if( (p->wsFlags & WHERE_AUTO_INDEX)!=0 && p->u.btree.pIndex!=0 ){
114767 sqlite3DbFree(db, p->u.btree.pIndex->zColAff);
114768 sqlite3KeyInfoUnref(p->u.btree.pIndex->pKeyInfo);
114769 sqlite3DbFree(db, p->u.btree.pIndex);
114770 p->u.btree.pIndex = 0;
114814 pFrom->u.btree.pIndex = 0;
115107 Index *pIndex = p->u.btree.pIndex;
115108 if( pIndex && pIndex->tnum==0 ){
115109 p->u.btree.pIndex = 0;
115160 ** index pIndex. Try to match one more.
115167 ** If pProbe->tnum==0, that means pIndex is a fake index used for the
115419 ** Return True if it is possible that pIndex might be useful in
115423 ** if there is no way for pIndex to be useful in implementing that
115428 Index *pIndex,
115434 if( pIndex->bUnordered ) return 0;
115440 for(jj=0; jj<pIndex->nKeyCol; jj++){
115441 if( pExpr->iColumn==pIndex->aiColumn[jj] ) return 1;
115542 if( pSrc->pIndex ){
115544 pProbe = pSrc->pIndex;
115546 pProbe = pTab->pIndex;
115563 pFirst = pSrc->pTab->pIndex;
115578 && pSrc->pIndex==0
115593 pNew->u.btree.pIndex = 0;
115630 pNew->u.btree.pIndex = pProbe;
115695 if( pSrc->pIndex ) break;
116051 u16 nKeyCol; /* Number of key columns in pIndex */
116062 Index *pIndex; /* The index associated with pLoop */
116138 pIndex = 0;
116141 }else if( (pIndex = pLoop->u.btree.pIndex)==0 || pIndex->bUnordered ){
116144 nKeyCol = pIndex->nKeyCol;
116145 nColumn = pIndex->nColumn;
116146 assert( nColumn==nKeyCol+1 || !HasRowid(pIndex->pTable) );
116147 assert( pIndex->aiColumn[nColumn-1]==(-1) || !HasRowid(pIndex->pTable));
116148 isOrderDistinct = IsUniqueIndex(pIndex);
116174 if( pIndex ){
116175 iColumn = pIndex->aiColumn[j];
116176 revIdx = pIndex->aSortOrder[j];
116177 if( iColumn==pIndex->pTable->iPKey ) iColumn = -1;
116189 && pIndex->pTable->aCol[iColumn].notNull==0
116211 if( sqlite3StrICmp(pColl->zName, pIndex->azColl[j])!=0 ) continue;
116741 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
116760 pLoop->u.btree.pIndex = pIdx;
117210 Index *pIx = pLoop->u.btree.pIndex;
117223 Index *pJ = pTabItem->pTab->pIndex;
117333 VdbeComment((v, "next skip-scan on %s", pLoop->u.btree.pIndex->zName));
117430 pIdx = pLoop->u.btree.pIndex;
124158 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
137574 struct Fts3Index *pIndex = &p->aIndex[i];
137575 if( nToken<pIndex->nPrefix ) continue;
137577 p, iCol, iPos, &pIndex->hPending, zToken, pIndex->nPrefix