/ Check-in [24602557]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Make sure the rtreenode() testing and analysis routine in the RTREE extension can handle 64-bit rowids. This fix is in response to a message on the mailing list.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 24602557fc3295fe2836d269175f12ec680ac011
User & Date: drh 2011-03-02 15:44:35
Context
2011-03-02
17:54
Fix bugs in [7b6e30e6a7] that only show up on Mac. check-in: ec55e8c6 user: drh tags: trunk
15:44
Make sure the rtreenode() testing and analysis routine in the RTREE extension can handle 64-bit rowids. This fix is in response to a message on the mailing list. check-in: 24602557 user: drh tags: trunk
02:08
Log all error from close() in os_unix.c to sqlite3_log() but do not attempt to report errors back up to the application. Update the unix error logging to put the most important information earlier in the message. check-in: 7b6e30e6 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to ext/rtree/rtree.c.

  3129   3129     for(ii=0; ii<NCELL(&node); ii++){
  3130   3130       char zCell[512];
  3131   3131       int nCell = 0;
  3132   3132       RtreeCell cell;
  3133   3133       int jj;
  3134   3134   
  3135   3135       nodeGetCell(&tree, &node, ii, &cell);
  3136         -    sqlite3_snprintf(512-nCell,&zCell[nCell],"%d", cell.iRowid);
         3136  +    sqlite3_snprintf(512-nCell,&zCell[nCell],"%lld", cell.iRowid);
  3137   3137       nCell = strlen(zCell);
  3138   3138       for(jj=0; jj<tree.nDim*2; jj++){
  3139   3139         sqlite3_snprintf(512-nCell,&zCell[nCell]," %f",(double)cell.aCoord[jj].f);
  3140   3140         nCell = strlen(zCell);
  3141   3141       }
  3142   3142   
  3143   3143       if( zText ){

Added ext/rtree/rtreeB.test.

            1  +# 2011 March 2
            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  +# Make sure the rtreenode() testing function can handle entries with
           12  +# 64-bit rowids.
           13  +# 
           14  +
           15  +if {![info exists testdir]} {
           16  +  set testdir [file join [file dirname [info script]] .. .. test]
           17  +} 
           18  +source $testdir/tester.tcl
           19  +ifcapable !rtree { finish_test ; return }
           20  +
           21  +do_test rtreeB-1.1 {
           22  +  db eval {
           23  +    CREATE VIRTUAL TABLE t1 USING rtree(ii, x0, y0, x1, y1);
           24  +    INSERT INTO t1 VALUES(1073741824, 0.0, 0.0, 100.0, 100.0);
           25  +    INSERT INTO t1 VALUES(2147483646, 0.0, 0.0, 200.0, 200.0);
           26  +    INSERT INTO t1 VALUES(4294967296, 0.0, 0.0, 300.0, 300.0);
           27  +    INSERT INTO t1 VALUES(8589934592, 20.0, 20.0, 150.0, 150.0);
           28  +    INSERT INTO t1 VALUES(9223372036854775807, 150, 150, 400, 400);
           29  +    SELECT rtreenode(2, data) FROM t1_node;
           30  +  }
           31  +} {{1073741824 0.000000 0.000000 100.000000 100.000000} {2147483646 0.000000 0.000000 200.000000 200.000000} {4294967296 0.000000 0.000000 300.000000 300.000000} {8589934592 20.000000 20.000000 150.000000 150.000000} {9223372036854775807 150.000000 150.000000 400.000000 400.000000}}
           32  +
           33  +
           34  +finish_test