Index: sql/statement.cc |
diff --git a/sql/statement.cc b/sql/statement.cc |
index 67b7334c05709ea8ab51eb48429171910a9b9523..4f5e17f1684bdf221616e3db272f73a05096bef3 100644 |
--- a/sql/statement.cc |
+++ b/sql/statement.cc |
@@ -16,11 +16,13 @@ namespace sql { |
// only have to check the ref's validity bit. |
Statement::Statement() |
: ref_(new Connection::StatementRef(NULL, NULL, false)), |
+ stepped_(false), |
succeeded_(false) { |
} |
Statement::Statement(scoped_refptr<Connection::StatementRef> ref) |
: ref_(ref), |
+ stepped_(false), |
succeeded_(false) { |
} |
@@ -50,10 +52,12 @@ bool Statement::CheckValid() const { |
} |
bool Statement::Run() { |
+ DCHECK(!stepped_); |
ref_->AssertIOAllowed(); |
if (!CheckValid()) |
return false; |
+ stepped_ = true; |
return CheckError(sqlite3_step(ref_->stmt())) == SQLITE_DONE; |
} |
@@ -62,6 +66,7 @@ bool Statement::Step() { |
if (!CheckValid()) |
return false; |
+ stepped_ = true; |
return CheckError(sqlite3_step(ref_->stmt())) == SQLITE_ROW; |
} |
@@ -77,6 +82,7 @@ void Statement::Reset(bool clear_bound_vars) { |
} |
succeeded_ = false; |
+ stepped_ = false; |
} |
bool Statement::Succeeded() const { |
@@ -87,6 +93,7 @@ bool Statement::Succeeded() const { |
} |
bool Statement::BindNull(int col) { |
+ DCHECK(!stepped_); |
if (!is_valid()) |
return false; |
@@ -98,6 +105,7 @@ bool Statement::BindBool(int col, bool val) { |
} |
bool Statement::BindInt(int col, int val) { |
+ DCHECK(!stepped_); |
if (!is_valid()) |
return false; |
@@ -105,6 +113,7 @@ bool Statement::BindInt(int col, int val) { |
} |
bool Statement::BindInt64(int col, int64 val) { |
+ DCHECK(!stepped_); |
if (!is_valid()) |
return false; |
@@ -112,6 +121,7 @@ bool Statement::BindInt64(int col, int64 val) { |
} |
bool Statement::BindDouble(int col, double val) { |
+ DCHECK(!stepped_); |
if (!is_valid()) |
return false; |
@@ -119,6 +129,7 @@ bool Statement::BindDouble(int col, double val) { |
} |
bool Statement::BindCString(int col, const char* val) { |
+ DCHECK(!stepped_); |
if (!is_valid()) |
return false; |
@@ -127,6 +138,7 @@ bool Statement::BindCString(int col, const char* val) { |
} |
bool Statement::BindString(int col, const std::string& val) { |
+ DCHECK(!stepped_); |
if (!is_valid()) |
return false; |
@@ -142,6 +154,7 @@ bool Statement::BindString16(int col, const string16& value) { |
} |
bool Statement::BindBlob(int col, const void* val, int val_len) { |
+ DCHECK(!stepped_); |
if (!is_valid()) |
return false; |