pIdxInfo 118064 ext/sqlite3/libsqlite/sqlite3.c sqlite3_index_info *pIdxInfo; pIdxInfo 118097 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo = sqlite3DbMallocZero(pParse->db, sizeof(*pIdxInfo) pIdxInfo 118100 ext/sqlite3/libsqlite/sqlite3.c if( pIdxInfo==0 ){ pIdxInfo 118110 ext/sqlite3/libsqlite/sqlite3.c pIdxCons = (struct sqlite3_index_constraint*)&pIdxInfo[1]; pIdxInfo 118113 ext/sqlite3/libsqlite/sqlite3.c *(int*)&pIdxInfo->nConstraint = nTerm; pIdxInfo 118114 ext/sqlite3/libsqlite/sqlite3.c *(int*)&pIdxInfo->nOrderBy = nOrderBy; pIdxInfo 118115 ext/sqlite3/libsqlite/sqlite3.c *(struct sqlite3_index_constraint**)&pIdxInfo->aConstraint = pIdxCons; pIdxInfo 118116 ext/sqlite3/libsqlite/sqlite3.c *(struct sqlite3_index_orderby**)&pIdxInfo->aOrderBy = pIdxOrderBy; pIdxInfo 118117 ext/sqlite3/libsqlite/sqlite3.c *(struct sqlite3_index_constraint_usage**)&pIdxInfo->aConstraintUsage = pIdxInfo 118152 ext/sqlite3/libsqlite/sqlite3.c return pIdxInfo; pIdxInfo 121448 ext/sqlite3/libsqlite/sqlite3.c sqlite3_index_info *pIdxInfo; pIdxInfo 121469 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo = allocateIndexInfo(pParse, pWC, pSrc, pBuilder->pOrderBy); pIdxInfo 121470 ext/sqlite3/libsqlite/sqlite3.c if( pIdxInfo==0 ) return SQLITE_NOMEM; pIdxInfo 121476 ext/sqlite3/libsqlite/sqlite3.c pUsage = pIdxInfo->aConstraintUsage; pIdxInfo 121477 ext/sqlite3/libsqlite/sqlite3.c nConstraint = pIdxInfo->nConstraint; pIdxInfo 121479 ext/sqlite3/libsqlite/sqlite3.c sqlite3DbFree(db, pIdxInfo); pIdxInfo 121489 ext/sqlite3/libsqlite/sqlite3.c pIdxCons = *(struct sqlite3_index_constraint**)&pIdxInfo->aConstraint; pIdxInfo 121490 ext/sqlite3/libsqlite/sqlite3.c for(i=0; i<pIdxInfo->nConstraint; i++, pIdxCons++){ pIdxInfo 121519 ext/sqlite3/libsqlite/sqlite3.c memset(pUsage, 0, sizeof(pUsage[0])*pIdxInfo->nConstraint); pIdxInfo 121520 ext/sqlite3/libsqlite/sqlite3.c if( pIdxInfo->needToFreeIdxStr ) sqlite3_free(pIdxInfo->idxStr); pIdxInfo 121521 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->idxStr = 0; pIdxInfo 121522 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->idxNum = 0; pIdxInfo 121523 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->needToFreeIdxStr = 0; pIdxInfo 121524 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->orderByConsumed = 0; pIdxInfo 121525 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->estimatedCost = SQLITE_BIG_DBL / (double)2; pIdxInfo 121526 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->estimatedRows = 25; pIdxInfo 121527 ext/sqlite3/libsqlite/sqlite3.c rc = vtabBestIndex(pParse, pTab, pIdxInfo); pIdxInfo 121529 ext/sqlite3/libsqlite/sqlite3.c pIdxCons = *(struct sqlite3_index_constraint**)&pIdxInfo->aConstraint; pIdxInfo 121571 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->orderByConsumed = 0; pIdxInfo 121578 ext/sqlite3/libsqlite/sqlite3.c pNew->u.vtab.idxNum = pIdxInfo->idxNum; pIdxInfo 121579 ext/sqlite3/libsqlite/sqlite3.c pNew->u.vtab.needFree = pIdxInfo->needToFreeIdxStr; pIdxInfo 121580 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->needToFreeIdxStr = 0; pIdxInfo 121581 ext/sqlite3/libsqlite/sqlite3.c pNew->u.vtab.idxStr = pIdxInfo->idxStr; pIdxInfo 121582 ext/sqlite3/libsqlite/sqlite3.c pNew->u.vtab.isOrdered = (i8)(pIdxInfo->orderByConsumed ? pIdxInfo 121583 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->nOrderBy : 0); pIdxInfo 121585 ext/sqlite3/libsqlite/sqlite3.c pNew->rRun = sqlite3LogEstFromDouble(pIdxInfo->estimatedCost); pIdxInfo 121586 ext/sqlite3/libsqlite/sqlite3.c pNew->nOut = sqlite3LogEst(pIdxInfo->estimatedRows); pIdxInfo 121596 ext/sqlite3/libsqlite/sqlite3.c if( pIdxInfo->needToFreeIdxStr ) sqlite3_free(pIdxInfo->idxStr); pIdxInfo 121597 ext/sqlite3/libsqlite/sqlite3.c sqlite3DbFree(db, pIdxInfo); pIdxInfo 134505 ext/sqlite3/libsqlite/sqlite3.c static void fts3SetEstimatedRows(sqlite3_index_info *pIdxInfo, i64 nRow){ pIdxInfo 134508 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->estimatedRows = nRow; pIdxInfo 152596 ext/sqlite3/libsqlite/sqlite3.c static void setEstimatedRows(sqlite3_index_info *pIdxInfo, i64 nRow){ pIdxInfo 152599 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->estimatedRows = nRow; pIdxInfo 152638 ext/sqlite3/libsqlite/sqlite3.c static int rtreeBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ pIdxInfo 152648 ext/sqlite3/libsqlite/sqlite3.c assert( pIdxInfo->idxStr==0 ); pIdxInfo 152649 ext/sqlite3/libsqlite/sqlite3.c for(ii=0; ii<pIdxInfo->nConstraint && iIdx<(int)(sizeof(zIdxStr)-1); ii++){ pIdxInfo 152650 ext/sqlite3/libsqlite/sqlite3.c struct sqlite3_index_constraint *p = &pIdxInfo->aConstraint[ii]; pIdxInfo 152656 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->aConstraintUsage[jj].argvIndex = 0; pIdxInfo 152657 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->aConstraintUsage[jj].omit = 0; pIdxInfo 152659 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->idxNum = 1; pIdxInfo 152660 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->aConstraintUsage[ii].argvIndex = 1; pIdxInfo 152661 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->aConstraintUsage[jj].omit = 1; pIdxInfo 152669 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->estimatedCost = 30.0; pIdxInfo 152670 ext/sqlite3/libsqlite/sqlite3.c setEstimatedRows(pIdxInfo, 1); pIdxInfo 152689 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->aConstraintUsage[ii].argvIndex = (iIdx/2); pIdxInfo 152690 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->aConstraintUsage[ii].omit = 1; pIdxInfo 152694 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->idxNum = 2; pIdxInfo 152695 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->needToFreeIdxStr = 1; pIdxInfo 152696 ext/sqlite3/libsqlite/sqlite3.c if( iIdx>0 && 0==(pIdxInfo->idxStr = sqlite3_mprintf("%s", zIdxStr)) ){ pIdxInfo 152701 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->estimatedCost = (double)6.0 * (double)nRow; pIdxInfo 152702 ext/sqlite3/libsqlite/sqlite3.c setEstimatedRows(pIdxInfo, nRow); pIdxInfo 155399 ext/sqlite3/libsqlite/sqlite3.c static int statBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ pIdxInfo 155405 ext/sqlite3/libsqlite/sqlite3.c if( ( pIdxInfo->nOrderBy==1 pIdxInfo 155406 ext/sqlite3/libsqlite/sqlite3.c && pIdxInfo->aOrderBy[0].iColumn==0 pIdxInfo 155407 ext/sqlite3/libsqlite/sqlite3.c && pIdxInfo->aOrderBy[0].desc==0 pIdxInfo 155409 ext/sqlite3/libsqlite/sqlite3.c ( pIdxInfo->nOrderBy==2 pIdxInfo 155410 ext/sqlite3/libsqlite/sqlite3.c && pIdxInfo->aOrderBy[0].iColumn==0 pIdxInfo 155411 ext/sqlite3/libsqlite/sqlite3.c && pIdxInfo->aOrderBy[0].desc==0 pIdxInfo 155412 ext/sqlite3/libsqlite/sqlite3.c && pIdxInfo->aOrderBy[1].iColumn==1 pIdxInfo 155413 ext/sqlite3/libsqlite/sqlite3.c && pIdxInfo->aOrderBy[1].desc==0 pIdxInfo 155416 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->orderByConsumed = 1; pIdxInfo 155419 ext/sqlite3/libsqlite/sqlite3.c pIdxInfo->estimatedCost = 10.0;