| Index: app/sql/connection.cc
|
| ===================================================================
|
| --- app/sql/connection.cc (revision 26110)
|
| +++ app/sql/connection.cc (working copy)
|
| @@ -224,8 +224,10 @@
|
| return new StatementRef(this, stmt);
|
| }
|
|
|
| -bool Connection::DoesTableExist(const char* table_name) {
|
| - Statement statement(GetUniqueStatement(
|
| +bool Connection::DoesTableExist(const char* table_name) const {
|
| + // GetUniqueStatement can't be const since statements may modify the
|
| + // database, but we know ours doesn't modify it, so the cast is safe.
|
| + Statement statement(const_cast<Connection*>(this)->GetUniqueStatement(
|
| "SELECT name FROM sqlite_master "
|
| "WHERE type='table' AND name=?"));
|
| if (!statement)
|
| @@ -235,12 +237,14 @@
|
| }
|
|
|
| bool Connection::DoesColumnExist(const char* table_name,
|
| - const char* column_name) {
|
| + const char* column_name) const {
|
| std::string sql("PRAGMA TABLE_INFO(");
|
| sql.append(table_name);
|
| sql.append(")");
|
|
|
| - Statement statement(GetUniqueStatement(sql.c_str()));
|
| + // Our SQL is non-mutating, so this cast is OK.
|
| + Statement statement(const_cast<Connection*>(this)->GetUniqueStatement(
|
| + sql.c_str()));
|
| if (!statement)
|
| return false;
|
|
|
| @@ -259,6 +263,14 @@
|
| return sqlite3_last_insert_rowid(db_);
|
| }
|
|
|
| +int Connection::GetLastChangeCount() const {
|
| + if (!db_) {
|
| + NOTREACHED();
|
| + return 0;
|
| + }
|
| + return sqlite3_changes(db_);
|
| +}
|
| +
|
| int Connection::GetErrorCode() const {
|
| if (!db_)
|
| return SQLITE_ERROR;
|
|
|