# # patch "ChangeLog" # from [18533a8e1477cb1e752ef1eae31ea4cdb120254c] # to [5b85ee85684e387ff169390de122f5d1c77f6b09] # # patch "database.cc" # from [a860ce3c2fff23bc6d4f96e25d3babf73e8dc87d] # to [be4bc4ef67ffb1a7fc1c315bddc6de38cefe68e2] # --- ChangeLog +++ ChangeLog @@ -1,5 +1,9 @@ 2005-07-16 Nathaniel Smith + * database.cc (assert_sqlite3_ok): Remove dead function. + +2005-07-16 Nathaniel Smith + * app_state.cc (require_working_copy): Oops, make it compile. 2005-07-16 Nathaniel Smith --- database.cc +++ database.cc @@ -545,151 +545,6 @@ } } -static void -assert_sqlite3_ok(int res, char const * errmsg, string const & ctx = "") -{ - if (res == SQLITE_OK && !errmsg) - { - // the only point of return - return; - } - - bool internal_error = false; - string err_desc; - - // first we handle "external" errors - switch (res) - { - case SQLITE_PERM: - err_desc = "Access permission denied"; - break; - - case SQLITE_READONLY: - err_desc = "Attempt to write a readonly database"; - break; - - case SQLITE_IOERR: - err_desc = "Some kind of disk I/O error occurred"; - break; - - case SQLITE_CORRUPT: - err_desc = "The database disk image is malformed"; - break; - - case SQLITE_FULL: - err_desc = "Insertion failed because database (or filesystem) is full"; - break; - - case SQLITE_CANTOPEN: - err_desc = "Unable to open the database file"; - break; - - // fallthrough for internal errors - default: - internal_error = true; - } - - if (!internal_error) - { - if (errmsg) - err_desc = errmsg; - - // ctx is ignored, since the error is most likely unrelated to the - // query - E(false, F("sqlite error: %s") % err_desc); - } - - // ... and now we handle the internal errors - switch (res) - { - - case SQLITE_OK: - I(errmsg); - err_desc = errmsg; - break; - - case SQLITE_ERROR: - err_desc = "SQL error or missing database"; - break; - - case SQLITE_INTERNAL: - err_desc = "An internal logic error in SQLite"; - break; - - case SQLITE_ABORT: - err_desc = "Callback routine requested an abort"; - break; - - case SQLITE_BUSY: - // TODO: handle this more gracefully in calling functions, - // then perhaps it should be an external error? - err_desc = "The database file is locked"; - break; - - case SQLITE_LOCKED: - // TODO: see SQLITE_BUSY comment - err_desc = "A table in the database is locked"; - break; - - case SQLITE_NOMEM: - err_desc = "A malloc() failed"; - break; - - case SQLITE_INTERRUPT: - err_desc = "Operation terminated by sqlite3_interrupt()"; - break; - - case SQLITE_NOTFOUND: - err_desc = "(Internal Only) Table or record not found"; - break; - - case SQLITE_PROTOCOL: - err_desc = "database lock protocol error"; - break; - - case SQLITE_EMPTY: - err_desc = "(Internal Only) database table is empty"; - break; - - case SQLITE_SCHEMA: - err_desc = "The database schema changed"; - break; - - case SQLITE_TOOBIG: - err_desc = "Too much data for one row of a table"; - break; - - case SQLITE_CONSTRAINT: - err_desc = "Abort due to contraint violation"; - break; - - case SQLITE_MISMATCH: - err_desc = "Data type mismatch"; - break; - - case SQLITE_MISUSE: - err_desc = "Library used incorrectly"; - break; - - case SQLITE_NOLFS: - err_desc = "Uses OS features not supported on host"; - break; - - case SQLITE_AUTH: - err_desc = "Authorization denied"; - break; - - default: - err_desc = string("Unknown DB result code: ") + lexical_cast(res); - break; - } - - if (errmsg) - err_desc = errmsg; - - throw oops(ctx + "sqlite error: " + err_desc); -} - void database::execute(char const * query, ...) {