123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- # 2018-05-16
- #
- # 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.
- #
- #***********************************************************************
- # This file contains tests for the r-tree module, specifically the
- # auxiliary column mechanism.
- if {![info exists testdir]} {
- set testdir [file join [file dirname [info script]] .. .. test]
- }
- source [file join [file dirname [info script]] rtree_util.tcl]
- source $testdir/tester.tcl
- ifcapable !rtree { finish_test ; return }
- do_execsql_test rtreeH-100 {
- CREATE VIRTUAL TABLE t1 USING rtree(id,x0,x1,y0,y1,+label,+other);
- INSERT INTO t1(x0,x1,y0,y1,label) VALUES
- (0,10,0,10,'lower-left corner'),
- (0,10,90,100,'upper-left corner'),
- (90,100,0,10,'lower-right corner'),
- (90,100,90,100,'upper-right corner'),
- (40,60,40,60,'center'),
- (0,5,0,100,'left edge'),
- (95,100,0,100,'right edge'),
- (0,100,0,5,'bottom edge'),
- (0,100,95,100,'top edge'),
- (0,100,0,100,'the whole thing'),
- (0,50,0,100,'left half'),
- (51,100,0,100,'right half'),
- (0,100,0,50,'bottom half'),
- (0,100,51,100,'top half');
- } {}
- do_execsql_test rtreeH-101 {
- SELECT * FROM t1_rowid ORDER BY rowid
- } {1 1 {lower-left corner} {} 2 1 {upper-left corner} {} 3 1 {lower-right corner} {} 4 1 {upper-right corner} {} 5 1 center {} 6 1 {left edge} {} 7 1 {right edge} {} 8 1 {bottom edge} {} 9 1 {top edge} {} 10 1 {the whole thing} {} 11 1 {left half} {} 12 1 {right half} {} 13 1 {bottom half} {} 14 1 {top half} {}}
- do_execsql_test rtreeH-102 {
- SELECT * FROM t1 WHERE rowid=5;
- } {5 40.0 60.0 40.0 60.0 center {}}
- do_execsql_test rtreeH-102b {
- SELECT * FROM t1 WHERE rowid=5.0;
- } {5 40.0 60.0 40.0 60.0 center {}}
- do_execsql_test rtreeH-102c {
- SELECT * FROM t1 WHERE rowid='5';
- } {5 40.0 60.0 40.0 60.0 center {}}
- do_execsql_test rtreeH-102d {
- SELECT * FROM t1 WHERE rowid='0005';
- } {5 40.0 60.0 40.0 60.0 center {}}
- do_execsql_test rtreeH-102e {
- SELECT * FROM t1 WHERE rowid='+5.0e+0';
- } {5 40.0 60.0 40.0 60.0 center {}}
- do_execsql_test rtreeH-103 {
- SELECT * FROM t1 WHERE label='center';
- } {5 40.0 60.0 40.0 60.0 center {}}
- do_execsql_test rtreeH-104 {
- SELECT * FROM t1 WHERE rowid='+5.0e+0x';
- } {}
- do_execsql_test rtreeH-105 {
- SELECT * FROM t1 WHERE rowid=x'35';
- } {}
- do_execsql_test rtreeH-106 {
- SELECT * FROM t1 WHERE rowid=null;
- } {}
- do_rtree_integrity_test rtreeH-110 t1
- do_execsql_test rtreeH-120 {
- SELECT label FROM t1 WHERE x1<=50 ORDER BY id
- } {{lower-left corner} {upper-left corner} {left edge} {left half}}
- do_execsql_test rtreeH-121 {
- SELECT label FROM t1 WHERE x1<=50 AND label NOT LIKE '%corner%' ORDER BY id
- } {{left edge} {left half}}
- do_execsql_test rtreeH-200 {
- WITH RECURSIVE
- c1(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c1 WHERE x<99),
- c2(y) AS (VALUES(0) UNION ALL SELECT y+1 FROM c2 WHERE y<99)
- INSERT INTO t1(id, x0,x1,y0,y1,label)
- SELECT 1000+x+y*100, x, x+1, y, y+1, printf('box-%d,%d',x,y) FROM c1, c2;
- } {}
- do_execsql_test rtreeH-210 {
- SELECT label FROM t1 WHERE x0>=48 AND x1<=50 AND y0>=48 AND y1<=50
- ORDER BY id;
- } {box-48,48 box-49,48 box-48,49 box-49,49}
- do_execsql_test rtreeH-300 {
- UPDATE t1 SET label='x'||label
- WHERE x0>=49 AND x1<=50 AND y0>=49 AND y1<=50;
- SELECT label FROM t1 WHERE x0>=48 AND x1<=50 AND y0>=48 AND y1<=50
- ORDER BY id;
- } {box-48,48 box-49,48 box-48,49 xbox-49,49}
- finish_test
|