Lines Matching refs:pIndex
581 Index *pIndex; in sqlite3UnlinkAndDeleteIndex() local
586 pIndex = sqlite3HashInsert(pHash, zIdxName, 0); in sqlite3UnlinkAndDeleteIndex()
587 if( ALWAYS(pIndex) ){ in sqlite3UnlinkAndDeleteIndex()
588 if( pIndex->pTable->pIndex==pIndex ){ in sqlite3UnlinkAndDeleteIndex()
589 pIndex->pTable->pIndex = pIndex->pNext; in sqlite3UnlinkAndDeleteIndex()
594 p = pIndex->pTable->pIndex; in sqlite3UnlinkAndDeleteIndex()
595 while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; } in sqlite3UnlinkAndDeleteIndex()
596 if( ALWAYS(p && p->pNext==pIndex) ){ in sqlite3UnlinkAndDeleteIndex()
597 p->pNext = pIndex->pNext; in sqlite3UnlinkAndDeleteIndex()
600 sqlite3FreeIndex(db, pIndex); in sqlite3UnlinkAndDeleteIndex()
814 Index *pIndex, *pNext; in deleteTable() local
832 for(pIndex = pTable->pIndex; pIndex; pIndex=pNext){ in deleteTable()
833 pNext = pIndex->pNext; in deleteTable()
834 assert( pIndex->pSchema==pTable->pSchema in deleteTable()
835 || (IsVirtual(pTable) && pIndex->idxType!=SQLITE_IDXTYPE_APPDEF) ); in deleteTable()
837 char *zName = pIndex->zName; in deleteTable()
839 &pIndex->pSchema->idxHash, zName, 0 in deleteTable()
841 assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) ); in deleteTable()
842 assert( pOld==pIndex || pOld==0 ); in deleteTable()
844 sqlite3FreeIndex(db, pIndex); in deleteTable()
1082 for(p=pTab->pIndex; p && !IsPrimaryKeyIndex(p); p=p->pNext){} in sqlite3PrimaryKeyIndex()
1620 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ in sqlite3AddNotNull()
1962 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ in sqlite3AddCollateType()
2435 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ in convertToWithoutRowidTable()
2763 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){ in sqlite3EndTable()
3305 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ in destroyTable()
3733 static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage){ in sqlite3RefillIndex() argument
3734 Table *pTab = pIndex->pTable; /* The table that is indexed */ in sqlite3RefillIndex()
3746 int iDb = sqlite3SchemaToIndex(db, pIndex->pSchema); in sqlite3RefillIndex()
3749 if( sqlite3AuthCheck(pParse, SQLITE_REINDEX, pIndex->zName, 0, in sqlite3RefillIndex()
3763 tnum = pIndex->tnum; in sqlite3RefillIndex()
3765 pKey = sqlite3KeyInfoOfIndex(pParse, pIndex); in sqlite3RefillIndex()
3770 sqlite3VdbeAddOp4(v, OP_SorterOpen, iSorter, 0, pIndex->nKeyCol, (char*) in sqlite3RefillIndex()
3780 sqlite3GenerateIndexKey(pParse,pIndex,iTab,regRecord,0,&iPartIdxLabel,0,0); in sqlite3RefillIndex()
3791 if( IsUniqueIndex(pIndex) ){ in sqlite3RefillIndex()
3796 pIndex->nKeyCol); VdbeCoverage(v); in sqlite3RefillIndex()
3797 sqlite3UniqueConstraint(pParse, OE_Abort, pIndex); in sqlite3RefillIndex()
3811 if( !pIndex->bAscKeyBug ){ in sqlite3RefillIndex()
3914 Index *pIndex = 0; /* The index to be created */ in sqlite3CreateIndex() local
4062 for(pLoop=pTab->pIndex, n=1; pLoop; pLoop=pLoop->pNext, n++){} in sqlite3CreateIndex()
4129 pIndex = sqlite3AllocateIndexObject(db, pList->nExpr + nExtraCol, in sqlite3CreateIndex()
4134 assert( EIGHT_BYTE_ALIGNMENT(pIndex->aiRowLogEst) ); in sqlite3CreateIndex()
4135 assert( EIGHT_BYTE_ALIGNMENT(pIndex->azColl) ); in sqlite3CreateIndex()
4136 pIndex->zName = zExtra; in sqlite3CreateIndex()
4138 memcpy(pIndex->zName, zName, nName+1); in sqlite3CreateIndex()
4139 pIndex->pTable = pTab; in sqlite3CreateIndex()
4140 pIndex->onError = (u8)onError; in sqlite3CreateIndex()
4141 pIndex->uniqNotNull = onError!=OE_None; in sqlite3CreateIndex()
4142 pIndex->idxType = idxType; in sqlite3CreateIndex()
4143 pIndex->pSchema = db->aDb[iDb].pSchema; in sqlite3CreateIndex()
4144 pIndex->nKeyCol = pList->nExpr; in sqlite3CreateIndex()
4147 pIndex->pPartIdxWhere = pPIWhere; in sqlite3CreateIndex()
4171 pIndex->aColExpr = pList; in sqlite3CreateIndex()
4174 for(i=0; i<pIndex->nKeyCol; i++, pListItem++){ in sqlite3CreateIndex()
4189 if( pIndex->aColExpr==0 ){ in sqlite3CreateIndex()
4190 pIndex->aColExpr = pList; in sqlite3CreateIndex()
4194 pIndex->aiColumn[i] = XN_EXPR; in sqlite3CreateIndex()
4195 pIndex->uniqNotNull = 0; in sqlite3CreateIndex()
4196 pIndex->bHasExpr = 1; in sqlite3CreateIndex()
4204 pIndex->uniqNotNull = 0; in sqlite3CreateIndex()
4207 pIndex->bHasVCol = 1; in sqlite3CreateIndex()
4208 pIndex->bHasExpr = 1; in sqlite3CreateIndex()
4211 pIndex->aiColumn[i] = (i16)j; in sqlite3CreateIndex()
4231 pIndex->azColl[i] = zColl; in sqlite3CreateIndex()
4233 pIndex->aSortOrder[i] = (u8)requestedSortOrder; in sqlite3CreateIndex()
4244 if( isDupColumn(pIndex, pIndex->nKeyCol, pPk, j) ){ in sqlite3CreateIndex()
4245 pIndex->nColumn--; in sqlite3CreateIndex()
4247 testcase( hasColumn(pIndex->aiColumn,pIndex->nKeyCol,x) ); in sqlite3CreateIndex()
4248 pIndex->aiColumn[i] = x; in sqlite3CreateIndex()
4249 pIndex->azColl[i] = pPk->azColl[j]; in sqlite3CreateIndex()
4250 pIndex->aSortOrder[i] = pPk->aSortOrder[j]; in sqlite3CreateIndex()
4254 assert( i==pIndex->nColumn ); in sqlite3CreateIndex()
4256 pIndex->aiColumn[i] = XN_ROWID; in sqlite3CreateIndex()
4257 pIndex->azColl[i] = sqlite3StrBINARY; in sqlite3CreateIndex()
4259 sqlite3DefaultRowEst(pIndex); in sqlite3CreateIndex()
4260 if( pParse->pNewTable==0 ) estimateIndexWidth(pIndex); in sqlite3CreateIndex()
4265 || pTab->iPKey<0 || sqlite3TableColumnToIndex(pIndex, pTab->iPKey)>=0 ); in sqlite3CreateIndex()
4266 recomputeColumnsNotIndexed(pIndex); in sqlite3CreateIndex()
4267 if( pTblName!=0 && pIndex->nColumn>=pTab->nCol ){ in sqlite3CreateIndex()
4268 pIndex->isCovering = 1; in sqlite3CreateIndex()
4271 if( sqlite3TableColumnToIndex(pIndex,j)>=0 ) continue; in sqlite3CreateIndex()
4272 pIndex->isCovering = 0; in sqlite3CreateIndex()
4300 for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ in sqlite3CreateIndex()
4304 assert( IsUniqueIndex(pIndex) ); in sqlite3CreateIndex()
4306 if( pIdx->nKeyCol!=pIndex->nKeyCol ) continue; in sqlite3CreateIndex()
4311 if( pIdx->aiColumn[k]!=pIndex->aiColumn[k] ) break; in sqlite3CreateIndex()
4313 z2 = pIndex->azColl[k]; in sqlite3CreateIndex()
4317 if( pIdx->onError!=pIndex->onError ){ in sqlite3CreateIndex()
4325 if( !(pIdx->onError==OE_Default || pIndex->onError==OE_Default) ){ in sqlite3CreateIndex()
4330 pIdx->onError = pIndex->onError; in sqlite3CreateIndex()
4335 pIndex->pNext = pParse->pNewIndex; in sqlite3CreateIndex()
4336 pParse->pNewIndex = pIndex; in sqlite3CreateIndex()
4337 pIndex = 0; in sqlite3CreateIndex()
4353 assert( sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) ); in sqlite3CreateIndex()
4355 pIndex->tnum = db->init.newTnum; in sqlite3CreateIndex()
4356 if( sqlite3IndexHasDuplicateRootPage(pIndex) ){ in sqlite3CreateIndex()
4362 p = sqlite3HashInsert(&pIndex->pSchema->idxHash, in sqlite3CreateIndex()
4363 pIndex->zName, pIndex); in sqlite3CreateIndex()
4365 assert( p==pIndex ); /* Malloc must have failed */ in sqlite3CreateIndex()
4401 pIndex->tnum = (Pgno)sqlite3VdbeAddOp0(v, OP_Noop); in sqlite3CreateIndex()
4425 pIndex->zName, in sqlite3CreateIndex()
4436 sqlite3RefillIndex(pParse, pIndex, iMem); in sqlite3CreateIndex()
4439 sqlite3MPrintf(db, "name='%q' AND type='index'", pIndex->zName), 0); in sqlite3CreateIndex()
4443 sqlite3VdbeJumpHere(v, (int)pIndex->tnum); in sqlite3CreateIndex()
4447 pIndex->pNext = pTab->pIndex; in sqlite3CreateIndex()
4448 pTab->pIndex = pIndex; in sqlite3CreateIndex()
4449 pIndex = 0; in sqlite3CreateIndex()
4453 pParse->pNewIndex = pIndex; in sqlite3CreateIndex()
4454 pIndex = 0; in sqlite3CreateIndex()
4459 if( pIndex ) sqlite3FreeIndex(db, pIndex); in sqlite3CreateIndex()
4467 for(ppFrom=&pTab->pIndex; (pThis = *ppFrom)!=0; ppFrom=&pThis->pNext){ in sqlite3CreateIndex()
4482 for(pThis = pTab->pIndex; pThis; pThis=pThis->pNext){ in sqlite3CreateIndex()
4558 Index *pIndex; in sqlite3DropIndex() local
4571 pIndex = sqlite3FindIndex(db, pName->a[0].zName, pName->a[0].zDatabase); in sqlite3DropIndex()
4572 if( pIndex==0 ){ in sqlite3DropIndex()
4582 if( pIndex->idxType!=SQLITE_IDXTYPE_APPDEF ){ in sqlite3DropIndex()
4587 iDb = sqlite3SchemaToIndex(db, pIndex->pSchema); in sqlite3DropIndex()
4591 Table *pTab = pIndex->pTable; in sqlite3DropIndex()
4598 if( sqlite3AuthCheck(pParse, code, pIndex->zName, pTab->zName, zDb) ){ in sqlite3DropIndex()
4610 db->aDb[iDb].zDbSName, pIndex->zName in sqlite3DropIndex()
4612 sqlite3ClearStatTables(pParse, iDb, "idx", pIndex->zName); in sqlite3DropIndex()
4614 destroyRootPage(pParse, pIndex->tnum, iDb); in sqlite3DropIndex()
4615 sqlite3VdbeAddOp4(v, OP_DropIndex, iDb, 0, 0, pIndex->zName, 0); in sqlite3DropIndex()
5396 static int collationMatch(const char *zColl, Index *pIndex){ in collationMatch() argument
5399 for(i=0; i<pIndex->nColumn; i++){ in collationMatch()
5400 const char *z = pIndex->azColl[i]; in collationMatch()
5401 assert( z!=0 || pIndex->aiColumn[i]<0 ); in collationMatch()
5402 if( pIndex->aiColumn[i]>=0 && 0==sqlite3StrICmp(z, zColl) ){ in collationMatch()
5417 Index *pIndex; /* An index associated with pTab */ in reindexTable() local
5419 for(pIndex=pTab->pIndex; pIndex; pIndex=pIndex->pNext){ in reindexTable()
5420 if( zColl==0 || collationMatch(zColl, pIndex) ){ in reindexTable()
5423 sqlite3RefillIndex(pParse, pIndex, -1); in reindexTable()
5473 Index *pIndex; /* An index associated with pTab */ in sqlite3Reindex() local
5511 pIndex = sqlite3FindIndex(db, z, zDb); in sqlite3Reindex()
5513 if( pIndex ){ in sqlite3Reindex()
5515 sqlite3RefillIndex(pParse, pIndex, -1); in sqlite3Reindex()