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

Unified Diff: third_party/sqlite/sqlite-src-3170000/test/without_rowid6.test

Issue 2747283002: [sql] Import reference version of SQLite 3.17.. (Closed)
Patch Set: 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
Index: third_party/sqlite/sqlite-src-3170000/test/without_rowid6.test
diff --git a/third_party/sqlite/sqlite-src-3170000/test/without_rowid6.test b/third_party/sqlite/sqlite-src-3170000/test/without_rowid6.test
new file mode 100644
index 0000000000000000000000000000000000000000..3f9fe415d87bdd0ec8641abbe1013b2682888b22
--- /dev/null
+++ b/third_party/sqlite/sqlite-src-3170000/test/without_rowid6.test
@@ -0,0 +1,121 @@
+# 2014-12-28
+#
+# 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.
+#
+#***********************************************************************
+#
+# Verify that WITHOUT ROWID tables work correctly when the PRIMARY KEY
+# has redundant columns.
+#
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+
+do_execsql_test without_rowid6-100 {
+ CREATE TABLE t1(a,b,c,d,e, PRIMARY KEY(a,b,c,a,b,c,d,a,b,c)) WITHOUT ROWID;
+ CREATE INDEX t1a ON t1(b, b);
+ WITH RECURSIVE
+ c(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM c WHERE i<1000)
+ INSERT INTO t1(a,b,c,d,e) SELECT i, i+1000, printf('x%dy',i), 0, 0 FROM c;
+ ANALYZE;
+} {}
+do_execsql_test without_rowid6-110 {
+ SELECT c FROM t1 WHERE a=123;
+} {x123y}
+do_execsql_test without_rowid6-120 {
+ SELECT c FROM t1 WHERE b=1123;
+} {x123y}
+do_execsql_test without_rowid6-130 {
+ SELECT c FROM t1 ORDER BY a DESC LIMIT 5;
+} {x1000y x999y x998y x997y x996y}
+do_execsql_test without_rowid6-140 {
+ SELECT c FROM t1 ORDER BY b LIMIT 5;
+} {x1y x2y x3y x4y x5y}
+
+# Column t1.b starts out as a unique index, but that index is
+# subsequently converted into a PRIMARY KEY.
+#
+do_execsql_test without_rowid6-200 {
+ DROP TABLE IF EXISTS t1;
+ CREATE TABLE t1(
+ a UNIQUE,
+ b UNIQUE,
+ c UNIQUE,
+ PRIMARY KEY(b)
+ ) WITHOUT ROWID;
+ INSERT INTO t1(a,b,c) VALUES(1,8,3),(4,5,6),(7,2,9);
+ SELECT a FROM t1 WHERE b>3 ORDER BY b;
+} {4 1}
+do_execsql_test without_rowid6-210 {
+ EXPLAIN QUERY PLAN
+ SELECT a FROM t1 WHERE b>3 ORDER BY b;
+} {/SEARCH TABLE t1 USING PRIMARY KEY .b>../}
+do_execsql_test without_rowid6-220 {
+ PRAGMA index_list(t1);
+} {/sqlite_autoindex_t1_2 1 pk/}
+
+do_execsql_test without_rowid6-300 {
+ DROP TABLE IF EXISTS t1;
+ CREATE TABLE t1(
+ a UNIQUE,
+ b PRIMARY KEY,
+ c UNIQUE,
+ UNIQUE(b)
+ ) WITHOUT ROWID;
+ INSERT INTO t1(a,b,c) VALUES(1,8,3),(4,5,6),(7,2,9);
+ SELECT a FROM t1 WHERE b>3 ORDER BY b;
+} {4 1}
+do_execsql_test without_rowid6-310 {
+ EXPLAIN QUERY PLAN
+ SELECT a FROM t1 WHERE b>3 ORDER BY b;
+} {/SEARCH TABLE t1 USING PRIMARY KEY .b>../}
+do_execsql_test without_rowid6-320 {
+ PRAGMA index_list(t1);
+} {/sqlite_autoindex_t1_2 1 pk/}
+
+do_execsql_test without_rowid6-400 {
+ DROP TABLE IF EXISTS t1;
+ CREATE TABLE t1(
+ a UNIQUE,
+ b UNIQUE PRIMARY KEY,
+ c UNIQUE
+ ) WITHOUT ROWID;
+ INSERT INTO t1(a,b,c) VALUES(1,8,3),(4,5,6),(7,2,9);
+ SELECT a FROM t1 WHERE b>3 ORDER BY b;
+} {4 1}
+do_execsql_test without_rowid6-410 {
+ EXPLAIN QUERY PLAN
+ SELECT a FROM t1 WHERE b>3 ORDER BY b;
+} {/SEARCH TABLE t1 USING PRIMARY KEY .b>../}
+do_execsql_test without_rowid6-420 {
+ PRAGMA index_list(t1);
+} {/sqlite_autoindex_t1_2 1 pk/}
+
+do_execsql_test without_rowid6-500 {
+ DROP TABLE IF EXISTS t1;
+ CREATE TABLE t1(a,b,c,
+ UNIQUE(b,c),
+ PRIMARY KEY(b,c)
+ ) WITHOUT ROWID;
+ INSERT INTO t1(a,b,c) VALUES(1,8,3),(4,5,6),(7,2,9);
+ SELECT a FROM t1 WHERE b>3 ORDER BY b;
+} {4 1}
+do_execsql_test without_rowid6-510 {
+ EXPLAIN QUERY PLAN
+ SELECT a FROM t1 WHERE b>3 ORDER BY b;
+} {/SEARCH TABLE t1 USING PRIMARY KEY .b>../}
+do_execsql_test without_rowid6-520 {
+ PRAGMA index_list(t1);
+} {/sqlite_autoindex_t1_1 1 pk/}
+
+do_catchsql_test without_rowid6-600 {
+ CREATE TABLE t6(a,b,c,PRIMARY KEY(a,rowid,b))WITHOUT ROWID;
+} {1 {no such column: rowid}}
+
+
+finish_test
« no previous file with comments | « third_party/sqlite/sqlite-src-3170000/test/without_rowid5.test ('k') | third_party/sqlite/sqlite-src-3170000/test/wordcount.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698