mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Merge further trunk changes into experimental branch.
FossilOrigin-Name: fb847d70407b0f0e548919b7554f62bc1dab8a6c
This commit is contained in:
@@ -139,7 +139,7 @@ SQLite. Documentation follows.
|
|||||||
3.2 The SQLITE_MAX_LIKE_PATTERN_LENGTH Macro
|
3.2 The SQLITE_MAX_LIKE_PATTERN_LENGTH Macro
|
||||||
|
|
||||||
Passing very long patterns to the built-in SQLite LIKE operator can
|
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
|
SQLITE_MAX_LIKE_PATTERN_LENGTH macro as the maximum length of a
|
||||||
pattern in bytes (irrespective of encoding). The default value is
|
pattern in bytes (irrespective of encoding). The default value is
|
||||||
defined in internal header file "limits.h".
|
defined in internal header file "limits.h".
|
||||||
@@ -167,4 +167,3 @@ SQLite. Documentation follows.
|
|||||||
malicious users may execute arbitrary SQL (i.e. gears), they
|
malicious users may execute arbitrary SQL (i.e. gears), they
|
||||||
should be prevented from invoking the icu_load_collation() function,
|
should be prevented from invoking the icu_load_collation() function,
|
||||||
possibly using the authorisation callback.
|
possibly using the authorisation callback.
|
||||||
|
|
||||||
|
28
manifest
28
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Merge\strunk\schanges\sinto\sexperimental\sbranch.
|
C Merge\sfurther\strunk\schanges\sinto\sexperimental\sbranch.
|
||||||
D 2010-07-28T18:35:50
|
D 2010-07-30T07:26:51
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e
|
F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -74,7 +74,7 @@ F ext/fts3/fts3_tokenizer.h 13ffd9fcb397fec32a05ef5cd9e0fa659bf3dbd3
|
|||||||
F ext/fts3/fts3_tokenizer1.c b6d86d1d750787db5c168c73da4e87670ed890a1
|
F ext/fts3/fts3_tokenizer1.c b6d86d1d750787db5c168c73da4e87670ed890a1
|
||||||
F ext/fts3/fts3_write.c 4b21a0c6f2772b261f14e3a2e80e1e3e849268b0
|
F ext/fts3/fts3_write.c 4b21a0c6f2772b261f14e3a2e80e1e3e849268b0
|
||||||
F ext/fts3/mkfts3amal.tcl 252ecb7fe6467854f2aa237bf2c390b74e71f100
|
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/icu.c 850e9a36567bbcce6bd85a4b68243cad8e3c2de2
|
||||||
F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37
|
F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37
|
||||||
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
|
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
|
||||||
@@ -116,7 +116,7 @@ F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff
|
|||||||
F src/btree.c ed454f53f7bf7fb89c7a89f93fa93c5cd35e7aae
|
F src/btree.c ed454f53f7bf7fb89c7a89f93fa93c5cd35e7aae
|
||||||
F src/btree.h dd83041eda10c17daf023257c1fc883b5f71f85a
|
F src/btree.h dd83041eda10c17daf023257c1fc883b5f71f85a
|
||||||
F src/btreeInt.h b0c87f6725b06a0aa194a6d25d54b16ce9d6e291
|
F src/btreeInt.h b0c87f6725b06a0aa194a6d25d54b16ce9d6e291
|
||||||
F src/build.c d4593392b8bf0753dd16f494628823f6f39ee7fb
|
F src/build.c 0018d49629fc4807100c988dd191dd95e185bb38
|
||||||
F src/callback.c da3c38d0ef5d7f04fae371e519bda61aa9cb1704
|
F src/callback.c da3c38d0ef5d7f04fae371e519bda61aa9cb1704
|
||||||
F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
|
F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
|
||||||
F src/ctime.c 4f3aadad62c6c9f0d4e5a96718516ac4e3c598df
|
F src/ctime.c 4f3aadad62c6c9f0d4e5a96718516ac4e3c598df
|
||||||
@@ -124,7 +124,7 @@ F src/date.c 5dd8448a0bfea8d31fb14cff487d0c06ff8c8b20
|
|||||||
F src/delete.c 7ed8a8c8b5f748ece92df173d7e0f7810c899ebd
|
F src/delete.c 7ed8a8c8b5f748ece92df173d7e0f7810c899ebd
|
||||||
F src/expr.c a0fd9c5e248229851077de92f2e9346f2c43ed46
|
F src/expr.c a0fd9c5e248229851077de92f2e9346f2c43ed46
|
||||||
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
|
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
|
||||||
F src/fkey.c cacfe3e24b311e4e089a9c470bdb73196af6f729
|
F src/fkey.c 58bbf52c6ddd3f64ca40a3230f9e548a83a5cb16
|
||||||
F src/func.c 75dc1fd91e5692cadb80d257bab68d7343060467
|
F src/func.c 75dc1fd91e5692cadb80d257bab68d7343060467
|
||||||
F src/global.c 02335177cf6946fe5525c6f0755cf181140debf3
|
F src/global.c 02335177cf6946fe5525c6f0755cf181140debf3
|
||||||
F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
|
F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
|
||||||
@@ -156,7 +156,7 @@ F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
|
|||||||
F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e
|
F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e
|
||||||
F src/os_unix.c ae5ca8a6031380708f3fec7be325233d49944914
|
F src/os_unix.c ae5ca8a6031380708f3fec7be325233d49944914
|
||||||
F src/os_win.c 51cb62f76262d961ea4249489383d714501315a7
|
F src/os_win.c 51cb62f76262d961ea4249489383d714501315a7
|
||||||
F src/pager.c 4cf634d80958f69fa3882624067423cd7547d976
|
F src/pager.c 65efcf8cc70de5facf4375dbd78a99ceb3d19d6e
|
||||||
F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
|
F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
|
||||||
F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
|
F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
|
||||||
F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
|
F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
|
||||||
@@ -170,7 +170,7 @@ F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706
|
|||||||
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
|
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
|
||||||
F src/select.c 74fef1334bec27e606ef0b19e5c41cd0a639e69c
|
F src/select.c 74fef1334bec27e606ef0b19e5c41cd0a639e69c
|
||||||
F src/shell.c 8517fc1f9c59ae4007e6cc8b9af91ab231ea2056
|
F src/shell.c 8517fc1f9c59ae4007e6cc8b9af91ab231ea2056
|
||||||
F src/sqlite.h.in 77af8becd95ddd5149448fa667b20845da98072d
|
F src/sqlite.h.in 372baf01f7f58b18dfa85e13b55985f2edd6ebc8
|
||||||
F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
|
F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
|
||||||
F src/sqliteInt.h a9be6badc6cd6a3c1ae54475a98661cf351ecad5
|
F src/sqliteInt.h a9be6badc6cd6a3c1ae54475a98661cf351ecad5
|
||||||
F src/sqliteLimit.h 196e2f83c3b444c4548fc1874f52f84fdbda40f3
|
F src/sqliteLimit.h 196e2f83c3b444c4548fc1874f52f84fdbda40f3
|
||||||
@@ -221,7 +221,7 @@ F src/vacuum.c 241a8386727c1497eba4955933356dfba6ff8c9f
|
|||||||
F src/vdbe.c cefff41564b68a412e65e6a1013ec1b1c1ece6c4
|
F src/vdbe.c cefff41564b68a412e65e6a1013ec1b1c1ece6c4
|
||||||
F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2
|
F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2
|
||||||
F src/vdbeInt.h ffd68c4d4229227a5089bec53a1c635146177abc
|
F src/vdbeInt.h ffd68c4d4229227a5089bec53a1c635146177abc
|
||||||
F src/vdbeapi.c dc3138f10afbc95ed3c21dd25abb154504b1db9d
|
F src/vdbeapi.c d0f4407e465f261780ad725c1caece7d66a6aa35
|
||||||
F src/vdbeaux.c 77442ab4233858cf603910429033fbbd997ecdef
|
F src/vdbeaux.c 77442ab4233858cf603910429033fbbd997ecdef
|
||||||
F src/vdbeblob.c 258a6010ba7a82b72b327fb24c55790655689256
|
F src/vdbeblob.c 258a6010ba7a82b72b327fb24c55790655689256
|
||||||
F src/vdbemem.c 5e579abf6532001dfbee0e640dc34eae897a9807
|
F src/vdbemem.c 5e579abf6532001dfbee0e640dc34eae897a9807
|
||||||
@@ -330,7 +330,7 @@ F test/createtab.test 199cf68f44e5d9e87a0b8afc7130fdeb4def3272
|
|||||||
F test/cse.test 277350a26264495e86b1785f34d2d0c8600e021c
|
F test/cse.test 277350a26264495e86b1785f34d2d0c8600e021c
|
||||||
F test/ctime.test 7bd009071e242aac4f18521581536b652b789a47
|
F test/ctime.test 7bd009071e242aac4f18521581536b652b789a47
|
||||||
F test/date.test 6354b883f922c38046a8efbad187cc95df6da023
|
F test/date.test 6354b883f922c38046a8efbad187cc95df6da023
|
||||||
F test/dbstatus.test ce26cd49a3746ca7ae0e5802ef0b2a9edbf71b29
|
F test/dbstatus.test f3c88a3f8d15716e6ae73567a78ee96420c294a3
|
||||||
F test/default.test 6faf23ccb300114924353007795aa9a8ec0aa9dc
|
F test/default.test 6faf23ccb300114924353007795aa9a8ec0aa9dc
|
||||||
F test/delete.test f7629d9eb245dfca170169cc5c7a735dec34aeb4
|
F test/delete.test f7629d9eb245dfca170169cc5c7a735dec34aeb4
|
||||||
F test/delete2.test 3a03f2cca1f9a67ec469915cb8babd6485db43fa
|
F test/delete2.test 3a03f2cca1f9a67ec469915cb8babd6485db43fa
|
||||||
@@ -355,7 +355,7 @@ F test/fallocate.test 0594314eb04268f7d0779d054fa850a36a5ae8bc
|
|||||||
F test/filectrl.test 97003734290887566e01dded09dc9e99cb937e9e
|
F test/filectrl.test 97003734290887566e01dded09dc9e99cb937e9e
|
||||||
F test/filefmt.test 5d271bf467e6557fe7499dcc8203069c9dc5825e
|
F test/filefmt.test 5d271bf467e6557fe7499dcc8203069c9dc5825e
|
||||||
F test/fkey1.test 01c7de578e11747e720c2d9aeef27f239853c4da
|
F test/fkey1.test 01c7de578e11747e720c2d9aeef27f239853c4da
|
||||||
F test/fkey2.test 098c06c139a79f690301a43511cd1f6420ae5433
|
F test/fkey2.test e028cd80aa0bd38541c99214e3ba2dfccadffe6f
|
||||||
F test/fkey3.test 42f88d6048d8dc079e2a8cf7baad1cc1483a7620
|
F test/fkey3.test 42f88d6048d8dc079e2a8cf7baad1cc1483a7620
|
||||||
F test/fkey_malloc.test a5ede29bd2f6e56dea78c3d43fb86dd696c068c8
|
F test/fkey_malloc.test a5ede29bd2f6e56dea78c3d43fb86dd696c068c8
|
||||||
F test/format4.test 1f0cac8ff3895e9359ed87e41aaabee982a812eb
|
F test/format4.test 1f0cac8ff3895e9359ed87e41aaabee982a812eb
|
||||||
@@ -432,7 +432,7 @@ F test/fuzz3.test aec64345184d1662bd30e6a17851ff659d596dc5
|
|||||||
F test/fuzz_common.tcl a87dfbb88c2a6b08a38e9a070dabd129e617b45b
|
F test/fuzz_common.tcl a87dfbb88c2a6b08a38e9a070dabd129e617b45b
|
||||||
F test/fuzz_malloc.test dd7001ac86d09c154a7dff064f4739c60e2b312c
|
F test/fuzz_malloc.test dd7001ac86d09c154a7dff064f4739c60e2b312c
|
||||||
F test/hook.test f04c3412463f8ec117c1c704c74ca0f627ce733a
|
F test/hook.test f04c3412463f8ec117c1c704c74ca0f627ce733a
|
||||||
F test/icu.test 1fc0ff9a3bafc80abf679b11afc0f8a3ce995abd
|
F test/icu.test 70df4faca133254c042d02ae342c0a141f2663f4
|
||||||
F test/in.test d49419c6df515852f477fa513f3317181d46bc92
|
F test/in.test d49419c6df515852f477fa513f3317181d46bc92
|
||||||
F test/in2.test 5d4c61d17493c832f7d2d32bef785119e87bde75
|
F test/in2.test 5d4c61d17493c832f7d2d32bef785119e87bde75
|
||||||
F test/in3.test 3cbf58c87f4052cee3a58b37b6389777505aa0c0
|
F test/in3.test 3cbf58c87f4052cee3a58b37b6389777505aa0c0
|
||||||
@@ -840,7 +840,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
|||||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||||
P 0714aeccd82d82686c074c1bb74ea794b7bfa3a3 ae89777e7f8bae2cdd3407395ea84c1b39577c4b
|
P aa81900153a2762cb2ad41e6710c1f1e7dc8b41e 451d965742cc219db709939b4ba1da2f2343dbce
|
||||||
R 929440acfba750114000a8118fc5b2ef
|
R ed3ad896c2cd90b3c1af9b65becc7431
|
||||||
U dan
|
U dan
|
||||||
Z 1bb342ebf679301c7cb8840574e16573
|
Z 9e7bcf251287b29d791a1cd12b29e0e0
|
||||||
|
@@ -1 +1 @@
|
|||||||
aa81900153a2762cb2ad41e6710c1f1e7dc8b41e
|
fb847d70407b0f0e548919b7554f62bc1dab8a6c
|
@@ -513,7 +513,9 @@ void sqlite3DeleteTable(sqlite3 *db, Table *pTable){
|
|||||||
#ifndef SQLITE_OMIT_CHECK
|
#ifndef SQLITE_OMIT_CHECK
|
||||||
sqlite3ExprDelete(db, pTable->pCheck);
|
sqlite3ExprDelete(db, pTable->pCheck);
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef SQLITE_OMIT_VIRTUALTABLE
|
||||||
sqlite3VtabClear(db, pTable);
|
sqlite3VtabClear(db, pTable);
|
||||||
|
#endif
|
||||||
sqlite3DbFree(db, pTable);
|
sqlite3DbFree(db, pTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -500,7 +500,8 @@ static void fkScanChildren(
|
|||||||
if( pIdx ){
|
if( pIdx ){
|
||||||
Column *pCol;
|
Column *pCol;
|
||||||
iCol = pIdx->aiColumn[i];
|
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->iTable = regData+iCol+1;
|
||||||
pLeft->affinity = pCol->affinity;
|
pLeft->affinity = pCol->affinity;
|
||||||
pLeft->pColl = sqlite3LocateCollSeq(pParse, pCol->zColl);
|
pLeft->pColl = sqlite3LocateCollSeq(pParse, pCol->zColl);
|
||||||
|
@@ -332,7 +332,7 @@ struct PagerSavepoint {
|
|||||||
struct Pager {
|
struct Pager {
|
||||||
sqlite3_vfs *pVfs; /* OS functions to use for IO */
|
sqlite3_vfs *pVfs; /* OS functions to use for IO */
|
||||||
u8 exclusiveMode; /* Boolean. True if locking_mode==EXCLUSIVE */
|
u8 exclusiveMode; /* Boolean. True if locking_mode==EXCLUSIVE */
|
||||||
u8 journalMode; /* On of the PAGER_JOURNALMODE_* values */
|
u8 journalMode; /* One of the PAGER_JOURNALMODE_* values */
|
||||||
u8 useJournal; /* Use a rollback journal on this file */
|
u8 useJournal; /* Use a rollback journal on this file */
|
||||||
u8 noReadlock; /* Do not bother to obtain readlocks */
|
u8 noReadlock; /* Do not bother to obtain readlocks */
|
||||||
u8 noSync; /* Do not sync the journal if true */
|
u8 noSync; /* Do not sync the journal if true */
|
||||||
@@ -5152,7 +5152,7 @@ int sqlite3PagerCommitPhaseOne(
|
|||||||
);
|
);
|
||||||
if( !zMaster && isOpen(pPager->jfd)
|
if( !zMaster && isOpen(pPager->jfd)
|
||||||
&& pPager->journalOff==jrnlBufferSize(pPager)
|
&& pPager->journalOff==jrnlBufferSize(pPager)
|
||||||
&& pPager->dbSize>=pPager->dbFileSize
|
&& pPager->dbSize>=pPager->dbOrigSize
|
||||||
&& (0==(pPg = sqlite3PcacheDirtyList(pPager->pPCache)) || 0==pPg->pDirty)
|
&& (0==(pPg = sqlite3PcacheDirtyList(pPager->pPCache)) || 0==pPg->pDirty)
|
||||||
){
|
){
|
||||||
/* Update the db file change counter via the direct-write method. The
|
/* Update the db file change counter via the direct-write method. The
|
||||||
@@ -5418,7 +5418,7 @@ int sqlite3PagerMemUsed(Pager *pPager){
|
|||||||
+ 5*sizeof(void*);
|
+ 5*sizeof(void*);
|
||||||
return perPageSize*sqlite3PcachePagecount(pPager->pPCache)
|
return perPageSize*sqlite3PcachePagecount(pPager->pPCache)
|
||||||
+ sqlite3MallocSize(pPager)
|
+ sqlite3MallocSize(pPager)
|
||||||
+ (pPager->pTmpSpace ? pPager->pageSize : 0);
|
+ pPager->pageSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -2180,7 +2180,13 @@ int sqlite3_set_authorizer(
|
|||||||
** ^The callback function registered by sqlite3_profile() is invoked
|
** ^The callback function registered by sqlite3_profile() is invoked
|
||||||
** as each SQL statement finishes. ^The profile callback contains
|
** as each SQL statement finishes. ^The profile callback contains
|
||||||
** the original statement text and an estimate of wall-clock time
|
** 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*);
|
void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
|
||||||
SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*,
|
SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*,
|
||||||
|
@@ -398,7 +398,7 @@ static int sqlite3Step(Vdbe *p){
|
|||||||
if( rc!=SQLITE_ROW && db->xProfile && !db->init.busy && p->zSql ){
|
if( rc!=SQLITE_ROW && db->xProfile && !db->init.busy && p->zSql ){
|
||||||
sqlite3_int64 iNow;
|
sqlite3_int64 iNow;
|
||||||
sqlite3OsCurrentTimeInt64(db->pVfs, &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
|
#endif
|
||||||
|
|
||||||
|
@@ -33,7 +33,7 @@ do_test dbstatus-1.1 {
|
|||||||
set sz2 [lindex [sqlite3_db_status db SQLITE_DBSTATUS_CACHE_USED 0] 1]
|
set sz2 [lindex [sqlite3_db_status db SQLITE_DBSTATUS_CACHE_USED 0] 1]
|
||||||
set ::PAGESZ [expr {$sz2-$sz1}]
|
set ::PAGESZ [expr {$sz2-$sz1}]
|
||||||
set ::BASESZ [expr {$sz1-$::PAGESZ}]
|
set ::BASESZ [expr {$sz1-$::PAGESZ}]
|
||||||
expr {$::PAGESZ>1024 && $::PAGESZ<1200}
|
expr {$::PAGESZ>1024 && $::PAGESZ<1300}
|
||||||
} {1}
|
} {1}
|
||||||
do_test dbstatus-1.2 {
|
do_test dbstatus-1.2 {
|
||||||
db eval {
|
db eval {
|
||||||
|
@@ -1936,5 +1936,50 @@ do_test fkey2-dd08e5.1.6 {
|
|||||||
}
|
}
|
||||||
} {1 {foreign key constraint failed}}
|
} {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
|
finish_test
|
||||||
|
@@ -114,4 +114,23 @@ do_test icu-4.3 {
|
|||||||
}
|
}
|
||||||
} {apricot cherry chokecherry yamot peach plum}
|
} {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
|
finish_test
|
||||||
|
Reference in New Issue
Block a user