drh
ac5ee556eb
Inconsequential changes to floating-point conversion, amounting to mere
...
code cleanup to aid comprehension.
FossilOrigin-Name: 6d9c29123b6b143b0f7c8f5d018f170c72edfc5b1a4d67edd45e5552def2af6c
2026-02-20 20:43:25 +00:00
drh
18a9bdd90a
Fix a harmless compiler warning.
...
FossilOrigin-Name: 6621737cc05cbf8ff5f576775a8a3c64f666b56d42939968ebb55d72a835646b
2025-11-17 19:19:58 +00:00
drh
c14ae9cd3b
New interfaces sqlite3_str_truncate() and sqlite3_str_free(). Version number
...
increases to 3.52.0.
FossilOrigin-Name: fa85534ed927851dc37a4943e83259bff4509f141449226ffb506f9acc7b2cc5
2025-11-14 20:09:01 +00:00
drh
833fb1ef59
Another small performance increase in the text format by using strchr() to
...
search for '%'.
FossilOrigin-Name: 59ad89ba07dd7b127f03f62a647f7328f08dbc0aa1b88b2b4529eb5b4c677775
2025-10-05 22:41:32 +00:00
stephan
34775b696b
Fix a syntax error in the tcl script part of [199b6567bb41cd].
...
FossilOrigin-Name: a7ed85f27066b74263dbd3dfcefe5d378e524cc56cd3abac4032bc23f83b5d21
2025-10-05 19:56:57 +00:00
drh
d310393158
Performance optimization in text formatter by using a hash table to look up
...
the operator character that follows %-subsitutions.
FossilOrigin-Name: 199b6567bb41cd41977e28b3e06e8c26c3300b3873f226a4699ec251a7bf8883
2025-10-05 19:30:05 +00:00
drh
bac6793a8a
Enhance the printf formatter for %#f such that the minus sign is omitted
...
if the '+' is missing and all digits shown in the rendering are zero.
Thus, for example, '%#.2f' renders -0.004 as "0.00" instead of "-0.00".
FossilOrigin-Name: 09e1d7c7b4615262dd03adf1be201122f3cb8909ad381d67f51c812f07e25719
2025-07-30 13:37:49 +00:00
drh
6ed5aa4b9b
Make the show-%p-az-zero hack of the previous check-in configurable at
...
run-time using the 0x100000 bit of either .treetrace or .wheretrace.
As before, this is all a no-op except for debugging builds.
FossilOrigin-Name: a29627d7e7f8344d9a099cc133bda85250b02dc5ee5f358ba59691e0816b5b2d
2025-06-16 15:34:26 +00:00
drh
67f708298f
Add an "#if 0" that can be changed to "1" to cause all %p output to render
...
as 0, thus making comparisons of .treetrace and .wheretrace output easier.
FossilOrigin-Name: 65e2704c0bc329f3dd248548a2d4edb7d3ace8ceaf0b82b8618b9b1b764884cd
2025-06-16 13:51:09 +00:00
drh
56747d1840
Increase the size of the output buffer for sqlite3_log().
...
FossilOrigin-Name: a64e8491c9863f890daa9f5d8f678728dc0d00bc1f3c238b50214ec545450fcf
2025-04-17 17:46:28 +00:00
drh
c171cf1ef7
Ensure that detection of control characters by comparison against 0x1f
...
uses unsigned characters. [forum:/forumpost/4c344ca61f|Forum post 4c344ca61f].
FossilOrigin-Name: b7c5ce84216cc7f5a3ba07404572edb94fd628b3a7421111cd5f5333f3e56ea8
2025-03-02 20:29:49 +00:00
drh
d4c686ed8f
Small performance improvement for the new %#Q conversion in printf.
...
FossilOrigin-Name: 17e440781e68d7d3ea68c5144e1e08e183f0caef595a6c7ac4ce56489c60f476
2025-02-25 12:18:27 +00:00
drh
a357a90f12
Consolidate two different UTF8 encoders into a single subroutine.
...
FossilOrigin-Name: 6208e494858b9d362efc7db4e8aac6f8e93fe51d2e038c94dfa97c55a74688a0
2025-02-25 11:47:34 +00:00
drh
a3283ec135
The %#Q conversion now adds unistr('...') around the converted string if
...
escape characters were inserted. %#w now works just like %w as escape
sequences inside of identifiers are not recognized.
FossilOrigin-Name: 997391d42079783e294836f714ccd9526ecc442c8dbf8212d72cd17c67e7158a
2025-02-23 11:48:07 +00:00
drh
07ce1820a0
Enhance the %Q, %q, and %w printf conversions so that if the alternate-form
...
flag # is present, they transform backslash and control characters into
unistr()-style backslash escape codes.
FossilOrigin-Name: ffbfcc2bbb57f02aa5ee813e7a25a2a014e3353a10f6bccb609075a5b63545d7
2025-02-23 00:09:24 +00:00
drh
ef86b942b9
Code changes that make it easier to prove that no 32-bit integer overflows
...
happen during memory allocation. No problems fixed; this change is just
to make future maintenance easier.
FossilOrigin-Name: 215650a5a1d55bdbca9c92524804a1a54456a17f42a17e53747b21a6507506f5
2025-02-17 17:33:14 +00:00
drh
9566982328
Do not report an sqlite3_error_offset() for errors that occur inside of
...
views or triggers, since the text of those elements is not part of the
original query.
FossilOrigin-Name: bf66c6dfc25c2562a4e6a5b24dd1660213a8fefbb5763e7583b87fb06dbaaf43
2024-11-20 11:34:16 +00:00
drh
0766cbf511
Remove unreachable code.
...
FossilOrigin-Name: 17699329aa8e234c6793a38db5ca05def9395b287bcc8bc05493b824327edb59
2024-08-20 20:01:21 +00:00
drh
1521ca4c20
Refactor the SrcItem object so that information about subqueries is stored
...
in a separately allocated Subquery object. This reduces the memory requirements
for SrcItem and makes the code run faster. It also provides an expansion path
for subquery processing that does not burden simple queries. The current
checking mostly works, but there are still issues that need to be tracked
down and fixed.
FossilOrigin-Name: 8ff5dda8448d7e1a533d7f27db2573ce68fa9956b9d9847ced45e83c1f06bab0
2024-08-19 22:48:30 +00:00
drh
b204b6aa7b
Give unique names to fields in the SrcItem object, to facilitate analysis of
...
how those fields are used using "grep".
FossilOrigin-Name: 9f5aeef3cbc2c95267c8f7bf60d5c66971a76789669fb0e8f853273ff6f616f2
2024-08-17 23:23:23 +00:00
drh
8797bd695f
Reduce the size of the SrcItem object by combining fields into a union.
...
FossilOrigin-Name: a4c59ac3c6ec979c25b544d29e47b8e39f6439c098eed8f84b3bd506c9adf047
2024-08-17 19:46:49 +00:00
drh
35b771e221
Add comments linking the assert() added in [cef4d9e3ba586735] to the places
...
where the precondition that the assert() tests are actually required.
FossilOrigin-Name: 6f0e7e195275aeb4aefd9da20348af35e3ef7f0a6b2768a34824daeace16eff1
2024-04-24 11:51:51 +00:00
drh
ac7c6f5854
Add assert() statements to validate access to the SrcItem.u1.nRow union member.
...
FossilOrigin-Name: 21f616d9b948efca441f8d45d0a95f4c052ce8b6daec7fa582ad9a00b82ca570
2024-03-18 13:31:24 +00:00
drh
27a5ee855d
Improvements to EXPLAIN QUERY PLAN output for multi-row VALUES claues.
...
FossilOrigin-Name: ac6f095e13e43d66c06552c8b01f6bec3407c9d41a34c4cdb0be57b0b828ad0d
2024-03-18 12:49:30 +00:00
drh
b468e68322
Remove an unreachable branch from printf(). Change it into an assert().
...
FossilOrigin-Name: 4c9886b692706723f4b68f58dfef07ab19b192fd19b953917f23b55655af3e02
2024-02-20 13:11:27 +00:00
drh
6161cdd446
Fix rounding in zero-precision %f and %g printf conversions.
...
[forum:/info/393708f4a8|Forum post 393708f4a8]. This bug was
introduced by check-in [32befb224b254639] and first appeared in version 3.43.0.
FossilOrigin-Name: 7fca1bc482fc2456d75392eb42f768fda72631c9070de46b8123b1126e78306f
2024-02-17 03:32:31 +00:00
drh
ca1ce7773c
First attempt to get the JSON text-to-binary cache working. All test cases
...
pass, but the cache seems not to help much.
FossilOrigin-Name: 25ed295f300fea6185104a73721076bccd2b2a6e411c78564266fa6dca4ff70c
2023-12-01 12:57:12 +00:00
drh
43dc31cf1f
Fix a harmless compiler warning about variant types for a pointer function.
...
FossilOrigin-Name: 37ff0d8e7f91c32e8c53bb015280be47c66bf599281b640a8d3fd41335b55289
2023-10-17 19:33:52 +00:00
drh
44f53b9647
Extend the enhancement to json_set() and json_replace(). Clean up cruft.
...
FossilOrigin-Name: 2dbb22c75e86f2e3ced38ac14b4943570d5c2f86cd5e37e875bf0c863be28836
2023-07-26 01:05:08 +00:00
drh
0f200bc580
Add the JsonParse.zAlt field to old revised JSON text after a change.
...
Demonstrate that this elminates the need for reparsing after a change
by using it in the json_remove() function. This is an incremental check-in
containing lots of cruft.
FossilOrigin-Name: f930b139d6db0ee799bc90397b225175103c4bf22923d1c9cbcd32509adc1738
2023-07-26 00:48:45 +00:00
drh
59b8e666f6
Clarify ownership of the various objects involved in parsing JSON.
...
FossilOrigin-Name: afe02a398a16d51bd7482b6fbe2fbd15d9ac4fd9cdbc9d2bf81f38b3391fc567
2023-07-25 20:26:47 +00:00
drh
f02cc9a324
Create the new RCStr class of strings and try to use them for JSON storage.
...
FossilOrigin-Name: c1b8725089bb3d006ec69add28f4fcb3f4e79412c7f438b5b1067c2227e77b9c
2023-07-25 15:08:18 +00:00
drh
453be55b85
Reinstate the fpdecode() SQL function for testing, but only when compiled
...
with SQLITE_DEBUG.
FossilOrigin-Name: 07eab52e0801bb0e4743b304a06ad16e18cdf8eaa18c0faf8d47a1f5d8576ea0
2023-07-01 18:33:26 +00:00
drh
17c20bb15e
Improved rounding policy.
...
FossilOrigin-Name: 6f1122e942b8269552daaf13d647d200d8546ec25f36310d67037c6b58d09976
2023-07-01 17:56:00 +00:00
drh
9ee9444a0a
Improved response to Infinity and NaN. Remove the termporary fpdecode()
...
function.
FossilOrigin-Name: 76ab8ae809a47a66688e2d50c20dc87ce946d82e9ffebb3adda55c451fad07fc
2023-07-01 15:23:24 +00:00
drh
42d042e602
Progress towards fixing corner-case floating-point formatting issues.
...
FossilOrigin-Name: 1138b8d16edef16d2943d407e289d07d546a14e64c3efa3c94127631e06fafeb
2023-07-01 14:03:50 +00:00
drh
3f073f9ef8
Fix an issue with the "+" attribute in printf().
...
FossilOrigin-Name: bdfd1eb1d7b4c570a53d58789dac0bf55fdaf8eba515d5a0caf2e57e25b51952
2023-06-30 23:42:46 +00:00
drh
aebeabacff
Begin cutting over sqlite3FpDecode() into printf(). The code in this
...
check-in gets a lot right, but there are still some formatting
discrepencies.
FossilOrigin-Name: c134d423e79ba5d3343d7480229822a0c83210f67f12129e0237181f892f97a5
2023-06-30 23:18:44 +00:00
drh
0b1a1e8c37
Improve the range of floating-point numbers that can be handled as integers
...
for numeric-to-text conversion.
FossilOrigin-Name: 41580ba452fdbc3f73da60d8030289d38614c4cab8d24140d7cc44a54b2da8d2
2023-06-29 17:36:18 +00:00
drh
60783f47b2
Improved accuracy of floating-point conversion constants as suggested by
...
[forum:/info/598d32f6135c41c1|forum post 598d32f6135c41c1].
FossilOrigin-Name: 4943e8a1819e189747eefc414d02c0485e1620deff9cf92664295b21a8a9a83c
2023-06-28 11:46:28 +00:00
dan
77eb3e305c
Fix a buffer overrun that could occur when using the format() function to format a very small real value with the "," modifier.
...
FossilOrigin-Name: 910e770ad4d8e8e45bf069af963f2e975bfcfb882578dc5fe714cd2396258934
2023-05-05 19:36:13 +00:00
drh
e8468098a0
Add support for the comma (,) modifier to %f formats in the format() function.
...
FossilOrigin-Name: 7080e196a1f887640ff51ddc508ec6796ce12874c2944855702753b64a8e5e50
2023-05-04 13:07:49 +00:00
drh
ad99243846
The floating-point-to-text conversion with the zero-padding option now
...
renders NaN as "null".
FossilOrigin-Name: ad59fa17663bda54ec5d4e48ac24e04b87daa70c795d840cd8db382e2dd581b9
2023-03-22 16:55:35 +00:00
drh
667b5cc985
Fix json rendering so that it shows positive and negative infinity as
...
9.0e+999 and -9.0e+999 respectively.
FossilOrigin-Name: efce4690a52592c4f5fc7d023eebe771b0e615bb03c0fe203493f853b28e8f85
2023-03-17 20:31:24 +00:00
drh
0f8aebbfcf
Performance optimization on sqlite3_vsnprintf().
...
FossilOrigin-Name: 4430e6e96dbf3d0b464776c132838dd3e456716e0ae5972fc7e0ece13b56ea25
2023-02-25 12:50:54 +00:00
drh
4b04ced3e0
Fix an incorrect optimization that was attempted as part of
...
check-in [18de3a8e6b431a07].
FossilOrigin-Name: f32055e8110a2eac6c9e26d1d1e620f0668bcb475d49d309dc549cea05e1e582
2023-02-24 01:08:35 +00:00
drh
ed530c0221
Omit unnecessary branches from the enhanced floating-point conversion
...
logic.
FossilOrigin-Name: 32b0ba0d27481d85a4b0037ec36befcbffecdec75891eba58569acb160045553
2023-02-23 22:08:22 +00:00
drh
4df23a3248
Increased precision of floating-point to decimal conversions when the
...
floating point value has no fractional part.
[forum:/forumpost/d1387c3979c7f557|Forum post d1387c3979c7f557]
FossilOrigin-Name: 18de3a8e6b431a075143631eafdcf0e1b1a21868b417394c365d46d2feca10b5
2023-02-23 21:18:47 +00:00
drh
79b9bc4452
More efficient implementation of large precisions on the "%c" format for
...
the built-in printf(). This is an effort to avoid a reported
timeout on a (ridiculous) query generated by OSSFuzz.
FossilOrigin-Name: 371f9b88387a44a5f820279d79733d1deb7eafc72f320ec47a11679bbdbb49ef
2022-12-21 19:11:56 +00:00
drh
077e17b59a
Increase the size of loop variables in the printf() implementation to avoid
...
harmless compiler warnings.
FossilOrigin-Name: aab790a16e1bdff78759f9c9ae87a2559ba82dd34ef3dedfb66035a0db7067a7
2022-07-18 15:02:00 +00:00