Lines Matching refs:pSession

11315 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
11381 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable);
11411 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect);
11472 sqlite3_session *pSession, /* Session object */
11487 sqlite3_session *pSession, /* Session object */
11601 sqlite3_session *pSession, /* Session object */
11620 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession);
11680 sqlite3_session *pSession,
11717 sqlite3_session *pSession, /* Session object */
11737 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession);
11745 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession);
12967 sqlite3_session *pSession,
12972 sqlite3_session *pSession,
223505 static void *sessionMalloc64(sqlite3_session *pSession, i64 nByte){
223507 if( pSession ) pSession->nMalloc += sqlite3_msize(pRet);
223516 static void sessionFree(sqlite3_session *pSession, void *pFree){
223517 if( pSession ) pSession->nMalloc -= sqlite3_msize(pFree);
223577 sqlite3_session *pSession, /* Session object that owns pTab */
223588 assert( pTab->nCol-1==pSession->hook.xCount(pSession->hook.pCtx) );
223592 assert( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) );
223600 rc = pSession->hook.xNew(pSession->hook.pCtx, i, &pVal);
223602 rc = pSession->hook.xOld(pSession->hook.pCtx, i, &pVal);
223917 sqlite3_session *pSession, /* Session object that owns SessionTable */
223947 rc = pSession->hook.xNew(pSession->hook.pCtx, iCol, &pVal);
223950 rc = pSession->hook.xOld(pSession->hook.pCtx, iCol, &pVal);
224003 sqlite3_session *pSession, /* For memory accounting. May be NULL */
224013 pSession, sizeof(SessionChange*) * nNew
224035 sessionFree(pSession, pTab->apChange);
224070 sqlite3_session *pSession, /* For memory accounting. May be NULL */
224145 pAlloc = sessionMalloc64(pSession, nByte);
224205 sessionFree(pSession, azCol);
224224 sqlite3_session *pSession, /* Optional session handle */
224234 rc = sessionTableInfo(pSession, db, zDb,
224236 ((pSession==0 || pSession->bImplicitPK) ? &pTab->bRowid : 0)
224250 if( pSession && pSession->bEnableSize ){
224251 pSession->nMaxChangesetSize += (
224258 if( pSession ){
224259 pSession->rc = rc;
224268 static int sessionReinitTable(sqlite3_session *pSession, SessionTable *pTab){
224275 assert( pSession->rc==SQLITE_OK );
224277 pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb,
224279 (pSession->bImplicitPK ? &bRowid : 0)
224281 if( pSession->rc==SQLITE_OK ){
224283 pSession->rc = SQLITE_SCHEMA;
224290 pSession->rc = SQLITE_SCHEMA;
224293 pSession->rc = SQLITE_SCHEMA;
224297 if( pSession->rc==SQLITE_OK ){
224305 if( pSession->bEnableSize ){
224306 pSession->nMaxChangesetSize += (nCol - nOldCol);
224307 pSession->nMaxChangesetSize += sessionVarintLen(nCol);
224308 pSession->nMaxChangesetSize -= sessionVarintLen(nOldCol);
224314 return pSession->rc;
224323 sqlite3_session *pSession, /* For memory accounting */
224354 pNew = sessionMalloc64(pSession, nByte);
224403 sessionFree(pSession, pOld);
224407 if( pSession ){
224408 pSession->nMaxChangesetSize += nIncr;
224544 static int sessionUpdateChanges(sqlite3_session *pSession, SessionTable *pTab){
224546 int rc = pSession->rc;
224548 rc = sessionPrepareDfltStmt(pSession->db, pTab, &pStmt);
224555 sessionUpdateOneChange(pSession, &rc, pp, pTab->nCol, pStmt);
224561 pSession->rc = rc;
224563 if( pSession->rc==SQLITE_OK ) pSession->rc = rc;
224564 return pSession->rc;
224576 sqlite3_session *pSession;
224583 pVal = p->pSession->pZeroBlob;
224593 pVal = p->pSession->pZeroBlob;
224609 sqlite3_session *pSession, /* Session object pTab is attached to */
224620 pSession->hook.xNew(pSession->hook.pCtx, ii, &p);
224626 if( sqlite3_preupdate_blobwrite(pSession->db)>=0 ){
224641 pSession->hook.xNew(pSession->hook.pCtx, ii-pTab->bRowid, &p);
224705 pSession->nMaxChangesetSize += nIncr;
224721 sqlite3_session *pSession, /* Session object pTab is attached to */
224730 if( pSession->rc ) return;
224733 if( sessionInitTable(pSession, pTab, pSession->db, pSession->zDb) ) return;
224737 nExpect = pSession->hook.xCount(pSession->hook.pCtx);
224739 if( sessionReinitTable(pSession, pTab) ) return;
224740 if( sessionUpdateChanges(pSession, pTab) ) return;
224743 pSession->rc = SQLITE_SCHEMA;
224748 if( sessionGrowHash(pSession, 0, pTab) ){
224749 pSession->rc = SQLITE_NOMEM;
224754 stat1.hook = pSession->hook;
224755 stat1.pSession = pSession;
224756 pSession->hook.pCtx = (void*)&stat1;
224757 pSession->hook.xNew = sessionStat1New;
224758 pSession->hook.xOld = sessionStat1Old;
224759 pSession->hook.xCount = sessionStat1Count;
224760 pSession->hook.xDepth = sessionStat1Depth;
224761 if( pSession->pZeroBlob==0 ){
224768 pSession->pZeroBlob = p;
224776 pSession, iRowid, pTab, op==SQLITE_INSERT, &iHash, &bNull
224784 if( sessionPreupdateEqual(pSession, iRowid, pTab, pC, op) ) break;
224802 TESTONLY(int trc = ) pSession->hook.xOld(pSession->hook.pCtx, i, &p);
224805 TESTONLY(int trc = ) pSession->hook.xNew(pSession->hook.pCtx, i, &p);
224819 pC = (SessionChange*)sessionMalloc64(pSession, nByte);
224841 pSession->hook.xOld(pSession->hook.pCtx, i, &p);
224843 pSession->hook.xNew(pSession->hook.pCtx, i, &p);
224849 if( pSession->bIndirect || pSession->hook.xDepth(pSession->hook.pCtx) ){
224861 if( pSession->hook.xDepth(pSession->hook.pCtx)==0
224862 && pSession->bIndirect==0
224869 if( pSession->bEnableSize ){
224870 rc = sessionUpdateMaxSize(op, pSession, pTab, pC);
224878 pSession->hook = stat1.hook;
224881 pSession->rc = rc;
224886 sqlite3_session *pSession,
224895 for(pRet=pSession->pTable; pRet; pRet=pRet->pNext){
224899 if( pRet==0 && pSession->bAutoAttach ){
224902 if( pSession->xTableFilter==0
224903 || pSession->xTableFilter(pSession->pFilterCtx, zName)
224905 rc = sqlite3session_attach(pSession, zName);
224907 pRet = pSession->pTable;
224934 sqlite3_session *pSession;
224941 for(pSession=(sqlite3_session *)pCtx; pSession; pSession=pSession->pNext){
224947 if( pSession->bEnable==0 ) continue;
224948 if( pSession->rc ) continue;
224949 if( sqlite3_strnicmp(zDb, pSession->zDb, nDb+1) ) continue;
224951 pSession->rc = sessionFindTable(pSession, zName, &pTab);
224953 assert( pSession->rc==SQLITE_OK );
224955 sessionPreupdateOneChange(op, iKey1, pSession, pTab);
224957 sessionPreupdateOneChange(SQLITE_INSERT, iKey2, pSession, pTab);
224984 sqlite3_session *pSession
224986 pSession->hook.pCtx = (void*)pSession->db;
224987 pSession->hook.xOld = sessionPreupdateOld;
224988 pSession->hook.xNew = sessionPreupdateNew;
224989 pSession->hook.xCount = sessionPreupdateCount;
224990 pSession->hook.xDepth = sessionPreupdateDepth;
225027 sqlite3_session *pSession,
225030 pSession->hook.pCtx = (void*)pDiffCtx;
225031 pSession->hook.xOld = sessionDiffOld;
225032 pSession->hook.xNew = sessionDiffNew;
225033 pSession->hook.xCount = sessionDiffCount;
225034 pSession->hook.xDepth = sessionDiffDepth;
225110 sqlite3_session *pSession,
225125 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
225127 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
225133 sessionPreupdateOneChange(op, iRowid, pSession, pTab);
225165 sqlite3_session *pSession,
225173 pSession->zDb, zFrom, pTab->zName, pTab->azCol, pTab->abPK
225178 char *z1 = sessionAllCols(pSession->zDb, pTab);
225182 z1, z2, pSession->zDb, pTab->zName, zFrom, pTab->zName, zExpr, zExpr2
225188 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
225191 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
225196 sessionPreupdateOneChange(SQLITE_UPDATE, iRowid, pSession, pTab);
225210 sqlite3_session *pSession,
225215 const char *zDb = pSession->zDb;
225216 int rc = pSession->rc;
225220 sessionDiffHooks(pSession, &d);
225222 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
225226 sqlite3 *db = pSession->db;
225230 rc = sessionFindTable(pSession, zTbl, &pTo);
225232 if( sessionInitTable(pSession, pTo, pSession->db, pSession->zDb) ){
225233 rc = pSession->rc;
225246 pSession->bImplicitPK ? &bRowid : 0
225281 rc = sessionDiffFindNew(SQLITE_INSERT, pSession, pTo, zDb, zFrom, zExpr);
225286 rc = sessionDiffFindNew(SQLITE_DELETE, pSession, pTo, zFrom, zDb, zExpr);
225291 rc = sessionDiffFindModified(pSession, pTo, zFrom, zExpr);
225298 sessionPreupdateHooks(pSession);
225299 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
225345 static void sessionDeleteTable(sqlite3_session *pSession, SessionTable *pList){
225357 sessionFree(pSession, p);
225361 sessionFree(pSession, (char*)pTab->azCol); /* cast works around VC++ bug */
225362 sessionFree(pSession, pTab->apChange);
225363 sessionFree(pSession, pTab);
225370 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession){
225371 sqlite3 *db = pSession->db;
225380 if( (*pp)==pSession ){
225387 sqlite3ValueFree(pSession->pZeroBlob);
225391 sessionDeleteTable(pSession, pSession->pTable);
225394 sqlite3_free(pSession);
225401 sqlite3_session *pSession,
225405 pSession->bAutoAttach = 1;
225406 pSession->pFilterCtx = pCtx;
225407 pSession->xTableFilter = xFilter;
225419 sqlite3_session *pSession, /* Session object */
225423 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
225426 pSession->bAutoAttach = 1;
225434 for(pTab=pSession->pTable; pTab; pTab=pTab->pNext){
225441 pTab = (SessionTable*)sessionMalloc64(pSession, nByte);
225454 for(ppTab=&pSession->pTable; *ppTab; ppTab=&(*ppTab)->pNext);
225460 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
226007 sqlite3_session *pSession, /* Session object */
226014 sqlite3 *db = pSession->db; /* Source database handle */
226031 if( pSession->rc ) return pSession->rc;
226032 rc = sqlite3_exec(pSession->db, "SAVEPOINT changeset", 0, 0, 0);
226037 for(pTab=pSession->pTable; rc==SQLITE_OK && pTab; pTab=pTab->pNext){
226047 rc = sessionReinitTable(pSession, pTab);
226049 rc = sessionUpdateChanges(pSession, pTab);
226057 rc = sessionSelectStmt(db, 0, pSession->zDb,
226134 sqlite3_session *pSession, /* Session object */
226141 rc = sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset, ppChangeset);
226143 || pSession->bEnableSize==0 || *pnChangeset<=pSession->nMaxChangesetSize
226152 sqlite3_session *pSession,
226157 return sessionGenerateChangeset(pSession, 0, xOutput, pOut, 0, 0);
226164 sqlite3_session *pSession,
226169 return sessionGenerateChangeset(pSession, 1, xOutput, pOut, 0, 0);
226180 sqlite3_session *pSession, /* Session object */
226185 return sessionGenerateChangeset(pSession, 1, 0, 0, pnPatchset, ppPatchset);
226191 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable){
226193 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
226195 pSession->bEnable = bEnable;
226197 ret = pSession->bEnable;
226198 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
226205 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect){
226207 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
226209 pSession->bIndirect = bIndirect;
226211 ret = pSession->bIndirect;
226212 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
226220 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession){
226224 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
226225 for(pTab=pSession->pTable; pTab && ret==0; pTab=pTab->pNext){
226228 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
226236 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession){
226237 return pSession->nMalloc;
226243 SQLITE_API int sqlite3session_object_config(sqlite3_session *pSession, int op, void *pArg){
226249 if( pSession->pTable ){
226252 pSession->bEnableSize = (iArg!=0);
226255 *(int*)pArg = pSession->bEnableSize;
226262 if( pSession->pTable ){
226265 pSession->bImplicitPK = (iArg!=0);
226268 *(int*)pArg = pSession->bImplicitPK;
226282 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession){
226283 return pSession->nMaxChangesetSize;