Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge compiler-warning fixes from trunk. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sessions |
Files: | files | file ages | folders |
SHA1: |
a1f2b0428518ec18af74a0e01deb4e40 |
User & Date: | drh 2014-03-05 23:12:55.336 |
Context
2014-03-06
| ||
13:48 | Merge the latest 3.8.4 tweaks from trunk. (check-in: 1ed463d918 user: drh tags: sessions) | |
2014-03-05
| ||
23:12 | Merge compiler-warning fixes from trunk. (check-in: a1f2b04285 user: drh tags: sessions) | |
19:36 | Always include the ctype.h header in the spellfix.c extension. (check-in: bfd75f471a user: drh tags: trunk) | |
14:49 | Merge in various obscure bug fixes and the removal of Mem.memType from trunk. (check-in: 0828975d58 user: drh tags: sessions) | |
Changes
Changes to ext/misc/spellfix.c.
︙ | ︙ | |||
22 23 24 25 26 27 28 | # include <stdio.h> # include <stdlib.h> # include <assert.h> # define ALWAYS(X) 1 # define NEVER(X) 0 typedef unsigned char u8; typedef unsigned short u16; | < > | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | # include <stdio.h> # include <stdlib.h> # include <assert.h> # define ALWAYS(X) 1 # define NEVER(X) 0 typedef unsigned char u8; typedef unsigned short u16; #endif #include <ctype.h> #ifndef SQLITE_OMIT_VIRTUALTABLE /* ** Character classes for ASCII characters: ** ** 0 '' Silent letters: H W |
︙ | ︙ |
Changes to src/build.c.
︙ | ︙ | |||
3469 3470 3471 3472 3473 3474 3475 | /* Sanity checking on calling parameters */ assert( iStart>=0 ); assert( nExtra>=1 ); assert( pSrc!=0 ); assert( iStart<=pSrc->nSrc ); /* Allocate additional space if needed */ | | | | | 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 | /* Sanity checking on calling parameters */ assert( iStart>=0 ); assert( nExtra>=1 ); assert( pSrc!=0 ); assert( iStart<=pSrc->nSrc ); /* Allocate additional space if needed */ if( (u32)pSrc->nSrc+nExtra>pSrc->nAlloc ){ SrcList *pNew; int nAlloc = pSrc->nSrc+nExtra; int nGot; pNew = sqlite3DbRealloc(db, pSrc, sizeof(*pSrc) + (nAlloc-1)*sizeof(pSrc->a[0]) ); if( pNew==0 ){ assert( db->mallocFailed ); return pSrc; } pSrc = pNew; nGot = (sqlite3DbMallocSize(db, pNew) - sizeof(*pSrc))/sizeof(pSrc->a[0])+1; pSrc->nAlloc = nGot; } /* Move existing slots that come after the newly inserted slots ** out of the way */ for(i=pSrc->nSrc-1; i>=iStart; i--){ pSrc->a[i+nExtra] = pSrc->a[i]; } pSrc->nSrc += nExtra; /* Zero the newly allocated slots */ memset(&pSrc->a[iStart], 0, sizeof(pSrc->a[0])*nExtra); for(i=iStart; i<iStart+nExtra; i++){ pSrc->a[i].iCursor = -1; } |
︙ | ︙ |
Changes to src/ctime.c.
︙ | ︙ | |||
210 211 212 213 214 215 216 217 218 219 220 221 222 223 | "OMIT_CHECK", #endif #ifdef SQLITE_OMIT_COMPLETE "OMIT_COMPLETE", #endif #ifdef SQLITE_OMIT_COMPOUND_SELECT "OMIT_COMPOUND_SELECT", #endif #ifdef SQLITE_OMIT_DATETIME_FUNCS "OMIT_DATETIME_FUNCS", #endif #ifdef SQLITE_OMIT_DECLTYPE "OMIT_DECLTYPE", #endif | > > > | 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | "OMIT_CHECK", #endif #ifdef SQLITE_OMIT_COMPLETE "OMIT_COMPLETE", #endif #ifdef SQLITE_OMIT_COMPOUND_SELECT "OMIT_COMPOUND_SELECT", #endif #ifdef SQLITE_OMIT_CTE "OMIT_CTE", #endif #ifdef SQLITE_OMIT_DATETIME_FUNCS "OMIT_DATETIME_FUNCS", #endif #ifdef SQLITE_OMIT_DECLTYPE "OMIT_DECLTYPE", #endif |
︙ | ︙ |
Changes to src/sqliteInt.h.
︙ | ︙ | |||
2022 2023 2024 2025 2026 2027 2028 | ** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each ** jointype expresses the join between the table and the previous table. ** ** In the colUsed field, the high-order bit (bit 63) is set if the table ** contains more than 63 columns and the 64-th or later column is used. */ struct SrcList { | | | | 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 | ** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each ** jointype expresses the join between the table and the previous table. ** ** In the colUsed field, the high-order bit (bit 63) is set if the table ** contains more than 63 columns and the 64-th or later column is used. */ struct SrcList { int nSrc; /* Number of tables or subqueries in the FROM clause */ u32 nAlloc; /* Number of entries allocated in a[] below */ struct SrcList_item { Schema *pSchema; /* Schema to which this item is fixed */ char *zDatabase; /* Name of database holding this table */ char *zName; /* Name of the table */ char *zAlias; /* The "B" part of a "A AS B" phrase. zName is the "A" */ Table *pTab; /* An SQL table corresponding to zName */ Select *pSelect; /* A SELECT statement used in place of a table name */ |
︙ | ︙ |
Changes to test/capi3.test.
︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # focus of this script testing the callback-free C/C++ API. # # $Id: capi3.test,v 1.70 2009/01/09 02:49:32 drh Exp $ # set testdir [file dirname $argv0] source $testdir/tester.tcl # Do not use a codec for tests in this file, as the database file is # manipulated directly using tcl scripts (using the [hexio_write] command). # do_not_use_codec # Return the UTF-16 representation of the supplied UTF-8 string $str. | > | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # focus of this script testing the callback-free C/C++ API. # # $Id: capi3.test,v 1.70 2009/01/09 02:49:32 drh Exp $ # set testdir [file dirname $argv0] source $testdir/tester.tcl set ::testprefix capi3 # Do not use a codec for tests in this file, as the database file is # manipulated directly using tcl scripts (using the [hexio_write] command). # do_not_use_codec # Return the UTF-16 representation of the supplied UTF-8 string $str. |
︙ | ︙ | |||
1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 | # Ticket #3134. Prepare a statement with an nBytes parameter of 0. # Make sure this works correctly and does not reference memory out of # range. # do_test capi3-19.1 { sqlite3_prepare_tkt3134 db } {} # Tests of the interface when no VFS is registered. # if {![info exists tester_do_binarylog]} { db close vfs_unregister_all do_test capi3-20.1 { sqlite3_sleep 100 } {0} vfs_reregister_all } finish_test | > > > > > > > > > > > > > > > > > | 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 | # Ticket #3134. Prepare a statement with an nBytes parameter of 0. # Make sure this works correctly and does not reference memory out of # range. # do_test capi3-19.1 { sqlite3_prepare_tkt3134 db } {} # Test that calling sqlite3_column_blob() on a TEXT value does not change # the return type of subsequent calls to sqlite3_column_type(). # do_execsql_test 20.1 { CREATE TABLE t4(x); INSERT INTO t4 VALUES('abcdefghij'); } do_test 20.2 { set stmt [sqlite3_prepare db "SELECT * FROM t4" -1 dummy] sqlite3_step $stmt } {SQLITE_ROW} do_test 20.3 { sqlite3_column_type $stmt 0 } {TEXT} do_test 20.4 { sqlite3_column_blob $stmt 0 } {abcdefghij} do_test 20.5 { sqlite3_column_type $stmt 0 } {TEXT} do_test 20.6 { sqlite3_finalize $stmt } SQLITE_OK # Tests of the interface when no VFS is registered. # if {![info exists tester_do_binarylog]} { db close vfs_unregister_all do_test capi3-20.1 { sqlite3_sleep 100 } {0} vfs_reregister_all } finish_test |
Changes to test/join.test.
︙ | ︙ | |||
636 637 638 639 640 641 642 643 644 | } {} do_test join-11.9 { execsql { SELECT * FROM t1 NATURAL JOIN t2 } } {one 1.0 two 2} do_test join-11.10 { execsql { SELECT * FROM t2 NATURAL JOIN t1 } } {1 one 2 two} finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 | } {} do_test join-11.9 { execsql { SELECT * FROM t1 NATURAL JOIN t2 } } {one 1.0 two 2} do_test join-11.10 { execsql { SELECT * FROM t2 NATURAL JOIN t1 } } {1 one 2 two} #------------------------------------------------------------------------- # Test that at most 64 tables are allowed in a join. # do_execsql_test join-12.1 { CREATE TABLE t14(x); INSERT INTO t14 VALUES('abcdefghij'); } proc jointest {tn nTbl res} { set sql "SELECT 1 FROM [string repeat t14, [expr $nTbl-1]] t14;" uplevel [list do_catchsql_test $tn $sql $res] } jointest join-12.2 30 {0 1} jointest join-12.3 63 {0 1} jointest join-12.4 64 {0 1} jointest join-12.5 65 {1 {at most 64 tables in a join}} jointest join-12.6 66 {1 {at most 64 tables in a join}} jointest join-12.7 127 {1 {at most 64 tables in a join}} jointest join-12.8 128 {1 {at most 64 tables in a join}} jointest join-12.9 1000 {1 {at most 64 tables in a join}} # If SQLite is built with SQLITE_MEMDEBUG, then the huge number of realloc() # calls made by the following test cases are too time consuming to run. # Without SQLITE_MEMDEBUG, realloc() is fast enough that these are not # a problem. ifcapable pragma&&compileoption_diags { if {[lsearch [db eval {PRAGMA compile_options}] MEMDEBUG]<0} { jointest join-12.10 65534 {1 {at most 64 tables in a join}} jointest join-12.11 65535 {1 {too many references to "t14": max 65535}} jointest join-12.12 65536 {1 {too many references to "t14": max 65535}} jointest join-12.13 65537 {1 {too many references to "t14": max 65535}} } } finish_test |