Lines Matching defs:pTab

9786 static void zipfileCleanupTransaction(ZipfileTab *pTab){
9790 if( pTab->pWriteFd ){
9791 fclose(pTab->pWriteFd);
9792 pTab->pWriteFd = 0;
9794 for(pEntry=pTab->pFirstEntry; pEntry; pEntry=pNext){
9798 pTab->pFirstEntry = 0;
9799 pTab->pLastEntry = 0;
9800 pTab->szCurrent = 0;
9801 pTab->szOrig = 0;
9817 ZipfileTab *pTab = (ZipfileTab*)p;
9825 pCsr->iId = ++pTab->iNextCsrid;
9826 pCsr->pCsrNext = pTab->pCsrList;
9827 pTab->pCsrList = pCsr;
9858 ZipfileTab *pTab = (ZipfileTab*)(pCsr->base.pVtab);
9863 for(pp=&pTab->pCsrList; *pp!=pCsr; pp=&((*pp)->pCsrNext));
9874 static void zipfileTableErr(ZipfileTab *pTab, const char *zFmt, ...){
9877 sqlite3_free(pTab->base.zErrMsg);
9878 pTab->base.zErrMsg = sqlite3_vmprintf(zFmt, ap);
9917 ZipfileTab *pTab,
9923 fseek(pTab->pWriteFd, (long)pTab->szCurrent, SEEK_SET);
9924 n = fwrite(aWrite, 1, nWrite, pTab->pWriteFd);
9926 pTab->base.zErrMsg = sqlite3_mprintf("error in fwrite()");
9929 pTab->szCurrent += nWrite;
10179 ZipfileTab *pTab, /* Store any error message here */
10187 char **pzErr = &pTab->base.zErrMsg;
10192 aRead = pTab->aBuffer;
10289 ZipfileTab *pTab = (ZipfileTab*)(cur->pVtab);
10290 rc = zipfileGetEntry(pTab, 0, 0, pCsr->pFile, pCsr->iNextOff, &p);
10366 ** pTab. The values of (*ppOut) and (*pnOut) are left unchanged in this
10515 ** an English language error message may be left in virtual-table pTab.
10518 ZipfileTab *pTab, /* Return errors here */
10524 u8 *aRead = pTab->aBuffer; /* Temporary buffer */
10539 rc = zipfileReadData(pFile, aRead, nRead, iOff, &pTab->base.zErrMsg);
10557 pTab->base.zErrMsg = sqlite3_mprintf(
10582 ZipfileTab *pTab,
10586 assert( (pTab->pFirstEntry==0)==(pTab->pLastEntry==0) );
10589 if( pTab->pFirstEntry==0 ){
10590 pTab->pFirstEntry = pTab->pLastEntry = pNew;
10592 assert( pTab->pLastEntry->pNext==0 );
10593 pTab->pLastEntry->pNext = pNew;
10594 pTab->pLastEntry = pNew;
10598 for(pp=&pTab->pFirstEntry; *pp!=pBefore; pp=&((*pp)->pNext));
10604 static int zipfileLoadDirectory(ZipfileTab *pTab, const u8 *aBlob, int nBlob){
10610 rc = zipfileReadEOCD(pTab, aBlob, nBlob, pTab->pWriteFd, &eocd);
10614 rc = zipfileGetEntry(pTab, aBlob, nBlob, pTab->pWriteFd, iOff, &pNew);
10617 zipfileAddEntry(pTab, 0, pNew);
10633 ZipfileTab *pTab = (ZipfileTab*)cur->pVtab;
10644 if( pTab->zFile ){
10645 zFile = pTab->zFile;
10653 assert( pTab->pFirstEntry==0 );
10658 rc = zipfileLoadDirectory(pTab, aBlob, nBlob);
10659 pCsr->pFreeEntry = pTab->pFirstEntry;
10660 pTab->pFirstEntry = pTab->pLastEntry = 0;
10667 if( 0==pTab->pWriteFd && 0==bInMemory ){
10673 rc = zipfileReadEOCD(pTab, 0, 0, pCsr->pFile, &pCsr->eocd);
10685 pCsr->pCurrent = pCsr->pFreeEntry ? pCsr->pFreeEntry : pTab->pFirstEntry;
10772 ZipfileTab *pTab,
10777 u8 *aBuf = pTab->aBuffer;
10782 rc = zipfileAppendData(pTab, aBuf, nBuf);
10784 pEntry->iDataOff = pTab->szCurrent;
10785 rc = zipfileAppendData(pTab, pData, nData);
10845 ZipfileTab *pTab = (ZipfileTab*)pVtab;
10848 assert( pTab->pWriteFd==0 );
10849 if( pTab->zFile==0 || pTab->zFile[0]==0 ){
10850 pTab->base.zErrMsg = sqlite3_mprintf("zipfile: missing filename");
10858 pTab->pWriteFd = fopen(pTab->zFile, "ab+");
10859 if( pTab->pWriteFd==0 ){
10860 pTab->base.zErrMsg = sqlite3_mprintf(
10861 "zipfile: failed to open file %s for writing", pTab->zFile
10865 fseek(pTab->pWriteFd, 0, SEEK_END);
10866 pTab->szCurrent = pTab->szOrig = (i64)ftell(pTab->pWriteFd);
10867 rc = zipfileLoadDirectory(pTab, 0, 0);
10871 zipfileCleanupTransaction(pTab);
10912 ** Unless it is NULL, entry pOld is currently part of the pTab->pFirstEntry
10915 static void zipfileRemoveEntryFromList(ZipfileTab *pTab, ZipfileEntry *pOld){
10917 if( pTab->pFirstEntry==pOld ){
10918 pTab->pFirstEntry = pOld->pNext;
10919 if( pTab->pLastEntry==pOld ) pTab->pLastEntry = 0;
10922 for(p=pTab->pFirstEntry; p; p=p->pNext){
10925 if( pTab->pLastEntry==pOld ) pTab->pLastEntry = p;
10943 ZipfileTab *pTab = (ZipfileTab*)pVtab;
10965 if( pTab->pWriteFd==0 ){
10980 for(pOld=pTab->pFirstEntry; 1; pOld=pOld->pNext){
10991 zipfileTableErr(pTab, "sz must be NULL");
10995 zipfileTableErr(pTab, "rawdata must be NULL");
11015 zipfileTableErr(pTab, "unknown compression method: %d", iMethod);
11020 rc = zipfileDeflate(aIn, nIn, &pFree, &nCmp, &pTab->base.zErrMsg);
11035 rc = zipfileGetMode(apVal[3], bIsDir, &mode, &pTab->base.zErrMsg);
11066 for(p=pTab->pFirstEntry; p; p=p->pNext){
11068 switch( sqlite3_vtab_on_conflict(pTab->db) ){
11077 zipfileTableErr(pTab, "duplicate name: \"%s\"", zPath);
11102 pNew->cds.iOffset = (u32)pTab->szCurrent;
11105 rc = zipfileAppendEntry(pTab, pNew, pData, nData);
11106 zipfileAddEntry(pTab, pOld, pNew);
11113 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){
11120 zipfileRemoveEntryFromList(pTab, pOld);
11121 zipfileRemoveEntryFromList(pTab, pOld2);
11144 static int zipfileAppendEOCD(ZipfileTab *pTab, ZipfileEOCD *p){
11145 int nBuf = zipfileSerializeEOCD(p, pTab->aBuffer);
11147 return zipfileAppendData(pTab, pTab->aBuffer, nBuf);
11200 ZipfileTab *pTab = (ZipfileTab*)pVtab;
11202 if( pTab->pWriteFd ){
11203 i64 iOffset = pTab->szCurrent;
11209 for(p=pTab->pFirstEntry; rc==SQLITE_OK && p; p=p->pNext){
11210 int n = zipfileSerializeCDS(p, pTab->aBuffer);
11211 rc = zipfileAppendData(pTab, pTab->aBuffer, n);
11220 eocd.nSize = (u32)(pTab->szCurrent - iOffset);
11222 rc = zipfileAppendEOCD(pTab, &eocd);
11224 zipfileCleanupTransaction(pTab);
11233 static ZipfileCsr *zipfileFindCursor(ZipfileTab *pTab, i64 iId){
11235 for(pCsr=pTab->pCsrList; pCsr; pCsr=pCsr->pCsrNext){
11247 ZipfileTab *pTab = (ZipfileTab*)sqlite3_user_data(context);
11250 pCsr = zipfileFindCursor(pTab, sqlite3_value_int64(argv[0]));
11994 IdxTable *pTab; /* Associated table object */
12025 IdxTable *pTab;
12286 IdxTable *pTab;
12351 p->pTab = pExpert->pTable;
12352 assert( sqlite3_stricmp(p->pTab->zName, argv[2])==0 );
12385 pScan->pTab = p->pTab;
12394 && p->pTab->aCol[pCons->iColumn].iPk==0
12420 IdxConstraint *pNew = idxNewConstraint(&rc, p->pTab->aCol[iCol].zColl);
12545 "SELECT * FROM main.%Q WHERE sqlite_expert_sample()", pVtab->pTab->zName
12763 IdxTable *pTab, /* Table index will be created on */
12767 IdxColumn *p = &pTab->aCol[pCons->iCol];
12805 const char *zTbl = pScan->pTab->zName;
12888 IdxTable *pTab = pScan->pTab;
12896 zCols = idxAppendColDefn(&rc, zCols, pTab, pCons);
12899 zCols = idxAppendColDefn(&rc, zCols, pTab, pCons);
12904 const char *zTable = pScan->pTab->zName;
13073 ** Free the linked list of IdxTable objects starting at pTab.
13075 static void idxTableFree(IdxTable *pTab){
13078 for(pIter=pTab; pIter; pIter=pNext){
13085 ** Free the linked list of IdxWrite objects starting at pTab.
13087 static void idxWriteFree(IdxWrite *pTab){
13090 for(pIter=pTab; pIter; pIter=pNext){
13187 IdxTable *pTab;
13188 for(pTab=p->pTable; pTab; pTab=pTab->pNext){
13189 if( 0==sqlite3_stricmp(z3, pTab->zName) ) break;
13191 if( pTab ){
13194 if( pWrite->pTab==pTab && pWrite->eOp==eOp ) break;
13199 pWrite->pTab = pTab;
13218 IdxTable *pTab = pWrite->pTab;
13219 const char *zTab = pTab->zName;
13252 for(i=0; i<pTab->nCol; i++){
13261 for(i=0; i<pTab->nCol; i++){
13263 pTab->aCol[i].zName
13339 IdxTable *pTab;
13340 rc = idxGetTableInfo(p->db, zName, &pTab, pzErrmsg);
13345 pTab->pNext = p->pTable;
13346 p->pTable = pTab;
13350 for(i=0; i<pTab->nCol; i++){
13352 (i==0 ? "" : ", "), pTab->aCol[i].zName, pTab->aCol[i].zColl
15647 DbdataTable *pTab = 0;
15655 pTab = (DbdataTable*)sqlite3_malloc64(sizeof(DbdataTable));
15656 if( pTab==0 ){
15659 memset(pTab, 0, sizeof(DbdataTable));
15660 pTab->db = db;
15661 pTab->bPtr = (pAux!=0);
15665 *ppVtab = (sqlite3_vtab*)pTab;
15673 DbdataTable *pTab = (DbdataTable*)pVtab;
15674 if( pTab ){
15675 sqlite3_finalize(pTab->pStmt);
15695 DbdataTable *pTab = (DbdataTable*)tab;
15699 int colSchema = (pTab->bPtr ? DBPTR_COLUMN_SCHEMA : DBDATA_COLUMN_SCHEMA);
15724 if( pTab->bPtr==0 && pIdx->nOrderBy && pIdx->aOrderBy[0].desc==0 ){
15764 DbdataTable *pTab = (DbdataTable*)(pCsr->base.pVtab);
15765 if( pTab->pStmt==0 ){
15766 pTab->pStmt = pCsr->pStmt;
16007 DbdataTable *pTab = (DbdataTable*)pCursor->pVtab;
16028 pCsr->iCell = pTab->bPtr ? -2 : 0;
16035 if( pTab->bPtr ){
16243 DbdataTable *pTab = (DbdataTable*)pCsr->base.pVtab;
16256 rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pStmt, 0);
16293 DbdataTable *pTab = (DbdataTable*)pCursor->pVtab;
16314 if( pTab->pStmt ){
16315 pCsr->pStmt = pTab->pStmt;
16316 pTab->pStmt = 0;
16322 rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0);
16326 rc = sqlite3_prepare_v2(pTab->db,
16343 pTab->base.zErrMsg = sqlite3_mprintf("%s", sqlite3_errmsg(pTab->db));
16361 DbdataTable *pTab = (DbdataTable*)pCursor->pVtab;
16362 if( pTab->bPtr ){
16630 RecoverTable *pTab; /* Table currently being written */
17728 ** pTab, assuming the first nField fields of a record extracted from disk
17731 ** For example, if table pTab is:
17758 RecoverTable *pTab,
17772 assert( nField<=pTab->nCol );
17774 zSql = recoverMPrintf(p, "INSERT OR IGNORE INTO %Q(", pTab->zTab);
17776 if( pTab->iRowidBind ){
17777 assert( pTab->bIntkey );
17780 zBind = recoverMPrintf(p, "%zquote(?%d)", zBind, pTab->iRowidBind);
17782 zBind = recoverMPrintf(p, "%z?%d", zBind, pTab->iRowidBind);
17789 int eHidden = pTab->aCol[ii].eHidden;
17793 assert( pTab->aCol[ii].iField>=0 && pTab->aCol[ii].iBind>=1 );
17794 zSql = recoverMPrintf(p, "%z%s%Q", zSql, zSep, pTab->aCol[ii].zCol);
17798 "%z%sescape_crnl(quote(?%d))", zBind, zSqlSep, pTab->aCol[ii].iBind
17802 zBind = recoverMPrintf(p, "%z%s?%d", zBind, zSep, pTab->aCol[ii].iBind);
18196 if( p->errCode==SQLITE_OK && p1->pTab==0 ){
18199 p1->pTab = recoverFindTable(p, iRoot);
18206 if( p1->pTab==0 ) return p->errCode;
18213 if( sqlite3_stricmp("sqlite_sequence", p1->pTab->zTab)==0 ){
18220 ** through cells that look like they belong to table pTab. */
18231 assert( p->errCode!=SQLITE_OK || p1->pTab );
18234 RecoverTable *pTab = p1->pTab;
18243 assert( bNewCell || iField==p1->nVal || p1->nVal==pTab->nCol );
18250 p1->pInsert = recoverInsertStmt(p, pTab, p1->nVal);
18255 for(ii=0; ii<pTab->nCol; ii++){
18256 RecoverColumn *pCol = &pTab->aCol[ii];
18266 if( p->bRecoverRowid && pTab->iRowidBind>0 && p1->bHaveRowid ){
18267 sqlite3_bind_int64(pInsert, pTab->iRowidBind, p1->iRowid);
18293 }else if( iField<pTab->nCol ){
18306 p1->pTab = 0;
18482 RecoverTable *pTab = 0;
18488 for(pTab=p->pTblList; pTab; pTab=pNext){
18489 pNext = pTab->pNext;
18490 sqlite3_free(pTab);