Lines Matching refs:pCsr

9818   ZipfileCsr *pCsr;  in zipfileOpen()  local
9819 pCsr = sqlite3_malloc(sizeof(*pCsr)); in zipfileOpen()
9820 *ppCsr = (sqlite3_vtab_cursor*)pCsr; in zipfileOpen()
9821 if( pCsr==0 ){ in zipfileOpen()
9824 memset(pCsr, 0, sizeof(*pCsr)); in zipfileOpen()
9825 pCsr->iId = ++pTab->iNextCsrid; in zipfileOpen()
9826 pCsr->pCsrNext = pTab->pCsrList; in zipfileOpen()
9827 pTab->pCsrList = pCsr; in zipfileOpen()
9835 static void zipfileResetCursor(ZipfileCsr *pCsr){ in zipfileResetCursor() argument
9839 pCsr->bEof = 0; in zipfileResetCursor()
9840 if( pCsr->pFile ){ in zipfileResetCursor()
9841 fclose(pCsr->pFile); in zipfileResetCursor()
9842 pCsr->pFile = 0; in zipfileResetCursor()
9843 zipfileEntryFree(pCsr->pCurrent); in zipfileResetCursor()
9844 pCsr->pCurrent = 0; in zipfileResetCursor()
9847 for(p=pCsr->pFreeEntry; p; p=pNext){ in zipfileResetCursor()
9857 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileClose() local
9858 ZipfileTab *pTab = (ZipfileTab*)(pCsr->base.pVtab); in zipfileClose()
9860 zipfileResetCursor(pCsr); in zipfileClose()
9863 for(pp=&pTab->pCsrList; *pp!=pCsr; pp=&((*pp)->pCsrNext)); in zipfileClose()
9864 *pp = pCsr->pCsrNext; in zipfileClose()
9866 sqlite3_free(pCsr); in zipfileClose()
9881 static void zipfileCursorErr(ZipfileCsr *pCsr, const char *zFmt, ...){ in zipfileCursorErr() argument
9884 sqlite3_free(pCsr->base.pVtab->zErrMsg); in zipfileCursorErr()
9885 pCsr->base.pVtab->zErrMsg = sqlite3_vmprintf(zFmt, ap); in zipfileCursorErr()
10278 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileNext() local
10281 if( pCsr->pFile ){ in zipfileNext()
10282 i64 iEof = pCsr->eocd.iOffset + pCsr->eocd.nSize; in zipfileNext()
10283 zipfileEntryFree(pCsr->pCurrent); in zipfileNext()
10284 pCsr->pCurrent = 0; in zipfileNext()
10285 if( pCsr->iNextOff>=iEof ){ in zipfileNext()
10286 pCsr->bEof = 1; in zipfileNext()
10290 rc = zipfileGetEntry(pTab, 0, 0, pCsr->pFile, pCsr->iNextOff, &p); in zipfileNext()
10292 pCsr->iNextOff += ZIPFILE_CDS_FIXED_SZ; in zipfileNext()
10293 pCsr->iNextOff += (int)p->cds.nExtra + p->cds.nFile + p->cds.nComment; in zipfileNext()
10295 pCsr->pCurrent = p; in zipfileNext()
10298 if( !pCsr->bNoop ){ in zipfileNext()
10299 pCsr->pCurrent = pCsr->pCurrent->pNext; in zipfileNext()
10301 if( pCsr->pCurrent==0 ){ in zipfileNext()
10302 pCsr->bEof = 1; in zipfileNext()
10306 pCsr->bNoop = 0; in zipfileNext()
10417 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileColumn() local
10418 ZipfileCDS *pCDS = &pCsr->pCurrent->cds; in zipfileColumn()
10430 sqlite3_result_int64(ctx, pCsr->pCurrent->mUnixTime); in zipfileColumn()
10448 if( pCsr->pCurrent->aData ){ in zipfileColumn()
10449 aBuf = pCsr->pCurrent->aData; in zipfileColumn()
10455 FILE *pFile = pCsr->pFile; in zipfileColumn()
10457 pFile = ((ZipfileTab*)(pCsr->base.pVtab))->pWriteFd; in zipfileColumn()
10459 rc = zipfileReadData(pFile, aBuf, sz, pCsr->pCurrent->iDataOff, in zipfileColumn()
10460 &pCsr->base.pVtab->zErrMsg in zipfileColumn()
10492 sqlite3_result_int64(ctx, pCsr->iId); in zipfileColumn()
10503 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileEof() local
10504 return pCsr->bEof; in zipfileEof()
10634 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileFilter() local
10642 zipfileResetCursor(pCsr); in zipfileFilter()
10647 zipfileCursorErr(pCsr, "zipfile() function requires an argument"); in zipfileFilter()
10659 pCsr->pFreeEntry = pTab->pFirstEntry; in zipfileFilter()
10668 pCsr->pFile = zFile ? fopen(zFile, "rb") : 0; in zipfileFilter()
10669 if( pCsr->pFile==0 ){ in zipfileFilter()
10670 zipfileCursorErr(pCsr, "cannot open file: %s", zFile); in zipfileFilter()
10673 rc = zipfileReadEOCD(pTab, 0, 0, pCsr->pFile, &pCsr->eocd); in zipfileFilter()
10675 if( pCsr->eocd.nEntry==0 ){ in zipfileFilter()
10676 pCsr->bEof = 1; in zipfileFilter()
10678 pCsr->iNextOff = pCsr->eocd.iOffset; in zipfileFilter()
10684 pCsr->bNoop = 1; in zipfileFilter()
10685 pCsr->pCurrent = pCsr->pFreeEntry ? pCsr->pFreeEntry : pTab->pFirstEntry; in zipfileFilter()
11112 ZipfileCsr *pCsr; in zipfileUpdate() local
11113 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){ in zipfileUpdate()
11114 if( pCsr->pCurrent && (pCsr->pCurrent==pOld || pCsr->pCurrent==pOld2) ){ in zipfileUpdate()
11115 pCsr->pCurrent = pCsr->pCurrent->pNext; in zipfileUpdate()
11116 pCsr->bNoop = 1; in zipfileUpdate()
11234 ZipfileCsr *pCsr; in zipfileFindCursor() local
11235 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){ in zipfileFindCursor()
11236 if( iId==pCsr->iId ) break; in zipfileFindCursor()
11238 return pCsr; in zipfileFindCursor()
11246 ZipfileCsr *pCsr; in zipfileFunctionCds() local
11250 pCsr = zipfileFindCursor(pTab, sqlite3_value_int64(argv[0])); in zipfileFunctionCds()
11251 if( pCsr ){ in zipfileFunctionCds()
11252 ZipfileCDS *p = &pCsr->pCurrent->cds; in zipfileFunctionCds()
12455 ExpertCsr *pCsr; in expertOpen() local
12457 pCsr = idxMalloc(&rc, sizeof(ExpertCsr)); in expertOpen()
12458 *ppCursor = (sqlite3_vtab_cursor*)pCsr; in expertOpen()
12466 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertClose() local
12467 sqlite3_finalize(pCsr->pData); in expertClose()
12468 sqlite3_free(pCsr); in expertClose()
12479 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertEof() local
12480 return pCsr->pData==0; in expertEof()
12487 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertNext() local
12490 assert( pCsr->pData ); in expertNext()
12491 rc = sqlite3_step(pCsr->pData); in expertNext()
12493 rc = sqlite3_finalize(pCsr->pData); in expertNext()
12494 pCsr->pData = 0; in expertNext()
12515 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertColumn() local
12517 pVal = sqlite3_column_value(pCsr->pData, i); in expertColumn()
12532 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertFilter() local
12541 rc = sqlite3_finalize(pCsr->pData); in expertFilter()
12542 pCsr->pData = 0; in expertFilter()
12544 rc = idxPrintfPrepareStmt(pExpert->db, &pCsr->pData, &pVtab->base.zErrMsg, in expertFilter()
12621 char *pCsr = 0; in idxGetTableInfo() local
12655 pCsr = (char*)&pNew->aCol[nCol]; in idxGetTableInfo()
12665 pNew->aCol[nCol].zName = pCsr; in idxGetTableInfo()
12667 memcpy(pCsr, zCol, nCopy); in idxGetTableInfo()
12668 pCsr += nCopy; in idxGetTableInfo()
12676 pNew->aCol[nCol].zColl = pCsr; in idxGetTableInfo()
12677 memcpy(pCsr, zColSeq, nCopy); in idxGetTableInfo()
12678 pCsr += nCopy; in idxGetTableInfo()
12689 pNew->zName = pCsr; in idxGetTableInfo()
15745 DbdataCursor *pCsr; in dbdataOpen() local
15747 pCsr = (DbdataCursor*)sqlite3_malloc64(sizeof(DbdataCursor)); in dbdataOpen()
15748 if( pCsr==0 ){ in dbdataOpen()
15751 memset(pCsr, 0, sizeof(DbdataCursor)); in dbdataOpen()
15752 pCsr->base.pVtab = pVTab; in dbdataOpen()
15755 *ppCursor = (sqlite3_vtab_cursor *)pCsr; in dbdataOpen()
15763 static void dbdataResetCursor(DbdataCursor *pCsr){ in dbdataResetCursor() argument
15764 DbdataTable *pTab = (DbdataTable*)(pCsr->base.pVtab); in dbdataResetCursor()
15766 pTab->pStmt = pCsr->pStmt; in dbdataResetCursor()
15768 sqlite3_finalize(pCsr->pStmt); in dbdataResetCursor()
15770 pCsr->pStmt = 0; in dbdataResetCursor()
15771 pCsr->iPgno = 1; in dbdataResetCursor()
15772 pCsr->iCell = 0; in dbdataResetCursor()
15773 pCsr->iField = 0; in dbdataResetCursor()
15774 pCsr->bOnePage = 0; in dbdataResetCursor()
15775 sqlite3_free(pCsr->aPage); in dbdataResetCursor()
15776 dbdataBufferFree(&pCsr->rec); in dbdataResetCursor()
15777 pCsr->aPage = 0; in dbdataResetCursor()
15778 pCsr->nRec = 0; in dbdataResetCursor()
15785 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataClose() local
15786 dbdataResetCursor(pCsr); in dbdataClose()
15787 sqlite3_free(pCsr); in dbdataClose()
15815 DbdataCursor *pCsr, /* Cursor object */ in dbdataLoadPage() argument
15822 sqlite3_stmt *pStmt = pCsr->pStmt; in dbdataLoadPage()
16006 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataNext() local
16009 pCsr->iRowid++; in dbdataNext()
16012 int iOff = (pCsr->iPgno==1 ? 100 : 0); in dbdataNext()
16015 if( pCsr->aPage==0 ){ in dbdataNext()
16017 if( pCsr->bOnePage==0 && pCsr->iPgno>pCsr->szDb ) return SQLITE_OK; in dbdataNext()
16018 rc = dbdataLoadPage(pCsr, pCsr->iPgno, &pCsr->aPage, &pCsr->nPage); in dbdataNext()
16020 if( pCsr->aPage && pCsr->nPage>=256 ) break; in dbdataNext()
16021 sqlite3_free(pCsr->aPage); in dbdataNext()
16022 pCsr->aPage = 0; in dbdataNext()
16023 if( pCsr->bOnePage ) return SQLITE_OK; in dbdataNext()
16024 pCsr->iPgno++; in dbdataNext()
16027 assert( iOff+3+2<=pCsr->nPage ); in dbdataNext()
16028 pCsr->iCell = pTab->bPtr ? -2 : 0; in dbdataNext()
16029 pCsr->nCell = get_uint16(&pCsr->aPage[iOff+3]); in dbdataNext()
16030 if( pCsr->nCell>DBDATA_MX_CELL(pCsr->nPage) ){ in dbdataNext()
16031 pCsr->nCell = DBDATA_MX_CELL(pCsr->nPage); in dbdataNext()
16036 if( pCsr->aPage[iOff]!=0x02 && pCsr->aPage[iOff]!=0x05 ){ in dbdataNext()
16037 pCsr->iCell = pCsr->nCell; in dbdataNext()
16039 pCsr->iCell++; in dbdataNext()
16040 if( pCsr->iCell>=pCsr->nCell ){ in dbdataNext()
16041 sqlite3_free(pCsr->aPage); in dbdataNext()
16042 pCsr->aPage = 0; in dbdataNext()
16043 if( pCsr->bOnePage ) return SQLITE_OK; in dbdataNext()
16044 pCsr->iPgno++; in dbdataNext()
16050 assert( pCsr->rec.aBuf!=0 || pCsr->nRec==0 ); in dbdataNext()
16051 if( pCsr->nRec==0 ){ in dbdataNext()
16060 switch( pCsr->aPage[iOff] ){ in dbdataNext()
16071 pCsr->iCell = pCsr->nCell; in dbdataNext()
16075 if( pCsr->iCell>=pCsr->nCell ){ in dbdataNext()
16078 int iCellPtr = iOff + 8 + nPointer + pCsr->iCell*2; in dbdataNext()
16080 if( iCellPtr>pCsr->nPage ){ in dbdataNext()
16083 iOff = get_uint16(&pCsr->aPage[iCellPtr]); in dbdataNext()
16090 if( bNextPage || iOff>pCsr->nPage || iOff<=iCellPtr ){ in dbdataNext()
16093 iOff += dbdataGetVarintU32(&pCsr->aPage[iOff], &nPayload); in dbdataNext()
16099 if( bHasRowid && !bNextPage && iOff<pCsr->nPage ){ in dbdataNext()
16100 iOff += dbdataGetVarint(&pCsr->aPage[iOff], &pCsr->iIntkey); in dbdataNext()
16104 U = pCsr->nPage; in dbdataNext()
16123 if( bNextPage || nLocal+iOff>pCsr->nPage ){ in dbdataNext()
16130 rc = dbdataBufferSize(&pCsr->rec, nPayload+DBDATA_PADDING_BYTES); in dbdataNext()
16135 memcpy(pCsr->rec.aBuf, &pCsr->aPage[iOff], nLocal); in dbdataNext()
16141 u32 pgnoOvfl = get_uint32(&pCsr->aPage[iOff]); in dbdataNext()
16146 rc = dbdataLoadPage(pCsr, pgnoOvfl, &aOvfl, &nOvfl); in dbdataNext()
16147 assert( rc!=SQLITE_OK || aOvfl==0 || nOvfl==pCsr->nPage ); in dbdataNext()
16153 memcpy(&pCsr->rec.aBuf[nPayload-nRem], &aOvfl[4], nCopy); in dbdataNext()
16161 memset(&pCsr->rec.aBuf[nPayload], 0, DBDATA_PADDING_BYTES); in dbdataNext()
16162 pCsr->nRec = nPayload; in dbdataNext()
16164 iHdr = dbdataGetVarintU32(pCsr->rec.aBuf, &nHdr); in dbdataNext()
16166 pCsr->nHdr = nHdr; in dbdataNext()
16167 pCsr->pHdrPtr = &pCsr->rec.aBuf[iHdr]; in dbdataNext()
16168 pCsr->pPtr = &pCsr->rec.aBuf[pCsr->nHdr]; in dbdataNext()
16169 pCsr->iField = (bHasRowid ? -1 : 0); in dbdataNext()
16173 pCsr->iField++; in dbdataNext()
16174 if( pCsr->iField>0 ){ in dbdataNext()
16176 if( pCsr->pHdrPtr>=&pCsr->rec.aBuf[pCsr->nRec] in dbdataNext()
16177 || pCsr->iField>=DBDATA_MX_FIELD in dbdataNext()
16182 pCsr->pHdrPtr += dbdataGetVarintU32(pCsr->pHdrPtr, &iType); in dbdataNext()
16184 if( (pCsr->nRec - (pCsr->pPtr - pCsr->rec.aBuf))<szField ){ in dbdataNext()
16185 pCsr->pPtr = &pCsr->rec.aBuf[pCsr->nRec]; in dbdataNext()
16187 pCsr->pPtr += szField; in dbdataNext()
16194 sqlite3_free(pCsr->aPage); in dbdataNext()
16195 pCsr->aPage = 0; in dbdataNext()
16196 pCsr->nRec = 0; in dbdataNext()
16197 if( pCsr->bOnePage ) return SQLITE_OK; in dbdataNext()
16198 pCsr->iPgno++; in dbdataNext()
16200 if( pCsr->iField<0 || pCsr->pHdrPtr<&pCsr->rec.aBuf[pCsr->nHdr] ){ in dbdataNext()
16206 pCsr->nRec = 0; in dbdataNext()
16207 pCsr->iCell++; in dbdataNext()
16220 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataEof() local
16221 return pCsr->aPage==0; in dbdataEof()
16242 static int dbdataDbsize(DbdataCursor *pCsr, const char *zSchema){ in dbdataDbsize() argument
16243 DbdataTable *pTab = (DbdataTable*)pCsr->base.pVtab; in dbdataDbsize()
16259 pCsr->szDb = sqlite3_column_int(pStmt, 0); in dbdataDbsize()
16271 static int dbdataGetEncoding(DbdataCursor *pCsr){ in dbdataGetEncoding() argument
16275 rc = dbdataLoadPage(pCsr, 1, &aPg1, &nPg1); in dbdataGetEncoding()
16277 pCsr->enc = get_uint32(&aPg1[56]); in dbdataGetEncoding()
16292 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataFilter() local
16299 dbdataResetCursor(pCsr); in dbdataFilter()
16300 assert( pCsr->iPgno==1 ); in dbdataFilter()
16306 pCsr->iPgno = sqlite3_value_int(argv[(idxNum & 0x01)]); in dbdataFilter()
16307 pCsr->bOnePage = 1; in dbdataFilter()
16309 rc = dbdataDbsize(pCsr, zSchema); in dbdataFilter()
16315 pCsr->pStmt = pTab->pStmt; in dbdataFilter()
16322 rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0); in dbdataFilter()
16328 &pCsr->pStmt, 0 in dbdataFilter()
16333 rc = sqlite3_bind_text(pCsr->pStmt, 1, zSchema, -1, SQLITE_TRANSIENT); in dbdataFilter()
16339 rc = dbdataGetEncoding(pCsr); in dbdataFilter()
16360 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataColumn() local
16365 sqlite3_result_int64(ctx, pCsr->iPgno); in dbdataColumn()
16368 int iOff = pCsr->iPgno==1 ? 100 : 0; in dbdataColumn()
16369 if( pCsr->iCell<0 ){ in dbdataColumn()
16372 iOff += 12 + pCsr->iCell*2; in dbdataColumn()
16373 if( iOff>pCsr->nPage ) return SQLITE_OK; in dbdataColumn()
16374 iOff = get_uint16(&pCsr->aPage[iOff]); in dbdataColumn()
16376 if( iOff<=pCsr->nPage ){ in dbdataColumn()
16377 sqlite3_result_int64(ctx, get_uint32(&pCsr->aPage[iOff])); in dbdataColumn()
16385 sqlite3_result_int64(ctx, pCsr->iPgno); in dbdataColumn()
16388 sqlite3_result_int(ctx, pCsr->iCell); in dbdataColumn()
16391 sqlite3_result_int(ctx, pCsr->iField); in dbdataColumn()
16394 if( pCsr->iField<0 ){ in dbdataColumn()
16395 sqlite3_result_int64(ctx, pCsr->iIntkey); in dbdataColumn()
16396 }else if( &pCsr->rec.aBuf[pCsr->nRec] >= pCsr->pPtr ){ in dbdataColumn()
16398 dbdataGetVarintU32(pCsr->pHdrPtr, &iType); in dbdataColumn()
16400 ctx, pCsr->enc, iType, pCsr->pPtr, in dbdataColumn()
16401 &pCsr->rec.aBuf[pCsr->nRec] - pCsr->pPtr in dbdataColumn()
16415 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataRowid() local
16416 *pRowid = pCsr->iRowid; in dbdataRowid()