Lines Matching refs:pSession
10578 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
10631 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable);
10661 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect);
10722 sqlite3_session *pSession, /* Session object */
10737 sqlite3_session *pSession, /* Session object */
10851 sqlite3_session *pSession, /* Session object */
10870 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession);
10930 sqlite3_session *pSession,
10967 sqlite3_session *pSession, /* Session object */
10987 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession);
10995 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession);
12147 sqlite3_session *pSession,
12152 sqlite3_session *pSession,
208897 static void *sessionMalloc64(sqlite3_session *pSession, i64 nByte){
208899 if( pSession ) pSession->nMalloc += sqlite3_msize(pRet);
208908 static void sessionFree(sqlite3_session *pSession, void *pFree){
208909 if( pSession ) pSession->nMalloc -= sqlite3_msize(pFree);
208969 sqlite3_session *pSession, /* Session object that owns pTab */
208979 assert( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) );
208987 rc = pSession->hook.xNew(pSession->hook.pCtx, i, &pVal);
208989 rc = pSession->hook.xOld(pSession->hook.pCtx, i, &pVal);
209301 sqlite3_session *pSession, /* Session object that owns SessionTable */
209325 rc = pSession->hook.xNew(pSession->hook.pCtx, iCol, &pVal);
209328 rc = pSession->hook.xOld(pSession->hook.pCtx, iCol, &pVal);
209380 sqlite3_session *pSession, /* For memory accounting. May be NULL */
209390 pSession, sizeof(SessionChange*) * nNew
209412 sessionFree(pSession, pTab->apChange);
209446 sqlite3_session *pSession, /* For memory accounting. May be NULL */
209517 pAlloc = sessionMalloc64(pSession, nByte);
209560 sessionFree(pSession, azCol);
209578 static int sessionInitTable(sqlite3_session *pSession, SessionTable *pTab){
209582 pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb,
209585 if( pSession->rc==SQLITE_OK ){
209597 if( pSession->bEnableSize ){
209598 pSession->nMaxChangesetSize += (
209604 return (pSession->rc || pTab->abPK==0);
209616 sqlite3_session *pSession;
209623 pVal = p->pSession->pZeroBlob;
209633 pVal = p->pSession->pZeroBlob;
209649 sqlite3_session *pSession, /* Session object pTab is attached to */
209659 pSession->hook.xNew(pSession->hook.pCtx, ii, &p);
209665 if( sqlite3_preupdate_blobwrite(pSession->db)>=0 ){
209676 pSession->hook.xNew(pSession->hook.pCtx, ii, &p);
209740 pSession->nMaxChangesetSize += nIncr;
209755 sqlite3_session *pSession, /* Session object pTab is attached to */
209763 if( pSession->rc ) return;
209766 if( sessionInitTable(pSession, pTab) ) return;
209770 if( pTab->nCol!=pSession->hook.xCount(pSession->hook.pCtx) ){
209771 pSession->rc = SQLITE_SCHEMA;
209776 if( sessionGrowHash(pSession, 0, pTab) ){
209777 pSession->rc = SQLITE_NOMEM;
209782 stat1.hook = pSession->hook;
209783 stat1.pSession = pSession;
209784 pSession->hook.pCtx = (void*)&stat1;
209785 pSession->hook.xNew = sessionStat1New;
209786 pSession->hook.xOld = sessionStat1Old;
209787 pSession->hook.xCount = sessionStat1Count;
209788 pSession->hook.xDepth = sessionStat1Depth;
209789 if( pSession->pZeroBlob==0 ){
209796 pSession->pZeroBlob = p;
209803 rc = sessionPreupdateHash(pSession, pTab, op==SQLITE_INSERT, &iHash, &bNull);
209810 if( sessionPreupdateEqual(pSession, pTab, pC, op) ) break;
209828 TESTONLY(int trc = ) pSession->hook.xOld(pSession->hook.pCtx, i, &p);
209831 TESTONLY(int trc = ) pSession->hook.xNew(pSession->hook.pCtx, i, &p);
209842 pC = (SessionChange *)sessionMalloc64(pSession, nByte);
209859 pSession->hook.xOld(pSession->hook.pCtx, i, &p);
209861 pSession->hook.xNew(pSession->hook.pCtx, i, &p);
209867 if( pSession->bIndirect || pSession->hook.xDepth(pSession->hook.pCtx) ){
209878 if( pSession->hook.xDepth(pSession->hook.pCtx)==0
209879 && pSession->bIndirect==0
209886 if( pSession->bEnableSize ){
209887 rc = sessionUpdateMaxSize(op, pSession, pTab, pC);
209895 pSession->hook = stat1.hook;
209898 pSession->rc = rc;
209903 sqlite3_session *pSession,
209912 for(pRet=pSession->pTable; pRet; pRet=pRet->pNext){
209916 if( pRet==0 && pSession->bAutoAttach ){
209919 if( pSession->xTableFilter==0
209920 || pSession->xTableFilter(pSession->pFilterCtx, zName)
209922 rc = sqlite3session_attach(pSession, zName);
209924 pRet = pSession->pTable;
209951 sqlite3_session *pSession;
209956 for(pSession=(sqlite3_session *)pCtx; pSession; pSession=pSession->pNext){
209962 if( pSession->bEnable==0 ) continue;
209963 if( pSession->rc ) continue;
209964 if( sqlite3_strnicmp(zDb, pSession->zDb, nDb+1) ) continue;
209966 pSession->rc = sessionFindTable(pSession, zName, &pTab);
209968 assert( pSession->rc==SQLITE_OK );
209969 sessionPreupdateOneChange(op, pSession, pTab);
209971 sessionPreupdateOneChange(SQLITE_INSERT, pSession, pTab);
209998 sqlite3_session *pSession
210000 pSession->hook.pCtx = (void*)pSession->db;
210001 pSession->hook.xOld = sessionPreupdateOld;
210002 pSession->hook.xNew = sessionPreupdateNew;
210003 pSession->hook.xCount = sessionPreupdateCount;
210004 pSession->hook.xDepth = sessionPreupdateDepth;
210039 sqlite3_session *pSession,
210042 pSession->hook.pCtx = (void*)pDiffCtx;
210043 pSession->hook.xOld = sessionDiffOld;
210044 pSession->hook.xNew = sessionDiffNew;
210045 pSession->hook.xCount = sessionDiffCount;
210046 pSession->hook.xDepth = sessionDiffDepth;
210121 sqlite3_session *pSession,
210134 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
210136 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
210140 sessionPreupdateOneChange(op, pSession, pTab);
210151 sqlite3_session *pSession,
210159 pSession->zDb, zFrom, pTab->zName, pTab->azCol, pTab->abPK
210166 pSession->zDb, pTab->zName, zFrom, pTab->zName, zExpr, zExpr2
210172 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
210175 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
210179 sessionPreupdateOneChange(SQLITE_UPDATE, pSession, pTab);
210191 sqlite3_session *pSession,
210196 const char *zDb = pSession->zDb;
210197 int rc = pSession->rc;
210201 sessionDiffHooks(pSession, &d);
210203 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
210207 sqlite3 *db = pSession->db;
210211 rc = sessionFindTable(pSession, zTbl, &pTo);
210213 if( sessionInitTable(pSession, pTo) ){
210214 rc = pSession->rc;
210259 rc = sessionDiffFindNew(SQLITE_INSERT, pSession, pTo, zDb, zFrom, zExpr);
210264 rc = sessionDiffFindNew(SQLITE_DELETE, pSession, pTo, zFrom, zDb, zExpr);
210269 rc = sessionDiffFindModified(pSession, pTo, zFrom, zExpr);
210276 sessionPreupdateHooks(pSession);
210277 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
210323 static void sessionDeleteTable(sqlite3_session *pSession, SessionTable *pList){
210335 sessionFree(pSession, p);
210338 sessionFree(pSession, (char*)pTab->azCol); /* cast works around VC++ bug */
210339 sessionFree(pSession, pTab->apChange);
210340 sessionFree(pSession, pTab);
210347 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession){
210348 sqlite3 *db = pSession->db;
210357 if( (*pp)==pSession ){
210364 sqlite3ValueFree(pSession->pZeroBlob);
210368 sessionDeleteTable(pSession, pSession->pTable);
210372 assert( pSession->nMalloc==0 );
210373 sqlite3_free(pSession);
210380 sqlite3_session *pSession,
210384 pSession->bAutoAttach = 1;
210385 pSession->pFilterCtx = pCtx;
210386 pSession->xTableFilter = xFilter;
210398 sqlite3_session *pSession, /* Session object */
210402 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
210405 pSession->bAutoAttach = 1;
210413 for(pTab=pSession->pTable; pTab; pTab=pTab->pNext){
210420 pTab = (SessionTable*)sessionMalloc64(pSession, nByte);
210433 for(ppTab=&pSession->pTable; *ppTab; ppTab=&(*ppTab)->pNext);
210439 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
210994 sqlite3_session *pSession, /* Session object */
211001 sqlite3 *db = pSession->db; /* Source database handle */
211018 if( pSession->rc ) return pSession->rc;
211019 rc = sqlite3_exec(pSession->db, "SAVEPOINT changeset", 0, 0, 0);
211024 for(pTab=pSession->pTable; rc==SQLITE_OK && pTab; pTab=pTab->pNext){
211036 rc = sessionTableInfo(0, db, pSession->zDb, zName, &nCol, 0,&azCol,&abPK);
211047 db, pSession->zDb, zName, nCol, azCol, abPK, &pSel);
211123 sqlite3_session *pSession, /* Session object */
211130 rc = sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset,ppChangeset);
211132 || pSession->bEnableSize==0 || *pnChangeset<=pSession->nMaxChangesetSize
211141 sqlite3_session *pSession,
211146 return sessionGenerateChangeset(pSession, 0, xOutput, pOut, 0, 0);
211153 sqlite3_session *pSession,
211158 return sessionGenerateChangeset(pSession, 1, xOutput, pOut, 0, 0);
211169 sqlite3_session *pSession, /* Session object */
211174 return sessionGenerateChangeset(pSession, 1, 0, 0, pnPatchset, ppPatchset);
211180 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable){
211182 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
211184 pSession->bEnable = bEnable;
211186 ret = pSession->bEnable;
211187 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
211194 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect){
211196 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
211198 pSession->bIndirect = bIndirect;
211200 ret = pSession->bIndirect;
211201 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
211209 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession){
211213 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
211214 for(pTab=pSession->pTable; pTab && ret==0; pTab=pTab->pNext){
211217 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
211225 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession){
211226 return pSession->nMalloc;
211232 SQLITE_API int sqlite3session_object_config(sqlite3_session *pSession, int op, void *pArg){
211238 if( pSession->pTable ){
211241 pSession->bEnableSize = (iArg!=0);
211244 *(int*)pArg = pSession->bEnableSize;
211258 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession){
211259 return pSession->nMaxChangesetSize;