Use extended SQLite error codes

This commit is contained in:
Eelco Dolstra 2018-04-16 11:37:58 +02:00
parent bd56b5fe3f
commit 3cab639e21
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE

View file

@ -10,6 +10,7 @@ namespace nix {
[[noreturn]] void throwSQLiteError(sqlite3 * db, const FormatOrString & fs)
{
int err = sqlite3_errcode(db);
int exterr = sqlite3_extended_errcode(db);
auto path = sqlite3_db_filename(db, nullptr);
if (!path) path = "(in-memory)";
@ -21,7 +22,7 @@ namespace nix {
: fmt("SQLite database '%s' is busy", path));
}
else
throw SQLiteError("%s: %s (in '%s')", fs.s, sqlite3_errstr(err), path);
throw SQLiteError("%s: %s (in '%s')", fs.s, sqlite3_errstr(exterr), path);
}
SQLite::SQLite(const Path & path)