diff options
| author | Lars Ingebrigtsen | 2021-12-13 05:38:29 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2021-12-13 05:38:29 +0100 |
| commit | c86b86f9a9ee3c42aed9ede794e8c3e19ce35ec5 (patch) | |
| tree | ede100840c61fee9116a117f663f01a6586ad793 /src/sqlite.c | |
| parent | 2f6601054940e698184f4c9c60a47c16e5baa880 (diff) | |
| download | emacs-c86b86f9a9ee3c42aed9ede794e8c3e19ce35ec5.tar.gz emacs-c86b86f9a9ee3c42aed9ede794e8c3e19ce35ec5.zip | |
Introduce a new sqlite-locked-error
* src/sqlite.c (Fsqlite_execute): Use it.
(syms_of_sqlite): Introduce a new error for locked databases so
that we can catch that condition on higher levels.
Diffstat (limited to 'src/sqlite.c')
| -rw-r--r-- | src/sqlite.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/sqlite.c b/src/sqlite.c index d92dcf723c9..38e939cd84a 100644 --- a/src/sqlite.c +++ b/src/sqlite.c | |||
| @@ -400,7 +400,9 @@ Value is the number of affected rows. */) | |||
| 400 | 400 | ||
| 401 | exit: | 401 | exit: |
| 402 | if (errmsg != NULL) | 402 | if (errmsg != NULL) |
| 403 | xsignal1 (Qerror, build_string (errmsg)); | 403 | xsignal1 (ret == SQLITE_LOCKED || ret == SQLITE_BUSY? |
| 404 | Qsqlite_locked_error: Qerror, | ||
| 405 | build_string (errmsg)); | ||
| 404 | 406 | ||
| 405 | return retval; | 407 | return retval; |
| 406 | } | 408 | } |
| @@ -698,8 +700,15 @@ syms_of_sqlite (void) | |||
| 698 | DEFSYM (Qfull, "full"); | 700 | DEFSYM (Qfull, "full"); |
| 699 | #endif | 701 | #endif |
| 700 | defsubr (&Ssqlitep); | 702 | defsubr (&Ssqlitep); |
| 701 | DEFSYM (Qsqlitep, "sqlitep"); | ||
| 702 | defsubr (&Ssqlite_available_p); | 703 | defsubr (&Ssqlite_available_p); |
| 704 | |||
| 705 | DEFSYM (Qsqlite_locked_error, "sqlite-locked-error"); | ||
| 706 | Fput (Qsqlite_locked_error, Qerror_conditions, | ||
| 707 | Fpurecopy (list2 (Qsqlite_locked_error, Qerror))); | ||
| 708 | Fput (Qsqlite_locked_error, Qerror_message, | ||
| 709 | build_pure_c_string ("Database locked")); | ||
| 710 | |||
| 711 | DEFSYM (Qsqlitep, "sqlitep"); | ||
| 703 | DEFSYM (Qfalse, "false"); | 712 | DEFSYM (Qfalse, "false"); |
| 704 | DEFSYM (Qsqlite, "sqlite"); | 713 | DEFSYM (Qsqlite, "sqlite"); |
| 705 | DEFSYM (Qsqlite3, "sqlite3"); | 714 | DEFSYM (Qsqlite3, "sqlite3"); |