1a62bb8d4Sdrh# 2009 November 23 2a62bb8d4Sdrh# 3a62bb8d4Sdrh# The author disclaims copyright to this source code. In place of 4a62bb8d4Sdrh# a legal notice, here is a blessing: 5a62bb8d4Sdrh# 6a62bb8d4Sdrh# May you do good and not evil. 7a62bb8d4Sdrh# May you find forgiveness for yourself and forgive others. 8a62bb8d4Sdrh# May you share freely, never taking more than you give. 9a62bb8d4Sdrh# 10a62bb8d4Sdrh#*********************************************************************** 11a62bb8d4Sdrh# This file implements regression tests for SQLite library. 12a62bb8d4Sdrh# 13a62bb8d4Sdrh# The focus of this file making sure the register cache logic works 14a62bb8d4Sdrh# correctly with virtual tables. Ticket [16fbf14cb2]. 15a62bb8d4Sdrh# 16a62bb8d4Sdrh 17a62bb8d4Sdrhset testdir [file dirname $argv0] 18a62bb8d4Sdrhsource $testdir/tester.tcl 19a62bb8d4Sdrh 20a62bb8d4Sdrhifcapable !vtab { 21a62bb8d4Sdrh finish_test 22a62bb8d4Sdrh return 23a62bb8d4Sdrh} 24a62bb8d4Sdrh 25a62bb8d4Sdrhregister_tclvar_module [sqlite3_connection_pointer db] 26a62bb8d4Sdrh 27a62bb8d4Sdrhunset -nocomplain vtabE 28a62bb8d4Sdrhset vtabE(vtabE1) 11 29a62bb8d4Sdrhset vtabE(vtabE2) 22 30a62bb8d4Sdrhunset -nocomplain vtabE1 31a62bb8d4Sdrhset vtabE1(w) x 32a62bb8d4Sdrhset vtabE1(y) z 33a62bb8d4Sdrhunset -nocomplain vtabE2 34a62bb8d4Sdrhset vtabE2(a) b 35a62bb8d4Sdrhset vtabE2(c) d 36a62bb8d4Sdrh 37a62bb8d4Sdrhdo_test vtabE-1 { 38a62bb8d4Sdrh db eval { 39a62bb8d4Sdrh CREATE VIRTUAL TABLE t1 USING tclvar; 40a62bb8d4Sdrh CREATE VIRTUAL TABLE t2 USING tclvar; 41a62bb8d4Sdrh CREATE TABLE t3(a INTEGER PRIMARY KEY, b); 42*4dd176eaSdrh SELECT t1.name, t1.arrayname, t1.value, 43*4dd176eaSdrh t2.name, t2.arrayname, t2.value, 44*4dd176eaSdrh abs(t3.b + abs(t2.value + abs(t1.value))) 45a62bb8d4Sdrh FROM t1 LEFT JOIN t2 ON t2.name = t1.arrayname 46a62bb8d4Sdrh LEFT JOIN t3 ON t3.a=t2.value 47a62bb8d4Sdrh WHERE t1.name = 'vtabE' 48a62bb8d4Sdrh ORDER BY t1.value, t2.value; 49a62bb8d4Sdrh } 50a62bb8d4Sdrh} {vtabE vtabE1 11 vtabE1 w x {} vtabE vtabE1 11 vtabE1 y z {} vtabE vtabE2 22 vtabE2 a b {} vtabE vtabE2 22 vtabE2 c d {}} 5143970dd7Sdan 5243970dd7Sdanfinish_test 53