Home | History | Annotate | Download | only in rtree
      1 # 2010 February 16
      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 # Test that nothing goes wrong if an rtree table is created, then the
     13 # database page-size is modified. At one point (3.6.22), this was causing
     14 # malfunctions.
     15 #
     16 
     17 if {![info exists testdir]} {
     18   set testdir [file join [file dirname [info script]] .. .. test]
     19 } 
     20 source $testdir/tester.tcl
     21 
     22 ifcapable !rtree||!vacuum {
     23   finish_test
     24   return
     25 }
     26 
     27 do_test rtree7-1.1 {
     28   execsql {
     29     PRAGMA page_size = 1024;
     30     CREATE VIRTUAL TABLE rt USING rtree(id, x1, x2, y1, y2);
     31     INSERT INTO rt VALUES(1, 1, 2, 3, 4);
     32   }
     33 } {}
     34 do_test rtree7-1.2 {
     35   execsql { SELECT * FROM rt }
     36 } {1 1.0 2.0 3.0 4.0}
     37 do_test rtree7-1.3 {
     38   execsql { 
     39     PRAGMA page_size = 2048;
     40     VACUUM;
     41     SELECT * FROM rt;
     42   }
     43 } {1 1.0 2.0 3.0 4.0}
     44 do_test rtree7-1.4 {
     45   for {set i 2} {$i <= 51} {incr i} {
     46     execsql { INSERT INTO rt VALUES($i, 1, 2, 3, 4) }
     47   }
     48   execsql { SELECT sum(x1), sum(x2), sum(y1), sum(y2) FROM rt }
     49 } {51.0 102.0 153.0 204.0}
     50 do_test rtree7-1.5 {
     51   execsql { 
     52     PRAGMA page_size = 512;
     53     VACUUM;
     54     SELECT sum(x1), sum(x2), sum(y1), sum(y2) FROM rt
     55   }
     56 } {51.0 102.0 153.0 204.0}
     57 
     58 finish_test
     59