summaryrefslogtreecommitdiffstats
path: root/sql/connection.h
diff options
context:
space:
mode:
authorshess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-26 18:36:58 +0000
committershess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-26 18:36:58 +0000
commit2f496b403b286431c3ab7bfda2e6fd309b56185e (patch)
tree5c24e5b84cd997a93740cb5dd9256b86445f21e9 /sql/connection.h
parent2232483ba47f28646932949acd9fa5db2660b505 (diff)
downloadchromium_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.h14
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)