gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/show_speedtest1_rtree.tcl (about) 1 #!/usr/bin/tclsh 2 # 3 # This script displays the field of rectangles used by --testset rtree 4 # of speedtest1. Run this script as follows: 5 # 6 # rm test.db 7 # ./speedtest1 --testset rtree --size 25 test.db 8 # sqlite3 --separator ' ' test.db 'SELECT * FROM rt1' >data.txt 9 # wish show_speedtest1_rtree.tcl 10 # 11 # The filename "data.txt" is hard coded into this script and so that name 12 # must be used on lines 3 and 4 above. Elsewhere, different filenames can 13 # be used. The --size N parameter can be adjusted as desired. 14 # 15 package require Tk 16 set f [open data.txt rb] 17 set data [read $f] 18 close $f 19 canvas .c 20 frame .b 21 button .b.b1 -text X-Y -command refill-xy 22 button .b.b2 -text X-Z -command refill-xz 23 button .b.b3 -text Y-Z -command refill-yz 24 pack .b.b1 .b.b2 .b.b3 -side left 25 pack .c -side top -fill both -expand 1 26 pack .b -side top 27 proc resize_canvas_to_fit {} { 28 foreach {x0 y0 x1 y1} [.c bbox all] break 29 set w [expr {$x1-$x0}] 30 set h [expr {$y1-$y0}] 31 .c config -width $w -height $h 32 } 33 proc refill-xy {} { 34 .c delete all 35 foreach {id x0 x1 y0 y1 z0 z1} $::data { 36 .c create rectangle $x0 $y0 $x1 $y1 37 } 38 .c scale all 0 0 0.05 0.05 39 resize_canvas_to_fit 40 } 41 proc refill-xz {} { 42 .c delete all 43 foreach {id x0 x1 y0 y1 z0 z1} $::data { 44 .c create rectangle $x0 $z0 $x1 $z1 45 } 46 .c scale all 0 0 0.05 0.05 47 resize_canvas_to_fit 48 } 49 proc refill-yz {} { 50 .c delete all 51 foreach {id x0 x1 y0 y1 z0 z1} $::data { 52 .c create rectangle $y0 $z0 $y1 $z1 53 } 54 .c scale all 0 0 0.05 0.05 55 resize_canvas_to_fit 56 } 57 refill-xy