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 | SQL 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 |
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
....
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
|
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 ................................................................................ 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 */ "AUX: columns must be last" /* 4 */ }; if( argc>=256 ){ *pzErr = sqlite3_mprintf("%s", aErrMsg[3]); return SQLITE_ERROR; } sqlite3_vtab_config(db, SQLITE_VTAB_CONSTRAINT_SUPPORT, 1); /* Allocate the sqlite3_vtab structure */ |
>
>
>
|
|
>
|
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
....
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
|
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 ................................................................................ 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 |