Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | /fiddle: before resetting a db, roll back any transactions (resolves problem reported in forum post 0b41a25d65) and remove an obsolete/broken reference to a long-gone API which could cause initialization to fail prematurely. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ee164ca73cf4151b1a1bf351729afa9b |
User & Date: | stephan 2024-03-05 06:31:37 |
Context
2024-03-05
| ||
07:55 | Update fiddle.make to account for Makefile changes in [178b7d46f9]. (check-in: 7a5d8105 user: stephan tags: trunk) | |
06:31 | /fiddle: before resetting a db, roll back any transactions (resolves problem reported in forum post 0b41a25d65) and remove an obsolete/broken reference to a long-gone API which could cause initialization to fail prematurely. (check-in: ee164ca7 user: stephan tags: trunk) | |
2024-03-04
| ||
18:22 | Fix a compiler warning in date.c. Update makefiles to include all necessary dependencies for building shell.c. (check-in: 178b7d46 user: drh tags: trunk) | |
Changes
Changes to ext/wasm/fiddle/fiddle-worker.js.
︙ | ︙ | |||
162 163 164 165 166 167 168 | stderr("Fatal error initializing sqlite3 shell."); fiddleModule.isDead = true; return false; } stdout("SQLite version", capi.sqlite3_libversion(), capi.sqlite3_sourceid().substr(0,19)); stdout('Welcome to the "fiddle" shell.'); | | < | 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | stderr("Fatal error initializing sqlite3 shell."); fiddleModule.isDead = true; return false; } stdout("SQLite version", capi.sqlite3_libversion(), capi.sqlite3_sourceid().substr(0,19)); stdout('Welcome to the "fiddle" shell.'); if(capi.sqlite3_vfs_find("opfs")){ stdout("\nOPFS is available. To open a persistent db, use:\n\n", " .open file:name?vfs=opfs\n\nbut note that some", "features (e.g. upload) do not yet work with OPFS."); } stdout('\nEnter ".help" for usage hints.'); this.exec([ // initialization commands... '.nullvalue NULL', '.headers on' ].join('\n')); return true; |
︙ | ︙ | |||
313 314 315 316 317 318 319 | stderr("Error installing db",fn+":",e.message); } return; } }; console.warn("Unknown fiddle-worker message type:",ev); }; | | | 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 | stderr("Error installing db",fn+":",e.message); } return; } }; console.warn("Unknown fiddle-worker message type:",ev); }; /** emscripten module for use with build mode -sMODULARIZE. */ const fiddleModule = { print: stdout, printErr: stderr, /** |
︙ | ︙ |
Changes to src/shell.c.in.
︙ | ︙ | |||
12834 12835 12836 12837 12838 12839 12840 | SQLITE_FCNTL_VFS_POINTER, &pVfs); } return pVfs; } /* Only for emcc experimentation purposes. */ sqlite3 * fiddle_db_arg(sqlite3 *arg){ | | | 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 | SQLITE_FCNTL_VFS_POINTER, &pVfs); } return pVfs; } /* Only for emcc experimentation purposes. */ sqlite3 * fiddle_db_arg(sqlite3 *arg){ oputf("fiddle_db_arg(%p)\n", (const void*)arg); return arg; } /* ** Intended to be called via a SharedWorker() while a separate ** SharedWorker() (which manages the wasm module) is performing work ** which should be interrupted. Unfortunately, SharedWorker is not |
︙ | ︙ | |||
12860 12861 12862 12863 12864 12865 12866 | return globalDb ? sqlite3_db_filename(globalDb, zDbName ? zDbName : "main") : NULL; } /* ** Completely wipes out the contents of the currently-opened database | | > > > > > > > > > > | | | 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 | return globalDb ? sqlite3_db_filename(globalDb, zDbName ? zDbName : "main") : NULL; } /* ** Completely wipes out the contents of the currently-opened database ** but leaves its storage intact for reuse. If any transactions are ** active, they are forcibly rolled back. */ void fiddle_reset_db(void){ if( globalDb ){ int rc; while( sqlite3_txn_state(globalDb,0)>0 ){ /* ** Resolve problem reported in ** https://sqlite.org/forum/forumpost/0b41a25d65 */ oputz("Rolling back in-progress transaction.\n"); sqlite3_exec(globalDb,"ROLLBACK", 0, 0, 0); } rc = sqlite3_db_config(globalDb, SQLITE_DBCONFIG_RESET_DATABASE, 1, 0); if( 0==rc ) sqlite3_exec(globalDb, "VACUUM", 0, 0, 0); sqlite3_db_config(globalDb, SQLITE_DBCONFIG_RESET_DATABASE, 0, 0); } } /* ** Uses the current database's VFS xRead to stream the db file's ** contents out to the given callback. The callback gets a single |
︙ | ︙ |