diff options
author | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-26 18:36:58 +0000 |
---|---|---|
committer | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-26 18:36:58 +0000 |
commit | 2f496b403b286431c3ab7bfda2e6fd309b56185e (patch) | |
tree | 5c24e5b84cd997a93740cb5dd9256b86445f21e9 /sql/connection.h | |
parent | 2232483ba47f28646932949acd9fa5db2660b505 (diff) | |
download | chromium_src-2f496b403b286431c3ab7bfda2e6fd309b56185e.zip chromium_src-2f496b403b286431c3ab7bfda2e6fd309b56185e.tar.gz chromium_src-2f496b403b286431c3ab7bfda2e6fd309b56185e.tar.bz2 |
[sql] Log tag with sqlite errors.
Log lines like:
ERROR:connection.cc(1007)] sqlite error 266, errno 5: disk I/O error
would be ever so much more useful if they indicated which database
they were associated with. This logs the histogram tag, which indicates
the logical database (the code which owns this connection). [As
opposed to the filesystem name.]
BUG=none
Review URL: https://codereview.chromium.org/24638002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225518 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sql/connection.h')
-rw-r--r-- | sql/connection.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/connection.h b/sql/connection.h index 5475a84..ec76e3b 100644 --- a/sql/connection.h +++ b/sql/connection.h @@ -516,9 +516,17 @@ class SQL_EXPORT Connection { void StatementRefCreated(StatementRef* ref); void StatementRefDeleted(StatementRef* ref); - // Called by Statement objects when an sqlite function returns an error. - // The return value is the error code reflected back to client code. - int OnSqliteError(int err, Statement* stmt); + // Called when a sqlite function returns an error, which is passed + // as |err|. The return value is the error code to be reflected + // back to client code. |stmt| is non-NULL if the error relates to + // an sql::Statement instance. |sql| is non-NULL if the error + // relates to non-statement sql code (Execute, for instance). Both + // can be NULL, but both should never be set. + // NOTE(shess): Originally, the return value was intended to allow + // error handlers to transparently convert errors into success. + // Unfortunately, transactions are not generally restartable, so + // this did not work out. + int OnSqliteError(int err, Statement* stmt, const char* sql); // Like |Execute()|, but retries if the database is locked. bool ExecuteWithTimeout(const char* sql, base::TimeDelta ms_timeout) |