diff --git a/manifest b/manifest index f1fc682b75..4494e066c7 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Move\sthe\sallocation\sof\sthe\smemsys5\smutex\sinto\sthe\sinitializer. -D 2009-08-18T15:33:44 +C Unknown\sfunctions\sin\sthe\sDEFAULT\sclause\sof\sa\stable\scause\san\serror\swhen\nthe\sDEFAULT\svalue\sis\sneeded.\s\sTicket\s[2d401a94287b5]. +D 2009-08-18T16:05:47 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 0f7761c5d1c62ae7a841e3393ffaff1fa0f5c00a F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -117,7 +117,7 @@ F src/callback.c cb68b21b0d4ae7d11ae0e487933bce3323784dcf F src/complete.c 5ad5c6cd4548211867c204c41a126d73a9fbcea0 F src/date.c ab5f7137656652a48434d64f96bdcdc823bb23b3 F src/delete.c dcf07632d8ca3d4086df8b65ea907a47278e6382 -F src/expr.c d069ba1e060f296ea4f18fb85198fafefd00b22f +F src/expr.c 73b678023236b8c10078a0291b43ee642bc2c729 F src/fault.c dc88c821842157460750d2d61a8a8b4197d047ff F src/func.c e536218d193b8d326aab91120bc4c6f28aa2b606 F src/global.c 271952d199a8cc59d4ce840b3bbbfd2f30c8ba32 @@ -390,7 +390,7 @@ F test/fts3e.test 1f6c6ac9cc8b772ca256e6b22aaeed50c9350851 F test/fts3expr.test 05dab77387801e4900009917bb18f556037d82da F test/fts3expr2.test 18da930352e5693eaa163a3eacf96233b7290d1a F test/fts3near.test dc196dd17b4606f440c580d45b3d23aa975fd077 -F test/func.test 004caa157b91986bed8c85d7c7d0a86d6e10528d +F test/func.test af106ed834001738246d276659406823e35cde7b F test/fuzz.test a4174c3009a3e2c2e14b31b364ebf7ddb49de2c9 F test/fuzz2.test ea38692ce2da99ad79fe0be5eb1a452c1c4d37bb F test/fuzz3.test aec64345184d1662bd30e6a17851ff659d596dc5 @@ -749,14 +749,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl 672f81d693a03f80f5ae60bfefacd8a349e76746 -P 577bd6f15556b7f6d86ee5167353fdd535577bf6 -R 7a54c62e9fd97dfd56b8fffe44a0eb37 +P 4e377a09c194e90581ef00fd3a213e936b4e648a +R 106d1d9d8292feaff5d209c1b4f45eea U drh -Z 6c0284c62829374caa380ff879613eb8 +Z b419ed2a8ad50212ba01b76deb05691b -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFKisnboxKgR168RlERAte8AJ9s8UclPlH5WT13RZFRWzIyo6zclwCfSBfR -YrNqMlhHVmQCc/np3MWIiWY= -=G+W/ +iD8DBQFKitFeoxKgR168RlERAoHVAJ4kYkqnImXF2E1lmnWXndOvcAnongCcDG/w +uMdlFViYbHuGvwIqgTnxRjY= +=T5a1 -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index c23da88901..18fa660c97 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4e377a09c194e90581ef00fd3a213e936b4e648a \ No newline at end of file +093917d7fda442012dfd1a1b2f20f85d2eefa093 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index 9460163bf2..b4d84d158a 100644 --- a/src/expr.c +++ b/src/expr.c @@ -11,8 +11,6 @@ ************************************************************************* ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. -** -** $Id: expr.c,v 1.448 2009/07/27 10:05:05 danielk1977 Exp $ */ #include "sqliteInt.h" @@ -2372,7 +2370,10 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){ zId = pExpr->u.zToken; nId = sqlite3Strlen30(zId); pDef = sqlite3FindFunction(db, zId, nId, nFarg, enc, 0); - assert( pDef!=0 ); + if( pDef==0 ){ + sqlite3ErrorMsg(pParse, "unknown function: %.*s()", nId, zId); + break; + } if( pFarg ){ r1 = sqlite3GetTempRange(pParse, nFarg); sqlite3ExprCodeExprList(pParse, pFarg, r1, 1); diff --git a/test/func.test b/test/func.test index d87c013182..91ae0a5925 100644 --- a/test/func.test +++ b/test/func.test @@ -11,7 +11,6 @@ # This file implements regression tests for SQLite library. The # focus of this file is testing built-in functions. # -# $Id: func.test,v 1.93 2009/06/19 16:44:41 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -1157,4 +1156,16 @@ do_test func-27.3 { catchsql {SELECT coalesce(1,2)} } {0 1} +# Ticket 2d401a94287b5 +# Unknown function in a DEFAULT expression causes a segfault. +# +do_test func-28.1 { + db eval { + CREATE TABLE t28(x, y DEFAULT(nosuchfunc(1))); + } + catchsql { + INSERT INTO t28(x) VALUES(1); + } +} {1 {unknown function: nosuchfunc()}} + finish_test