Lines Matching refs:pSession

11361 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
11427 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable);
11457 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect);
11518 sqlite3_session *pSession, /* Session object */
11533 sqlite3_session *pSession, /* Session object */
11647 sqlite3_session *pSession, /* Session object */
11666 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession);
11726 sqlite3_session *pSession,
11763 sqlite3_session *pSession, /* Session object */
11783 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession);
11791 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession);
13037 sqlite3_session *pSession,
13042 sqlite3_session *pSession,
225348 static void *sessionMalloc64(sqlite3_session *pSession, i64 nByte){
225350 if( pSession ) pSession->nMalloc += sqlite3_msize(pRet);
225359 static void sessionFree(sqlite3_session *pSession, void *pFree){
225360 if( pSession ) pSession->nMalloc -= sqlite3_msize(pFree);
225420 sqlite3_session *pSession, /* Session object that owns pTab */
225431 assert( pTab->nCol-1==pSession->hook.xCount(pSession->hook.pCtx) );
225435 assert( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) );
225443 rc = pSession->hook.xNew(pSession->hook.pCtx, i, &pVal);
225445 rc = pSession->hook.xOld(pSession->hook.pCtx, i, &pVal);
225760 sqlite3_session *pSession, /* Session object that owns SessionTable */
225790 rc = pSession->hook.xNew(pSession->hook.pCtx, iCol, &pVal);
225793 rc = pSession->hook.xOld(pSession->hook.pCtx, iCol, &pVal);
225846 sqlite3_session *pSession, /* For memory accounting. May be NULL */
225856 pSession, sizeof(SessionChange*) * nNew
225878 sessionFree(pSession, pTab->apChange);
225913 sqlite3_session *pSession, /* For memory accounting. May be NULL */
225988 pAlloc = sessionMalloc64(pSession, nByte);
226048 sessionFree(pSession, azCol);
226067 sqlite3_session *pSession, /* Optional session handle */
226077 rc = sessionTableInfo(pSession, db, zDb,
226079 ((pSession==0 || pSession->bImplicitPK) ? &pTab->bRowid : 0)
226093 if( pSession && pSession->bEnableSize ){
226094 pSession->nMaxChangesetSize += (
226101 if( pSession ){
226102 pSession->rc = rc;
226111 static int sessionReinitTable(sqlite3_session *pSession, SessionTable *pTab){
226118 assert( pSession->rc==SQLITE_OK );
226120 pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb,
226122 (pSession->bImplicitPK ? &bRowid : 0)
226124 if( pSession->rc==SQLITE_OK ){
226126 pSession->rc = SQLITE_SCHEMA;
226133 pSession->rc = SQLITE_SCHEMA;
226136 pSession->rc = SQLITE_SCHEMA;
226140 if( pSession->rc==SQLITE_OK ){
226148 if( pSession->bEnableSize ){
226149 pSession->nMaxChangesetSize += (nCol - nOldCol);
226150 pSession->nMaxChangesetSize += sessionVarintLen(nCol);
226151 pSession->nMaxChangesetSize -= sessionVarintLen(nOldCol);
226157 return pSession->rc;
226166 sqlite3_session *pSession, /* For memory accounting */
226197 pNew = sessionMalloc64(pSession, nByte);
226246 sessionFree(pSession, pOld);
226250 if( pSession ){
226251 pSession->nMaxChangesetSize += nIncr;
226387 static int sessionUpdateChanges(sqlite3_session *pSession, SessionTable *pTab){
226389 int rc = pSession->rc;
226391 rc = sessionPrepareDfltStmt(pSession->db, pTab, &pStmt);
226398 sessionUpdateOneChange(pSession, &rc, pp, pTab->nCol, pStmt);
226404 pSession->rc = rc;
226406 if( pSession->rc==SQLITE_OK ) pSession->rc = rc;
226407 return pSession->rc;
226419 sqlite3_session *pSession;
226426 pVal = p->pSession->pZeroBlob;
226436 pVal = p->pSession->pZeroBlob;
226452 sqlite3_session *pSession, /* Session object pTab is attached to */
226463 pSession->hook.xNew(pSession->hook.pCtx, ii, &p);
226469 if( sqlite3_preupdate_blobwrite(pSession->db)>=0 ){
226484 pSession->hook.xNew(pSession->hook.pCtx, ii-pTab->bRowid, &p);
226548 pSession->nMaxChangesetSize += nIncr;
226564 sqlite3_session *pSession, /* Session object pTab is attached to */
226573 if( pSession->rc ) return;
226576 if( sessionInitTable(pSession, pTab, pSession->db, pSession->zDb) ) return;
226580 nExpect = pSession->hook.xCount(pSession->hook.pCtx);
226582 if( sessionReinitTable(pSession, pTab) ) return;
226583 if( sessionUpdateChanges(pSession, pTab) ) return;
226586 pSession->rc = SQLITE_SCHEMA;
226591 if( sessionGrowHash(pSession, 0, pTab) ){
226592 pSession->rc = SQLITE_NOMEM;
226597 stat1.hook = pSession->hook;
226598 stat1.pSession = pSession;
226599 pSession->hook.pCtx = (void*)&stat1;
226600 pSession->hook.xNew = sessionStat1New;
226601 pSession->hook.xOld = sessionStat1Old;
226602 pSession->hook.xCount = sessionStat1Count;
226603 pSession->hook.xDepth = sessionStat1Depth;
226604 if( pSession->pZeroBlob==0 ){
226611 pSession->pZeroBlob = p;
226619 pSession, iRowid, pTab, op==SQLITE_INSERT, &iHash, &bNull
226627 if( sessionPreupdateEqual(pSession, iRowid, pTab, pC, op) ) break;
226645 TESTONLY(int trc = ) pSession->hook.xOld(pSession->hook.pCtx, i, &p);
226648 TESTONLY(int trc = ) pSession->hook.xNew(pSession->hook.pCtx, i, &p);
226662 pC = (SessionChange*)sessionMalloc64(pSession, nByte);
226684 pSession->hook.xOld(pSession->hook.pCtx, i, &p);
226686 pSession->hook.xNew(pSession->hook.pCtx, i, &p);
226692 if( pSession->bIndirect || pSession->hook.xDepth(pSession->hook.pCtx) ){
226704 if( pSession->hook.xDepth(pSession->hook.pCtx)==0
226705 && pSession->bIndirect==0
226712 if( pSession->bEnableSize ){
226713 rc = sessionUpdateMaxSize(op, pSession, pTab, pC);
226721 pSession->hook = stat1.hook;
226724 pSession->rc = rc;
226729 sqlite3_session *pSession,
226738 for(pRet=pSession->pTable; pRet; pRet=pRet->pNext){
226742 if( pRet==0 && pSession->bAutoAttach ){
226745 if( pSession->xTableFilter==0
226746 || pSession->xTableFilter(pSession->pFilterCtx, zName)
226748 rc = sqlite3session_attach(pSession, zName);
226750 pRet = pSession->pTable;
226777 sqlite3_session *pSession;
226784 for(pSession=(sqlite3_session *)pCtx; pSession; pSession=pSession->pNext){
226790 if( pSession->bEnable==0 ) continue;
226791 if( pSession->rc ) continue;
226792 if( sqlite3_strnicmp(zDb, pSession->zDb, nDb+1) ) continue;
226794 pSession->rc = sessionFindTable(pSession, zName, &pTab);
226796 assert( pSession->rc==SQLITE_OK );
226798 sessionPreupdateOneChange(op, iKey1, pSession, pTab);
226800 sessionPreupdateOneChange(SQLITE_INSERT, iKey2, pSession, pTab);
226827 sqlite3_session *pSession
226829 pSession->hook.pCtx = (void*)pSession->db;
226830 pSession->hook.xOld = sessionPreupdateOld;
226831 pSession->hook.xNew = sessionPreupdateNew;
226832 pSession->hook.xCount = sessionPreupdateCount;
226833 pSession->hook.xDepth = sessionPreupdateDepth;
226870 sqlite3_session *pSession,
226873 pSession->hook.pCtx = (void*)pDiffCtx;
226874 pSession->hook.xOld = sessionDiffOld;
226875 pSession->hook.xNew = sessionDiffNew;
226876 pSession->hook.xCount = sessionDiffCount;
226877 pSession->hook.xDepth = sessionDiffDepth;
226953 sqlite3_session *pSession,
226968 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
226970 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
226976 sessionPreupdateOneChange(op, iRowid, pSession, pTab);
227008 sqlite3_session *pSession,
227016 pSession->zDb, zFrom, pTab->zName, pTab->azCol, pTab->abPK
227021 char *z1 = sessionAllCols(pSession->zDb, pTab);
227025 z1, z2, pSession->zDb, pTab->zName, zFrom, pTab->zName, zExpr, zExpr2
227031 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
227034 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
227039 sessionPreupdateOneChange(SQLITE_UPDATE, iRowid, pSession, pTab);
227053 sqlite3_session *pSession,
227058 const char *zDb = pSession->zDb;
227059 int rc = pSession->rc;
227063 sessionDiffHooks(pSession, &d);
227065 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
227069 sqlite3 *db = pSession->db;
227073 rc = sessionFindTable(pSession, zTbl, &pTo);
227075 if( sessionInitTable(pSession, pTo, pSession->db, pSession->zDb) ){
227076 rc = pSession->rc;
227089 pSession->bImplicitPK ? &bRowid : 0
227124 rc = sessionDiffFindNew(SQLITE_INSERT, pSession, pTo, zDb, zFrom, zExpr);
227129 rc = sessionDiffFindNew(SQLITE_DELETE, pSession, pTo, zFrom, zDb, zExpr);
227134 rc = sessionDiffFindModified(pSession, pTo, zFrom, zExpr);
227141 sessionPreupdateHooks(pSession);
227142 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
227188 static void sessionDeleteTable(sqlite3_session *pSession, SessionTable *pList){
227200 sessionFree(pSession, p);
227204 sessionFree(pSession, (char*)pTab->azCol); /* cast works around VC++ bug */
227205 sessionFree(pSession, pTab->apChange);
227206 sessionFree(pSession, pTab);
227213 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession){
227214 sqlite3 *db = pSession->db;
227223 if( (*pp)==pSession ){
227230 sqlite3ValueFree(pSession->pZeroBlob);
227234 sessionDeleteTable(pSession, pSession->pTable);
227237 sqlite3_free(pSession);
227244 sqlite3_session *pSession,
227248 pSession->bAutoAttach = 1;
227249 pSession->pFilterCtx = pCtx;
227250 pSession->xTableFilter = xFilter;
227262 sqlite3_session *pSession, /* Session object */
227266 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
227269 pSession->bAutoAttach = 1;
227277 for(pTab=pSession->pTable; pTab; pTab=pTab->pNext){
227284 pTab = (SessionTable*)sessionMalloc64(pSession, nByte);
227297 for(ppTab=&pSession->pTable; *ppTab; ppTab=&(*ppTab)->pNext);
227303 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
227850 sqlite3_session *pSession, /* Session object */
227857 sqlite3 *db = pSession->db; /* Source database handle */
227874 if( pSession->rc ) return pSession->rc;
227875 rc = sqlite3_exec(pSession->db, "SAVEPOINT changeset", 0, 0, 0);
227880 for(pTab=pSession->pTable; rc==SQLITE_OK && pTab; pTab=pTab->pNext){
227890 rc = sessionReinitTable(pSession, pTab);
227892 rc = sessionUpdateChanges(pSession, pTab);
227900 rc = sessionSelectStmt(db, 0, pSession->zDb,
227977 sqlite3_session *pSession, /* Session object */
227984 rc = sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset, ppChangeset);
227986 || pSession->bEnableSize==0 || *pnChangeset<=pSession->nMaxChangesetSize
227995 sqlite3_session *pSession,
228000 return sessionGenerateChangeset(pSession, 0, xOutput, pOut, 0, 0);
228007 sqlite3_session *pSession,
228012 return sessionGenerateChangeset(pSession, 1, xOutput, pOut, 0, 0);
228023 sqlite3_session *pSession, /* Session object */
228028 return sessionGenerateChangeset(pSession, 1, 0, 0, pnPatchset, ppPatchset);
228034 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable){
228036 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
228038 pSession->bEnable = bEnable;
228040 ret = pSession->bEnable;
228041 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
228048 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect){
228050 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
228052 pSession->bIndirect = bIndirect;
228054 ret = pSession->bIndirect;
228055 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
228063 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession){
228067 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
228068 for(pTab=pSession->pTable; pTab && ret==0; pTab=pTab->pNext){
228071 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
228079 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession){
228080 return pSession->nMalloc;
228086 SQLITE_API int sqlite3session_object_config(sqlite3_session *pSession, int op, void *pArg){
228092 if( pSession->pTable ){
228095 pSession->bEnableSize = (iArg!=0);
228098 *(int*)pArg = pSession->bEnableSize;
228105 if( pSession->pTable ){
228108 pSession->bImplicitPK = (iArg!=0);
228111 *(int*)pArg = pSession->bImplicitPK;
228125 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession){
228126 return pSession->nMaxChangesetSize;