summaryrefslogtreecommitdiffstats
path: root/sql/sqlite_features_unittest.cc
diff options
context:
space:
mode:
authorshess <shess@chromium.org>2015-03-11 13:24:46 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-11 20:25:12 +0000
commit37437cbb433dc0c96691ef7f19880533375703f6 (patch)
treedfe7fcfd62eb834f0ee84c5e97a074a6004a7f8c /sql/sqlite_features_unittest.cc
parent3e1269e6e3950185ff3cc791faff3781acc24064 (diff)
downloadchromium_src-37437cbb433dc0c96691ef7f19880533375703f6.zip
chromium_src-37437cbb433dc0c96691ef7f19880533375703f6.tar.gz
chromium_src-37437cbb433dc0c96691ef7f19880533375703f6.tar.bz2
[sql] Stop building fts2.
Long ago, Chromium used fts2 for history full-text search. It was later replaced by fts3, and even later that feature was deleted entirely. fts2 is no longer used in the browser at all, so stop compiling it. Since SQLite is used by WebSQL, in theory this could affect web authors, but WebSQL uses an authorizer to allow only specific virtual table types. fts2 is not one of those types, I have verified manually that fts2 tables cannot be created using WebSQL. BUG=455817 Review URL: https://codereview.chromium.org/999573003 Cr-Commit-Position: refs/heads/master@{#320135}
Diffstat (limited to 'sql/sqlite_features_unittest.cc')
-rw-r--r--sql/sqlite_features_unittest.cc38
1 files changed, 10 insertions, 28 deletions
diff --git a/sql/sqlite_features_unittest.cc b/sql/sqlite_features_unittest.cc
index 2be1fd2..2b95bb8 100644
--- a/sql/sqlite_features_unittest.cc
+++ b/sql/sqlite_features_unittest.cc
@@ -65,41 +65,23 @@ TEST_F(SQLiteFeaturesTest, NoFTS1) {
"CREATE VIRTUAL TABLE foo USING fts1(x)"));
}
-#if defined(SQLITE_ENABLE_FTS2)
-// fts2 is used for older history files, so we're signed on for keeping our
-// version up-to-date.
-// TODO(shess): Think up a crazy way to get out from having to support
-// this forever.
-TEST_F(SQLiteFeaturesTest, FTS2) {
- ASSERT_TRUE(db().Execute("CREATE VIRTUAL TABLE foo USING fts2(x)"));
-}
-
-// A standard SQLite will not include our patch. This includes iOS.
-#if !defined(USE_SYSTEM_SQLITE)
-// Chromium fts2 was patched to treat "foo*" as a prefix search, though the icu
-// tokenizer will return it as two tokens {"foo", "*"}.
-TEST_F(SQLiteFeaturesTest, FTS2_Prefix) {
- const char kCreateSql[] =
- "CREATE VIRTUAL TABLE foo USING fts2(x, tokenize icu)";
- ASSERT_TRUE(db().Execute(kCreateSql));
-
- ASSERT_TRUE(db().Execute("INSERT INTO foo (x) VALUES ('test')"));
-
- sql::Statement s(db().GetUniqueStatement(
- "SELECT x FROM foo WHERE x MATCH 'te*'"));
- ASSERT_TRUE(s.Step());
- EXPECT_EQ("test", s.ColumnString(0));
+// Do not include fts2 support, it is not useful, and nobody is
+// looking at it.
+TEST_F(SQLiteFeaturesTest, NoFTS2) {
+ ASSERT_EQ(SQLITE_ERROR, db().ExecuteAndReturnErrorCode(
+ "CREATE VIRTUAL TABLE foo USING fts2(x)"));
}
-#endif
-#endif
-// fts3 is used for current history files, and also for WebDatabase.
+// fts3 used to be used for history files, and may also be used by WebDatabase
+// clients.
TEST_F(SQLiteFeaturesTest, FTS3) {
ASSERT_TRUE(db().Execute("CREATE VIRTUAL TABLE foo USING fts3(x)"));
}
#if !defined(USE_SYSTEM_SQLITE)
-// Test that fts3 doesn't need fts2's patch (see above).
+// Originally history used fts2, which Chromium patched to treat "foo*" as a
+// prefix search, though the icu tokenizer would return it as two tokens {"foo",
+// "*"}. Test that fts3 works correctly.
TEST_F(SQLiteFeaturesTest, FTS3_Prefix) {
const char kCreateSql[] =
"CREATE VIRTUAL TABLE foo USING fts3(x, tokenize icu)";