⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtree2.test

📁 最新的sqlite3.6.2源代码
💻 TEST
字号:
# 2008 Feb 19## The author disclaims copyright to this source code.  In place of# a legal notice, here is a blessing:##    May you do good and not evil.#    May you find forgiveness for yourself and forgive others.#    May you share freely, never taking more than you give.##***********************************************************************## The focus of this file is testing the r-tree extension.## $Id: rtree2.test,v 1.4 2008/07/14 15:37:01 danielk1977 Exp $#if {![info exists testdir]} {  set testdir [file join [file dirname $argv0] .. .. test]} source [file join [file dirname [info script]] rtree_util.tcl]source $testdir/tester.tclifcapable !rtree {  finish_test  return}set ::NROW   1000set ::NDEL     10set ::NSELECT 100if {[info exists ISQUICK] && $ISQUICK} {  set ::NROW 100  set ::NSELECT 10}foreach module {rtree_i32 rtree} {  for {set nDim 1} {$nDim <= 5} {incr nDim} {      do_test rtree2-$module.$nDim.1 {      set cols [list]      foreach c [list c0 c1 c2 c3 c4 c5 c6 c7 c8 c9] {        lappend cols "$c REAL"      }      set cols [join [lrange $cols 0 [expr {$nDim*2-1}]] ", "]      execsql "         CREATE VIRTUAL TABLE t1 USING ${module}(ii, $cols);        CREATE TABLE t2 (ii, $cols);      "    } {}      do_test rtree2-$module.$nDim.2 {      db transaction {        for {set ii 0} {$ii < $::NROW} {incr ii} {          #puts "Row $ii"          set values [list]          for {set jj 0} {$jj<$nDim*2} {incr jj} {            lappend values [expr int(rand()*1000)]          }          set values [join $values ,]          #puts [rtree_treedump db t1]          #puts "INSERT INTO t2 VALUES($ii, $values)"          set rc [catch {db eval "INSERT INTO t1 VALUES($ii, $values)"}]          if {$rc} {            incr ii -1          } else {            db eval "INSERT INTO t2 VALUES($ii, $values)"          }          #if {[rtree_check db t1]} {            #puts [rtree_treedump db t1]            #exit          #}        }      }        set t1 [execsql {SELECT * FROM t1 ORDER BY ii}]      set t2 [execsql {SELECT * FROM t2 ORDER BY ii}]      set rc [expr {$t1 eq $t2}]      if {$rc != 1} {        puts $t1        puts $t2      }      set rc    } {1}      do_test rtree2-$module.$nDim.3 {      rtree_check db t1    } 0      set OPS [list < > <= >= =]    for {set ii 0} {$ii < $::NSELECT} {incr ii} {      do_test rtree2-$module.$nDim.4.$ii.1 {        set where [list]        foreach look_three_dots! {. . .} {          set colidx [expr int(rand()*($nDim*2+1))-1]          if {$colidx<0} {            set col ii          } else {            set col "c$colidx"          }          set op  [lindex $OPS [expr int(rand()*[llength $OPS])]]          set val [expr int(rand()*1000)]          lappend where "$col $op $val"        }        set where [join $where " AND "]          set t1 [execsql "SELECT * FROM t1 WHERE $where ORDER BY ii"]        set t2 [execsql "SELECT * FROM t2 WHERE $where ORDER BY ii"]        set rc [expr {$t1 eq $t2}]        if {$rc != 1} {          #puts $where          puts $t1          puts $t2          #puts [rtree_treedump db t1]          #breakpoint          #set t1 [execsql "SELECT * FROM t1 WHERE $where ORDER BY ii"]          #exit        }        set rc      } {1}    }      for {set ii 0} {$ii < $::NROW} {incr ii $::NDEL} {      #puts [rtree_treedump db t1]      do_test rtree2-$module.$nDim.5.$ii.1 {        execsql "DELETE FROM t2 WHERE ii <= $::ii"        execsql "DELETE FROM t1 WHERE ii <= $::ii"          set t1 [execsql {SELECT * FROM t1 ORDER BY ii}]        set t2 [execsql {SELECT * FROM t2 ORDER BY ii}]        set rc [expr {$t1 eq $t2}]        if {$rc != 1} {          puts $t1          puts $t2        }        set rc      } {1}      do_test rtree2-$module.$nDim.5.$ii.2 {        rtree_check db t1      } {0}    }      do_test rtree2-$module.$nDim.6 {      execsql {        DROP TABLE t1;        DROP TABLE t2;      }    } {}  }}finish_test

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -