Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch tree-stat1-fix Excluding Merge-Ins
This is equivalent to a diff from 3ad2531efb to 9589e93771
2016-05-23
| ||
19:02 | Avoid a minor error message when running RTREE without an sqlite_stat1 table. (check-in: 276e92f5b4 user: drh tags: trunk) | |
18:27 | Fix the rtreeG.test test case. (Closed-Leaf check-in: 9589e93771 user: drh tags: tree-stat1-fix) | |
18:12 | Fix RTREE so that it does not run queries against the sqlite_stat1 if that table does not exist. (check-in: 48526a2fe5 user: drh tags: tree-stat1-fix) | |
18:06 | Remove an extra "finish_test" from the end of rtreeC.test. (check-in: bfbb6dd84b user: drh tags: tree-stat1-fix) | |
16:16 | Improve the error messages generated by the rtree module when a constraint fails. (check-in: 3ad2531efb user: dan tags: trunk) | |
16:15 | Lemon enhancement: avoid unnecessary reduce actions that convert one non-terminal into another but have no side effects. (check-in: a86e782ad1 user: drh tags: trunk) | |
Changes to ext/rtree/rtree.c.
︙ | ︙ | |||
3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 | static int rtreeQueryStat1(sqlite3 *db, Rtree *pRtree){ const char *zFmt = "SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'"; char *zSql; sqlite3_stmt *p; int rc; i64 nRow = 0; zSql = sqlite3_mprintf(zFmt, pRtree->zDb, pRtree->zName); if( zSql==0 ){ rc = SQLITE_NOMEM; }else{ rc = sqlite3_prepare_v2(db, zSql, -1, &p, 0); if( rc==SQLITE_OK ){ if( sqlite3_step(p)==SQLITE_ROW ) nRow = sqlite3_column_int64(p, 0); | > > > > > | 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 | static int rtreeQueryStat1(sqlite3 *db, Rtree *pRtree){ const char *zFmt = "SELECT stat FROM %Q.sqlite_stat1 WHERE tbl = '%q_rowid'"; char *zSql; sqlite3_stmt *p; int rc; i64 nRow = 0; if( sqlite3_table_column_metadata(db,pRtree->zDb,"sqlite_stat1", 0,0,0,0,0,0)==SQLITE_ERROR ){ pRtree->nRowEst = RTREE_DEFAULT_ROWEST; return SQLITE_OK; } zSql = sqlite3_mprintf(zFmt, pRtree->zDb, pRtree->zName); if( zSql==0 ){ rc = SQLITE_NOMEM; }else{ rc = sqlite3_prepare_v2(db, zSql, -1, &p, 0); if( rc==SQLITE_OK ){ if( sqlite3_step(p)==SQLITE_ROW ) nRow = sqlite3_column_int64(p, 0); |
︙ | ︙ |
Changes to ext/rtree/rtreeC.test.
︙ | ︙ | |||
344 345 346 347 348 349 350 | WHERE (x1 BETWEEN xmin AND xmax); } { 0 0 1 {SCAN TABLE xdir} 0 1 0 {SCAN TABLE rt VIRTUAL TABLE INDEX 2:B0D1} 0 2 2 {SCAN TABLE ydir} 2 4 } | < < < < | 344 345 346 347 348 349 350 351 352 | WHERE (x1 BETWEEN xmin AND xmax); } { 0 0 1 {SCAN TABLE xdir} 0 1 0 {SCAN TABLE rt VIRTUAL TABLE INDEX 2:B0D1} 0 2 2 {SCAN TABLE ydir} 2 4 } finish_test |
Added ext/rtree/rtreeG.test.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | # 2016-05-32 # # 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. # # Verify that no invalid SQL is run during initialization if {![info exists testdir]} { set testdir [file join [file dirname [info script]] .. .. test] } source $testdir/tester.tcl ifcapable !rtree { finish_test ; return } db close sqlite3_shutdown test_sqlite3_log [list lappend ::log] set ::log [list] sqlite3 db test.db set ::log {} do_execsql_test rtreeG-1.1 { CREATE VIRTUAL TABLE t1 USING rtree(id,x0,x1,y0,y1); } {} do_test rtreeG-1.1log { set ::log } {} do_execsql_test rtreeG-1.2 { INSERT INTO t1 VALUES(1,10,15,5,23),(2,20,21,5,23),(3,10,15,20,30); SELECT id from t1 WHERE x0>8 AND x1<16 AND y0>2 AND y1<25; } {1} do_test rtreeG-1.2log { set ::log } {} db close sqlite3 db test.db do_execsql_test rtreeG-1.3 { SELECT id from t1 WHERE x0>8 AND x1<16 AND y0>2 AND y1<25; } {1} do_test rtreeG-1.3log { set ::log } {} do_execsql_test rtreeG-1.4 { DROP TABLE t1; } {} do_test rtreeG-1.4log { set ::log } {} db close sqlite3_shutdown test_sqlite3_log sqlite3_initialize sqlite3 db test.db finish_test |