Lines Matching refs:pPk

2255 static int isDupColumn(Index *pIdx, int nKey, Index *pPk, int iCol){  in isDupColumn()  argument
2258 assert( iCol<MAX(pPk->nColumn,pPk->nKeyCol) ); in isDupColumn()
2259 assert( pPk->idxType==SQLITE_IDXTYPE_PRIMARYKEY ); in isDupColumn()
2260 assert( pPk->pTable->tabFlags & TF_WithoutRowid ); in isDupColumn()
2261 assert( pPk->pTable==pIdx->pTable ); in isDupColumn()
2262 testcase( pPk==pIdx ); in isDupColumn()
2263 j = pPk->aiColumn[iCol]; in isDupColumn()
2268 && sqlite3StrICmp(pIdx->azColl[i], pPk->azColl[iCol])==0 in isDupColumn()
2337 Index *pPk; in convertToWithoutRowidTable() local
2392 pPk = sqlite3PrimaryKeyIndex(pTab); in convertToWithoutRowidTable()
2393 assert( pPk->nKeyCol==1 ); in convertToWithoutRowidTable()
2395 pPk = sqlite3PrimaryKeyIndex(pTab); in convertToWithoutRowidTable()
2396 assert( pPk!=0 ); in convertToWithoutRowidTable()
2403 for(i=j=1; i<pPk->nKeyCol; i++){ in convertToWithoutRowidTable()
2404 if( isDupColumn(pPk, j, pPk, i) ){ in convertToWithoutRowidTable()
2405 pPk->nColumn--; in convertToWithoutRowidTable()
2407 testcase( hasColumn(pPk->aiColumn, j, pPk->aiColumn[i]) ); in convertToWithoutRowidTable()
2408 pPk->azColl[j] = pPk->azColl[i]; in convertToWithoutRowidTable()
2409 pPk->aSortOrder[j] = pPk->aSortOrder[i]; in convertToWithoutRowidTable()
2410 pPk->aiColumn[j++] = pPk->aiColumn[i]; in convertToWithoutRowidTable()
2413 pPk->nKeyCol = j; in convertToWithoutRowidTable()
2415 assert( pPk!=0 ); in convertToWithoutRowidTable()
2416 pPk->isCovering = 1; in convertToWithoutRowidTable()
2417 if( !db->init.imposterTable ) pPk->uniqNotNull = 1; in convertToWithoutRowidTable()
2418 nPk = pPk->nColumn = pPk->nKeyCol; in convertToWithoutRowidTable()
2424 if( v && pPk->tnum>0 ){ in convertToWithoutRowidTable()
2426 sqlite3VdbeChangeOpcode(v, (int)pPk->tnum, OP_Goto); in convertToWithoutRowidTable()
2430 pPk->tnum = pTab->tnum; in convertToWithoutRowidTable()
2439 if( !isDupColumn(pIdx, pIdx->nKeyCol, pPk, i) ){ in convertToWithoutRowidTable()
2440 testcase( hasColumn(pIdx->aiColumn, pIdx->nKeyCol, pPk->aiColumn[i]) ); in convertToWithoutRowidTable()
2451 if( !isDupColumn(pIdx, pIdx->nKeyCol, pPk, i) ){ in convertToWithoutRowidTable()
2452 testcase( hasColumn(pIdx->aiColumn, pIdx->nKeyCol, pPk->aiColumn[i]) ); in convertToWithoutRowidTable()
2453 pIdx->aiColumn[j] = pPk->aiColumn[i]; in convertToWithoutRowidTable()
2454 pIdx->azColl[j] = pPk->azColl[i]; in convertToWithoutRowidTable()
2455 if( pPk->aSortOrder[i] ){ in convertToWithoutRowidTable()
2470 if( !hasColumn(pPk->aiColumn, nPk, i) in convertToWithoutRowidTable()
2473 if( resizeIndexObject(db, pPk, nPk+nExtra) ) return; in convertToWithoutRowidTable()
2475 if( !hasColumn(pPk->aiColumn, j, i) in convertToWithoutRowidTable()
2478 assert( j<pPk->nColumn ); in convertToWithoutRowidTable()
2479 pPk->aiColumn[j] = i; in convertToWithoutRowidTable()
2480 pPk->azColl[j] = sqlite3StrBINARY; in convertToWithoutRowidTable()
2484 assert( pPk->nColumn==j ); in convertToWithoutRowidTable()
2486 recomputeColumnsNotIndexed(pPk); in convertToWithoutRowidTable()
3928 Index *pPk = 0; /* PRIMARY KEY index for WITHOUT ROWID tables */ in sqlite3CreateIndex() local
3987 if( !HasRowid(pTab) ) pPk = sqlite3PrimaryKeyIndex(pTab); in sqlite3CreateIndex()
4127 nExtraCol = pPk ? pPk->nKeyCol : 1; in sqlite3CreateIndex()
4240 if( pPk ){ in sqlite3CreateIndex()
4241 for(j=0; j<pPk->nKeyCol; j++){ in sqlite3CreateIndex()
4242 int x = pPk->aiColumn[j]; in sqlite3CreateIndex()
4244 if( isDupColumn(pIndex, pIndex->nKeyCol, pPk, j) ){ in sqlite3CreateIndex()
4249 pIndex->azColl[i] = pPk->azColl[j]; in sqlite3CreateIndex()
4250 pIndex->aSortOrder[i] = pPk->aSortOrder[j]; in sqlite3CreateIndex()