Lines Matching refs:pWriter

46597 **     1) The current writer (BtShared.pWriter) concludes its transaction, OR
46637 Btree *pWriter; /* Btree with currently open write transaction */
46638 u8 isExclusive; /* True if pWriter has an EXCLUSIVE lock on the db */
47354 assert( eLock==READ_LOCK || (p==pBt->pWriter && p->inTrans==TRANS_WRITE) );
47365 if( pBt->pWriter!=p && pBt->isExclusive ){
47366 sqlite3ConnectionBlocked(p->db, pBt->pWriter->db);
47385 assert( p==pBt->pWriter );
47487 assert( pBt->isExclusive==0 || pBt->pWriter==pLock->pBtree );
47500 assert( pBt->isPending==0 || pBt->pWriter );
47501 if( pBt->pWriter==p ){
47502 pBt->pWriter = 0;
47524 if( pBt->pWriter==p ){
47526 pBt->pWriter = 0;
49673 pBlock = pBt->pWriter->db;
49743 assert( !pBt->pWriter );
49744 pBt->pWriter = p;
121624 SegmentWriter *pWriter = *ppWriter;
121626 if( !pWriter ){
121631 pWriter = (SegmentWriter *)sqlite3_malloc(sizeof(SegmentWriter));
121632 if( !pWriter ) return SQLITE_NOMEM;
121633 memset(pWriter, 0, sizeof(SegmentWriter));
121634 *ppWriter = pWriter;
121637 pWriter->aData = (char *)sqlite3_malloc(p->nNodeSize);
121638 if( !pWriter->aData ) return SQLITE_NOMEM;
121639 pWriter->nSize = p->nNodeSize;
121645 pWriter->iFree = sqlite3_column_int64(pStmt, 0);
121646 pWriter->iFirst = pWriter->iFree;
121651 nData = pWriter->nData;
121653 nPrefix = fts3PrefixCompress(pWriter->zTerm, pWriter->nTerm, zTerm, nTerm);
121667 rc = fts3WriteSegment(p, pWriter->iFree++, pWriter->aData, nData);
121674 ** to the database (still available in pWriter->zTerm), and
121680 ** the common prefix (if any) of zTerm and pWriter->zTerm.
121683 rc = fts3NodeAddTerm(p, &pWriter->pTree, isCopyTerm, zTerm, nPrefix+1);
121687 pWriter->nTerm = 0;
121701 if( nReq>pWriter->nSize ){
121702 char *aNew = sqlite3_realloc(pWriter->aData, nReq);
121704 pWriter->aData = aNew;
121705 pWriter->nSize = nReq;
121707 assert( nData+nReq<=pWriter->nSize );
121710 nData += sqlite3Fts3PutVarint(&pWriter->aData[nData], nPrefix);
121711 nData += sqlite3Fts3PutVarint(&pWriter->aData[nData], nSuffix);
121712 memcpy(&pWriter->aData[nData], &zTerm[nPrefix], nSuffix);
121714 nData += sqlite3Fts3PutVarint(&pWriter->aData[nData], nDoclist);
121715 memcpy(&pWriter->aData[nData], aDoclist, nDoclist);
121716 pWriter->nData = nData + nDoclist;
121724 if( nTerm>pWriter->nMalloc ){
121725 char *zNew = sqlite3_realloc(pWriter->zMalloc, nTerm*2);
121729 pWriter->nMalloc = nTerm*2;
121730 pWriter->zMalloc = zNew;
121731 pWriter->zTerm = zNew;
121733 assert( pWriter->zTerm==pWriter->zMalloc );
121734 memcpy(pWriter->zTerm, zTerm, nTerm);
121736 pWriter->zTerm = (char *)zTerm;
121738 pWriter->nTerm = nTerm;
121744 ** Flush all data associated with the SegmentWriter object pWriter to the
121751 SegmentWriter *pWriter, /* SegmentWriter to flush to the db */
121756 if( pWriter->pTree ){
121762 iLastLeaf = pWriter->iFree;
121763 rc = fts3WriteSegment(p, pWriter->iFree++, pWriter->aData, pWriter->nData);
121765 rc = fts3NodeWrite(p, pWriter->pTree, 1,
121766 pWriter->iFirst, pWriter->iFree, &iLast, &zRoot, &nRoot);
121770 p, iLevel, iIdx, pWriter->iFirst, iLastLeaf, iLast, zRoot, nRoot);
121775 p, iLevel, iIdx, 0, 0, 0, pWriter->aData, pWriter->nData);
121784 static void fts3SegWriterFree(SegmentWriter *pWriter){
121785 if( pWriter ){
121786 sqlite3_free(pWriter->aData);
121787 sqlite3_free(pWriter->zMalloc);
121788 fts3NodeFree(pWriter->pTree);
121789 sqlite3_free(pWriter);
122134 SegmentWriter *pWriter = 0; /* Used to write the new, merged, segment */
122172 rc = fts3SegWriterAdd(p, &pWriter, 1,
122176 assert( pWriter );
122180 rc = fts3SegWriterFlush(p, pWriter, iNewLevel, iIdx);
122183 fts3SegWriterFree(pWriter);