Lines Matching refs:pCsr

9740   ZipfileCsr *pCsr;  in zipfileOpen()  local
9741 pCsr = sqlite3_malloc(sizeof(*pCsr)); in zipfileOpen()
9742 *ppCsr = (sqlite3_vtab_cursor*)pCsr; in zipfileOpen()
9743 if( pCsr==0 ){ in zipfileOpen()
9746 memset(pCsr, 0, sizeof(*pCsr)); in zipfileOpen()
9747 pCsr->iId = ++pTab->iNextCsrid; in zipfileOpen()
9748 pCsr->pCsrNext = pTab->pCsrList; in zipfileOpen()
9749 pTab->pCsrList = pCsr; in zipfileOpen()
9757 static void zipfileResetCursor(ZipfileCsr *pCsr){ in zipfileResetCursor() argument
9761 pCsr->bEof = 0; in zipfileResetCursor()
9762 if( pCsr->pFile ){ in zipfileResetCursor()
9763 fclose(pCsr->pFile); in zipfileResetCursor()
9764 pCsr->pFile = 0; in zipfileResetCursor()
9765 zipfileEntryFree(pCsr->pCurrent); in zipfileResetCursor()
9766 pCsr->pCurrent = 0; in zipfileResetCursor()
9769 for(p=pCsr->pFreeEntry; p; p=pNext){ in zipfileResetCursor()
9779 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileClose() local
9780 ZipfileTab *pTab = (ZipfileTab*)(pCsr->base.pVtab); in zipfileClose()
9782 zipfileResetCursor(pCsr); in zipfileClose()
9785 for(pp=&pTab->pCsrList; *pp!=pCsr; pp=&((*pp)->pCsrNext)); in zipfileClose()
9786 *pp = pCsr->pCsrNext; in zipfileClose()
9788 sqlite3_free(pCsr); in zipfileClose()
9803 static void zipfileCursorErr(ZipfileCsr *pCsr, const char *zFmt, ...){ in zipfileCursorErr() argument
9806 sqlite3_free(pCsr->base.pVtab->zErrMsg); in zipfileCursorErr()
9807 pCsr->base.pVtab->zErrMsg = sqlite3_vmprintf(zFmt, ap); in zipfileCursorErr()
10200 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileNext() local
10203 if( pCsr->pFile ){ in zipfileNext()
10204 i64 iEof = pCsr->eocd.iOffset + pCsr->eocd.nSize; in zipfileNext()
10205 zipfileEntryFree(pCsr->pCurrent); in zipfileNext()
10206 pCsr->pCurrent = 0; in zipfileNext()
10207 if( pCsr->iNextOff>=iEof ){ in zipfileNext()
10208 pCsr->bEof = 1; in zipfileNext()
10212 rc = zipfileGetEntry(pTab, 0, 0, pCsr->pFile, pCsr->iNextOff, &p); in zipfileNext()
10214 pCsr->iNextOff += ZIPFILE_CDS_FIXED_SZ; in zipfileNext()
10215 pCsr->iNextOff += (int)p->cds.nExtra + p->cds.nFile + p->cds.nComment; in zipfileNext()
10217 pCsr->pCurrent = p; in zipfileNext()
10220 if( !pCsr->bNoop ){ in zipfileNext()
10221 pCsr->pCurrent = pCsr->pCurrent->pNext; in zipfileNext()
10223 if( pCsr->pCurrent==0 ){ in zipfileNext()
10224 pCsr->bEof = 1; in zipfileNext()
10228 pCsr->bNoop = 0; in zipfileNext()
10339 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileColumn() local
10340 ZipfileCDS *pCDS = &pCsr->pCurrent->cds; in zipfileColumn()
10352 sqlite3_result_int64(ctx, pCsr->pCurrent->mUnixTime); in zipfileColumn()
10370 if( pCsr->pCurrent->aData ){ in zipfileColumn()
10371 aBuf = pCsr->pCurrent->aData; in zipfileColumn()
10377 FILE *pFile = pCsr->pFile; in zipfileColumn()
10379 pFile = ((ZipfileTab*)(pCsr->base.pVtab))->pWriteFd; in zipfileColumn()
10381 rc = zipfileReadData(pFile, aBuf, sz, pCsr->pCurrent->iDataOff, in zipfileColumn()
10382 &pCsr->base.pVtab->zErrMsg in zipfileColumn()
10414 sqlite3_result_int64(ctx, pCsr->iId); in zipfileColumn()
10425 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileEof() local
10426 return pCsr->bEof; in zipfileEof()
10556 ZipfileCsr *pCsr = (ZipfileCsr*)cur; in zipfileFilter() local
10564 zipfileResetCursor(pCsr); in zipfileFilter()
10569 zipfileCursorErr(pCsr, "zipfile() function requires an argument"); in zipfileFilter()
10581 pCsr->pFreeEntry = pTab->pFirstEntry; in zipfileFilter()
10590 pCsr->pFile = zFile ? fopen(zFile, "rb") : 0; in zipfileFilter()
10591 if( pCsr->pFile==0 ){ in zipfileFilter()
10592 zipfileCursorErr(pCsr, "cannot open file: %s", zFile); in zipfileFilter()
10595 rc = zipfileReadEOCD(pTab, 0, 0, pCsr->pFile, &pCsr->eocd); in zipfileFilter()
10597 if( pCsr->eocd.nEntry==0 ){ in zipfileFilter()
10598 pCsr->bEof = 1; in zipfileFilter()
10600 pCsr->iNextOff = pCsr->eocd.iOffset; in zipfileFilter()
10606 pCsr->bNoop = 1; in zipfileFilter()
10607 pCsr->pCurrent = pCsr->pFreeEntry ? pCsr->pFreeEntry : pTab->pFirstEntry; in zipfileFilter()
11034 ZipfileCsr *pCsr; in zipfileUpdate() local
11035 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){ in zipfileUpdate()
11036 if( pCsr->pCurrent && (pCsr->pCurrent==pOld || pCsr->pCurrent==pOld2) ){ in zipfileUpdate()
11037 pCsr->pCurrent = pCsr->pCurrent->pNext; in zipfileUpdate()
11038 pCsr->bNoop = 1; in zipfileUpdate()
11156 ZipfileCsr *pCsr; in zipfileFindCursor() local
11157 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){ in zipfileFindCursor()
11158 if( iId==pCsr->iId ) break; in zipfileFindCursor()
11160 return pCsr; in zipfileFindCursor()
11168 ZipfileCsr *pCsr; in zipfileFunctionCds() local
11172 pCsr = zipfileFindCursor(pTab, sqlite3_value_int64(argv[0])); in zipfileFunctionCds()
11173 if( pCsr ){ in zipfileFunctionCds()
11174 ZipfileCDS *p = &pCsr->pCurrent->cds; in zipfileFunctionCds()
12376 ExpertCsr *pCsr; in expertOpen() local
12378 pCsr = idxMalloc(&rc, sizeof(ExpertCsr)); in expertOpen()
12379 *ppCursor = (sqlite3_vtab_cursor*)pCsr; in expertOpen()
12387 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertClose() local
12388 sqlite3_finalize(pCsr->pData); in expertClose()
12389 sqlite3_free(pCsr); in expertClose()
12400 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertEof() local
12401 return pCsr->pData==0; in expertEof()
12408 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertNext() local
12411 assert( pCsr->pData ); in expertNext()
12412 rc = sqlite3_step(pCsr->pData); in expertNext()
12414 rc = sqlite3_finalize(pCsr->pData); in expertNext()
12415 pCsr->pData = 0; in expertNext()
12436 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertColumn() local
12438 pVal = sqlite3_column_value(pCsr->pData, i); in expertColumn()
12453 ExpertCsr *pCsr = (ExpertCsr*)cur; in expertFilter() local
12462 rc = sqlite3_finalize(pCsr->pData); in expertFilter()
12463 pCsr->pData = 0; in expertFilter()
12465 rc = idxPrintfPrepareStmt(pExpert->db, &pCsr->pData, &pVtab->base.zErrMsg, in expertFilter()
12542 char *pCsr = 0; in idxGetTableInfo() local
12576 pCsr = (char*)&pNew->aCol[nCol]; in idxGetTableInfo()
12586 pNew->aCol[nCol].zName = pCsr; in idxGetTableInfo()
12588 memcpy(pCsr, zCol, nCopy); in idxGetTableInfo()
12589 pCsr += nCopy; in idxGetTableInfo()
12597 pNew->aCol[nCol].zColl = pCsr; in idxGetTableInfo()
12598 memcpy(pCsr, zColSeq, nCopy); in idxGetTableInfo()
12599 pCsr += nCopy; in idxGetTableInfo()
12610 pNew->zName = pCsr; in idxGetTableInfo()
14510 DbdataCursor *pCsr; in dbdataOpen() local
14512 pCsr = (DbdataCursor*)sqlite3_malloc64(sizeof(DbdataCursor)); in dbdataOpen()
14513 if( pCsr==0 ){ in dbdataOpen()
14516 memset(pCsr, 0, sizeof(DbdataCursor)); in dbdataOpen()
14517 pCsr->base.pVtab = pVTab; in dbdataOpen()
14520 *ppCursor = (sqlite3_vtab_cursor *)pCsr; in dbdataOpen()
14528 static void dbdataResetCursor(DbdataCursor *pCsr){ in dbdataResetCursor() argument
14529 DbdataTable *pTab = (DbdataTable*)(pCsr->base.pVtab); in dbdataResetCursor()
14531 pTab->pStmt = pCsr->pStmt; in dbdataResetCursor()
14533 sqlite3_finalize(pCsr->pStmt); in dbdataResetCursor()
14535 pCsr->pStmt = 0; in dbdataResetCursor()
14536 pCsr->iPgno = 1; in dbdataResetCursor()
14537 pCsr->iCell = 0; in dbdataResetCursor()
14538 pCsr->iField = 0; in dbdataResetCursor()
14539 pCsr->bOnePage = 0; in dbdataResetCursor()
14540 sqlite3_free(pCsr->aPage); in dbdataResetCursor()
14541 sqlite3_free(pCsr->pRec); in dbdataResetCursor()
14542 pCsr->pRec = 0; in dbdataResetCursor()
14543 pCsr->aPage = 0; in dbdataResetCursor()
14550 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataClose() local
14551 dbdataResetCursor(pCsr); in dbdataClose()
14552 sqlite3_free(pCsr); in dbdataClose()
14580 DbdataCursor *pCsr, /* Cursor object */ in dbdataLoadPage() argument
14587 sqlite3_stmt *pStmt = pCsr->pStmt; in dbdataLoadPage()
14750 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataNext() local
14753 pCsr->iRowid++; in dbdataNext()
14756 int iOff = (pCsr->iPgno==1 ? 100 : 0); in dbdataNext()
14759 if( pCsr->aPage==0 ){ in dbdataNext()
14761 if( pCsr->bOnePage==0 && pCsr->iPgno>pCsr->szDb ) return SQLITE_OK; in dbdataNext()
14762 rc = dbdataLoadPage(pCsr, pCsr->iPgno, &pCsr->aPage, &pCsr->nPage); in dbdataNext()
14764 if( pCsr->aPage && pCsr->nPage>=256 ) break; in dbdataNext()
14765 sqlite3_free(pCsr->aPage); in dbdataNext()
14766 pCsr->aPage = 0; in dbdataNext()
14767 if( pCsr->bOnePage ) return SQLITE_OK; in dbdataNext()
14768 pCsr->iPgno++; in dbdataNext()
14771 assert( iOff+3+2<=pCsr->nPage ); in dbdataNext()
14772 pCsr->iCell = pTab->bPtr ? -2 : 0; in dbdataNext()
14773 pCsr->nCell = get_uint16(&pCsr->aPage[iOff+3]); in dbdataNext()
14777 if( pCsr->aPage[iOff]!=0x02 && pCsr->aPage[iOff]!=0x05 ){ in dbdataNext()
14778 pCsr->iCell = pCsr->nCell; in dbdataNext()
14780 pCsr->iCell++; in dbdataNext()
14781 if( pCsr->iCell>=pCsr->nCell ){ in dbdataNext()
14782 sqlite3_free(pCsr->aPage); in dbdataNext()
14783 pCsr->aPage = 0; in dbdataNext()
14784 if( pCsr->bOnePage ) return SQLITE_OK; in dbdataNext()
14785 pCsr->iPgno++; in dbdataNext()
14791 if( pCsr->pRec==0 ){ in dbdataNext()
14800 switch( pCsr->aPage[iOff] ){ in dbdataNext()
14811 pCsr->iCell = pCsr->nCell; in dbdataNext()
14815 if( pCsr->iCell>=pCsr->nCell ){ in dbdataNext()
14819 iOff += 8 + nPointer + pCsr->iCell*2; in dbdataNext()
14820 if( iOff>pCsr->nPage ){ in dbdataNext()
14823 iOff = get_uint16(&pCsr->aPage[iOff]); in dbdataNext()
14830 if( bNextPage || iOff>pCsr->nPage ){ in dbdataNext()
14833 iOff += dbdataGetVarintU32(&pCsr->aPage[iOff], &nPayload); in dbdataNext()
14838 if( bHasRowid && !bNextPage && iOff<pCsr->nPage ){ in dbdataNext()
14839 iOff += dbdataGetVarint(&pCsr->aPage[iOff], &pCsr->iIntkey); in dbdataNext()
14843 U = pCsr->nPage; in dbdataNext()
14862 if( bNextPage || nLocal+iOff>pCsr->nPage ){ in dbdataNext()
14869 pCsr->pRec = (u8*)sqlite3_malloc64(nPayload+DBDATA_PADDING_BYTES); in dbdataNext()
14870 if( pCsr->pRec==0 ) return SQLITE_NOMEM; in dbdataNext()
14871 memset(pCsr->pRec, 0, nPayload+DBDATA_PADDING_BYTES); in dbdataNext()
14872 pCsr->nRec = nPayload; in dbdataNext()
14875 memcpy(pCsr->pRec, &pCsr->aPage[iOff], nLocal); in dbdataNext()
14881 u32 pgnoOvfl = get_uint32(&pCsr->aPage[iOff]); in dbdataNext()
14886 rc = dbdataLoadPage(pCsr, pgnoOvfl, &aOvfl, &nOvfl); in dbdataNext()
14887 assert( rc!=SQLITE_OK || aOvfl==0 || nOvfl==pCsr->nPage ); in dbdataNext()
14893 memcpy(&pCsr->pRec[nPayload-nRem], &aOvfl[4], nCopy); in dbdataNext()
14901 iHdr = dbdataGetVarintU32(pCsr->pRec, &nHdr); in dbdataNext()
14903 pCsr->nHdr = nHdr; in dbdataNext()
14904 pCsr->pHdrPtr = &pCsr->pRec[iHdr]; in dbdataNext()
14905 pCsr->pPtr = &pCsr->pRec[pCsr->nHdr]; in dbdataNext()
14906 pCsr->iField = (bHasRowid ? -1 : 0); in dbdataNext()
14910 pCsr->iField++; in dbdataNext()
14911 if( pCsr->iField>0 ){ in dbdataNext()
14913 if( pCsr->pHdrPtr>&pCsr->pRec[pCsr->nRec] ){ in dbdataNext()
14917 pCsr->pHdrPtr += dbdataGetVarintU32(pCsr->pHdrPtr, &iType); in dbdataNext()
14919 if( (pCsr->nRec - (pCsr->pPtr - pCsr->pRec))<szField ){ in dbdataNext()
14920 pCsr->pPtr = &pCsr->pRec[pCsr->nRec]; in dbdataNext()
14922 pCsr->pPtr += szField; in dbdataNext()
14929 sqlite3_free(pCsr->aPage); in dbdataNext()
14930 sqlite3_free(pCsr->pRec); in dbdataNext()
14931 pCsr->aPage = 0; in dbdataNext()
14932 pCsr->pRec = 0; in dbdataNext()
14933 if( pCsr->bOnePage ) return SQLITE_OK; in dbdataNext()
14934 pCsr->iPgno++; in dbdataNext()
14936 if( pCsr->iField<0 || pCsr->pHdrPtr<&pCsr->pRec[pCsr->nHdr] ){ in dbdataNext()
14942 sqlite3_free(pCsr->pRec); in dbdataNext()
14943 pCsr->pRec = 0; in dbdataNext()
14944 pCsr->iCell++; in dbdataNext()
14957 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataEof() local
14958 return pCsr->aPage==0; in dbdataEof()
14979 static int dbdataDbsize(DbdataCursor *pCsr, const char *zSchema){ in dbdataDbsize() argument
14980 DbdataTable *pTab = (DbdataTable*)pCsr->base.pVtab; in dbdataDbsize()
14996 pCsr->szDb = sqlite3_column_int(pStmt, 0); in dbdataDbsize()
15008 static int dbdataGetEncoding(DbdataCursor *pCsr){ in dbdataGetEncoding() argument
15012 rc = dbdataLoadPage(pCsr, 1, &aPg1, &nPg1); in dbdataGetEncoding()
15014 pCsr->enc = get_uint32(&aPg1[56]); in dbdataGetEncoding()
15029 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataFilter() local
15036 dbdataResetCursor(pCsr); in dbdataFilter()
15037 assert( pCsr->iPgno==1 ); in dbdataFilter()
15043 pCsr->iPgno = sqlite3_value_int(argv[(idxNum & 0x01)]); in dbdataFilter()
15044 pCsr->bOnePage = 1; in dbdataFilter()
15046 rc = dbdataDbsize(pCsr, zSchema); in dbdataFilter()
15052 pCsr->pStmt = pTab->pStmt; in dbdataFilter()
15059 rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0); in dbdataFilter()
15065 &pCsr->pStmt, 0 in dbdataFilter()
15070 rc = sqlite3_bind_text(pCsr->pStmt, 1, zSchema, -1, SQLITE_TRANSIENT); in dbdataFilter()
15076 rc = dbdataGetEncoding(pCsr); in dbdataFilter()
15097 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataColumn() local
15102 sqlite3_result_int64(ctx, pCsr->iPgno); in dbdataColumn()
15105 int iOff = pCsr->iPgno==1 ? 100 : 0; in dbdataColumn()
15106 if( pCsr->iCell<0 ){ in dbdataColumn()
15109 iOff += 12 + pCsr->iCell*2; in dbdataColumn()
15110 if( iOff>pCsr->nPage ) return SQLITE_OK; in dbdataColumn()
15111 iOff = get_uint16(&pCsr->aPage[iOff]); in dbdataColumn()
15113 if( iOff<=pCsr->nPage ){ in dbdataColumn()
15114 sqlite3_result_int64(ctx, get_uint32(&pCsr->aPage[iOff])); in dbdataColumn()
15122 sqlite3_result_int64(ctx, pCsr->iPgno); in dbdataColumn()
15125 sqlite3_result_int(ctx, pCsr->iCell); in dbdataColumn()
15128 sqlite3_result_int(ctx, pCsr->iField); in dbdataColumn()
15131 if( pCsr->iField<0 ){ in dbdataColumn()
15132 sqlite3_result_int64(ctx, pCsr->iIntkey); in dbdataColumn()
15133 }else if( &pCsr->pRec[pCsr->nRec] >= pCsr->pPtr ){ in dbdataColumn()
15135 dbdataGetVarintU32(pCsr->pHdrPtr, &iType); in dbdataColumn()
15137 ctx, pCsr->enc, iType, pCsr->pPtr, in dbdataColumn()
15138 &pCsr->pRec[pCsr->nRec] - pCsr->pPtr in dbdataColumn()
15152 DbdataCursor *pCsr = (DbdataCursor*)pCursor; in dbdataRowid() local
15153 *pRowid = pCsr->iRowid; in dbdataRowid()