Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Improved error messages. Limit the number of auxiliary columns to 100. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | aux-data-in-rtree |
Files: | files | file ages | folders |
SHA3-256: |
059d20abd57727e6d312f15b640359ef |
User & Date: | drh 2018-05-18 15:21:43.725 |
Context
2018-05-18
| ||
16:46 | Fix a prepare-statement leak. (check-in: 95fd296ffc user: drh tags: aux-data-in-rtree) | |
15:21 | Improved error messages. Limit the number of auxiliary columns to 100. (check-in: 059d20abd5 user: drh tags: aux-data-in-rtree) | |
2018-05-16
| ||
19:56 | Fix an issue with rtreecheck() and auxiliary data columns. (check-in: 4671513607 user: drh tags: aux-data-in-rtree) | |
Changes
Changes to ext/rtree/rtree.c.
︙ | ︙ | |||
90 91 92 93 94 95 96 97 98 99 100 101 102 103 | typedef struct RtreeMatchArg RtreeMatchArg; typedef struct RtreeGeomCallback RtreeGeomCallback; typedef union RtreeCoord RtreeCoord; typedef struct RtreeSearchPoint RtreeSearchPoint; /* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ #define RTREE_MAX_DIMENSIONS 5 /* Size of hash table Rtree.aHash. This hash table is not expected to ** ever contain very many entries, so a fixed number of buckets is ** used. */ #define HASHSIZE 97 | > > > | 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | typedef struct RtreeMatchArg RtreeMatchArg; typedef struct RtreeGeomCallback RtreeGeomCallback; typedef union RtreeCoord RtreeCoord; typedef struct RtreeSearchPoint RtreeSearchPoint; /* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ #define RTREE_MAX_DIMENSIONS 5 /* Maximum number of auxiliary columns */ #define RTREE_MAX_AUX_COLUMN 100 /* Size of hash table Rtree.aHash. This hash table is not expected to ** ever contain very many entries, so a fixed number of buckets is ** used. */ #define HASHSIZE 97 |
︙ | ︙ | |||
3550 3551 3552 3553 3554 3555 3556 | int iErr; const char *aErrMsg[] = { 0, /* 0 */ "Wrong number of columns for an rtree table", /* 1 */ "Too few columns for an rtree table", /* 2 */ "Too many columns for an rtree table", /* 3 */ | | > | | 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 | int iErr; const char *aErrMsg[] = { 0, /* 0 */ "Wrong number of columns for an rtree table", /* 1 */ "Too few columns for an rtree table", /* 2 */ "Too many columns for an rtree table", /* 3 */ "Auxiliary rtree columns must be last" /* 4 */ }; assert( RTREE_MAX_AUX_COLUMN<256 ); /* Aux columns counted by a u8 */ if( argc>RTREE_MAX_AUX_COLUMN+3 ){ *pzErr = sqlite3_mprintf("%s", aErrMsg[3]); return SQLITE_ERROR; } sqlite3_vtab_config(db, SQLITE_VTAB_CONSTRAINT_SUPPORT, 1); /* Allocate the sqlite3_vtab structure */ |
︙ | ︙ |
Changes to ext/rtree/rtree1.test.
︙ | ︙ | |||
604 605 606 607 608 609 610 611 612 613 | BEGIN; INSERT INTO rt VALUES(1,2,3,4,5); } do_execsql_test 15.2 { DROP TABLE t13; COMMIT; } expand_all_sql db finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 | BEGIN; INSERT INTO rt VALUES(1,2,3,4,5); } do_execsql_test 15.2 { DROP TABLE t13; COMMIT; } # Test cases for the new auxiliary columns feature # do_catchsql_test 16.100 { CREATE VIRTUAL TABLE t16 USING rtree(id,x0,x1,y0,+aux1,x1); } {1 {Auxiliary rtree columns must be last}} do_test 16.110 { set sql { CREATE VIRTUAL TABLE t16 USING rtree( id, x00, x01, x10, x11, x20, x21, x30, x31, x40, x41 } for {set i 12} {$i<=100} {incr i} { append sql ", +a$i" } append sql ");" execsql $sql } {} do_test 16.120 { set sql { CREATE VIRTUAL TABLE t16b USING rtree( id, x00, x01, x10, x11, x20, x21, x30, x31, x40, x41 } for {set i 12} {$i<=101} {incr i} { append sql ", +a$i" } append sql ");" catchsql $sql } {1 {Too many columns for an rtree table}} expand_all_sql db finish_test |