TryGhost / node-sqlite3

SQLite3 bindings for Node.js
BSD 3-Clause "New" or "Revised" License
6.23k stars 817 forks source link

SQLite Extended Result Code #1733

Open mvuc87 opened 11 months ago

mvuc87 commented 11 months ago

Summary

I am having a report with error message mentioning SQLITE_IOERR. However, I cannot find the exact reason why application fails to use a database.

There are number of possibilities of what could went wrong in case of SQLITE_IOERR. The Extended Result Code List could provide more information about IO errors: https://www.sqlite.org/rescode.html#extended_result_code_list

Proposed implementation

When creating a Database object, provide a verbosity level for SQLite database errors.

For example

const database = new Database(file, {
  mode: OPEN_READWRITE,
  useExtendedResultCode: true
});

useExtendedResultCode has two possible values:

  1. false (default) - primary result code is used
  2. true - extended result code is used