Lines Matching refs:pSession

11598 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession);
11664 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable);
11694 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect);
11755 sqlite3_session *pSession, /* Session object */
11770 sqlite3_session *pSession, /* Session object */
11885 sqlite3_session *pSession, /* Session object */
11904 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession);
11965 sqlite3_session *pSession,
12002 sqlite3_session *pSession, /* Session object */
12022 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession);
12030 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession);
13263 sqlite3_session *pSession,
13268 sqlite3_session *pSession,
228604 static void *sessionMalloc64(sqlite3_session *pSession, i64 nByte){
228606 if( pSession ) pSession->nMalloc += sqlite3_msize(pRet);
228615 static void sessionFree(sqlite3_session *pSession, void *pFree){
228616 if( pSession ) pSession->nMalloc -= sqlite3_msize(pFree);
228676 sqlite3_session *pSession, /* Session object that owns pTab */
228686 assert( pTab->nTotalCol==pSession->hook.xCount(pSession->hook.pCtx) );
228699 rc = pSession->hook.xNew(pSession->hook.pCtx, iIdx, &pVal);
228701 rc = pSession->hook.xOld(pSession->hook.pCtx, iIdx, &pVal);
229016 sqlite3_session *pSession, /* Session object that owns SessionTable */
229047 rc = pSession->hook.xNew(pSession->hook.pCtx, iIdx, &pVal);
229050 rc = pSession->hook.xOld(pSession->hook.pCtx, iIdx, &pVal);
229103 sqlite3_session *pSession, /* For memory accounting. May be NULL */
229113 pSession, sizeof(SessionChange*) * nNew
229135 sessionFree(pSession, pTab->apChange);
229170 sqlite3_session *pSession, /* For memory accounting. May be NULL */
229252 pAlloc = sessionMalloc64(pSession, nByte);
229318 sessionFree(pSession, azCol);
229337 sqlite3_session *pSession, /* Optional session handle */
229349 rc = sessionTableInfo(pSession, db, zDb,
229352 ((pSession==0 || pSession->bImplicitPK) ? &pTab->bRowid : 0)
229366 if( pSession && pSession->bEnableSize ){
229367 pSession->nMaxChangesetSize += (
229374 if( pSession ){
229375 pSession->rc = rc;
229384 static int sessionReinitTable(sqlite3_session *pSession, SessionTable *pTab){
229393 assert( pSession->rc==SQLITE_OK );
229395 pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb,
229397 (pSession->bImplicitPK ? &bRowid : 0)
229399 if( pSession->rc==SQLITE_OK ){
229401 pSession->rc = SQLITE_SCHEMA;
229408 pSession->rc = SQLITE_SCHEMA;
229411 pSession->rc = SQLITE_SCHEMA;
229415 if( pSession->rc==SQLITE_OK ){
229425 if( pSession->bEnableSize ){
229426 pSession->nMaxChangesetSize += (nCol - nOldCol);
229427 pSession->nMaxChangesetSize += sessionVarintLen(nCol);
229428 pSession->nMaxChangesetSize -= sessionVarintLen(nOldCol);
229434 return pSession->rc;
229443 sqlite3_session *pSession, /* For memory accounting */
229474 pNew = sessionMalloc64(pSession, nByte);
229523 sessionFree(pSession, pOld);
229527 if( pSession ){
229528 pSession->nMaxChangesetSize += nIncr;
229664 static int sessionUpdateChanges(sqlite3_session *pSession, SessionTable *pTab){
229666 int rc = pSession->rc;
229668 rc = sessionPrepareDfltStmt(pSession->db, pTab, &pStmt);
229675 sessionUpdateOneChange(pSession, &rc, pp, pTab->nCol, pStmt);
229681 pSession->rc = rc;
229683 if( pSession->rc==SQLITE_OK ) pSession->rc = rc;
229684 return pSession->rc;
229696 sqlite3_session *pSession;
229703 pVal = p->pSession->pZeroBlob;
229713 pVal = p->pSession->pZeroBlob;
229729 sqlite3_session *pSession, /* Session object pTab is attached to */
229740 pSession->hook.xNew(pSession->hook.pCtx, pTab->aiIdx[ii], &p);
229746 if( sqlite3_preupdate_blobwrite(pSession->db)>=0 ){
229762 pSession->hook.xNew(pSession->hook.pCtx, iIdx, &p);
229826 pSession->nMaxChangesetSize += nIncr;
229842 sqlite3_session *pSession, /* Session object pTab is attached to */
229851 if( pSession->rc ) return;
229854 if( sessionInitTable(pSession, pTab, pSession->db, pSession->zDb) ) return;
229858 nExpect = pSession->hook.xCount(pSession->hook.pCtx);
229860 if( sessionReinitTable(pSession, pTab) ) return;
229861 if( sessionUpdateChanges(pSession, pTab) ) return;
229864 pSession->rc = SQLITE_SCHEMA;
229869 if( sessionGrowHash(pSession, 0, pTab) ){
229870 pSession->rc = SQLITE_NOMEM;
229875 stat1.hook = pSession->hook;
229876 stat1.pSession = pSession;
229877 pSession->hook.pCtx = (void*)&stat1;
229878 pSession->hook.xNew = sessionStat1New;
229879 pSession->hook.xOld = sessionStat1Old;
229880 pSession->hook.xCount = sessionStat1Count;
229881 pSession->hook.xDepth = sessionStat1Depth;
229882 if( pSession->pZeroBlob==0 ){
229889 pSession->pZeroBlob = p;
229897 pSession, iRowid, pTab, op==SQLITE_INSERT, &iHash, &bNull
229905 if( sessionPreupdateEqual(pSession, iRowid, pTab, pC, op) ) break;
229926 rc = pSession->hook.xOld(pSession->hook.pCtx, iIdx, &p);
229928 TESTONLY(int trc = ) pSession->hook.xNew(pSession->hook.pCtx,iIdx,&p);
229944 pC = (SessionChange*)sessionMalloc64(pSession, nByte);
229967 pSession->hook.xOld(pSession->hook.pCtx, iIdx, &p);
229969 pSession->hook.xNew(pSession->hook.pCtx, iIdx, &p);
229975 if( pSession->bIndirect || pSession->hook.xDepth(pSession->hook.pCtx) ){
229987 if( pSession->hook.xDepth(pSession->hook.pCtx)==0
229988 && pSession->bIndirect==0
229995 if( pSession->bEnableSize ){
229996 rc = sessionUpdateMaxSize(op, pSession, pTab, pC);
230004 pSession->hook = stat1.hook;
230007 pSession->rc = rc;
230012 sqlite3_session *pSession,
230021 for(pRet=pSession->pTable; pRet; pRet=pRet->pNext){
230025 if( pRet==0 && pSession->bAutoAttach ){
230028 if( pSession->xTableFilter==0
230029 || pSession->xTableFilter(pSession->pFilterCtx, zName)
230031 rc = sqlite3session_attach(pSession, zName);
230033 pRet = pSession->pTable;
230060 sqlite3_session *pSession;
230067 for(pSession=(sqlite3_session *)pCtx; pSession; pSession=pSession->pNext){
230073 if( pSession->bEnable==0 ) continue;
230074 if( pSession->rc ) continue;
230075 if( sqlite3_strnicmp(zDb, pSession->zDb, nDb+1) ) continue;
230077 pSession->rc = sessionFindTable(pSession, zName, &pTab);
230079 assert( pSession->rc==SQLITE_OK );
230081 sessionPreupdateOneChange(op, iKey1, pSession, pTab);
230083 sessionPreupdateOneChange(SQLITE_INSERT, iKey2, pSession, pTab);
230110 sqlite3_session *pSession
230112 pSession->hook.pCtx = (void*)pSession->db;
230113 pSession->hook.xOld = sessionPreupdateOld;
230114 pSession->hook.xNew = sessionPreupdateNew;
230115 pSession->hook.xCount = sessionPreupdateCount;
230116 pSession->hook.xDepth = sessionPreupdateDepth;
230153 sqlite3_session *pSession,
230156 pSession->hook.pCtx = (void*)pDiffCtx;
230157 pSession->hook.xOld = sessionDiffOld;
230158 pSession->hook.xNew = sessionDiffNew;
230159 pSession->hook.xCount = sessionDiffCount;
230160 pSession->hook.xDepth = sessionDiffDepth;
230236 sqlite3_session *pSession,
230251 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
230253 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
230259 sessionPreupdateOneChange(op, iRowid, pSession, pTab);
230291 sqlite3_session *pSession,
230299 pSession->zDb, zFrom, pTab->zName, pTab->azCol, pTab->abPK
230304 char *z1 = sessionAllCols(pSession->zDb, pTab);
230308 z1, z2, pSession->zDb, pTab->zName, zFrom, pTab->zName, zExpr, zExpr2
230314 rc = sqlite3_prepare(pSession->db, zStmt, -1, &pStmt, 0);
230317 SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx;
230322 sessionPreupdateOneChange(SQLITE_UPDATE, iRowid, pSession, pTab);
230336 sqlite3_session *pSession,
230341 const char *zDb = pSession->zDb;
230342 int rc = pSession->rc;
230346 sessionDiffHooks(pSession, &d);
230348 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
230352 sqlite3 *db = pSession->db;
230356 pSession->bAutoAttach++;
230357 rc = sessionFindTable(pSession, zTbl, &pTo);
230358 pSession->bAutoAttach--;
230360 if( sessionInitTable(pSession, pTo, pSession->db, pSession->zDb) ){
230361 rc = pSession->rc;
230393 pSession->bImplicitPK ? &bRowid : 0
230436 rc = sessionDiffFindNew(SQLITE_INSERT, pSession, pTo, zDb, zFrom, zExpr);
230441 rc = sessionDiffFindNew(SQLITE_DELETE, pSession, pTo, zFrom, zDb, zExpr);
230446 rc = sessionDiffFindModified(pSession, pTo, zFrom, zExpr);
230453 sessionPreupdateHooks(pSession);
230454 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
230500 static void sessionDeleteTable(sqlite3_session *pSession, SessionTable *pList){
230512 sessionFree(pSession, p);
230516 sessionFree(pSession, (char*)pTab->azCol); /* cast works around VC++ bug */
230517 sessionFree(pSession, pTab->apChange);
230518 sessionFree(pSession, pTab);
230525 SQLITE_API void sqlite3session_delete(sqlite3_session *pSession){
230526 sqlite3 *db = pSession->db;
230535 if( (*pp)==pSession ){
230542 sqlite3ValueFree(pSession->pZeroBlob);
230546 sessionDeleteTable(pSession, pSession->pTable);
230549 sqlite3_free(pSession);
230556 sqlite3_session *pSession,
230560 pSession->bAutoAttach = 1;
230561 pSession->pFilterCtx = pCtx;
230562 pSession->xTableFilter = xFilter;
230574 sqlite3_session *pSession, /* Session object */
230578 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
230581 pSession->bAutoAttach = 1;
230589 for(pTab=pSession->pTable; pTab; pTab=pTab->pNext){
230596 pTab = (SessionTable*)sessionMalloc64(pSession, nByte);
230609 for(ppTab=&pSession->pTable; *ppTab; ppTab=&(*ppTab)->pNext);
230615 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
231172 sqlite3_session *pSession, /* Session object */
231179 sqlite3 *db = pSession->db; /* Source database handle */
231196 if( pSession->rc ) return pSession->rc;
231197 rc = sqlite3_exec(pSession->db, "SAVEPOINT changeset", 0, 0, 0);
231202 for(pTab=pSession->pTable; rc==SQLITE_OK && pTab; pTab=pTab->pNext){
231212 rc = sessionReinitTable(pSession, pTab);
231214 rc = sessionUpdateChanges(pSession, pTab);
231222 rc = sessionSelectStmt(db, 0, pSession->zDb,
231299 sqlite3_session *pSession, /* Session object */
231306 rc = sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset, ppChangeset);
231308 || pSession->bEnableSize==0 || *pnChangeset<=pSession->nMaxChangesetSize
231317 sqlite3_session *pSession,
231322 return sessionGenerateChangeset(pSession, 0, xOutput, pOut, 0, 0);
231329 sqlite3_session *pSession,
231334 return sessionGenerateChangeset(pSession, 1, xOutput, pOut, 0, 0);
231345 sqlite3_session *pSession, /* Session object */
231350 return sessionGenerateChangeset(pSession, 1, 0, 0, pnPatchset, ppPatchset);
231356 SQLITE_API int sqlite3session_enable(sqlite3_session *pSession, int bEnable){
231358 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
231360 pSession->bEnable = bEnable;
231362 ret = pSession->bEnable;
231363 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
231370 SQLITE_API int sqlite3session_indirect(sqlite3_session *pSession, int bIndirect){
231372 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
231374 pSession->bIndirect = bIndirect;
231376 ret = pSession->bIndirect;
231377 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
231385 SQLITE_API int sqlite3session_isempty(sqlite3_session *pSession){
231389 sqlite3_mutex_enter(sqlite3_db_mutex(pSession->db));
231390 for(pTab=pSession->pTable; pTab && ret==0; pTab=pTab->pNext){
231393 sqlite3_mutex_leave(sqlite3_db_mutex(pSession->db));
231401 SQLITE_API sqlite3_int64 sqlite3session_memory_used(sqlite3_session *pSession){
231402 return pSession->nMalloc;
231408 SQLITE_API int sqlite3session_object_config(sqlite3_session *pSession, int op, void *pArg){
231414 if( pSession->pTable ){
231417 pSession->bEnableSize = (iArg!=0);
231420 *(int*)pArg = pSession->bEnableSize;
231427 if( pSession->pTable ){
231430 pSession->bImplicitPK = (iArg!=0);
231433 *(int*)pArg = pSession->bImplicitPK;
231447 SQLITE_API sqlite3_int64 sqlite3session_changeset_size(sqlite3_session *pSession){
231448 return pSession->nMaxChangesetSize;