aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authordrh <>2025-01-18 21:19:02 +0000
committerdrh <>2025-01-18 21:19:02 +0000
commit0f4de9bf9deabc2246fc9f076c22e83322a339b0 (patch)
treebceb6ce931b82248c505d81f5d007d4a541beab5 /test
parent50c44200300f77e5415e8fe8c3475d53830a9ff2 (diff)
downloadsqlite-0f4de9bf9deabc2246fc9f076c22e83322a339b0.tar.gz
sqlite-0f4de9bf9deabc2246fc9f076c22e83322a339b0.zip
Add a simple test case (many more are coming soon to TH3). Fix an obsolete
assert(). FossilOrigin-Name: aa829a131a3431791083cf60d9cf00e7b3c0fafdd39a23e761b629a2287ab875
Diffstat (limited to 'test')
-rw-r--r--test/autoindex1.test28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/autoindex1.test b/test/autoindex1.test
index b294a2721..1c8ce007f 100644
--- a/test/autoindex1.test
+++ b/test/autoindex1.test
@@ -563,4 +563,32 @@ do_execsql_test autoindex-1120 {
SELECT * FROM t1 LEFT JOIN t2 ON (t2.c=+t1.a) LEFT JOIN t3 ON (t2.d IS NULL);
} {1 1 1 2 {} {}}
+# 2025-01-18
+# Added support for automatic indexes on WITHOUT ROWID tables.
+#
+reset_db
+do_execsql_test autoindex-1200 {
+ CREATE TABLE t1(a INT, b INT, x INT, PRIMARY KEY(a,b)) WITHOUT ROWID;
+ INSERT INTO t1 VALUES(1,2,90),(1,3,91),(1,4,92);
+ CREATE TABLE t2a(c INTEGER PRIMARY KEY, i1 INT);
+ CREATE TABLE t2b(i1 INTEGER PRIMARY KEY, d INT);
+ CREATE VIEW t2(c,d) AS SELECT c, d FROM t2a NATURAL JOIN t2b;
+ INSERT INTO t2a VALUES(3,93),(4,94),(5,95),(6,96),(7,97);
+ INSERT INTO t2b VALUES(91,11),(92,22),(93,33),(94,44),(95,55);
+ CREATE TABLE dual(dummy TEXT);
+ INSERT INTO dual(dummy) VALUES('x');
+}
+db null NULL
+do_execsql_test autoindex-1210 {
+ SELECT t1.*, t2.* FROM t2 LEFT OUTER JOIN t1 ON b=c ORDER BY +b;
+} {
+ NULL NULL NULL 5 55
+ 1 3 91 3 33
+ 1 4 92 4 44
+}
+do_execsql_test autoindex-1211 {
+ EXPLAIN QUERY PLAN
+ SELECT t1.*, t2.* FROM t2 LEFT OUTER JOIN t1 ON b=c ORDER BY +b;
+} {/SEARCH t1 USING AUTOMATIC COVERING INDEX/}
+
finish_test