]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Special case the "decimal(-0.0)" output to show exactly 0.0, just as it
authordrh <>
Wed, 24 Sep 2025 17:49:09 +0000 (17:49 +0000)
committerdrh <>
Wed, 24 Sep 2025 17:49:09 +0000 (17:49 +0000)
does for positive zero.
[forum:/forumpost/adc719d88d56ab22|Forum post adc719d88].

FossilOrigin-Name: 9ca4163bd93d78be5e4daf2b5d2b920d54d038c6fa8217dd2add0be0da6cd6b0

ext/misc/decimal.c
manifest
manifest.uuid
test/decimal.test

index d4e63cae4bd28a6384e1c6c7c78caa5d8e882584..a29251c1b78125f602b63b52bb0830d3e8d835f0 100644 (file)
@@ -624,7 +624,7 @@ static Decimal *decimalFromDouble(double r){
     isNeg = 0;
   }
   memcpy(&a,&r,sizeof(a));
-  if( a==0 ){
+  if( a==0 || a==(sqlite3_int64)0x8000000000000000LL){
     e = 0;
     m = 0;
   }else{
index 6d18e4d0ddecea31d9d0811a96cd3d73717bdf1b..2144b5aa14bd6a22b8790ed47e1cfd001263615b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sharmless\scompiler\swarning\sin\sIEEE754.
-D 2025-09-24T17:38:13.296
+C Special\scase\sthe\s"decimal(-0.0)"\soutput\sto\sshow\sexactly\s0.0,\sjust\sas\sit\ndoes\sfor\spositive\szero.\s\n[forum:/forumpost/adc719d88d56ab22|Forum\spost\sadc719d88].
+D 2025-09-24T17:49:09.135
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -370,7 +370,7 @@ F ext/misc/completion.c c3c8b3cc1293c34f04f8746a3adfbfedb43f00d113f8c984a1ed0943
 F ext/misc/compress.c 2c79a74330e0e0ba6cb3f7397f8ba5af12d46377ef5d3ee075e12dd8a6ed57f0
 F ext/misc/csv.c 7cae8c2666a058a58fb8994ed2457339a06c97d31c251d9a8445cdd966629890
 F ext/misc/dbdump.c b8592f6f2da292c62991a13864a60d6c573c47a9cc58362131b9e6a64f823e01
-F ext/misc/decimal.c 0b837909e9a9aafc4e905c2fc7af0818d972b27e542a95a34c4581f084b18edd
+F ext/misc/decimal.c 96a0ccd0b5f28720271d8e4409066ad4e2804d6987a9c1042016774dded79df8
 F ext/misc/eval.c 04bc9aada78c888394204b4ed996ab834b99726fb59603b0ee3ed6e049755dc1
 F ext/misc/explain.c 606100185fb90d6a1eade1ed0414d53503c86820d8956a06e3b0a56291894f2b
 F ext/misc/fileio.c 88cb2e5744296de6638af02ef6349fd468c2eb5e5f41ba405f88d9b4ad500f8e
@@ -1045,7 +1045,7 @@ F test/dbpage.test 63fab1eb026bada121107e53436fa749bbf83281dc9dea17af422f7a5c0f2
 F test/dbpagefault.test ea39de2ca86041a9c6df1135645180a76d0a8da93ac159e2fafe38e39636530b
 F test/dbstatus.test 4a4221a883025ffd39696b3d1b3910b928fb097d77e671351acb35f3aed42759
 F test/dbstatus2.test f5fe0afed3fa45e57cfa70d1147606c20d2ba23feac78e9a172f2fe8ab5b78ef
-F test/decimal.test 63202f949b135aadb994c38f4fad73aa4791b6104c76c24f2463fffac9c0035e
+F test/decimal.test a11b87a2c3294eb4c11b55f3168aeac63d683fa8ada35921a6ec1d511eff7648
 F test/default.test c7124864cded213a3f118bc7e2e26f34b7c36dfa26cf6945cc8b7f5db1191277
 F test/delete.test 2686e1c98d552ef37d79ad55b17b93fe96fad9737786917ce3839767f734c48f
 F test/delete2.test 3a03f2cca1f9a67ec469915cb8babd6485db43fa
@@ -2175,8 +2175,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 63b686fe4cb1d5d82dd3a399aaafd1dfcbda533ca83b46ed2bc2750baa7f251d
-R 2693e3ba2dabefa0ec4660a2332c9420
+P 7f72308322cd1f238e6c725ec6bff44ed42fb2619f3f52afe38e2faad838a63f
+R c97149a465cbd2c2ba320a6a3013742c
 U drh
-Z f0e389957d8e83b86db175d0a85094bb
+Z bdd53e488ca92a27b133587719f9ec54
 # Remove this line to create a well-formed Fossil manifest.
index c2a1dbec6ffa422bcf8ccfe752638708d7fb32da..8b5b2a836214bd48a1c8839032822a8a3844f23f 100644 (file)
@@ -1 +1 @@
-7f72308322cd1f238e6c725ec6bff44ed42fb2619f3f52afe38e2faad838a63f
+9ca4163bd93d78be5e4daf2b5d2b920d54d038c6fa8217dd2add0be0da6cd6b0
index 19ed5d3277bf3835325e649c284797875cda289c..07510faa1ed23a0b02058806f093c307443b7f77 100644 (file)
@@ -40,6 +40,9 @@ do_execsql_test 1040 {
 do_execsql_test 1041 {
   SELECT decimal('-0000.0');
 } {0.0}
+do_execsql_test 1042 {
+  SELECT decimal(0.0)==decimal(-0.0);
+} {1}
 do_execsql_test 1050 {
   SELECT decimal('1.0e72');
 } {1000000000000000000000000000000000000000000000000000000000000000000000000}