15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts {# 2008 December 11 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The author disclaims copyright to this source code. In place of 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# a legal notice, here is a blessing: 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# May you do good and not evil. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# May you find forgiveness for yourself and forgive others. 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# May you share freely, never taking more than you give. 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#*********************************************************************** 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This file implements regression tests for SQLite library. 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This file is automatically generated from a separate TCL script. 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This file seeks to exercise integer boundary values. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $Id: boundary4.tcl,v 1.3 2009/01/02 15:45:48 shane Exp $ 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set testdir [file dirname $argv0] 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)source $testdir/tester.tcl 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Many of the boundary tests depend on a working 64-bit implementation. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if {![working_64bit_int]} { finish_test; return } 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ifcapable !altertable { finish_test; return } 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)expr srand(0) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Generate interesting boundary numbers 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x { 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7f 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7fff 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7fffff 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7fffffff 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7fffffffff 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7fffffffffff 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7fffffffffffff 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0x7fffffffffffffff 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set x [expr {wide($x)}] 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set boundarynum($x) 1 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set boundarynum([expr {$x+1}]) 1 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set boundarynum([expr {-($x+1)}]) 1 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set boundarynum([expr {-($x+2)}]) 1 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set boundarynum([expr {$x+$x+1}]) 1 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set boundarynum([expr {$x+$x+2}]) 1 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set x [expr {wide(127)}] 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)for {set i 127} {$i<=9} {incr i} { 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set boundarynum($x) 1 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set boundarynum([expr {$x+1}]) 1 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set x [expr {wide($x*128 + 127)}] 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Scramble the $inlist into a random order. 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)proc scramble {inlist} { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set y {} 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) foreach x $inlist { 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend y [list [expr {rand()}] $x] 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set y [lsort $y] 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set outlist {} 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) foreach x $y { 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend outlist [lindex $x 1] 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return $outlist 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# A simple selection sort. Not trying to be efficient. 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)proc sort {inlist} { 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set outlist {} 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set mn [lindex $inlist 0] 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) foreach x $inlist { 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if {$x<$mn} {set mn $x} 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set outlist $mn 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set mx $mn 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) while {1} { 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set valid 0 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) foreach x $inlist { 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if {$x>$mx && (!$valid || $mn>$x)} { 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set mn $x 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set valid 1 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if {!$valid} break 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend outlist $mn 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set mx $mn 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return $outlist 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Reverse the order of a list 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)proc reverse {inlist} { 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set i [llength $inlist] 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set outlist {} 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for {incr i -1} {$i>=0} {incr i -1} { 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend outlist [lindex $inlist $i] 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return $outlist 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set nums1 [scramble [array names boundarynum]] 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set nums2 [scramble [array names boundarynum]] 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set tname boundary4 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts "do_test $tname-1.1 \173" 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts " db eval \173" 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts " CREATE TABLE t1(a,x);" 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set a 0 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set all_rowid {} 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set all_a {} 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set all_x {} 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r $nums1 { 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) incr a 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set t1ra($r) $a 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set t1ar($a) $r 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set x [format %08x%08x [expr {wide($r)>>32}] $r] 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set t1rx($r) $x 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set t1xr($x) $r 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) puts " INSERT INTO t1(oid,a,x) VALUES($r,$a,'$x');" 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend all_rowid $r 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend all_a $a 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend all_x $x 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts " CREATE INDEX t1i1 ON t1(a);" 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts " CREATE INDEX t1i2 ON t1(x);" 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts " \175" 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts "\175 {}" 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts "do_test $tname-1.2 \173" 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts " db eval \173" 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts " SELECT count(*) FROM t1" 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts " \175" 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts "\175 {[llength $nums1]}" 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)proc maketest {tnum sql answer} { 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) puts "do_test $::tname-$tnum \173" 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) puts " db eval \173" 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) puts " $sql" 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) puts " \175" 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) puts "\175 {$answer}" 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r [sort $all_rowid] { 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $t1rx($r) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.3 {SELECT rowid, a, x FROM t1 ORDER BY +rowid} $ans 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.4 {SELECT rowid, a, x FROM t1 ORDER BY rowid} $ans 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r [reverse [sort $all_rowid]] { 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $t1rx($r) 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.5 {SELECT rowid, a, x FROM t1 ORDER BY +rowid DESC} $ans 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.6 {SELECT rowid, a, x FROM t1 ORDER BY rowid DESC} $ans 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach a [sort $all_a] { 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1ar($a) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $a $t1rx($r) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.7 {SELECT rowid, a, x FROM t1 ORDER BY +a} $ans 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.8 {SELECT rowid, a, x FROM t1 ORDER BY a} $ans 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach a [reverse [sort $all_a]] { 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1ar($a) 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $a $t1rx($r) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.9 {SELECT rowid, a, x FROM t1 ORDER BY +a DESC} $ans 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.10 {SELECT rowid, a, x FROM t1 ORDER BY a DESC} $ans 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x [sort $all_x] { 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1xr($x) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $x 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.11 {SELECT rowid, a, x FROM t1 ORDER BY +x} $ans 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.12 {SELECT rowid, a, x FROM t1 ORDER BY x} $ans 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x [reverse [sort $all_x]] { 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1xr($x) 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $x 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.13 {SELECT rowid, a, x FROM t1 ORDER BY +x DESC} $ans 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 1.14 {SELECT rowid, a, x FROM t1 ORDER BY x DESC} $ans 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.1 {UPDATE t1 SET rowid=a, a=rowid} {} 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r [sort $all_rowid] { 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $t1rx($r) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.3 {SELECT a, rowid, x FROM t1 ORDER BY +a} $ans 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.4 {SELECT a, rowid, x FROM t1 ORDER BY a} $ans 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r [reverse [sort $all_rowid]] { 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $t1rx($r) 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.5 {SELECT a, rowid, x FROM t1 ORDER BY +a DESC} $ans 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.6 {SELECT a, rowid, x FROM t1 ORDER BY a DESC} $ans 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach a [sort $all_a] { 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1ar($a) 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $a $t1rx($r) 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.7 {SELECT a, rowid, x FROM t1 ORDER BY +rowid} $ans 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.8 {SELECT a, rowid, x FROM t1 ORDER BY rowid} $ans 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach a [reverse [sort $all_a]] { 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1ar($a) 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $a $t1rx($r) 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.9 {SELECT a, rowid, x FROM t1 ORDER BY +rowid DESC} $ans 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.10 {SELECT a, rowid, x FROM t1 ORDER BY rowid DESC} $ans 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x [sort $all_x] { 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1xr($x) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $x 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.11 {SELECT a, rowid, x FROM t1 ORDER BY +x} $ans 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.12 {SELECT a, rowid, x FROM t1 ORDER BY x} $ans 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x [reverse [sort $all_x]] { 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1xr($x) 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $x 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.13 {SELECT a, rowid, x FROM t1 ORDER BY +x DESC} $ans 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 2.14 {SELECT a, rowid, x FROM t1 ORDER BY x DESC} $ans 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.1 {UPDATE t1 SET rowid=a, a=rowid} {} 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.2 {ALTER TABLE t1 ADD COLUMN z; UPDATE t1 SET z=zeroblob(600)} {} 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r [sort $all_rowid] { 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $t1rx($r) 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.3 {SELECT rowid, a, x FROM t1 ORDER BY +rowid} $ans 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.4 {SELECT rowid, a, x FROM t1 ORDER BY rowid} $ans 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r [reverse [sort $all_rowid]] { 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $t1rx($r) 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.5 {SELECT rowid, a, x FROM t1 ORDER BY +rowid DESC} $ans 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.6 {SELECT rowid, a, x FROM t1 ORDER BY rowid DESC} $ans 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach a [sort $all_a] { 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1ar($a) 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $a $t1rx($r) 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.7 {SELECT rowid, a, x FROM t1 ORDER BY +a} $ans 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.8 {SELECT rowid, a, x FROM t1 ORDER BY a} $ans 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach a [reverse [sort $all_a]] { 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1ar($a) 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $a $t1rx($r) 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.9 {SELECT rowid, a, x FROM t1 ORDER BY +a DESC} $ans 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.10 {SELECT rowid, a, x FROM t1 ORDER BY a DESC} $ans 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x [sort $all_x] { 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1xr($x) 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $x 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.11 {SELECT rowid, a, x FROM t1 ORDER BY +x} $ans 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.12 {SELECT rowid, a, x FROM t1 ORDER BY x} $ans 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x [reverse [sort $all_x]] { 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1xr($x) 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $x 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.13 {SELECT rowid, a, x FROM t1 ORDER BY +x DESC} $ans 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 3.14 {SELECT rowid, a, x FROM t1 ORDER BY x DESC} $ans 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.1 {UPDATE t1 SET rowid=a, a=rowid, x=z, z=x} {} 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r [sort $all_rowid] { 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $t1rx($r) 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.3 {SELECT a, rowid, z FROM t1 ORDER BY +a} $ans 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.4 {SELECT a, rowid, z FROM t1 ORDER BY a} $ans 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach r [reverse [sort $all_rowid]] { 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $t1rx($r) 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.5 {SELECT a, rowid, z FROM t1 ORDER BY +a DESC} $ans 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.6 {SELECT a, rowid, z FROM t1 ORDER BY a DESC} $ans 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach a [sort $all_a] { 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1ar($a) 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $a $t1rx($r) 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.7 {SELECT a, rowid, z FROM t1 ORDER BY +rowid} $ans 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.8 {SELECT a, rowid, z FROM t1 ORDER BY rowid} $ans 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach a [reverse [sort $all_a]] { 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1ar($a) 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $a $t1rx($r) 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.9 {SELECT a, rowid, z FROM t1 ORDER BY +rowid DESC} $ans 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.10 {SELECT a, rowid, z FROM t1 ORDER BY rowid DESC} $ans 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x [sort $all_x] { 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1xr($x) 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $x 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.11 {SELECT a, rowid, z FROM t1 ORDER BY +z} $ans 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.12 {SELECT a, rowid, z FROM t1 ORDER BY z} $ans 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set ans {} 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach x [reverse [sort $all_x]] { 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set r $t1xr($x) 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) lappend ans $r $t1ra($r) $x 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.13 {SELECT a, rowid, z FROM t1 ORDER BY +z DESC} $ans 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)maketest 4.14 {SELECT a, rowid, z FROM t1 ORDER BY z DESC} $ans 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)puts {finish_test} 341