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

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

Issue 2751253002: [sql] Import SQLite 3.17.0. (Closed)
Patch Set: also clang on Linux i386 Created 3 years, 9 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/shell5.test ('k') | third_party/sqlite/src/test/shell7.test » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/sqlite/src/test/shell6.test
diff --git a/third_party/sqlite/src/test/shell6.test b/third_party/sqlite/src/test/shell6.test
new file mode 100644
index 0000000000000000000000000000000000000000..a70c4b429833fa32c3a7fe069108d2111168fda2
--- /dev/null
+++ b/third_party/sqlite/src/test/shell6.test
@@ -0,0 +1,101 @@
+# 2016 December 15
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+# Test the shell tool ".lint fkey-indexes" command.
+#
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+ifcapable !vtab {finish_test; return}
+set testprefix shell6
+set CLI [test_find_cli]
+db close
+forcedelete test.db test.db-journal test.db-wal
+
+foreach {tn schema output} {
+ 1 {
+ CREATE TABLE p1(a PRIMARY KEY, b);
+ CREATE TABLE c1(x, y REFERENCES p1);
+ } {
+ CREATE INDEX 'c1_y' ON 'c1'('y'); --> p1(a)
+ }
+
+ 2 {
+ CREATE TABLE p1(a PRIMARY KEY, b);
+ CREATE TABLE c2(x REFERENCES p1, y REFERENCES p1);
+ } {
+ CREATE INDEX 'c2_y' ON 'c2'('y'); --> p1(a)
+ CREATE INDEX 'c2_x' ON 'c2'('x'); --> p1(a)
+ }
+
+ 3 {
+ CREATE TABLE 'p 1'(a, b, c, PRIMARY KEY(c, b));
+ CREATE TABLE 'c 1'(x, y, z, FOREIGN KEY (z, y) REFERENCES 'p 1');
+ } {
+ CREATE INDEX 'c 1_z_y' ON 'c 1'('z', 'y'); --> p 1(c,b)
+ }
+
+ 4 {
+ CREATE TABLE p1(a, 'b b b' PRIMARY KEY);
+ CREATE TABLE c1('x y z' REFERENCES p1);
+ CREATE INDEX i1 ON c1('x y z') WHERE "x y z" IS NOT NULL;
+ } {
+ }
+
+ 5 {
+ CREATE TABLE p1(a, 'b b b' PRIMARY KEY);
+ CREATE TABLE c1('x y z' REFERENCES p1);
+ CREATE INDEX i1 ON c1('x y z') WHERE "x y z" IS NOT 12;
+ } {
+ CREATE INDEX 'c1_x y z' ON 'c1'('x y z'); --> p1(b b b)
+ }
+
+ 6 {
+ CREATE TABLE x1(a, b, c, UNIQUE(a, b));
+ CREATE TABLE y1(a, b, c, FOREIGN KEY(b, a) REFERENCES x1(a, b));
+ CREATE INDEX y1i ON y1(a, c, b);
+ } {
+ CREATE INDEX 'y1_b_a' ON 'y1'('b', 'a'); --> x1(a,b)
+ }
+
+ 6 {
+ CREATE TABLE x1(a COLLATE nocase, b, UNIQUE(a));
+ CREATE TABLE y1(a COLLATE rtrim REFERENCES x1(a));
+ } {
+ CREATE INDEX 'y1_a' ON 'y1'('a' COLLATE nocase); --> x1(a)
+ }
+
+} {
+ forcedelete test.db
+ sqlite3 db test.db
+ execsql $schema
+
+ set expected ""
+ foreach line [split $output "\n"] {
+ set line [string trim $line]
+ if {$line!=""} {
+ append expected "$line\n"
+ }
+ }
+
+ do_test 1.$tn.1 {
+ set RES [catchcmd test.db [list .lint fkey-indexes]]
+ } [list 0 [string trim $expected]]
+
+ do_test 1.$tn.2 {
+ execsql [lindex $RES 1]
+ catchcmd test.db [list .lint fkey-indexes]
+ } {0 {}}
+
+ db close
+}
+
+finish_test
« no previous file with comments | « third_party/sqlite/src/test/shell5.test ('k') | third_party/sqlite/src/test/shell7.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698