Lines Matching refs:pTab
408 static void zipfileCleanupTransaction(ZipfileTab *pTab){ in zipfileCleanupTransaction() argument
412 if( pTab->pWriteFd ){ in zipfileCleanupTransaction()
413 fclose(pTab->pWriteFd); in zipfileCleanupTransaction()
414 pTab->pWriteFd = 0; in zipfileCleanupTransaction()
416 for(pEntry=pTab->pFirstEntry; pEntry; pEntry=pNext){ in zipfileCleanupTransaction()
420 pTab->pFirstEntry = 0; in zipfileCleanupTransaction()
421 pTab->pLastEntry = 0; in zipfileCleanupTransaction()
422 pTab->szCurrent = 0; in zipfileCleanupTransaction()
423 pTab->szOrig = 0; in zipfileCleanupTransaction()
439 ZipfileTab *pTab = (ZipfileTab*)p; in zipfileOpen() local
447 pCsr->iId = ++pTab->iNextCsrid; in zipfileOpen()
448 pCsr->pCsrNext = pTab->pCsrList; in zipfileOpen()
449 pTab->pCsrList = pCsr; in zipfileOpen()
480 ZipfileTab *pTab = (ZipfileTab*)(pCsr->base.pVtab); in zipfileClose() local
485 for(pp=&pTab->pCsrList; *pp!=pCsr; pp=&((*pp)->pCsrNext)); in zipfileClose()
496 static void zipfileTableErr(ZipfileTab *pTab, const char *zFmt, ...){ in zipfileTableErr() argument
499 sqlite3_free(pTab->base.zErrMsg); in zipfileTableErr()
500 pTab->base.zErrMsg = sqlite3_vmprintf(zFmt, ap); in zipfileTableErr()
539 ZipfileTab *pTab, in zipfileAppendData() argument
545 fseek(pTab->pWriteFd, (long)pTab->szCurrent, SEEK_SET); in zipfileAppendData()
546 n = fwrite(aWrite, 1, nWrite, pTab->pWriteFd); in zipfileAppendData()
548 pTab->base.zErrMsg = sqlite3_mprintf("error in fwrite()"); in zipfileAppendData()
551 pTab->szCurrent += nWrite; in zipfileAppendData()
801 ZipfileTab *pTab, /* Store any error message here */ in zipfileGetEntry() argument
809 char **pzErr = &pTab->base.zErrMsg; in zipfileGetEntry()
813 aRead = pTab->aBuffer; in zipfileGetEntry()
910 ZipfileTab *pTab = (ZipfileTab*)(cur->pVtab); in zipfileNext() local
911 rc = zipfileGetEntry(pTab, 0, 0, pCsr->pFile, pCsr->iNextOff, &p); in zipfileNext()
1136 ZipfileTab *pTab, /* Return errors here */ in zipfileReadEOCD() argument
1142 u8 *aRead = pTab->aBuffer; /* Temporary buffer */ in zipfileReadEOCD()
1157 rc = zipfileReadData(pFile, aRead, nRead, iOff, &pTab->base.zErrMsg); in zipfileReadEOCD()
1175 pTab->base.zErrMsg = sqlite3_mprintf( in zipfileReadEOCD()
1200 ZipfileTab *pTab, in zipfileAddEntry() argument
1204 assert( (pTab->pFirstEntry==0)==(pTab->pLastEntry==0) ); in zipfileAddEntry()
1207 if( pTab->pFirstEntry==0 ){ in zipfileAddEntry()
1208 pTab->pFirstEntry = pTab->pLastEntry = pNew; in zipfileAddEntry()
1210 assert( pTab->pLastEntry->pNext==0 ); in zipfileAddEntry()
1211 pTab->pLastEntry->pNext = pNew; in zipfileAddEntry()
1212 pTab->pLastEntry = pNew; in zipfileAddEntry()
1216 for(pp=&pTab->pFirstEntry; *pp!=pBefore; pp=&((*pp)->pNext)); in zipfileAddEntry()
1222 static int zipfileLoadDirectory(ZipfileTab *pTab, const u8 *aBlob, int nBlob){ in zipfileLoadDirectory() argument
1228 rc = zipfileReadEOCD(pTab, aBlob, nBlob, pTab->pWriteFd, &eocd); in zipfileLoadDirectory()
1232 rc = zipfileGetEntry(pTab, aBlob, nBlob, pTab->pWriteFd, iOff, &pNew); in zipfileLoadDirectory()
1235 zipfileAddEntry(pTab, 0, pNew); in zipfileLoadDirectory()
1251 ZipfileTab *pTab = (ZipfileTab*)cur->pVtab; in zipfileFilter() local
1259 if( pTab->zFile ){ in zipfileFilter()
1260 zFile = pTab->zFile; in zipfileFilter()
1268 assert( pTab->pFirstEntry==0 ); in zipfileFilter()
1273 rc = zipfileLoadDirectory(pTab, aBlob, nBlob); in zipfileFilter()
1274 pCsr->pFreeEntry = pTab->pFirstEntry; in zipfileFilter()
1275 pTab->pFirstEntry = pTab->pLastEntry = 0; in zipfileFilter()
1282 if( 0==pTab->pWriteFd && 0==bInMemory ){ in zipfileFilter()
1288 rc = zipfileReadEOCD(pTab, 0, 0, pCsr->pFile, &pCsr->eocd); in zipfileFilter()
1300 pCsr->pCurrent = pCsr->pFreeEntry ? pCsr->pFreeEntry : pTab->pFirstEntry; in zipfileFilter()
1386 ZipfileTab *pTab, in zipfileAppendEntry() argument
1391 u8 *aBuf = pTab->aBuffer; in zipfileAppendEntry()
1396 rc = zipfileAppendData(pTab, aBuf, nBuf); in zipfileAppendEntry()
1398 pEntry->iDataOff = pTab->szCurrent; in zipfileAppendEntry()
1399 rc = zipfileAppendData(pTab, pData, nData); in zipfileAppendEntry()
1459 ZipfileTab *pTab = (ZipfileTab*)pVtab; in zipfileBegin() local
1462 assert( pTab->pWriteFd==0 ); in zipfileBegin()
1463 if( pTab->zFile==0 || pTab->zFile[0]==0 ){ in zipfileBegin()
1464 pTab->base.zErrMsg = sqlite3_mprintf("zipfile: missing filename"); in zipfileBegin()
1472 pTab->pWriteFd = fopen(pTab->zFile, "ab+"); in zipfileBegin()
1473 if( pTab->pWriteFd==0 ){ in zipfileBegin()
1474 pTab->base.zErrMsg = sqlite3_mprintf( in zipfileBegin()
1475 "zipfile: failed to open file %s for writing", pTab->zFile in zipfileBegin()
1479 fseek(pTab->pWriteFd, 0, SEEK_END); in zipfileBegin()
1480 pTab->szCurrent = pTab->szOrig = (i64)ftell(pTab->pWriteFd); in zipfileBegin()
1481 rc = zipfileLoadDirectory(pTab, 0, 0); in zipfileBegin()
1485 zipfileCleanupTransaction(pTab); in zipfileBegin()
1529 static void zipfileRemoveEntryFromList(ZipfileTab *pTab, ZipfileEntry *pOld){ in zipfileRemoveEntryFromList() argument
1532 for(pp=&pTab->pFirstEntry; (*pp)!=pOld; pp=&((*pp)->pNext)); in zipfileRemoveEntryFromList()
1547 ZipfileTab *pTab = (ZipfileTab*)pVtab; in zipfileUpdate() local
1567 if( pTab->pWriteFd==0 ){ in zipfileUpdate()
1582 for(pOld=pTab->pFirstEntry; 1; pOld=pOld->pNext){ in zipfileUpdate()
1593 zipfileTableErr(pTab, "sz must be NULL"); in zipfileUpdate()
1597 zipfileTableErr(pTab, "rawdata must be NULL"); in zipfileUpdate()
1617 zipfileTableErr(pTab, "unknown compression method: %d", iMethod); in zipfileUpdate()
1622 rc = zipfileDeflate(aIn, nIn, &pFree, &nCmp, &pTab->base.zErrMsg); in zipfileUpdate()
1637 rc = zipfileGetMode(apVal[3], bIsDir, &mode, &pTab->base.zErrMsg); in zipfileUpdate()
1668 for(p=pTab->pFirstEntry; p; p=p->pNext){ in zipfileUpdate()
1670 switch( sqlite3_vtab_on_conflict(pTab->db) ){ in zipfileUpdate()
1679 zipfileTableErr(pTab, "duplicate name: \"%s\"", zPath); in zipfileUpdate()
1704 pNew->cds.iOffset = (u32)pTab->szCurrent; in zipfileUpdate()
1707 rc = zipfileAppendEntry(pTab, pNew, pData, nData); in zipfileUpdate()
1708 zipfileAddEntry(pTab, pOld, pNew); in zipfileUpdate()
1715 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){ in zipfileUpdate()
1722 zipfileRemoveEntryFromList(pTab, pOld); in zipfileUpdate()
1723 zipfileRemoveEntryFromList(pTab, pOld2); in zipfileUpdate()
1746 static int zipfileAppendEOCD(ZipfileTab *pTab, ZipfileEOCD *p){ in zipfileAppendEOCD() argument
1747 int nBuf = zipfileSerializeEOCD(p, pTab->aBuffer); in zipfileAppendEOCD()
1749 return zipfileAppendData(pTab, pTab->aBuffer, nBuf); in zipfileAppendEOCD()
1802 ZipfileTab *pTab = (ZipfileTab*)pVtab; in zipfileCommit() local
1804 if( pTab->pWriteFd ){ in zipfileCommit()
1805 i64 iOffset = pTab->szCurrent; in zipfileCommit()
1811 for(p=pTab->pFirstEntry; rc==SQLITE_OK && p; p=p->pNext){ in zipfileCommit()
1812 int n = zipfileSerializeCDS(p, pTab->aBuffer); in zipfileCommit()
1813 rc = zipfileAppendData(pTab, pTab->aBuffer, n); in zipfileCommit()
1822 eocd.nSize = (u32)(pTab->szCurrent - iOffset); in zipfileCommit()
1824 rc = zipfileAppendEOCD(pTab, &eocd); in zipfileCommit()
1826 zipfileCleanupTransaction(pTab); in zipfileCommit()
1835 static ZipfileCsr *zipfileFindCursor(ZipfileTab *pTab, i64 iId){ in zipfileFindCursor() argument
1837 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){ in zipfileFindCursor()
1849 ZipfileTab *pTab = (ZipfileTab*)sqlite3_user_data(context); in zipfileFunctionCds() local
1852 pCsr = zipfileFindCursor(pTab, sqlite3_value_int64(argv[0])); in zipfileFunctionCds()