Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1357)

Side by Side Diff: sql/connection.h

Issue 9005036: [sql] WARN_UNUSED_RESULT on Execute(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SQL_CONNECTION_H_ 5 #ifndef SQL_CONNECTION_H_
6 #define SQL_CONNECTION_H_ 6 #define SQL_CONNECTION_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
11 #include <string> 11 #include <string>
12 12
13 #include "base/basictypes.h" 13 #include "base/basictypes.h"
14 #include "base/compiler_specific.h"
14 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
15 #include "base/time.h" 16 #include "base/time.h"
16 #include "sql/sql_export.h" 17 #include "sql/sql_export.h"
17 18
18 class FilePath; 19 class FilePath;
19 struct sqlite3; 20 struct sqlite3;
20 struct sqlite3_stmt; 21 struct sqlite3_stmt;
21 22
22 namespace sql { 23 namespace sql {
23 24
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 // before calling Open(). If not set, the default is to ignore errors on 143 // before calling Open(). If not set, the default is to ignore errors on
143 // release and assert on debug builds. 144 // release and assert on debug builds.
144 void set_error_delegate(ErrorDelegate* delegate) { 145 void set_error_delegate(ErrorDelegate* delegate) {
145 error_delegate_ = delegate; 146 error_delegate_ = delegate;
146 } 147 }
147 148
148 // Initialization ------------------------------------------------------------ 149 // Initialization ------------------------------------------------------------
149 150
150 // Initializes the SQL connection for the given file, returning true if the 151 // Initializes the SQL connection for the given file, returning true if the
151 // file could be opened. You can call this or OpenInMemory. 152 // file could be opened. You can call this or OpenInMemory.
152 bool Open(const FilePath& path); 153 bool Open(const FilePath& path) WARN_UNUSED_RESULT;
153 154
154 // Initializes the SQL connection for a temporary in-memory database. There 155 // Initializes the SQL connection for a temporary in-memory database. There
155 // will be no associated file on disk, and the initial database will be 156 // will be no associated file on disk, and the initial database will be
156 // empty. You can call this or Open. 157 // empty. You can call this or Open.
157 bool OpenInMemory(); 158 bool OpenInMemory() WARN_UNUSED_RESULT;
158 159
159 // Returns trie if the database has been successfully opened. 160 // Returns trie if the database has been successfully opened.
160 bool is_open() const { return !!db_; } 161 bool is_open() const { return !!db_; }
161 162
162 // Closes the database. This is automatically performed on destruction for 163 // Closes the database. This is automatically performed on destruction for
163 // you, but this allows you to close the database early. You must not call 164 // you, but this allows you to close the database early. You must not call
164 // any other functions after closing it. It is permissable to call Close on 165 // any other functions after closing it. It is permissable to call Close on
165 // an uninitialized or already-closed database. 166 // an uninitialized or already-closed database.
166 void Close(); 167 void Close();
167 168
(...skipping 29 matching lines...) Expand all
197 198
198 // Returns the current transaction nesting, which will be 0 if there are 199 // Returns the current transaction nesting, which will be 0 if there are
199 // no open transactions. 200 // no open transactions.
200 int transaction_nesting() const { return transaction_nesting_; } 201 int transaction_nesting() const { return transaction_nesting_; }
201 202
202 // Statements ---------------------------------------------------------------- 203 // Statements ----------------------------------------------------------------
203 204
204 // Executes the given SQL string, returning true on success. This is 205 // Executes the given SQL string, returning true on success. This is
205 // normally used for simple, 1-off statements that don't take any bound 206 // normally used for simple, 1-off statements that don't take any bound
206 // parameters and don't return any data (e.g. CREATE TABLE). 207 // parameters and don't return any data (e.g. CREATE TABLE).
208 //
207 // This will DCHECK if the |sql| contains errors. 209 // This will DCHECK if the |sql| contains errors.
208 bool Execute(const char* sql); 210 //
211 // Do not use ignore_result() to ignore all errors. Use
212 // ExecuteAndReturnErrorCode() and ignore only specific errors.
213 bool Execute(const char* sql) WARN_UNUSED_RESULT;
209 214
210 // Like Execute(), but returns the error code given by SQLite. 215 // Like Execute(), but returns the error code given by SQLite.
211 int ExecuteAndReturnErrorCode(const char* sql); 216 int ExecuteAndReturnErrorCode(const char* sql) WARN_UNUSED_RESULT;
212 217
213 // Returns true if we have a statement with the given identifier already 218 // Returns true if we have a statement with the given identifier already
214 // cached. This is normally not necessary to call, but can be useful if the 219 // cached. This is normally not necessary to call, but can be useful if the
215 // caller has to dynamically build up SQL to avoid doing so if it's already 220 // caller has to dynamically build up SQL to avoid doing so if it's already
216 // cached. 221 // cached.
217 bool HasCachedStatement(const StatementID& id) const; 222 bool HasCachedStatement(const StatementID& id) const;
218 223
219 // Returns a statement for the given SQL using the statement cache. It can 224 // Returns a statement for the given SQL using the statement cache. It can
220 // take a nontrivial amount of work to parse and compile a statement, so 225 // take a nontrivial amount of work to parse and compile a statement, so
221 // keeping commonly-used ones around for future use is important for 226 // keeping commonly-used ones around for future use is important for
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 void StatementRefDeleted(StatementRef* ref); 358 void StatementRefDeleted(StatementRef* ref);
354 359
355 // Frees all cached statements from statement_cache_. 360 // Frees all cached statements from statement_cache_.
356 void ClearCache(); 361 void ClearCache();
357 362
358 // Called by Statement objects when an sqlite function returns an error. 363 // Called by Statement objects when an sqlite function returns an error.
359 // The return value is the error code reflected back to client code. 364 // The return value is the error code reflected back to client code.
360 int OnSqliteError(int err, Statement* stmt); 365 int OnSqliteError(int err, Statement* stmt);
361 366
362 // Like |Execute()|, but retries if the database is locked. 367 // Like |Execute()|, but retries if the database is locked.
363 bool ExecuteWithTimeout(const char* sql, base::TimeDelta ms_timeout); 368 bool ExecuteWithTimeout(const char* sql, base::TimeDelta ms_timeout)
369 WARN_UNUSED_RESULT;
364 370
365 // The actual sqlite database. Will be NULL before Init has been called or if 371 // The actual sqlite database. Will be NULL before Init has been called or if
366 // Init resulted in an error. 372 // Init resulted in an error.
367 sqlite3* db_; 373 sqlite3* db_;
368 374
369 // Parameters we'll configure in sqlite before doing anything else. Zero means 375 // Parameters we'll configure in sqlite before doing anything else. Zero means
370 // use the default value. 376 // use the default value.
371 int page_size_; 377 int page_size_;
372 int cache_size_; 378 int cache_size_;
373 bool exclusive_locking_; 379 bool exclusive_locking_;
(...skipping 21 matching lines...) Expand all
395 // This object handles errors resulting from all forms of executing sqlite 401 // This object handles errors resulting from all forms of executing sqlite
396 // commands or statements. It can be null which means default handling. 402 // commands or statements. It can be null which means default handling.
397 scoped_refptr<ErrorDelegate> error_delegate_; 403 scoped_refptr<ErrorDelegate> error_delegate_;
398 404
399 DISALLOW_COPY_AND_ASSIGN(Connection); 405 DISALLOW_COPY_AND_ASSIGN(Connection);
400 }; 406 };
401 407
402 } // namespace sql 408 } // namespace sql
403 409
404 #endif // SQL_CONNECTION_H_ 410 #endif // SQL_CONNECTION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698