OLD | NEW |
1 # 2010 April 07 | 1 # 2010 April 07 |
2 # | 2 # |
3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
5 # | 5 # |
6 # May you do good and not evil. | 6 # May you do good and not evil. |
7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
9 # | 9 # |
10 #************************************************************************* | 10 #************************************************************************* |
11 # This file implements regression tests for SQLite library. The | 11 # This file implements regression tests for SQLite library. The |
12 # focus of this script is testing automatic index creation logic. | 12 # focus of this script is testing automatic index creation logic. |
13 # | 13 # |
| 14 # EVIDENCE-OF: R-34271-33106 PRAGMA automatic_index; PRAGMA |
| 15 # automatic_index = boolean; Query, set, or clear the automatic indexing |
| 16 # capability. |
14 | 17 |
15 set testdir [file dirname $argv0] | 18 set testdir [file dirname $argv0] |
16 source $testdir/tester.tcl | 19 source $testdir/tester.tcl |
17 | 20 |
18 # If the library is not compiled with automatic index support then | 21 # If the library is not compiled with automatic index support then |
19 # skip all tests in this file. | 22 # skip all tests in this file. |
20 # | 23 # |
21 ifcapable {!autoindex} { | 24 ifcapable {!autoindex} { |
22 finish_test | 25 finish_test |
23 return | 26 return |
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 do_execsql_test autoindex1-901 { | 505 do_execsql_test autoindex1-901 { |
503 CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z); | 506 CREATE TABLE t1(x INTEGER PRIMARY KEY, y, z); |
504 CREATE TABLE t2(a, b); | 507 CREATE TABLE t2(a, b); |
505 CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a; | 508 CREATE VIEW agg2 AS SELECT a, sum(b) AS m FROM t2 GROUP BY a; |
506 EXPLAIN QUERY PLAN | 509 EXPLAIN QUERY PLAN |
507 SELECT t1.z, agg2.m | 510 SELECT t1.z, agg2.m |
508 FROM t1 JOIN agg2 ON t1.y=agg2.m | 511 FROM t1 JOIN agg2 ON t1.y=agg2.m |
509 WHERE t1.x IN (1,2,3); | 512 WHERE t1.x IN (1,2,3); |
510 } {/USING AUTOMATIC COVERING INDEX/} | 513 } {/USING AUTOMATIC COVERING INDEX/} |
511 | 514 |
| 515 # 2015-04-15: A NULL CollSeq pointer in automatic index creation. |
| 516 # |
| 517 do_execsql_test autoindex1-920 { |
| 518 CREATE TABLE t920(x); |
| 519 INSERT INTO t920 VALUES(3),(4),(5); |
| 520 SELECT * FROM t920,(SELECT 0 FROM t920),(VALUES(9)) WHERE 5 IN (x); |
| 521 } {5 0 9 5 0 9 5 0 9} |
512 | 522 |
513 finish_test | 523 finish_test |
OLD | NEW |