1# 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 50