From 60a311785f474a0217afe37c2a7a43a8a0ccd0c3 Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 28 Jul 2010 18:51:26 +0000 Subject: [PATCH 1/7] Fix the dbstatus.test script so that it works correctly on 64-bit machines. FossilOrigin-Name: a3401d9ee540828f3efd26d89f6b771e0ecb2777 --- manifest | 22 ++++++---------------- manifest.uuid | 2 +- test/dbstatus.test | 2 +- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/manifest b/manifest index 32c52393d6..1798ec348b 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,5 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -C Improve\sthe\saccuracy\sof\sthe\sPager\sheap\susage\sestimate. -D 2010-07-28T17:36:12 +C Fix\sthe\sdbstatus.test\sscript\sso\sthat\sit\sworks\scorrectly\son\s64-bit\smachines. +D 2010-07-28T18:51:27 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -333,7 +330,7 @@ F test/createtab.test 199cf68f44e5d9e87a0b8afc7130fdeb4def3272 F test/cse.test 277350a26264495e86b1785f34d2d0c8600e021c F test/ctime.test 7bd009071e242aac4f18521581536b652b789a47 F test/date.test 6354b883f922c38046a8efbad187cc95df6da023 -F test/dbstatus.test ce26cd49a3746ca7ae0e5802ef0b2a9edbf71b29 +F test/dbstatus.test f3c88a3f8d15716e6ae73567a78ee96420c294a3 F test/default.test 6faf23ccb300114924353007795aa9a8ec0aa9dc F test/delete.test f7629d9eb245dfca170169cc5c7a735dec34aeb4 F test/delete2.test 3a03f2cca1f9a67ec469915cb8babd6485db43fa @@ -842,14 +839,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 2f2fa7dd809ae2a67048643da8c01a4664848ba7 -R b7bd2ca1374c0179d87c6bae7ca407e6 +P ae89777e7f8bae2cdd3407395ea84c1b39577c4b +R 2a8c5b3b0588775770d82323830400c1 U drh -Z 03585c4f4d1ec104a0103a0a8c108d7f ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.6 (GNU/Linux) - -iD8DBQFMUGqPoxKgR168RlERAgxrAJ4+w32hgMSWWsLb7m9/xZmvHyOoagCaAmtG -MhNGa6qhE2RISj/kSRw4Vo0= -=wqBl ------END PGP SIGNATURE----- +Z 7ee6144044fdd857458625ffd89ede5a diff --git a/manifest.uuid b/manifest.uuid index fba61ba2af..f289be31c8 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ae89777e7f8bae2cdd3407395ea84c1b39577c4b \ No newline at end of file +a3401d9ee540828f3efd26d89f6b771e0ecb2777 \ No newline at end of file diff --git a/test/dbstatus.test b/test/dbstatus.test index 634d3f5ffa..46291b1ce5 100644 --- a/test/dbstatus.test +++ b/test/dbstatus.test @@ -33,7 +33,7 @@ do_test dbstatus-1.1 { set sz2 [lindex [sqlite3_db_status db SQLITE_DBSTATUS_CACHE_USED 0] 1] set ::PAGESZ [expr {$sz2-$sz1}] set ::BASESZ [expr {$sz1-$::PAGESZ}] - expr {$::PAGESZ>1024 && $::PAGESZ<1200} + expr {$::PAGESZ>1024 && $::PAGESZ<1300} } {1} do_test dbstatus-1.2 { db eval { From 078e4084e9ca8ad57e47dcf25435977f1834f630 Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 28 Jul 2010 19:17:51 +0000 Subject: [PATCH 2/7] Get SQLITE_OMIT_VIRTUALTABLE working again after being broken by recent changes. FossilOrigin-Name: 33b1e862ffa7109480cf4a77ceae8aebe98d3eee --- manifest | 22 ++++++++++++++++------ manifest.uuid | 2 +- src/build.c | 2 ++ 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index 1798ec348b..93db36b1f6 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,8 @@ -C Fix\sthe\sdbstatus.test\sscript\sso\sthat\sit\sworks\scorrectly\son\s64-bit\smachines. -D 2010-07-28T18:51:27 +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +C Get\sSQLITE_OMIT_VIRTUALTABLE\sworking\sagain\safter\sbeing\sbroken\sby\srecent\nchanges. +D 2010-07-28T19:17:51 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -116,7 +119,7 @@ F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff F src/btree.c ed454f53f7bf7fb89c7a89f93fa93c5cd35e7aae F src/btree.h dd83041eda10c17daf023257c1fc883b5f71f85a F src/btreeInt.h b0c87f6725b06a0aa194a6d25d54b16ce9d6e291 -F src/build.c d4593392b8bf0753dd16f494628823f6f39ee7fb +F src/build.c 0018d49629fc4807100c988dd191dd95e185bb38 F src/callback.c da3c38d0ef5d7f04fae371e519bda61aa9cb1704 F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac F src/ctime.c 4f3aadad62c6c9f0d4e5a96718516ac4e3c598df @@ -839,7 +842,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P ae89777e7f8bae2cdd3407395ea84c1b39577c4b -R 2a8c5b3b0588775770d82323830400c1 +P a3401d9ee540828f3efd26d89f6b771e0ecb2777 +R eb10d882c7f0c445d545596dbfed0422 U drh -Z 7ee6144044fdd857458625ffd89ede5a +Z e999ed9036c340aa6dca3b64e8338713 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQFMUIJioxKgR168RlERAuXQAJ9FI7fhAyA4RJomQp31Ht8ypo2meACbBmAO +JUSNNYQ1jjZQIsqp8HPdpZw= +=0jgg +-----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index f289be31c8..a4a893eac5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a3401d9ee540828f3efd26d89f6b771e0ecb2777 \ No newline at end of file +33b1e862ffa7109480cf4a77ceae8aebe98d3eee \ No newline at end of file diff --git a/src/build.c b/src/build.c index 1281af67e5..636b8a6942 100644 --- a/src/build.c +++ b/src/build.c @@ -513,7 +513,9 @@ void sqlite3DeleteTable(sqlite3 *db, Table *pTable){ #ifndef SQLITE_OMIT_CHECK sqlite3ExprDelete(db, pTable->pCheck); #endif +#ifndef SQLITE_OMIT_VIRTUALTABLE sqlite3VtabClear(db, pTable); +#endif sqlite3DbFree(db, pTable); } From 6cbda64d07945dfeb8a25fdd36d6f527ddd37415 Mon Sep 17 00:00:00 2001 From: drh Date: Thu, 29 Jul 2010 01:50:38 +0000 Subject: [PATCH 3/7] Correct handling of compound foreign key constraints that include the integer primary key as one of the columns. Ticket [ce7c133ea6cc9ccdc1] FossilOrigin-Name: 53902f7d4a46aa70ecc5bf180a01ff888d52686a --- manifest | 20 ++++++++++---------- manifest.uuid | 2 +- src/fkey.c | 3 ++- test/fkey2.test | 45 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+), 12 deletions(-) diff --git a/manifest b/manifest index 93db36b1f6..5745efe23e 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Get\sSQLITE_OMIT_VIRTUALTABLE\sworking\sagain\safter\sbeing\sbroken\sby\srecent\nchanges. -D 2010-07-28T19:17:51 +C Correct\shandling\sof\scompound\sforeign\skey\sconstraints\sthat\sinclude\sthe\s\ninteger\sprimary\skey\sas\sone\sof\sthe\scolumns.\s\s\nTicket\s[ce7c133ea6cc9ccdc1] +D 2010-07-29T01:50:39 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -127,7 +127,7 @@ F src/date.c 5dd8448a0bfea8d31fb14cff487d0c06ff8c8b20 F src/delete.c 7ed8a8c8b5f748ece92df173d7e0f7810c899ebd F src/expr.c a0fd9c5e248229851077de92f2e9346f2c43ed46 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb -F src/fkey.c cacfe3e24b311e4e089a9c470bdb73196af6f729 +F src/fkey.c 58bbf52c6ddd3f64ca40a3230f9e548a83a5cb16 F src/func.c 75dc1fd91e5692cadb80d257bab68d7343060467 F src/global.c 02335177cf6946fe5525c6f0755cf181140debf3 F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af @@ -357,7 +357,7 @@ F test/expr.test 9f521ae22f00e074959f72ce2e55d46b9ed23f68 F test/filectrl.test 97003734290887566e01dded09dc9e99cb937e9e F test/filefmt.test 5d271bf467e6557fe7499dcc8203069c9dc5825e F test/fkey1.test 01c7de578e11747e720c2d9aeef27f239853c4da -F test/fkey2.test 098c06c139a79f690301a43511cd1f6420ae5433 +F test/fkey2.test e028cd80aa0bd38541c99214e3ba2dfccadffe6f F test/fkey3.test 42f88d6048d8dc079e2a8cf7baad1cc1483a7620 F test/fkey_malloc.test a5ede29bd2f6e56dea78c3d43fb86dd696c068c8 F test/format4.test 1f0cac8ff3895e9359ed87e41aaabee982a812eb @@ -842,14 +842,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P a3401d9ee540828f3efd26d89f6b771e0ecb2777 -R eb10d882c7f0c445d545596dbfed0422 +P 33b1e862ffa7109480cf4a77ceae8aebe98d3eee +R 1a747cd66c3cb3531b2d422eed64646d U drh -Z e999ed9036c340aa6dca3b64e8338713 +Z f3390b0f32a832cb0283a0a97736cdae -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFMUIJioxKgR168RlERAuXQAJ9FI7fhAyA4RJomQp31Ht8ypo2meACbBmAO -JUSNNYQ1jjZQIsqp8HPdpZw= -=0jgg +iD8DBQFMUN5zoxKgR168RlERAuaoAJsGqWIctdVM52Ga01Y24rzgl5SLEgCeK9O0 +mB2frcny0J2mHg1qnqy1X4A= +=UB37 -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index a4a893eac5..11a286a122 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -33b1e862ffa7109480cf4a77ceae8aebe98d3eee \ No newline at end of file +53902f7d4a46aa70ecc5bf180a01ff888d52686a \ No newline at end of file diff --git a/src/fkey.c b/src/fkey.c index 399e35005a..f0ad40d837 100644 --- a/src/fkey.c +++ b/src/fkey.c @@ -500,7 +500,8 @@ static void fkScanChildren( if( pIdx ){ Column *pCol; iCol = pIdx->aiColumn[i]; - pCol = &pIdx->pTable->aCol[iCol]; + pCol = &pTab->aCol[iCol]; + if( pTab->iPKey==iCol ) iCol = -1; pLeft->iTable = regData+iCol+1; pLeft->affinity = pCol->affinity; pLeft->pColl = sqlite3LocateCollSeq(pParse, pCol->zColl); diff --git a/test/fkey2.test b/test/fkey2.test index c530e9f74d..07c47e4b49 100644 --- a/test/fkey2.test +++ b/test/fkey2.test @@ -1936,5 +1936,50 @@ do_test fkey2-dd08e5.1.6 { } } {1 {foreign key constraint failed}} +#------------------------------------------------------------------------- +# Verify that ticket ce7c133ea6cc9ccdc1a60d80441f80b6180f5eba +# fixed. +# +do_test fkey2-ce7c13.1.1 { + execsql { + CREATE TABLE tce71(a INTEGER PRIMARY KEY, b); + CREATE UNIQUE INDEX ice71 ON tce71(a,b); + INSERT INTO tce71 VALUES(100,200); + CREATE TABLE tce72(w, x, y, FOREIGN KEY(x,y) REFERENCES tce71(a,b)); + INSERT INTO tce72 VALUES(300,100,200); + UPDATE tce71 set b = 200 where a = 100; + SELECT * FROM tce71, tce72; + } +} {100 200 300 100 200} +do_test fkey2-ce7c13.1.2 { + catchsql { + UPDATE tce71 set b = 201 where a = 100; + } +} {1 {foreign key constraint failed}} +do_test fkey2-ce7c13.1.3 { + catchsql { + UPDATE tce71 set a = 101 where a = 100; + } +} {1 {foreign key constraint failed}} +do_test fkey2-ce7c13.1.4 { + execsql { + CREATE TABLE tce73(a INTEGER PRIMARY KEY, b, UNIQUE(a,b)); + INSERT INTO tce73 VALUES(100,200); + CREATE TABLE tce74(w, x, y, FOREIGN KEY(x,y) REFERENCES tce73(a,b)); + INSERT INTO tce74 VALUES(300,100,200); + UPDATE tce73 set b = 200 where a = 100; + SELECT * FROM tce73, tce74; + } +} {100 200 300 100 200} +do_test fkey2-ce7c13.1.5 { + catchsql { + UPDATE tce73 set b = 201 where a = 100; + } +} {1 {foreign key constraint failed}} +do_test fkey2-ce7c13.1.6 { + catchsql { + UPDATE tce73 set a = 101 where a = 100; + } +} {1 {foreign key constraint failed}} finish_test From df0db0feb5da4b795b48e628918399a3bb8b0d08 Mon Sep 17 00:00:00 2001 From: drh Date: Thu, 29 Jul 2010 10:07:21 +0000 Subject: [PATCH 4/7] Change the profile timer units back to nanoseconds and update the sqlite3_profile() documentation. Ticket [c43940c49b74c70a69] FossilOrigin-Name: 7783b98a938b77d6b8e4e85b32b05452c47fbe4b --- manifest | 20 ++++++++++---------- manifest.uuid | 2 +- src/sqlite.h.in | 8 +++++++- src/vdbeapi.c | 2 +- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/manifest b/manifest index 5745efe23e..805f29dba1 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Correct\shandling\sof\scompound\sforeign\skey\sconstraints\sthat\sinclude\sthe\s\ninteger\sprimary\skey\sas\sone\sof\sthe\scolumns.\s\s\nTicket\s[ce7c133ea6cc9ccdc1] -D 2010-07-29T01:50:39 +C Change\sthe\sprofile\stimer\sunits\sback\sto\snanoseconds\sand\supdate\sthe\nsqlite3_profile()\sdocumentation.\nTicket\s[c43940c49b74c70a69] +D 2010-07-29T10:07:21 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -173,7 +173,7 @@ F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 F src/select.c 74fef1334bec27e606ef0b19e5c41cd0a639e69c F src/shell.c 8517fc1f9c59ae4007e6cc8b9af91ab231ea2056 -F src/sqlite.h.in 373dedd8489ecd9dfb33d6d4378ee9f34a3c2386 +F src/sqlite.h.in ae47c9a641c0ce766719aa4657e26b319d253c8c F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89 F src/sqliteInt.h a9be6badc6cd6a3c1ae54475a98661cf351ecad5 F src/sqliteLimit.h 196e2f83c3b444c4548fc1874f52f84fdbda40f3 @@ -224,7 +224,7 @@ F src/vacuum.c 241a8386727c1497eba4955933356dfba6ff8c9f F src/vdbe.c cefff41564b68a412e65e6a1013ec1b1c1ece6c4 F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2 F src/vdbeInt.h ffd68c4d4229227a5089bec53a1c635146177abc -F src/vdbeapi.c dc3138f10afbc95ed3c21dd25abb154504b1db9d +F src/vdbeapi.c d0f4407e465f261780ad725c1caece7d66a6aa35 F src/vdbeaux.c 77442ab4233858cf603910429033fbbd997ecdef F src/vdbeblob.c 258a6010ba7a82b72b327fb24c55790655689256 F src/vdbemem.c 5e579abf6532001dfbee0e640dc34eae897a9807 @@ -842,14 +842,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 33b1e862ffa7109480cf4a77ceae8aebe98d3eee -R 1a747cd66c3cb3531b2d422eed64646d +P 53902f7d4a46aa70ecc5bf180a01ff888d52686a +R 5c7f3d7af62d969d6bf07f63f9a6dc16 U drh -Z f3390b0f32a832cb0283a0a97736cdae +Z 278ae6e643818185a89142571af06620 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFMUN5zoxKgR168RlERAuaoAJsGqWIctdVM52Ga01Y24rzgl5SLEgCeK9O0 -mB2frcny0J2mHg1qnqy1X4A= -=UB37 +iD8DBQFMUVLcoxKgR168RlERAoZMAJ49AHrWc/0+siMt64/zrJKLt1+nUACeMpNG +x2umDnXBmB1KEwdKFIiDQOs= +=yNbn -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index 11a286a122..2a79f9f55c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -53902f7d4a46aa70ecc5bf180a01ff888d52686a \ No newline at end of file +7783b98a938b77d6b8e4e85b32b05452c47fbe4b \ No newline at end of file diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 286ff5990f..57910ee324 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -2171,7 +2171,13 @@ int sqlite3_set_authorizer( ** ^The callback function registered by sqlite3_profile() is invoked ** as each SQL statement finishes. ^The profile callback contains ** the original statement text and an estimate of wall-clock time -** of how long that statement took to run. +** of how long that statement took to run. ^The profile callback +** time is in units of nanoseconds, however the current implementation +** is only capable of millisecond resolution so the six least significant +** digits in the time are meaningless. Future versions of SQLite +** might provide greater resolution on the profiler callback. The +** sqlite3_profile() function is considered experimental and is +** subject to change in future versions of SQLite. */ void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*); SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*, diff --git a/src/vdbeapi.c b/src/vdbeapi.c index 2f5aaa36d1..afb4a1b6e6 100644 --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@ -398,7 +398,7 @@ static int sqlite3Step(Vdbe *p){ if( rc!=SQLITE_ROW && db->xProfile && !db->init.busy && p->zSql ){ sqlite3_int64 iNow; sqlite3OsCurrentTimeInt64(db->pVfs, &iNow); - db->xProfile(db->pProfileArg, p->zSql, iNow - p->startTime); + db->xProfile(db->pProfileArg, p->zSql, (iNow - p->startTime)*1000000); } #endif From 0cf68a9b175b5fef19ab3470bd8a594f81eb6ee7 Mon Sep 17 00:00:00 2001 From: drh Date: Thu, 29 Jul 2010 10:13:25 +0000 Subject: [PATCH 5/7] Unconditionally include the pTmpSpace size in the estimate of the pager memory used. FossilOrigin-Name: 4b97f8640e9167cd355a24836fe74e4224cf12b9 --- manifest | 18 +++++++++--------- manifest.uuid | 2 +- src/pager.c | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/manifest b/manifest index 805f29dba1..5ed81fd93d 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Change\sthe\sprofile\stimer\sunits\sback\sto\snanoseconds\sand\supdate\sthe\nsqlite3_profile()\sdocumentation.\nTicket\s[c43940c49b74c70a69] -D 2010-07-29T10:07:21 +C Unconditionally\sinclude\sthe\spTmpSpace\ssize\sin\sthe\sestimate\sof\sthe\spager\nmemory\sused. +D 2010-07-29T10:13:25 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -159,7 +159,7 @@ F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e F src/os_unix.c 3109e0e5a0d5551bab2e8c7322b20a3b8b171248 F src/os_win.c 1f8b0a1a5bcf6289e7754d0d3c16cec16d4c93ab -F src/pager.c b877df9489b647cb3a9b3590f168bd4ee31bf9e7 +F src/pager.c 33117640d8e0058dbf705b95e20ebf246cbb4bc1 F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58 F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07 @@ -842,14 +842,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 53902f7d4a46aa70ecc5bf180a01ff888d52686a -R 5c7f3d7af62d969d6bf07f63f9a6dc16 +P 7783b98a938b77d6b8e4e85b32b05452c47fbe4b +R 54f530c45555c790bc9a8821ecdef2cc U drh -Z 278ae6e643818185a89142571af06620 +Z 869a0eb236cd26434ebfb55c77681f9e -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFMUVLcoxKgR168RlERAoZMAJ49AHrWc/0+siMt64/zrJKLt1+nUACeMpNG -x2umDnXBmB1KEwdKFIiDQOs= -=yNbn +iD8DBQFMUVRIoxKgR168RlERAvBDAJ9CRTxDpPrfIV014m7PF1cya0vJ4wCfcUqX +d/N5Jv9w79SBeOLPorRuaro= +=dYzW -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index 2a79f9f55c..0ff4782576 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -7783b98a938b77d6b8e4e85b32b05452c47fbe4b \ No newline at end of file +4b97f8640e9167cd355a24836fe74e4224cf12b9 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index adab9ff5ee..d5bbae145c 100644 --- a/src/pager.c +++ b/src/pager.c @@ -5418,7 +5418,7 @@ int sqlite3PagerMemUsed(Pager *pPager){ + 5*sizeof(void*); return perPageSize*sqlite3PcachePagecount(pPager->pPCache) + sqlite3MallocSize(pPager) - + (pPager->pTmpSpace ? pPager->pageSize : 0); + + pPager->pageSize; } /* From 60176fa925ce01cbe0bc7e2ff54038f1286abd30 Mon Sep 17 00:00:00 2001 From: drh Date: Fri, 30 Jul 2010 00:31:08 +0000 Subject: [PATCH 6/7] Updates to the README.txt file for ICU. FossilOrigin-Name: d37443d33388b402e610a00c362a1e2e79548801 --- ext/icu/README.txt | 3 +-- manifest | 18 +++++++++--------- manifest.uuid | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/ext/icu/README.txt b/ext/icu/README.txt index 5c995ccb4a..c5cadb57d1 100644 --- a/ext/icu/README.txt +++ b/ext/icu/README.txt @@ -139,7 +139,7 @@ SQLite. Documentation follows. 3.2 The SQLITE_MAX_LIKE_PATTERN_LENGTH Macro Passing very long patterns to the built-in SQLite LIKE operator can - cause a stack overflow. To curb this problem, SQLite defines the + cause excessive CPU usage. To curb this problem, SQLite defines the SQLITE_MAX_LIKE_PATTERN_LENGTH macro as the maximum length of a pattern in bytes (irrespective of encoding). The default value is defined in internal header file "limits.h". @@ -167,4 +167,3 @@ SQLite. Documentation follows. malicious users may execute arbitrary SQL (i.e. gears), they should be prevented from invoking the icu_load_collation() function, possibly using the authorisation callback. - diff --git a/manifest b/manifest index 5ed81fd93d..5617c40445 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Unconditionally\sinclude\sthe\spTmpSpace\ssize\sin\sthe\sestimate\sof\sthe\spager\nmemory\sused. -D 2010-07-29T10:13:25 +C Updates\sto\sthe\sREADME.txt\sfile\sfor\sICU. +D 2010-07-30T00:31:08 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -77,7 +77,7 @@ F ext/fts3/fts3_tokenizer.h 13ffd9fcb397fec32a05ef5cd9e0fa659bf3dbd3 F ext/fts3/fts3_tokenizer1.c b6d86d1d750787db5c168c73da4e87670ed890a1 F ext/fts3/fts3_write.c 4b21a0c6f2772b261f14e3a2e80e1e3e849268b0 F ext/fts3/mkfts3amal.tcl 252ecb7fe6467854f2aa237bf2c390b74e71f100 -F ext/icu/README.txt 3b130aa66e7a681136f6add198b076a2f90d1e33 +F ext/icu/README.txt bf8461d8cdc6b8f514c080e4e10dc3b2bbdfefa9 F ext/icu/icu.c 850e9a36567bbcce6bd85a4b68243cad8e3c2de2 F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37 F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761 @@ -842,14 +842,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 7783b98a938b77d6b8e4e85b32b05452c47fbe4b -R 54f530c45555c790bc9a8821ecdef2cc +P 4b97f8640e9167cd355a24836fe74e4224cf12b9 +R fda1ba80f79b2fb815acfba3823e7f3c U drh -Z 869a0eb236cd26434ebfb55c77681f9e +Z e6f3e75f35f977c024c7ef45c20f7378 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFMUVRIoxKgR168RlERAvBDAJ9CRTxDpPrfIV014m7PF1cya0vJ4wCfcUqX -d/N5Jv9w79SBeOLPorRuaro= -=dYzW +iD8DBQFMUh1PoxKgR168RlERAhDjAJ94fFkU1Vvwjzg0aF63VdoJQml3IQCgiaGY +8YFN918cOPji+ErsPUza7Is= +=2Eaq -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index 0ff4782576..01f814373c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4b97f8640e9167cd355a24836fe74e4224cf12b9 \ No newline at end of file +d37443d33388b402e610a00c362a1e2e79548801 \ No newline at end of file From 3843a4c19a24e58651501e8322bc1276f057697a Mon Sep 17 00:00:00 2001 From: dan Date: Fri, 30 Jul 2010 05:06:05 +0000 Subject: [PATCH 7/7] Add tests to check that the ICU regexp() function can only be called with exactly two arguments. FossilOrigin-Name: 451d965742cc219db709939b4ba1da2f2343dbce --- manifest | 24 +++++++----------------- manifest.uuid | 2 +- test/icu.test | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/manifest b/manifest index 5617c40445..0279e04f11 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,5 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -C Updates\sto\sthe\sREADME.txt\sfile\sfor\sICU. -D 2010-07-30T00:31:08 +C Add\stests\sto\scheck\sthat\sthe\sICU\sregexp()\sfunction\scan\sonly\sbe\scalled\swith\sexactly\stwo\sarguments. +D 2010-07-30T05:06:05 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -434,7 +431,7 @@ F test/fuzz3.test aec64345184d1662bd30e6a17851ff659d596dc5 F test/fuzz_common.tcl a87dfbb88c2a6b08a38e9a070dabd129e617b45b F test/fuzz_malloc.test dd7001ac86d09c154a7dff064f4739c60e2b312c F test/hook.test f04c3412463f8ec117c1c704c74ca0f627ce733a -F test/icu.test 1fc0ff9a3bafc80abf679b11afc0f8a3ce995abd +F test/icu.test 70df4faca133254c042d02ae342c0a141f2663f4 F test/in.test d49419c6df515852f477fa513f3317181d46bc92 F test/in2.test 5d4c61d17493c832f7d2d32bef785119e87bde75 F test/in3.test 3cbf58c87f4052cee3a58b37b6389777505aa0c0 @@ -842,14 +839,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 4b97f8640e9167cd355a24836fe74e4224cf12b9 -R fda1ba80f79b2fb815acfba3823e7f3c -U drh -Z e6f3e75f35f977c024c7ef45c20f7378 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.6 (GNU/Linux) - -iD8DBQFMUh1PoxKgR168RlERAhDjAJ94fFkU1Vvwjzg0aF63VdoJQml3IQCgiaGY -8YFN918cOPji+ErsPUza7Is= -=2Eaq ------END PGP SIGNATURE----- +P d37443d33388b402e610a00c362a1e2e79548801 +R 1df44901de4b741a545cdb85506640b4 +U dan +Z 47b66d0e2bb0d61fe912692f971ceef4 diff --git a/manifest.uuid b/manifest.uuid index 01f814373c..98e6351865 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d37443d33388b402e610a00c362a1e2e79548801 \ No newline at end of file +451d965742cc219db709939b4ba1da2f2343dbce \ No newline at end of file diff --git a/test/icu.test b/test/icu.test index 46596e4c9a..73cb9b913e 100644 --- a/test/icu.test +++ b/test/icu.test @@ -114,4 +114,23 @@ do_test icu-4.3 { } } {apricot cherry chokecherry yamot peach plum} +#------------------------------------------------------------------------- +# Test that it is not possible to call the ICU regex() function with +# anything other than exactly two arguments. See also: +# +# http://src.chromium.org/viewvc/chrome/trunk/src/third_party/sqlite/icu-regexp.patch?revision=34807&view=markup +# +do_catchsql_test icu-5.1 { SELECT regexp('a[abc]c.*', 'abc') } {0 1} +do_catchsql_test icu-5.2 { + SELECT regexp('a[abc]c.*') +} {1 {wrong number of arguments to function regexp()}} +do_catchsql_test icu-5.3 { + SELECT regexp('a[abc]c.*', 'abc', 'c') +} {1 {wrong number of arguments to function regexp()}} +do_catchsql_test icu-5.4 { + SELECT 'abc' REGEXP 'a[abc]c.*' +} {0 1} +do_catchsql_test icu-5.4 { SELECT 'abc' REGEXP } {1 {near " ": syntax error}} +do_catchsql_test icu-5.5 { SELECT 'abc' REGEXP, 1 } {1 {near ",": syntax error}} + finish_test