Lines Matching refs:pSession
11048 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
11069 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable);
11099 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect);
11160 sqlite3_session *pSession, /* Session object */
11175 sqlite3_session *pSession, /* Session object */
11289 sqlite3_session *pSession, /* Session object */
11352 sqlite3_session *pSession,
11389 sqlite3_session *pSession, /* Session object */
11409 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession);
12556 sqlite3_session *pSession,
12561 sqlite3_session *pSession,
202033 sqlite3_session *pSession, /* Session object that owns pTab */
202043 assert( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) );
202051 rc = pSession->hook.xNew(pSession->hook.pCtx, i, &pVal);
202053 rc = pSession->hook.xOld(pSession->hook.pCtx, i, &pVal);
202365 sqlite3_session *pSession, /* Session object that owns SessionTable */
202389 rc = pSession->hook.xNew(pSession->hook.pCtx, iCol, &pVal);
202392 rc = pSession->hook.xOld(pSession->hook.pCtx, iCol, &pVal);
202619 static int sessionInitTable(sqlite3_session *pSession, SessionTable *pTab){
202623 pSession->rc = sessionTableInfo(pSession->db, pSession->zDb,
202626 if( pSession->rc==SQLITE_OK ){
202639 return (pSession->rc || pTab->abPK==0);
202651 sqlite3_session *pSession;
202658 pVal = p->pSession->pZeroBlob;
202668 pVal = p->pSession->pZeroBlob;
202693 sqlite3_session *pSession, /* Session object pTab is attached to */
202701 if( pSession->rc ) return;
202704 if( sessionInitTable(pSession, pTab) ) return;
202708 if( pTab->nCol!=pSession->hook.xCount(pSession->hook.pCtx) ){
202709 pSession->rc = SQLITE_SCHEMA;
202715 pSession->rc = SQLITE_NOMEM;
202720 stat1.hook = pSession->hook;
202721 stat1.pSession = pSession;
202722 pSession->hook.pCtx = (void*)&stat1;
202723 pSession->hook.xNew = sessionStat1New;
202724 pSession->hook.xOld = sessionStat1Old;
202725 pSession->hook.xCount = sessionStat1Count;
202726 pSession->hook.xDepth = sessionStat1Depth;
202727 if( pSession->pZeroBlob==0 ){
202734 pSession->pZeroBlob = p;
202741 rc = sessionPreupdateHash(pSession, pTab, op==SQLITE_INSERT, &iHash, &bNull);
202748 if( sessionPreupdateEqual(pSession, pTab, pC, op) ) break;
202767 TESTONLY(int trc = ) pSession->hook.xOld(pSession->hook.pCtx, i, &p);
202770 TESTONLY(int trc = ) pSession->hook.xNew(pSession->hook.pCtx, i, &p);
202798 pSession->hook.xOld(pSession->hook.pCtx, i, &p);
202800 pSession->hook.xNew(pSession->hook.pCtx, i, &p);
202806 if( pSession->bIndirect || pSession->hook.xDepth(pSession->hook.pCtx) ){
202817 if( pSession->hook.xDepth(pSession->hook.pCtx)==0
202818 && pSession->bIndirect==0
202828 pSession->hook = stat1.hook;
202831 pSession->rc = rc;
202836 sqlite3_session *pSession,
202845 for(pRet=pSession->pTable; pRet; pRet=pRet->pNext){
202849 if( pRet==0 && pSession->bAutoAttach ){
202852 if( pSession->xTableFilter==0
202853 || pSession->xTableFilter(pSession->pFilterCtx, zName)
202855 rc = sqlite3session_attach(pSession, zName);
202857 for(pRet=pSession->pTable; pRet->pNext; pRet=pRet->pNext);
202880 sqlite3_session *pSession;
202885 for(pSession=(sqlite3_session *)pCtx; pSession; pSession=pSession->pNext){
202891 if( pSession->bEnable==0 ) continue;
202892 if( pSession->rc ) continue;
202893 if( sqlite3_strnicmp(zDb, pSession->zDb, nDb+1) ) continue;
202895 pSession->rc = sessionFindTable(pSession, zName, &pTab);
202897 assert( pSession->rc==SQLITE_OK );
202898 sessionPreupdateOneChange(op, pSession, pTab);
202900 sessionPreupdateOneChange(SQLITE_INSERT, pSession, pTab);
202927 sqlite3_session *pSession
202929 pSession->hook.pCtx = (void*)pSession->db;
202930 pSession->hook.xOld = sessionPreupdateOld;
202931 pSession->hook.xNew = sessionPreupdateNew;
202932 pSession->hook.xCount = sessionPreupdateCount;
202933 pSession->hook.xDepth = sessionPreupdateDepth;
202968 sqlite3_session *pSession,
202971 pSession->hook.pCtx = (void*)pDiffCtx;
202972 pSession->hook.xOld = sessionDiffOld;
202973 pSession->hook.xNew = sessionDiffNew;
202974 pSession->hook.xCount = sessionDiffCount;
202975 pSession->hook.xDepth = sessionDiffDepth;
203050 sqlite3_session *pSession,
203063 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
203065 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
203069 sessionPreupdateOneChange(op, pSession, pTab);
203080 sqlite3_session *pSession,
203088 pSession->zDb, zFrom, pTab->zName, pTab->azCol, pTab->abPK
203095 pSession->zDb, pTab->zName, zFrom, pTab->zName, zExpr, zExpr2
203101 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
203104 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
203108 sessionPreupdateOneChange(SQLITE_UPDATE, pSession, pTab);
203120 sqlite3_session *pSession,
203125 const char *zDb = pSession->zDb;
203126 int rc = pSession->rc;
203130 sessionDiffHooks(pSession, &d);
203132 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
203136 sqlite3 *db = pSession->db;
203140 rc = sessionFindTable(pSession, zTbl, &pTo);
203142 if( sessionInitTable(pSession, pTo) ){
203143 rc = pSession->rc;
203188 rc = sessionDiffFindNew(SQLITE_INSERT, pSession, pTo, zDb, zFrom, zExpr);
203193 rc = sessionDiffFindNew(SQLITE_DELETE, pSession, pTo, zFrom, zDb, zExpr);
203198 rc = sessionDiffFindModified(pSession, pTo, zFrom, zExpr);
203205 sessionPreupdateHooks(pSession);
203206 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
203276 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession){
203277 sqlite3 *db = pSession->db;
203286 if( (*pp)==pSession ){
203293 sqlite3ValueFree(pSession->pZeroBlob);
203297 sessionDeleteTable(pSession->pTable);
203300 sqlite3_free(pSession);
203307 sqlite3_session *pSession,
203311 pSession->bAutoAttach = 1;
203312 pSession->pFilterCtx = pCtx;
203313 pSession->xTableFilter = xFilter;
203325 sqlite3_session *pSession, /* Session object */
203329 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
203332 pSession->bAutoAttach = 1;
203340 for(pTab=pSession->pTable; pTab; pTab=pTab->pNext){
203359 for(ppTab=&pSession->pTable; *ppTab; ppTab=&(*ppTab)->pNext);
203365 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
203903 sqlite3_session *pSession, /* Session object */
203910 sqlite3 *db = pSession->db; /* Source database handle */
203925 if( pSession->rc ) return pSession->rc;
203926 rc = sqlite3_exec(pSession->db, "SAVEPOINT changeset", 0, 0, 0);
203931 for(pTab=pSession->pTable; rc==SQLITE_OK && pTab; pTab=pTab->pNext){
203943 rc = sessionTableInfo(db, pSession->zDb, zName, &nCol, 0, &azCol, &abPK);
203954 db, pSession->zDb, zName, nCol, azCol, abPK, &pSel);
204029 sqlite3_session *pSession, /* Session object */
204033 return sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset, ppChangeset);
204040 sqlite3_session *pSession,
204044 return sessionGenerateChangeset(pSession, 0, xOutput, pOut, 0, 0);
204051 sqlite3_session *pSession,
204055 return sessionGenerateChangeset(pSession, 1, xOutput, pOut, 0, 0);
204066 sqlite3_session *pSession, /* Session object */
204070 return sessionGenerateChangeset(pSession, 1, 0, 0, pnPatchset, ppPatchset);
204076 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable){
204078 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
204080 pSession->bEnable = bEnable;
204082 ret = pSession->bEnable;
204083 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
204090 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect){
204092 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
204094 pSession->bIndirect = bIndirect;
204096 ret = pSession->bIndirect;
204097 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
204105 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession){
204109 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
204110 for(pTab=pSession->pTable; pTab && ret==0; pTab=pTab->pNext){
204113 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));