Index: sql/statement_unittest.cc |
diff --git a/sql/statement_unittest.cc b/sql/statement_unittest.cc |
index b6b6aa8b5f9b4c184271151d1f1e0ec2397bbd9a..e8e7b0182ced3e41592276b5545188e6a538b6fd 100644 |
--- a/sql/statement_unittest.cc |
+++ b/sql/statement_unittest.cc |
@@ -120,3 +120,24 @@ TEST_F(SQLStatementTest, BasicErrorCallback) { |
EXPECT_EQ(SQLITE_MISMATCH, sqlite_error()); |
reset_error(); |
} |
+ |
+TEST_F(SQLStatementTest, ResetWithoutClearingBoundVariables) { |
+ ASSERT_TRUE(db().Execute("CREATE TABLE foo (a, b)")); |
+ ASSERT_TRUE(db().Execute("INSERT INTO foo (a, b) VALUES (3, 12)")); |
+ ASSERT_TRUE(db().Execute("INSERT INTO foo (a, b) VALUES (4, 13)")); |
+ |
+ sql::Statement s(db().GetUniqueStatement("SELECT b FROM foo ORDER BY a ASC")); |
+ ASSERT_TRUE(s.Step()); |
+ EXPECT_EQ(12, s.ColumnInt(0)); |
+ ASSERT_TRUE(s.Step()); |
+ EXPECT_EQ(13, s.ColumnInt(0)); |
+ EXPECT_FALSE(s.Step()); |
+ |
+ s.ResetWithoutClearingBoundVariables(); |
+ // Verify that we can get all rows again. |
+ ASSERT_TRUE(s.Step()); |
+ EXPECT_EQ(12, s.ColumnInt(0)); |
+ ASSERT_TRUE(s.Step()); |
+ EXPECT_EQ(13, s.ColumnInt(0)); |
+ EXPECT_FALSE(s.Step()); |
+} |