- C Fix\sMSVC\scompiler\swarnings\sin\stest\scode.
- D 2012-03-30T14:59:43.262
-C If\sa\sCHECK\sconstraint\sis\snamed,\sreport\sthat\sname\son\sthe\serror\smessage\swhen\nthe\sconstraint\sfails.
-D 2012-03-07T19:13:29.390
++C When\sa\snamed\sCHECK\sconstraint\sfails,\sinclude\sthe\sname\sof\sthe\sconstraint\nin\sthe\serror\smessage.
++D 2012-03-30T15:48:48.787
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
-F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
+F Makefile.in 2f37e468503dbe79d35c9f6dffcf3fae1ae9ec20
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
-F Makefile.msc 3a5582a858b8071af43cd459bd757f7d0748f66a
-F Makefile.vxworks 1deb39c8bb047296c30161ffa10c1b5423e632f9
+F Makefile.msc 7849a871b6cdb20fd51baee6bbe5965a03326be4
+F Makefile.vxworks 3b7fe7a0571fdadc61363ebc1b23732d2d6363ca
F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
-F VERSION bb4c2a86abe53ea3c1d6ea515b69a426040e2414
+F VERSION f9313d88cb77df8617059a88eb382291321ef6bc
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531
F art/2005osaward.gif 0d1851b2a7c1c9d0ccce545f3e14bca42d7fd248
F src/backup.c 6be23a344d3301ae38e92fddb3a33b91c309fce4
F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef
F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7
-F src/btree.c 253c3147a4ebbaee42cd329dbdc0856200bbbda7
+F src/btree.c 02aeee1f6d425e11f7b9b2d9d461ac501645ed6f
F src/btree.h 48a013f8964f12d944d90e4700df47b72dd6d923
F src/btreeInt.h 26d8ca625b141927fe6620c1d2cf58eaf494ca0c
- F src/build.c 139dc386ebdaa78d2198247ebcf003305a5babe3
-F src/build.c d58d314c5837737e15f94959cb55115347725182
++F src/build.c 987c6933ea170e443dc6a79d52f8d2506206b12b
F src/callback.c 0425c6320730e6d3981acfb9202c1bed9016ad1a
F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
F src/ctime.c a9c26822515f81ec21588cbb482ca6724be02e33
F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
- F src/insert.c d7c69718acbb92e10e4b121da7bed13903342962
-F src/insert.c 82b1bc7aaa54d0f058101a034a28d47fe6b70613
++F src/insert.c 93eb9542ae1376d9317a7c8335d7e379f010aa76
F src/journal.c 552839e54d1bf76fb8f7abe51868b66acacf6a0e
F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f
F src/lempar.c 0ee69fca0be54cd93939df98d2aca4ca46f44416
F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
F src/os_unix.c 0e3d2942d228d0366fb80a3640f35caf413b66d1
F src/os_win.c 5ac061ae1326a71500cee578ed0fd9113b4f6a37
-F src/pager.c 3955b62cdb5bb64559607cb474dd12a6c8e1d4a5
+F src/pager.c 85988507fa20acc60defb834722eddf4633e4aeb
F src/pager.h ef1eaf8593e78f73885c1dfac27ad83bee23bdc5
- F src/parse.y 537c8db136af5f481630becdc0c8bdd36a704c30
-F src/parse.y 180976f414ba0473bffa7049b37aceab1e467175
++F src/parse.y eb054bb40a5bf90d3422a01ed0e5df229461727a
F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
F src/pcache.h 1b5dcc3dc8103d03e625b177023ee67764fa6b7c
F src/pcache1.c b30b1c35908346ecc43d8d9d17f2ddf6817f8f60
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
F src/resolve.c 3d3e80a98f203ac6b9329e9621e29eda85ddfd40
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
-F src/select.c 44ccdcb5d2a1c48622c179b2d72167b716388581
-F src/shell.c aa28f117033ba3e44b5eaaf2ad572222bcdfd66e
-F src/sqlite.h.in f46e368d1a28b09d876e35444785674d170f2d62
+F src/select.c f6f141cb1ea13f1e6564d3e162700e4937baa2a1
+F src/shell.c abf18d6ee54f2631860a98fdd7ab1327f470db67
+F src/sqlite.h.in 11a883919b0baf4ffaa7550cfeef99be613ec2bf
F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477
- F src/sqliteInt.h 3756ece33f1e7f8fe2adf8e523566825c809316e
-F src/sqliteInt.h 306a6f0c6732c0d706dfebfc780a133a38507aee
++F src/sqliteInt.h d701123ab4c8774ee2837cd4ade84e370d665f87
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
-F src/status.c 4568e72dfd36b6a5911f93457364deb072e0b03a
+F src/status.c 35939e7e03abf1b7577ce311f48f682c40de3208
F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
-F src/tclsqlite.c 2aeb69958965dad0842d5ea1456f1a958ef296e6
-F src/test1.c 328cbe4a4ee6d10d67ece2a7adaa2770569fae0f
+F src/tclsqlite.c 086dfdd72e5892de223968a258e1ccbd9693e717
+F src/test1.c 8631f728c9c3afcf79e3e22b510e451435e3d15e
F src/test2.c 711555927f1f7e8db9aab86b512bc6934a774abe
-F src/test3.c 91d3f1a09cfae3533ef17d8b484a160f3d1f1a21
+F src/test3.c f82399ec50d9cd7378bf9d6db6c1409d5e77b042
F src/test4.c d1e5a5e904d4b444cf572391fdcb017638e36ff7
F src/test5.c a6d1ac55ac054d0b2b8f37b5e655b6c92645a013
-F src/test6.c cf6ab27a59e1ab64b011bb251ba600131e803e59
+F src/test6.c 3329df2dbc0293031d763947ec08c9eef982ef1d
F src/test7.c 2e0781754905c8adc3268d8f0967e7633af58843
-F src/test8.c 99f70341d6ec480313775127f4cd14b4a47db557
+F src/test8.c 61b41d79509a479dec1ac32b6d4209b27c4b1ba5
F src/test9.c bea1e8cf52aa93695487badedd6e1886c321ea60
F src/test_async.c 0612a752896fad42d55c3999a5122af10dcf22ad
F src/test_autoext.c 30e7bd98ab6d70a62bb9ba572e4c7df347fe645e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
- P 36aa6665e709b5942b3558afbd555058b42f2c78
- R 19f0f46e7579b91721fe0a073b822b78
-P b00ccda307caae597c143ab0586f90acb77f79cf
-R 5242d5c6432e029c0fd352c1dbfa159a
-T *branch * named-check-constraints
-T *sym-named-check-constraints *
-T -sym-trunk *
++P cb7a850439c9a4a7887650d6b81d95ab8025de5b 9a0f90d9deb335ac71044b8afa81538d85cc7ccf
++R 3383713cde4154ba8c7927e87d965912
U drh
- Z 3f9228d0d5429417687badcbcda00070
-Z 198934e577031b93f87585ac1616330d
++Z 044e1c348f17a4e06833c51581164485
/* Test all CHECK constraints
*/
#ifndef SQLITE_OMIT_CHECK
- if( pTab->pCheck && (pParse->db->flags & SQLITE_IgnoreChecks)==0 ){
- int allOk = sqlite3VdbeMakeLabel(v);
+ if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){
+ ExprList *pCheck = pTab->pCheck;
+ int i;
pParse->ckBase = regData;
- sqlite3ExprIfTrue(pParse, pTab->pCheck, allOk, SQLITE_JUMPIFNULL);
onError = overrideError!=OE_Default ? overrideError : OE_Abort;
- if( onError==OE_Ignore ){
- sqlite3VdbeAddOp2(v, OP_Goto, 0, ignoreDest);
- }else{
- if( onError==OE_Replace ) onError = OE_Abort; /* IMP: R-15569-63625 */
- sqlite3HaltConstraint(pParse, onError, 0, 0);
+ for(i=0; i<pCheck->nExpr; i++){
+ int allOk = sqlite3VdbeMakeLabel(v);
+ sqlite3ExprIfTrue(pParse, pCheck->a[i].pExpr, allOk, SQLITE_JUMPIFNULL);
+ if( onError==OE_Ignore ){
+ sqlite3VdbeAddOp2(v, OP_Goto, 0, ignoreDest);
+ }else{
+ char *zConsName = pCheck->a[i].zName;
+ if( onError==OE_Replace ) onError = OE_Abort; /* IMP: R-15569-63625 */
+ if( zConsName ){
+ zConsName = sqlite3MPrintf(db, "constraint %s failed", zConsName);
+ }else{
- zConsName = sqlite3MPrintf(db, "constraint failed");
++ zConsName = 0;
+ }
+ sqlite3HaltConstraint(pParse, onError, zConsName, P4_DYNAMIC);
+ }
+ sqlite3VdbeResolveLabel(v, allOk);
}
- sqlite3VdbeResolveLabel(v, allOk);
}
#endif /* !defined(SQLITE_OMIT_CHECK) */