From 84fa240f37adb183c0748e633b34dad5a245590f Mon Sep 17 00:00:00 2001 From: drh <> Date: Thu, 21 Mar 2024 22:12:45 +0000 Subject: [PATCH] Fix a assert() that is incorrect, though harmless. Also add a test case. FossilOrigin-Name: 90537ce044c50ecca35920ecb27c7fb07d535be828ea943416c4633008d360b9 --- manifest | 16 ++++++++-------- manifest.uuid | 2 +- src/expr.c | 5 +++-- test/default.test | 4 ++++ 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/manifest b/manifest index c78f0def9d..81ca1ad724 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\sproblem\sinvolving\sinfinities\sint\sthe\sKahan-Babushka-Neumaier\ssummation\salgorithm. -D 2024-03-19T10:58:59.901 +C Fix\sa\sassert()\sthat\sis\sincorrect,\sthough\sharmless.\s\sAlso\sadd\sa\stest\scase. +D 2024-03-21T22:12:45.346 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -688,7 +688,7 @@ F src/date.c 3b8d02977d160e128469de38493b4085f7c5cf4073193459909a6af3cf6d7c91 F src/dbpage.c 80e46e1df623ec40486da7a5086cb723b0275a6e2a7b01d9f9b5da0f04ba2782 F src/dbstat.c 3b677254d512fcafd4d0b341bf267b38b235ccfddbef24f9154e19360fa22e43 F src/delete.c cb766727c78e715f9fb7ec8a7d03658ed2a3016343ca687acfcec9083cdca500 -F src/expr.c 3381ee4c9aa7ccde22a2a7f35ce343925a7a25d96bdc943649131f9decdebad2 +F src/expr.c 2b8496acec9b40cedcbb31c3b0d6cb797359eec10a73840e925de7cab06c99a9 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c a47610f0a5c6cb0ad79f8fcef039c01833dec0c751bb695f28dc0ec6a4c3ba00 F src/func.c 283d4f3b2751a1d9339fd93a8a013d1948fd5f4474a3cab0955eb4fafd445d0f @@ -1044,7 +1044,7 @@ F test/dbpagefault.test 35f06cfb2ef100a9b19d25754e8141b9cba9b7daabd4c60fa5af93fc F test/dbstatus.test 4a4221a883025ffd39696b3d1b3910b928fb097d77e671351acb35f3aed42759 F test/dbstatus2.test f5fe0afed3fa45e57cfa70d1147606c20d2ba23feac78e9a172f2fe8ab5b78ef F test/decimal.test ef731887b43ee32ef86e1c8fddb61a40789f988332c029c601dcf2c319277e9e -F test/default.test 9687cfb16717e4b8238c191697c98be88c0b16e568dd5368cd9284154097ef50 +F test/default.test 830fad7180cdf0e6a06e93acc0403bf73762314a639363314db5674c631b6127 F test/delete.test 2686e1c98d552ef37d79ad55b17b93fe96fad9737786917ce3839767f734c48f F test/delete2.test 3a03f2cca1f9a67ec469915cb8babd6485db43fa F test/delete3.test 555e84a00a99230b7d049d477a324a631126a6ab @@ -2160,9 +2160,9 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P d8cd6d49b46a395b13955387d05e9e1a2a47e54fb99f3c9b59835bbefad6af77 -Q +0984e5cd2574780dc1952e3daebafba9ddbb3b4937325117b922fdad0652db57 -R 3d4de40f4beae4f7c9c82ee262f67b17 +P 8af5878138f30515c0d4031cb4450a1b6f96a023a8f2dd5e6591a1096b1ecaa6 +Q +57b0c984605d0f437b4930f6b994e15b80340c753d46a679b07d356c645856ea +R b24cd64eb6eb2f2c189b87d484db7a39 U drh -Z 93fbcfdee3adea07bb5fbf3f9457758d +Z 645227f5a09cdf219a892b679bb1a749 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 346e83327a..a6fbbe1f7c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8af5878138f30515c0d4031cb4450a1b6f96a023a8f2dd5e6591a1096b1ecaa6 \ No newline at end of file +90537ce044c50ecca35920ecb27c7fb07d535be828ea943416c4633008d360b9 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index f9b280bbc5..7865332cf8 100644 --- a/src/expr.c +++ b/src/expr.c @@ -218,9 +218,10 @@ Expr *sqlite3ExprSkipCollateAndLikely(Expr *pExpr){ assert( pExpr->x.pList->nExpr>0 ); assert( pExpr->op==TK_FUNCTION ); pExpr = pExpr->x.pList->a[0].pExpr; - }else{ - assert( pExpr->op==TK_COLLATE ); + }else if( pExpr->op==TK_COLLATE ){ pExpr = pExpr->pLeft; + }else{ + break; } } return pExpr; diff --git a/test/default.test b/test/default.test index 06a180c1de..de67f643b4 100644 --- a/test/default.test +++ b/test/default.test @@ -136,5 +136,9 @@ do_catchsql_test default-5.1 { CREATE TABLE t1 (a,b DEFAULT(random() NOTNULL IN (RAISE(IGNORE),2,3))); INSERT INTO t1(a) VALUES(1); } {1 {RAISE() may only be used within a trigger-program}} +do_catchsql_test default-5.2 { + CREATE TABLE Table0 (Col0 DEFAULT (RAISE(IGNORE) ) ) ; + INSERT INTO Table0 DEFAULT VALUES ; +} {1 {RAISE() may only be used within a trigger-program}} finish_test -- 2.47.2