]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
If an error occurs in the compile-time evaluation of an application-defined
authordrh <drh@noemail.net>
Thu, 12 Mar 2015 18:38:51 +0000 (18:38 +0000)
committerdrh <drh@noemail.net>
Thu, 12 Mar 2015 18:38:51 +0000 (18:38 +0000)
function, then propagate back out the exact error code, not just the
generic SQLITE_ERROR.

FossilOrigin-Name: 93f42586cc9db63c5a4599ce06630e60204a5bc9

manifest
manifest.uuid
src/vdbemem.c

index 1dc1a5dfbc4df192a559009dafa2eca8aecef1a1..9c102ed96c85cef9e65bdd6c700bafa138335eab 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C The\svalueFromFunction()\sroutine\sis\sbetter\sable\sto\shandle\sOOM\serrors.\nOmit\sunreachable\sbranches.
-D 2015-03-12T06:46:52.204
+C If\san\serror\soccurs\sin\sthe\scompile-time\sevaluation\sof\san\sapplication-defined\nfunction,\sthen\spropagate\sback\sout\sthe\sexact\serror\scode,\snot\sjust\sthe\ngeneric\sSQLITE_ERROR.
+D 2015-03-12T18:38:51.338
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 88a3e6261286db378fdffa1124cad11b3c05f5bb
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -299,7 +299,7 @@ F src/vdbeInt.h bb56fd199d8af1a2c1b9639ee2f70724b4338e3a
 F src/vdbeapi.c da6551c9a9b9272f9cf7c776a09302ce9ca691d3
 F src/vdbeaux.c 97911edb61074b871ec4aa2d6bb779071643dee5
 F src/vdbeblob.c 4f2e8e075d238392df98c5e03a64342465b03f90
-F src/vdbemem.c ba461e1aa9a3b2ef0507748057dd1ab9b850ea45
+F src/vdbemem.c 981fa5ac239d6a646b5720779844d991277dcd07
 F src/vdbesort.c 6d64c5448b64851b99931ede980addc3af70d5e2
 F src/vdbetrace.c 7e4222955e07dd707a2f360c0eb73452be1cb010
 F src/vtab.c 699f2b8d509cfe379c33dde33827875d5b030e01
@@ -1242,7 +1242,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P ff868e22ca0393eaac417872a4c10738f0d7d970
-R 116c507ff65f2736c7022117ecad1fa2
+P 8fb6bd9be59d6b04e922d7b246aaefd4851539b6
+R 46972b8481418c9af660c8cf08bd0f3b
 U drh
-Z e8a2ef91ffc822055ee072f19f53dce6
+Z f07316ba19973dffcb9b3c2ed85bb043
index 83d9b81077f659c981a87695fbf1792f70daf647..b430dfd5466f14524cf571d30f063ea515c66ea4 100644 (file)
@@ -1 +1 @@
-8fb6bd9be59d6b04e922d7b246aaefd4851539b6
\ No newline at end of file
+93f42586cc9db63c5a4599ce06630e60204a5bc9
\ No newline at end of file
index 8b23d678ea04e9aced8623510a69ee29fed5c3ed..353bfa7255ed30c9d7d6d7dc9b264c050328d9a4 100644 (file)
@@ -1210,7 +1210,10 @@ static int valueFromFunction(
   pFunc->xFunc(&ctx, nVal, apVal);
   if( ctx.isError ){
     rc = ctx.isError;
-    if( pCtx ) sqlite3ErrorMsg(pCtx->pParse, "%s", sqlite3_value_text(pVal));
+    if( pCtx ){
+      sqlite3ErrorMsg(pCtx->pParse, "%s", sqlite3_value_text(pVal));
+      pCtx->pParse->rc = rc;
+    }
   }else{
     sqlite3ValueApplyAffinity(pVal, aff, SQLITE_UTF8);
     if( rc==SQLITE_OK ){