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

Unified Diff: third_party/sqlite/src/test/alter.test

Issue 6990047: Import SQLite 3.7.6.3. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/sqlite/src/test/all.test ('k') | third_party/sqlite/src/test/alter2.test » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/sqlite/src/test/alter.test
diff --git a/third_party/sqlite/src/test/alter.test b/third_party/sqlite/src/test/alter.test
index 2db82dd4293f9844c037abf0b91c22e8c7151f64..d4b72a6ae8c49d25f00f966b57bfaca7b2cd2996 100644
--- a/third_party/sqlite/src/test/alter.test
+++ b/third_party/sqlite/src/test/alter.test
@@ -173,6 +173,20 @@ ifcapable tempdb {
}
}
+# Create bogus application-defined functions for functions used
+# internally by ALTER TABLE, to ensure that ALTER TABLE falls back
+# to the built-in functions.
+#
+proc failing_app_func {args} {error "bad function"}
+do_test alter-1.7-prep {
+ db func substr failing_app_func
+ db func like failing_app_func
+ db func sqlite_rename_table failing_app_func
+ db func sqlite_rename_trigger failing_app_func
+ db func sqlite_rename_parent failing_app_func
+ catchsql {SELECT substr(name,1,3) FROM sqlite_master}
+} {1 {bad function}}
+
# Make sure the ALTER TABLE statements work with the
# non-callback API
#
@@ -567,7 +581,8 @@ do_test alter-5.3 {
} {}
foreach tblname [execsql {
- SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite%'
+ SELECT name FROM sqlite_master
+ WHERE type='table' AND name NOT GLOB 'sqlite*'
}] {
execsql "DROP TABLE \"$tblname\""
}
@@ -688,17 +703,17 @@ do_test alter-9.2 {
do_test alter-10.1 {
execsql "CREATE TABLE xyz(x UNIQUE)"
execsql "ALTER TABLE xyz RENAME TO xyz\u1234abc"
- execsql {SELECT name FROM sqlite_master WHERE name LIKE 'xyz%'}
+ execsql {SELECT name FROM sqlite_master WHERE name GLOB 'xyz*'}
} [list xyz\u1234abc]
do_test alter-10.2 {
- execsql {SELECT name FROM sqlite_master WHERE name LIKE 'sqlite_autoindex%'}
+ execsql {SELECT name FROM sqlite_master WHERE name GLOB 'sqlite_autoindex*'}
} [list sqlite_autoindex_xyz\u1234abc_1]
do_test alter-10.3 {
execsql "ALTER TABLE xyz\u1234abc RENAME TO xyzabc"
- execsql {SELECT name FROM sqlite_master WHERE name LIKE 'xyz%'}
+ execsql {SELECT name FROM sqlite_master WHERE name GLOB 'xyz*'}
} [list xyzabc]
do_test alter-10.4 {
- execsql {SELECT name FROM sqlite_master WHERE name LIKE 'sqlite_autoindex%'}
+ execsql {SELECT name FROM sqlite_master WHERE name GLOB 'sqlite_autoindex*'}
} [list sqlite_autoindex_xyzabc_1]
do_test alter-11.1 {
@@ -795,19 +810,19 @@ do_test alter-13.1 {
CREATE TABLE t3102b -- comment
(y);
CREATE INDEX t3102c ON t3102a(x);
- SELECT name FROM sqlite_master WHERE name LIKE 't3102%' ORDER BY 1;
+ SELECT name FROM sqlite_master WHERE name GLOB 't3102*' ORDER BY 1;
}
} {t3102a t3102b t3102c}
do_test alter-13.2 {
execsql {
ALTER TABLE t3102a RENAME TO t3102a_rename;
- SELECT name FROM sqlite_master WHERE name LIKE 't3102%' ORDER BY 1;
+ SELECT name FROM sqlite_master WHERE name GLOB 't3102*' ORDER BY 1;
}
} {t3102a_rename t3102b t3102c}
do_test alter-13.3 {
execsql {
ALTER TABLE t3102b RENAME TO t3102b_rename;
- SELECT name FROM sqlite_master WHERE name LIKE 't3102%' ORDER BY 1;
+ SELECT name FROM sqlite_master WHERE name GLOB 't3102*' ORDER BY 1;
}
} {t3102a_rename t3102b_rename t3102c}
@@ -825,4 +840,23 @@ do_test alter-14.2 {
} {1 {Cannot add a PRIMARY KEY column}}
+#-------------------------------------------------------------------------
+# Test that it is not possible to use ALTER TABLE on any system table.
+#
+set system_table_list {1 sqlite_master}
+catchsql ANALYZE
+ifcapable analyze { lappend system_table_list 2 sqlite_stat1 }
+ifcapable stat2 { lappend system_table_list 3 sqlite_stat2 }
+
+foreach {tn tbl} $system_table_list {
+ do_test alter-15.$tn.1 {
+ catchsql "ALTER TABLE $tbl RENAME TO xyz"
+ } [list 1 "table $tbl may not be altered"]
+
+ do_test alter-15.$tn.2 {
+ catchsql "ALTER TABLE $tbl ADD COLUMN xyz"
+ } [list 1 "table $tbl may not be altered"]
+}
+
+
finish_test
« no previous file with comments | « third_party/sqlite/src/test/all.test ('k') | third_party/sqlite/src/test/alter2.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698