]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix the format() SQL function so that it returns an empty string not a
authordrh <>
Fri, 19 Jun 2026 16:55:08 +0000 (16:55 +0000)
committerdrh <>
Fri, 19 Jun 2026 16:55:08 +0000 (16:55 +0000)
NULL if the first argument is an empty string.
[bugs:/info/2026-06-19T16:40:04Z|Bug 2026-06-19T16:40:04Z]

FossilOrigin-Name: ece7af98a8bf982567b489cf82a52519f46a1c9360c82a486dbe1cd0664b1555

manifest
manifest.uuid
src/func.c

index 4c6006cd5c2579445ccf969a3f23fa76f39fe879..40c7a07bd8bc0856916944b9613f30be9d3d5c06 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\scast\sin\sfts3_write\sso\sthat\sit\sis\sapplied\sas\sintended.\sBug\s[bugs:/info/2026-06-19T07:56:23Z\s|\s2026-06-19T07:56:23Z].
-D 2026-06-19T11:46:05.961
+C Fix\sthe\sformat()\sSQL\sfunction\sso\sthat\sit\sreturns\san\sempty\sstring\snot\sa\nNULL\sif\sthe\sfirst\sargument\sis\san\sempty\sstring.\n[bugs:/info/2026-06-19T16:40:04Z|Bug\s2026-06-19T16:40:04Z]
+D 2026-06-19T16:55:08.727
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -691,7 +691,7 @@ F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
 F src/expr.c e97dd9f6ada4c448764e225d8963091bf630b3efb2c92e4d0762571cca2a14e5
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
-F src/func.c b62f451d670288d4b3fbd8b0a6aa98667de30de7e8c6de9b19112a9296b9ce1a
+F src/func.c 1d16098c987cd6aafa7930989b2ccdcc88af9fe75fd6a09d8e4fd3c61192b8c0
 F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b
 F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca
 F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
@@ -2208,8 +2208,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 979229f720e63d0294be14dae3f9fad68f76e4126a0ad63e32573cdfecd0151e
-R a53eaa85cfef4414eab52fda02bb530f
-U dan
-Z 181164ac7ba0d87b6bb5ff7ad06933d0
+P d6a3272e5592bcfeecf8a06dd8330cce57ff6603b24994b533d1fdcd48b5dc66
+R 7e7c087b6061ec959347a00d450a39f7
+U drh
+Z 9591ba0273abaf6614bea46629e85033
 # Remove this line to create a well-formed Fossil manifest.
index 3ae4403856202513ecb9d37fd31de3d015d3a7e6..88b0ccbb10c2fdd529be5f5d24c6d4b10fd1540a 100644 (file)
@@ -1 +1 @@
-d6a3272e5592bcfeecf8a06dd8330cce57ff6603b24994b533d1fdcd48b5dc66
+ece7af98a8bf982567b489cf82a52519f46a1c9360c82a486dbe1cd0664b1555
index 029e799b2a1f4bf415fd1e6a61942f35c381a6a4..b50f35def623c97fee34f5cadda20711e2cc135f 100644 (file)
@@ -330,17 +330,20 @@ static void printfFunc(
     sqlite3StrAccumInit(&str, db, 0, 0, db->aLimit[SQLITE_LIMIT_LENGTH]);
     str.printfFlags = SQLITE_PRINTF_SQLFUNC;
     sqlite3_str_appendf(&str, zFormat, &x);
-    if( str.accError==SQLITE_OK ){
-      n = str.nChar;
-      sqlite3_result_text(context, sqlite3StrAccumFinish(&str), n,
-                          SQLITE_DYNAMIC);
-    }else{
+    if( str.accError ){
       if( str.accError==SQLITE_NOMEM ){
         sqlite3_result_error_nomem(context);
       }else{
         sqlite3_result_error_toobig(context);
       }
       sqlite3_str_reset(&str);
+    }else if( str.nChar==0 ){
+      sqlite3_result_text(context, "", 1, SQLITE_STATIC);
+      sqlite3_str_reset(&str);
+    }else{
+      n = str.nChar;
+      sqlite3_result_text(context, sqlite3StrAccumFinish(&str), n,
+                          SQLITE_DYNAMIC);
     }
   }
 }