Lines Matching refs:pSession
11042 ** results of attempting to use pSession with any other session module
11049 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
11102 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable);
11132 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect);
11193 sqlite3_session *pSession, /* Session object */
11208 sqlite3_session *pSession, /* Session object */
11322 sqlite3_session *pSession, /* Session object */
11341 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession);
11401 sqlite3_session *pSession,
11438 sqlite3_session *pSession, /* Session object */
11458 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession);
11466 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession);
12618 sqlite3_session *pSession,
12623 sqlite3_session *pSession,
215956 ** pSession is not NULL, increase the sqlite3_session.nMalloc variable
215959 static void *sessionMalloc64(sqlite3_session *pSession, i64 nByte){
215961 if( pSession ) pSession->nMalloc += sqlite3_msize(pRet);
215967 ** call to sessionMalloc64(). If pSession is not NULL, decrease the
215970 static void sessionFree(sqlite3_session *pSession, void *pFree){
215971 if( pSession ) pSession->nMalloc -= sqlite3_msize(pFree);
216031 sqlite3_session *pSession, /* Session object that owns pTab */
216041 assert( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) );
216049 rc = pSession->hook.xNew(pSession->hook.pCtx, i, &pVal);
216051 rc = pSession->hook.xOld(pSession->hook.pCtx, i, &pVal);
216363 sqlite3_session *pSession, /* Session object that owns SessionTable */
216387 rc = pSession->hook.xNew(pSession->hook.pCtx, iCol, &pVal);
216390 rc = pSession->hook.xOld(pSession->hook.pCtx, iCol, &pVal);
216432 ** (part of the session pSession). If a fatal OOM error occurs, set the
216442 sqlite3_session *pSession, /* For memory accounting. May be NULL */
216452 pSession, sizeof(SessionChange*) * nNew
216474 sessionFree(pSession, pTab->apChange);
216508 sqlite3_session *pSession, /* For memory accounting. May be NULL */
216579 pAlloc = sessionMalloc64(pSession, nByte);
216622 sessionFree(pSession, azCol);
216630 ** write to table pTab, part of session pSession. If this is the first
216640 static int sessionInitTable(sqlite3_session *pSession, SessionTable *pTab){
216644 pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb,
216647 if( pSession->rc==SQLITE_OK ){
216659 if( pSession->bEnableSize ){
216660 pSession->nMaxChangesetSize += (
216666 return (pSession->rc || pTab->abPK==0);
216678 sqlite3_session *pSession;
216685 pVal = p->pSession->pZeroBlob;
216695 pVal = p->pSession->pZeroBlob;
216711 sqlite3_session *pSession, /* Session object pTab is attached to */
216721 pSession->hook.xNew(pSession->hook.pCtx, ii, &p);
216727 if( sqlite3_preupdate_blobwrite(pSession->db)>=0 ){
216738 pSession->hook.xNew(pSession->hook.pCtx, ii, &p);
216802 pSession->nMaxChangesetSize += nIncr;
216809 ** change on table pTab (attached to session pSession). The type of change
216817 sqlite3_session *pSession, /* Session object pTab is attached to */
216825 if( pSession->rc ) return;
216828 if( sessionInitTable(pSession, pTab) ) return;
216832 if( pTab->nCol!=pSession->hook.xCount(pSession->hook.pCtx) ){
216833 pSession->rc = SQLITE_SCHEMA;
216838 if( sessionGrowHash(pSession, 0, pTab) ){
216839 pSession->rc = SQLITE_NOMEM;
216844 stat1.hook = pSession->hook;
216845 stat1.pSession = pSession;
216846 pSession->hook.pCtx = (void*)&stat1;
216847 pSession->hook.xNew = sessionStat1New;
216848 pSession->hook.xOld = sessionStat1Old;
216849 pSession->hook.xCount = sessionStat1Count;
216850 pSession->hook.xDepth = sessionStat1Depth;
216851 if( pSession->pZeroBlob==0 ){
216858 pSession->pZeroBlob = p;
216865 rc = sessionPreupdateHash(pSession, pTab, op==SQLITE_INSERT, &iHash, &bNull);
216872 if( sessionPreupdateEqual(pSession, pTab, pC, op) ) break;
216890 TESTONLY(int trc = ) pSession->hook.xOld(pSession->hook.pCtx, i, &p);
216893 TESTONLY(int trc = ) pSession->hook.xNew(pSession->hook.pCtx, i, &p);
216904 pC = (SessionChange *)sessionMalloc64(pSession, nByte);
216921 pSession->hook.xOld(pSession->hook.pCtx, i, &p);
216923 pSession->hook.xNew(pSession->hook.pCtx, i, &p);
216929 if( pSession->bIndirect || pSession->hook.xDepth(pSession->hook.pCtx) ){
216940 if( pSession->hook.xDepth(pSession->hook.pCtx)==0
216941 && pSession->bIndirect==0
216948 if( pSession->bEnableSize ){
216949 rc = sessionUpdateMaxSize(op, pSession, pTab, pC);
216957 pSession->hook = stat1.hook;
216960 pSession->rc = rc;
216965 sqlite3_session *pSession,
216974 for(pRet=pSession->pTable; pRet; pRet=pRet->pNext){
216978 if( pRet==0 && pSession->bAutoAttach ){
216981 if( pSession->xTableFilter==0
216982 || pSession->xTableFilter(pSession->pFilterCtx, zName)
216984 rc = sqlite3session_attach(pSession, zName);
216986 pRet = pSession->pTable;
217013 sqlite3_session *pSession;
217018 for(pSession=(sqlite3_session *)pCtx; pSession; pSession=pSession->pNext){
217024 if( pSession->bEnable==0 ) continue;
217025 if( pSession->rc ) continue;
217026 if( sqlite3_strnicmp(zDb, pSession->zDb, nDb+1) ) continue;
217028 pSession->rc = sessionFindTable(pSession, zName, &pTab);
217030 assert( pSession->rc==SQLITE_OK );
217031 sessionPreupdateOneChange(op, pSession, pTab);
217033 sessionPreupdateOneChange(SQLITE_INSERT, pSession, pTab);
217060 sqlite3_session *pSession
217062 pSession->hook.pCtx = (void*)pSession->db;
217063 pSession->hook.xOld = sessionPreupdateOld;
217064 pSession->hook.xNew = sessionPreupdateNew;
217065 pSession->hook.xCount = sessionPreupdateCount;
217066 pSession->hook.xDepth = sessionPreupdateDepth;
217101 sqlite3_session *pSession,
217104 pSession->hook.pCtx = (void*)pDiffCtx;
217105 pSession->hook.xOld = sessionDiffOld;
217106 pSession->hook.xNew = sessionDiffNew;
217107 pSession->hook.xCount = sessionDiffCount;
217108 pSession->hook.xDepth = sessionDiffDepth;
217183 sqlite3_session *pSession,
217196 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
217198 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
217202 sessionPreupdateOneChange(op, pSession, pTab);
217213 sqlite3_session *pSession,
217221 pSession->zDb, zFrom, pTab->zName, pTab->azCol, pTab->abPK
217228 pSession->zDb, pTab->zName, zFrom, pTab->zName, zExpr, zExpr2
217234 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
217237 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
217241 sessionPreupdateOneChange(SQLITE_UPDATE, pSession, pTab);
217253 sqlite3_session *pSession,
217258 const char *zDb = pSession->zDb;
217259 int rc = pSession->rc;
217263 sessionDiffHooks(pSession, &d);
217265 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
217269 sqlite3 *db = pSession->db;
217273 rc = sessionFindTable(pSession, zTbl, &pTo);
217275 if( sessionInitTable(pSession, pTo) ){
217276 rc = pSession->rc;
217321 rc = sessionDiffFindNew(SQLITE_INSERT, pSession, pTo, zDb, zFrom, zExpr);
217326 rc = sessionDiffFindNew(SQLITE_DELETE, pSession, pTo, zFrom, zDb, zExpr);
217331 rc = sessionDiffFindModified(pSession, pTo, zFrom, zExpr);
217338 sessionPreupdateHooks(pSession);
217339 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
217385 static void sessionDeleteTable(sqlite3_session *pSession, SessionTable *pList){
217397 sessionFree(pSession, p);
217400 sessionFree(pSession, (char*)pTab->azCol); /* cast works around VC++ bug */
217401 sessionFree(pSession, pTab->apChange);
217402 sessionFree(pSession, pTab);
217409 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession){
217410 sqlite3 *db = pSession->db;
217419 if( (*pp)==pSession ){
217426 sqlite3ValueFree(pSession->pZeroBlob);
217430 sessionDeleteTable(pSession, pSession->pTable);
217434 assert( pSession->nMalloc==0 );
217435 sqlite3_free(pSession);
217442 sqlite3_session *pSession,
217446 pSession->bAutoAttach = 1;
217447 pSession->pFilterCtx = pCtx;
217448 pSession->xTableFilter = xFilter;
217460 sqlite3_session *pSession, /* Session object */
217464 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
217467 pSession->bAutoAttach = 1;
217475 for(pTab=pSession->pTable; pTab; pTab=pTab->pNext){
217482 pTab = (SessionTable*)sessionMalloc64(pSession, nByte);
217495 for(ppTab=&pSession->pTable; *ppTab; ppTab=&(*ppTab)->pNext);
217501 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
218056 sqlite3_session *pSession, /* Session object */
218063 sqlite3 *db = pSession->db; /* Source database handle */
218080 if( pSession->rc ) return pSession->rc;
218081 rc = sqlite3_exec(pSession->db, "SAVEPOINT changeset", 0, 0, 0);
218086 for(pTab=pSession->pTable; rc==SQLITE_OK && pTab; pTab=pTab->pNext){
218098 rc = sessionTableInfo(0, db, pSession->zDb, zName, &nCol, 0,&azCol,&abPK);
218109 db, pSession->zDb, zName, nCol, azCol, abPK, &pSel);
218185 sqlite3_session *pSession, /* Session object */
218192 rc = sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset,ppChangeset);
218194 || pSession->bEnableSize==0 || *pnChangeset<=pSession->nMaxChangesetSize
218203 sqlite3_session *pSession,
218208 return sessionGenerateChangeset(pSession, 0, xOutput, pOut, 0, 0);
218215 sqlite3_session *pSession,
218220 return sessionGenerateChangeset(pSession, 1, xOutput, pOut, 0, 0);
218231 sqlite3_session *pSession, /* Session object */
218236 return sessionGenerateChangeset(pSession, 1, 0, 0, pnPatchset, ppPatchset);
218242 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable){
218244 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
218246 pSession->bEnable = bEnable;
218248 ret = pSession->bEnable;
218249 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
218256 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect){
218258 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
218260 pSession->bIndirect = bIndirect;
218262 ret = pSession->bIndirect;
218263 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
218271 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession){
218275 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
218276 for(pTab=pSession->pTable; pTab && ret==0; pTab=pTab->pNext){
218279 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
218287 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession){
218288 return pSession->nMalloc;
218294 SQLITE_API int sqlite3session_object_config(sqlite3_session *pSession, int op, void *pArg){
218300 if( pSession->pTable ){
218303 pSession->bEnableSize = (iArg!=0);
218306 *(int*)pArg = pSession->bEnableSize;
218320 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession){
218321 return pSession->nMaxChangesetSize;