static int echoRollback(sqlite3_vtab *tab){ int rc; echo_vtab *pVtab = (echo_vtab*)tab; /* Ticket #3083 - Only call xRollback if we have previously started ** a transaction */ assert( pVtab->inTransaction ); rc = echoTransactionCall(tab, "xRollback"); pVtab->inTransaction = 0; return rc; }
static int echoCommit(sqlite3_vtab *tab){ echo_vtab *pVtab = (echo_vtab*)tab; int rc; assert( pVtab->inTransaction ); if( simulateVtabError(pVtab, "xCommit") ){ return SQLITE_ERROR; } sqlite3BeginBenignMalloc(); rc = echoTransactionCall(tab, "xCommit"); sqlite3EndBenignMalloc(); pVtab->inTransaction = 0; return rc; }
static int echoCommit(sqlite3_vtab *tab){ echo_vtab *pVtab = (echo_vtab*)tab; int rc; /* Ticket #3083 - Only call xCommit if we have previously started ** a transaction */ assert( pVtab->inTransaction ); if( simulateVtabError(pVtab, "xCommit") ){ return SQLITE_ERROR; } sqlite3BeginBenignMalloc(); rc = echoTransactionCall(tab, "xCommit"); sqlite3EndBenignMalloc(); pVtab->inTransaction = 0; return rc; }
static int echoSync(sqlite3_vtab *tab){ int rc; echo_vtab *pVtab = (echo_vtab *)tab; Tcl_Interp *interp = pVtab->interp; const char *zVal; assert( pVtab->inTransaction ); if( simulateVtabError(pVtab, "xSync") ){ return SQLITE_ERROR; } rc = echoTransactionCall(tab, "xSync"); if( rc==SQLITE_OK ){ zVal = Tcl_GetVar(interp, "echo_module_sync_fail", TCL_GLOBAL_ONLY); if( zVal && 0==strcmp(zVal, pVtab->zTableName) ){ rc = -1; } } return rc; }