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
drh
a6e8ee12e2
Redefine the acccess rules for the Expr.w union so that the Expr.w.iJoin
...
member is accessible on either EP_OuterON or EP_InnerON.
FossilOrigin-Name: 6f741d6cfb8831a3ac966257ac4519bcc8156293447bf50323c2d9b170125974
2022-05-13 16:38:40 +00:00
drh
67a99dbee8
Improved names for flags on the Expr object: EP_FromJoin becames
...
EP_OuterON and EP_InnerJoin becomes EP_InnerON.
FossilOrigin-Name: 1ffea07ff98b894729c698b681cc7433df3bbfccd8a0529a706908602a636937
2022-05-13 14:52:04 +00:00
drh
da653b897d
Improve EXPLAIN QUERY PLAN output and comments on bytecode listings by
...
distinguishing between "subquery" and "join" and using consistent names
across EQP and bytecode.
FossilOrigin-Name: a2d3ee92420ec564e31eb0005367cf7ff3d00bfaed5a98ffdbe17c91c95d9d97
2022-04-22 17:36:10 +00:00
drh
5d20a21814
Fix unreachable branches in the sqlite3_error_offset() logic.
...
FossilOrigin-Name: 031381aea371892a35737e550121846af41241711a36c1a2086af3b0c11bf7b6
2022-02-06 23:54:41 +00:00
drh
62fc069eb4
Further improvements to localization of errors in input SQL.
...
FossilOrigin-Name: fa34676042720161ca03f3926814152eb1d144ec12fd2b44e5429408ea4ad5b0
2022-02-06 00:30:04 +00:00
drh
4f77c9208a
Enhance sqlite3_error_offset() to report the position of unresolved
...
identifiers.
FossilOrigin-Name: 5b8d2577907abda10de29884716bacc10bff0df1451228a0ac40342dbea6d589
2022-02-05 23:11:19 +00:00
drh
f62641e91c
Add the sqlite3_error_offset() interface. Use it in the CLI to provide
...
better context for error messages.
FossilOrigin-Name: b518ce77439852759bc0901071f36d622b1314c9bf3d29c279dfcc405188b975
2021-12-24 20:22:13 +00:00
drh
ef95d5583b
Factor out the logic that does quoting for the SQL quote() function, so that
...
it might be reused for other purposes.
FossilOrigin-Name: 8e98ba1eeb1a5a61b7cb2de337ef8bca3d07494266a50d62b9c6bc60ad0a955f
2021-12-10 21:01:24 +00:00
drh
5bf4715e01
Add the sqlite3ResultStrAccum() internal interface to simplify the
...
the implementation of functions that return strings.
FossilOrigin-Name: e548e9299d3fd6ce5b647cf0dd93ff8e917a5eda43076c6a02389c52640e2e50
2021-10-03 00:12:43 +00:00
drh
f06db3e892
Fixes to the version of "varsep" group_concat so that (1) it builds under
...
separate compilation and (2) omits tabs in source code and (3) runs faster
than trunk. This variant of the group_concat_varsep branch might be preferred
over the tip because it preserves (undocumented) legacy behavior about the
position of separators relative to terms.
FossilOrigin-Name: 04399cf9645e04b171090ff8a3c27752929c10d2cd8778e26f8f3337aa902ab6
2021-10-01 00:25:06 +00:00
drh
5191ae06ab
Add an ALWAYS() on a branch that is always taken.
...
FossilOrigin-Name: 0646d2260c523d368e3f6bc3d110a9011d35ce83bd6751ad412d8fd9a253cb7a
2021-03-23 21:02:24 +00:00
drh
2f2091b10e
Use the canonical name, not the AS name, when showing the MATERIALIZE or
...
CO-ROUTINE lines for a CTE.
FossilOrigin-Name: 1b83e232c490fe6e9f999d30399faebfac6094bf940dc21dc459ed2c97657cb2
2021-03-20 15:46:01 +00:00
drh
8210233c7b
Revise tests cases to align with the new EXPLAIN QUERY PLAN output.
...
FossilOrigin-Name: 50fbd532602d2c316813046ed6be8be2991c281eb5f295c4c28520a0de73862c
2021-03-20 15:11:29 +00:00
drh
6610e6a54f
Further simplification of the EQP output. Only show "SUBQUERY n" if the
...
subquery is anonymous.
FossilOrigin-Name: 1fadd30525dbf22678ba014b78af3a0fb33047692f073b7c62a90a028081ac48
2021-03-19 19:44:56 +00:00
drh
a979993b25
Improved labeling of EXPLAIN QUERY PLAN output. Many test failures due to
...
the different output format.
FossilOrigin-Name: 6f8faec0222a7ca07cc1a5ed16cc08d92c6e20bbcb34851b4eff9e624de53601
2021-03-19 13:00:28 +00:00
drh
bb05976dac
Cast a string size variable to 64-bit to avoid any possibility of
...
integer overflow.
FossilOrigin-Name: a5940294b2ac8d157d7fa72f65ee70b713f7feb8a0a98d7f47e71acd1b6942b1
2021-03-02 21:07:41 +00:00