Lines Matching refs:pTab
7251 static void zipfileCleanupTransaction(ZipfileTab *pTab){
7255 if( pTab->pWriteFd ){
7256 fclose(pTab->pWriteFd);
7257 pTab->pWriteFd = 0;
7259 for(pEntry=pTab->pFirstEntry; pEntry; pEntry=pNext){
7263 pTab->pFirstEntry = 0;
7264 pTab->pLastEntry = 0;
7265 pTab->szCurrent = 0;
7266 pTab->szOrig = 0;
7282 ZipfileTab *pTab = (ZipfileTab*)p;
7290 pCsr->iId = ++pTab->iNextCsrid;
7291 pCsr->pCsrNext = pTab->pCsrList;
7292 pTab->pCsrList = pCsr;
7323 ZipfileTab *pTab = (ZipfileTab*)(pCsr->base.pVtab);
7328 for(pp=&pTab->pCsrList; *pp!=pCsr; pp=&((*pp)->pCsrNext));
7339 static void zipfileTableErr(ZipfileTab *pTab, const char *zFmt, ...){
7342 sqlite3_free(pTab->base.zErrMsg);
7343 pTab->base.zErrMsg = sqlite3_vmprintf(zFmt, ap);
7382 ZipfileTab *pTab,
7388 fseek(pTab->pWriteFd, (long)pTab->szCurrent, SEEK_SET);
7389 n = fwrite(aWrite, 1, nWrite, pTab->pWriteFd);
7391 pTab->base.zErrMsg = sqlite3_mprintf("error in fwrite()");
7394 pTab->szCurrent += nWrite;
7644 ZipfileTab *pTab, /* Store any error message here */
7652 char **pzErr = &pTab->base.zErrMsg;
7656 aRead = pTab->aBuffer;
7753 ZipfileTab *pTab = (ZipfileTab*)(cur->pVtab);
7754 rc = zipfileGetEntry(pTab, 0, 0, pCsr->pFile, pCsr->iNextOff, &p);
7830 ** pTab. The values of (*ppOut) and (*pnOut) are left unchanged in this
7976 ** an English language error message may be left in virtual-table pTab.
7979 ZipfileTab *pTab, /* Return errors here */
7985 u8 *aRead = pTab->aBuffer; /* Temporary buffer */
8000 rc = zipfileReadData(pFile, aRead, nRead, iOff, &pTab->base.zErrMsg);
8018 pTab->base.zErrMsg = sqlite3_mprintf(
8043 ZipfileTab *pTab,
8047 assert( (pTab->pFirstEntry==0)==(pTab->pLastEntry==0) );
8050 if( pTab->pFirstEntry==0 ){
8051 pTab->pFirstEntry = pTab->pLastEntry = pNew;
8053 assert( pTab->pLastEntry->pNext==0 );
8054 pTab->pLastEntry->pNext = pNew;
8055 pTab->pLastEntry = pNew;
8059 for(pp=&pTab->pFirstEntry; *pp!=pBefore; pp=&((*pp)->pNext));
8065 static int zipfileLoadDirectory(ZipfileTab *pTab, const u8 *aBlob, int nBlob){
8071 rc = zipfileReadEOCD(pTab, aBlob, nBlob, pTab->pWriteFd, &eocd);
8075 rc = zipfileGetEntry(pTab, aBlob, nBlob, pTab->pWriteFd, iOff, &pNew);
8078 zipfileAddEntry(pTab, 0, pNew);
8094 ZipfileTab *pTab = (ZipfileTab*)cur->pVtab;
8102 if( pTab->zFile ){
8103 zFile = pTab->zFile;
8111 assert( pTab->pFirstEntry==0 );
8116 rc = zipfileLoadDirectory(pTab, aBlob, nBlob);
8117 pCsr->pFreeEntry = pTab->pFirstEntry;
8118 pTab->pFirstEntry = pTab->pLastEntry = 0;
8125 if( 0==pTab->pWriteFd && 0==bInMemory ){
8131 rc = zipfileReadEOCD(pTab, 0, 0, pCsr->pFile, &pCsr->eocd);
8143 pCsr->pCurrent = pCsr->pFreeEntry ? pCsr->pFreeEntry : pTab->pFirstEntry;
8229 ZipfileTab *pTab,
8234 u8 *aBuf = pTab->aBuffer;
8239 rc = zipfileAppendData(pTab, aBuf, nBuf);
8241 pEntry->iDataOff = pTab->szCurrent;
8242 rc = zipfileAppendData(pTab, pData, nData);
8302 ZipfileTab *pTab = (ZipfileTab*)pVtab;
8305 assert( pTab->pWriteFd==0 );
8306 if( pTab->zFile==0 || pTab->zFile[0]==0 ){
8307 pTab->base.zErrMsg = sqlite3_mprintf("zipfile: missing filename");
8315 pTab->pWriteFd = fopen(pTab->zFile, "ab+");
8316 if( pTab->pWriteFd==0 ){
8317 pTab->base.zErrMsg = sqlite3_mprintf(
8318 "zipfile: failed to open file %s for writing", pTab->zFile
8322 fseek(pTab->pWriteFd, 0, SEEK_END);
8323 pTab->szCurrent = pTab->szOrig = (i64)ftell(pTab->pWriteFd);
8324 rc = zipfileLoadDirectory(pTab, 0, 0);
8328 zipfileCleanupTransaction(pTab);
8369 ** Unless it is NULL, entry pOld is currently part of the pTab->pFirstEntry
8372 static void zipfileRemoveEntryFromList(ZipfileTab *pTab, ZipfileEntry *pOld){
8375 for(pp=&pTab->pFirstEntry; (*pp)!=pOld; pp=&((*pp)->pNext));
8390 ZipfileTab *pTab = (ZipfileTab*)pVtab;
8410 if( pTab->pWriteFd==0 ){
8425 for(pOld=pTab->pFirstEntry; 1; pOld=pOld->pNext){
8436 zipfileTableErr(pTab, "sz must be NULL");
8440 zipfileTableErr(pTab, "rawdata must be NULL");
8460 zipfileTableErr(pTab, "unknown compression method: %d", iMethod);
8465 rc = zipfileDeflate(aIn, nIn, &pFree, &nCmp, &pTab->base.zErrMsg);
8480 rc = zipfileGetMode(apVal[3], bIsDir, &mode, &pTab->base.zErrMsg);
8511 for(p=pTab->pFirstEntry; p; p=p->pNext){
8513 switch( sqlite3_vtab_on_conflict(pTab->db) ){
8522 zipfileTableErr(pTab, "duplicate name: \"%s\"", zPath);
8547 pNew->cds.iOffset = (u32)pTab->szCurrent;
8550 rc = zipfileAppendEntry(pTab, pNew, pData, nData);
8551 zipfileAddEntry(pTab, pOld, pNew);
8558 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){
8565 zipfileRemoveEntryFromList(pTab, pOld);
8566 zipfileRemoveEntryFromList(pTab, pOld2);
8589 static int zipfileAppendEOCD(ZipfileTab *pTab, ZipfileEOCD *p){
8590 int nBuf = zipfileSerializeEOCD(p, pTab->aBuffer);
8592 return zipfileAppendData(pTab, pTab->aBuffer, nBuf);
8645 ZipfileTab *pTab = (ZipfileTab*)pVtab;
8647 if( pTab->pWriteFd ){
8648 i64 iOffset = pTab->szCurrent;
8654 for(p=pTab->pFirstEntry; rc==SQLITE_OK && p; p=p->pNext){
8655 int n = zipfileSerializeCDS(p, pTab->aBuffer);
8656 rc = zipfileAppendData(pTab, pTab->aBuffer, n);
8665 eocd.nSize = (u32)(pTab->szCurrent - iOffset);
8667 rc = zipfileAppendEOCD(pTab, &eocd);
8669 zipfileCleanupTransaction(pTab);
8678 static ZipfileCsr *zipfileFindCursor(ZipfileTab *pTab, i64 iId){
8680 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){
8692 ZipfileTab *pTab = (ZipfileTab*)sqlite3_user_data(context);
8695 pCsr = zipfileFindCursor(pTab, sqlite3_value_int64(argv[0]));
9435 IdxTable *pTab; /* Associated table object */
9466 IdxTable *pTab;
9727 IdxTable *pTab;
9792 p->pTab = pExpert->pTable;
9793 assert( sqlite3_stricmp(p->pTab->zName, argv[2])==0 );
9826 pScan->pTab = p->pTab;
9835 && p->pTab->aCol[pCons->iColumn].iPk==0
9861 IdxConstraint *pNew = idxNewConstraint(&rc, p->pTab->aCol[iCol].zColl);
9986 "SELECT * FROM main.%Q WHERE sample()", pVtab->pTab->zName
10203 IdxTable *pTab, /* Table index will be created on */
10207 IdxColumn *p = &pTab->aCol[pCons->iCol];
10245 const char *zTbl = pScan->pTab->zName;
10328 IdxTable *pTab = pScan->pTab;
10336 zCols = idxAppendColDefn(&rc, zCols, pTab, pCons);
10339 zCols = idxAppendColDefn(&rc, zCols, pTab, pCons);
10344 const char *zTable = pScan->pTab->zName;
10513 ** Free the linked list of IdxTable objects starting at pTab.
10515 static void idxTableFree(IdxTable *pTab){
10518 for(pIter=pTab; pIter; pIter=pNext){
10525 ** Free the linked list of IdxWrite objects starting at pTab.
10527 static void idxWriteFree(IdxWrite *pTab){
10530 for(pIter=pTab; pIter; pIter=pNext){
10627 IdxTable *pTab;
10628 for(pTab=p->pTable; pTab; pTab=pTab->pNext){
10629 if( 0==sqlite3_stricmp(z3, pTab->zName) ) break;
10631 if( pTab ){
10634 if( pWrite->pTab==pTab && pWrite->eOp==eOp ) break;
10639 pWrite->pTab = pTab;
10658 IdxTable *pTab = pWrite->pTab;
10659 const char *zTab = pTab->zName;
10692 for(i=0; i<pTab->nCol; i++){
10701 for(i=0; i<pTab->nCol; i++){
10703 pTab->aCol[i].zName
10779 IdxTable *pTab;
10780 rc = idxGetTableInfo(p->db, zName, &pTab, pzErrmsg);
10785 pTab->pNext = p->pTable;
10786 p->pTable = pTab;
10790 for(i=0; i<pTab->nCol; i++){
10792 (i==0 ? "" : ", "), pTab->aCol[i].zName, pTab->aCol[i].zColl
11579 DbdataTable *pTab = 0;
11583 pTab = (DbdataTable*)sqlite3_malloc64(sizeof(DbdataTable));
11584 if( pTab==0 ){
11587 memset(pTab, 0, sizeof(DbdataTable));
11588 pTab->db = db;
11589 pTab->bPtr = (pAux!=0);
11593 *ppVtab = (sqlite3_vtab*)pTab;
11601 DbdataTable *pTab = (DbdataTable*)pVtab;
11602 if( pTab ){
11603 sqlite3_finalize(pTab->pStmt);
11623 DbdataTable *pTab = (DbdataTable*)tab;
11627 int colSchema = (pTab->bPtr ? DBPTR_COLUMN_SCHEMA : DBDATA_COLUMN_SCHEMA);
11652 if( pTab->bPtr==0 && pIdx->nOrderBy && pIdx->aOrderBy[0].desc==0 ){
11692 DbdataTable *pTab = (DbdataTable*)(pCsr->base.pVtab);
11693 if( pTab->pStmt==0 ){
11694 pTab->pStmt = pCsr->pStmt;
11914 DbdataTable *pTab = (DbdataTable*)pCursor->pVtab;
11931 pCsr->iCell = pTab->bPtr ? -2 : 0;
11935 if( pTab->bPtr ){
12132 DbdataTable *pTab = (DbdataTable*)pCsr->base.pVtab;
12145 rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pStmt, 0);
12183 DbdataTable *pTab = (DbdataTable*)pCursor->pVtab;
12202 if( pTab->pStmt ){
12203 pCsr->pStmt = pTab->pStmt;
12204 pTab->pStmt = 0;
12210 rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0);
12214 rc = sqlite3_prepare_v2(pTab->db,
12223 pTab->base.zErrMsg = sqlite3_mprintf("%s", sqlite3_errmsg(pTab->db));
12247 DbdataTable *pTab = (DbdataTable*)pCursor->pVtab;
12248 if( pTab->bPtr ){
12770 RecoverTable *pTab; /* Table currently being written */
13865 ** pTab, assuming the first nField fields of a record extracted from disk
13868 ** For example, if table pTab is:
13895 RecoverTable *pTab,
13909 assert( nField<=pTab->nCol );
13911 zSql = recoverMPrintf(p, "INSERT OR IGNORE INTO %Q(", pTab->zTab);
13913 if( pTab->iRowidBind ){
13914 assert( pTab->bIntkey );
13917 zBind = recoverMPrintf(p, "%zquote(?%d)", zBind, pTab->iRowidBind);
13919 zBind = recoverMPrintf(p, "%z?%d", zBind, pTab->iRowidBind);
13926 int eHidden = pTab->aCol[ii].eHidden;
13930 assert( pTab->aCol[ii].iField>=0 && pTab->aCol[ii].iBind>=1 );
13931 zSql = recoverMPrintf(p, "%z%s%Q", zSql, zSep, pTab->aCol[ii].zCol);
13935 "%z%sescape_crnl(quote(?%d))", zBind, zSqlSep, pTab->aCol[ii].iBind
13939 zBind = recoverMPrintf(p, "%z%s?%d", zBind, zSep, pTab->aCol[ii].iBind);
14333 if( p->errCode==SQLITE_OK && p1->pTab==0 ){
14336 p1->pTab = recoverFindTable(p, iRoot);
14343 if( p1->pTab==0 ) return p->errCode;
14350 if( sqlite3_stricmp("sqlite_sequence", p1->pTab->zTab)==0 ){
14357 ** through cells that look like they belong to table pTab. */
14368 assert( p->errCode!=SQLITE_OK || p1->pTab );
14371 RecoverTable *pTab = p1->pTab;
14380 assert( bNewCell || iField==p1->nVal || p1->nVal==pTab->nCol );
14387 p1->pInsert = recoverInsertStmt(p, pTab, p1->nVal);
14392 for(ii=0; ii<pTab->nCol; ii++){
14393 RecoverColumn *pCol = &pTab->aCol[ii];
14403 if( p->bRecoverRowid && pTab->iRowidBind>0 && p1->bHaveRowid ){
14404 sqlite3_bind_int64(pInsert, pTab->iRowidBind, p1->iRowid);
14430 }else if( iField<pTab->nCol ){
14443 p1->pTab = 0;
14619 RecoverTable *pTab = 0;
14625 for(pTab=p->pTblList; pTab; pTab=pNext){
14626 pNext = pTab->pNext;
14627 sqlite3_free(pTab);