blob: 3fb226e012fd6fff70538f454c6bc866e890ec47 [file] [log] [blame]
drh62955242014-03-03 17:36:39 +00001# 2014-03-03
2#
3# The author disclaims copyright to this source code. In place of
4# a legal notice, here is a blessing:
5#
6# May you do good and not evil.
7# May you find forgiveness for yourself and forgive others.
8# May you share freely, never taking more than you give.
9#
10#***********************************************************************
11#
12# This file verifies that an OP_Copy operation is used instead of OP_SCopy
13# in a compound select in a case where the source register might be changed
14# before the copy is used.
15#
16
17set testdir [file dirname $argv0]
18source $testdir/tester.tcl
19set testprefix selectF
20
21do_execsql_test 1 {
22 BEGIN TRANSACTION;
23 CREATE TABLE t1(a, b, c);
24 INSERT INTO "t1" VALUES(1,'one','I');
25 CREATE TABLE t2(d, e, f);
26 INSERT INTO "t2" VALUES(5,'ten','XX');
27 INSERT INTO "t2" VALUES(6,NULL,NULL);
28
29 CREATE INDEX i1 ON t1(b, a);
30 COMMIT;
31}
32
33#explain_i {
34# SELECT * FROM t2
35# UNION ALL
36# SELECT * FROM t1 WHERE a<5
37# ORDER BY 2, 1
38#}
39
40do_execsql_test 2 {
41 SELECT * FROM t2
42 UNION ALL
43 SELECT * FROM t1 WHERE a<5
44 ORDER BY 2, 1
45} {6 {} {} 1 one I 5 ten XX}
46
47
48
49finish_test